aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview')
-rw-r--r--linden/indra/newview/CMakeLists.txt62
-rw-r--r--linden/indra/newview/English.lproj/InfoPlist.strings11
-rw-r--r--linden/indra/newview/VertexCache.h2
-rw-r--r--linden/indra/newview/VorbisFramework.h2
-rw-r--r--linden/indra/newview/app_settings/keywords.ini10
-rw-r--r--linden/indra/newview/app_settings/settings.xml167
-rw-r--r--linden/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl2
-rw-r--r--linden/indra/newview/featuretable.txt29
-rw-r--r--linden/indra/newview/featuretable_linux.txt17
-rw-r--r--linden/indra/newview/featuretable_mac.txt17
-rw-r--r--linden/indra/newview/fmodwrapper.cpp2
-rw-r--r--linden/indra/newview/gpu_table.txt64
-rw-r--r--linden/indra/newview/installers/darwin/dmg-cleanup.applescript28
-rw-r--r--linden/indra/newview/installers/darwin/firstlookslim-dmg/Applications-alias.r6996
-rw-r--r--linden/indra/newview/installers/darwin/firstlookslim-dmg/_DS_Storebin0 -> 12292 bytes
-rw-r--r--linden/indra/newview/installers/darwin/firstlookslim-dmg/_VolumeIcon.icnsbin0 -> 98049 bytes
-rw-r--r--linden/indra/newview/installers/darwin/firstlookslim-dmg/background.jpgbin0 -> 75112 bytes
-rw-r--r--linden/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Storebin12292 -> 12292 bytes
-rw-r--r--linden/indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt6
-rw-r--r--linden/indra/newview/installers/windows/installer_template.nsi1980
-rw-r--r--linden/indra/newview/installers/windows/lang_de.nsi114
-rw-r--r--linden/indra/newview/installers/windows/lang_en-us.nsi104
-rw-r--r--linden/indra/newview/installers/windows/lang_es.nsibin0 -> 7846 bytes
-rw-r--r--linden/indra/newview/installers/windows/lang_fr.nsibin0 -> 8118 bytes
-rw-r--r--linden/indra/newview/installers/windows/lang_it.nsibin0 -> 7438 bytes
-rw-r--r--linden/indra/newview/installers/windows/lang_ja.nsi114
-rw-r--r--linden/indra/newview/installers/windows/lang_ko.nsi114
-rw-r--r--linden/indra/newview/installers/windows/lang_nl.nsibin0 -> 7388 bytes
-rw-r--r--linden/indra/newview/installers/windows/lang_pt-br.nsibin0 -> 7832 bytes
-rw-r--r--linden/indra/newview/installers/windows/lang_zh.nsibin0 -> 5554 bytes
-rw-r--r--linden/indra/newview/installers/windows/language_menu.nsibin0 -> 1302 bytes
-rw-r--r--linden/indra/newview/linux_tools/client-readme.txt24
-rwxr-xr-xlinden/indra/newview/linux_tools/wrapper.sh19
-rw-r--r--linden/indra/newview/llagent.cpp280
-rw-r--r--linden/indra/newview/llagent.h6
-rw-r--r--linden/indra/newview/llagentdata.cpp2
-rw-r--r--linden/indra/newview/llagentdata.h2
-rw-r--r--linden/indra/newview/llagentlanguage.cpp11
-rw-r--r--linden/indra/newview/llagentlanguage.h4
-rw-r--r--linden/indra/newview/llagentpilot.cpp2
-rw-r--r--linden/indra/newview/llagentpilot.h2
-rw-r--r--linden/indra/newview/llanimstatelabels.cpp2
-rw-r--r--linden/indra/newview/llanimstatelabels.h2
-rw-r--r--linden/indra/newview/llappearance.h2
-rw-r--r--linden/indra/newview/llappviewer.cpp295
-rw-r--r--linden/indra/newview/llappviewer.h29
-rw-r--r--linden/indra/newview/llappviewerlinux.cpp309
-rw-r--r--linden/indra/newview/llappviewerlinux.h36
-rw-r--r--linden/indra/newview/llappviewerlinux_api.h148
-rw-r--r--linden/indra/newview/llappviewerlinux_api.xml14
-rw-r--r--linden/indra/newview/llappviewerlinux_api_dbus.cpp131
-rw-r--r--linden/indra/newview/llappviewerlinux_api_dbus.h49
-rw-r--r--linden/indra/newview/llappviewerlinux_api_dbus_syms_raw.inc9
-rw-r--r--linden/indra/newview/llappviewermacosx.cpp207
-rw-r--r--linden/indra/newview/llappviewermacosx.h5
-rw-r--r--linden/indra/newview/llappviewerwin32.cpp131
-rw-r--r--linden/indra/newview/llappviewerwin32.h10
-rw-r--r--linden/indra/newview/llassetuploadqueue.cpp2
-rw-r--r--linden/indra/newview/llassetuploadqueue.h2
-rw-r--r--linden/indra/newview/llassetuploadresponders.cpp2
-rw-r--r--linden/indra/newview/llassetuploadresponders.h2
-rw-r--r--linden/indra/newview/llaudiosourcevo.cpp4
-rw-r--r--linden/indra/newview/llaudiosourcevo.h2
-rw-r--r--linden/indra/newview/llbbox.cpp2
-rw-r--r--linden/indra/newview/llbbox.h2
-rw-r--r--linden/indra/newview/llbox.cpp4
-rw-r--r--linden/indra/newview/llbox.h2
-rw-r--r--linden/indra/newview/llcallbacklist.cpp2
-rw-r--r--linden/indra/newview/llcallbacklist.h2
-rw-r--r--linden/indra/newview/llcallingcard.cpp2
-rw-r--r--linden/indra/newview/llcallingcard.h2
-rw-r--r--linden/indra/newview/llcaphttpsender.cpp2
-rw-r--r--linden/indra/newview/llcaphttpsender.h2
-rw-r--r--linden/indra/newview/llchatbar.cpp12
-rw-r--r--linden/indra/newview/llchatbar.h2
-rw-r--r--linden/indra/newview/llclassifiedinfo.cpp2
-rw-r--r--linden/indra/newview/llclassifiedinfo.h2
-rw-r--r--linden/indra/newview/llclassifiedstatsresponder.cpp2
-rw-r--r--linden/indra/newview/llclassifiedstatsresponder.h2
-rw-r--r--linden/indra/newview/llcloud.cpp2
-rw-r--r--linden/indra/newview/llcloud.h2
-rw-r--r--linden/indra/newview/llcolorscheme.cpp2
-rw-r--r--linden/indra/newview/llcolorscheme.h2
-rw-r--r--linden/indra/newview/llcolorswatch.cpp2
-rw-r--r--linden/indra/newview/llcolorswatch.h2
-rw-r--r--linden/indra/newview/llcommandhandler.cpp2
-rw-r--r--linden/indra/newview/llcommandhandler.h2
-rw-r--r--linden/indra/newview/llcommandlineparser.cpp14
-rw-r--r--linden/indra/newview/llcommandlineparser.h2
-rw-r--r--linden/indra/newview/llcompass.cpp2
-rw-r--r--linden/indra/newview/llcompass.h2
-rw-r--r--linden/indra/newview/llcompilequeue.cpp4
-rw-r--r--linden/indra/newview/llcompilequeue.h2
-rw-r--r--linden/indra/newview/llconfirmationmanager.cpp2
-rw-r--r--linden/indra/newview/llconfirmationmanager.h2
-rw-r--r--linden/indra/newview/llconsole.cpp2
-rw-r--r--linden/indra/newview/llconsole.h2
-rw-r--r--linden/indra/newview/llcontainerview.cpp4
-rw-r--r--linden/indra/newview/llcontainerview.h2
-rw-r--r--linden/indra/newview/llcurrencyuimanager.cpp2
-rw-r--r--linden/indra/newview/llcurrencyuimanager.h2
-rw-r--r--linden/indra/newview/llcylinder.cpp2
-rw-r--r--linden/indra/newview/llcylinder.h2
-rw-r--r--linden/indra/newview/lldebugmessagebox.cpp2
-rw-r--r--linden/indra/newview/lldebugmessagebox.h2
-rw-r--r--linden/indra/newview/lldebugview.cpp2
-rw-r--r--linden/indra/newview/lldebugview.h2
-rw-r--r--linden/indra/newview/lldelayedgestureerror.cpp2
-rw-r--r--linden/indra/newview/lldelayedgestureerror.h2
-rw-r--r--linden/indra/newview/lldirpicker.cpp2
-rw-r--r--linden/indra/newview/lldirpicker.h2
-rw-r--r--linden/indra/newview/lldrawable.cpp8
-rw-r--r--linden/indra/newview/lldrawable.h2
-rw-r--r--linden/indra/newview/lldrawpool.cpp11
-rw-r--r--linden/indra/newview/lldrawpool.h2
-rw-r--r--linden/indra/newview/lldrawpoolalpha.cpp10
-rw-r--r--linden/indra/newview/lldrawpoolalpha.h2
-rw-r--r--linden/indra/newview/lldrawpoolavatar.cpp16
-rw-r--r--linden/indra/newview/lldrawpoolavatar.h2
-rw-r--r--linden/indra/newview/lldrawpoolbump.cpp69
-rw-r--r--linden/indra/newview/lldrawpoolbump.h5
-rw-r--r--linden/indra/newview/lldrawpoolclouds.cpp2
-rw-r--r--linden/indra/newview/lldrawpoolclouds.h2
-rw-r--r--linden/indra/newview/lldrawpoolground.cpp7
-rw-r--r--linden/indra/newview/lldrawpoolground.h2
-rw-r--r--linden/indra/newview/lldrawpoolsimple.cpp2
-rw-r--r--linden/indra/newview/lldrawpoolsimple.h2
-rw-r--r--linden/indra/newview/lldrawpoolsky.cpp6
-rw-r--r--linden/indra/newview/lldrawpoolsky.h2
-rw-r--r--linden/indra/newview/lldrawpoolterrain.cpp126
-rw-r--r--linden/indra/newview/lldrawpoolterrain.h2
-rw-r--r--linden/indra/newview/lldrawpooltree.cpp7
-rw-r--r--linden/indra/newview/lldrawpooltree.h2
-rw-r--r--linden/indra/newview/lldrawpoolwater.cpp40
-rw-r--r--linden/indra/newview/lldrawpoolwater.h2
-rw-r--r--linden/indra/newview/lldrawpoolwlsky.cpp15
-rw-r--r--linden/indra/newview/lldrawpoolwlsky.h2
-rw-r--r--linden/indra/newview/lldriverparam.cpp2
-rw-r--r--linden/indra/newview/lldriverparam.h2
-rw-r--r--linden/indra/newview/lldynamictexture.cpp62
-rw-r--r--linden/indra/newview/lldynamictexture.h9
-rw-r--r--linden/indra/newview/llemote.cpp2
-rw-r--r--linden/indra/newview/llemote.h2
-rw-r--r--linden/indra/newview/lleventinfo.cpp2
-rw-r--r--linden/indra/newview/lleventinfo.h2
-rw-r--r--linden/indra/newview/lleventnotifier.cpp2
-rw-r--r--linden/indra/newview/lleventnotifier.h2
-rw-r--r--linden/indra/newview/lleventpoll.cpp19
-rw-r--r--linden/indra/newview/lleventpoll.h2
-rw-r--r--linden/indra/newview/llface.cpp18
-rw-r--r--linden/indra/newview/llface.h4
-rw-r--r--linden/indra/newview/llface.inl3
-rw-r--r--linden/indra/newview/llfasttimerview.cpp15
-rw-r--r--linden/indra/newview/llfasttimerview.h2
-rw-r--r--linden/indra/newview/llfeaturemanager.cpp8
-rw-r--r--linden/indra/newview/llfeaturemanager.h2
-rw-r--r--linden/indra/newview/llfilepicker.cpp6
-rw-r--r--linden/indra/newview/llfilepicker.h2
-rw-r--r--linden/indra/newview/llfirstuse.cpp2
-rw-r--r--linden/indra/newview/llfirstuse.h2
-rw-r--r--linden/indra/newview/llflexibleobject.cpp2
-rw-r--r--linden/indra/newview/llflexibleobject.h2
-rw-r--r--linden/indra/newview/llfloaterabout.cpp6
-rw-r--r--linden/indra/newview/llfloaterabout.h2
-rw-r--r--linden/indra/newview/llfloateractivespeakers.cpp49
-rw-r--r--linden/indra/newview/llfloateractivespeakers.h5
-rw-r--r--linden/indra/newview/llfloateranimpreview.cpp11
-rw-r--r--linden/indra/newview/llfloateranimpreview.h2
-rw-r--r--linden/indra/newview/llfloaterauction.cpp6
-rw-r--r--linden/indra/newview/llfloaterauction.h2
-rw-r--r--linden/indra/newview/llfloateravatarinfo.cpp2
-rw-r--r--linden/indra/newview/llfloateravatarinfo.h2
-rw-r--r--linden/indra/newview/llfloateravatarpicker.cpp2
-rw-r--r--linden/indra/newview/llfloateravatarpicker.h2
-rw-r--r--linden/indra/newview/llfloateravatartextures.cpp2
-rw-r--r--linden/indra/newview/llfloateravatartextures.h2
-rw-r--r--linden/indra/newview/llfloaterbeacons.cpp150
-rw-r--r--linden/indra/newview/llfloaterbeacons.h56
-rw-r--r--linden/indra/newview/llfloaterbuildoptions.cpp2
-rw-r--r--linden/indra/newview/llfloaterbuildoptions.h2
-rw-r--r--linden/indra/newview/llfloaterbulkpermission.cpp3
-rw-r--r--linden/indra/newview/llfloaterbump.cpp2
-rw-r--r--linden/indra/newview/llfloaterbump.h2
-rw-r--r--linden/indra/newview/llfloaterbuy.cpp14
-rw-r--r--linden/indra/newview/llfloaterbuy.h5
-rw-r--r--linden/indra/newview/llfloaterbuycontents.cpp2
-rw-r--r--linden/indra/newview/llfloaterbuycontents.h2
-rw-r--r--linden/indra/newview/llfloaterbuycurrency.cpp16
-rw-r--r--linden/indra/newview/llfloaterbuycurrency.h2
-rw-r--r--linden/indra/newview/llfloaterbuyland.cpp2
-rw-r--r--linden/indra/newview/llfloaterbuyland.h2
-rw-r--r--linden/indra/newview/llfloatercamera.cpp2
-rw-r--r--linden/indra/newview/llfloatercamera.h2
-rw-r--r--linden/indra/newview/llfloaterchat.cpp2
-rw-r--r--linden/indra/newview/llfloaterchat.h2
-rw-r--r--linden/indra/newview/llfloaterchatterbox.cpp2
-rw-r--r--linden/indra/newview/llfloaterchatterbox.h2
-rw-r--r--linden/indra/newview/llfloaterclassified.cpp2
-rw-r--r--linden/indra/newview/llfloaterclassified.h2
-rw-r--r--linden/indra/newview/llfloaterclothing.cpp2
-rw-r--r--linden/indra/newview/llfloaterclothing.h2
-rw-r--r--linden/indra/newview/llfloatercolorpicker.cpp8
-rw-r--r--linden/indra/newview/llfloatercolorpicker.h2
-rw-r--r--linden/indra/newview/llfloatercustomize.cpp2
-rw-r--r--linden/indra/newview/llfloatercustomize.h2
-rw-r--r--linden/indra/newview/llfloaterdaycycle.cpp2
-rw-r--r--linden/indra/newview/llfloaterdaycycle.h2
-rw-r--r--linden/indra/newview/llfloaterdirectory.cpp2
-rw-r--r--linden/indra/newview/llfloaterdirectory.h2
-rw-r--r--linden/indra/newview/llfloatereditui.cpp2
-rw-r--r--linden/indra/newview/llfloatereditui.h2
-rw-r--r--linden/indra/newview/llfloaterenvsettings.cpp2
-rw-r--r--linden/indra/newview/llfloaterenvsettings.h2
-rw-r--r--linden/indra/newview/llfloaterevent.cpp2
-rw-r--r--linden/indra/newview/llfloaterevent.h2
-rw-r--r--linden/indra/newview/llfloaterfriends.cpp42
-rw-r--r--linden/indra/newview/llfloaterfriends.h2
-rw-r--r--linden/indra/newview/llfloatergesture.cpp2
-rw-r--r--linden/indra/newview/llfloatergesture.h2
-rw-r--r--linden/indra/newview/llfloatergodtools.cpp2
-rw-r--r--linden/indra/newview/llfloatergodtools.h2
-rw-r--r--linden/indra/newview/llfloatergroupinfo.cpp2
-rw-r--r--linden/indra/newview/llfloatergroupinfo.h2
-rw-r--r--linden/indra/newview/llfloatergroupinvite.cpp2
-rw-r--r--linden/indra/newview/llfloatergroupinvite.h2
-rw-r--r--linden/indra/newview/llfloatergroups.cpp2
-rw-r--r--linden/indra/newview/llfloatergroups.h2
-rw-r--r--linden/indra/newview/llfloaterhardwaresettings.cpp2
-rw-r--r--linden/indra/newview/llfloaterhardwaresettings.h2
-rw-r--r--linden/indra/newview/llfloaterhtml.cpp253
-rw-r--r--linden/indra/newview/llfloaterhtml.h76
-rw-r--r--linden/indra/newview/llfloaterhtmlhelp.cpp2
-rw-r--r--linden/indra/newview/llfloaterhtmlhelp.h2
-rw-r--r--linden/indra/newview/llfloaterhud.cpp9
-rw-r--r--linden/indra/newview/llfloaterhud.h2
-rw-r--r--linden/indra/newview/llfloaterimagepreview.cpp150
-rw-r--r--linden/indra/newview/llfloaterimagepreview.h6
-rw-r--r--linden/indra/newview/llfloaterinspect.cpp13
-rw-r--r--linden/indra/newview/llfloaterinspect.h2
-rw-r--r--linden/indra/newview/llfloaterjoystick.cpp4
-rw-r--r--linden/indra/newview/llfloaterjoystick.h2
-rw-r--r--linden/indra/newview/llfloaterlagmeter.cpp4
-rw-r--r--linden/indra/newview/llfloaterlagmeter.h2
-rw-r--r--linden/indra/newview/llfloaterland.cpp4
-rw-r--r--linden/indra/newview/llfloaterland.h2
-rw-r--r--linden/indra/newview/llfloaterlandholdings.cpp2
-rw-r--r--linden/indra/newview/llfloaterlandholdings.h2
-rw-r--r--linden/indra/newview/llfloaterlandmark.cpp58
-rw-r--r--linden/indra/newview/llfloaterlandmark.h4
-rw-r--r--linden/indra/newview/llfloatermap.cpp2
-rw-r--r--linden/indra/newview/llfloatermap.h2
-rw-r--r--linden/indra/newview/llfloatermemleak.cpp2
-rw-r--r--linden/indra/newview/llfloatermemleak.h2
-rw-r--r--linden/indra/newview/llfloatermute.cpp2
-rw-r--r--linden/indra/newview/llfloatermute.h2
-rw-r--r--linden/indra/newview/llfloaternamedesc.cpp2
-rw-r--r--linden/indra/newview/llfloaternamedesc.h2
-rw-r--r--linden/indra/newview/llfloaternewim.cpp2
-rw-r--r--linden/indra/newview/llfloaternewim.h2
-rw-r--r--linden/indra/newview/llfloateropenobject.cpp2
-rw-r--r--linden/indra/newview/llfloateropenobject.h2
-rw-r--r--linden/indra/newview/llfloaterparcel.cpp2
-rw-r--r--linden/indra/newview/llfloaterparcel.h2
-rw-r--r--linden/indra/newview/llfloaterpermissionsmgr.cpp2
-rw-r--r--linden/indra/newview/llfloaterpermissionsmgr.h2
-rw-r--r--linden/indra/newview/llfloaterpostcard.cpp14
-rw-r--r--linden/indra/newview/llfloaterpostcard.h2
-rw-r--r--linden/indra/newview/llfloaterpostprocess.cpp2
-rw-r--r--linden/indra/newview/llfloaterpostprocess.h2
-rw-r--r--linden/indra/newview/llfloaterpreference.cpp6
-rw-r--r--linden/indra/newview/llfloaterpreference.h2
-rw-r--r--linden/indra/newview/llfloaterproperties.cpp2
-rw-r--r--linden/indra/newview/llfloaterproperties.h2
-rw-r--r--linden/indra/newview/llfloaterregioninfo.cpp2
-rw-r--r--linden/indra/newview/llfloaterregioninfo.h2
-rw-r--r--linden/indra/newview/llfloaterreporter.cpp2
-rw-r--r--linden/indra/newview/llfloaterreporter.h2
-rw-r--r--linden/indra/newview/llfloaterscriptdebug.cpp2
-rw-r--r--linden/indra/newview/llfloaterscriptdebug.h2
-rw-r--r--linden/indra/newview/llfloatersellland.cpp2
-rw-r--r--linden/indra/newview/llfloatersellland.h2
-rw-r--r--linden/indra/newview/llfloatersettingsdebug.cpp2
-rw-r--r--linden/indra/newview/llfloatersettingsdebug.h2
-rw-r--r--linden/indra/newview/llfloatersnapshot.cpp281
-rw-r--r--linden/indra/newview/llfloatersnapshot.h2
-rw-r--r--linden/indra/newview/llfloaterstats.cpp2
-rw-r--r--linden/indra/newview/llfloaterstats.h2
-rw-r--r--linden/indra/newview/llfloatertelehub.cpp2
-rw-r--r--linden/indra/newview/llfloatertelehub.h2
-rw-r--r--linden/indra/newview/llfloatertest.cpp2
-rw-r--r--linden/indra/newview/llfloatertest.h2
-rw-r--r--linden/indra/newview/llfloatertools.cpp2
-rw-r--r--linden/indra/newview/llfloatertools.h2
-rw-r--r--linden/indra/newview/llfloatertopobjects.cpp2
-rw-r--r--linden/indra/newview/llfloatertopobjects.h2
-rw-r--r--linden/indra/newview/llfloatertos.cpp2
-rw-r--r--linden/indra/newview/llfloatertos.h2
-rw-r--r--linden/indra/newview/llfloaterurldisplay.cpp2
-rw-r--r--linden/indra/newview/llfloaterurldisplay.h2
-rw-r--r--linden/indra/newview/llfloaterurlentry.cpp2
-rw-r--r--linden/indra/newview/llfloaterurlentry.h2
-rw-r--r--linden/indra/newview/llfloatervoicedevicesettings.cpp36
-rw-r--r--linden/indra/newview/llfloatervoicedevicesettings.h2
-rw-r--r--linden/indra/newview/llfloaterwater.cpp2
-rw-r--r--linden/indra/newview/llfloaterwater.h2
-rw-r--r--linden/indra/newview/llfloaterwindlight.cpp2
-rw-r--r--linden/indra/newview/llfloaterwindlight.h2
-rw-r--r--linden/indra/newview/llfloaterworldmap.cpp2
-rw-r--r--linden/indra/newview/llfloaterworldmap.h2
-rw-r--r--linden/indra/newview/llfolderview.cpp6
-rw-r--r--linden/indra/newview/llfolderview.h2
-rw-r--r--linden/indra/newview/llfollowcam.cpp2
-rw-r--r--linden/indra/newview/llfollowcam.h2
-rw-r--r--linden/indra/newview/llframestats.cpp2
-rw-r--r--linden/indra/newview/llframestats.h2
-rw-r--r--linden/indra/newview/llframestatview.cpp12
-rw-r--r--linden/indra/newview/llframestatview.h2
-rw-r--r--linden/indra/newview/llgenepool.cpp2
-rw-r--r--linden/indra/newview/llgenepool.h2
-rw-r--r--linden/indra/newview/llgesturemgr.cpp2
-rw-r--r--linden/indra/newview/llgesturemgr.h2
-rw-r--r--linden/indra/newview/llgivemoney.cpp2
-rw-r--r--linden/indra/newview/llgivemoney.h2
-rw-r--r--linden/indra/newview/llglsandbox.cpp61
-rw-r--r--linden/indra/newview/llgroupmgr.cpp19
-rw-r--r--linden/indra/newview/llgroupmgr.h2
-rw-r--r--linden/indra/newview/llgroupnotify.cpp2
-rw-r--r--linden/indra/newview/llgroupnotify.h2
-rw-r--r--linden/indra/newview/llhomelocationresponder.cpp108
-rw-r--r--linden/indra/newview/llhomelocationresponder.h47
-rw-r--r--linden/indra/newview/llhoverview.cpp2
-rw-r--r--linden/indra/newview/llhoverview.h2
-rw-r--r--linden/indra/newview/llhudeffect.cpp2
-rw-r--r--linden/indra/newview/llhudeffect.h2
-rw-r--r--linden/indra/newview/llhudeffectbeam.cpp4
-rw-r--r--linden/indra/newview/llhudeffectbeam.h2
-rw-r--r--linden/indra/newview/llhudeffectlookat.cpp6
-rw-r--r--linden/indra/newview/llhudeffectlookat.h2
-rw-r--r--linden/indra/newview/llhudeffectpointat.cpp10
-rw-r--r--linden/indra/newview/llhudeffectpointat.h2
-rw-r--r--linden/indra/newview/llhudeffecttrail.cpp2
-rw-r--r--linden/indra/newview/llhudeffecttrail.h2
-rw-r--r--linden/indra/newview/llhudicon.cpp109
-rw-r--r--linden/indra/newview/llhudicon.h5
-rw-r--r--linden/indra/newview/llhudmanager.cpp2
-rw-r--r--linden/indra/newview/llhudmanager.h2
-rw-r--r--linden/indra/newview/llhudobject.cpp2
-rw-r--r--linden/indra/newview/llhudobject.h2
-rw-r--r--linden/indra/newview/llhudrender.cpp2
-rw-r--r--linden/indra/newview/llhudrender.h2
-rw-r--r--linden/indra/newview/llhudtext.cpp129
-rw-r--r--linden/indra/newview/llhudtext.h4
-rw-r--r--linden/indra/newview/llhudview.cpp2
-rw-r--r--linden/indra/newview/llhudview.h2
-rw-r--r--linden/indra/newview/llimpanel.cpp90
-rw-r--r--linden/indra/newview/llimpanel.h6
-rw-r--r--linden/indra/newview/llimview.cpp23
-rw-r--r--linden/indra/newview/llimview.h8
-rw-r--r--linden/indra/newview/llinventoryactions.cpp2
-rw-r--r--linden/indra/newview/llinventorybridge.cpp2
-rw-r--r--linden/indra/newview/llinventorybridge.h2
-rw-r--r--linden/indra/newview/llinventoryclipboard.cpp2
-rw-r--r--linden/indra/newview/llinventoryclipboard.h2
-rw-r--r--linden/indra/newview/llinventorymodel.cpp7
-rw-r--r--linden/indra/newview/llinventorymodel.h2
-rw-r--r--linden/indra/newview/llinventoryview.cpp24
-rw-r--r--linden/indra/newview/llinventoryview.h6
-rw-r--r--linden/indra/newview/lljoystickbutton.cpp6
-rw-r--r--linden/indra/newview/lljoystickbutton.h2
-rw-r--r--linden/indra/newview/lllandmarklist.cpp2
-rw-r--r--linden/indra/newview/lllandmarklist.h2
-rw-r--r--linden/indra/newview/lllightconstants.h2
-rw-r--r--linden/indra/newview/lllogchat.cpp5
-rw-r--r--linden/indra/newview/lllogchat.h2
-rw-r--r--linden/indra/newview/llmanip.cpp10
-rw-r--r--linden/indra/newview/llmanip.h2
-rw-r--r--linden/indra/newview/llmaniprotate.cpp14
-rw-r--r--linden/indra/newview/llmaniprotate.h2
-rw-r--r--linden/indra/newview/llmanipscale.cpp16
-rw-r--r--linden/indra/newview/llmanipscale.h2
-rw-r--r--linden/indra/newview/llmaniptranslate.cpp82
-rw-r--r--linden/indra/newview/llmaniptranslate.h4
-rw-r--r--linden/indra/newview/llmapresponders.cpp6
-rw-r--r--linden/indra/newview/llmapresponders.h2
-rw-r--r--linden/indra/newview/llmediaremotectrl.cpp2
-rw-r--r--linden/indra/newview/llmediaremotectrl.h2
-rw-r--r--linden/indra/newview/llmemoryview.cpp4
-rw-r--r--linden/indra/newview/llmemoryview.h2
-rw-r--r--linden/indra/newview/llmenucommands.cpp2
-rw-r--r--linden/indra/newview/llmenucommands.h2
-rw-r--r--linden/indra/newview/llmimetypes.cpp2
-rw-r--r--linden/indra/newview/llmimetypes.h2
-rw-r--r--linden/indra/newview/llmorphview.cpp2
-rw-r--r--linden/indra/newview/llmorphview.h2
-rw-r--r--linden/indra/newview/llmoveview.cpp2
-rw-r--r--linden/indra/newview/llmoveview.h2
-rw-r--r--linden/indra/newview/llmutelist.cpp86
-rw-r--r--linden/indra/newview/llmutelist.h5
-rw-r--r--linden/indra/newview/llnamebox.cpp2
-rw-r--r--linden/indra/newview/llnamebox.h2
-rw-r--r--linden/indra/newview/llnameeditor.cpp2
-rw-r--r--linden/indra/newview/llnameeditor.h2
-rw-r--r--linden/indra/newview/llnamelistctrl.cpp2
-rw-r--r--linden/indra/newview/llnamelistctrl.h2
-rw-r--r--linden/indra/newview/llnetmap.cpp28
-rw-r--r--linden/indra/newview/llnetmap.h2
-rw-r--r--linden/indra/newview/llnotify.cpp42
-rw-r--r--linden/indra/newview/llnotify.h5
-rw-r--r--linden/indra/newview/lloverlaybar.cpp2
-rw-r--r--linden/indra/newview/lloverlaybar.h2
-rw-r--r--linden/indra/newview/llpanelLCD.cpp2
-rw-r--r--linden/indra/newview/llpanelLCD.h2
-rw-r--r--linden/indra/newview/llpanelaudioprefs.cpp2
-rw-r--r--linden/indra/newview/llpanelaudioprefs.h2
-rw-r--r--linden/indra/newview/llpanelaudiovolume.cpp2
-rw-r--r--linden/indra/newview/llpanelaudiovolume.h2
-rw-r--r--linden/indra/newview/llpanelavatar.cpp2
-rw-r--r--linden/indra/newview/llpanelavatar.h2
-rw-r--r--linden/indra/newview/llpanelclassified.cpp2
-rw-r--r--linden/indra/newview/llpanelclassified.h2
-rw-r--r--linden/indra/newview/llpanelcontents.cpp2
-rw-r--r--linden/indra/newview/llpanelcontents.h2
-rw-r--r--linden/indra/newview/llpaneldebug.cpp2
-rw-r--r--linden/indra/newview/llpaneldebug.h2
-rw-r--r--linden/indra/newview/llpaneldirbrowser.cpp2
-rw-r--r--linden/indra/newview/llpaneldirbrowser.h2
-rw-r--r--linden/indra/newview/llpaneldirclassified.cpp2
-rw-r--r--linden/indra/newview/llpaneldirclassified.h2
-rw-r--r--linden/indra/newview/llpaneldirevents.cpp2
-rw-r--r--linden/indra/newview/llpaneldirevents.h2
-rw-r--r--linden/indra/newview/llpaneldirfind.cpp13
-rw-r--r--linden/indra/newview/llpaneldirfind.h2
-rw-r--r--linden/indra/newview/llpaneldirgroups.cpp2
-rw-r--r--linden/indra/newview/llpaneldirgroups.h2
-rw-r--r--linden/indra/newview/llpaneldirland.cpp2
-rw-r--r--linden/indra/newview/llpaneldirland.h2
-rw-r--r--linden/indra/newview/llpaneldirpeople.cpp2
-rw-r--r--linden/indra/newview/llpaneldirpeople.h2
-rw-r--r--linden/indra/newview/llpaneldirplaces.cpp2
-rw-r--r--linden/indra/newview/llpaneldirplaces.h2
-rw-r--r--linden/indra/newview/llpaneldirpopular.cpp2
-rw-r--r--linden/indra/newview/llpaneldirpopular.h2
-rw-r--r--linden/indra/newview/llpaneldisplay.cpp72
-rw-r--r--linden/indra/newview/llpaneldisplay.h2
-rw-r--r--linden/indra/newview/llpanelevent.cpp2
-rw-r--r--linden/indra/newview/llpanelevent.h2
-rw-r--r--linden/indra/newview/llpanelface.cpp2
-rw-r--r--linden/indra/newview/llpanelface.h2
-rw-r--r--linden/indra/newview/llpanelgeneral.cpp238
-rw-r--r--linden/indra/newview/llpanelgeneral.h39
-rw-r--r--linden/indra/newview/llpanelgroup.cpp2
-rw-r--r--linden/indra/newview/llpanelgroup.h2
-rw-r--r--linden/indra/newview/llpanelgroupgeneral.cpp2
-rw-r--r--linden/indra/newview/llpanelgroupgeneral.h2
-rw-r--r--linden/indra/newview/llpanelgroupinvite.cpp2
-rw-r--r--linden/indra/newview/llpanelgroupinvite.h2
-rw-r--r--linden/indra/newview/llpanelgrouplandmoney.cpp5
-rw-r--r--linden/indra/newview/llpanelgrouplandmoney.h2
-rw-r--r--linden/indra/newview/llpanelgroupnotices.cpp2
-rw-r--r--linden/indra/newview/llpanelgroupnotices.h2
-rw-r--r--linden/indra/newview/llpanelgrouproles.cpp2
-rw-r--r--linden/indra/newview/llpanelgrouproles.h2
-rw-r--r--linden/indra/newview/llpanelgroupvoting.cpp2
-rw-r--r--linden/indra/newview/llpanelgroupvoting.h2
-rw-r--r--linden/indra/newview/llpanelinput.cpp89
-rw-r--r--linden/indra/newview/llpanelinput.h19
-rw-r--r--linden/indra/newview/llpanelinventory.cpp2
-rw-r--r--linden/indra/newview/llpanelinventory.h2
-rw-r--r--linden/indra/newview/llpanelland.cpp2
-rw-r--r--linden/indra/newview/llpanelland.h2
-rw-r--r--linden/indra/newview/llpanellandmedia.cpp2
-rw-r--r--linden/indra/newview/llpanellandmedia.h2
-rw-r--r--linden/indra/newview/llpanellandobjects.cpp2
-rw-r--r--linden/indra/newview/llpanellandobjects.h2
-rw-r--r--linden/indra/newview/llpanellandoptions.cpp2
-rw-r--r--linden/indra/newview/llpanellandoptions.h2
-rw-r--r--linden/indra/newview/llpanellogin.cpp27
-rw-r--r--linden/indra/newview/llpanellogin.h2
-rw-r--r--linden/indra/newview/llpanelmorph.cpp2
-rw-r--r--linden/indra/newview/llpanelmorph.h2
-rw-r--r--linden/indra/newview/llpanelmsgs.cpp24
-rw-r--r--linden/indra/newview/llpanelmsgs.h2
-rw-r--r--linden/indra/newview/llpanelnetwork.cpp48
-rw-r--r--linden/indra/newview/llpanelnetwork.h26
-rw-r--r--linden/indra/newview/llpanelobject.cpp17
-rw-r--r--linden/indra/newview/llpanelobject.h2
-rw-r--r--linden/indra/newview/llpanelpermissions.cpp2
-rw-r--r--linden/indra/newview/llpanelpermissions.h2
-rw-r--r--linden/indra/newview/llpanelpick.cpp2
-rw-r--r--linden/indra/newview/llpanelpick.h2
-rw-r--r--linden/indra/newview/llpanelplace.cpp2
-rw-r--r--linden/indra/newview/llpanelplace.h2
-rw-r--r--linden/indra/newview/llpanelskins.cpp2
-rw-r--r--linden/indra/newview/llpanelskins.h2
-rw-r--r--linden/indra/newview/llpanelvolume.cpp2
-rw-r--r--linden/indra/newview/llpanelvolume.h2
-rw-r--r--linden/indra/newview/llpanelweb.cpp176
-rw-r--r--linden/indra/newview/llpanelweb.h31
-rw-r--r--linden/indra/newview/llparcelselection.cpp2
-rw-r--r--linden/indra/newview/llparcelselection.h2
-rw-r--r--linden/indra/newview/llpatchvertexarray.cpp2
-rw-r--r--linden/indra/newview/llpatchvertexarray.h2
-rw-r--r--linden/indra/newview/llpolymesh.cpp2
-rw-r--r--linden/indra/newview/llpolymesh.h4
-rw-r--r--linden/indra/newview/llpolymorph.cpp2
-rw-r--r--linden/indra/newview/llpolymorph.h2
-rw-r--r--linden/indra/newview/llprefschat.cpp62
-rw-r--r--linden/indra/newview/llprefschat.h2
-rw-r--r--linden/indra/newview/llprefsim.cpp105
-rw-r--r--linden/indra/newview/llprefsim.h2
-rw-r--r--linden/indra/newview/llprefsvoice.cpp292
-rw-r--r--linden/indra/newview/llprefsvoice.h49
-rw-r--r--linden/indra/newview/llpreview.cpp2
-rw-r--r--linden/indra/newview/llpreview.h2
-rw-r--r--linden/indra/newview/llpreviewanim.cpp2
-rw-r--r--linden/indra/newview/llpreviewanim.h2
-rw-r--r--linden/indra/newview/llpreviewgesture.cpp2
-rw-r--r--linden/indra/newview/llpreviewgesture.h2
-rw-r--r--linden/indra/newview/llpreviewlandmark.cpp2
-rw-r--r--linden/indra/newview/llpreviewlandmark.h2
-rw-r--r--linden/indra/newview/llpreviewnotecard.cpp2
-rw-r--r--linden/indra/newview/llpreviewnotecard.h2
-rw-r--r--linden/indra/newview/llpreviewscript.cpp17
-rw-r--r--linden/indra/newview/llpreviewscript.h6
-rw-r--r--linden/indra/newview/llpreviewsound.cpp2
-rw-r--r--linden/indra/newview/llpreviewsound.h2
-rw-r--r--linden/indra/newview/llpreviewtexture.cpp29
-rw-r--r--linden/indra/newview/llpreviewtexture.h2
-rw-r--r--linden/indra/newview/llprogressview.cpp8
-rw-r--r--linden/indra/newview/llprogressview.h2
-rw-r--r--linden/indra/newview/llregionposition.cpp2
-rw-r--r--linden/indra/newview/llregionposition.h2
-rw-r--r--linden/indra/newview/llremoteparcelrequest.cpp2
-rw-r--r--linden/indra/newview/llremoteparcelrequest.h2
-rw-r--r--linden/indra/newview/llresourcedata.h2
-rw-r--r--linden/indra/newview/llsavedsettingsglue.cpp2
-rw-r--r--linden/indra/newview/llsavedsettingsglue.h2
-rw-r--r--linden/indra/newview/llselectmgr.cpp21
-rw-r--r--linden/indra/newview/llselectmgr.h4
-rw-r--r--linden/indra/newview/llsky.cpp8
-rw-r--r--linden/indra/newview/llsky.h2
-rw-r--r--linden/indra/newview/llspatialpartition.cpp87
-rw-r--r--linden/indra/newview/llspatialpartition.h10
-rw-r--r--linden/indra/newview/llsprite.cpp8
-rw-r--r--linden/indra/newview/llsprite.h4
-rw-r--r--linden/indra/newview/llsrv.cpp2
-rw-r--r--linden/indra/newview/llsrv.h2
-rw-r--r--linden/indra/newview/llstartup.cpp285
-rw-r--r--linden/indra/newview/llstartup.h3
-rw-r--r--linden/indra/newview/llstatbar.cpp4
-rw-r--r--linden/indra/newview/llstatbar.h2
-rw-r--r--linden/indra/newview/llstatgraph.cpp2
-rw-r--r--linden/indra/newview/llstatgraph.h2
-rw-r--r--linden/indra/newview/llstatusbar.cpp2
-rw-r--r--linden/indra/newview/llstatusbar.h2
-rw-r--r--linden/indra/newview/llstatview.cpp2
-rw-r--r--linden/indra/newview/llstatview.h2
-rw-r--r--linden/indra/newview/llstylemap.cpp2
-rw-r--r--linden/indra/newview/llstylemap.h2
-rw-r--r--linden/indra/newview/llsurface.cpp8
-rw-r--r--linden/indra/newview/llsurface.h2
-rw-r--r--linden/indra/newview/llsurfacepatch.cpp2
-rw-r--r--linden/indra/newview/llsurfacepatch.h2
-rw-r--r--linden/indra/newview/lltable.h2
-rw-r--r--linden/indra/newview/lltexlayer.cpp306
-rw-r--r--linden/indra/newview/lltexlayer.h49
-rw-r--r--linden/indra/newview/lltexturecache.cpp2
-rw-r--r--linden/indra/newview/lltexturecache.h2
-rw-r--r--linden/indra/newview/lltexturectrl.cpp6
-rw-r--r--linden/indra/newview/lltexturectrl.h2
-rw-r--r--linden/indra/newview/lltexturefetch.cpp32
-rw-r--r--linden/indra/newview/lltexturefetch.h2
-rw-r--r--linden/indra/newview/lltextureview.cpp21
-rw-r--r--linden/indra/newview/lltextureview.h2
-rw-r--r--linden/indra/newview/lltool.cpp8
-rw-r--r--linden/indra/newview/lltool.h2
-rw-r--r--linden/indra/newview/lltoolbar.cpp2
-rw-r--r--linden/indra/newview/lltoolbar.h2
-rw-r--r--linden/indra/newview/lltoolbrush.cpp6
-rw-r--r--linden/indra/newview/lltoolbrush.h2
-rw-r--r--linden/indra/newview/lltoolcomp.cpp2
-rw-r--r--linden/indra/newview/lltoolcomp.h2
-rw-r--r--linden/indra/newview/lltooldraganddrop.cpp2
-rw-r--r--linden/indra/newview/lltooldraganddrop.h2
-rw-r--r--linden/indra/newview/lltoolface.cpp2
-rw-r--r--linden/indra/newview/lltoolface.h2
-rw-r--r--linden/indra/newview/lltoolfocus.cpp2
-rw-r--r--linden/indra/newview/lltoolfocus.h2
-rw-r--r--linden/indra/newview/lltoolgrab.cpp2
-rw-r--r--linden/indra/newview/lltoolgrab.h2
-rw-r--r--linden/indra/newview/lltoolgun.cpp2
-rw-r--r--linden/indra/newview/lltoolgun.h2
-rw-r--r--linden/indra/newview/lltoolindividual.cpp2
-rw-r--r--linden/indra/newview/lltoolindividual.h2
-rw-r--r--linden/indra/newview/lltoolmgr.cpp2
-rw-r--r--linden/indra/newview/lltoolmgr.h2
-rw-r--r--linden/indra/newview/lltoolmorph.cpp9
-rw-r--r--linden/indra/newview/lltoolmorph.h2
-rw-r--r--linden/indra/newview/lltoolobjpicker.cpp2
-rw-r--r--linden/indra/newview/lltoolobjpicker.h2
-rw-r--r--linden/indra/newview/lltoolpie.cpp2
-rw-r--r--linden/indra/newview/lltoolpie.h2
-rw-r--r--linden/indra/newview/lltoolpipette.cpp2
-rw-r--r--linden/indra/newview/lltoolpipette.h2
-rw-r--r--linden/indra/newview/lltoolplacer.cpp6
-rw-r--r--linden/indra/newview/lltoolplacer.h2
-rw-r--r--linden/indra/newview/lltoolselect.cpp2
-rw-r--r--linden/indra/newview/lltoolselect.h2
-rw-r--r--linden/indra/newview/lltoolselectland.cpp2
-rw-r--r--linden/indra/newview/lltoolselectland.h2
-rw-r--r--linden/indra/newview/lltoolselectrect.cpp4
-rw-r--r--linden/indra/newview/lltoolselectrect.h2
-rw-r--r--linden/indra/newview/lltoolview.cpp2
-rw-r--r--linden/indra/newview/lltoolview.h2
-rw-r--r--linden/indra/newview/lltracker.cpp9
-rw-r--r--linden/indra/newview/lltracker.h2
-rw-r--r--linden/indra/newview/lltrans.cpp2
-rw-r--r--linden/indra/newview/lltrans.h2
-rw-r--r--linden/indra/newview/lluiconstants.h2
-rw-r--r--linden/indra/newview/lluploaddialog.cpp2
-rw-r--r--linden/indra/newview/lluploaddialog.h2
-rw-r--r--linden/indra/newview/llurl.cpp2
-rw-r--r--linden/indra/newview/llurl.h2
-rw-r--r--linden/indra/newview/llurldispatcher.cpp2
-rw-r--r--linden/indra/newview/llurldispatcher.h2
-rw-r--r--linden/indra/newview/llurlhistory.cpp2
-rw-r--r--linden/indra/newview/llurlhistory.h2
-rw-r--r--linden/indra/newview/llurlsimstring.cpp2
-rw-r--r--linden/indra/newview/llurlsimstring.h2
-rw-r--r--linden/indra/newview/llurlwhitelist.cpp2
-rw-r--r--linden/indra/newview/llurlwhitelist.h2
-rw-r--r--linden/indra/newview/lluserauth.cpp18
-rw-r--r--linden/indra/newview/lluserauth.h2
-rw-r--r--linden/indra/newview/llvectorperfoptions.cpp2
-rw-r--r--linden/indra/newview/llvectorperfoptions.h2
-rw-r--r--linden/indra/newview/llvelocitybar.cpp4
-rw-r--r--linden/indra/newview/llvelocitybar.h2
-rw-r--r--linden/indra/newview/llviewchildren.cpp2
-rw-r--r--linden/indra/newview/llviewchildren.h2
-rw-r--r--linden/indra/newview/llviewerassetstorage.cpp4
-rw-r--r--linden/indra/newview/llviewerassetstorage.h2
-rw-r--r--linden/indra/newview/llvieweraudio.cpp10
-rw-r--r--linden/indra/newview/llvieweraudio.h2
-rw-r--r--linden/indra/newview/llviewerbuild.h2
-rw-r--r--linden/indra/newview/llviewercamera.cpp2
-rw-r--r--linden/indra/newview/llviewercamera.h2
-rw-r--r--linden/indra/newview/llviewercontrol.cpp4
-rw-r--r--linden/indra/newview/llviewercontrol.h2
-rw-r--r--linden/indra/newview/llviewerdisplay.cpp95
-rw-r--r--linden/indra/newview/llviewerdisplay.h2
-rw-r--r--linden/indra/newview/llviewergenericmessage.cpp2
-rw-r--r--linden/indra/newview/llviewergenericmessage.h2
-rw-r--r--linden/indra/newview/llviewergesture.cpp2
-rw-r--r--linden/indra/newview/llviewergesture.h2
-rw-r--r--linden/indra/newview/llviewerimage.cpp151
-rw-r--r--linden/indra/newview/llviewerimage.h39
-rw-r--r--linden/indra/newview/llviewerimagelist.cpp42
-rw-r--r--linden/indra/newview/llviewerimagelist.h4
-rw-r--r--linden/indra/newview/llviewerinventory.cpp2
-rw-r--r--linden/indra/newview/llviewerinventory.h2
-rw-r--r--linden/indra/newview/llviewerjoint.cpp73
-rw-r--r--linden/indra/newview/llviewerjoint.h2
-rw-r--r--linden/indra/newview/llviewerjointattachment.cpp6
-rw-r--r--linden/indra/newview/llviewerjointattachment.h2
-rw-r--r--linden/indra/newview/llviewerjointmesh.cpp20
-rw-r--r--linden/indra/newview/llviewerjointmesh.h2
-rw-r--r--linden/indra/newview/llviewerjointmesh_sse.cpp2
-rw-r--r--linden/indra/newview/llviewerjointmesh_sse2.cpp2
-rw-r--r--linden/indra/newview/llviewerjointmesh_vec.cpp2
-rw-r--r--linden/indra/newview/llviewerjoystick.cpp2
-rw-r--r--linden/indra/newview/llviewerjoystick.h2
-rw-r--r--linden/indra/newview/llviewerkeyboard.cpp2
-rw-r--r--linden/indra/newview/llviewerkeyboard.h2
-rw-r--r--linden/indra/newview/llviewerlayer.cpp2
-rw-r--r--linden/indra/newview/llviewerlayer.h2
-rw-r--r--linden/indra/newview/llviewermedia.cpp3
-rw-r--r--linden/indra/newview/llviewermedia.h2
-rw-r--r--linden/indra/newview/llviewermenu.cpp568
-rw-r--r--linden/indra/newview/llviewermenu.h3
-rw-r--r--linden/indra/newview/llviewermenufile.cpp28
-rw-r--r--linden/indra/newview/llviewermenufile.h2
-rw-r--r--linden/indra/newview/llviewermessage.cpp17
-rw-r--r--linden/indra/newview/llviewermessage.h2
-rw-r--r--linden/indra/newview/llviewernetwork.cpp2
-rw-r--r--linden/indra/newview/llviewernetwork.h2
-rw-r--r--linden/indra/newview/llviewerobject.cpp84
-rw-r--r--linden/indra/newview/llviewerobject.h12
-rw-r--r--linden/indra/newview/llviewerobjectlist.cpp36
-rw-r--r--linden/indra/newview/llviewerobjectlist.h2
-rw-r--r--linden/indra/newview/llviewerparcelmedia.cpp4
-rw-r--r--linden/indra/newview/llviewerparcelmedia.h2
-rw-r--r--linden/indra/newview/llviewerparcelmediaautoplay.cpp2
-rw-r--r--linden/indra/newview/llviewerparcelmediaautoplay.h2
-rw-r--r--linden/indra/newview/llviewerparcelmgr.cpp2
-rw-r--r--linden/indra/newview/llviewerparcelmgr.h2
-rw-r--r--linden/indra/newview/llviewerparceloverlay.cpp10
-rw-r--r--linden/indra/newview/llviewerparceloverlay.h2
-rw-r--r--linden/indra/newview/llviewerpartsim.cpp52
-rw-r--r--linden/indra/newview/llviewerpartsim.h14
-rw-r--r--linden/indra/newview/llviewerpartsource.cpp11
-rw-r--r--linden/indra/newview/llviewerpartsource.h2
-rw-r--r--linden/indra/newview/llviewerprecompiledheaders.cpp2
-rw-r--r--linden/indra/newview/llviewerprecompiledheaders.h2
-rw-r--r--linden/indra/newview/llviewerregion.cpp3
-rw-r--r--linden/indra/newview/llviewerregion.h3
-rw-r--r--linden/indra/newview/llviewershadermgr.cpp40
-rw-r--r--linden/indra/newview/llviewershadermgr.h2
-rw-r--r--linden/indra/newview/llviewerstats.cpp26
-rw-r--r--linden/indra/newview/llviewerstats.h5
-rw-r--r--linden/indra/newview/llviewertexteditor.cpp7
-rw-r--r--linden/indra/newview/llviewertexteditor.h2
-rw-r--r--linden/indra/newview/llviewertextureanim.cpp2
-rw-r--r--linden/indra/newview/llviewertextureanim.h2
-rw-r--r--linden/indra/newview/llviewerthrottle.cpp2
-rw-r--r--linden/indra/newview/llviewerthrottle.h2
-rw-r--r--linden/indra/newview/llviewervisualparam.cpp2
-rw-r--r--linden/indra/newview/llviewervisualparam.h2
-rw-r--r--linden/indra/newview/llviewerwindow.cpp363
-rw-r--r--linden/indra/newview/llviewerwindow.h13
-rw-r--r--linden/indra/newview/llvlcomposition.cpp2
-rw-r--r--linden/indra/newview/llvlcomposition.h2
-rw-r--r--linden/indra/newview/llvlmanager.cpp2
-rw-r--r--linden/indra/newview/llvlmanager.h2
-rw-r--r--linden/indra/newview/llvoavatar.cpp284
-rw-r--r--linden/indra/newview/llvoavatar.h20
-rw-r--r--linden/indra/newview/llvocache.cpp2
-rw-r--r--linden/indra/newview/llvocache.h2
-rw-r--r--linden/indra/newview/llvoclouds.cpp2
-rw-r--r--linden/indra/newview/llvoclouds.h2
-rw-r--r--linden/indra/newview/llvograss.cpp155
-rw-r--r--linden/indra/newview/llvograss.h12
-rw-r--r--linden/indra/newview/llvoground.cpp4
-rw-r--r--linden/indra/newview/llvoground.h2
-rw-r--r--linden/indra/newview/llvoiceclient.cpp4614
-rw-r--r--linden/indra/newview/llvoiceclient.h441
-rw-r--r--linden/indra/newview/llvoiceremotectrl.cpp2
-rw-r--r--linden/indra/newview/llvoiceremotectrl.h2
-rw-r--r--linden/indra/newview/llvoicevisualizer.cpp19
-rw-r--r--linden/indra/newview/llvoicevisualizer.h2
-rw-r--r--linden/indra/newview/llvoinventorylistener.cpp2
-rw-r--r--linden/indra/newview/llvoinventorylistener.h2
-rw-r--r--linden/indra/newview/llvopartgroup.cpp65
-rw-r--r--linden/indra/newview/llvopartgroup.h19
-rw-r--r--linden/indra/newview/llvosky.cpp82
-rw-r--r--linden/indra/newview/llvosky.h2
-rw-r--r--linden/indra/newview/llvosurfacepatch.cpp93
-rw-r--r--linden/indra/newview/llvosurfacepatch.h12
-rw-r--r--linden/indra/newview/llvotextbubble.cpp22
-rw-r--r--linden/indra/newview/llvotextbubble.h2
-rw-r--r--linden/indra/newview/llvotree.cpp74
-rw-r--r--linden/indra/newview/llvotree.h13
-rw-r--r--linden/indra/newview/llvotreenew.h2
-rw-r--r--linden/indra/newview/llvovolume.cpp142
-rw-r--r--linden/indra/newview/llvovolume.h3
-rw-r--r--linden/indra/newview/llvowater.cpp2
-rw-r--r--linden/indra/newview/llvowater.h2
-rw-r--r--linden/indra/newview/llvowlsky.cpp8
-rw-r--r--linden/indra/newview/llvowlsky.h2
-rw-r--r--linden/indra/newview/llwatchdog.cpp25
-rw-r--r--linden/indra/newview/llwatchdog.h10
-rw-r--r--linden/indra/newview/llwaterparammanager.cpp87
-rw-r--r--linden/indra/newview/llwaterparammanager.h5
-rw-r--r--linden/indra/newview/llwaterparamset.cpp2
-rw-r--r--linden/indra/newview/llwaterparamset.h2
-rw-r--r--linden/indra/newview/llwearable.cpp2
-rw-r--r--linden/indra/newview/llwearable.h2
-rw-r--r--linden/indra/newview/llwearablelist.cpp2
-rw-r--r--linden/indra/newview/llwearablelist.h2
-rw-r--r--linden/indra/newview/llweb.cpp2
-rw-r--r--linden/indra/newview/llweb.h2
-rw-r--r--linden/indra/newview/llwebbrowserctrl.cpp14
-rw-r--r--linden/indra/newview/llwebbrowserctrl.h2
-rw-r--r--linden/indra/newview/llwind.cpp2
-rw-r--r--linden/indra/newview/llwind.h2
-rw-r--r--linden/indra/newview/llwindebug.cpp356
-rw-r--r--linden/indra/newview/llwindebug.h5
-rw-r--r--linden/indra/newview/llwlanimator.cpp2
-rw-r--r--linden/indra/newview/llwlanimator.h2
-rw-r--r--linden/indra/newview/llwldaycycle.cpp2
-rw-r--r--linden/indra/newview/llwldaycycle.h2
-rw-r--r--linden/indra/newview/llwlparammanager.cpp130
-rw-r--r--linden/indra/newview/llwlparammanager.h5
-rw-r--r--linden/indra/newview/llwlparamset.cpp2
-rw-r--r--linden/indra/newview/llwlparamset.h2
-rw-r--r--linden/indra/newview/llworld.cpp5
-rw-r--r--linden/indra/newview/llworld.h2
-rw-r--r--linden/indra/newview/llworldmap.cpp7
-rw-r--r--linden/indra/newview/llworldmap.h2
-rw-r--r--linden/indra/newview/llworldmapview.cpp42
-rw-r--r--linden/indra/newview/llworldmapview.h2
-rw-r--r--linden/indra/newview/llxmlrpctransaction.cpp2
-rw-r--r--linden/indra/newview/llxmlrpctransaction.h2
-rw-r--r--linden/indra/newview/lsl_guide.html22078
-rw-r--r--linden/indra/newview/macmain.h2
-rw-r--r--linden/indra/newview/macutil_Prefix.h2
-rw-r--r--linden/indra/newview/macview_Prefix.h2
-rw-r--r--linden/indra/newview/noise.cpp2
-rw-r--r--linden/indra/newview/noise.h2
-rw-r--r--linden/indra/newview/pipeline.cpp269
-rw-r--r--linden/indra/newview/pipeline.h6
-rw-r--r--linden/indra/newview/randgauss.h2
-rw-r--r--linden/indra/newview/res/resource.h2
-rw-r--r--linden/indra/newview/res/viewerRes.rc4
-rw-r--r--linden/indra/newview/secondlife setup build dazzle.bat4
-rw-r--r--linden/indra/newview/skins/default/xui/de/alerts.xml855
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_about.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_about_land.xml445
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_animation_preview.xml92
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_avatar_picker.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_avatar_textures.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_beacons.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_buy_contents.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_buy_land.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_buy_object.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_chat_history.xml5
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_color_picker.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_customize.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_directory.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_env_settings.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_god_tools.xml52
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_group_info.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_html.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_inspect.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_instant_message_group.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_inventory.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_lagmeter.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_land_holdings.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_lsl_guide.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_mute.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_name_description.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_new_outfit_dialog.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_openobject.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_pay_object.xml22
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_preview_animation.xml5
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_preview_gesture.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_report_abuse.xml63
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_report_bug.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_script_queue.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_settings_debug.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_snapshot.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_telehub.xml26
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_tools.xml43
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_top_objects.xml80
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_url_entry.xml3
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_water.xml7
-rw-r--r--linden/indra/newview/skins/default/xui/de/floater_world_map.xml67
-rw-r--r--linden/indra/newview/skins/default/xui/de/menu_viewer.xml418
-rw-r--r--linden/indra/newview/skins/default/xui/de/mime_types.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/notify.xml109
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_avatar.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_avatar_classified.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_chat_bar.xml9
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_friends.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_group_general.xml73
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_group_invite.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_group_land_money.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_group_notices.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_group_roles.xml97
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_group_voting.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_media_remote_expanded.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_overlaybar.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_preferences_chat.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_preferences_general.xml114
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_preferences_im.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_preferences_input.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_preferences_network.xml23
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_preferences_popups.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_preferences_voice.xml29
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_region_debug.xml65
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_region_estate.xml3
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_status_bar.xml43
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_voice_controls.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_voice_enable.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/de/panel_voice_options.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/de/role_actions.xml114
-rw-r--r--linden/indra/newview/skins/default/xui/de/strings.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/alerts.xml55
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_about.xml7
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_animation_preview.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_beacons.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_chat_history.xml3
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_lagmeter.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml114
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/notify.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_audio_device.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_chat_bar.xml9
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_group_land_money.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml91
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml20
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml38
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_region_debug.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_status_bar.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_voice_remote.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_voice_remote_expanded.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/es/alerts.xml29
-rw-r--r--linden/indra/newview/skins/default/xui/es/floater_about_land.xml21
-rw-r--r--linden/indra/newview/skins/default/xui/es/floater_mute.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/es/menu_viewer.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/es/panel_group_land_money.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/es/panel_preferences_general.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/fr/alerts.xml2047
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_about.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_about_land.xml447
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_active_speakers.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_animation_preview.xml47
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_beacons.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_buy_contents.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_buy_currency.xml30
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_buy_land.xml66
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_buy_object.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_chat_history.xml18
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_color_picker.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_customize.xml546
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_directory.xml199
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_env_settings.xml20
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_god_tools.xml133
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_group_info.xml140
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml20
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_html.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_image_preview.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_import.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml18
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_instant_message_ad_hoc.xml11
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_inventory.xml74
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml31
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml40
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_joystick.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_lagmeter.xml18
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_land_holdings.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_media_browser.xml22
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_moveview.xml23
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_mute.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_mute_object.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_name_description.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_new_outfit_dialog.xml131
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_openobject.xml7
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_pay.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_pay_object.xml29
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_preferences.xml3
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_preview_animation.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_preview_notecard_keep_discard.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_preview_sound.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_price_for_listing.xml23
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_region_info.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_report_abuse.xml69
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_report_bug.xml20
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_script_ed_panel.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_sell_land.xml42
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_settings_debug.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_skin_preview_template.xml23
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_snapshot.xml42
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_sound_preview.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_telehub.xml23
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_tools.xml377
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_top_objects.xml64
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_url_entry.xml3
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_windlight_options.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/fr/floater_world_map.xml97
-rw-r--r--linden/indra/newview/skins/default/xui/fr/menu_inventory.xml125
-rw-r--r--linden/indra/newview/skins/default/xui/fr/menu_pie_avatar.xml26
-rw-r--r--linden/indra/newview/skins/default/xui/fr/menu_pie_land.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/fr/menu_pie_self.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/fr/menu_viewer.xml442
-rw-r--r--linden/indra/newview/skins/default/xui/fr/mime_types.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/fr/notify.xml70
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_audio.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_audio_device.xml9
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_avatar.xml142
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_avatar_classified.xml36
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_chat_bar.xml7
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_classified.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_event.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_friends.xml37
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_group.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_group_finder.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_group_general.xml74
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_group_invite.xml27
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_group_land_money.xml43
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_group_notices.xml75
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_group_roles.xml104
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_group_voting.xml63
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_groups.xml26
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_login.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_master_volume.xml7
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_media_controls.xml31
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_media_remote.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_media_remote_expanded.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_overlaybar.xml25
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_place.xml20
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_place_small.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_preferences_audio.xml41
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml75
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_preferences_general.xml132
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml94
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_preferences_im.xml46
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_preferences_input.xml33
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_preferences_network.xml23
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_preferences_popups.xml26
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_preferences_voice.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_preferences_web.xml21
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_region_covenant.xml13
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_region_debug.xml69
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_region_estate.xml84
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_region_general.xml55
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_region_terrain.xml41
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_speaker_controls.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_status_bar.xml44
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_toolbar.xml25
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_voice_controls.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_voice_enable.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_voice_options.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_voice_remote.xml5
-rw-r--r--linden/indra/newview/skins/default/xui/fr/panel_voice_remote_expanded.xml1
-rw-r--r--linden/indra/newview/skins/default/xui/fr/role_actions.xml172
-rw-r--r--linden/indra/newview/skins/default/xui/fr/strings.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/ja/alerts.xml174
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_about.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_about_land.xml466
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_beacons.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_bumps.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_buy_currency.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_buy_land.xml61
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_chat_history.xml7
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_customize.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_directory.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_group_info.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_im.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_inspect.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_instant_message.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_instant_message_group.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_inventory.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_land_holdings.xml29
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_media_browser.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_mute.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_mute_object.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_new_outfit_dialog.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_postcard.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_report_abuse.xml60
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_sell_land.xml32
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_snapshot.xml22
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_tools.xml44
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_top_objects.xml60
-rw-r--r--linden/indra/newview/skins/default/xui/ja/floater_url_entry.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/ja/menu_inventory.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/ja/menu_pie_avatar.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/menu_pie_object.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/ja/menu_viewer.xml430
-rw-r--r--linden/indra/newview/skins/default/xui/ja/notify.xml141
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_audio.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_avatar.xml46
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_chat_bar.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_classified.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_event.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_group_general.xml89
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_group_land_money.xml65
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_group_notices.xml52
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_group_roles.xml91
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_groups.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_login.xml18
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_place.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_place_small.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_preferences_audio.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_preferences_general.xml123
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_preferences_im.xml5
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_preferences_input.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_preferences_network.xml25
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_preferences_voice.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_preferences_web.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_region_debug.xml67
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_region_estate.xml5
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_region_general.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_status_bar.xml43
-rw-r--r--linden/indra/newview/skins/default/xui/ja/panel_toolbar.xml22
-rw-r--r--linden/indra/newview/skins/default/xui/ja/role_actions.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/ja/strings.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/ko/alerts.xml3
-rw-r--r--linden/indra/newview/skins/default/xui/ko/floater_about.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/ko/floater_about_land.xml3
-rw-r--r--linden/indra/newview/skins/default/xui/ko/floater_mute.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ko/floater_preview_gesture.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ko/menu_viewer.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/ko/panel_preferences_chat.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ko/panel_preferences_general.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/ko/panel_preferences_input.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/pt/alerts.xml1845
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_about.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_about_land.xml428
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_active_speakers.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_animation_preview.xml83
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml52
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_beacons.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_build_options.xml11
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_buy_contents.xml17
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_buy_currency.xml72
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_buy_land.xml179
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_buy_object.xml21
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_camera.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_chat_history.xml56
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_color_picker.xml5
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_customize.xml484
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml67
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_directory.xml283
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_env_settings.xml23
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_gesture.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml38
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_html.xml13
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_hud.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_im.xml52
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_image_preview.xml11
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml40
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_instant_message_ad_hoc.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_instant_message_group.xml30
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_inventory.xml64
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml36
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_joystick.xml85
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_lagmeter.xml152
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_land_holdings.xml29
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_landmark_ctrl.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml13
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_media_browser.xml20
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_mute.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_mute_object.xml11
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_new_outfit_dialog.xml138
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_openobject.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_pay.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_pay_object.xml23
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_postcard.xml34
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_preview_animation.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_preview_classified.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_preview_event.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml40
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_preview_notecard_keep_discard.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_preview_url.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_region_info.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_report_abuse.xml160
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_report_bug.xml97
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_script_debug.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_script_ed_panel.xml49
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_sim_release_message.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_snapshot.xml78
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml31
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_tools.xml403
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_top_objects.xml55
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_tos.xml21
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_url_entry.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_water.xml85
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_windlight_options.xml186
-rw-r--r--linden/indra/newview/skins/default/xui/pt/floater_world_map.xml9
-rw-r--r--linden/indra/newview/skins/default/xui/pt/menu_inventory.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/pt/menu_login.xml13
-rw-r--r--linden/indra/newview/skins/default/xui/pt/menu_pie_avatar.xml26
-rw-r--r--linden/indra/newview/skins/default/xui/pt/menu_slurl.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/pt/menu_viewer.xml356
-rw-r--r--linden/indra/newview/skins/default/xui/pt/mime_types.xml230
-rw-r--r--linden/indra/newview/skins/default/xui/pt/notify.xml266
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_audio_device.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_avatar.xml183
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_avatar_classified.xml48
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_chat_bar.xml28
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_classified.xml40
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_event.xml26
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_friends.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_group_general.xml88
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_group_invite.xml27
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_group_land_money.xml62
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_group_notices.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_group_roles.xml94
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_group_voting.xml103
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_login.xml20
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_media_controls.xml38
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_media_remote_expanded.xml28
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_overlaybar.xml17
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_place.xml41
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_place_small.xml41
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_preferences_audio.xml71
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml70
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_preferences_general.xml120
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml184
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_preferences_im.xml39
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_preferences_input.xml42
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_preferences_network.xml25
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_preferences_popups.xml26
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_preferences_skins.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_preferences_voice.xml7
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_preferences_web.xml28
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_region_covenant.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_region_debug.xml58
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_region_estate.xml80
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_region_general.xml55
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_speaker_controls.xml38
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_status_bar.xml46
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_toolbar.xml32
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_voice_controls.xml7
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_voice_enable.xml17
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_voice_options.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/pt/panel_voice_remote_expanded.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/pt/strings.xml421
-rw-r--r--linden/indra/newview/skins/default/xui/pt/teleport_strings.xml43
-rw-r--r--linden/indra/newview/skins/default/xui/zh/alerts.xml3291
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_about.xml43
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_about_land.xml451
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_active_speakers.xml23
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_animation_preview.xml109
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_auction.xml5
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml21
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_avatar_textures.xml22
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_beacons.xml35
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_build_options.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_bumps.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_buy_contents.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_buy_currency.xml17
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_buy_land.xml88
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_buy_object.xml19
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_camera.xml11
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_chat_history.xml40
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_chatterbox.xml3
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_clothing.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_color_picker.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_critical.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_customize.xml156
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml133
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_device_settings.xml3
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_directory.xml300
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_env_settings.xml54
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_gesture.xml11
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_god_tools.xml100
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_group_info.xml43
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml81
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_html.xml20
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_hud.xml9
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_im.xml73
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_image_preview.xml13
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_inspect.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml94
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_instant_message_ad_hoc.xml66
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_instant_message_group.xml76
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_inventory.xml42
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml44
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_lagmeter.xml182
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_land_holdings.xml30
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_landmark_ctrl.xml37
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_live_lsleditor.xml7
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_lsl_guide.xml19
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_media_browser.xml46
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_mem_leaking.xml36
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_mute.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_mute_object.xml25
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_my_friends.xml19
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_new_outfit_dialog.xml54
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_openobject.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_pay.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_pay_object.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_post_process.xml117
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_postcard.xml25
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preferences.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_animation.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_classified.xml7
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_embedded_texture.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_event.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_existing_landmark.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml29
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_new_landmark.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_notecard_keep_discard.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_sound.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_texture.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_texture_keep_discard.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_preview_url.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_price_for_listing.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_region_info.xml3
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_report_abuse.xml147
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_report_bug.xml32
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_script_debug.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_script_ed_panel.xml43
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_script_search.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_select_key.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_sell_land.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_settings_debug.xml27
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_sim_release_message.xml17
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_snapshot.xml99
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_sound_preview.xml17
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_telehub.xml22
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml13
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_tools.xml501
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_top_objects.xml32
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_tos.xml25
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_url_entry.xml27
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_voice_wizard.xml44
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_water.xml185
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_wearable_save_as.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_windlight_options.xml327
-rw-r--r--linden/indra/newview/skins/default/xui/zh/floater_world_map.xml46
-rw-r--r--linden/indra/newview/skins/default/xui/zh/menu_inventory.xml75
-rw-r--r--linden/indra/newview/skins/default/xui/zh/menu_login.xml36
-rw-r--r--linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml13
-rw-r--r--linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml5
-rw-r--r--linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/zh/menu_pie_self.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/zh/menu_viewer.xml258
-rw-r--r--linden/indra/newview/skins/default/xui/zh/mime_types.xml262
-rw-r--r--linden/indra/newview/skins/default/xui/zh/notify.xml592
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_audio.xml30
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_audio_device.xml44
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_avatar.xml137
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_avatar_classified.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_avatar_pick.xml11
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_chat_bar.xml15
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_classified.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_event.xml30
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_friends.xml23
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_group.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_group_finder.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_group_general.xml84
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_group_invite.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml38
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_group_notices.xml39
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_group_roles.xml63
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_group_voting.xml102
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_groups.xml29
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_login.xml21
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_media_controls.xml83
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_media_remote_expanded.xml39
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_overlaybar.xml32
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_place.xml62
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_place_small.xml62
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml52
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml54
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_preferences_general.xml122
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml254
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml49
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_preferences_input.xml41
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_preferences_network.xml39
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_preferences_popups.xml45
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_preferences_skins.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_preferences_voice.xml59
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_preferences_web.xml88
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_region_covenant.xml22
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_region_debug.xml67
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_region_estate.xml61
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_region_general.xml44
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_region_terrain.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_region_texture.xml42
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_speaker_controls.xml60
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_status_bar.xml39
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_toolbar.xml37
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_voice_controls.xml8
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_voice_enable.xml24
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_voice_options.xml45
-rw-r--r--linden/indra/newview/skins/default/xui/zh/panel_voice_remote_expanded.xml4
-rw-r--r--linden/indra/newview/skins/default/xui/zh/role_actions.xml173
-rw-r--r--linden/indra/newview/skins/default/xui/zh/strings.xml173
-rw-r--r--linden/indra/newview/skins/default/xui/zh/teleport_strings.xml109
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml22
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/panel_status_bar.xml2
-rwxr-xr-xlinden/indra/newview/viewer_manifest.py73
1385 files changed, 40899 insertions, 42834 deletions
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index f971f97..93c6e5f 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -5,6 +5,7 @@ project(viewer)
5include(00-Common) 5include(00-Common)
6include(Boost) 6include(Boost)
7include(BuildVersion) 7include(BuildVersion)
8include(DBusGlib)
8include(DirectX) 9include(DirectX)
9include(ELFIO) 10include(ELFIO)
10include(FMOD) 11include(FMOD)
@@ -124,6 +125,7 @@ set(viewer_SOURCE_FILES
124 llfloateravatarinfo.cpp 125 llfloateravatarinfo.cpp
125 llfloateravatarpicker.cpp 126 llfloateravatarpicker.cpp
126 llfloateravatartextures.cpp 127 llfloateravatartextures.cpp
128 llfloaterbeacons.cpp
127 llfloaterbuildoptions.cpp 129 llfloaterbuildoptions.cpp
128 llfloaterbulkpermission.cpp 130 llfloaterbulkpermission.cpp
129 llfloaterbump.cpp 131 llfloaterbump.cpp
@@ -199,6 +201,7 @@ set(viewer_SOURCE_FILES
199 llglsandbox.cpp 201 llglsandbox.cpp
200 llgroupmgr.cpp 202 llgroupmgr.cpp
201 llgroupnotify.cpp 203 llgroupnotify.cpp
204 llhomelocationresponder.cpp
202 llhoverview.cpp 205 llhoverview.cpp
203 llhudeffectbeam.cpp 206 llhudeffectbeam.cpp
204 llhudeffect.cpp 207 llhudeffect.cpp
@@ -517,6 +520,7 @@ set(viewer_HEADER_FILES
517 llfloateravatarinfo.h 520 llfloateravatarinfo.h
518 llfloateravatarpicker.h 521 llfloateravatarpicker.h
519 llfloateravatartextures.h 522 llfloateravatartextures.h
523 llfloaterbeacons.h
520 llfloaterbuildoptions.h 524 llfloaterbuildoptions.h
521 llfloaterbulkpermission.h 525 llfloaterbulkpermission.h
522 llfloaterbump.h 526 llfloaterbump.h
@@ -591,6 +595,7 @@ set(viewer_HEADER_FILES
591 llgivemoney.h 595 llgivemoney.h
592 llgroupmgr.h 596 llgroupmgr.h
593 llgroupnotify.h 597 llgroupnotify.h
598 llhomelocationresponder.h
594 llhoverview.h 599 llhoverview.h
595 llhudeffect.h 600 llhudeffect.h
596 llhudeffectbeam.h 601 llhudeffectbeam.h
@@ -873,6 +878,7 @@ endif (DARWIN)
873 878
874if (LINUX) 879if (LINUX)
875 LIST(APPEND viewer_SOURCE_FILES llappviewerlinux.cpp) 880 LIST(APPEND viewer_SOURCE_FILES llappviewerlinux.cpp)
881 LIST(APPEND viewer_SOURCE_FILES llappviewerlinux_api_dbus.cpp)
876 LIST(APPEND CMAKE_EXE_LINKER_FLAGS -Wl,--as-needed) 882 LIST(APPEND CMAKE_EXE_LINKER_FLAGS -Wl,--as-needed)
877 883
878 set(viewer_LIBRARIES 884 set(viewer_LIBRARIES
@@ -1022,6 +1028,7 @@ set(viewer_XUI_FILES
1022 skins/default/xui/en-us/floater_audio_volume.xml 1028 skins/default/xui/en-us/floater_audio_volume.xml
1023 skins/default/xui/en-us/floater_avatar_picker.xml 1029 skins/default/xui/en-us/floater_avatar_picker.xml
1024 skins/default/xui/en-us/floater_avatar_textures.xml 1030 skins/default/xui/en-us/floater_avatar_textures.xml
1031 skins/default/xui/en-us/floater_beacons.xml
1025 skins/default/xui/en-us/floater_build_options.xml 1032 skins/default/xui/en-us/floater_build_options.xml
1026 skins/default/xui/en-us/floater_bulk_perms.xml 1033 skins/default/xui/en-us/floater_bulk_perms.xml
1027 skins/default/xui/en-us/floater_bumps.xml 1034 skins/default/xui/en-us/floater_bumps.xml
@@ -1241,6 +1248,16 @@ set_source_files_properties(${viewer_CHARACTER_FILES}
1241 1248
1242list(APPEND viewer_SOURCE_FILES ${viewer_CHARACTER_FILES}) 1249list(APPEND viewer_SOURCE_FILES ${viewer_CHARACTER_FILES})
1243 1250
1251if (WINDOWS)
1252 file(GLOB viewer_INSTALLER_FILES installers/windows/*.nsi)
1253
1254 source_group("Installer Files" FILES ${viewer_INSTALLER_FILES})
1255
1256 set_source_files_properties(${viewer_INSTALLER_FILES}
1257 PROPERTIES HEADER_FILE_ONLY TRUE)
1258
1259 list(APPEND viewer_SOURCE_FILES ${viewer_INSTALLER_FILES})
1260endif (WINDOWS)
1244 1261
1245if (OPENAL) 1262if (OPENAL)
1246 set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_OPENAL") 1263 set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_OPENAL")
@@ -1260,6 +1277,7 @@ if (FMOD)
1260 PROPERTIES 1277 PROPERTIES
1261 BUILD_WITH_INSTALL_RPATH 1 1278 BUILD_WITH_INSTALL_RPATH 1
1262 INSTALL_NAME_DIR "@executable_path/../Resources" 1279 INSTALL_NAME_DIR "@executable_path/../Resources"
1280 LINK_FLAGS "-unexported_symbols_list ../newview/fmod_hidden_symbols.exp"
1263 ) 1281 )
1264 endif (DARWIN) 1282 endif (DARWIN)
1265 set(FMODWRAPPER_LIBRARY fmodwrapper) 1283 set(FMODWRAPPER_LIBRARY fmodwrapper)
@@ -1274,24 +1292,24 @@ list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES})
1274set_source_files_properties(${viewer_HEADER_FILES} 1292set_source_files_properties(${viewer_HEADER_FILES}
1275 PROPERTIES HEADER_FILE_ONLY TRUE) 1293 PROPERTIES HEADER_FILE_ONLY TRUE)
1276 1294
1277add_executable(imprudence-bin 1295add_executable(${VIEWER_BINARY_NAME}
1278 WIN32 1296 WIN32
1279 MACOSX_BUNDLE 1297 MACOSX_BUNDLE
1280 ${viewer_SOURCE_FILES} 1298 ${viewer_SOURCE_FILES}
1281 ) 1299 )
1282check_message_template(imprudence-bin) 1300check_message_template(${VIEWER_BINARY_NAME})
1283 1301
1284set(PACKAGE OFF CACHE BOOL 1302set(PACKAGE OFF CACHE BOOL
1285 "Add a package target that builds an installer package.") 1303 "Add a package target that builds an installer package.")
1286 1304
1287if (WINDOWS) 1305if (WINDOWS)
1288 if(MSVC71) 1306 if(MSVC71)
1289 set(release_flags "/MAP:Release/imprudence-bin.map /MAPINFO:LINES") 1307 set(release_flags "/MAP:Release/${VIEWER_BINARY_NAME}.map /MAPINFO:LINES")
1290 else(MSVC71) 1308 else(MSVC71)
1291 set(release_flags "/MAP:Release/imprudence-bin.map") 1309 set(release_flags "/MAP:Release/${VIEWER_BINARY_NAME}.map")
1292 endif(MSVC71) 1310 endif(MSVC71)
1293 1311
1294 set_target_properties(imprudence-bin 1312 set_target_properties(${VIEWER_BINARY_NAME}
1295 PROPERTIES 1313 PROPERTIES
1296 LINK_FLAGS "/debug /NODEFAULTLIB:MSVCRT /SUBSYSTEM:WINDOWS" 1314 LINK_FLAGS "/debug /NODEFAULTLIB:MSVCRT /SUBSYSTEM:WINDOWS"
1297 LINK_FLAGS_DEBUG "/NODEFAULTLIB:LIBCMT /NODEFAULTLIB:MSVCRTD" 1315 LINK_FLAGS_DEBUG "/NODEFAULTLIB:LIBCMT /NODEFAULTLIB:MSVCRTD"
@@ -1301,20 +1319,20 @@ if (WINDOWS)
1301 # sets the 'working directory' for debugging from visual studio. 1319 # sets the 'working directory' for debugging from visual studio.
1302 if (NOT UNATTENDED) 1320 if (NOT UNATTENDED)
1303 add_custom_command( 1321 add_custom_command(
1304 TARGET imprudence-bin PRE_BUILD 1322 TARGET ${VIEWER_BINARY_NAME} PRE_BUILD
1305 COMMAND ${CMAKE_SOURCE_DIR}/tools/vstool/vstool.exe 1323 COMMAND ${CMAKE_SOURCE_DIR}/tools/vstool/vstool.exe
1306 ARGS 1324 ARGS
1307 --solution 1325 --solution
1308 ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.sln 1326 ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.sln
1309 --workingdir 1327 --workingdir
1310 imprudence-bin 1328 ${VIEWER_BINARY_NAME}
1311 ${CMAKE_CURRENT_SOURCE_DIR} 1329 ${CMAKE_CURRENT_SOURCE_DIR}
1312 COMMENT "Setting the imprudence-bin working directory for debugging." 1330 COMMENT "Setting the ${VIEWER_BINARY_NAME} working directory for debugging."
1313 ) 1331 )
1314 endif (NOT UNATTENDED) 1332 endif (NOT UNATTENDED)
1315 1333
1316 add_custom_command( 1334 add_custom_command(
1317 TARGET imprudence-bin PRE_BUILD 1335 TARGET ${VIEWER_BINARY_NAME} PRE_BUILD
1318 COMMAND ${CMAKE_COMMAND} 1336 COMMAND ${CMAKE_COMMAND}
1319 ARGS 1337 ARGS
1320 -E 1338 -E
@@ -1325,7 +1343,7 @@ if (WINDOWS)
1325 ) 1343 )
1326 1344
1327 add_custom_command( 1345 add_custom_command(
1328 TARGET imprudence-bin PRE_BUILD 1346 TARGET ${VIEWER_BINARY_NAME} PRE_BUILD
1329 COMMAND ${CMAKE_COMMAND} 1347 COMMAND ${CMAKE_COMMAND}
1330 ARGS 1348 ARGS
1331 -E 1349 -E
@@ -1335,10 +1353,10 @@ if (WINDOWS)
1335 COMMENT "Copying message.xml to the runtime folder." 1353 COMMENT "Copying message.xml to the runtime folder."
1336 ) 1354 )
1337 1355
1338 add_dependencies(imprudence-bin copy_win_libs) 1356 add_dependencies(${VIEWER_BINARY_NAME} copy_win_libs)
1339 1357
1340 if (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts) 1358 if (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
1341 add_dependencies(imprudence-bin copy_win_scripts) 1359 add_dependencies(${VIEWER_BINARY_NAME} copy_win_scripts)
1342 endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts) 1360 endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
1343 1361
1344 add_custom_command( 1362 add_custom_command(
@@ -1348,14 +1366,14 @@ if (WINDOWS)
1348 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py 1366 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1349 --configuration=${CMAKE_CFG_INTDIR} 1367 --configuration=${CMAKE_CFG_INTDIR}
1350 --channel=${VIEWER_CHANNEL} 1368 --channel=${VIEWER_CHANNEL}
1351 --login_channel=${VIEWER_CHANNEL} 1369 --login_channel=${VIEWER_LOGIN_CHANNEL}
1352 --grid=${GRID} 1370 --grid=${GRID}
1353 --source=${CMAKE_CURRENT_SOURCE_DIR} 1371 --source=${CMAKE_CURRENT_SOURCE_DIR}
1354 --artwork=${ARTWORK_DIR} 1372 --artwork=${ARTWORK_DIR}
1355 --build=${CMAKE_CURRENT_BINARY_DIR} 1373 --build=${CMAKE_CURRENT_BINARY_DIR}
1356 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR} 1374 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
1357 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat 1375 --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
1358 DEPENDS imprudence-bin ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py 1376 DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1359 ) 1377 )
1360 if (PACKAGE) 1378 if (PACKAGE)
1361 add_custom_target(package ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat) 1379 add_custom_target(package ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat)
@@ -1363,7 +1381,7 @@ if (WINDOWS)
1363 endif (PACKAGE) 1381 endif (PACKAGE)
1364endif (WINDOWS) 1382endif (WINDOWS)
1365 1383
1366target_link_libraries(imprudence-bin 1384target_link_libraries(${VIEWER_BINARY_NAME}
1367 ${LLAUDIO_LIBRARIES} 1385 ${LLAUDIO_LIBRARIES}
1368 ${LLCHARACTER_LIBRARIES} 1386 ${LLCHARACTER_LIBRARIES}
1369 ${LLIMAGE_LIBRARIES} 1387 ${LLIMAGE_LIBRARIES}
@@ -1385,6 +1403,7 @@ target_link_libraries(imprudence-bin
1385 ${BOOST_PROGRAM_OPTIONS_LIBRARY} 1403 ${BOOST_PROGRAM_OPTIONS_LIBRARY}
1386 ${BOOST_REGEX_LIBRARY} 1404 ${BOOST_REGEX_LIBRARY}
1387 ${BOOST_SIGNALS_LIBRARY} 1405 ${BOOST_SIGNALS_LIBRARY}
1406 ${DBUSGLIB_LIBRARIES}
1388 ${OPENGL_LIBRARIES} 1407 ${OPENGL_LIBRARIES}
1389 ${FMODWRAPPER_LIBRARY} 1408 ${FMODWRAPPER_LIBRARY}
1390 ${OPENGL_LIBRARIES} 1409 ${OPENGL_LIBRARIES}
@@ -1395,7 +1414,6 @@ target_link_libraries(imprudence-bin
1395 ${NDOF_LIBRARY} 1414 ${NDOF_LIBRARY}
1396 ${WINDOWS_LIBRARIES} 1415 ${WINDOWS_LIBRARIES}
1397 ${XMLRPCEPI_LIBRARIES} 1416 ${XMLRPCEPI_LIBRARIES}
1398 ${ZLIB_LIBRARIES}
1399 ${ELFIO_LIBRARIES} 1417 ${ELFIO_LIBRARIES}
1400 ) 1418 )
1401 1419
@@ -1409,7 +1427,7 @@ if (LINUX)
1409 add_custom_command( 1427 add_custom_command(
1410 OUTPUT imprudence-stripped 1428 OUTPUT imprudence-stripped
1411 COMMAND strip 1429 COMMAND strip
1412 ARGS --strip-debug -o imprudence-stripped imprudence-bin 1430 ARGS --strip-debug -o imprudence-stripped ${VIEWER_BINARY_NAME}
1413 DEPENDS imprudence-bin 1431 DEPENDS imprudence-bin
1414 ) 1432 )
1415 1433
@@ -1422,7 +1440,7 @@ if (LINUX)
1422 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py 1440 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1423 --grid=${GRID} 1441 --grid=${GRID}
1424 --channel=${VIEWER_CHANNEL} 1442 --channel=${VIEWER_CHANNEL}
1425 --login_channel=${VIEWER_CHANNEL} 1443 --login_channel=${VIEWER_LOGIN_CHANNEL}
1426 --installer_name=${product} 1444 --installer_name=${product}
1427 --arch=${ARCH} 1445 --arch=${ARCH}
1428 --source=${CMAKE_CURRENT_SOURCE_DIR} 1446 --source=${CMAKE_CURRENT_SOURCE_DIR}
@@ -1442,7 +1460,7 @@ endif (LINUX)
1442if (DARWIN) 1460if (DARWIN)
1443 set(product "Imprudence") 1461 set(product "Imprudence")
1444 set_target_properties( 1462 set_target_properties(
1445 imprudence-bin 1463 ${VIEWER_BINARY_NAME}
1446 PROPERTIES 1464 PROPERTIES
1447 OUTPUT_NAME "${product}" 1465 OUTPUT_NAME "${product}"
1448 MACOSX_BUNDLE_INFO_STRING "info string - localize me" 1466 MACOSX_BUNDLE_INFO_STRING "info string - localize me"
@@ -1456,7 +1474,7 @@ if (DARWIN)
1456 ) 1474 )
1457 1475
1458 add_custom_command( 1476 add_custom_command(
1459 TARGET imprudence-bin POST_BUILD 1477 TARGET ${VIEWER_BINARY_NAME} POST_BUILD
1460 COMMAND ${PYTHON_EXECUTABLE} 1478 COMMAND ${PYTHON_EXECUTABLE}
1461 ARGS 1479 ARGS
1462 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py 1480 ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
@@ -1467,11 +1485,11 @@ if (DARWIN)
1467 --artwork=${ARTWORK_DIR} 1485 --artwork=${ARTWORK_DIR}
1468 --build=${CMAKE_CURRENT_BINARY_DIR} 1486 --build=${CMAKE_CURRENT_BINARY_DIR}
1469 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app 1487 --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
1470 DEPENDS imprudence-bin ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py 1488 DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
1471 ) 1489 )
1472 1490
1473 if (PACKAGE) 1491 if (PACKAGE)
1474 add_custom_target(package ALL DEPENDS imprudence-bin) 1492 add_custom_target(package ALL DEPENDS ${VIEWER_BINARY_NAME})
1475 add_dependencies(package mac-updater mac-crash-logger) 1493 add_dependencies(package mac-updater mac-crash-logger)
1476 1494
1477 add_custom_command( 1495 add_custom_command(
diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings
index 784a1b7..246ac98 100644
--- a/linden/indra/newview/English.lproj/InfoPlist.strings
+++ b/linden/indra/newview/English.lproj/InfoPlist.strings
@@ -1,6 +1,5 @@
1/* Localized versions of Info.plist keys */ 1/* Localized versions of Info.plist keys */
2 2
3CFBundleName = "Imprudence"; 3CFBundleName = "Imprudence";
4CFBundleShortVersionString = "Imprudence version 1.0.0"; 4CFBundleShortVersionString = "Imprudence version 1.0.0";
5CFBundleGetInfoString = "Imprudence version 1.0.0, Copyright 2004-2008 Linden Research, Inc."; 5CFBundleGetInfoString = "Imprudence version 1.0.0, Copyright 2004-2008 Linden Research, Inc.";
6
diff --git a/linden/indra/newview/VertexCache.h b/linden/indra/newview/VertexCache.h
index d402e28..98a445e 100644
--- a/linden/indra/newview/VertexCache.h
+++ b/linden/indra/newview/VertexCache.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/VorbisFramework.h b/linden/indra/newview/VorbisFramework.h
index 146302c..0b2c81f 100644
--- a/linden/indra/newview/VorbisFramework.h
+++ b/linden/indra/newview/VorbisFramework.h
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2003&license=viewergpl$ 7 * $LicenseInfo:firstyear=2003&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2003-2008, Linden Research, Inc. 9 * Copyright (c) 2003-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/app_settings/keywords.ini b/linden/indra/newview/app_settings/keywords.ini
index 56acf4c..5118e67 100644
--- a/linden/indra/newview/app_settings/keywords.ini
+++ b/linden/indra/newview/app_settings/keywords.ini
@@ -332,11 +332,11 @@ REMOTE_DATA_REQUEST Value of event_type in remote_event if XML-RPC request is re
332REMOTE_DATA_REPLY Value of event_type in remote_event if XML-RPC reply is received 332REMOTE_DATA_REPLY Value of event_type in remote_event if XML-RPC reply is received
333 333
334 334
335PRIM_TYPE Followed by PRIM_TYPE_BOX, PRIM_TYPE_CYLINDER, PRIM_TYPE_PRISM, PRIM_TYPE_SPHERE,:PRIM_TYPE_TORUS, or PRIM_TYPE_TUBE and their arguments 335PRIM_TYPE Followed by PRIM_TYPE_BOX, PRIM_TYPE_CYLINDER, PRIM_TYPE_PRISM, PRIM_TYPE_SPHERE, PRIM_TYPE_TORUS, PRIM_TYPE_TUBE, or PRIM_TYPE_SCULPT and their arguments
336PRIM_MATERIAL Sets material to PRIM_MATERIAL_STONE, PRIM_MATERIAL_METAL, PRIM_MATERIAL_GLASS,:PRIM_MATERIAL_WOOD, PRIM_MATERIAL_FLESH, PRIM_MATERIAL_PLASTIC,:PRIM_MATERIAL_RUBBER, or PRIM_MATERIAL_LIGHT 336PRIM_MATERIAL Followed by PRIM_MATERIAL_STONE, PRIM_MATERIAL_METAL, PRIM_MATERIAL_GLASS, PRIM_MATERIAL_WOOD, PRIM_MATERIAL_FLESH, PRIM_MATERIAL_PLASTIC, or PRIM_MATERIAL_RUBBER
337PRIM_PHYSICS Sets physics to TRUE or FALSE 337PRIM_PHYSICS Sets physics to TRUE or FALSE
338PRIM_FLEXIBLE Sets primitive flexibility to TRUE or FALSE 338PRIM_FLEXIBLE Followed by TRUE or FALSE, integer softness, float gravity, float friction, float wind, float tension, and vector force
339PRIM_POINT_LIGHT Sets light emission to TRUE or FALSE 339PRIM_POINT_LIGHT Followed by TRUE or FALSE, vector color, float intensity, float radius, float falloff
340PRIM_TEMP_ON_REZ Sets temporay on rez to TRUE or FALSE 340PRIM_TEMP_ON_REZ Sets temporay on rez to TRUE or FALSE
341PRIM_PHANTOM Sets phantom to TRUE or FALSE 341PRIM_PHANTOM Sets phantom to TRUE or FALSE
342PRIM_CAST_SHADOWS DEPRECATED. Takes 1 parameter, an integer, but has no effect when set and always returns 0 if used in llGetPrimitiveParams. 342PRIM_CAST_SHADOWS DEPRECATED. Takes 1 parameter, an integer, but has no effect when set and always returns 0 if used in llGetPrimitiveParams.
@@ -357,7 +357,7 @@ PRIM_TYPE_SPHERE Followed by integer hole shape, vector cut, float hollow, vecto
357PRIM_TYPE_TORUS Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew 357PRIM_TYPE_TORUS Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew
358PRIM_TYPE_TUBE Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew 358PRIM_TYPE_TUBE Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew
359PRIM_TYPE_RING Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew 359PRIM_TYPE_RING Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew
360PRIM_TYPE_SCULPT Followed by a key or string texture uuid. 360PRIM_TYPE_SCULPT Followed by a key/string texture uuid, and one of PRIM_SCULPT_TYPE_SPHERE, PRIM_SCULPT_TYPE_TORUS, PRIM_SCULPT_TYPE_PLANE, or PRIM_SCULPT_TYPE_CYLINDER
361 361
362PRIM_HOLE_DEFAULT Sets hole type to match the prim type. 362PRIM_HOLE_DEFAULT Sets hole type to match the prim type.
363PRIM_HOLE_SQUARE Sets hole type to square. 363PRIM_HOLE_SQUARE Sets hole type to square.
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index 55ff208..9a6749b 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -33,10 +33,10 @@
33 <string>Color4</string> 33 <string>Color4</string>
34 <key>Value</key> 34 <key>Value</key>
35 <array> 35 <array>
36 <real>0.0196078431372</real> 36 <real>1.0</real>
37 <real>0.6862745098039</real> 37 <real>1.0</real>
38 <real>0.9803921568627</real> 38 <real>1.0</real>
39 <real>1</real> 39 <real>1.0</real>
40 </array> 40 </array>
41 </map> 41 </map>
42 <key>AgentChatColor</key> 42 <key>AgentChatColor</key>
@@ -165,17 +165,6 @@
165 <key>Value</key> 165 <key>Value</key>
166 <integer>0</integer> 166 <integer>0</integer>
167 </map> 167 </map>
168 <key>AsyncKeyboard</key>
169 <map>
170 <key>Comment</key>
171 <string>Improves responsiveness to keyboard input when at low framerates</string>
172 <key>Persist</key>
173 <integer>1</integer>
174 <key>Type</key>
175 <string>Boolean</string>
176 <key>Value</key>
177 <integer>1</integer>
178 </map>
179 <key>AuctionShowFence</key> 168 <key>AuctionShowFence</key>
180 <map> 169 <map>
181 <key>Comment</key> 170 <key>Comment</key>
@@ -2599,7 +2588,7 @@
2599 <key>Type</key> 2588 <key>Type</key>
2600 <string>Boolean</string> 2589 <string>Boolean</string>
2601 <key>Value</key> 2590 <key>Value</key>
2602 <integer>0</integer> 2591 <integer>1</integer>
2603 </map> 2592 </map>
2604 <key>FloaterActiveSpeakersSortColumn</key> 2593 <key>FloaterActiveSpeakersSortColumn</key>
2605 <map> 2594 <map>
@@ -2660,6 +2649,22 @@
2660 <integer>0</integer> 2649 <integer>0</integer>
2661 </array> 2650 </array>
2662 </map> 2651 </map>
2652 <key>FloaterBeaconsRect</key>
2653 <map>
2654 <key>Comment</key>
2655 <string>Rectangle for beacon and highlight controls</string>
2656 <key>Persist</key>
2657 <integer>1</integer>
2658 <key>Type</key>
2659 <string>Rect</string>
2660 <key>Value</key>
2661 <array>
2662 <integer>200</integer>
2663 <integer>250</integer>
2664 <integer>250</integer>
2665 <integer>200</integer>
2666 </array>
2667 </map>
2663 <key>FloaterBuildOptionsRect</key> 2668 <key>FloaterBuildOptionsRect</key>
2664 <map> 2669 <map>
2665 <key>Comment</key> 2670 <key>Comment</key>
@@ -3579,6 +3584,17 @@
3579 <key>Value</key> 3584 <key>Value</key>
3580 <integer>0</integer> 3585 <integer>0</integer>
3581 </map> 3586 </map>
3587 <key>ForceMandatoryUpdate</key>
3588 <map>
3589 <key>Comment</key>
3590 <string>For QA: On next startup, forces the auto-updater to run</string>
3591 <key>Persist</key>
3592 <integer>1</integer>
3593 <key>Type</key>
3594 <string>Boolean</string>
3595 <key>Value</key>
3596 <integer>0</integer>
3597 </map>
3582 <key>ForwardBtnRect</key> 3598 <key>ForwardBtnRect</key>
3583 <map> 3599 <map>
3584 <key>Comment</key> 3600 <key>Comment</key>
@@ -3950,7 +3966,18 @@
3950 <key>Value</key> 3966 <key>Value</key>
3951 <real>0.0</real> 3967 <real>0.0</real>
3952 </map> 3968 </map>
3953 <key>InventoryAutoOpenDelay</key> 3969 <key>InstallLanguage</key>
3970 <map>
3971 <key>Comment</key>
3972 <string>Language passed from installer (for UI)</string>
3973 <key>Persist</key>
3974 <integer>1</integer>
3975 <key>Type</key>
3976 <string>String</string>
3977 <key>Value</key>
3978 <string>default</string>
3979 </map>
3980 <key>InventoryAutoOpenDelay</key>
3954 <map> 3981 <map>
3955 <key>Comment</key> 3982 <key>Comment</key>
3956 <string>Seconds before automatically opening inventory when mouse is over inventory button when performing inventory drag and drop</string> 3983 <string>Seconds before automatically opening inventory when mouse is over inventory button when performing inventory drag and drop</string>
@@ -4173,7 +4200,7 @@
4173 <key>Type</key> 4200 <key>Type</key>
4174 <string>String</string> 4201 <string>String</string>
4175 <key>Value</key> 4202 <key>Value</key>
4176 <string>https://wiki.secondlife.com/wiki/[LSL_STRING]</string> 4203 <string>http://wiki.secondlife.com/wiki/[LSL_STRING]</string>
4177 </map> 4204 </map>
4178 <key>LagMeterShrunk</key> 4205 <key>LagMeterShrunk</key>
4179 <map> 4206 <map>
@@ -4200,7 +4227,7 @@
4200 <key>Language</key> 4227 <key>Language</key>
4201 <map> 4228 <map>
4202 <key>Comment</key> 4229 <key>Comment</key>
4203 <string>Language specifier (for XUI)</string> 4230 <string>Language specifier (for UI)</string>
4204 <key>Persist</key> 4231 <key>Persist</key>
4205 <integer>1</integer> 4232 <integer>1</integer>
4206 <key>Type</key> 4233 <key>Type</key>
@@ -4274,10 +4301,11 @@
4274 <key>Value</key> 4301 <key>Value</key>
4275 <string>0.0.0</string> 4302 <string>0.0.0</string>
4276 </map> 4303 </map>
4277 <key>LastSnapshotHeight</key> 4304
4305 <key>LastSnapshotToEmailHeight</key>
4278 <map> 4306 <map>
4279 <key>Comment</key> 4307 <key>Comment</key>
4280 <string>The height of the last snapshot, in px</string> 4308 <string>The height of the last email snapshot, in px</string>
4281 <key>Persist</key> 4309 <key>Persist</key>
4282 <integer>1</integer> 4310 <integer>1</integer>
4283 <key>Type</key> 4311 <key>Type</key>
@@ -4285,21 +4313,32 @@
4285 <key>Value</key> 4313 <key>Value</key>
4286 <integer>768</integer> 4314 <integer>768</integer>
4287 </map> 4315 </map>
4288 <key>LastSnapshotType</key> 4316 <key>LastSnapshotToEmailWidth</key>
4289 <map> 4317 <map>
4290 <key>Comment</key> 4318 <key>Comment</key>
4291 <string>Select this as next type of snapshot to take (0 = postcard, 1 = texture, 2 = local image)</string> 4319 <string>The width of the last email snapshot, in px</string>
4292 <key>Persist</key> 4320 <key>Persist</key>
4293 <integer>1</integer> 4321 <integer>1</integer>
4294 <key>Type</key> 4322 <key>Type</key>
4295 <string>S32</string> 4323 <string>S32</string>
4296 <key>Value</key> 4324 <key>Value</key>
4297 <integer>0</integer> 4325 <integer>1024</integer>
4326 </map>
4327 <key>LastSnapshotToDiskHeight</key>
4328 <map>
4329 <key>Comment</key>
4330 <string>The height of the last disk snapshot, in px</string>
4331 <key>Persist</key>
4332 <integer>1</integer>
4333 <key>Type</key>
4334 <string>S32</string>
4335 <key>Value</key>
4336 <integer>768</integer>
4298 </map> 4337 </map>
4299 <key>LastSnapshotWidth</key> 4338 <key>LastSnapshotToDiskWidth</key>
4300 <map> 4339 <map>
4301 <key>Comment</key> 4340 <key>Comment</key>
4302 <string>The width of the last snapshot, in px</string> 4341 <string>The width of the last disk snapshot, in px</string>
4303 <key>Persist</key> 4342 <key>Persist</key>
4304 <integer>1</integer> 4343 <integer>1</integer>
4305 <key>Type</key> 4344 <key>Type</key>
@@ -4307,6 +4346,39 @@
4307 <key>Value</key> 4346 <key>Value</key>
4308 <integer>1024</integer> 4347 <integer>1024</integer>
4309 </map> 4348 </map>
4349 <key>LastSnapshotToInventoryHeight</key>
4350 <map>
4351 <key>Comment</key>
4352 <string>The height of the last texture snapshot, in px</string>
4353 <key>Persist</key>
4354 <integer>1</integer>
4355 <key>Type</key>
4356 <string>S32</string>
4357 <key>Value</key>
4358 <integer>512</integer>
4359 </map>
4360 <key>LastSnapshotToInventoryWidth</key>
4361 <map>
4362 <key>Comment</key>
4363 <string>The width of the last texture snapshot, in px</string>
4364 <key>Persist</key>
4365 <integer>1</integer>
4366 <key>Type</key>
4367 <string>S32</string>
4368 <key>Value</key>
4369 <integer>512</integer>
4370 </map>
4371 <key>LastSnapshotType</key>
4372 <map>
4373 <key>Comment</key>
4374 <string>Select this as next type of snapshot to take (0 = postcard, 1 = texture, 2 = local image)</string>
4375 <key>Persist</key>
4376 <integer>1</integer>
4377 <key>Type</key>
4378 <string>S32</string>
4379 <key>Value</key>
4380 <integer>0</integer>
4381 </map>
4310 <key>LeftClickShowMenu</key> 4382 <key>LeftClickShowMenu</key>
4311 <map> 4383 <map>
4312 <key>Comment</key> 4384 <key>Comment</key>
@@ -4483,17 +4555,6 @@
4483 <key>Value</key> 4555 <key>Value</key>
4484 <real>20.0</real> 4556 <real>20.0</real>
4485 </map> 4557 </map>
4486 <key>MainloopTimeoutDefault</key>
4487 <map>
4488 <key>Comment</key>
4489 <string>Timeout duration for mainloop lock detection, in seconds.</string>
4490 <key>Persist</key>
4491 <integer>1</integer>
4492 <key>Type</key>
4493 <string>F32</string>
4494 <key>Value</key>
4495 <real>10.0</real>
4496 </map>
4497 <key>MapOverlayIndex</key> 4558 <key>MapOverlayIndex</key>
4498 <map> 4559 <map>
4499 <key>Comment</key> 4560 <key>Comment</key>
@@ -6094,6 +6155,17 @@
6094 <key>Value</key> 6155 <key>Value</key>
6095 <real>1.3</real> 6156 <real>1.3</real>
6096 </map> 6157 </map>
6158 <key>RenderGround</key>
6159 <map>
6160 <key>Comment</key>
6161 <string>Determines whether we can render the ground pool or not</string>
6162 <key>Persist</key>
6163 <integer>1</integer>
6164 <key>Type</key>
6165 <string>Boolean</string>
6166 <key>Value</key>
6167 <integer>1</integer>
6168 </map>
6097 <key>RenderHUDInSnapshot</key> 6169 <key>RenderHUDInSnapshot</key>
6098 <map> 6170 <map>
6099 <key>Comment</key> 6171 <key>Comment</key>
@@ -7648,7 +7720,7 @@
7648 <key>SystemLanguage</key> 7720 <key>SystemLanguage</key>
7649 <map> 7721 <map>
7650 <key>Comment</key> 7722 <key>Comment</key>
7651 <string>Language indicated by system settings (for XUI)</string> 7723 <string>Language indicated by system settings (for UI)</string>
7652 <key>Persist</key> 7724 <key>Persist</key>
7653 <integer>1</integer> 7725 <integer>1</integer>
7654 <key>Type</key> 7726 <key>Type</key>
@@ -9596,16 +9668,27 @@
9596 <key>Value</key> 9668 <key>Value</key>
9597 <string>-1</string> 9669 <string>-1</string>
9598 </map> 9670 </map>
9599 <key>VivoxDebugServerName</key> 9671 <key>VivoxDebugSIPURIHostName</key>
9672 <map>
9673 <key>Comment</key>
9674 <string>Hostname portion of vivox SIP URIs (empty string for the default).</string>
9675 <key>Persist</key>
9676 <integer>1</integer>
9677 <key>Type</key>
9678 <string>String</string>
9679 <key>Value</key>
9680 <string></string>
9681 </map>
9682 <key>VivoxDebugVoiceAccountServerURI</key>
9600 <map> 9683 <map>
9601 <key>Comment</key> 9684 <key>Comment</key>
9602 <string>Hostname of the vivox account server to use for voice when not connected to Agni.</string> 9685 <string>URI to the vivox account management server (empty string for the default).</string>
9603 <key>Persist</key> 9686 <key>Persist</key>
9604 <integer>1</integer> 9687 <integer>1</integer>
9605 <key>Type</key> 9688 <key>Type</key>
9606 <string>String</string> 9689 <string>String</string>
9607 <key>Value</key> 9690 <key>Value</key>
9608 <string>bhd.vivox.com</string> 9691 <string></string>
9609 </map> 9692 </map>
9610 <key>VoiceCallsFriendsOnly</key> 9693 <key>VoiceCallsFriendsOnly</key>
9611 <map> 9694 <map>
@@ -9748,7 +9831,7 @@
9748 <key>Type</key> 9831 <key>Type</key>
9749 <string>U32</string> 9832 <string>U32</string>
9750 <key>Value</key> 9833 <key>Value</key>
9751 <integer>44124</integer> 9834 <integer>44125</integer>
9752 </map> 9835 </map>
9753 <key>WLSkyDetail</key> 9836 <key>WLSkyDetail</key>
9754 <map> 9837 <map>
diff --git a/linden/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl b/linden/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
index 0df89c8..78b96b3 100644
--- a/linden/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
+++ b/linden/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
@@ -11,7 +11,7 @@ void calcAtmospherics(vec3 inPositionEye);
11void main() 11void main()
12{ 12{
13 //transform vertex 13 //transform vertex
14 gl_Position = ftransform(); //gl_ModelViewProjectionMatrix * gl_Vertex; 14 gl_Position = ftransform();
15 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; 15 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
16 16
17 vec4 pos = (gl_ModelViewMatrix * gl_Vertex); 17 vec4 pos = (gl_ModelViewMatrix * gl_Vertex);
diff --git a/linden/indra/newview/featuretable.txt b/linden/indra/newview/featuretable.txt
index b227043..c02ba86 100644
--- a/linden/indra/newview/featuretable.txt
+++ b/linden/indra/newview/featuretable.txt
@@ -1,4 +1,4 @@
1version 17 1version 19
2 2
3// NOTE: This is mostly identical to featuretable_mac.txt with a few differences 3// NOTE: This is mostly identical to featuretable_mac.txt with a few differences
4// Should be combined into one table 4// Should be combined into one table
@@ -33,6 +33,7 @@ RenderFlexTimeFactor 1 1.0
33RenderFogRatio 1 4.0 33RenderFogRatio 1 4.0
34RenderGamma 1 0 34RenderGamma 1 0
35RenderGlowResolutionPow 1 9 35RenderGlowResolutionPow 1 9
36RenderGround 1 1
36RenderLightingDetail 1 1 37RenderLightingDetail 1 1
37RenderMaxPartCount 1 8192 38RenderMaxPartCount 1 8192
38RenderNightBrightness 1 1.0 39RenderNightBrightness 1 1.0
@@ -347,21 +348,7 @@ RenderVBOEnable 0 0
347list ATI_All-in-Wonder_7500 348list ATI_All-in-Wonder_7500
348RenderVBOEnable 0 0 349RenderVBOEnable 0 0
349 350
350
351list ATI_Mobility_Radeon_9800
352RenderAvatarCloth 0 0
353VertexShaderEnable 0 0
354WindLightUseAtmosShaders 0 0
355
356list ATI_Mobility_Radeon_9700
357RenderAvatarCloth 0 0
358VertexShaderEnable 0 0
359WindLightUseAtmosShaders 0 0
360
361list ATI_Mobility_Radeon_9600 351list ATI_Mobility_Radeon_9600
362RenderAvatarCloth 0 0
363VertexShaderEnable 0 0
364WindLightUseAtmosShaders 0 0
365Disregard96DefaultDrawDistance 1 0 352Disregard96DefaultDrawDistance 1 0
366 353
367 354
@@ -380,28 +367,40 @@ Disregard96DefaultDrawDistance 1 0
380 367
381list ATI_Radeon_X300 368list ATI_Radeon_X300
382Disregard128DefaultDrawDistance 1 0 369Disregard128DefaultDrawDistance 1 0
370RenderVBOEnable 1 0
383list ATI_Radeon_X400 371list ATI_Radeon_X400
384Disregard128DefaultDrawDistance 1 0 372Disregard128DefaultDrawDistance 1 0
373RenderVBOEnable 1 0
385list ATI_Radeon_X500 374list ATI_Radeon_X500
386Disregard128DefaultDrawDistance 1 0 375Disregard128DefaultDrawDistance 1 0
376RenderVBOEnable 1 0
387list ATI_Radeon_X600 377list ATI_Radeon_X600
388Disregard128DefaultDrawDistance 1 0 378Disregard128DefaultDrawDistance 1 0
379RenderVBOEnable 1 0
389list ATI_Radeon_X700 380list ATI_Radeon_X700
390Disregard128DefaultDrawDistance 1 0 381Disregard128DefaultDrawDistance 1 0
382RenderVBOEnable 1 0
391list ATI_Radeon_X1300 383list ATI_Radeon_X1300
392Disregard128DefaultDrawDistance 1 0 384Disregard128DefaultDrawDistance 1 0
385RenderVBOEnable 1 0
393UseStartScreen 0 0 386UseStartScreen 0 0
394list ATI_Radeon_X1400 387list ATI_Radeon_X1400
395Disregard128DefaultDrawDistance 1 0 388Disregard128DefaultDrawDistance 1 0
389RenderVBOEnable 1 0
396list ATI_Radeon_X1500 390list ATI_Radeon_X1500
397Disregard128DefaultDrawDistance 1 0 391Disregard128DefaultDrawDistance 1 0
392RenderVBOEnable 1 0
398UseStartScreen 0 0 393UseStartScreen 0 0
399list ATI_Radeon_X1600 394list ATI_Radeon_X1600
400Disregard128DefaultDrawDistance 1 0 395Disregard128DefaultDrawDistance 1 0
396RenderVBOEnable 1 0
401list ATI_Radeon_X1700 397list ATI_Radeon_X1700
402Disregard128DefaultDrawDistance 1 0 398Disregard128DefaultDrawDistance 1 0
399RenderVBOEnable 1 0
403list ATI_Mobility_Radeon_X1xxx 400list ATI_Mobility_Radeon_X1xxx
404Disregard128DefaultDrawDistance 1 0 401Disregard128DefaultDrawDistance 1 0
402RenderVBOEnable 1 0
403
405list ATI_Radeon_HD_2300 404list ATI_Radeon_HD_2300
406Disregard128DefaultDrawDistance 1 0 405Disregard128DefaultDrawDistance 1 0
407list ATI_Radeon_HD_2400 406list ATI_Radeon_HD_2400
diff --git a/linden/indra/newview/featuretable_linux.txt b/linden/indra/newview/featuretable_linux.txt
index 3eaa781..09105b8 100644
--- a/linden/indra/newview/featuretable_linux.txt
+++ b/linden/indra/newview/featuretable_linux.txt
@@ -1,4 +1,4 @@
1version 17 1version 19
2 2
3// NOTE: This is mostly identical to featuretable_mac.txt with a few differences 3// NOTE: This is mostly identical to featuretable_mac.txt with a few differences
4// Should be combined into one table 4// Should be combined into one table
@@ -33,6 +33,7 @@ RenderFlexTimeFactor 1 1.0
33RenderFogRatio 1 4.0 33RenderFogRatio 1 4.0
34RenderGamma 1 0 34RenderGamma 1 0
35RenderGlowResolutionPow 1 9 35RenderGlowResolutionPow 1 9
36RenderGround 1 1
36RenderLightingDetail 1 1 37RenderLightingDetail 1 1
37RenderMaxPartCount 1 8192 38RenderMaxPartCount 1 8192
38RenderNightBrightness 1 1.0 39RenderNightBrightness 1 1.0
@@ -343,21 +344,7 @@ RenderVBOEnable 0 0
343list ATI_All-in-Wonder_7500 344list ATI_All-in-Wonder_7500
344RenderVBOEnable 0 0 345RenderVBOEnable 0 0
345 346
346
347list ATI_Mobility_Radeon_9800
348RenderAvatarCloth 0 0
349VertexShaderEnable 0 0
350WindLightUseAtmosShaders 0 0
351
352list ATI_Mobility_Radeon_9700
353RenderAvatarCloth 0 0
354VertexShaderEnable 0 0
355WindLightUseAtmosShaders 0 0
356
357list ATI_Mobility_Radeon_9600 347list ATI_Mobility_Radeon_9600
358RenderAvatarCloth 0 0
359VertexShaderEnable 0 0
360WindLightUseAtmosShaders 0 0
361Disregard96DefaultDrawDistance 1 0 348Disregard96DefaultDrawDistance 1 0
362 349
363 350
diff --git a/linden/indra/newview/featuretable_mac.txt b/linden/indra/newview/featuretable_mac.txt
index fab8ea9..fd2496d 100644
--- a/linden/indra/newview/featuretable_mac.txt
+++ b/linden/indra/newview/featuretable_mac.txt
@@ -1,4 +1,4 @@
1version 16 1version 19
2 2
3// NOTE: This is mostly identical to featuretable_mac.txt with a few differences 3// NOTE: This is mostly identical to featuretable_mac.txt with a few differences
4// Should be combined into one table 4// Should be combined into one table
@@ -33,6 +33,7 @@ RenderFlexTimeFactor 1 1.0
33RenderFogRatio 1 4.0 33RenderFogRatio 1 4.0
34RenderGamma 1 0 34RenderGamma 1 0
35RenderGlowResolutionPow 1 9 35RenderGlowResolutionPow 1 9
36RenderGround 1 1
36RenderLightingDetail 1 1 37RenderLightingDetail 1 1
37RenderMaxPartCount 1 8192 38RenderMaxPartCount 1 8192
38RenderNightBrightness 1 1.0 39RenderNightBrightness 1 1.0
@@ -291,6 +292,7 @@ RenderVBOEnable 1 0
291list Intel_950 292list Intel_950
292RenderTerrainDetail 1 0 293RenderTerrainDetail 1 0
293RenderVBOEnable 1 0 294RenderVBOEnable 1 0
295RenderGround 1 0
294 296
295list Intel_965 297list Intel_965
296RenderTerrainDetail 1 0 298RenderTerrainDetail 1 0
@@ -324,20 +326,7 @@ list Intel_Springdale
324RenderTerrainDetail 1 0 326RenderTerrainDetail 1 0
325RenderVBOEnable 1 0 327RenderVBOEnable 1 0
326 328
327list ATI_Mobility_Radeon_9800
328RenderAvatarCloth 0 0
329VertexShaderEnable 0 0
330WindLightUseAtmosShaders 0 0
331
332list ATI_Mobility_Radeon_9700
333RenderAvatarCloth 0 0
334VertexShaderEnable 0 0
335WindLightUseAtmosShaders 0 0
336
337list ATI_Mobility_Radeon_9600 329list ATI_Mobility_Radeon_9600
338RenderAvatarCloth 0 0
339VertexShaderEnable 0 0
340WindLightUseAtmosShaders 0 0
341Disregard96DefaultDrawDistance 1 0 330Disregard96DefaultDrawDistance 1 0
342 331
343list NVIDIA_GeForce_8600 332list NVIDIA_GeForce_8600
diff --git a/linden/indra/newview/fmodwrapper.cpp b/linden/indra/newview/fmodwrapper.cpp
index 4d8cf22..4768e36 100644
--- a/linden/indra/newview/fmodwrapper.cpp
+++ b/linden/indra/newview/fmodwrapper.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/gpu_table.txt b/linden/indra/newview/gpu_table.txt
index 48af543..7484005 100644
--- a/linden/indra/newview/gpu_table.txt
+++ b/linden/indra/newview/gpu_table.txt
@@ -26,6 +26,7 @@ ATI All-in-Wonder 7500 .*ATI.*All-in-Wonder 75.* 0 1
26ATI All-in-Wonder 8500 .*ATI.*All-in-Wonder 85.* 0 1 26ATI All-in-Wonder 8500 .*ATI.*All-in-Wonder 85.* 0 1
27ATI All-in-Wonder 9200 .*ATI.*All-in-Wonder 92.* 0 1 27ATI All-in-Wonder 9200 .*ATI.*All-in-Wonder 92.* 0 1
28ATI All-in-Wonder 9xxx .*ATI.*All-in-Wonder 9.* 1 1 28ATI All-in-Wonder 9xxx .*ATI.*All-in-Wonder 9.* 1 1
29ATI All-in-Wonder HD .*ATI.*All-in-Wonder HD.* 1 1
29ATI All-in-Wonder X600 .*ATI.*All-in-Wonder X6.* 1 1 30ATI All-in-Wonder X600 .*ATI.*All-in-Wonder X6.* 1 1
30ATI All-in-Wonder X800 .*ATI.*All-in-Wonder X8.* 2 1 31ATI All-in-Wonder X800 .*ATI.*All-in-Wonder X8.* 2 1
31ATI All-in-Wonder X1800 .*ATI.*All-in-Wonder X18.* 3 1 32ATI All-in-Wonder X1800 .*ATI.*All-in-Wonder X18.* 3 1
@@ -35,7 +36,9 @@ ATI All-in-Wonder Radeon .*ATI.*All-in-Wonder Radeon.* 0 1
35ATI ASUS A9xxx .*ATI.*ASUS.*A9.* 1 1 36ATI ASUS A9xxx .*ATI.*ASUS.*A9.* 1 1
36ATI ASUS AH24xx .*ATI.*ASUS.*AH24.* 1 1 37ATI ASUS AH24xx .*ATI.*ASUS.*AH24.* 1 1
37ATI ASUS AH26xx .*ATI.*ASUS.*AH26.* 3 1 38ATI ASUS AH26xx .*ATI.*ASUS.*AH26.* 3 1
39ATI ASUS AH34xx .*ATI.*ASUS.*AH34.* 1 1
38ATI ASUS AH36xx .*ATI.*ASUS.*AH36.* 3 1 40ATI ASUS AH36xx .*ATI.*ASUS.*AH36.* 3 1
41ATI ASUS AH46xx .*ATI.*ASUS.*AH46.* 3 1
39ATI ASUS AX3xx .*ATI.*ASUS.*AX3.* 1 1 42ATI ASUS AX3xx .*ATI.*ASUS.*AX3.* 1 1
40ATI ASUS AX5xx .*ATI.*ASUS.*AX5.* 1 1 43ATI ASUS AX5xx .*ATI.*ASUS.*AX5.* 1 1
41ATI ASUS AX8xx .*ATI.*ASUS.*AX8.* 2 1 44ATI ASUS AX8xx .*ATI.*ASUS.*AX8.* 2 1
@@ -45,12 +48,13 @@ ATI ASUS EAH34xx .*ATI.*ASUS.*EAH34.* 1 1
45ATI ASUS EAH36xx .*ATI.*ASUS.*EAH36.* 3 1 48ATI ASUS EAH36xx .*ATI.*ASUS.*EAH36.* 3 1
46ATI ASUS EAH38xx .*ATI.*ASUS.*EAH38.* 3 1 49ATI ASUS EAH38xx .*ATI.*ASUS.*EAH38.* 3 1
47ATI ASUS EAH48xx .*ATI.*ASUS.*EAH48.* 3 1 50ATI ASUS EAH48xx .*ATI.*ASUS.*EAH48.* 3 1
48ATI ASUS X1xxx .*ATI.*ASUS.*X1.* 2 1 51ATI Radeon X1xxx .*ATI.*ASUS.*X1.* 2 1
49ATI ASUS X7xx .*ATI.*ASUS.*X7.* 1 1 52ATI Radeon X7xx .*ATI.*ASUS.*X7.* 1 1
50ATI Diamond X550 .*ATI.*Diamond X550.* 1 1 53ATI Radeon X500 .*ATI.*Diamond X5.* 1 1
51ATI Diamond X13xx .*ATI.*Diamond X13.* 1 1 54ATI Radeon X13xx .*ATI.*Diamond X13.* 1 1
52ATI Diamond X16xx .*ATI.*Diamond X16.* 1 1 55ATI Radeon X16xx .*ATI.*Diamond X16.* 1 1
53ATI Diamond X19xx .*ATI.*Diamond X19.* 1 1 56ATI Radeon X19xx .*ATI.*Diamond X19.* 1 1
57ATI Display Adapter .*ATI.*display adapter.* 0 1
54ATI FireGL 5200 .*ATI.*FireGL V52.* 0 1 58ATI FireGL 5200 .*ATI.*FireGL V52.* 0 1
55ATI FireGL 5xxx .*ATI.*FireGL V5.* 1 1 59ATI FireGL 5xxx .*ATI.*FireGL V5.* 1 1
56ATI FireGL .*ATI.*Fire.*GL.* 0 1 60ATI FireGL .*ATI.*Fire.*GL.* 0 1
@@ -61,6 +65,8 @@ ATI IGP 340M .*ATI.*IGP.*340M.* 0 0
61ATI M52 .*ATI.*M52.* 1 1 65ATI M52 .*ATI.*M52.* 1 1
62ATI M54 .*ATI.*M54.* 1 1 66ATI M54 .*ATI.*M54.* 1 1
63ATI M56 .*ATI.*M56.* 1 1 67ATI M56 .*ATI.*M56.* 1 1
68ATI M71 .*ATI.*M71.* 1 1
69ATI M72 .*ATI.*M72.* 1 1
64ATI M76 .*ATI.*M76.* 3 1 70ATI M76 .*ATI.*M76.* 3 1
65ATI Mobility Radeon 7xxx .*ATI.*Mobility.*Radeon 7.* 0 1 71ATI Mobility Radeon 7xxx .*ATI.*Mobility.*Radeon 7.* 0 1
66ATI Mobility Radeon 8xxx .*ATI.*Mobility.*Radeon 8.* 0 1 72ATI Mobility Radeon 8xxx .*ATI.*Mobility.*Radeon 8.* 0 1
@@ -84,9 +90,13 @@ ATI Radeon HD 2300 .*ATI.*Radeon HD 23.* 0 1
84ATI Radeon HD 2400 .*ATI.*Radeon HD.*24.* 1 1 90ATI Radeon HD 2400 .*ATI.*Radeon HD.*24.* 1 1
85ATI Radeon HD 2600 .*ATI.*Radeon HD 26.* 2 1 91ATI Radeon HD 2600 .*ATI.*Radeon HD 26.* 2 1
86ATI Radeon HD 2900 .*ATI.*Radeon HD 29.* 3 1 92ATI Radeon HD 2900 .*ATI.*Radeon HD 29.* 3 1
93ATI Radeon HD 3200 .*ATI.*Radeon HD.*32.* 1 1
94ATI Radeon HD 3300 .*ATI.*Radeon HD.*33.* 1 1
87ATI Radeon HD 3400 .*ATI.*Radeon HD.*34.* 1 1 95ATI Radeon HD 3400 .*ATI.*Radeon HD.*34.* 1 1
88ATI Radeon HD 3600 .*ATI.*Radeon HD.*36.* 3 1 96ATI Radeon HD 3600 .*ATI.*Radeon HD.*36.* 3 1
89ATI Radeon HD 3800 .*ATI.*Radeon HD.*38.* 3 1 97ATI Radeon HD 3800 .*ATI.*Radeon HD.*38.* 3 1
98ATI Radeon HD 4300 .*ATI.*Radeon HD 43.* 1 1
99ATI Radeon HD 4600 .*ATI.*Radeon HD 46.* 3 1
90ATI Radeon HD 4800 .*ATI.*Radeon HD.*48.* 3 1 100ATI Radeon HD 4800 .*ATI.*Radeon HD.*48.* 3 1
91ATI Radeon OpenGL .*ATI.*Radeon OpenGL.* 0 0 101ATI Radeon OpenGL .*ATI.*Radeon OpenGL.* 0 0
92ATI Radeon 2100 .*ATI.*Radeon 21.* 0 1 102ATI Radeon 2100 .*ATI.*Radeon 21.* 0 1
@@ -104,13 +114,14 @@ ATI Radeon RV250 .*ATI.*RV250.* 0 1
104ATI Radeon RV600 .*ATI.*RV6.* 1 1 114ATI Radeon RV600 .*ATI.*RV6.* 1 1
105ATI Radeon RX700 .*ATI.*RX70.* 1 1 115ATI Radeon RX700 .*ATI.*RX70.* 1 1
106ATI Radeon RX800 .*ATI.*Radeon *RX80.* 2 1 116ATI Radeon RX800 .*ATI.*Radeon *RX80.* 2 1
117ATI Radeon RX9550 .*ATI.*RX9550.* 1 1
107ATI Radeon VE .*ATI.*Radeon.*VE.* 0 0 118ATI Radeon VE .*ATI.*Radeon.*VE.* 0 0
108ATI Radeon X1000 .*ATI.*Radeon *X10.* 0 1 119ATI Radeon X1000 .*ATI.*Radeon *X10.* 0 1
109ATI Radeon X1200 .*ATI.*Radeon *X12.* 0 1 120ATI Radeon X1200 .*ATI.*Radeon *X12.* 0 1
110ATI Radeon X1300 .*ATI.*Radeon *X13.* 1 1 121ATI Radeon X1300 .*ATI.*Radeon *X13.* 1 1
111ATI Radeon X1400 .*ATI.*Radeon X14.* 1 1 122ATI Radeon X1400 .*ATI.*Radeon X14.* 1 1
112ATI Radeon X1500 .*ATI.*Radeon X15.* 1 1 123ATI Radeon X1500 .*ATI.*Radeon X15.* 1 1
113ATI Radeon X1600 .*ATI.*Radeon X16.* 1 1 124ATI Radeon X1600 .*ATI.*Radeon *X16.* 1 1
114ATI Radeon X1700 .*ATI.*Radeon X17.* 1 1 125ATI Radeon X1700 .*ATI.*Radeon X17.* 1 1
115ATI Radeon X1800 .*ATI.*Radeon X18.* 3 1 126ATI Radeon X1800 .*ATI.*Radeon X18.* 3 1
116ATI Radeon X1900 .*ATI.*Radeon X19.* 3 1 127ATI Radeon X1900 .*ATI.*Radeon X19.* 3 1
@@ -134,8 +145,8 @@ Intel 865G .*Intel.*865G 0 0
134Intel 900 .*Intel.*900.*900 0 0 145Intel 900 .*Intel.*900.*900 0 0
135Intel 915GM .*Intel.*915GM 0 0 146Intel 915GM .*Intel.*915GM 0 0
136Intel 915G .*Intel.*915G 0 0 147Intel 915G .*Intel.*915G 0 0
137Intel 945GM .*Intel.*945GM 0 1 148Intel 945GM .*Intel.*945GM.* 0 1
138Intel 945G .*Intel.*945G 0 1 149Intel 945G .*Intel.*945G.* 0 1
139Intel 950 .*Intel.*950.* 0 1 150Intel 950 .*Intel.*950.* 0 1
140Intel 965 .*Intel.*965.* 0 1 151Intel 965 .*Intel.*965.* 0 1
141Intel G33 .*Intel.*G33.* 0 0 152Intel G33 .*Intel.*G33.* 0 0
@@ -143,15 +154,20 @@ Intel G45 .*Intel.*G45.* 0 1
143Intel Bear Lake .*Intel.*Bear Lake.* 0 0 154Intel Bear Lake .*Intel.*Bear Lake.* 0 0
144Intel Broadwater .*Intel.*Broadwater.* 0 0 155Intel Broadwater .*Intel.*Broadwater.* 0 0
145Intel Brookdale .*Intel.*Brookdale.* 0 0 156Intel Brookdale .*Intel.*Brookdale.* 0 0
146Intel Eaglelake .*Intel.*Eaglelake.* 0 1 157Intel Cantiga .*Intel.*Cantiga.* 0 0
158Intel Eaglelake .*Intel.*Eaglelake.* 0 0
147Intel Montara .*Intel.*Montara.* 0 0 159Intel Montara .*Intel.*Montara.* 0 0
148Intel Springdale .*Intel.*Springdale.* 0 0 160Intel Springdale .*Intel.*Springdale.* 0 0
149Matrox .*Matrox.* 0 0 161Matrox .*Matrox.* 0 0
150Mesa .*Mesa.* 0 0 162Mesa .*Mesa.* 0 0
151NVIDIA GTX 260 .*NVIDIA.*GeForce.*GTX.*260.* 3 1 163NVIDIA GTX 260 .*NVIDIA.*GeForce.*GTX.*260.* 3 1
152NVIDIA GTX 280 .*NVIDIA.*GeForce.*GTX.*280.* 3 1 164NVIDIA GTX 280 .*NVIDIA.*GeForce.*GTX.*280.* 3 1
165NVIDIA C51 .*NVIDIA.*C51.* 0 1
153NVIDIA G72 .*NVIDIA.*G72.* 1 1 166NVIDIA G72 .*NVIDIA.*G72.* 1 1
154NVIDIA G73 .*NVIDIA.*G73.* 1 1 167NVIDIA G73 .*NVIDIA.*G73.* 1 1
168NVIDIA G84 .*NVIDIA.*G84.* 3 1
169NVIDIA G86 .*NVIDIA.*G86.* 3 1
170NVIDIA G92 .*NVIDIA.*G92.* 3 1
155NVIDIA GeForce .*GeForce 256.* 0 0 171NVIDIA GeForce .*GeForce 256.* 0 0
156NVIDIA GeForce 2 .*GeForce2.* 0 1 172NVIDIA GeForce 2 .*GeForce2.* 0 1
157NVIDIA GeForce 3 .*GeForce3.* 0 1 173NVIDIA GeForce 3 .*GeForce3.* 0 1
@@ -170,17 +186,25 @@ NVIDIA GeForce 7200 .*NVIDIA.*GeForce 72.* 1 1
170NVIDIA GeForce 7300 .*NVIDIA.*GeForce 73.* 1 1 186NVIDIA GeForce 7300 .*NVIDIA.*GeForce 73.* 1 1
171NVIDIA GeForce 7500 .*NVIDIA.*GeForce 75.* 1 1 187NVIDIA GeForce 7500 .*NVIDIA.*GeForce 75.* 1 1
172NVIDIA GeForce 7600 .*NVIDIA.*GeForce 76.* 2 1 188NVIDIA GeForce 7600 .*NVIDIA.*GeForce 76.* 2 1
173NVIDIA GeForce 7800 .*NVIDIA.*GeForce 78.* 2 1 189NVIDIA GeForce 7800 .*NVIDIA.*GeForce.*78.* 2 1
174NVIDIA GeForce 7900 .*NVIDIA.*GeForce 79.* 2 1 190NVIDIA GeForce 7900 .*NVIDIA.*GeForce 79.* 2 1
191NVIDIA GeForce 8100 .*NVIDIA.*GeForce 81.* 1 1
175NVIDIA GeForce 8200 .*NVIDIA.*GeForce 82.* 1 1 192NVIDIA GeForce 8200 .*NVIDIA.*GeForce 82.* 1 1
176NVIDIA GeForce 8300 .*NVIDIA.*GeForce 83.* 1 1 193NVIDIA GeForce 8300 .*NVIDIA.*GeForce 83.* 1 1
177NVIDIA GeForce 8400 .*NVIDIA.*GeForce 84.* 1 1 194NVIDIA GeForce 8400 .*NVIDIA.*GeForce 84.* 1 1
178NVIDIA GeForce 8500 .*NVIDIA.*GeForce 85.* 3 1 195NVIDIA GeForce 8500 .*GeForce 85.* 3 1
196NVIDIA GeForce 8600M .*NVIDIA.*GeForce.*8600M.* 1 1
179NVIDIA GeForce 8600 .*NVIDIA.*GeForce 86.* 3 1 197NVIDIA GeForce 8600 .*NVIDIA.*GeForce 86.* 3 1
180NVIDIA GeForce 8700 .*NVIDIA.*GeForce 87.* 3 1 198NVIDIA GeForce 8700 .*NVIDIA.*GeForce 87.* 3 1
181NVIDIA GeForce 8800 .*NVIDIA.*GeForce 88.* 3 1 199NVIDIA GeForce 8800 .*NVIDIA.*GeForce 88.* 3 1
182NVIDIA GeForce 9300M .*NVIDIA.*GeForce 9300M.* 1 1 200NVIDIA GeForce 9300M .*NVIDIA.*GeForce 9300M.* 1 1
201NVIDIA GeForce 9400M .*NVIDIA.*GeForce 9400M.* 1 1
183NVIDIA GeForce 9500M .*NVIDIA.*GeForce 9500M.* 2 1 202NVIDIA GeForce 9500M .*NVIDIA.*GeForce 9500M.* 2 1
203NVIDIA GeForce 9600M .*NVIDIA.*GeForce 9600M.* 2 1
204NVIDIA GeForce 9700M .*NVIDIA.*GeForce 9700M.* 2 1
205NVIDIA GeForce 9300 .*NVIDIA.*GeForce 93.* 1 1
206NVIDIA GeForce 9400 .*GeForce 94.* 1 1
207NVIDIA GeForce 9500 .*NVIDIA.*GeForce 95.* 2 1
184NVIDIA GeForce 9600 .*NVIDIA.*GeForce 96.* 3 1 208NVIDIA GeForce 9600 .*NVIDIA.*GeForce 96.* 3 1
185NVIDIA GeForce 9800 .*NVIDIA.*GeForce 98.* 3 1 209NVIDIA GeForce 9800 .*NVIDIA.*GeForce 98.* 3 1
186NVIDIA GeForce FX 5100 .*NVIDIA.*GeForce FX 51.* 0 1 210NVIDIA GeForce FX 5100 .*NVIDIA.*GeForce FX 51.* 0 1
@@ -212,11 +236,23 @@ NVIDIA GeForce Go 7600 .*NVIDIA.*GeForce Go 76.* 2 1
212NVIDIA GeForce Go 7700 .*NVIDIA.*GeForce Go 77.* 2 1 236NVIDIA GeForce Go 7700 .*NVIDIA.*GeForce Go 77.* 2 1
213NVIDIA GeForce Go 7800 .*NVIDIA.*GeForce Go 78.* 2 1 237NVIDIA GeForce Go 7800 .*NVIDIA.*GeForce Go 78.* 2 1
214NVIDIA GeForce Go 7900 .*NVIDIA.*GeForce Go 79.* 2 1 238NVIDIA GeForce Go 7900 .*NVIDIA.*GeForce Go 79.* 2 1
239NVIDIA GeForce GTX 260 .*NVIDIA.*GeForce GTX 26.* 3 1
240NVIDIA GeForce GTX 280 .*NVIDIA.*GeForce GTX 28.* 3 1
241NVIDIA D9M .*D9M.* 1 1
242NVIDIA G84 .*G84.* 1 1
243NVIDIA G92 .*G92.* 3 1
244NVIDIA G94 .*G94.* 3 1
215NVIDIA GeForce Go 6 .*GeForce Go 6.* 1 1 245NVIDIA GeForce Go 6 .*GeForce Go 6.* 1 1
246NVIDIA NB9M .*GeForce NB9M.* 1 1
247NVIDIA NB9P .*GeForce NB9P.* 1 1
216NVIDIA GeForce PCX .*GeForce PCX.* 0 1 248NVIDIA GeForce PCX .*GeForce PCX.* 0 1
217NVIDIA Generic .*NVIDIA.*Unknown.* 0 0 249NVIDIA Generic .*NVIDIA.*Unknown.* 0 0
250NVIDIA NV17 .*GeForce NV17.* 0 1
218NVIDIA NV34 .*NVIDIA.*NV34.* 0 1 251NVIDIA NV34 .*NVIDIA.*NV34.* 0 1
252NVIDIA NV36 .*GeForce NV36.* 1 1
219NVIDIA NV43 .*NVIDIA.*NV43.* 1 1 253NVIDIA NV43 .*NVIDIA.*NV43.* 1 1
254NVIDIA NV44 .*NVIDIA.*NV44.* 1 1
255NVIDIA nForce .*NVIDIA.*nForce.* 0 0
220NVIDIA MCP78 .*NVIDIA.*MCP78.* 1 1 256NVIDIA MCP78 .*NVIDIA.*MCP78.* 1 1
221NVIDIA Quadro2 .*Quadro2.* 0 1 257NVIDIA Quadro2 .*Quadro2.* 0 1
222NVIDIA Quadro4 .*Quadro4.* 0 1 258NVIDIA Quadro4 .*Quadro4.* 0 1
@@ -225,10 +261,12 @@ NVIDIA Quadro FX 4500 .*Quadro.*FX.*4500.* 3 1
225NVIDIA Quadro FX .*Quadro FX.* 1 1 261NVIDIA Quadro FX .*Quadro FX.* 1 1
226NVIDIA Quadro NVS .*Quadro NVS.* 0 1 262NVIDIA Quadro NVS .*Quadro NVS.* 0 1
227NVIDIA RIVA TNT .*RIVA TNT.* 0 0 263NVIDIA RIVA TNT .*RIVA TNT.* 0 0
264NVIDIA PCI .*NVIDIA.*/PCI/SSE2 0 0
228S3 .*S3 Graphics.* 0 0 265S3 .*S3 Graphics.* 0 0
229SiS SiS.* 0 0 266SiS SiS.* 0 0
230Trident Trident.* 0 0 267Trident Trident.* 0 0
231Tungsten Graphics Tungsten.* 0 0 268Tungsten Graphics Tungsten.* 0 0
232XGI XGI.* 0 0 269XGI XGI.* 0 0
233VIA VIA.* 0 0 270VIA VIA.* 0 0
234 271Apple Generic Apple.*Generic.* 0 0
272Apple Software Renderer Apple.*Software Renderer.* 0 0
diff --git a/linden/indra/newview/installers/darwin/dmg-cleanup.applescript b/linden/indra/newview/installers/darwin/dmg-cleanup.applescript
new file mode 100644
index 0000000..f3d39ae
--- /dev/null
+++ b/linden/indra/newview/installers/darwin/dmg-cleanup.applescript
@@ -0,0 +1,28 @@
1-- First, convert the disk image to "read-write" format with Disk Utility or hdiutil
2-- Mount the image, open the disk image window in the Finder and make it frontmost, then run this script from inside Script Editor
3-- After running the script, unmount the disk image, re-mount it, and copy the .DS_Store file off from the command line.
4
5tell application "Finder"
6
7 set foo to every item in front window
8 repeat with i in foo
9 if the name of i is "Applications" then
10 set the position of i to {391, 165}
11 else if the name of i ends with ".app" then
12 set the position of i to {121, 166}
13 end if
14 end repeat
15
16 -- There doesn't seem to be a way to set the background picture with applescript, but all the saved .DS_Store files should already have that set correctly.
17
18 set foo to front window
19 set current view of foo to icon view
20 set toolbar visible of foo to false
21 set statusbar visible of foo to false
22 set the bounds of foo to {100, 100, 600, 399}
23
24 -- set the position of front window to {100, 100}
25 -- get {name, position} of every item of front window
26
27 get properties of front window
28end tell
diff --git a/linden/indra/newview/installers/darwin/firstlookslim-dmg/Applications-alias.r b/linden/indra/newview/installers/darwin/firstlookslim-dmg/Applications-alias.r
new file mode 100644
index 0000000..aa3cfb8
--- /dev/null
+++ b/linden/indra/newview/installers/darwin/firstlookslim-dmg/Applications-alias.r
@@ -0,0 +1,6996 @@
1data 'alis' (0) {
2 $"0000 0000 0112 0002 0001 036D 6277 0000" /* ...........mbw.. */
3 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
4 $"0000 0000 0000 C135 A717 482B 0000 0000" /* ......Á5§.H+.... */
5 $"0002 0C41 7070 6C69 6361 7469 6F6E 7300" /* ...Applications. */
6 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
7 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
8 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
9 $"0000 00E2 4F18 C2E8 9FB0 0000 0000 0000" /* ...âO.Â蟰...... */
10 $"0000 FFFF FFFF 0000 0920 0000 0000 0000" /* ..ÿÿÿÿ..Æ ...... */
11 $"0000 0000 0000 0000 0003 6D62 7700 0010" /* ..........mbw... */
12 $"0008 0000 C136 0987 0000 0011 0008 0000" /* ....Á6Ƈ........ */
13 $"C2E9 0220 0000 0001 0000 0002 0010 6D62" /* Âé. ..........mb */
14 $"773A 4170 706C 6963 6174 696F 6E73 000E" /* w:Applications.. */
15 $"001A 000C 0041 0070 0070 006C 0069 0063" /* .....A.p.p.l.i.c */
16 $"0061 0074 0069 006F 006E 0073 000F 0008" /* .a.t.i.o.n.s.... */
17 $"0003 006D 0062 0077 0012 000C 4170 706C" /* ...m.b.w....Appl */
18 $"6963 6174 696F 6E73 0013 0001 2F00 FFFF" /* ications..../.ÿÿ */
19 $"0000" /* .. */
20};
21
22
23data 'icns' (-16455) {
24 $"6963 6E73 0001 B3AC 6973 3332 0000 0224" /* icns..³¬is32...$ */
25 $"9F00 005F 8061 005D 8700 055D 9AA2 A0A4" /* Ÿ.._€a.]‡..]š¢ ¤ */
26 $"8986 0008 557D B3B2 B1B3 A881 8081 8104" /* ‰†..U}³²±³¨€. */
27 $"826F 577E AF82 A801 B3AE 82AD 03AF 7B7A" /* ‚oW~¯‚¨.³®‚­.¯{z */
28 $"A781 A203 9EB7 C89D 81A2 03A6 776E 9A80" /* §¢.ž·È¢.¦wnš€ */
29 $"9705 959F D3DC A295 8097 5899 6C67 8F8D" /* —.•ŸÓÜ¢•€—X™lg */
30 $"8E89 85C9 BCA9 C883 898D 8D8E 6561 8585" /* Ž‰…ɼ©Èƒ‰Žea…… */
31 $"83A8 B7F3 BAB4 DFB6 AA84 8585 605E 7B7D" /* ƒ¨·óº´ß¶ª„……`^{} */
32 $"79D0 F9E0 F0F2 DAE1 D87C 7D7B 5D5B 7476" /* yÐùàðòÚáØ|}{][tv */
33 $"7099 D876 7373 76CA 8A72 7673 5B5A 6D70" /* p™ØvssvÊŠrvs[Zmp */
34 $"6B9B 816C 6F6F 67B3 C567 706C 5A59 686B" /* k›loog³ÅgplZYhk */
35 $"6B67 686B 806A 056B 6F6A 6B67 5A88 5900" /* kghk€j.kojkgZˆY. */
36 $"5882 598A 5801 0059 9F00 0482 8383 8480" /* X‚YŠX..YŸ..‚ƒƒ„€ */
37 $"8700 057F B7BE BDC0 A786 0008 799E D0CE" /* ‡...·¾½À§†..yžÐÎ */
38 $"CECF C5A1 A081 A105 A390 7AA0 D0CA 80C9" /* ÎÏÅ¡ ¡.£z ÐÊ€É */
39 $"01CA D183 CE03 D09C 9ECD 81C9 03C7 D4DE" /* .ÊуÎ.ÐœžÍÉ.ÇÔÞ */
40 $"C681 C903 CD9A 94C5 80C2 05C1 C6E3 E9C8" /* ÆÉ.Íš”Å€Â.ÁÆãéÈ */
41 $"C180 C20D C491 8DBD BBBC B9B6 DDD7 CCDD" /* Á€Â.Ä‘½»¼¹¶Ý×ÌÝ */
42 $"B5B9 80BC 468B 87B4 B4B3 C8D1 F7D3 CFEA" /* µ¹€¼F‹‡´´³ÈÑ÷ÓÏê */
43 $"D0C9 B4B4 B385 83AA ABA9 E0FB EAF5 F6E5" /* ÐÉ´´³…ƒª«©àûêõöå */
44 $"EAE5 AAAB A981 80A0 A39E BAE4 A2A0 A1A2" /* ê媫©€ £žºä¢ ¡¢ */
45 $"DAAF 9FA3 9F7F 7E97 9B97 B8A6 979A 9A94" /* Ú¯Ÿ£Ÿ.~—›—¸¦—šš” */
46 $"CAD6 949B 977D 7D90 9493 9091 8293 0496" /* ÊÖ”›—}}”“‘‚“.– */
47 $"9294 907D 8E7C 8A7B 0100 7C9F 0000 7A80" /* ’”}Ž|Š{..|Ÿ..z€ */
48 $"7C00 7887 0005 77B1 B8B7 BBA0 8600 0871" /* |.x‡..w±¸·» †..q */
49 $"97CB C9C8 CAC0 9B99 819A 049C 8972 99CA" /* —ËÉÈÊÀ›™š.œ‰r™Ê */
50 $"82C3 00CB 83C8 03CA 9596 C681 C203 BFCF" /* ‚Ã.˃È.Ê•–ÆÂ.¿Ï */
51 $"DABF 81C2 03C6 938C BD80 BA05 B9BF E0E7" /* Ú¿Â.Æ“Œ½€º.¹¿àç */
52 $"C1B9 80BA 57BC 8985 B5B3 B3B0 ADD9 D2C6" /* Á¹€ºW¼‰…µ³³°­ÙÒÆ */
53 $"D9AC B0B3 B3B4 827F ACAB AAC2 CCF6 CECA" /* Ù¬°³³´‚.¬«ªÂÌöÎÊ */
54 $"E8CB C3AB ACAA 7D7B A1A3 A0DD FAE9 F4F5" /* èË묪}{¡£ Ýúéôõ */
55 $"E3E8 E3A2 A3A0 7A78 989B 96B3 E29A 9898" /* ãè㢣 zx˜›–³âš˜˜ */
56 $"9AD7 A897 9B97 7776 8F93 8FB2 9F8F 9292" /* š×¨—›—wv“²Ÿ’’ */
57 $"8BC5 D28C 938F 7575 888C 8B89 8982 8B04" /* ‹ÅÒŒ“uuˆŒ‹‰‰‚‹. */
58 $"8F8A 8C88 758E 748A 7301 0074 7338 6D6B" /* ŠŒˆuŽtŠs..ts8mk */
59 $"0000 0108 0000 0000 0000 0000 0000 0000" /* ................ */
60 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
61 $"0000 0000 0000 1E24 2424 1600 0000 0000" /* .......$$$...... */
62 $"0000 0000 0011 BDC8 C8C8 9600 0000 0000" /* ......½ÈÈÈ–..... */
63 $"0000 0000 048C FFFF FFFF F5A7 9C9E 9E9E" /* .....Œÿÿÿÿõ§œžžž */
64 $"9E9E 6003 8AFF FCFC FCFC FEFF FFFF FFFF" /* žž`.Šÿüüüüþÿÿÿÿÿ */
65 $"FFFF FF7A 89FF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿz‰ÿÿÿÿÿÿÿÿÿÿÿ */
66 $"FFFF FF7A 73FF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿzsÿÿÿÿÿÿÿÿÿÿÿ */
67 $"FFFF FF64 62FF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿdbÿÿÿÿÿÿÿÿÿÿÿ */
68 $"FFFF FF53 53FF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿSSÿÿÿÿÿÿÿÿÿÿÿ */
69 $"FFFF FF45 48FF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿEHÿÿÿÿÿÿÿÿÿÿÿ */
70 $"FFFF FF3C 41FF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿ<Aÿÿÿÿÿÿÿÿÿÿÿ */
71 $"FFFF FD35 3DFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿý5=ÿÿÿÿÿÿÿÿÿÿÿ */
72 $"FFFF FA30 3CFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿú0<ÿÿÿÿÿÿÿÿÿÿÿ */
73 $"FFFF FB2F 1247 4B4A 4A4A 4A4A 4A4A 4A4A" /* ÿÿû/.GKJJJJJJJJJ */
74 $"4A4B 450F 0101 0201 0101 0101 0101 0101" /* JKE............. */
75 $"0102 0001 696C 3332 0000 05AB FF00 BE00" /* ....il32...«ÿ.¾. */
76 $"025A 7881 847F 0064 9200 0262 BBC4 83C2" /* .Zx„..d’..b»ÄƒÂ */
77 $"02C7 8451 9000 0255 86BF 84BC 03BF A064" /* .Ç„Q..U†¿„¼.¿ d */
78 $"6389 6400 6281 0003 5770 A2A2 85A1 01A3" /* c‰d.b..Wp¢¢…¡.£ */
79 $"9D89 9B07 9C97 6758 005B 95AC 88A7 02A8" /* ‰›.œ—gX.[•¬ˆ§.¨ */
80 $"A4A7 89A8 05AB 925A 61A7 AE88 AC03 ABCA" /* ¤§‰¨.«’Za§®ˆ¬.«Ê */
81 $"AEAB 88AC 05AE A15E 5B9A A788 A503 A0D7" /* ®«ˆ¬.®¡^[š§ˆ¥. × */
82 $"D79F 88A5 05A8 9559 5990 A288 9F04 9BAB" /* ןˆ¥.¨•YY¢ˆŸ.›« */
83 $"FBAE 9C87 9F05 A28B 5857 879D 879A 0595" /* û®œ‡Ÿ.¢‹XW‡‡š.• */
84 $"BDD6 E6E3 9487 9A05 9D82 5656 7F97 8594" /* ½Öæ㔇š.‚VV.—…” */
85 $"0995 8FB3 F4CF B1FF AD90 9585 9405 977A" /* Æ•³ôϱÿ­•…”.—z */
86 $"0000 7793 8690 078D CDF8 B886 E8E5 8B86" /* ..w“†.Íø¸†è勆 */
87 $"9005 9372 0000 708F 828C 808B 0984 BBF7" /* .“r..p‚Œ€‹Æ„»÷ */
88 $"C687 85AB FFA9 8580 8B82 8C05 8E6D 0000" /* Ƈ…«ÿ©…€‹‚Œ.Žm.. */
89 $"6B8A 8287 0D88 8785 8FF3 FDA1 8186 84E5" /* kŠ‚‡.ˆ‡…óý¡†„å */
90 $"E484 8684 8705 8868 0000 6685 8183 117E" /* 䄆„‡.ˆh..f…ƒ.~ */
91 $"B3E3 D0D2 FFDC D4DF DDDB D2FD D0DE E2B7" /* ³ãÐÒÿÜÔßÝÛÒýÐÞâ· */
92 $"8082 8304 6400 0062 8081 7F06 76C5 FFDB" /* €‚ƒ.d..b€..vÅÿÛ */
93 $"F9F3 E381 FF06 F6D4 BFF4 FFD3 7882 7F03" /* ùóãÿ.öÔ¿ôÿÓx‚.. */
94 $"6100 005F 827B 0675 B0D9 E1FF C8D8 82DF" /* a.._‚{.u°ÙáÿÈØ‚ß */
95 $"05BF F3C9 DCB9 7681 7B04 7A5E 0000 5C82" /* .¿óÉܹv{.z^..\‚ */
96 $"7706 786F 96FF E879 7281 7306 7278 C8C2" /* w.xo–ÿèyrs.rxÈÂ */
97 $"7074 7880 7706 7875 5C00 005A 7382 7405" /* ptx€w.xu\..Zs‚t. */
98 $"71C1 E19A 6D74 8173 0574 6BA2 FFAD 6C81" /* qÁášmts.tk¢ÿ­l */
99 $"7406 7571 5B00 005A 6F81 7104 6F77 F2AF" /* t.uq[..Zoq.owò¯ */
100 $"6984 7105 6E7E FAFB 836D 8071 0772 6D5A" /* i„q.n~úûƒm€q.rmZ */
101 $"0000 586C 6F80 6E03 6C7B 9368 866E 0467" /* ..Xlo€n.l{“h†n.g */
102 $"C3FA 8B69 806E 076F 6A59 0000 586A 6E81" /* Ãú‹i€n.ojY..Xjn */
103 $"6D01 6C68 876D 036B 717D 6B81 6D07 6E69" /* m.lh‡m.kq}km.ni */
104 $"5900 0058 666A 8E69 0168 6682 6903 6A65" /* Y..XfjŽi.hf‚i.je */
105 $"5900 BD59 0000 9B59 9E00 FF00 BE00 027D" /* Y.½Y..›Yž.ÿ.¾..} */
106 $"98A0 829E 029F 9E85 9200 0284 D5DE 83DC" /* ˜ ‚ž.Ÿž…’..„ÕÞƒÜ */
107 $"02E0 A275 9000 0279 A7DB 84D8 03DB BD87" /* .à¢u..y§Û„Ø.Û½‡ */
108 $"8689 8700 8581 0003 7A92 C0C0 85BF 01C0" /* †‰‡.…..z’ÀÀ…¿.À */
109 $"BB89 B907 BAB4 887B 007E B7CC 88C7 01C8" /* »‰¹.º´ˆ{.~·ÌˆÇ.È */
110 $"C68A C805 CBB2 7C84 CAD1 89CF 02DE CFCE" /* ÆŠÈ.˲|„ÊщÏ.ÞÏÎ */
111 $"88CF 05D2 C380 7FBF CC88 CA03 C7E8 E5C6" /* ˆÏ.ÒÀ.¿ÌˆÊ.ÇèåÆ */
112 $"88CA 05CD B87C 7CB7 CA88 C704 C4CD FCCD" /* ˆÊ.͸||·ÊˆÇ.ÄÍüÍ */
113 $"C587 C705 CAB0 7A7A AFC7 87C4 05C1 D4E3" /* ŇÇ.Ê°zz¯Ç‡Ä.ÁÔã */
114 $"F0ED C087 C405 C8A8 7979 A7C4 85C0 09C1" /* ðíÀ‡Ä.Ȩyy§Ä…ÀÆÁ */
115 $"BDD0 F7E1 D1FF CDBE C185 C005 C4A1 0000" /* ½Ð÷áÑÿ;Á…À.Ä¡.. */
116 $"A0C1 86BD 07BA DEFB D5B7 F2EE B986 BD05" /*  Á†½.ºÞûÕ·ò½. */
117 $"C09A 0000 9ABE 85BA 09B6 D4F9 DBB8 B6CD" /* Àš..š¾…ºÆ¶ÔùÛ¸¶Í */
118 $"FFCA B785 BA05 BD94 0000 94B9 83B6 0EB4" /* ÿÊ·…º.½”..”¹ƒ¶.´ */
119 $"B3B9 F7FE C4B0 B4B2 EFED B2B4 B4B5 82B6" /* ³¹÷þÄ°´²ïí²´´µ‚¶ */
120 $"05B8 8F00 008E B481 B211 AFCD EBDF E0FF" /* .¸..Ž´².¯Íëßàÿ */
121 $"E8E2 E9E8 E6E0 FEDF E8EA D0B0 81B2 05B3" /* èâéèæàþßèêа².³ */
122 $"8A00 0089 AF81 AD06 A8D9 FFE7 FBF7 EB81" /* Š..‰¯­.¨Ùÿçû÷ë */
123 $"FF06 F9E1 D3F8 FFE3 A980 AD05 AEAD 8600" /* ÿ.ùáÓøÿã©€­.®­†. */
124 $"0086 82A9 06A5 CBE5 EAFF DAE5 82EA 05D3" /* .†‚©.¥ËåêÿÚå‚ê.Ó */
125 $"F7DA E8D1 A680 A906 AAA7 8300 0082 A382" /* ÷ÚèѦ€©.ª§ƒ..‚£‚ */
126 $"A405 9FB7 FFF0 A5A1 81A2 05A1 A5D9 D39F" /* ¤.Ÿ·ÿ𥡢.¡¥ÙÓŸ */
127 $"A281 A406 A5A1 8000 0080 9F82 A004 9ED2" /* ¢¤.¥¡€..€Ÿ‚ .žÒ */
128 $"E9BA 9B83 A004 9ABF FFC5 9A81 A007 A19C" /* 麛ƒ .š¿ÿÅš .¡œ */
129 $"7F00 007E 999D 809B 059A 9FF6 C696 9C83" /* ...~™€›.šŸöÆ–œƒ */
130 $"9B05 99A4 FBFB A799 809B 079C 977D 0000" /* ›.™¤ûû§™€›.œ—}.. */
131 $"7C95 9980 9803 97A1 B295 8698 0494 D5FC" /* |•™€˜.—¡²•†˜.”Õü */
132 $"AC95 8098 0799 937C 0000 7C93 9782 9600" /* ¬•€˜.™“|..|“—‚–. */
133 $"9387 9603 9599 A295 8196 0797 917C 0000" /* “‡–.•™¢•–.—‘|.. */
134 $"7B8E 928D 9102 9290 8F82 9103 928C 7B00" /* {Ž’‘.’‚‘.’Œ{. */
135 $"BD7C 0000 9B7C 9E00 FF00 BE00 0275 9199" /* ½|..›|ž.ÿ.¾..u‘™ */
136 $"8498 007E 9200 027D D0D9 83D7 02DB 9B6C" /* „˜.~’..}ÐÙƒ×.Û›l */
137 $"9000 0271 A0D5 84D2 03D5 B67F 7E89 7F00" /* ..q Õ„Ò.Õ¶.~‰.. */
138 $"7D81 0003 728B BBBB 85BA 02BB B6B3 88B4" /* }..r‹»»…º.»¶³ˆ´ */
139 $"08B5 AF81 7300 76B0 C6C2 87C1 01C2 C089" /* .µ¯s.v°Æ‡Á.ÂÀ‰ */
140 $"C206 C3C5 AB75 7CC3 CA89 C801 DBC9 89C8" /* Â.ÃÅ«u|ÃʉÈ.ÛÉ‰È */
141 $"05CB BD78 77B9 C588 C304 C0E5 E2BF C487" /* .˽xw¹ÅˆÃ.Àåâ¿Ä‡ */
142 $"C305 C6B2 7574 B0C3 87C0 05BF BCC7 FCC7" /* Ã.Ʋut°Ã‡À.¿¼ÇüÇ */
143 $"BE87 C005 C3A9 7272 A7BF 87BC 05B9 D0E1" /* ¾‡À.érr§¿‡¼.¹Ðá */
144 $"EEEB B887 BC05 C0A1 7171 A0BC 86B8 07B5" /* î븇¼.À¡qq ¼†¸.µ */
145 $"CBF6 DDCB FFC7 B586 B805 BB99 0000 98B9" /* ËöÝËÿǵ†¸.»™..˜¹ */
146 $"86B5 07B2 DBFA D0AE F0EC B186 B505 B892" /* †µ.²ÛúЮð챆µ.¸’ */
147 $"0000 91B5 82B2 80B1 09AC D0F9 D7AF ADC7" /* ..‘µ‚²€±Æ¬Ðùׯ­Ç */
148 $"FFC4 AD80 B182 B205 B48C 0000 8BB1 81AD" /* ÿÄ­€±‚².´Œ..‹±­ */
149 $"11AE ADAC ABB1 F6FD BDA8 ABAA EDEB A9AB" /* .®­¬«±öý½¨«ªíë©« */
150 $"ACAC AE81 AD05 AF87 0000 86AB 81A9 11A6" /* ¬¬®­.¯‡..†«©.¦ */
151 $"C8E9 DCDE FFE5 DFE7 E6E4 DDFE DCE6 E9CB" /* ÈéÜÞÿåßçæäÝþÜæéË */
152 $"A781 A905 AA82 0000 81A6 81A5 069F D6FF" /* §©.ª‚..¦¥.ŸÖÿ */
153 $"E4FA F6EA 81FF 06F8 DFCF F7FF E0A0 80A5" /* äúöêÿ.øßÏ÷ÿà €¥ */
154 $"05A6 A47E 0000 7D82 A006 9BC6 E3E8 FFD6" /* .¦¤~..}‚ .›ÆãèÿÖ */
155 $"E282 E805 CFF6 D7E6 CC9C 80A0 06A1 9E7B" /* â‚è.Ïö×æÌœ€ .¡ž{ */
156 $"0000 7A9B 829C 0496 B1FF EF9D 8399 049C" /* ..z›‚œ.–±ÿ.œ */
157 $"D6D0 969A 819C 069D 9979 0000 7897 8198" /* ÖЖšœ.™y..x—˜ */
158 $"0597 95CF E7B4 9283 9704 91BA FFC0 9181" /* .—•Ïç´’ƒ—.‘ºÿÀ‘ */
159 $"9807 9994 7700 0076 9295 8094 0493 98F5" /* ˜.™”w..v’•€”.“˜õ */
160 $"C28E 8494 0592 9DFB FBA0 9180 9407 958F" /* ÂŽ„”.’ûû ‘€”.• */
161 $"7500 0074 8E91 8090 038F 9AAC 8C86 9004" /* u..tŽ‘€.š¬Œ†. */
162 $"8BD1 FBA6 8C80 9007 918B 7400 0074 8B8F" /* ‹Ñû¦Œ€.‘‹t..t‹ */
163 $"808E 048F 8E8B 8E8F 848E 048F 8D91 9B8D" /* €Ž.Ž‹Ž„Ž.‘› */
164 $"818E 078F 8974 0000 7487 8B8E 8A01 8987" /* Ž.‰t..t‡‹ŽŠ.‰‡ */
165 $"828A 038B 8574 00BD 7400 009B 749E 006C" /* ‚Š.‹…t.½t..›tž.l */
166 $"386D 6B00 0004 0800 0000 0000 0000 0000" /* 8mk............. */
167 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
168 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
169 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
170 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
171 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
172 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
173 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
174 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
175 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
176 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
177 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
178 $"0000 0000 0000 0000 0000 0B76 8889 8989" /* ...........vˆ‰‰‰ */
179 $"8989 8988 3800 0000 0000 0000 0000 0000" /* ‰‰‰ˆ8........... */
180 $"0000 0000 0000 0000 0000 36FF FFFF FFFF" /* ..........6ÿÿÿÿÿ */
181 $"FFFF FFFF A301 0000 0000 0000 0000 0000" /* ÿÿÿÿ£........... */
182 $"0000 0000 0000 0000 0006 A4FF FFFF FFFF" /* ..........¤ÿÿÿÿÿ */
183 $"FFFF FFFF DE59 3F40 4040 4040 4040 4040" /* ÿÿÿÿÞY?@@@@@@@@@ */
184 $"4040 4033 0000 0000 1384 F8F3 F3F3 F3F3" /* @@@3.....„øóóóóó */
185 $"F3F3 F3F3 F7F9 F7F7 F7F7 F7F7 F7F7 F7F7" /* óóóó÷ù÷÷÷÷÷÷÷÷÷÷ */
186 $"F7F7 F7F1 520D 001D E1FF FAFB FBFB FBFB" /* ÷÷÷ñR...áÿúûûûûû */
187 $"FBFB FBFB FBFB FBFB FBFB FBFB FBFB FBFB" /* ûûûûûûûûûûûûûûûû */
188 $"FBFB FBFB FFCD 0E39 FFFF FFFF FFFF FFFF" /* ûûûûÿÍ.9ÿÿÿÿÿÿÿÿ */
189 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
190 $"FFFF FFFF FFF8 1F26 F6FF FFFF FFFF FFFF" /* ÿÿÿÿÿø.&öÿÿÿÿÿÿÿ */
191 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
192 $"FFFF FFFF FFE5 1318 ECFF FFFF FFFF FFFF" /* ÿÿÿÿÿå..ìÿÿÿÿÿÿÿ */
193 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
194 $"FFFF FFFF FFD5 0A0F DDFF FFFF FFFF FFFF" /* ÿÿÿÿÿÕÂ.Ýÿÿÿÿÿÿÿ */
195 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
196 $"FFFF FFFF FFC6 0206 D0FF FFFF FFFF FFFF" /* ÿÿÿÿÿÆ..Ðÿÿÿÿÿÿÿ */
197 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
198 $"FFFF FFFF FFB6 0000 C2FF FFFF FFFF FFFF" /* ÿÿÿÿÿ¶..Âÿÿÿÿÿÿÿ */
199 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
200 $"FFFF FFFF FFA5 0000 B2FF FFFF FFFF FFFF" /* ÿÿÿÿÿ¥..²ÿÿÿÿÿÿÿ */
201 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
202 $"FFFF FFFF FF95 0000 A4FF FFFF FFFF FFFF" /* ÿÿÿÿÿ•..¤ÿÿÿÿÿÿÿ */
203 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
204 $"FFFF FFFF FF87 0000 96FF FFFF FFFF FFFF" /* ÿÿÿÿÿ‡..–ÿÿÿÿÿÿÿ */
205 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
206 $"FFFF FFFF FF7A 0000 8AFF FFFF FFFF FFFF" /* ÿÿÿÿÿz..Šÿÿÿÿÿÿÿ */
207 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
208 $"FFFF FFFF FF6D 0000 7FFF FFFF FFFF FFFF" /* ÿÿÿÿÿm...ÿÿÿÿÿÿÿ */
209 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
210 $"FFFF FFFF FF63 0000 77FF FFFF FFFF FFFF" /* ÿÿÿÿÿc..wÿÿÿÿÿÿÿ */
211 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
212 $"FFFF FFFF FF5A 0000 6FFF FFFF FFFF FFFF" /* ÿÿÿÿÿZ..oÿÿÿÿÿÿÿ */
213 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
214 $"FFFF FFFF FF54 0000 69FF FFFF FFFF FFFF" /* ÿÿÿÿÿT..iÿÿÿÿÿÿÿ */
215 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
216 $"FFFF FFFF FF4F 0000 65FF FFFF FFFF FFFF" /* ÿÿÿÿÿO..eÿÿÿÿÿÿÿ */
217 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
218 $"FFFF FFFF FF4C 0000 64FF FFFF FFFF FFFF" /* ÿÿÿÿÿL..dÿÿÿÿÿÿÿ */
219 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
220 $"FFFF FFFF FF4B 0000 61FF FFFF FFFF FFFF" /* ÿÿÿÿÿK..aÿÿÿÿÿÿÿ */
221 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
222 $"FFFF FFFF FF48 0004 2C6D 7574 7474 7474" /* ÿÿÿÿÿH..,muttttt */
223 $"7474 7474 7474 7474 7474 7474 7474 7474" /* tttttttttttttttt */
224 $"7474 7475 6824 0202 0D18 1C1C 1C1C 1C1C" /* tttuh$.......... */
225 $"1C1C 1C1C 1C1C 1C1C 1C1C 1C1C 1C1C 1C1C" /* ................ */
226 $"1C1C 1C1C 170C 0100 0103 0303 0303 0303" /* ................ */
227 $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
228 $"0303 0303 0301 0000 0000 0000 0000 0000" /* ................ */
229 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
230 $"0000 0000 0000 0069 6833 3200 0009 DEFF" /* .......ih32..ÆÞÿ */
231 $"00FF 00FF 00AD 0001 5E66 8865 0261 5859" /* .ÿ.ÿ.­..^fˆe.aXY */
232 $"9C00 025E A6BA 87B7 04B9 AE67 5659 9B00" /* œ..^¦º‡·.¹®gVY›. */
233 $"0266 BABF 87BE 04BF BC70 5459 9A00 0252" /* .fº¿‡¾.¿¼pTYš..R */
234 $"81BD 89BA 03BC 8652 5491 5585 0003 5580" /* ½‰º.¼†RT‘U…..U€ */
235 $"B7BA 89B9 02BA B497 918F 0191 7683 0003" /* ·º‰¹.º´—‘.‘vƒ.. */
236 $"5864 9399 8B97 0098 929B 039D 855F 5A80" /* Xd“™‹—.˜’›.…_Z€ */
237 $"0002 649D A990 A500 A490 A509 A6A9 9B65" /* ..d©¥.¤¥Æ¦©›e */
238 $"0000 85B4 AFAF 8EAE 03B0 AEAC AF8E AE07" /* ..…´¯¯Ž®.°®¬¯Ž®. */
239 $"AFAF B280 0000 80AD 8FA9 04A8 B2E7 ACA8" /* ¯¯²€..€­©.¨²ç¬¨ */
240 $"90A9 05AB 7A00 0076 A98F A604 A5A4 F1E0" /* ©.«z..v©¦.¥¤ñà */
241 $"A08F A606 A7A6 7100 006D A390 A204 9DC8" /*  ¦.§¦q..m£¢.È */
242 $"FFB9 9C8E A207 A3A0 6A00 0065 9D9F 8D9E" /* ÿ¹œŽ¢.£ j..eŸž */
243 $"069F 9C96 A2FA EF9C 8E9E 079F 9A65 0000" /* .Ÿœ–¢úž.Ÿše.. */
244 $"6097 9C8D 9B07 97A5 E2C6 D2FF C394 8D9B" /* `—œ›.—¥âÆÒÿÔ› */
245 $"079C 9461 0000 5E90 988C 9709 959A D5CE" /* .œ”a..^˜Œ—Æ•šÕÎ */
246 $"E4B2 FCF4 9A95 8C97 0799 8D5E 0000 5A8B" /* ä²üôš•Œ—.™^..Z‹ */
247 $"968C 9409 8EC8 FFF6 C18D DDFF C78C 8C94" /* –Œ”ÆŽÈÿöÁÝÿÇŒŒ” */
248 $"0796 875B 0000 5885 938B 910B 8F8F E5FF" /* .–‡[..X…“‹‘.åÿ */
249 $"FFA9 87AA FFF7 988E 8B91 0793 8159 0000" /* ÿ©‡ªÿ÷˜Ž‹‘.“Y.. */
250 $"577F 908B 8E0B 87CF D4D0 CA89 8D8B E0FF" /* W.‹Ž.‡ÏÔÐʉ‹àÿ */
251 $"C786 8B8E 0790 7B58 0000 5779 8C86 8A81" /* dž‹Ž.{X..WyŒ†Š */
252 $"8B0D 84A5 FFFF E38B 898B 85A8 FFF8 9387" /* ‹.„¥ÿÿ㋉‹…¨ÿø“‡ */
253 $"818B 868A 078C 7557 0000 5674 8A85 8800" /* ‹†Š.ŒuW..VtŠ…ˆ. */
254 $"8680 820E 8385 E4FF FFB9 7C83 8381 7FDD" /* †€‚.ƒ…äÿÿ¹|ƒƒ.Ý */
255 $"FFC6 7E81 8200 8585 8807 8A71 5759 0056" /* ÿÆ~‚.……ˆ.ŠqWY.V */
256 $"6F87 8485 1983 929F A3A0 94B0 FFFF E39D" /* o‡„….ƒ’Ÿ£ ”°ÿÿã */
257 $"9F9E 9DA3 9AB0 FBF4 98A0 A09F A192 8484" /* Ÿž£š°ûô˜  Ÿ¡’„„ */
258 $"8507 876D 5759 0056 6984 8482 197C A7EB" /* ….‡mWY.Vi„„‚.|§ë */
259 $"FBF1 C2EC FFFB C1ED F2F6 ECFB EDD9 DBFF" /* ûñÂìÿûÁíòöìûíÙÛÿ */
260 $"D4EE F0F6 F6B7 7C84 8207 8369 5700 5956" /* Ôîðöö·|„‚.ƒiW.YV */
261 $"6481 847F 0979 A3FF FFEB CCFF FFD5 E084" /* d„.Æy£ÿÿëÌÿÿÕà„ */
262 $"FF03 C8F1 BCC4 80FF 01C0 7785 7F06 6557" /* ÿ.Èñ¼Ä€ÿ.Àw…..eW */
263 $"5959 5661 7E84 7D08 76A3 FFFF C3F4 FFF5" /* YYVa~„}.v£ÿÿÃôÿõ */
264 $"CB85 FF08 EDA8 CCC0 F2FF FFC1 7485 7D06" /* Ë…ÿ.í¨ÌÀòÿÿÁt…}. */
265 $"6358 5959 575E 7B84 7A09 7692 D0BE D6FF" /* cXYYW^{„zÆv’оÖÿ */
266 $"FFC2 B9D0 84CF 08CD B9FF F1B1 CED0 A574" /* ÿ¹ЄÏ.͹ÿñ±ÎÐ¥t */
267 $"847A 0679 6058 5959 585D 8678 0776 6A9C" /* „z.y`XYYX]†x.vjœ */
268 $"FFFF F081 7086 7106 75D1 D89D 6A71 7484" /* ÿÿðp†q.uÑØjqt„ */
269 $"7808 7976 5E58 5959 585B 7486 7505 73B9" /* x.yv^XYYX[t†u.s¹ */
270 $"F5FF AC6D 8775 0570 8CEB F889 6F85 7508" /* õÿ¬m‡u.pŒëø‰o…u. */
271 $"7672 5C58 5959 5859 7285 7306 6F8A E1C6" /* vr\XYYXYr…s.oŠáÆ */
272 $"C176 7287 7306 7179 EEFF E173 7184 7308" /* Ávr‡s.qyîÿásq„s. */
273 $"7470 5B58 5959 5859 7085 7205 6B97 FFE7" /* tp[XYYXYp…r.k—ÿç */
274 $"776E 8972 0569 C6FF FFB4 6A84 7202 736E" /* wn‰r.iÆÿÿ´j„r.sn */
275 $"5A81 5901 586D 856F 0567 B9D9 786B 7089" /* ZY.Xm…o.g¹Ùxkp‰ */
276 $"6F06 6993 FFFF F173 6D83 6F01 706B 8259" /* o.i“ÿÿñsmƒo.pk‚Y */
277 $"0157 6B85 6E03 6C8C 7269 8B6E 066D 6BD3" /* .Wk…n.lŒri‹n.mkÓ */
278 $"FFCB 6C6D 836E 026F 6958 8159 0256 6A6E" /* ÿËlmƒn.oiXY.Vjn */
279 $"856D 0169 6B8D 6D04 6A73 8A6D 6B84 6D02" /* …m.ikm.jsŠmk„m. */
280 $"6E68 5881 5902 566A 6E98 6D02 6B67 6C85" /* nhXY.Vjn˜m.kgl… */
281 $"6D02 6E68 5881 5902 5665 69A3 6802 6963" /* m.nhXY.Vei£h.ic */
282 $"5881 5901 5858 A559 0058 B059 0000 AB59" /* XY.XX¥Y.X°Y..«Y */
283 $"8000 A959 DF00 FF00 FF00 FF00 AD00 0081" /* €.©Yß.ÿ.ÿ.ÿ.­.. */
284 $"8987 0283 7B7C 9C00 0280 C1D3 87D1 04D2" /* ‰‡.ƒ{|œ..€ÁÓ‡Ñ.Ò */
285 $"C787 7A7C 9B00 0288 D4DA 87D9 04DA D68F" /* LJz|›..ˆÔÚ‡Ù.ÚÖ */
286 $"787C 9A00 0276 A2D8 89D6 02D7 A476 9278" /* x|š..v¢Ø‰Ö.פv’x */
287 $"8500 0379 A2D3 D789 D503 D6D0 B5AD 90AE" /* …..y¢Ó׉Õ.Öе­® */
288 $"01B0 9683 0003 7C87 B1B7 8BB5 00B6 92B9" /* .°–ƒ..|‡±·‹µ.¶’¹ */
289 $"03BA A282 7D80 0003 87BD C8C5 90C4 00C5" /* .º¢‚}€..‡½ÈÅÄ.Å */
290 $"8FC4 08C5 C8B9 8700 00A7 D6D1 90D0 01CD" /* Ä.Åȹ‡..§ÖÑÐ.Í */
291 $"CF90 D006 D1D3 A000 00A3 D18F CD04 CCD1" /* ÏÐ.ÑÓ ..£ÑÍ.ÌÑ */
292 $"EECC CC90 CD05 CF9B 0000 9ACE 90CB 03CA" /* îÌÌÍ.Ï›..šÎË.Ê */
293 $"F7E9 C68F CB07 CCCB 9300 0091 C9C9 8FC8" /* ÷éÆË.ÌË“..‘ÉÉÈ */
294 $"04C6 DFFF D2C5 8EC8 07C9 C68D 0000 8BC5" /* .ÆßÿÒÅŽÈ.ÉÆ..‹Å */
295 $"C78D C606 C7C5 BFC7 FDF3 C38E C607 C7C0" /* ÇÆ.ÇÅ¿ÇýóÃŽÆ.ÇÀ */
296 $"8800 0086 C0C5 8DC4 07C2 C7EB DAE4 FFD9" /* ˆ..†ÀÅÄ.ÂÇëÚäÿÙ */
297 $"C08D C407 C6BC 8400 0082 BBC4 8CC2 09C1" /* ÀÄ.Ƽ„..‚»ÄŒÂÆÁ */
298 $"C2E2 DEED D1FD F7C1 C18C C207 C4B6 8100" /* ÂâÞíÑý÷ÁÁŒÂ.Ķ. */
299 $"007F B5C2 8CC0 09BC DBFF F8D7 BBEA FFDB" /* ..µÂŒÀƼÛÿø×»êÿÛ */
300 $"BA8C C007 C2B0 7E00 007C B0C0 8BBE 0BBD" /* ºŒÀ.°~..|°À‹¾.½ */
301 $"BAED FFFF CCB8 CCFF F9BF BC8B BE07 C0AA" /* ºíÿÿ̸Ìÿù¿¼‹¾.Àª */
302 $"7C00 007B ABBF 8BBC 0BB7 DEE1 DFDF B9BB" /* |..{«¿‹¼.·Þáßß¹» */
303 $"BAED FFDA B78B BC07 BFA5 7B00 007A A5BC" /* ºíÿÚ·‹¼.¿¥{..z¥¼ */
304 $"89B9 0EBA B6C6 FFFF ECB9 B9BA B6CB FFFA" /* ‰¹.º¶Æÿÿì¹¹º¶Ëÿú */
305 $"BCB8 8AB9 07BC 9F7A 0000 799F B984 B601" /* ¼¸Š¹.¼Ÿz..yŸ¹„¶. */
306 $"B7B5 82B3 0CEC FFFF D4AF B3B3 B2B1 EAFF" /* ·µ‚³.ìÿÿÔ¯³³²±êÿ */
307 $"D9B0 81B3 01B5 B784 B607 B899 797C 0079" /* Ù°³.µ·„¶.¸™y|.y */
308 $"99B7 84B4 13B3 B9BE C1C0 B9CB FFFF EDBE" /* ™·„´.³¹¾ÁÀ¹Ëÿÿí¾ */
309 $"BFBE BEC1 BCCB FCF7 BB80 BF02 C0B9 B384" /* ¿¾¾Á¼Ëü÷»€¿.À¹³„ */
310 $"B407 B694 797C 0079 93B4 84B1 19AD C7F1" /* ´.¶”y|.y“´„±.­Çñ */
311 $"FBF5 D6F1 FFFD D5F2 F5F8 F1FB F2E4 E7FF" /* ûõÖñÿýÕòõøñûòäçÿ */
312 $"E2F3 F4F8 F8D0 AD84 B107 B290 7A00 7C79" /* âóôøøЭ„±.²z.|y */
313 $"8DB0 84AE 09AA C3FF FFF2 DCFF FFE2 E984" /* °„®ÆªÃÿÿòÜÿÿâé„ */
314 $"FF03 D9F6 D1D8 80FF 01D6 A985 AE06 8C7A" /* ÿ.ÙöÑØ€ÿ.Ö©…®.Œz */
315 $"7C7C 7989 AD84 AB08 A7C3 FFFF D5F7 FFF8" /* ||y‰­„«.§ÃÿÿÕ÷ÿø */
316 $"DA85 FF08 F2C2 DAD3 F6FF FFD7 A583 AB08" /* Ú…ÿ.òÂÚÓöÿÿ×¥ƒ«. */
317 $"ACAA 897A 7C7C 7A86 A984 A809 A5B7 E0D3" /* ¬ª‰z||z†©„¨Æ¥·àÓ */
318 $"E2FF FFD6 D0E0 84DF 08DD CFFF F5CB DFE0" /* âÿÿÖÐà„ß.ÝÏÿõËßà */
319 $"C3A4 83A8 07A9 A686 7A7C 7C7A 8386 A506" /* 䃨.©¦†z||zƒ†¥. */
320 $"A39B BAFF FFF5 AA87 A006 A3DF E2BA 9BA1" /* £›ºÿÿõª‡ .£ß⺛¡ */
321 $"A284 A507 A6A2 837B 7C7C 7B82 87A2 059F" /* ¢„¥.¦¢ƒ{||{‚‡¢.Ÿ */
322 $"CCF8 FFC7 9C87 A205 9EAF F0F9 AD9E 85A2" /* ÌøÿÇœ‡¢.ž¯ðù­ž…¢ */
323 $"08A3 9F81 7B7C 7C7B 7F9D 859F 069C AEE8" /* .£Ÿ{||{.…Ÿ.œ®è */
324 $"D4D3 A09E 879F 069D A3F4 FFE8 9D9E 849F" /* ÔÓ ž‡Ÿ.£ôÿèž„Ÿ */
325 $"09A0 9B7F 7B7C 7C7B 7E9A 9D84 9C05 98B5" /* Æ ›.{||{~š„œ.˜µ */
326 $"FFEE 9F99 899C 0596 D7FF FFC9 9684 9C09" /* ÿ‰œ.–×ÿÿÉ–„œÆ */
327 $"9D97 7E7B 7C7C 7B7C 989B 849A 0494 CCE4" /* —~{||{|˜›„š.”Ìä */
328 $"A097 8A9A 0695 B3FF FFF4 9C99 839A 019B" /*  —Šš.•³ÿÿôœ™ƒš.› */
329 $"9482 7C02 7B95 9984 9803 97AD 9B95 8B98" /* ”‚|.{•™„˜.—­›•‹˜ */
330 $"0697 96E0 FFDA 9797 8398 0199 9282 7C02" /* .—–àÿÚ——ƒ˜.™’‚|. */
331 $"7A93 9785 9601 9395 8D96 0494 9AAB 9695" /* z“—…–.“•–.”š«–• */
332 $"8496 0297 8F7B 817C 027A 9297 9896 0294" /* „–.—{|.z’—˜–.” */
333 $"9295 8596 0297 8F7B 817C 027A 8C91 A390" /* ’•…–.—{|.zŒ‘£ */
334 $"0291 897A 817C 017B 7BA5 7C00 7BB0 7C00" /* .‘‰z|.{{¥|.{°|. */
335 $"00AB 7C80 00A9 7CDF 00FF 00FF 00FF 00AD" /* .«|€.©|ß.ÿ.ÿ.ÿ.­ */
336 $"0000 7A89 8002 7C73 749C 0002 79BC CE87" /* ..z‰€.|stœ..y¼Î‡ */
337 $"CC04 CDC2 8172 749B 0002 80CF D587 D304" /* Ì.ÍÂrt›..€ÏÕ‡Ó. */
338 $"D4D1 8870 749A 0002 6E9B D288 D003 D1D2" /* Ôшptš..n›ÒˆÐ.ÑÒ */
339 $"9E6E 9270 8500 0371 9BCE D289 D002 D1CB" /* žn’p…..q›ÎÒ‰Ð.ÑË */
340 $"AF91 A801 AA90 8300 0474 80AC B2AF 8AB0" /* ¯‘¨.ªƒ..t€¬²¯Š° */
341 $"02B1 B3B4 90B3 03B5 9D7A 7580 0002 80B7" /* .±³´³.µzu€..€· */
342 $"C3A4 BF09 C0C3 B57F 0000 A0CF CACA 8DC9" /* ä¿ÆÀõ... ÏÊÊÉ */
343 $"04CA CAC6 C8CA 8EC9 07CA CACD 9900 009C" /* .ÊÊÆÈÊŽÉ.ÊÊÍ™..œ */
344 $"CA8F C604 C5CB EDC5 C58F C606 C7C8 9400" /* ÊÆ.ÅËíÅÅÆ.ÇÈ”. */
345 $"0093 C790 C403 C3F6 E7BF 8FC4 07C5 C48B" /* .“ÇÄ.Ãöç¿Ä.ÅÄ‹ */
346 $"0000 8AC2 C28F C104 BEDA FFCE BE8E C107" /* ..ŠÂÂÁ.¾ÚÿξŽÁ. */
347 $"C2BF 8600 0083 BEC0 8DBF 06C0 BEB8 C1FC" /* ¿†..ƒ¾À¿.À¾¸Áü */
348 $"F3BC 8EBF 07C0 BA81 0000 7EB9 BE8D BD07" /* 󼎿.Àº..~¹¾½. */
349 $"BAC0 E9D6 E1FF D5B8 8DBD 07BF B57C 0000" /* ºÀéÖáÿÕ¸½.¿µ|.. */
350 $"7AB3 BC8C BA09 B9BB DFDB EBCB FDF7 BAB9" /* z³¼ŒºÆ¹»ßÛëËý÷º¹ */
351 $"8CBA 07BC AE79 0000 77AE B98C B709 B3D7" /* Œº.¼®y..w®¹Œ·Æ³× */
352 $"FFF8 D3B2 E8FF D7B1 8CB7 07B9 A876 0000" /* ÿøÓ²èÿ×±Œ·.¹¨v.. */
353 $"74A9 B78A B50C B6B5 B2EC FFFF C6AF C6FF" /* t©·Šµ.¶µ²ìÿÿƯÆÿ */
354 $"F9B8 B48B B507 B7A3 7400 0073 A3B6 8BB3" /* ù¸´‹µ.·£t..s£¶‹³ */
355 $"0BAE DBDE DDDB B0B3 B1EA FFD7 AE8B B307" /* .®ÛÞÝÛ°³±êÿ×®‹³. */
356 $"B59D 7300 0072 9CB3 8AB0 04AD C0FF FFEA" /* µs..rœ³Š°.­Àÿÿê */
357 $"80B0 05AD C4FF F9B4 AF8A B007 B397 7200" /* €°.­Äÿù´¯Š°.³—r. */
358 $"0071 97B1 85AE 00AC 80AA 0EAB AAEA FFFF" /* .q—±…®.¬€ª.«ªêÿÿ */
359 $"CFA6 AAAA A9A7 E7FF D5A7 81AA 00AC 85AE" /* Ϧªª©§çÿÕ§ª.¬…® */
360 $"07B0 9171 7400 7191 AE84 AB13 AAB2 B9BB" /* .°‘qt.q‘®„«.ª²¹» */
361 $"BAB2 C6FF FFEB B7B9 B8B7 BBB6 C5FC F7B5" /* º²Æÿÿë·¹¸·»¶Åü÷µ */
362 $"80B9 01BA B285 AB07 AD8C 7174 0070 8BAB" /* €¹.º²…«.­Œqt.p‹« */
363 $"84A8 19A4 C1EF FBF4 D2F0 FFFC D1F1 F4F8" /* „¨.¤ÁïûôÒðÿüÑñôø */
364 $"F0FB F1E2 E5FF DFF2 F3F8 F8CB A484 A807" /* ðûñâåÿßòóøøˤ„¨. */
365 $"A988 7200 7471 85A7 84A5 09A1 BDFF FFF0" /* ©ˆr.tq…§„¥Æ¡½ÿÿð */
366 $"D9FF FFE0 E784 FF03 D6F5 CDD4 80FF 01D2" /* Ùÿÿàç„ÿ.ÖõÍÔ€ÿ.Ò */
367 $"9F85 A506 8472 7474 7181 A484 A208 9EBD" /* Ÿ…¥.„rttq¤„¢.ž½ */
368 $"FFFF D2F6 FFF7 D785 FF08 F1BD D8CF F6FF" /* ÿÿÒöÿ÷×…ÿ.ñ½ØÏöÿ */
369 $"FFD3 9C83 A208 A3A2 8172 7474 727E A084" /* ÿÓœƒ¢.£¢rttr~ „ */
370 $"9F09 9CB0 DDCF DFFF FFD2 CCDD 84DC 08DA" /* ŸÆœ°ÝÏßÿÿÒÌÝ„Ü.Ú */
371 $"CBFF F4C6 DCDD BE9B 839F 08A0 9E7E 7274" /* ËÿôÆÜݾ›ƒŸ. ž~rt */
372 $"7472 7C9D 849C 089D 9B93 B5FF FFF4 A397" /* tr|„œ.›“µÿÿô£— */
373 $"8598 0897 9BDD E0B4 9398 9A9D 839C 089D" /* …˜.—›Ýà´“˜šƒœ. */
374 $"9A7B 7374 7473 7998 8699 0597 C8F7 FFC1" /* š{sttsy˜†™.—È÷ÿÁ */
375 $"9387 9905 96A9 EEF9 A695 8599 089A 9679" /* “‡™.–©îù¦•…™.š–y */
376 $"7374 7473 7795 8596 0693 A7E6 D1D0 9895" /* sttsw•…–.“§æÑИ• */
377 $"8796 0695 9BF3 FFE7 9595 8496 0897 9377" /* ‡–.•›óÿç••„–.—“w */
378 $"7374 7473 7693 8595 058F B0FF ED98 9289" /* sttsv“…•.°ÿ혒‰ */
379 $"9505 8ED4 FFFF C58E 8495 0996 9076 7374" /* •.ŽÔÿÿÅŽ„•Æ–vst */
380 $"7473 7490 9384 9204 8BC8 E299 8F8A 9206" /* tst“„’.‹È♊’. */
381 $"8DAD FFFF F494 9183 9202 938C 7581 7402" /* ­ÿÿô”‘ƒ’.“Œut. */
382 $"738D 9184 9003 8EA7 938D 8B90 068F 8EDD" /* s‘„.Ž§“‹.ŽÝ */
383 $"FFD7 8E8F 8390 0191 8A82 7402 728B 8F85" /* ÿ׎ƒ.‘Š‚t.r‹… */
384 $"8E01 8B8D 8D8E 048C 93A4 8E8D 848E 028F" /* Ž.‹Ž.Œ“¤Ž„Ž. */
385 $"8773 8174 0272 8B8F 988E 028C 8A8D 858E" /* ‡st.r‹˜Ž.ŒŠ…Ž */
386 $"028F 8773 8174 0272 8489 A388 0289 8173" /* .‡st.r„‰£ˆ.‰s */
387 $"8174 0173 73A5 7400 73B0 7400 00AB 7480" /* t.ss¥t.s°t..«t€ */
388 $"00A9 74DF 0068 386D 6B00 0009 0800 0000" /* .©tß.h8mk..Æ.... */
389 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
390 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
391 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
392 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
393 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
394 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
395 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
396 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
397 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
398 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
399 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
400 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
401 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
402 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
403 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
404 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
405 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
406 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
407 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
408 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
409 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
410 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
411 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
412 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
413 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
414 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
415 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
416 $"0000 002E 4549 4A4A 4A4A 4A4A 4A4A 4A4A" /* ....EIJJJJJJJJJJ */
417 $"3B0A 0400 0000 0000 0000 0000 0000 0000" /* ;Â.............. */
418 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
419 $"0000 2FF9 FFFF FFFF FFFF FFFF FFFF FFFF" /* ../ùÿÿÿÿÿÿÿÿÿÿÿÿ */
420 $"FD52 0802 0000 0000 0000 0000 0000 0000" /* ýR.............. */
421 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
422 $"0000 4DFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..Mÿÿÿÿÿÿÿÿÿÿÿÿÿ */
423 $"FF7E 1306 0000 0000 0000 0000 0000 0000" /* ÿ~.............. */
424 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
425 $"0002 ABFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..«ÿÿÿÿÿÿÿÿÿÿÿÿÿ */
426 $"FFBB 2C11 0B0B 0B0B 0B0B 0B0B 0B0B 0B0B" /* ÿ»,............. */
427 $"0B0B 0B0B 0B0B 0903 0000 0000 0000 0000" /* ......Æ......... */
428 $"08B2 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
429 $"FFFF DFCC CCCC CCCC CCCC CCCC CCCC CCCC" /* ÿÿßÌÌÌÌÌÌÌÌÌÌÌÌÌ */
430 $"CCCC CCCC CCCC CBC9 8000 0000 0000 0026" /* ÌÌÌÌÌÌËÉ€......& */
431 $"71F2 EDEE EFEF EFEF EFEF EFEF EFEF EFEF" /* qòíîïïïïïïïïïïïï */
432 $"EFEF F4F7 F7F7 F7F7 F7F7 F7F7 F7F7 F7F7" /* ïïô÷÷÷÷÷÷÷÷÷÷÷÷÷ */
433 $"F7F7 F7F7 F7F7 F7F5 CE41 2000 0000 5EF7" /* ÷÷÷÷÷÷÷õÎA ...^÷ */
434 $"FFF8 F8F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9" /* ÿøøùùùùùùùùùùùùù */
435 $"F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9" /* ùùùùùùùùùùùùùùùù */
436 $"F9F9 F9F9 F9F9 F9F8 FAFF EE41 0000 C4FF" /* ùùùùùùùøúÿîA..Äÿ */
437 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
438 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
439 $"FFFF FFFF FFFF FFFF FFFF FFA1 0000 B6FF" /* ÿÿÿÿÿÿÿÿÿÿÿ¡..¶ÿ */
440 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
441 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
442 $"FFFF FFFF FFFF FFFF FFFF FF91 0000 A2FF" /* ÿÿÿÿÿÿÿÿÿÿÿ‘..¢ÿ */
443 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
444 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
445 $"FFFF FFFF FFFF FFFF FFFF FF7A 0000 8FFF" /* ÿÿÿÿÿÿÿÿÿÿÿz..ÿ */
446 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
447 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
448 $"FFFF FFFF FFFF FFFF FFFF FF68 0000 79FF" /* ÿÿÿÿÿÿÿÿÿÿÿh..yÿ */
449 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
450 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
451 $"FFFF FFFF FFFF FFFF FFFF FF57 0000 5EFF" /* ÿÿÿÿÿÿÿÿÿÿÿW..^ÿ */
452 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
453 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
454 $"FFFF FFFF FFFF FFFF FFFF FF48 0000 4BFF" /* ÿÿÿÿÿÿÿÿÿÿÿH..Kÿ */
455 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
456 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
457 $"FFFF FFFF FFFF FFFF FFFF FD3B 0000 3FFE" /* ÿÿÿÿÿÿÿÿÿÿý;..?þ */
458 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
459 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
460 $"FFFF FFFF FFFF FFFF FFFF F62F 0000 33F8" /* ÿÿÿÿÿÿÿÿÿÿö/..3ø */
461 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
462 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
463 $"FFFF FFFF FFFF FFFF FFFF ED23 0000 27F2" /* ÿÿÿÿÿÿÿÿÿÿí#..'ò */
464 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
465 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
466 $"FFFF FFFF FFFF FFFF FFFF DE1A 0000 1FE9" /* ÿÿÿÿÿÿÿÿÿÿÞ....é */
467 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
468 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
469 $"FFFF FFFF FFFF FFFF FFFF CE10 0000 1ADF" /* ÿÿÿÿÿÿÿÿÿÿÎ....ß */
470 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
471 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
472 $"FFFF FFFF FFFF FFFF FFFF C10B 0100 14D5" /* ÿÿÿÿÿÿÿÿÿÿÁ....Õ */
473 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
474 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
475 $"FFFF FFFF FFFF FFFF FFFF B509 0100 0FCD" /* ÿÿÿÿÿÿÿÿÿÿµÆ...Í */
476 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
477 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
478 $"FFFF FFFF FFFF FFFF FFFF AA07 0001 0BC2" /* ÿÿÿÿÿÿÿÿÿÿª.... */
479 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
480 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
481 $"FFFF FFFF FFFF FFFF FFFF A005 0101 09B3" /* ÿÿÿÿÿÿÿÿÿÿ ...Ƴ */
482 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
483 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
484 $"FFFF FFFF FFFF FFFF FFFF 9504 0101 08A6" /* ÿÿÿÿÿÿÿÿÿÿ•....¦ */
485 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
486 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
487 $"FFFF FFFF FFFF FFFF FFFF 8D04 0101 069A" /* ÿÿÿÿÿÿÿÿÿÿ....š */
488 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
489 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
490 $"FFFF FFFF FFFF FFFF FFFF 8505 0101 0691" /* ÿÿÿÿÿÿÿÿÿÿ…....‘ */
491 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
492 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
493 $"FFFF FFFF FFFF FFFF FFFF 7D05 0101 078B" /* ÿÿÿÿÿÿÿÿÿÿ}....‹ */
494 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
495 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
496 $"FFFF FFFF FFFF FFFF FFFF 7606 0101 0885" /* ÿÿÿÿÿÿÿÿÿÿv....… */
497 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
498 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
499 $"FFFF FFFF FFFF FFFF FFFF 7106 0102 0881" /* ÿÿÿÿÿÿÿÿÿÿq.... */
500 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
501 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
502 $"FFFF FFFF FFFF FFFF FFFF 6D07 0102 0A7E" /* ÿÿÿÿÿÿÿÿÿÿm...Â~ */
503 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
504 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
505 $"FFFF FFFF FFFF FFFF FFFF 6A08 0102 0B7B" /* ÿÿÿÿÿÿÿÿÿÿj....{ */
506 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
507 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
508 $"FFFF FFFF FFFF FFFF FFFF 6709 0102 0C7C" /* ÿÿÿÿÿÿÿÿÿÿgÆ...| */
509 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
510 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
511 $"FFFF FFFF FFFF FFFF FFFF 670A 0102 0C75" /* ÿÿÿÿÿÿÿÿÿÿgÂ...u */
512 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
513 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
514 $"FFFF FFFF FFFF FFFF FFFF 600B 0102 113A" /* ÿÿÿÿÿÿÿÿÿÿ`....: */
515 $"7B85 8585 8585 8585 8585 8585 8585 8585" /* {……………………………………… */
516 $"8585 8585 8585 8585 8585 8585 8585 8585" /* ………………………………………… */
517 $"8585 8585 8585 8585 8574 310F 0101 0B1E" /* ………………………t1..... */
518 $"2B34 3535 3535 3535 3535 3535 3535 3535" /* +455555555555555 */
519 $"3535 3535 3535 3535 3535 3535 3535 3535" /* 5555555555555555 */
520 $"3535 3535 3535 3535 332A 1C0A 0100 040C" /* 555555553*.Â.... */
521 $"1418 1818 1818 1818 1818 1818 1818 1818" /* ................ */
522 $"1818 1818 1818 1818 1818 1818 1818 1818" /* ................ */
523 $"1818 1818 1818 1818 1813 0B03 0000 0002" /* ................ */
524 $"0304 0303 0303 0303 0303 0303 0303 0303" /* ................ */
525 $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
526 $"0303 0303 0303 0303 0402 0100 0000 0000" /* ................ */
527 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
528 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
529 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
530 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
531 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
532 $"0000 0000 0000 0000 0000 0000 0069 7433" /* .............it3 */
533 $"3200 0025 F700 0000 00FF 00FF 00FF 00FF" /* 2..%÷....ÿ.ÿ.ÿ.ÿ */
534 $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* .ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ */
535 $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* .ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ */
536 $"00FF 00FF 00FF 00FF 00FF 00DF 009F 59D7" /* .ÿ.ÿ.ÿ.ÿ.ÿ.ß.ŸY× */
537 $"00A6 59D3 0001 5959 8000 9D58 8459 D000" /* .¦YÓ..YY€.X„YÐ. */
538 $"0359 5900 569F 5901 5658 8359 D000 0257" /* .YY.VŸY.VXƒYÐ..W */
539 $"6287 9D95 0494 917F 5E58 8359 CD00 0459" /* b‡•.”‘.^XƒYÍ..Y */
540 $"005C 9ABA 9EBC 03B9 AE85 5883 59CD 0004" /* .\šºž¼.¹®…XƒYÍ.. */
541 $"5900 6EB3 BE9E BF04 BEB6 9D62 5782 59CD" /* Y.n³¾ž¿.¾¶bW‚YÍ */
542 $"0003 5900 74B6 A0BE 03B8 9F63 5782 59CC" /* ..Y.t¶ ¾.¸ŸcW‚YÌ */
543 $"0004 5959 547A B8A0 BC03 B7A0 6357 8359" /* ..YYTz¸ ¼.· cWƒY */
544 $"CB00 0459 5954 88B9 A0BB 03B7 A366 56B8" /* Ë..YYTˆ¹ ».·£fV¸ */
545 $"5995 0005 5959 005B A0B9 A0BA 03B8 AA73" /* Y•..YY.[ ¹ º.¸ªs */
546 $"55BA 5992 0006 5959 0053 7BB4 B9A0 BA04" /* UºY’..YY.S{´¹ º. */
547 $"B9B2 905A 56BA 5990 0006 5959 0054 73AB" /* ¹²ZVºY..YY.Ts« */
548 $"B8A2 B903 B5AB 865E B756 0300 5859 598E" /* ¸¢¹.µ«†^·V..XYYŽ */
549 $"0007 5959 005A 83AD B6B7 A2B8 04B7 B4AD" /* ..YY.Zƒ­¶·¢¸.·´­ */
550 $"9B87 B57D 047B 725D 0059 8D00 0759 5900" /* ›‡µ}.{r].Y..YY. */
551 $"5A8F B2B6 B6A4 B704 B6B5 B4B2 B1B4 B003" /* Z²¶¶¤·.¶µ´²±´°. */
552 $"ADA0 7600 8059 8900 8159 0355 77AC B0E2" /* ­ v.€Y‰.Y.Uw¬°â */
553 $"B103 AFA4 7D56 8259 8600 0159 5980 0003" /* ±.¯¤}V‚Y†..YY€.. */
554 $"5279 9697 E298 0496 9073 5456 8000 0159" /* Ry–—â˜.–sTV€..Y */
555 $"5984 0008 5900 5457 6268 686D 7284 73A1" /* Y„..Y.TWbhhmr„s¡ */
556 $"74B9 7309 706C 6868 6763 5900 5959 8200" /* t¹sÆplhhgcY.YY‚. */
557 $"0759 0052 6E96 A4A7 A8E7 A980 A706 A6A0" /* .Y.Rn–¤§¨ç©€§.¦  */
558 $"8E6A 5759 5982 0002 536F A782 B0E5 AF81" /* ŽjWYY‚..So§‚°å¯ */
559 $"B006 AFAF AB99 6A00 5980 0004 5900 5A9B" /* °.¯¯«™j.Y€..Y.Z› */
560 $"AEF0 AF0B AEA6 895B 0059 0000 5900 6CA7" /* ®ð¯.®¦‰[.Y..Y.l§ */
561 $"B4AE 03AF ABAE AFB7 AE0A A996 6500 5900" /* ´®.¯«®¯·®Â©–e.Y. */
562 $"0059 5470 A7B3 AD05 AEA8 A299 A8AE B6AD" /* .YTp§³­.®¨¢™¨®¶­ */
563 $"0AA8 9666 0059 0059 5900 6CA3 B4AB 05A6" /* ¨–f.Y.YY.l£´«.¦ */
564 $"EDE9 99A7 ACB5 AB0A A692 6200 5900 5959" /* í陧¬µ«Â¦’b.Y.YY */
565 $"0063 9EB3 A905 A8A8 ECFF E195 B6A9 0BA3" /* .cž³©.¨¨ìÿᕶ©.£ */
566 $"8D5F 5859 0059 5900 6099 A7B3 A806 A4DC" /* _XY.YY.`™§³¨.¤Ü */
567 $"FFFF CA96 AAB4 A80B A187 5B58 5900 5959" /* ÿÿÊ–ª´¨.¡‡[XY.YY */
568 $"005C 94A6 B3A7 01A3 C580 FF02 AD9D A8B3" /* .\”¦³§.£Å€ÿ.­¨³ */
569 $"A70B 9F82 5A58 5900 5959 5857 8DA5 B3A6" /* §.Ÿ‚ZXY.YYXW¥³¦ */
570 $"07A4 AEF8 FFFF ED97 A4B2 A603 A59C 7C58" /* .¤®øÿÿí—¤²¦.¥œ|X */
571 $"8359 0257 87A3 B4A4 01A1 E180 FF02 CB94" /* ƒY.W‡£´¤.¡á€ÿ.Ë” */
572 $"A6B1 A403 A399 7657 8359 0254 80A1 B4A2" /* ¦±¤.£™vWƒY.T€¡´¢ */
573 $"019D C180 FF03 FEA4 9BA3 B0A2 03A1 9672" /* .Á€ÿ.þ¤›£°¢.¡–r */
574 $"5783 5902 547A 9FB4 A202 A0A6 F380 FF02" /* WƒY.TzŸ´¢. ¦ó€ÿ. */
575 $"E192 A3B0 A203 A094 6D56 8359 0255 759D" /* á’£°¢. ”mVƒY.Uu */
576 $"B5A0 019B D381 FF02 B495 A1AF A006 9D90" /* µ .›Óÿ.´•¡¯ . */
577 $"6957 5959 0080 5902 546D 9BB1 9E00 9F80" /* iWYY.€Y.Tm›±ž.Ÿ€ */
578 $"A002 9CAF FD80 FF02 EF93 9DAF 9E06 9B8C" /*  .œ¯ý€ÿ.ž.›Œ */
579 $"6657 5959 0080 5902 5568 97B0 9D07 9F95" /* fWYY.€Y.Uh—°.Ÿ• */
580 $"8A89 8B98 9CE2 81FF 02C3 8F9E AE9D 0699" /* Š‰‹˜œâÿ.Þ®.™ */
581 $"8861 5759 5900 8059 0256 6494 AF9C 089D" /* ˆaWYY.€Y.Vd”¯œ. */
582 $"8C9E D0DD C793 8CBC 81FF 02F7 9899 AE9C" /* ŒžÐÝÇ“Œ¼ÿ.÷˜™®œ */
583 $"0697 855F 5859 5900 8059 0257 5E91 AF9B" /* .—…_XYY.€Y.W^‘¯› */
584 $"0195 B781 FF03 F69B 96ED 81FF 02CE 8B9C" /* .•·ÿ.ö›–íÿ.΋œ */
585 $"AD9B 0D95 815D 5859 5900 0059 5957 5B8C" /* ­›.•]XYY..YYW[Œ */
586 $"98AD 9903 9889 9AD8 81FF 02E0 89C4 81FF" /* ˜­™.˜‰šØÿ.à‰Äÿ */
587 $"02FD 9E93 AD99 0D93 7C5A 5859 5900 0059" /* .ýž“­™.“|ZXYY..Y */
588 $"5958 5987 96AC 970C 9889 D3CE 88A1 E8FF" /* YXY‡–¬—.˜‰ÓΈ¡èÿ */
589 $"FFF9 9B9D F481 FF02 D788 98AC 9702 9079" /* ÿù›ôÿ.׈˜¬—.y */
590 $"5A80 5901 0000 8059 0255 8395 AB96 0D97" /* Z€Y...€Y.Uƒ•«–.— */
591 $"8DA4 FFFF F6B2 84B4 F6FB A28E CC82 FF02" /* ¤ÿÿö²„´öû¢ŽÌ‚ÿ. */
592 $"A28F 97AB 9601 8E75 8159 0100 0080 5902" /* ¢—«–.ŽuY...€Y. */
593 $"547F 94AB 9502 9688 E481 FF07 E99E 8CBC" /* T.”«•.–ˆäÿ.鞌¼ */
594 $"9991 A2F8 81FF 02DD 8896 AA95 0394 8D71" /* ™‘¢øÿ.݈–ª•.”q */
595 $"5880 5901 0000 8059 0255 7993 AA94 0295" /* X€Y...€Y.Uy“ª”.• */
596 $"87B4 84FF 05D4 8C93 948F D182 FF02 A68C" /* ‡´„ÿ.ÔŒ“”Ñ‚ÿ.¦Œ */
597 $"95A9 9403 938A 6D57 8059 0700 0059 595A" /* •©”.“ŠmW€Y...YYZ */
598 $"5374 91AA 9302 908C F284 FF06 DD92 9293" /* St‘ª“.Œò„ÿ.Ý’’“ */
599 $"8FA4 FB81 FF01 E086 AA93 0391 876A 5780" /* ¤ûÿ.à†ª“.‘‡jW€ */
600 $"5907 0000 5959 5A53 6F8F A991 0292 87CA" /* Y...YYZSo©‘.’‡Ê */
601 $"84FF 02F8 A18D 8091 018D D782 FF02 A788" /* „ÿ.ø¡€‘.ׂÿ.§ˆ */
602 $"92A8 9103 8F84 6757 8059 0100 0080 5902" /* ’¨‘.„gW€Y...€Y. */
603 $"556B 8DA9 9002 8E85 DB84 FF01 C78A 8190" /* Uk©.Ž…Û„ÿ.ÇŠ */
604 $"028B A8FE 81FF 01E2 84A9 9003 8E82 6357" /* .‹¨þÿ.â„©.Ž‚cW */
605 $"8059 0100 0080 5902 5466 8CA8 9005 9186" /* €Y...€Y.TfŒ¨.‘† */
606 $"AB85 A6EE 81FF 02EE 958E 8190 028F 8CDC" /* «…¦îÿ.î•Ž.ŒÜ */
607 $"82FF 02AA 8591 A790 038D 7F62 5880 5901" /* ‚ÿ.ª…‘§..bX€Y. */
608 $"0000 8059 0254 618A A78E 0C8F 84A5 FFF0" /* ..€Y.TaŠ§Ž.„¥ÿð */
609 $"A480 BBF9 FFFF B688 838E 0189 A982 FF01" /* ¤€»ùÿÿ¶ˆƒŽ.‰©‚ÿ. */
610 $"E583 A88E 038B 7C5F 5880 5901 0000 8059" /* 僨Ž.‹|_X€Y...€Y */
611 $"0256 5F87 A78D 028C 83E8 80FF 06DF 9087" /* .V_‡§.Œƒè€ÿ.߇ */
612 $"D4E0 8C8C 838D 028C 8ADE 82FF 02AB 838E" /* ÔàŒŒƒ.ŒŠÞ‚ÿ.«ƒŽ */
613 $"A68D 038A 7A5D 5880 5901 0000 8059 0257" /* ¦.Šz]X€Y...€Y.W */
614 $"5C84 A68C 028D 7EB7 83FF 03C9 8B8E 8B85" /* \„¦Œ.~·ƒÿ.É‹Ž‹… */
615 $"8C01 87AA 82FF 01E6 82A7 8C03 8877 5C58" /* Œ.‡ª‚ÿ.悧Œ.ˆw\X */
616 $"8059 0100 0080 5902 5757 81A6 8A02 878A" /* €Y...€Y.WW¦Š.‡Š */
617 $"F584 FF01 CB83 868A 0289 88E0 82FF 02A8" /* õ„ÿ.˃†Š.‰ˆà‚ÿ.¨ */
618 $"808B A58A 0386 735B 5880 5901 0000 8059" /* €‹¥Š.†s[X€Y...€Y */
619 $"0258 557F A58A 028B 7BC9 84FF 02F6 9987" /* .XU.¥Š.‹{É„ÿ.ö™‡ */
620 $"878A 0184 AB82 FF01 E580 A68A 0285 715A" /* ‡Š.„«‚ÿ.倦Š.…qZ */
621 $"8159 0100 0081 5902 577B 88A3 8902 8A81" /* Y...Y.W{ˆ£‰.Š */
622 $"9685 FF01 BF82 8889 0288 87E0 82FF 02A7" /* –…ÿ.¿‚ˆ‰.ˆ‡à‚ÿ.§ */
623 $"7F8A A489 0183 6F82 5901 0000 8159 0254" /* .Š¤‰.ƒo‚Y...Y.T */
624 $"7787 A488 017A DC84 FF02 EA8C 8689 8801" /* w‡¤ˆ.zÜ„ÿ.ꌆ‰ˆ. */
625 $"82A9 82FF 01E3 7EA4 8802 8781 6C82 5901" /* ‚©‚ÿ.ã~¤ˆ.‡l‚Y. */
626 $"0000 8159 0151 7497 860E 8784 8686 8486" /* ..Y.Qt—†.‡„††„† */
627 $"8684 8685 8486 877B A685 FF11 AD7D 8685" /* †„†…„†‡{¦…ÿ.­}†… */
628 $"8486 8584 8784 8487 8485 8783 83DF 82FF" /* „†…„‡„„‡„…‡ƒƒß‚ÿ */
629 $"0FA4 7D87 8584 8785 8487 8485 8784 8586" /* .¤}‡…„‡…„‡„…‡„…† */
630 $"8596 8602 7F69 5881 5901 0000 8059 035A" /* …–†..iXY...€Y.Z */
631 $"5170 8496 850E 8182 7F7F 827F 8082 7E81" /* Qp„–….‚..‚.€‚~ */
632 $"8280 837E EC84 FF12 DB7E 817F 8082 7E81" /* ‚€ƒ~ì„ÿ.Û~.€‚~ */
633 $"827E 8182 7E82 817E 827B A682 FF10 E07B" /* ‚~‚~‚~‚{¦‚ÿ.à{ */
634 $"8380 827E 8181 7E82 817E 8280 7F81 8494" /* ƒ€‚~~‚~‚€.„” */
635 $"8503 847D 6758 8159 0100 0080 5903 5A53" /* ….„}gXY...€Y.ZS */
636 $"6E84 9585 0E82 90FB BCAC FFA4 B9FF 9BD3" /* n„•….‚û¼¬ÿ¤¹ÿ›Ó */
637 $"FC97 7BB9 84FF 14FC 91AA FFA8 BFFF 92D1" /* ü—{¹„ÿ.ü‘ªÿ¨¿ÿ’Ñ */
638 $"FB92 E5ED 87F4 DC95 FFCB 73DF 82FF 0FA0" /* û’åí‡ôÜ•ÿËsß‚ÿ.  */
639 $"79DC F889 E5ED 90F6 D88F FFC7 AAC2 7D94" /* yÜø‰åíöØÿǪÂ}” */
640 $"8503 847C 6558 8159 0100 0080 5903 5A52" /* ….„|eXY...€Y.ZR */
641 $"6983 9584 0E81 92FF BCAA FFC4 D2FF 96D4" /* iƒ•„.’ÿ¼ªÿÄÒÿ–Ô */
642 $"FF9A 82F8 84FF 14C6 78CE FFA6 BFFF B6E4" /* ÿš‚ø„ÿ.ÆxÎÿ¦¿ÿ¶ä */
643 $"FF8D E8F9 AFFE DE91 FFE3 899E 82FF 0FDB" /* ÿèù¯þÞ‘ÿ㉞‚ÿ.Û */
644 $"74E2 FFB1 F3F0 8AFA E9B4 FFC8 A6C7 7C94" /* tâÿ±óðŠúé´ÿȦÇ|” */
645 $"8403 8379 6258 8159 0100 0080 5903 5A51" /* „.ƒybXY...€Y.ZQ */
646 $"6581 9582 047F 90FF D5C8 81FF 04BB E5F9" /* e•‚..ÿÕÈÿ.»åù */
647 $"86CA 84FF 06F2 82D6 FFFF C6D6 80FF 02FC" /* †Ê„ÿ.ò‚ÖÿÿÆÖ€ÿ.ü */
648 $"B5EF 80FF 06E9 B8FF FFFA 8AD6 82FF 0196" /* µï€ÿ.é¸ÿÿúŠÖ‚ÿ.– */
649 $"C680 FF02 F4B4 FA80 FF03 DCC9 C57A 9482" /* Æ€ÿ.ô´ú€ÿ.ÜÉÅz”‚ */
650 $"0381 7761 5881 5901 0000 8059 035A 5262" /* .waXY...€Y.ZRb */
651 $"7F95 8102 7E8F FA85 FF01 B190 85FF 01AC" /* .•.~ú…ÿ.±…ÿ.¬ */
652 $"9A90 FF01 C494 82FF 02D5 8DF9 87FF 01BF" /* šÿ.Ä”‚ÿ.Õù‡ÿ.¿ */
653 $"7994 8103 8075 5F58 8159 0100 0081 5902" /* y”.€u_XY...Y. */
654 $"5461 7D95 8002 7D8E FA84 FF02 E779 DD84" /* Ta}•€.}Žú„ÿ.çyÝ„ */
655 $"FF02 E47C E690 FF02 FC8A D281 FF02 FC8C" /* ÿ.ä|æÿ.üŠÒÿ.üŒ */
656 $"C787 FF01 BF77 9480 037E 725E 5881 5901" /* LJÿ.¿w”€.~r^XY. */
657 $"0000 8159 0254 5D7C 957F 027C 8EFA 84FF" /* ..Y.T]|•..|Žú„ÿ */
658 $"019C A285 FF01 97AD 92FF 01C7 8F80 FF04" /* .œ¢…ÿ.—­’ÿ.Ç€ÿ. */
659 $"FBC0 748B F986 FF01 BE76 947F 037D 715C" /* ûÀt‹ù†ÿ.¾v”..}q\ */
660 $"5881 5901 0000 8159 0254 597B 957F 027C" /* XY...Y.TY{•..| */
661 $"8EFA 83FF 02D7 7BEF 84FF 02D1 7EF4 92FF" /* Žúƒÿ.×{ï„ÿ.Ñ~ô’ÿ */
662 $"09FE 8CC9 F8CB 8C64 9F83 C386 FF01 BE76" /* ÆþŒÉøËŒdŸƒÃ†ÿ.¾v */
663 $"947F 037C 6F5B 5881 5901 0000 8159 0355" /* ”..|o[XY...Y.U */
664 $"5779 7E94 7D02 7A8C FA82 FF02 FD8A B884" /* Wy~”}.zŒú‚ÿ.ýŠ¸„ */
665 $"FF02 FA86 C094 FF09 CF74 7C64 7FCB FFC0" /* ÿ.ú†À”ÿÆÏt|d.ËÿÀ */
666 $"80F7 85FF 01BD 7494 7D02 7A6D 5B82 5901" /* €÷…ÿ.½t”}.zm[‚Y. */
667 $"0000 8159 0256 5677 957C 0279 8BFA 82FF" /* ..Y.VVw•|.y‹ú‚ÿ */
668 $"02C3 82FB 84FF 02BB 86FE 95FF 088C 99D5" /* .Âû„ÿ.»†þ•ÿ.Œ™Õ */
669 $"FCFF FFFA 7FBC 85FF 01BD 7394 7C02 796B" /* üÿÿú.¼…ÿ.½s”|.yk */
670 $"5A82 5901 0000 8159 0257 5575 957B 0277" /* Z‚Y...Y.WUu•{.w */
671 $"8BFA 81FF 02F4 7DCE 84FF 02EE 7BD6 96FF" /* ‹úÿ.ô}΄ÿ.î{Ö–ÿ */
672 $"01D0 A782 FF02 C47B F484 FF01 BC72 947B" /* .Ч‚ÿ.Ä{ô„ÿ.¼r”{ */
673 $"0178 6983 5901 0000 8159 0258 5272 957A" /* .xiƒY...Y.XRr•z */
674 $"0877 8AE8 EEEC ECF2 AA91 85FF 02A8 92F2" /* .wŠèîììòª‘…ÿ.¨’ò */
675 $"95EC 03ED ED93 DC81 FF03 FD83 B2F2 82EC" /* •ì.íí“Üÿ.ýƒ²ò‚ì */
676 $"02F3 B573 947A 0176 6783 5901 0000 8159" /* .óµs”z.vgƒY...Y */
677 $"0258 5070 9679 007A 817F 027E 71E3 84FF" /* .XPp–y.z..~qã„ÿ */
678 $"03DF 797F 8096 7F02 8078 A382 FF02 C970" /* .ßy.€–..€x£‚ÿ.Ép */
679 $"8083 7F00 7D95 7902 7565 5882 5901 0000" /* €ƒ..}•y.ueX‚Y... */
680 $"8159 0258 4F6F 9779 8077 0278 69AB 85FF" /* Y.XOo—y€w.xi«…ÿ */
681 $"029B 7378 9977 0178 DF81 FF02 B468 7583" /* .›sx™w.xßÿ.´huƒ */
682 $"7700 7895 7902 7464 5882 5901 0000 8259" /* w.x•y.tdX‚Y...‚Y */
683 $"0150 6D9A 7802 747A F384 FF02 CD72 779A" /* .Pmšx.tzó„ÿ.Írwš */
684 $"7808 71A0 FFFF D98C 8FC6 6D9C 7801 7363" /* x.q ÿÿÙŒÆmœx.sc */
685 $"8359 0100 0082 5901 516B 9A77 016B C484" /* ƒY...‚Y.Qkšw.kÄ„ */
686 $"FF02 F68A 729B 770A 7677 9B8A 80BD FDFF" /* ÿ.öŠr›wÂvw›Š€½ýÿ */
687 $"9C6A 789A 7702 7261 5882 5901 0000 8159" /* œjxšw.raX‚Y...Y */
688 $"035A 4F68 7598 7602 737B F184 FF01 B96E" /* .ZOhu˜v.s{ñ„ÿ.¹n */
689 $"9D76 0371 85D7 FB80 FF02 F076 719A 7602" /* v.q…×û€ÿ.ðvqšv. */
690 $"7060 5882 5901 0000 8159 035A 4E66 7498" /* p`X‚Y...Y.ZNft˜ */
691 $"7504 7380 77C3 FE81 FF02 E97B 729D 7502" /* u.s€wÃþÿ.é{ru. */
692 $"727F EF82 FF01 CD66 9A75 026F 5E58 8259" /* r.ï‚ÿ.Ífšu.o^X‚Y */
693 $"0100 0081 5903 5A4D 6473 9774 0672 76EE" /* ...Y.ZMds—t.rvî */
694 $"CC73 83DA 80FF 01A4 6C9F 7401 6CBE 83FF" /* ÌsƒÚ€ÿ.¤lŸt.l¾ƒÿ */
695 $"02A5 6575 9874 026D 5C58 8259 0100 0081" /* .¥eu˜t.m\X‚Y... */
696 $"5902 5A4D 6298 730B 6F82 FAFF F9AD 6A97" /* Y.ZMb˜s.o‚úÿù­j— */
697 $"F1DC 7172 9F73 016D 9283 FF03 F981 6B74" /* ñÜqrŸs.m’ƒÿ.ùkt */
698 $"9773 026C 5B58 8259 0100 0081 5902 5A4D" /* —s.l[X‚Y...Y.ZM */
699 $"6098 7301 6C94 81FF 04EC 957B 8470 A073" /* `˜s.l”ÿ.ì•{„p s */
700 $"0271 75E7 83FF 02DD 6972 9773 026B 5C58" /* .quçƒÿ.Ýir—s.k\X */
701 $"8259 0100 0081 5902 5A50 5F98 7201 69A8" /* ‚Y...Y.ZP_˜r.i¨ */
702 $"83FF 019B 69A2 7201 6ABF 84FF 02AF 6473" /* ƒÿ.›i¢r.j¿„ÿ.¯ds */
703 $"9672 026A 5B58 8259 0100 0081 5903 5A51" /* –r.j[X‚Y...Y.ZQ */
704 $"5D70 9771 0167 BD81 FF02 F6A1 6FA3 7101" /* ]p—q.g½ÿ.ö¡o£q. */
705 $"6B94 84FF 02F7 7B6D 9671 0169 5A83 5901" /* k”„ÿ.÷{m–q.iZƒY. */
706 $"0000 8159 035A 505B 6F97 7101 69D5 80FF" /* ..Y.ZP[o—q.iÕ€ÿ */
707 $"03E8 8B68 70A3 7102 6F74 E984 FF02 BC65" /* .è‹hp£q.oté„ÿ.¼e */
708 $"7294 7102 7067 5883 5901 0000 8159 035A" /* r”q.pgXƒY...Y.Z */
709 $"5059 6F96 7007 6F6F E7FF FFD4 7A69 A670" /* PYo–p.ooçÿÿÔzi¦p */
710 $"0168 BD84 FF02 EC71 6E94 7002 6F67 5883" /* .h½„ÿ.ìqn”p.ogXƒ */
711 $"5901 0000 8159 035A 5058 6E96 6F06 6C79" /* Y...Y.ZPXn–o.ly */
712 $"F7FF BD6E 6BA7 6F02 6A8B FD83 FF02 FC83" /* ÷ÿ½nk§o.j‹ýƒÿ.üƒ */
713 $"6B94 6F02 6E66 5783 5901 0000 8159 035A" /* k”o.nfWƒY...Y.Z */
714 $"5056 6D96 6E05 688E FBA5 676C A86E 026D" /* PVm–n.hŽû¥gl¨n.m */
715 $"6AD0 83FF 02F5 7D6B 946E 026D 6456 8359" /* jЃÿ.õ}k”n.mdVƒY */
716 $"0100 0081 5903 5A4F 556C 966D 0468 9294" /* ...Y.ZOUl–m.h’” */
717 $"656C AA6D 0268 87F8 82FF 01BC 6995 6D02" /* elªm.h‡ø‚ÿ.¼i•m. */
718 $"6C63 5683 5901 0000 8159 035A 5054 6C97" /* lcVƒY...Y.ZPTl— */
719 $"6D01 6C68 AD6D 0866 9EF7 FFFF F3B1 6C6B" /* m.lh­m.fž÷ÿÿó±lk */
720 $"956D 026C 6256 8359 0100 0081 5903 5A50" /* •m.lbVƒY...Y.ZP */
721 $"546C CA6D 0667 81A6 9D7A 666C 966D 026C" /* TlÊm.g¦zfl–m.l */
722 $"6256 8359 0100 0081 5903 5A51 536C CB6D" /* bVƒY...Y.ZQSlËm */
723 $"0369 6565 6998 6D02 6C62 5783 5901 0000" /* .ieei˜m.lbWƒY... */
724 $"8159 035A 5152 6AEA 6C02 6B61 5783 5901" /* Y.ZQRjêl.kaWƒY. */
725 $"0000 8159 035A 5252 6AEA 6C02 6B61 5783" /* ..Y.ZRRjêl.kaWƒ */
726 $"5901 0000 8159 035A 5252 6AEA 6C02 6B61" /* Y...Y.ZRRjêl.ka */
727 $"5783 5901 0000 8159 035A 5352 6AEA 6C02" /* WƒY...Y.ZSRjêl. */
728 $"6B61 5783 5900 0082 5903 5A54 5168 EA6B" /* kaWƒY..‚Y.ZTQhêk */
729 $"0269 5E56 8359 0000 8359 0257 4D5E EA63" /* .i^VƒY..ƒY.WM^êc */
730 $"0260 5756 8359 0100 0082 5902 5A55 53EA" /* .`WVƒY...‚Y.ZUSê */
731 $"5601 5556 8459 0100 00FB 5901 0000 FB59" /* V.UV„Y...ûY...ûY */
732 $"0100 00FB 5901 0000 FB59 0100 00FA 5981" /* ...ûY...ûY...úY */
733 $"00F9 5982 00F7 5983 00F6 5986 00F3 59FF" /* .ùY‚.÷Yƒ.öY†.óYÿ */
734 $"00FF 0000 00FF 00FF 00FF 00FF 00FF 00FF" /* .ÿ...ÿ.ÿ.ÿ.ÿ.ÿ.ÿ */
735 $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* .ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ */
736 $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* .ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ */
737 $"00FF 00FF 00FF 00DF 009F 7CD7 00A6 7CD3" /* .ÿ.ÿ.ÿ.ß.Ÿ|×.¦|Ó */
738 $"0001 7C7C 8000 9D7B 847C D000 037C 7C00" /* ..||€.{„|Ð..||. */
739 $"7C9F 7F01 7B7B 837C D000 027B 88A5 9EB0" /* |Ÿ..{{ƒ|Ð..{ˆ¥ž° */
740 $"03AC 9D81 7B83 7CCD 0004 7C00 81B3 D09E" /* .¬{ƒ|Í..|.³Ðž */
741 $"D302 D0C3 A184 7CCD 0004 7C00 8FCA D79F" /* Ó.Ðá„|Í..|.Êן */
742 $"D803 CEB4 837A 827C CD00 037C 0095 CEA0" /* Ø.δƒz‚|Í..|.•Î  */
743 $"D803 D1B7 847A 827C CC00 047C 7C78 9BD0" /* Ø.Ñ·„z‚|Ì..||x›Ð */
744 $"A0D7 03D1 B884 7A83 7CCB 0004 7C7C 79A8" /*  ×.Ѹ„zƒ|Ë..||y¨ */
745 $"D3A0 D703 D2BC 867A B87C 9500 057C 7C00" /* Ó ×.Ò¼†z¸|•..||. */
746 $"81BD D5A0 D603 D3C3 9278 BA7C 9200 067C" /* ½Õ Ö.ÓÃ’xº|’..| */
747 $"7C00 799D CED5 A0D6 04D4 CBAC 7D79 BA7C" /* |.yÎÕ Ö.Ôˬ}yº| */
748 $"9000 067C 7C00 7B97 C5D3 A2D5 03D1 C4A3" /* ..||.{—ÅÓ¢Õ.ÑÄ£ */
749 $"8280 7AB4 7B03 007B 7C7C 8E00 077C 7C00" /* ‚€z´{..{||Ž..||. */
750 $"81A4 C8D2 D4A2 D505 D4D0 C8B7 A69F B19E" /* ¤ÈÒÔ¢Õ.ÔÐÈ·¦Ÿ±ž */
751 $"079F 9F9E 9D94 8100 7C8D 0007 7C7C 0081" /* .ŸŸž”.|..||. */
752 $"ADCD D3D3 A4D4 03D3 D2D0 CE80 CCB2 CB03" /* ­ÍÓÓ¤Ô.ÓÒÐ΀̲Ë. */
753 $"C7B9 9500 807C 8900 817C 037A 98C6 CDE2" /* ǹ•.€|‰.|.z˜ÆÍâ */
754 $"CE03 CCBE 9B7A 827C 8600 017C 7C80 0002" /* Î.̾›z‚|†..||€.. */
755 $"7697 B181 B403 B5B5 B4B4 9EB5 01B4 B4B6" /* v—±´.µµ´´žµ.´´¶ */
756 $"B506 B4B4 B3AA 9177 7980 0001 7C7C 8400" /* µ.´´³ª‘wy€..||„. */
757 $"097C 0078 7D87 8B8B 8D94 95E2 960A 9592" /* Æ|.x}‡‹‹”•â–•’ */
758 $"8E8C 8B8B 867D 007C 7C82 0009 7C00 7892" /* ŽŒ‹‹†}.||‚.Æ|.x’ */
759 $"B5C1 C4C5 C6C6 81C7 03C6 C6C7 C79E C601" /* µÁÄÅÆÆÇ.ÆÆÇÇžÆ. */
760 $"C7C7 82C6 01C7 C7AC C683 C70A C6C6 C4C3" /* ÇÇ‚Æ.ÇǬƃÇÂÆÆÄà */
761 $"C3BD AB8C 7A7C 7C82 0005 7893 C5CE CFD0" /* ý«Œz||‚..x“ÅÎÏÐ */
762 $"E9CF 08D0 D0CF CEC9 B58B 007C 8000 047C" /* éÏ.ÐÐÏÎɵ‹.|€..| */
763 $"0080 B9CE F0D0 0CCF C5A7 7E00 7C00 007C" /* .€¹ÎðÐ.Ïŧ~.|..| */
764 $"008F C5CE B3CF 03D0 CDCF D0B7 CF0A C9B2" /* .ÅγÏ.ÐÍÏзÏÂɲ */
765 $"8600 7C00 007C 7894 C6B3 CF05 D0CB BEBA" /* †.|..|x”ƳÏ.Ð˾º */
766 $"CCD0 B6CF 0ACA B487 007C 007C 7C00 8FC4" /* ÌжÏÂÊ´‡.|.||.Ä */
767 $"B4CE 05C9 F2ED B9CC CFB5 CE0B C8B1 8400" /* ´Î.Éòí¹ÌϵÎ.ȱ„. */
768 $"7C00 7C7C 0089 C0CC B3CD 05CC F3FF E7B9" /* |.||.‰À̳Í.Ìóÿç¹ */
769 $"CEB5 CD0B C5AC 817B 7C00 7C7C 0085 BCCB" /* εÍ.Ŭ{|.||.…¼Ë */
770 $"B3CC 06C9 EAFF FFD8 BDCE B4CC 0BC4 A77D" /* ³Ì.ÉêÿÿؽδÌ.ħ} */
771 $"7B7C 007C 7C00 81B6 CAB3 CC01 C9DC 80FF" /* {|.||.¶Ê³Ì.ÉÜ€ÿ */
772 $"02C6 C4CD B2CC 0DCB C1A3 7D7B 7C00 7C7C" /* .ÆÄͲÌ.ËÁ£}{|.|| */
773 $"7B7D B1C9 CBB2 CA07 C9CF FBFF FFF1 BACB" /* {}±É˲Ê.ÉÏûÿÿñºË */
774 $"B2CA 03C9 BE9D 7B83 7C02 7BAB C8B4 CA01" /* ²Ê.ɾ{ƒ|.{«È´Ê. */
775 $"C8ED 80FF 02D9 BCCB B1CA 03C9 BC98 7A83" /* Èí€ÿ.ټ˱Ê.ɼ˜zƒ */
776 $"7C02 7AA5 C6B4 C901 C6DA 80FF 03FD C1C4" /* |.z¥Æ´É.ÆÚ€ÿ.ýÁÄ */
777 $"CAB0 C903 C7B9 957A 837C 0279 9FC4 B4C8" /* Ê°É.ǹ•zƒ|.yŸÄ´È */
778 $"02C7 CAF7 80FF 02E8 B8C9 B0C8 03C5 B68F" /* .ÇÊ÷€ÿ.è¸É°È.Ŷ */
779 $"7A83 7C02 799A C2B5 C701 C4E4 81FF 02CA" /* zƒ|.yšÂµÇ.Ääÿ.Ê */
780 $"BFC8 AFC7 06C4 B38B 7A7C 7C00 807C 0278" /* ¿È¯Ç.ij‹z||.€|.x */
781 $"93C0 B1C6 00C7 80C8 02C4 CFFD 80FF 01F2" /* “À±Æ.Ç€È.ÄÏý€ÿ.ò */
782 $"B8B0 C606 C2AF 897A 7C7C 0080 7C02 798F" /* ¸°Æ.¯‰z||.€|.y */
783 $"BEB0 C607 C8C0 B4B2 B6C3 C6ED 81FF 02D4" /* ¾°Æ.ÈÀ´²¶ÃÆíÿ.Ô */
784 $"BBC7 AEC6 06C1 AC84 7A7C 7C00 807C 0279" /* »Ç®Æ.Á¬„z||.€|.y */
785 $"8BBB AFC5 08C6 B6BA DCE5 D5B3 BAD8 81FF" /* ‹»¯Å.ƶºÜåÕ³ºØÿ */
786 $"02F9 BBC4 AEC5 06C0 A982 7B7C 7C00 807C" /* .ù»Ä®Å.À©‚{||.€| */
787 $"027A 85B7 AEC4 02C5 C1CE 81FF 03F7 BAC1" /* .z…·®Ä.ÅÁÎÿ.÷ºÁ */
788 $"F481 FF02 DCB7 C6AD C40D BDA5 817B 7C7C" /* ôÿ.Ü·Æ­Ä.½¥{|| */
789 $"0000 7C7C 7A83 B4C3 ADC4 03C3 B3BE E981" /* ..||zƒ´Ã­Ä.ó¾é */
790 $"FF02 E8B6 DC81 FF02 FDBE C0AD C40D BCA1" /* ÿ.è¶Üÿ.ý¾À­Ä.¼¡ */
791 $"7E7B 7C7C 0000 7C7C 7B80 B0C2 ACC3 0CC4" /* ~{||..||{€°Â¬Ã.Ä */
792 $"B5DD DAAE C4F2 FFFF FAC2 C5F8 81FF 02E2" /* µÝÚ®ÄòÿÿúÂÅøÿ.â */
793 $"B5C4 ACC3 01B9 9D81 7C07 0000 7C7C 7B7C" /* µÄ¬Ã.¹|...||{| */
794 $"ABC0 ABC1 0DC2 BCC1 FFFF F7C7 ACD0 FBFC" /* «À«Á.¼Áÿÿ÷ǬÐûü */
795 $"C7BC E082 FF02 C0BD C2AB C101 B79A 817C" /* Ǽà‚ÿ.À½Â«Á.·š| */
796 $"0100 0080 7C02 7BA7 BFAB C102 C2B2 EB81" /* ...€|.{§¿«Á.²ë */
797 $"FF07 EDB9 B3D7 C3BF C7FA 81FF 02E6 B3C2" /* ÿ.í¹³×ÿÇúÿ.æ³Â */
798 $"AAC1 03C0 B595 7B80 7C01 0000 807C 027A" /* ªÁ.Àµ•{€|...€|.z */
799 $"A3BE AAC0 02C1 B6CA 84FF 05DE B8C0 C0BD" /* £¾ªÀ.Á¶Ê„ÿ.Þ¸ÀÀ½ */
800 $"E382 FF02 C2BA C1A9 C003 BFB2 927A 807C" /* ã‚ÿ.ºÁ©À.¿²’z€| */
801 $"0100 0080 7C02 789D BCAA BF02 BEB3 F584" /* ...€|.x¼ª¿.¾³õ„ */
802 $"FF06 EBBF BEBF BDC9 FC81 FF02 E8B2 C0A9" /* ÿ.뿾¿½Éüÿ.è²À© */
803 $"BF03 BEB0 8F7A 807C 0100 0080 7C02 7898" /* ¿.¾°z€|...€|.x˜ */
804 $"BAA9 BE02 BFB5 D984 FF02 FBC7 BC80 BE01" /* º©¾.¿µÙ„ÿ.ûǼ€¾. */
805 $"BBE7 82FF 02C3 B7BF A8BE 03BC AD8B 7A80" /* »ç‚ÿ.÷¿¨¾.¼­‹z€ */
806 $"7C01 0000 807C 0278 95B9 A9BD 02BC B3E9" /* |...€|.x•¹©½.¼³é */
807 $"84FF 01DD B981 BD02 BACB FE81 FF02 EAB0" /* „ÿ.ݹ½.ºËþÿ.ê° */
808 $"BEA8 BD03 BAAA 887A 807C 0100 0080 7C02" /* ¾¨½.ºªˆz€|...€|. */
809 $"7890 B8A8 BD05 BEB2 C1AC C7F6 81FF 02F4" /* x¸¨½.¾²Á¬Çöÿ.ô */
810 $"C0BC 82BD 01BB EA82 FF02 C4B6 BEA7 BD03" /* À¼‚½.»ê‚ÿ.Ķ¾§½. */
811 $"BAA8 867A 807C 0100 0080 7C02 788B B5A7" /* º¨†z€|...€|.x‹µ§ */
812 $"BC0C BDB5 C1FF F2BD AAD5 FCFF FFD3 B983" /* ¼.½µÁÿò½ªÕüÿÿÓ¹ƒ */
813 $"BC01 B9CC 82FF 02EB AFBD A7BC 03B8 A584" /* ¼.¹Ì‚ÿ.믽§¼.¸¥„ */
814 $"7B80 7C01 0000 807C 0279 88B3 A8BC 01AE" /* {€|...€|.yˆ³¨¼.® */
815 $"ED80 FF06 E5B1 B1E6 ECBB BB84 BC01 B9EB" /* í€ÿ.å±±æì»»„¼.¹ë */
816 $"82FF 02C5 B4BD A6BC 03B7 A381 7B80 7C01" /* ‚ÿ.Å´½¦¼.·£{€|. */
817 $"0000 807C 027A 85B1 A6BB 02BC AFCC 82FF" /* ..€|.z…±¦».¼¯Ì‚ÿ */
818 $"04FE D6AF BBBA 85BB 01B7 CC82 FF02 ECAE" /* .þÖ¯»º…».·Ì‚ÿ.ì® */
819 $"BCA6 BB03 B5A0 807B 807C 0100 0080 7C03" /* ¼¦».µ €{€|...€|. */
820 $"7A80 ADB9 A5BA 02B8 B0F7 84FF 01DE B486" /* z€­¹¥º.¸°÷„ÿ.Þ´† */
821 $"BA02 B9B8 EB82 FF02 C3B2 BBA5 BA03 B39C" /* º.¹¸ë‚ÿ.ò»¥º.³œ */
822 $"7F7B 807C 0100 0080 7C03 7B7E AAB7 A4B8" /* .{€|...€|.{~ª·¤¸ */
823 $"02BA ABD8 84FF 02F9 C1B6 87B8 01B5 CC82" /* .º«Ø„ÿ.ùÁ¶‡¸.µÌ‚ */
824 $"FF02 EBAC B9A5 B803 B199 7D7B 807C 0100" /* ÿ.묹¥¸.±™}{€|.. */
825 $"0080 7C03 7B7D A7B6 A4B7 02B2 B7FE 84FF" /* .€|.{}§¶¤·.²·þ„ÿ */
826 $"01D7 B388 B702 B6B6 EB82 FF02 C2B0 B8A4" /* .׳ˆ·.¶¶ë‚ÿ.°¸¤ */
827 $"B701 AF96 827C 0100 0081 7C02 7BA3 B5A3" /* ·.¯–‚|...|.{£µ£ */
828 $"B602 B7A8 E584 FF02 F1B8 B589 B601 B3CA" /* ¶.·¨å„ÿ.ñ¸µ‰¶.³Ê */
829 $"82FF 02EA AAB7 A4B6 01AD 9382 7C01 0000" /* ‚ÿ.ꪷ¤¶.­“‚|... */
830 $"817C 0278 9FB4 97B5 0DB4 B5B6 B4B6 B5B4" /* |.xŸ´—µ.´µ¶´¶µ´ */
831 $"B6B5 B4B6 B6AD C085 FF11 CCB0 B6B5 B4B6" /* ¶µ´¶¶­À…ÿ.Ì°¶µ´¶ */
832 $"B5B4 B6B5 B4B6 B4B5 B6B3 B4EB 82FF 0EC0" /* µ´¶µ´¶´µ¶³´ë‚ÿ.À */
833 $"AFB6 B5B4 B6B4 B4B6 B4B5 B6B4 B5B6 97B5" /* ¯¶µ´¶´´¶´µ¶´µ¶—µ */
834 $"01AB 9082 7C01 0000 817C 0278 9CB3 95B5" /* .«‚|...|.xœ³•µ */
835 $"0FB6 AFA7 A9AA A7AA AAA7 ABA9 A7AC B1A9" /* .¶¯§©ª§ªª§«©§¬±© */
836 $"F084 FF12 E9AA A6AA AAA7 ABA9 A7AB A8A8" /* ð„ÿ.骦ªª§«©§«¨¨ */
837 $"ACA8 A8AB A7A5 C882 FF0F E8A8 B2A8 A8AB" /* ¬¨¨«§¥È‚ÿ.訲¨¨« */
838 $"A8A8 ACA8 A9AC A7A9 AAAB 95B5 03B4 A98E" /* ¨¨¬¨©¬§©ª«•µ.´©Ž */
839 $"7B81 7C01 0000 817C 0278 99B2 95B4 0EB3" /* {|...|.x™²•´.³ */
840 $"B7F9 D2C7 FFC1 CEFF BCE1 FABB AACD 84FF" /* ·ùÒÇÿÁÎÿ¼áú»ªÍ„ÿ */
841 $"14FD BAC6 FFC5 D3FF B7DF F9B7 EBF2 B0F6" /* .ýºÆÿÅÓÿ·ßù·ëò°ö */
842 $"E6B9 FDDA A7EB 82FF 0FBD AAE6 F8B0 EBF1" /* æ¹ýÚ§ë‚ÿ.½ªæø°ëñ */
843 $"B5F7 E3B4 FED9 C5D5 AF94 B403 B3A7 8B7B" /* µ÷ã´þÙÅÕ¯”´.³§‹{ */
844 $"817C 0100 0081 7C02 7794 B195 B30E B1B9" /* |...|.w”±•³.±¹ */
845 $"FFD2 C7FF D3DE FFBA E3FF BDAA F984 FF14" /* ÿÒÇÿÓÞÿºãÿ½ªù„ÿ. */
846 $"DBA2 DAFF C4D4 FFCA EBFE B4EF FBC4 FEE9" /* Û¢ÚÿÄÔÿÊëþ´ïûÄþé */
847 $"B6FF EAAB C082 FF0F E4A3 ECFF C5F6 F5B2" /* ¶ÿê«À‚ÿ.ä£ìÿÅöõ² */
848 $"FBEF C8FF DAC4 DAAE 94B3 03B2 A589 7B81" /* ûïÈÿÚÄÚ®”³.²¥‰{ */
849 $"7C01 0000 807C 037D 7690 AE95 B104 AFB7" /* |...€|.}v®•±.¯· */
850 $"FFE0 D681 FF04 CDEC FCAE D884 FF06 F7AC" /* ÿàÖÿ.Íìü®Ø„ÿ.÷¬ */
851 $"E0FF FFD4 E180 FF02 FDC9 F380 FF06 EFCA" /* àÿÿÔá€ÿ.ýÉó€ÿ.ïÊ */
852 $"FFFF FAAE E582 FF01 B6DA 80FF 02F7 C7FB" /* ÿÿú®å‚ÿ.¶Ú€ÿ.÷Çû */
853 $"80FF 03E5 D6D9 AC94 B103 B0A2 877B 817C" /* €ÿ.åÖÙ¬”±.°¢‡{| */
854 $"0100 0081 7C02 768D AC95 B002 AEB7 FB85" /* ...|.v¬•°.®·û… */
855 $"FF01 CDB1 85FF 01C9 B890 FF01 D5B8 82FF" /* ÿ.ͱ…ÿ.ɸÿ.Õ¸‚ÿ */
856 $"02E0 B3FC 87FF 01D5 AA94 B003 AE9F 857B" /* .à³ü‡ÿ.Õª”°.®Ÿ…{ */
857 $"817C 0100 0081 7C02 788A AB95 AF02 ADB6" /* |...|.xŠ«•¯.­¶ */
858 $"FB84 FF02 F0A5 E584 FF02 EEA6 EC90 FF02" /* û„ÿ.ð¥å„ÿ.î¦ìÿ. */
859 $"FCAE E281 FF02 FCB4 DB87 FF01 D5A9 94AF" /* ü®âÿ.ü´Û‡ÿ.Õ©”¯ */
860 $"03AC 9D83 7B81 7C01 0000 817C 0278 86A9" /* .¬ƒ{|...|.x†© */
861 $"95AD 02AB B4FB 84FF 01BE BD85 FF01 BAC3" /* •­.«´û„ÿ.¾½…ÿ.ºÃ */
862 $"92FF 01D6 B480 FF04 FCD8 A4B3 FB86 FF01" /* ’ÿ.Ö´€ÿ.üؤ³û†ÿ. */
863 $"D4A7 94AD 03AB 9A81 7B81 7C01 0000 817C" /* Ô§”­.«š{|...| */
864 $"0278 83A7 95AC 02AA B3FB 83FF 02E5 A3F2" /* .xƒ§•¬.ª³ûƒÿ.å£ò */
865 $"84FF 02E1 A5F6 92FF 09FD AEDC FBDE B595" /* „ÿ.á¥ö’ÿÆý®ÜûÞµ• */
866 $"B6A9 D886 FF01 D3A6 94AC 03A9 9880 7B81" /* ¶©Ø†ÿ.Ó¦”¬.©˜€{ */
867 $"7C01 0000 817C 0278 80A5 95AC 02AA B3FB" /* |...|.x€¥•¬.ª³û */
868 $"82FF 02FE B0CB 84FF 02FC ADD0 94FF 09DB" /* ‚ÿ.þ°Ë„ÿ.ü­Ð”ÿÆÛ */
869 $"A1A8 95A2 D6FF D1AA FA85 FF01 D3A6 94AC" /* ¡¨•¢ÖÿѪú…ÿ.Ó¦”¬ */
870 $"03A8 967F 7B81 7C01 0000 817C 0279 7FA3" /* .¨–.{|...|.y.£ */
871 $"95AB 02A9 B2FB 82FF 02D7 A7FB 84FF 02D2" /* •«.©²û‚ÿ.קû„ÿ.Ò */
872 $"AAFD 95FF 08AD B4DD FCFF FFFA A5D3 85FF" /* ªý•ÿ.­´Ýüÿÿú¥Ó…ÿ */
873 $"01D3 A594 AB03 A694 7E7B 817C 0100 0081" /* .Ó¥”«.¦”~{|... */
874 $"7C02 7A7D A095 A902 A7B1 FB81 FF02 F8A5" /* |.z} •©.§±ûÿ.ø¥ */
875 $"DA84 FF02 F4A4 E096 FF01 DCC2 82FF 02D3" /* Ú„ÿ.ô¤à–ÿ.Ü‚ÿ.Ó */
876 $"A5F8 84FF 01D2 A394 A902 A491 7D82 7C01" /* ¥ø„ÿ.Ò£”©.¤‘}‚|. */
877 $"0000 817C 027A 7A9E 95A8 08A6 B1EF F3F2" /* ..|.zzž•¨.¦±ïóò */
878 $"F2F6 C6B0 85FF 02C5 B4F5 95F2 03F3 F2B5" /* òöÆ°…ÿ.Å´õ•ò.óòµ */
879 $"E881 FF03 FCA7 CCF6 82F2 02F7 CDA3 94A8" /* èÿ.ü§Ìö‚ò.÷Í£”¨ */
880 $"01A3 8F83 7C01 0000 817C 027B 779C 96A7" /* .£ƒ|...|.{wœ–§ */
881 $"00A8 82AB 019C E984 FF03 E9A6 AAAC 96AB" /* .¨‚«.œé„ÿ.馪¬–« */
882 $"02AC A6C1 82FF 02D8 A0AC 83AB 00A9 95A7" /* .¬¦Á‚ÿ.Ø ¬ƒ«.©•§ */
883 $"01A1 8D83 7C01 0000 817C 037B 7699 A595" /* .¡ƒ|...|.{v™¥• */
884 $"A600 A580 A402 A599 C085 FF02 BCA1 A599" /* ¦.¥€¤.¥™À…ÿ.¼¡¥™ */
885 $"A401 A5E9 81FF 02CB 96A3 83A4 00A5 95A6" /* ¤.¥éÿ.Ë–£ƒ¤.¥•¦ */
886 $"029F 8A7B 827C 0100 0082 7C02 7596 A399" /* .ŸŠ{‚|...‚|.u–£™ */
887 $"A402 A29F F584 FF01 DDA0 9BA4 09A0 BFFF" /* ¤.¢Ÿõ„ÿ.Ý ›¤Æ ¿ÿ */
888 $"FFE6 ADAB D299 A59B A402 9D88 7B82 7C01" /* ÿæ­«Ò™¥›¤.ˆ{‚|. */
889 $"0000 827C 0276 94A2 98A3 02A4 98D1 84FF" /* ..‚|.v”¢˜£.¤˜Ñ„ÿ */
890 $"02F9 AFA0 9CA3 09A4 B9A9 A0CB FCFF B599" /* .ù¯ œ£Æ¤¹© Ëüÿµ™ */
891 $"A49A A302 9C87 7B82 7C01 0000 827C 0275" /* ¤š£.œ‡{‚|...‚|.u */
892 $"92A2 98A3 02A1 A4F5 84FF 01CF 9E9D A303" /* ’¢˜£.¡¤õ„ÿ.Ïž£. */
893 $"A0A9 DEFB 80FF 02F3 9CA0 9AA3 029B 867B" /*  ©Þû€ÿ.󜠚£.›†{ */
894 $"827C 0100 0081 7C03 7D74 8FA1 97A2 05A3" /* ‚|...|.}t¡—¢.£ */
895 $"9FA0 9ED6 FE81 FF02 F0A6 A09D A202 A0A9" /* Ÿ žÖþÿ.𦠢. © */
896 $"F382 FF01 D893 9AA2 0299 837B 827C 0100" /* ó‚ÿ.Ø“š¢.™ƒ{‚|.. */
897 $"0081 7C03 7D73 8D9F 97A0 069F 9FF1 D697" /* .|.}sŸ— .ŸŸñÖ— */
898 $"A6E6 80FF 01C1 9B9F A001 9BD2 83FF 02BB" /* ¦æ€ÿ.Á›Ÿ .›Òƒÿ.» */
899 $"94A1 98A0 0297 827B 827C 0100 0081 7C03" /* ”¡˜ .—‚{‚|...|. */
900 $"7D72 8A9E 979F 0B9D A6FB FFF9 BF91 B6F6" /* }rŠž—Ÿ.¦ûÿù¿‘¶ö */
901 $"E69E 9E9F 9F01 9BB4 83FF 03FA A199 A096" /* æžžŸŸ.›´ƒÿ.ú¡™ – */
902 $"9F03 9E95 807B 827C 0100 0081 7C03 7D72" /* Ÿ.ž•€{‚|...|.}r */
903 $"889D 979E 0199 B281 FF04 EFAD 9EA9 9CA0" /* ˆ—ž.™²ÿ.ï­ž©œ  */
904 $"9E02 9D9F EE83 FF01 E492 979E 039D 9480" /* ž.Ÿîƒÿ.ä’—ž.”€ */
905 $"7B82 7C01 0000 817C 037D 7487 9B97 9D01" /* {‚|...|.}t‡›—. */
906 $"96BF 82FF 02FE B697 A29D 0198 D184 FF02" /* –¿‚ÿ.þ¶—¢.˜Ñ„ÿ. */
907 $"C191 9E95 9D03 9C92 7F7B 827C 0100 0081" /* Á‘ž•.œ’.{‚|... */
908 $"7C03 7D75 849A 979C 0194 CE81 FF02 F8BD" /* |.}u„š—œ.”Îÿ.ø½ */
909 $"9BA3 9C01 98B4 84FF 02F8 9D99 959C 039B" /* ›£œ.˜´„ÿ.ø™•œ.› */
910 $"907E 7B82 7C01 0000 817C 037D 7482 9997" /* ~{‚|...|.}t‚™— */
911 $"9B01 94DF 80FF 03EE AD95 9AA3 9B02 9A9D" /* ›.”߀ÿ.î­•š£›.š */
912 $"EF84 FF02 CC91 9C94 9B03 9A8F 7C7B 827C" /* ï„ÿ.Ì‘œ”›.š|{‚| */
913 $"0100 0081 7C03 7D74 8098 979A 0697 ECFF" /* ...|.}t€˜—š.—ìÿ */
914 $"FFE0 A195 A69A 0195 D084 FF02 F098 9994" /* ÿà¡•¦š.•Ð„ÿ.𘙔 */
915 $"9A02 998D 7B83 7C01 0000 817C 037D 737E" /* š.™{ƒ|...|.}s~ */
916 $"9896 9A06 989F F9FF D099 97A7 9A02 96AD" /* ˜–š.˜ŸùÿЙ—§š.–­ */
917 $"FD83 FF02 FCA6 9794 9A02 998D 7B83 7C01" /* ýƒÿ.ü¦—”š.™{ƒ|. */
918 $"0000 817C 037D 737D 9796 9905 95AD FCBE" /* ..|.}s}—–™.•­ü¾ */
919 $"9498 A999 0196 DD83 FF02 F7A3 9794 9902" /* ”˜©™.–݃ÿ.÷£—”™. */
920 $"988C 7A83 7C01 0000 817C 037D 737B 9696" /* ˜Œzƒ|...|.}s{–– */
921 $"9803 95B0 B392 AB98 0294 AAF9 82FF 01CF" /* ˜.•°³’«˜.”ªù‚ÿ.Ï */
922 $"9595 9802 978A 7A83 7C01 0000 817C 037D" /* ••˜.—Šzƒ|...|.} */
923 $"747B 9498 9700 94AD 9708 93B9 F9FF FFF6" /* t{”˜—.”­—.“¹ùÿÿö */
924 $"C797 9695 9702 9688 7983 7C01 0000 817C" /* Ç—–•—.–ˆyƒ|...| */
925 $"037D 7479 93CA 9606 92A4 BEB8 9F91 9596" /* .}ty“Ê–.’¤¾¸Ÿ‘•– */
926 $"9602 9588 7983 7C01 0000 817C 037D 7478" /* –.•ˆyƒ|...|.}tx */
927 $"93CB 9603 9390 9193 9896 0294 8779 837C" /* “Ë–.“‘“˜–.”‡yƒ| */
928 $"0100 0081 7C03 7D75 7892 EA95 0293 8679" /* ...|.}ux’ê•.“†y */
929 $"837C 0100 0081 7C03 7D75 7892 EA95 0293" /* ƒ|...|.}ux’ê•.“ */
930 $"8679 837C 0100 0081 7C03 7D76 7792 EA95" /* †yƒ|...|.}vw’ê• */
931 $"0293 8679 837C 0100 0081 7C03 7D76 7792" /* .“†yƒ|...|.}vw’ */
932 $"EA95 0293 8579 837C 0000 827C 037D 7776" /* ê•.“…yƒ|..‚|.}wv */
933 $"8FEA 9402 9182 7883 7C00 0083 7C03 7A70" /* ê”.‘‚xƒ|..ƒ|.zp */
934 $"8288 E989 0285 7A79 837C 0100 0082 7C02" /* ‚ˆé‰.…zyƒ|...‚|. */
935 $"7D78 76EA 7901 7779 847C 0100 00FB 7C01" /* }xvêy.wy„|...û|. */
936 $"0000 FB7C 0100 00FB 7C01 0000 FB7C 0100" /* ..û|...û|...û|.. */
937 $"00FA 7C81 00F9 7C82 00F7 7C83 00F6 7C86" /* .ú|.ù|‚.÷|ƒ.ö|† */
938 $"00F3 7CFF 00FF 0000 00FF 00FF 00FF 00FF" /* .ó|ÿ.ÿ...ÿ.ÿ.ÿ.ÿ */
939 $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* .ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ */
940 $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* .ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ.ÿ */
941 $"00FF 00FF 00FF 00FF 00FF 00DF 009F 74D7" /* .ÿ.ÿ.ÿ.ÿ.ÿ.ß.Ÿt× */
942 $"00A6 74D3 0001 7474 8000 9D73 8474 D000" /* .¦tÓ..tt€.s„tÐ. */
943 $"0374 7400 749E 7702 7673 7283 74D0 0003" /* .tt.tžw.vsrƒtÐ.. */
944 $"7381 9FAB 9DAC 03A8 977A 7383 74CD 0004" /* sŸ«¬.¨—zsƒtÍ.. */
945 $"7400 79AF CC9E CF03 CCBF 9B73 8374 CD00" /* t.y¯ÌžÏ.Ì¿›sƒtÍ. */
946 $"0474 0088 C6D2 9FD3 03CA AF7C 7282 74CD" /* .t.ˆÆÒŸÓ.ʯ|r‚tÍ */
947 $"0003 7400 8EC9 A0D3 03CC B27D 7282 74CC" /* ..t.ŽÉ Ó.̲}r‚tÌ */
948 $"0004 7474 7094 CBA0 D203 CCB3 7C72 8374" /* ..ttp”Ë Ò.̳|rƒt */
949 $"CB00 0474 7471 A1CE A0D1 03CC B67F 72B8" /* Ë..ttq¡Î Ñ.̶.r¸ */
950 $"7495 0005 7474 0078 B7D0 A0D1 03CE BE8B" /* t•..tt.x·Ð Ñ.ξ‹ */
951 $"70BA 7492 0006 7474 0070 96C9 CFA0 D004" /* pºt’..tt.p–ÉÏ Ð. */
952 $"CFC6 A675 71BA 7490 0006 7474 0072 8FC0" /* ÏƦuqºt..tt.rÀ */
953 $"CDA2 CF03 CBBF 9D7A B672 0473 0073 7474" /* Í¢Ï.Ë¿z¶r.s.stt */
954 $"8E00 0674 7400 799D C3CD A3CF 04CE CAC3" /* Ž..tt.yÃÍ£Ï.ÎÊà */
955 $"B2A0 B598 0496 8D79 0074 8D00 0774 7400" /* ² µ˜.–y.t..tt. */
956 $"79A8 C8CE CEA4 CF03 CECD CBC9 B5C7 03C3" /* y¨ÈÎΤÏ.ÎÍËɵÇ.à */
957 $"B58F 0080 7489 0081 7403 7192 C1C8 E2C9" /* µ.€t‰.t.q’ÁÈâÉ */
958 $"03C7 B995 7282 7486 0001 7474 8000 026E" /* .ǹ•r‚t†..tt€..n */
959 $"91AC E3AF 04AE A58A 6F71 8000 0174 7484" /* ‘¬ã¯.®¥Šoq€..tt„ */
960 $"0008 7400 7075 8085 8487 8E80 8FAA 9000" /* ..t.pu€…„‡Ž€ª. */
961 $"8FB0 9080 8F09 8B87 8584 847F 7600 7474" /* °€Æ‹‡…„„.v.tt */
962 $"8200 0774 0070 8BAF BCBF C0E7 C109 C0BF" /* ‚..t.p‹¯¼¿ÀçÁÆÀ¿ */
963 $"BEBE B8A6 8572 7474 8200 0370 8DC0 C9EE" /* ¾¾¸¦…rtt‚..pÀÉî */
964 $"CA05 C9C4 B185 0074 8000 0474 0078 B4C8" /* Ê.Éı….t€..t.x´È */
965 $"F0CA 0CC9 BFA1 7600 7400 0074 0088 BFC8" /* ðÊ.É¿¡v.t..t.ˆ¿È */
966 $"B3C9 03CA C7C9 CAB7 C90A C3AD 7F00 7400" /* ³É.ÊÇÉÊ·ÉÂí..t. */
967 $"0074 708C C0B3 C805 C9C3 B8B3 C4C9 B6C8" /* .tpŒÀ³È.Éø³ÄÉ¶È */
968 $"0AC3 AE7F 0074 0074 7400 88BD B4C7 05C2" /* Âî..t.tt.ˆ½´Ç. */
969 $"F1EC B2C4 C8B5 C70B C1AB 7C00 7400 7474" /* ñì²ÄȵÇ.Á«|.t.tt */
970 $"0082 BAC6 B3C7 04C6 F2FF E6B3 B6C7 0BC0" /* .‚ºÆ³Ç.Æòÿ泶Ç.À */
971 $"A67A 7374 0074 7400 7DB5 C5B3 C606 C3E7" /* ¦zst.tt.}µÅ³Æ.Ãç */
972 $"FFFF D5B6 C8B4 C60B BDA1 7573 7400 7474" /* ÿÿնȴÆ.½¡ust.tt */
973 $"0079 B0C4 B3C5 01C2 D880 FF02 C0BD C6B2" /* .y°Ä³Å.ÂØ€ÿ.À½Æ² */
974 $"C50C C4BB 9D75 7374 0074 7473 75AA C2B3" /* Å.Ä»ust.ttsuªÂ³ */
975 $"C406 C3C9 FAFF FFF0 B3B3 C403 C3B8 9673" /* Ä.ÃÉúÿÿð³³Ä.ø–s */
976 $"8474 01A5 C1B4 C301 C1EB 80FF 02D6 B4C5" /* „t.¥Á´Ã.Áë€ÿ.Ö´Å */
977 $"B1C3 03C2 B591 7283 7402 719E BFB4 C201" /* ±Ã.µ‘rƒt.qž¿´Â. */
978 $"BFD5 80FF 03FD BBBD C3B0 C203 C0B2 8E72" /* ¿Õ€ÿ.ý»½Ã°Â.À²Žr */
979 $"8374 0270 99BD B4C1 02C0 C4F6 80FF 02E6" /* ƒt.p™½´Á.ÀÄö€ÿ.æ */
980 $"B1C2 B0C1 03BE AF87 7283 7402 7193 BBB5" /* ±Â°Á.¾¯‡rƒt.q“»µ */
981 $"C001 BCE1 81FF 02C6 B7C1 AFC0 06BD AC84" /* À.¼áÿ.Æ·Á¯À.½¬„ */
982 $"7274 7400 8074 0270 8CB9 B1BF 00C0 80C1" /* rtt.€t.pŒ¹±¿.À€Á */
983 $"02BD CAFD 80FF 01F1 B1B0 BF06 BBA9 8172" /* .½Êý€ÿ.ñ±°¿.»©r */
984 $"7474 0080 7402 7088 B7B0 BF07 C1B9 ACAB" /* tt.€t.pˆ·°¿.Á¹¬« */
985 $"AEBC BEEB 81FF 02D1 B3C0 AEBF 06BA A67C" /* ®¼¾ëÿ.ѳÀ®¿.º¦| */
986 $"7274 7400 8074 0271 83B4 AFBE 08BF AFB4" /* rtt.€t.qƒ´¯¾.¿¯´ */
987 $"D9E3 D2AD B1D3 81FF 02F8 B4BC AEBE 06B8" /* ÙãÒ­±Óÿ.ø´¼®¾.¸ */
988 $"A27A 7374 7400 8074 0372 7DB1 BCAE BD01" /* ¢zstt.€t.r}±¼®½. */
989 $"B9CA 81FF 03F6 B4B9 F381 FF02 D8AF BEAD" /* ¹Êÿ.ö´¹óÿ.د¾­ */
990 $"BD0D B69F 7973 7474 0000 7474 727A ADBB" /* ½.¶Ÿystt..ttrz­» */
991 $"ADBC 03BB ABB7 E681 FF02 E6AE D881 FF02" /* ­¼.»«·æÿ.æ®Øÿ. */
992 $"FDB7 B8AD BC0D B49A 7673 7474 0000 7474" /* ý·¸­¼.´švstt..tt */
993 $"7378 A9BA ACBB 0CBC ACDB D7A6 BDF0 FFFF" /* sx©º¬».¼¬Ûצ½ðÿÿ */
994 $"FABA BEF7 81FF 02DF ACBC ACBB 01B2 9781" /* úº¾÷ÿ.߬¼¬».²— */
995 $"7407 0000 7474 7374 A4B8 ABB9 0DBA B3BB" /* t...ttst¤¸«¹.º³» */
996 $"FFFF F7C2 A4CB FAFC C0B4 DC82 FF02 BAB4" /* ÿÿ÷¤ËúüÀ´Ü‚ÿ.º´ */
997 $"BAAB B901 B093 8174 0100 0080 7402 729F" /* º«¹.°“t...€t.rŸ */
998 $"B6AB B902 BAAA E981 FF07 ECB3 ABD1 BBB6" /* ¶«¹.ºªéÿ.쳫ѻ¶ */
999 $"C0FA 81FF 02E4 AABA AAB9 03B8 AD8E 7380" /* Àúÿ.䪺ª¹.¸­Žs€ */
1000 $"7401 0000 8074 0272 9BB6 AAB8 02B9 ADC6" /* t...€t.r›¶ª¸.¹­Æ */
1001 $"84FF 05DC AFB7 B8B4 E082 FF02 BCB1 B9A9" /* „ÿ.ܯ·¸´à‚ÿ.¼±¹© */
1002 $"B803 B6AB 8A72 8074 0100 0080 7402 7095" /* ¸.¶«Šr€t...€t.p• */
1003 $"B4AA B602 B5AB F484 FF06 E9B6 B5B6 B4C2" /* ´ª¶.µ«ô„ÿ.鶵¶´Â */
1004 $"FC81 FF02 E6A9 B7A9 B603 B5A8 8872 8074" /* üÿ.æ©·©¶.µ¨ˆr€t */
1005 $"0100 0080 7402 6F91 B3A9 B602 B7AD D684" /* ...€t.o‘³©¶.·­Ö„ */
1006 $"FF02 FAC0 B480 B601 B3E4 82FF 02BD AFB7" /* ÿ.úÀ´€¶.³ä‚ÿ.½¯· */
1007 $"A8B6 03B4 A584 7280 7401 0000 8074 0270" /* ¨¶.´¥„r€t...€t.p */
1008 $"8DB2 A9B6 02B4 ACE7 84FF 01D9 B181 B602" /* ²©¶.´¬ç„ÿ.Ù±¶. */
1009 $"B3C5 FE81 FF02 E8A8 B7A8 B603 B3A3 8172" /* ³Åþÿ.訷¨¶.³£r */
1010 $"8074 0100 0080 7402 7087 B0A8 B505 B6AA" /* €t...€t.p‡°¨µ.¶ª */
1011 $"BDA4 C1F5 81FF 02F3 B8B4 82B5 01B2 E782" /* ½¤Áõÿ.ó¸´‚µ.²ç‚ */
1012 $"FF02 BFAD B6A7 B503 B2A1 7F72 8074 0100" /* ÿ.¿­¶§µ.²¡.r€t.. */
1013 $"0080 7402 7083 ADA7 B40C B5AC BBFF F2B8" /* .€t.pƒ­§´.µ¬»ÿò¸ */
1014 $"A2D0 FBFF FFCE B083 B401 B1C5 82FF 02EA" /* ¢Ðûÿÿΰƒ´.±Å‚ÿ.ê */
1015 $"A7B5 A7B4 03B0 9E7C 7380 7401 0000 8074" /* §µ§´.°ž|s€t...€t */
1016 $"0271 80AB A8B3 01A5 EC80 FF06 E4AA A9E2" /* .q€«¨³.¥ì€ÿ.䪩â */
1017 $"EAB2 B284 B301 B1E8 82FF 02BF ABB4 A6B3" /* ê²²„³.±è‚ÿ.¿«´¦³ */
1018 $"03AE 9B79 7380 7401 0000 8074 0272 7DA8" /* .®›ys€t...€t.r}¨ */
1019 $"A6B2 02B3 A6C8 82FF 04FE D3A8 B2B1 85B2" /* ¦².³¦È‚ÿ.þÓ¨²±…² */
1020 $"01AE C582 FF02 EAA6 B3A6 B203 AC98 7873" /* .®Å‚ÿ.꦳¦².¬˜xs */
1021 $"8074 0100 0080 7403 7278 A5B0 A5B1 02AF" /* €t...€t.rx¥°¥±.¯ */
1022 $"A9F7 84FF 01DA AB86 B102 B0AF E982 FF02" /* ©÷„ÿ.Ú«†±.°¯é‚ÿ. */
1023 $"BEA9 B2A5 B103 AB95 7773 8074 0100 0080" /* ¾©²¥±.«•ws€t...€ */
1024 $"7403 7276 A2AF A4B0 02B1 A2D5 84FF 02F8" /* t.rv¢¯¤°.±¢Õ„ÿ.ø */
1025 $"BAAE 87B0 01AC C682 FF02 EAA4 B1A5 B003" /* º®‡°.¬Æ‚ÿ.ꤱ¥°. */
1026 $"A991 7573 8074 0100 0080 7402 7375 9FA4" /* ©‘us€t...€t.suŸ¤ */
1027 $"AE03 AFA9 B0FE 84FF 01D3 AA88 AE02 ADAD" /* ®.¯©°þ„ÿ.Óªˆ®.­­ */
1028 $"E982 FF02 BCA7 AFA4 AE01 A78E 8274 0100" /* é‚ÿ.¼§¯¤®.§Ž‚t.. */
1029 $"0081 7402 729B ADA3 AE02 AFA0 E384 FF02" /* .t.r›­£®.¯ ã„ÿ. */
1030 $"F0B0 AD89 AE01 AAC4 82FF 02E9 A2AF A4AE" /* ð°­‰®.ªÄ‚ÿ.颯¤® */
1031 $"01A5 8C82 7401 0000 8174 0270 98AC 97AD" /* .¥Œ‚t...t.p˜¬—­ */
1032 $"0DAC ADAE ACAE ADAC AEAD ACAE AEA4 BB85" /* .¬­®¬®­¬®­¬®®¤»… */
1033 $"FF11 C7A7 AEAD ACAE ADAC AEAC ACAE ACAD" /* ÿ.ǧ®­¬®­¬®¬¬®¬­ */
1034 $"AEAB ABE9 82FF 0EBB A6AE ADAC AEAC ACAE" /* ®««é‚ÿ.»¦®­¬®¬¬® */
1035 $"ACAD AEAC ADAE 97AD 01A3 8982 7401 0000" /* ¬­®¬­®—­.£‰‚t... */
1036 $"8174 0270 94AA 95AC 0FAD A79F A1A2 9FA2" /* t.p”ª•¬.­§Ÿ¡¢Ÿ¢ */
1037 $"A29F A2A1 9FA4 A9A1 EF84 FF12 E6A2 9FA2" /* ¢Ÿ¢¡Ÿ¤©¡ï„ÿ.梟¢ */
1038 $"A1A0 A3A1 A0A2 A0A0 A3A0 A0A2 9F9D C282" /* ¡ £¡ ¢  £  ¢ŸÂ‚ */
1039 $"FF10 E6A0 A9A0 A0A2 A0A0 A2A0 A1A3 A0A1" /* ÿ.æ ©  ¢  ¢ ¡£ ¡ */
1040 $"A2A2 AB94 AC03 ABA1 8673 8174 0100 0081" /* ¢¢«”¬.«¡†st... */
1041 $"7402 7091 A995 AB0E A9AF FACE C2FF BCCA" /* t.p‘©•«.©¯úÎÂÿ¼Ê */
1042 $"FFB6 DEFA B4A1 C884 FF14 FDB2 C0FF BFCF" /* ÿ¶Þú´¡È„ÿ.ý²Àÿ¿Ï */
1043 $"FFAF DCFA AFEA F1A8 F5E4 B2FE D79D E982" /* ÿ¯Üú¯êñ¨õä²þ×é‚ */
1044 $"FF0F B8A1 E4F8 A9EA F0AE F7E0 ACFF D5C0" /* ÿ.¸¡äø©êð®÷à¬ÿÕÀ */
1045 $"D1A5 94AB 03AA 9F84 7381 7401 0000 8174" /* Ñ¥”«.ªŸ„st...t */
1046 $"026F 8CA8 95A9 0EA7 B1FF CEC2 FFD0 DBFF" /* .oŒ¨•©.§±ÿÎÂÿÐÛÿ */
1047 $"B3E0 FFB6 A2F9 84FF 14D7 99D8 FFBE D0FF" /* ³àÿ¶¢ù„ÿ.×™Øÿ¾Ðÿ */
1048 $"C5E9 FFAC EEFA C0FE E7B0 FFE8 A3B9 82FF" /* Åéÿ¬îúÀþç°ÿ裹‚ÿ */
1049 $"0FE2 99EA FFC1 F5F4 ABFB EDC4 FFD7 BED6" /* .â™êÿÁõô«ûíÄÿ×¾Ö */
1050 $"A394 A903 A89C 8173 8174 0100 0080 7403" /* £”©.¨œst...€t. */
1051 $"756E 88A6 95A8 04A6 B0FF DDD3 81FF 04C9" /* unˆ¦•¨.¦°ÿÝÓÿ.É */
1052 $"EBFB A6D5 84FF 06F6 A3DE FFFF D1DE 80FF" /* ëû¦Õ„ÿ.ö£ÞÿÿÑÞ€ÿ */
1053 $"02FD C4F2 80FF 06EE C6FF FFFA A7E2 82FF" /* .ýÄò€ÿ.îÆÿÿú§â‚ÿ */
1054 $"01B0 D780 FF02 F6C3 FB80 FF03 E3D3 D5A2" /* .°×€ÿ.öÃû€ÿ.ãÓÕ¢ */
1055 $"94A8 03A7 9A7F 7381 7401 0000 8074 0375" /* ”¨.§š.st...€t.u */
1056 $"6E85 A495 A702 A5AF FA85 FF01 C7AB 85FF" /* n…¤•§.¥¯ú…ÿ.Ç«…ÿ */
1057 $"01C4 B290 FF01 D1B1 82FF 02DD ACFB 87FF" /* .IJÿ.ѱ‚ÿ.ݬû‡ÿ */
1058 $"01D1 A194 A703 A598 7D73 8174 0100 0081" /* .Ñ¡”§.¥˜}st... */
1059 $"7402 7082 A295 A602 A4AE FB84 FF02 EF9C" /* t.p‚¢•¦.¤®û„ÿ.ïœ */
1060 $"E484 FF02 EC9E EB90 FF02 FCA7 DF81 FF02" /* ä„ÿ.ìžëÿ.ü§ßÿ. */
1061 $"FCAD D787 FF01 D0A0 94A6 03A3 957B 7381" /* ü­×‡ÿ.Р”¦.£•{s */
1062 $"7401 0000 8174 0270 7EA1 95A6 02A4 AEFB" /* t...t.p~¡•¦.¤®û */
1063 $"84FF 01B8 B885 FF01 B4BF 92FF 01D4 AD80" /* „ÿ.¸¸…ÿ.´¿’ÿ.Ô­€ */
1064 $"FF04 FCD4 9CAC FA86 FF01 D0A0 94A6 03A3" /* ÿ.üÔœ¬ú†ÿ.Р”¦.£ */
1065 $"937A 7381 7401 0000 8174 0270 7B9F 95A4" /* “zst...t.p{Ÿ•¤ */
1066 $"02A2 ACFA 83FF 02E3 9BF1 84FF 02DE 9EF5" /* .¢¬úƒÿ.ã›ñ„ÿ.Þžõ */
1067 $"92FF 09FD A8D9 FADB AD8B B1A1 D486 FF01" /* ’ÿÆý¨ÙúÛ­‹±¡Ô†ÿ. */
1068 $"CF9E 94A4 03A1 9178 7381 7401 0000 8174" /* Ïž”¤.¡‘xst...t */
1069 $"0270 779D 95A3 02A1 ACFA 82FF 02FD A9C7" /* .pw•£.¡¬ú‚ÿ.ý©Ç */
1070 $"84FF 02FC A5CD 94FF 09D9 989F 8B9B D3FF" /* „ÿ.ü¥Í”ÿÆÙ˜Ÿ‹›Óÿ */
1071 $"CDA1 F985 FF01 CF9D 94A3 03A0 8E77 7381" /* Í¡ù…ÿ.Ï”£. Žws */
1072 $"7401 0000 8174 0271 779A 95A2 02A0 ABFA" /* t...t.qwš•¢. «ú */
1073 $"82FF 02D4 A0FB 84FF 02CE A2FD 95FF 08A6" /* ‚ÿ.Ô û„ÿ.΢ý•ÿ.¦ */
1074 $"AEDB FCFF FFFA 9ECF 85FF 01CE 9C94 A203" /* ®ÛüÿÿúžÏ…ÿ.Îœ”¢. */
1075 $"9E8C 7673 8174 0100 0081 7402 7275 9895" /* žŒvst...t.ru˜• */
1076 $"A102 9FAA FA81 FF02 F79D D784 FF02 F29C" /* ¡.Ÿªúÿ.÷ׄÿ.òœ */
1077 $"DE96 FF01 DABD 82FF 02D0 9DF8 84FF 01CE" /* Þ–ÿ.Ú½‚ÿ.Ðø„ÿ.Î */
1078 $"9A94 A102 9C8A 7582 7401 0000 8174 0272" /* š”¡.œŠu‚t...t.r */
1079 $"7196 959F 089D A9EE F2F1 F1F6 C0AA 85FF" /* q–•Ÿ.©îòññöÀª…ÿ */
1080 $"02C0 ADF5 95F1 03F2 F1AE E681 FF03 FCA0" /* .À­õ•ñ.òñ®æÿ.ü  */
1081 $"C7F5 82F1 02F6 C89A 949F 029A 8775 8274" /* Çõ‚ñ.öÈš”Ÿ.š‡u‚t */
1082 $"0100 0081 7402 736F 9396 9E00 9F82 A201" /* ...t.so“–ž.Ÿ‚¢. */
1083 $"93E8 84FF 03E8 9EA2 A396 A202 A39D BB82" /* “è„ÿ.螢£–¢.£»‚ */
1084 $"FF02 D597 A383 A200 A195 9E01 9985 8374" /* ÿ.Õ—£ƒ¢.¡•ž.™…ƒt */
1085 $"0100 0081 7403 736E 929D 959E 009D 809C" /* ...t.sn’•ž.€œ */
1086 $"029D 91BC 84FF 03FE B599 9D99 9C01 9DE7" /* .‘¼„ÿ.þµ™™œ.ç */
1087 $"81FF 02C7 8D9B 839C 009D 959E 0198 8383" /* ÿ.Ç›ƒœ.•ž.˜ƒƒ */
1088 $"7401 0000 8274 016E 8F9A 9C02 9A98 F484" /* t...‚t.nšœ.š˜ô„ */
1089 $"FF01 DA99 9B9C 0997 B9FF FFE4 A7A6 CF91" /* ÿ.Ú™›œÆ—¹ÿÿ䧦ϑ */
1090 $"9D9B 9C02 9681 7382 7401 0000 8274 026F" /* ›œ.–s‚t...‚t.o */
1091 $"8C9A 989B 029C 90CF 84FF 02F8 A998 9D9B" /* Œš˜›.œÏ„ÿ.ø©˜› */
1092 $"08B3 A39A C8FC FFB0 919C 9A9B 0294 8073" /* .³£šÈüÿ°‘œš›.”€s */
1093 $"8274 0100 0082 7402 6D8A 9998 9A02 989C" /* ‚t...‚t.mŠ™˜š.˜œ */
1094 $"F484 FF01 CB94 9D9A 0397 A2DD FB80 FF02" /* ô„ÿ.Ë”š.—¢Ýû€ÿ. */
1095 $"F294 979A 9A02 927E 7382 7401 0000 8174" /* ò”—šš.’~s‚t...t */
1096 $"0375 6B87 9898 9904 969A 96D2 FE81 FF02" /* .uk‡˜˜™.–š–Òþÿ. */
1097 $"EF9E 979D 9902 97A1 F382 FF02 D68A 9A99" /* ïž—™.—¡ó‚ÿ.ÖŠš™ */
1098 $"9902 917C 7382 7401 0000 8174 0375 6A85" /* ™.‘|s‚t...t.uj… */
1099 $"9797 9806 9798 F1D3 8F9F E480 FF01 BB92" /* ——˜.—˜ñÓŸä€ÿ.»’ */
1100 $"9F98 0192 CF83 FF02 B68A 9998 9802 8F7B" /* Ÿ˜.’σÿ.¶Š™˜˜.{ */
1101 $"7382 7401 0000 8174 0375 6A82 9597 960B" /* s‚t...t.uj‚•—–. */
1102 $"939F FBFF F9BB 89B0 F5E4 9595 9F96 0192" /* “Ÿûÿù»‰°õä••Ÿ–.’ */
1103 $"AD83 FF03 FA9B 9097 9796 028D 7973 8274" /* ­ƒÿ.ú›——–.ys‚t */
1104 $"0100 0081 7403 756A 8195 9796 0191 AC81" /* ...t.uj•—–.‘¬ */
1105 $"FF04 EEA8 97A2 94A0 9602 9597 EC83 FF01" /* ÿ.¢” –.•—ìƒÿ. */
1106 $"E28A 9796 0395 8C78 7382 7401 0000 8174" /* ⊗–.•Œxs‚t...t */
1107 $"0375 6C7F 9497 9501 8EBB 82FF 02FE B28E" /* .ul.”—•.Ž»‚ÿ.þ²Ž */
1108 $"A295 018F CE84 FF02 BD89 9695 9503 948B" /* ¢•.΄ÿ.½‰–••.”‹ */
1109 $"7873 8274 0100 0081 7403 756D 7D92 9794" /* xs‚t...t.um}’—” */
1110 $"018C CB81 FF02 F8B8 93A3 9401 90AE 84FF" /* .ŒËÿ.ø¸“£”.®„ÿ */
1111 $"02F7 9691 9594 0393 8A77 7382 7401 0000" /* .÷–‘•”.“Šws‚t... */
1112 $"8174 0375 6C7B 9197 9301 8CDD 80FF 02ED" /* t.ul{‘—“.ŒÝ€ÿ.í */
1113 $"A78D A493 0292 96EE 84FF 02C8 8894 9493" /* §¤“.’–î„ÿ.Ȉ””“ */
1114 $"0392 8875 7382 7401 0000 8174 0375 6C79" /* .’ˆus‚t...t.uly */
1115 $"9096 9207 9190 EBFF FFDE 9A8D A692 018C" /* –’.‘ëÿÿÞš¦’.Œ */
1116 $"CC84 FF02 EF91 9194 9201 9186 8474 0100" /* Ì„ÿ.ï‘‘”’.‘†„t.. */
1117 $"0081 7403 756B 7790 9692 0690 97F8 FFCC" /* .t.ukw–’.—øÿÌ */
1118 $"918E A792 028E A6FD 83FF 02FC 9F8F 9492" /* ‘Ž§’.Ž¦ýƒÿ.üŸ”’ */
1119 $"0191 8584 7401 0000 8174 0375 6B75 8E96" /* .‘…„t...t.ukuŽ– */
1120 $"9005 8BA7 FCBA 8B8E A990 018D DB83 FF02" /* .‹§üº‹Ž©.Ûƒÿ. */
1121 $"F79B 8D94 9002 8F83 7383 7401 0000 8174" /* ÷›”.ƒsƒt...t */
1122 $"0375 6C74 8E96 9004 8CAA AD89 8FAA 9002" /* .ultŽ–.Œª­‰ª. */
1123 $"8CA3 F982 FF01 CB8C 9590 028F 8373 8374" /* Œ£ù‚ÿ.ËŒ•.ƒsƒt */
1124 $"0100 0081 7403 756B 728D 988F 008B AD8F" /* ...t.ukr˜.‹­ */
1125 $"088A B4F9 FFFF F6C3 8E8E 958F 028E 8172" /* .Š´ùÿÿöÃŽŽ•.Žr */
1126 $"8374 0100 0081 7403 756C 718C CA8E 068A" /* ƒt...t.ulqŒÊŽ.Š */
1127 $"9DBA B398 898D 968E 028D 8072 8374 0100" /* º³˜‰–Ž.€rƒt.. */
1128 $"0081 7403 756C 718B CB8E 038B 8888 8B98" /* .t.ulq‹ËŽ.‹ˆˆ‹˜ */
1129 $"8E02 8C80 7283 7401 0000 8174 0375 6D71" /* Ž.Œ€rƒt...t.umq */
1130 $"8BEA 8E02 8C80 7283 7401 0000 8174 0375" /* ‹êŽ.Œ€rƒt...t.u */
1131 $"6D70 8AEA 8D02 8B7F 7283 7401 0000 8174" /* mpŠê.‹.rƒt...t */
1132 $"0375 6E70 8AEA 8D02 8B7E 7283 7401 0000" /* .unpŠê.‹~rƒt... */
1133 $"8174 0375 6E70 8AEA 8D02 8B7E 7283 7400" /* t.unpŠê.‹~rƒt. */
1134 $"0082 7403 756F 6E88 EA8C 0289 7B71 8374" /* .‚t.uonˆêŒ.‰{qƒt */
1135 $"0000 8374 0372 697B 81E9 8202 7E73 7283" /* ..ƒt.ri{é‚.~srƒ */
1136 $"7401 0000 8274 0475 706E 7172 E671 0372" /* t...‚t.upnqræq.r */
1137 $"7270 7284 7401 0000 FB74 0100 00FB 7401" /* rpr„t...ût...ût. */
1138 $"0000 FB74 0100 00FB 7401 0000 FA74 8100" /* ..ût...ût...út. */
1139 $"F974 8200 F774 8300 F674 8600 F374 FF00" /* ùt‚.÷tƒ.öt†.ótÿ. */
1140 $"FF00 0000 7438 6D6B 0000 4008 0000 0000" /* ÿ...t8mk..@..... */
1141 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1142 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1143 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1144 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1145 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1146 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1147 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1148 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1149 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1150 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1151 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1152 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1153 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1154 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1155 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1156 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1157 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1158 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1159 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1160 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1161 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1162 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1163 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1164 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1165 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1166 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1167 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1168 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1169 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1170 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1171 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1172 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1173 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1174 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1175 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1176 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1177 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1178 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1179 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1180 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1181 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1182 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1183 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1184 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1185 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1186 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1187 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1188 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1189 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1190 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1191 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1192 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1193 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1194 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1195 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1196 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1197 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1198 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1199 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1200 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1201 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1202 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1203 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1204 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1205 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1206 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1207 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1208 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1209 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1210 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1211 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1212 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1213 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1214 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1215 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1216 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1217 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1218 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1219 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1220 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1221 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1222 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1223 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1224 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1225 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1226 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1227 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1228 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1229 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1230 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1231 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1232 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1233 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1234 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1235 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1236 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1237 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1238 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1239 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1240 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1241 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1242 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1243 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1244 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1245 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1246 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1247 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1248 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1249 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1250 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1251 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1252 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1253 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1254 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1255 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1256 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1257 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1258 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1259 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1260 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1261 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1262 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1263 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1264 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1265 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1266 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1267 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1268 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1269 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1270 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1271 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1272 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1273 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1274 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1275 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1276 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1277 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1278 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1279 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1280 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1281 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1282 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1283 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1284 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1285 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1286 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1287 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1288 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1289 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1290 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1291 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1292 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1293 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1294 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1295 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1296 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1297 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1298 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1299 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1300 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1301 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1302 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1303 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1304 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1305 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1306 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1307 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1308 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1309 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1310 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1311 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1312 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1313 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1314 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1315 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1316 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1317 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1318 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1319 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1320 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1321 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1322 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1323 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1324 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1325 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1326 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1327 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1328 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1329 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1330 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1331 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1332 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1333 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1334 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1335 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1336 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1337 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1338 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1339 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1340 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1341 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1342 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1343 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1344 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1345 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1346 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1347 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1348 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1349 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1350 $"0101 0101 0202 0202 0202 0202 0202 0202" /* ................ */
1351 $"0202 0202 0202 0202 0202 0202 0202 0101" /* ................ */
1352 $"0101 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1353 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1354 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1355 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1356 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1357 $"0000 0000 0000 0000 0000 0000 0102 0202" /* ................ */
1358 $"0304 0505 0606 0606 0606 0606 0606 0606" /* ................ */
1359 $"0606 0606 0606 0606 0606 0606 0606 0505" /* ................ */
1360 $"0503 0302 0100 0000 0000 0000 0000 0000" /* ................ */
1361 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1362 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1363 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1364 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1365 $"0000 0000 0000 0000 0000 0001 0100 0000" /* ................ */
1366 $"0204 0506 0707 0707 0707 0707 0707 0707" /* ................ */
1367 $"0707 0707 0707 0707 0707 0707 0707 0606" /* ................ */
1368 $"090A 0805 0302 0100 0000 0000 0000 0000" /* ÆÂ.............. */
1369 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1370 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1371 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1372 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1373 $"0000 0000 0000 0000 0000 0101 001C 2F31" /* ............../1 */
1374 $"3436 383A 3A3A 3A3A 3A3A 3A3A 3A3A 3A3A" /* 468::::::::::::: */
1375 $"3A3A 3A3A 3A3A 3A3A 3A3A 3A3A 3A3A 3A34" /* :::::::::::::::4 */
1376 $"120B 0F0B 0704 0201 0000 0000 0000 0000" /* ................ */
1377 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1378 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1379 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1380 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1381 $"0000 0000 0000 0000 0000 0004 8FF3 FAF9" /* ............óúù */
1382 $"F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9" /* ùùùùùùùùùùùùùùùù */
1383 $"F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 FAFA" /* ùùùùùùùùùùùùùùúú */
1384 $"C433 1112 0C07 0402 0100 0000 0000 0000" /* Ä3.............. */
1385 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1386 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1387 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1388 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1389 $"0000 0000 0000 0000 0001 0067 FFFF FFFF" /* ...........gÿÿÿÿ */
1390 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1391 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1392 $"FFC3 201A 130C 0703 0100 0000 0000 0000" /* ÿÃ ............. */
1393 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1394 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1395 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1396 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1397 $"0000 0000 0000 0000 0001 00A9 FFFF FFFF" /* ...........©ÿÿÿÿ */
1398 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1399 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1400 $"FFF8 4A20 1B11 0A05 0200 0000 0000 0000" /* ÿøJ ..Â......... */
1401 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1402 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1403 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1404 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1405 $"0000 0000 0000 0000 0002 00B6 FFFF FFFF" /* ...........¶ÿÿÿÿ */
1406 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1407 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1408 $"FFFB 5928 2216 0D07 0200 0000 0000 0000" /* ÿûY("........... */
1409 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1410 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1411 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1412 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1413 $"0000 0000 0000 0000 0103 07CC FFFF FFFF" /* ...........Ìÿÿÿÿ */
1414 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1415 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1416 $"FFFD 6231 291B 1109 0401 0000 0000 0000" /* ÿýb1)..Æ........ */
1417 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1418 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1419 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1420 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1421 $"0000 0000 0000 0000 0201 21F0 FFFF FFFF" /* ..........!ðÿÿÿÿ */
1422 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1423 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1424 $"FFFF 7337 2F21 160D 0704 0303 0303 0303" /* ÿÿs7/!.......... */
1425 $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
1426 $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
1427 $"0303 0303 0303 0303 0303 0302 0201 0100" /* ................ */
1428 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1429 $"0000 0000 0000 0001 0500 69FF FFFF FFFF" /* ..........iÿÿÿÿÿ */
1430 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1431 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1432 $"FFFF 9A38 3628 1C14 0E0A 0909 0909 0909" /* ÿÿš86(...ÂÆÆÆÆÆÆ */
1433 $"0909 0909 0909 0909 0909 0909 0909 0909" /* ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ */
1434 $"0909 0909 0909 0909 0909 0909 0909 0909" /* ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ */
1435 $"0909 0909 0909 0909 0909 0807 0604 0302" /* ÆÆÆÆÆÆÆÆÆÆ...... */
1436 $"0100 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1437 $"0000 0000 0000 0203 0021 DFFF FFFF FFFF" /* .........!ßÿÿÿÿÿ */
1438 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1439 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1440 $"FFFF E653 312D 231B 1512 1011 1010 1010" /* ÿÿæS1-#......... */
1441 $"1010 1010 1010 1010 1010 1010 1010 1010" /* ................ */
1442 $"1010 1010 1010 1010 1010 1010 1010 1010" /* ................ */
1443 $"1010 1010 1010 1010 1010 0E0C 0A08 0504" /* ............Â... */
1444 $"0301 0000 0000 0000 0000 0000 0000 0000" /* ................ */
1445 $"0000 0000 0002 0200 34D3 FFFF FFFF FFFF" /* ........4Óÿÿÿÿÿÿ */
1446 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1447 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1448 $"FFFF FFD6 6E40 312A 2522 2121 2121 2121" /* ÿÿÿÖn@1*%"!!!!!! */
1449 $"2121 2121 2121 2121 2121 2121 2121 2121" /* !!!!!!!!!!!!!!!! */
1450 $"2121 2121 2121 2121 2121 2121 2121 2121" /* !!!!!!!!!!!!!!!! */
1451 $"2121 2121 2121 2121 2120 1E1B 1814 0D00" /* !!!!!!!!! ...... */
1452 $"0203 0100 0000 0000 0000 0000 0000 0000" /* ................ */
1453 $"0000 0000 0102 006C F4FF FFFF FFFF FFFF" /* .......lôÿÿÿÿÿÿÿ */
1454 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1455 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1456 $"FFFF FFFF FEE8 DAD9 D9D8 D8D8 D8D8 D8D8" /* ÿÿÿÿþèÚÙÙØØØØØØØ */
1457 $"D8D8 D8D8 D8D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* ØØØØØØØØØØØØØØØØ */
1458 $"D8D8 D8D8 D8D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* ØØØØØØØØØØØØØØØØ */
1459 $"D8D8 D8D8 D8D8 D8D8 D8D8 D7D7 D6D5 D5A9" /* ØØØØØØØØØØ××ÖÕÕ© */
1460 $"1E00 0200 0000 0000 0000 0000 0000 0000" /* ................ */
1461 $"0000 0001 0300 71FF FFFF FFFF FFFF FFFF" /* ......qÿÿÿÿÿÿÿÿÿ */
1462 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1463 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1464 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1465 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1466 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1467 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1468 $"8500 0402 0100 0000 0000 0000 0000 0000" /* …............... */
1469 $"0001 0203 0317 E1FF FFFF FFFF FFFF FFFF" /* ......áÿÿÿÿÿÿÿÿÿ */
1470 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1471 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1472 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1473 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1474 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1475 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1476 $"9E03 0905 0302 0100 0000 0000 0000 0000" /* ž.Æ............. */
1477 $"0201 0000 002C E4E8 E8E9 EAEB ECEC EDED" /* .....,äèèéêëììíí */
1478 $"EDED EDED EDED EDED EDED EDED EDED EDED" /* íííííííííííííííí */
1479 $"EDED EDED EDED EDED EDED EDED EDED EDED" /* íííííííííííííííí */
1480 $"EDED EDED ECEC ECEC ECEC ECEC ECEC ECEC" /* ííííìììììììììììì */
1481 $"ECEC ECEC ECEC ECEC ECEC ECEC ECEC ECEC" /* ìììììììììììììììì */
1482 $"ECEC ECEC ECEC ECEC ECEC ECEC ECEC ECEC" /* ìììììììììììììììì */
1483 $"ECEC ECEC ECEC ECEC ECEC ECEB EAE9 E8F4" /* ìììììììììììëêéèô */
1484 $"8E02 0400 0000 0202 0000 0000 0000 0002" /* Ž............... */
1485 $"0012 6297 A3A9 BBBD C0C4 C7CA CCCD CECE" /* ..b—£©»½ÀÄÇÊÌÍÎÎ */
1486 $"CECE CECE CECE CECE CECE CECE CECE CECE" /* ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ */
1487 $"CECE CECE CECE CECE CECE CECE CECE CECE" /* ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ */
1488 $"CECE CECE CDCD CCCC CCCC CBCB CBCB CBCB" /* ÎÎÎÎÍÍÌÌÌÌËËËËËË */
1489 $"CBCB CBCB CBCB CBCB CBCB CBCB CBCB CBCB" /* ËËËËËËËËËËËËËËËË */
1490 $"CBCB CBCB CBCB CBCB CBCB CBCB CBCB CBCB" /* ËËËËËËËËËËËËËËËË */
1491 $"CBCB CBCB CBCB CBCB CBCB CBC9 C8C5 C2C0" /* ËËËËËËËËËËËÉÈÅÂÀ */
1492 $"B5A6 A5A1 8236 0002 0100 0000 0000 0100" /* µ¦¥¡‚6.......... */
1493 $"35DC FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* 5Üÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1494 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1495 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1496 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1497 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1498 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1499 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1500 $"FFFF FFFF FFFE 8901 0101 0000 0000 001B" /* ÿÿÿÿÿþ‰......... */
1501 $"DFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1502 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1503 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1504 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1505 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1506 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1507 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1508 $"FFFF FFFF FFFF FF73 0002 0000 0001 0082" /* ÿÿÿÿÿÿÿs.......‚ */
1509 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1510 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1511 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1512 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1513 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1514 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1515 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1516 $"FFFF FFFF FFFF FFE4 1800 0100 0001 00C0" /* ÿÿÿÿÿÿÿä.......À */
1517 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1518 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1519 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1520 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1521 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1522 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1523 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1524 $"FFFF FFFF FFFF FFFF 4500 0200 0002 02C6" /* ÿÿÿÿÿÿÿÿE......Æ */
1525 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1526 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1527 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1528 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1529 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1530 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1531 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1532 $"FFFF FFFF FFFF FFFF 4C00 0200 0103 00B3" /* ÿÿÿÿÿÿÿÿL......³ */
1533 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1534 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1535 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1536 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1537 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1538 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1539 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1540 $"FFFF FFFF FFFF FFFE 3D00 0300 0104 009C" /* ÿÿÿÿÿÿÿþ=......œ */
1541 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1542 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1543 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1544 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1545 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1546 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1547 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1548 $"FFFF FFFF FFFF FFF4 2C04 0400 0105 0087" /* ÿÿÿÿÿÿÿô,......‡ */
1549 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1550 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1551 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1552 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1553 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1554 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1555 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1556 $"FFFF FFFF FFFF FFE8 2007 0400 0105 0073" /* ÿÿÿÿÿÿÿè ......s */
1557 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1558 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1559 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1560 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1561 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1562 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1563 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1564 $"FFFF FFFF FFFF FFD9 1808 0400 0105 015C" /* ÿÿÿÿÿÿÿÙ.......\ */
1565 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1566 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1567 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1568 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1569 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1570 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1571 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1572 $"FFFF FFFF FFFF FFC7 0E0A 0401 0105 034A" /* ÿÿÿÿÿÿÿÇ.Â.....J */
1573 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1574 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1575 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1576 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1577 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1578 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1579 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1580 $"FFFF FFFF FFFF FFB5 0A0A 0402 0105 043C" /* ÿÿÿÿÿÿÿµÂÂ.....< */
1581 $"FBFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1582 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1583 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1584 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1585 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1586 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1587 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1588 $"FFFF FFFF FFFF FFA1 080A 0402 0105 062B" /* ÿÿÿÿÿÿÿ¡.Â.....+ */
1589 $"F2FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1590 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1591 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1592 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1593 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1594 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1595 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1596 $"FFFF FFFF FFFF FF8E 050A 0402 0104 0720" /* ÿÿÿÿÿÿÿŽ.Â..... */
1597 $"E7FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1598 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1599 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1600 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1601 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1602 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1603 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1604 $"FFFF FFFF FFFF FF7C 0609 0300 0104 0817" /* ÿÿÿÿÿÿÿ|.Æ...... */
1605 $"D8FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* Øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1606 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1607 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1608 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1609 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1610 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1611 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1612 $"FFFF FFFF FFFF FF68 0709 0300 0104 0A0E" /* ÿÿÿÿÿÿÿh.Æ....Â. */
1613 $"C8FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* Èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1614 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1615 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1616 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1617 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1618 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1619 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1620 $"FFFF FFFF FFFF FF55 0809 0300 0104 0A0A" /* ÿÿÿÿÿÿÿU.Æ....ÂÂ */
1621 $"B7FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1622 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1623 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1624 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1625 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1626 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1627 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1628 $"FFFF FFFF FFFF FF47 0909 0300 0104 0A07" /* ÿÿÿÿÿÿÿGÆÆ....Â. */
1629 $"A4FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1630 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1631 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1632 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1633 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1634 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1635 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1636 $"FFFF FFFF FFFF F638 0B08 0300 0004 0A05" /* ÿÿÿÿÿÿö8......Â. */
1637 $"91FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ‘ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1638 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1639 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1640 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1641 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1642 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1643 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1644 $"FFFF FFFF FFFF EE2B 0C08 0300 0004 0905" /* ÿÿÿÿÿÿî+......Æ. */
1645 $"81FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1646 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1647 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1648 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1649 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1650 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1651 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1652 $"FFFF FFFF FFFF E224 0D08 0300 0003 0906" /* ÿÿÿÿÿÿâ$......Æ. */
1653 $"71FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1654 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1655 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1656 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1657 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1658 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1659 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1660 $"FFFF FFFF FFFF D51C 0E08 0300 0003 0907" /* ÿÿÿÿÿÿÕ.......Æ. */
1661 $"5EFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1662 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1663 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1664 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1665 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1666 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1667 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1668 $"FFFF FFFF FFFF C714 0F07 0200 0003 0908" /* ÿÿÿÿÿÿÇ.......Æ. */
1669 $"4FFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1670 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1671 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1672 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1673 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1674 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1675 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1676 $"FFFF FFFF FFFF B811 0E07 0200 0003 090A" /* ÿÿÿÿÿÿ¸.......ÆÂ */
1677 $"43FD FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* Cýÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1678 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1679 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1680 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1681 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1682 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1683 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1684 $"FFFF FFFF FFFF A70E 0F07 0200 0003 080B" /* ÿÿÿÿÿÿ§......... */
1685 $"34F5 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* 4õÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1686 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1687 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1688 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1689 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1690 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1691 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1692 $"FFFF FFFF FFFF 960C 0E06 0200 0002 080D" /* ÿÿÿÿÿÿ–......... */
1693 $"29EB FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* )ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1694 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1695 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1696 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1697 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1698 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1699 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1700 $"FFFF FFFF FFFF 850C 0E07 0200 0003 080E" /* ÿÿÿÿÿÿ…......... */
1701 $"22E0 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* "àÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1702 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1703 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1704 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1705 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1706 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1707 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1708 $"FFFF FFFF FFFF 760D 0E06 0200 0003 080F" /* ÿÿÿÿÿÿv......... */
1709 $"1BD3 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .Óÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1710 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1711 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1712 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1713 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1714 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1715 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1716 $"FFFF FFFF FFFF 650E 0E06 0200 0002 080F" /* ÿÿÿÿÿÿe......... */
1717 $"14C7 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .Çÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1718 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1719 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1720 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1721 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1722 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1723 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1724 $"FFFF FFFF FFFF 580E 0D06 0200 0002 070F" /* ÿÿÿÿÿÿX......... */
1725 $"11B9 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1726 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1727 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1728 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1729 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1730 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1731 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1732 $"FFFF FFFF FFFF 4E10 0D06 0100 0002 070F" /* ÿÿÿÿÿÿN......... */
1733 $"10AB FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .«ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1734 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1735 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1736 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1737 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1738 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1739 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1740 $"FFFF FFFF FFF8 4211 0D06 0200 0002 070F" /* ÿÿÿÿÿøB......... */
1741 $"0D9B FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1742 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1743 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1744 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1745 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1746 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1747 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1748 $"FFFF FFFF FFF1 3513 0D06 0200 0002 080F" /* ÿÿÿÿÿñ5......... */
1749 $"0C8D FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1750 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1751 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1752 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1753 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1754 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1755 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1756 $"FFFF FFFF FFE9 2E13 0D05 0100 0002 070F" /* ÿÿÿÿÿé.......... */
1757 $"0D81 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1758 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1759 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1760 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1761 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1762 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1763 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1764 $"FFFF FFFF FFDF 2914 0D06 0100 0002 070F" /* ÿÿÿÿÿß)......... */
1765 $"0E73 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .sÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1766 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1767 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1768 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1769 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1770 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1771 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1772 $"FFFF FFFF FFD4 2215 0C06 0100 0002 070F" /* ÿÿÿÿÿÔ"......... */
1773 $"0F64 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .dÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1774 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1775 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1776 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1777 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1778 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1779 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1780 $"FFFF FFFF FFC9 1C16 0C05 0100 0002 070F" /* ÿÿÿÿÿÉ.......... */
1781 $"1058 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .Xÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1782 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1783 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1784 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1785 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1786 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1787 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1788 $"FFFF FFFF FFBD 1A15 0C05 0100 0002 070F" /* ÿÿÿÿÿ½.......... */
1789 $"114F FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1790 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1791 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1792 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1793 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1794 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1795 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1796 $"FFFF FFFF FFB2 1815 0C05 0100 0002 070E" /* ÿÿÿÿÿ².......... */
1797 $"1246 FAFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .Fúÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1798 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1799 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1800 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1801 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1802 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1803 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1804 $"FFFF FFFF FFA5 1615 0C05 0100 0002 070E" /* ÿÿÿÿÿ¥.......... */
1805 $"133B F4FF FFFF FFFF FFFF FFFF FFFF FFFF" /* .;ôÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1806 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1807 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1808 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1809 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1810 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1811 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1812 $"FFFF FFFF FF98 1515 0C05 0100 0002 060E" /* ÿÿÿÿÿ˜.......... */
1813 $"1533 EEFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .3îÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1814 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1815 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1816 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1817 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1818 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1819 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1820 $"FFFF FFFF FF8D 1515 0B05 0100 0002 070E" /* ÿÿÿÿÿ.......... */
1821 $"152F E6FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ./æÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1822 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1823 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1824 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1825 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1826 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1827 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1828 $"FFFF FFFF FF82 1615 0B05 0100 0002 070E" /* ÿÿÿÿÿ‚.......... */
1829 $"1629 DDFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .)Ýÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1830 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1831 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1832 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1833 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1834 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1835 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1836 $"FFFF FFFF FF77 1615 0B05 0100 0002 060E" /* ÿÿÿÿÿw.......... */
1837 $"1624 D5FF FFFF FFFF FFFF FFFF FFFF FFFF" /* .$Õÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1838 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1839 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1840 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1841 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1842 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1843 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1844 $"FFFF FFFF FF6B 1715 0B05 0100 0002 060E" /* ÿÿÿÿÿk.......... */
1845 $"1720 CCFF FFFF FFFF FFFF FFFF FFFF FFFF" /* . Ìÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1846 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1847 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1848 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1849 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1850 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1851 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1852 $"FFFF FFFF FF61 1815 0B05 0100 0002 060E" /* ÿÿÿÿÿa.......... */
1853 $"181D C3FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..Ãÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1854 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1855 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1856 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1857 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1858 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1859 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1860 $"FFFF FFFF FF5B 1914 0B05 0100 0002 060E" /* ÿÿÿÿÿ[.......... */
1861 $"181C BAFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..ºÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1862 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1863 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1864 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1865 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1866 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1867 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1868 $"FFFF FFFF FE54 1A14 0B05 0100 0002 070E" /* ÿÿÿÿþT.......... */
1869 $"181B B0FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..°ÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1870 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1871 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1872 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1873 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1874 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1875 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1876 $"FFFF FFFF F94C 1B15 0B04 0100 0002 060E" /* ÿÿÿÿùL.......... */
1877 $"181A A6FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..¦ÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1878 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1879 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1880 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1881 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1882 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1883 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1884 $"FFFF FFFF F544 1C15 0B05 0100 0002 070E" /* ÿÿÿÿõD.......... */
1885 $"1819 9DFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..ÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1886 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1887 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1888 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1889 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1890 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1891 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1892 $"FFFF FFFF F13D 1D14 0B04 0100 0002 060E" /* ÿÿÿÿñ=.......... */
1893 $"1819 95FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..•ÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1894 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1895 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1896 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1897 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1898 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1899 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1900 $"FFFF FFFF EB3A 1D14 0B05 0100 0002 070E" /* ÿÿÿÿë:.......... */
1901 $"1819 8EFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..Žÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1902 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1903 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1904 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1905 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1906 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1907 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1908 $"FFFF FFFF E537 1E14 0B05 0100 0002 070E" /* ÿÿÿÿå7.......... */
1909 $"181A 86FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..†ÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1910 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1911 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1912 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1913 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1914 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1915 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1916 $"FFFF FFFF DF34 1E14 0B05 0100 0002 070E" /* ÿÿÿÿß4.......... */
1917 $"181B 7EFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..~ÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1918 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1919 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1920 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1921 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1922 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1923 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1924 $"FFFF FFFF D930 1F15 0B05 0100 0002 070E" /* ÿÿÿÿÙ0.......... */
1925 $"181B 78FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..xÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1926 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1927 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1928 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1929 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1930 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1931 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1932 $"FFFF FFFF D32D 1F15 0B05 0100 0002 070F" /* ÿÿÿÿÓ-.......... */
1933 $"191C 71FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..qÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1934 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1935 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1936 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1937 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1938 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1939 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1940 $"FFFF FFFF CE29 2015 0B05 0100 0002 070F" /* ÿÿÿÿÎ) ......... */
1941 $"191D 6AFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..jÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1942 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1943 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1944 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1945 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1946 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1947 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1948 $"FFFF FFFF C828 2015 0B05 0100 0002 070F" /* ÿÿÿÿÈ( ......... */
1949 $"191D 65FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..eÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1950 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1951 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1952 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1953 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1954 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1955 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1956 $"FFFF FFFF C328 2015 0B05 0100 0002 070F" /* ÿÿÿÿÃ( ......... */
1957 $"191E 61FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..aÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1958 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1959 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1960 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1961 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1962 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1963 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1964 $"FFFF FFFF BE28 2115 0B05 0100 0002 070F" /* ÿÿÿÿ¾(!......... */
1965 $"191F 5DFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..]ÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1966 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1967 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1968 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1969 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1970 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1971 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1972 $"FFFF FFFF B827 2115 0C05 0100 0002 070F" /* ÿÿÿÿ¸'!......... */
1973 $"1920 5AFE FFFF FFFF FFFF FFFF FFFF FFFF" /* . Zþÿÿÿÿÿÿÿÿÿÿÿÿ */
1974 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1975 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1976 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1977 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1978 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1979 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1980 $"FFFF FFFF B427 2115 0C05 0100 0003 0710" /* ÿÿÿÿ´'!......... */
1981 $"1A21 58FD FFFF FFFF FFFF FFFF FFFF FFFF" /* .!Xýÿÿÿÿÿÿÿÿÿÿÿÿ */
1982 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1983 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1984 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1985 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1986 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1987 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1988 $"FFFF FFFF B026 2115 0C05 0100 0003 0810" /* ÿÿÿÿ°&!......... */
1989 $"1A21 55FB FFFF FFFF FFFF FFFF FFFF FFFF" /* .!Uûÿÿÿÿÿÿÿÿÿÿÿÿ */
1990 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1991 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1992 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1993 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1994 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1995 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1996 $"FFFF FFFF AC26 2116 0C05 0200 0003 0810" /* ÿÿÿÿ¬&!......... */
1997 $"1A22 52F9 FFFF FFFF FFFF FFFF FFFF FFFF" /* ."Rùÿÿÿÿÿÿÿÿÿÿÿÿ */
1998 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
1999 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2000 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2001 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2002 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2003 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2004 $"FFFF FFFF A826 2215 0C05 0100 0003 0810" /* ÿÿÿÿ¨&"......... */
2005 $"1A23 4FF7 FFFF FFFF FFFF FFFF FFFF FFFF" /* .#O÷ÿÿÿÿÿÿÿÿÿÿÿÿ */
2006 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2007 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2008 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2009 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2010 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2011 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2012 $"FFFF FFFF A426 2316 0D06 0200 0003 0811" /* ÿÿÿÿ¤&#......... */
2013 $"1B24 4DF6 FFFF FFFF FFFF FFFF FFFF FFFF" /* .$Möÿÿÿÿÿÿÿÿÿÿÿÿ */
2014 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2015 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2016 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2017 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2018 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2019 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2020 $"FFFF FFFF A126 2316 0D06 0200 0003 0911" /* ÿÿÿÿ¡&#.......Æ. */
2021 $"1C25 4CF5 FFFF FFFF FFFF FFFF FFFF FFFF" /* .%Lõÿÿÿÿÿÿÿÿÿÿÿÿ */
2022 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2023 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2024 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2025 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2026 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2027 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2028 $"FFFF FFFF 9F26 2317 0D06 0200 0003 0912" /* ÿÿÿÿŸ&#.......Æ. */
2029 $"1C25 4CF5 FFFF FFFF FFFF FFFF FFFF FFFF" /* .%Lõÿÿÿÿÿÿÿÿÿÿÿÿ */
2030 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2031 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2032 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2033 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2034 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2035 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2036 $"FFFF FFFF 9E26 2317 0D06 0200 0003 0912" /* ÿÿÿÿž&#.......Æ. */
2037 $"1C26 4BF4 FFFF FFFF FFFF FFFF FFFF FFFF" /* .&Kôÿÿÿÿÿÿÿÿÿÿÿÿ */
2038 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2039 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2040 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2041 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2042 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2043 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2044 $"FFFF FFFF 9D27 2317 0D06 0200 0004 0912" /* ÿÿÿÿ'#.......Æ. */
2045 $"1C26 4AF3 FFFF FFFF FFFF FFFF FFFF FFFF" /* .&Jóÿÿÿÿÿÿÿÿÿÿÿÿ */
2046 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2047 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2048 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2049 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2050 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2051 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2052 $"FFFF FFFF 9C27 2417 0D06 0200 0104 0912" /* ÿÿÿÿœ'$.......Æ. */
2053 $"1C26 47F2 FFFF FFFF FFFF FFFF FFFF FFFF" /* .&Gòÿÿÿÿÿÿÿÿÿÿÿÿ */
2054 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2055 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2056 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2057 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2058 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2059 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2060 $"FFFF FFFF 9A27 2417 0D06 0200 0103 0911" /* ÿÿÿÿš'$.......Æ. */
2061 $"1B27 37D1 FFFF FFFF FFFF FFFF FFFF FFFF" /* .'7Ñÿÿÿÿÿÿÿÿÿÿÿÿ */
2062 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2063 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2064 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2065 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2066 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2067 $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ */
2068 $"FFFF FFFF 7329 2316 0D06 0200 0003 0810" /* ÿÿÿÿs)#......... */
2069 $"1A27 2F59 B7C6 C6C7 C7C7 C7C7 C7C7 C7C7" /* .'/Y·ÆÆÇÇÇÇÇÇÇÇÇ */
2070 $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ */
2071 $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ */
2072 $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ */
2073 $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ */
2074 $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ */
2075 $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ */
2076 $"C7C5 C689 372D 2015 0C06 0200 0003 070E" /* ÇÅƉ7- ......... */
2077 $"1723 3037 3C46 4C4F 5050 5050 5050 5050" /* .#07<FLOPPPPPPPP */
2078 $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
2079 $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
2080 $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
2081 $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
2082 $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
2083 $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
2084 $"4D49 4138 352A 1D13 0A05 0100 0003 060C" /* MIA85*..Â....... */
2085 $"141E 2934 3D44 494C 4D4E 4E4E 4E4E 4E4E" /* ..)4=DILMNNNNNNN */
2086 $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E" /* NNNNNNNNNNNNNNNN */
2087 $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E" /* NNNNNNNNNNNNNNNN */
2088 $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E" /* NNNNNNNNNNNNNNNN */
2089 $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E" /* NNNNNNNNNNNNNNNN */
2090 $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E" /* NNNNNNNNNNNNNNNN */
2091 $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4D" /* NNNNNNNNNNNNNNNM */
2092 $"4B46 4039 2F24 1910 0904 0100 0002 050A" /* KF@9/$..Æ...... */
2093 $"1018 212B 3339 3D40 4142 4242 4242 4242" /* ..!+39=@ABBBBBBB */
2094 $"4242 4242 4242 4242 4242 4242 4242 4242" /* BBBBBBBBBBBBBBBB */
2095 $"4242 4242 4242 4242 4242 4242 4242 4242" /* BBBBBBBBBBBBBBBB */
2096 $"4242 4242 4242 4242 4242 4242 4242 4242" /* BBBBBBBBBBBBBBBB */
2097 $"4242 4242 4242 4242 4242 4242 4242 4242" /* BBBBBBBBBBBBBBBB */
2098 $"4242 4242 4242 4242 4242 4242 4242 4242" /* BBBBBBBBBBBBBBBB */
2099 $"4242 4242 4242 4242 4242 4242 4242 4140" /* BBBBBBBBBBBBBBA@ */
2100 $"3F3B 352F 261D 140D 0703 0100 0002 0407" /* ?;5/&........... */
2101 $"0C12 1920 272C 2F32 3233 3333 3333 3333" /* ... ',/223333333 */
2102 $"3333 3333 3333 3333 3333 3333 3333 3333" /* 3333333333333333 */
2103 $"3333 3333 3333 3333 3333 3333 3333 3333" /* 3333333333333333 */
2104 $"3333 3333 3333 3333 3333 3333 3333 3333" /* 3333333333333333 */
2105 $"3333 3333 3333 3333 3333 3333 3333 3333" /* 3333333333333333 */
2106 $"3333 3333 3333 3333 3333 3333 3333 3333" /* 3333333333333333 */
2107 $"3333 3333 3333 3333 3333 3333 3333 3332" /* 3333333333333332 */
2108 $"302D 2924 1D16 0F09 0502 0100 0001 0305" /* 0-)$...Æ........ */
2109 $"080D 1217 1C1F 2223 2425 2525 2525 2525" /* ......"#$%%%%%%% */
2110 $"2525 2525 2525 2525 2525 2525 2525 2525" /* %%%%%%%%%%%%%%%% */
2111 $"2525 2525 2525 2525 2525 2525 2525 2525" /* %%%%%%%%%%%%%%%% */
2112 $"2525 2525 2525 2525 2525 2525 2525 2525" /* %%%%%%%%%%%%%%%% */
2113 $"2525 2525 2525 2525 2525 2525 2525 2525" /* %%%%%%%%%%%%%%%% */
2114 $"2525 2525 2525 2525 2525 2525 2525 2525" /* %%%%%%%%%%%%%%%% */
2115 $"2525 2525 2525 2525 2525 2525 2525 2524" /* %%%%%%%%%%%%%%%$ */
2116 $"2221 1E19 1510 0B07 0402 0000 0000 0103" /* "!.............. */
2117 $"0609 0C10 1315 1718 1919 1919 1919 1919" /* .Æ.............. */
2118 $"1919 1919 1919 1919 1919 1919 1919 1919" /* ................ */
2119 $"1919 1919 1919 1919 1919 1919 1919 1919" /* ................ */
2120 $"1919 1919 1919 1919 1919 1919 1919 1919" /* ................ */
2121 $"1919 1919 1919 1919 1919 1919 1919 1919" /* ................ */
2122 $"1919 1919 1919 1919 1919 1919 1919 1919" /* ................ */
2123 $"1919 1919 1919 1919 1919 1919 1919 1918" /* ................ */
2124 $"1716 1411 0E0A 0704 0201 0000 0000 0002" /* .....Â.......... */
2125 $"0305 0709 0B0D 0E0F 0F0F 0F0F 0F0F 0F0F" /* ...Æ............ */
2126 $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
2127 $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
2128 $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
2129 $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
2130 $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
2131 $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
2132 $"0F0D 0C0A 0806 0402 0100 0000 0000 0001" /* ...Â............ */
2133 $"0103 0304 0607 0708 0808 0808 0808 0808" /* ................ */
2134 $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
2135 $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
2136 $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
2137 $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
2138 $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
2139 $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
2140 $"0707 0605 0403 0201 0000 0000 0000 0000" /* ................ */
2141 $"0001 0102 0202 0203 0303 0303 0303 0303" /* ................ */
2142 $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
2143 $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
2144 $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
2145 $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
2146 $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
2147 $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
2148 $"0202 0202 0201 0100 0000 0000 0000 0000" /* ................ */
2149 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2150 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2151 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2152 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2153 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2154 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2155 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2156 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2157 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2158 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2159 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2160 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2161 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2162 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2163 $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
2164 $"0000 0000 0000 0000 0000 0000 6963 3038" /* ............ic08 */
2165 $"0000 5CBD 0000 000C 6A50 2020 0D0A 870A" /* ..\½....jP .‡ */
2166 $"0000 0014 6674 7970 6A70 3220 0000 0000" /* ....ftypjp2 .... */
2167 $"6A70 3220 0000 004F 6A70 3268 0000 0016" /* jp2 ...Ojp2h.... */
2168 $"6968 6472 0000 0100 0000 0100 0004 0707" /* ihdr............ */
2169 $"0100 0000 000F 636F 6C72 0100 0000 0000" /* ......colr...... */
2170 $"1000 0000 2263 6465 6600 0400 0000 0000" /* ...."cdef....... */
2171 $"0100 0300 0100 0000 0100 0000 0200 0200" /* ................ */
2172 $"0000 0300 0000 006A 7032 63FF 4FFF 5100" /* .......jp2cÿOÿQ. */
2173 $"3200 0000 0001 0000 0001 0000 0000 0000" /* 2............... */
2174 $"0000 0000 0001 0000 0001 0000 0000 0000" /* ................ */
2175 $"0000 0000 0407 0101 0701 0107 0101 0701" /* ................ */
2176 $"01FF 5200 0C00 0000 0101 0504 0400 01FF" /* .ÿR............ÿ */
2177 $"5C00 1320 5058 5860 5858 6058 5860 5858" /* \.. PXX`XX`XX`XX */
2178 $"5850 5058 FF64 0011 0001 4B61 6B61 6475" /* XPPXÿd....Kakadu */
2179 $"2D76 352E 322E 31FF 9000 0A00 0000 005B" /* -v5.2.1ÿ.Â....[ */
2180 $"D000 01FF 93CF C100 1507 F18D 1991 E793" /* Ð..ÿ“ÏÁ...ñ.‘ç“ */
2181 $"D8B4 6B7C 459C 4F68 E4BF E0FF 0D3D C2DF" /* Ø´k|EœOhä¿àÿ.=Âß */
2182 $"FC16 8F7F 6C3A 7FEA ACD5 8632 D1AD 37A6" /* ü..l:.ê¬Õ†2Ñ­7¦ */
2183 $"22E3 4753 734F 3BFA 0372 1596 A8F1 7183" /* "ãGSsO;ú.r.–¨ñqƒ */
2184 $"2F17 0A65 C5C2 6A8E C0F9 1000 39CE 9180" /* /.ÂeÅÂjŽÀù..9Α€ */
2185 $"AE4A F551 B521 2839 FEE4 4D31 9F98 9F17" /* ®JõQµ!(9þäM1Ÿ˜Ÿ. */
2186 $"29F2 C91D 3B35 397E 15A1 8246 C3EA 3107" /* )òÉ.;59~.¡‚FÃê1. */
2187 $"5630 A744 5105 404A C843 0AE4 304B 4FE9" /* V0§DQ.@JÈCÂä0KOé */
2188 $"81E4 4C91 DF64 6885 8D23 6517 B254 DE23" /* äL‘ßdh…#e.²TÞ# */
2189 $"6101 3C94 9245 923D 4F4C 0F02 784C F319" /* a.<”’E’=OL..xLó. */
2190 $"CFC0 FC11 7EC2 D9C4 3907 5FDC 553A F1E1" /* ÏÀü.~ÂÙÄ9._ÜU:ñá */
2191 $"F2BC 6420 59D8 7D25 F42A 5BA5 8E8E 7166" /* ò¼d YØ}%ô*[¥ŽŽqf */
2192 $"AD5D 5C91 CC75 1452 ACDA 64CA 3249 CCE3" /* ­]\‘Ìu.R¬ÚdÊ2IÌã */
2193 $"6874 83E2 633E 64E7 8159 4AA2 FD3C 638D" /* htƒâc>dçYJ¢ý<c */
2194 $"F978 C3ED 328F C0F2 1F81 A80C BB81 9421" /* ùxÃí2Àò.¨.»”! */
2195 $"980D F457 0EA7 7782 676F 2AB3 EE8F 99C2" /* ˜.ôW.§w‚go*³î™Â */
2196 $"2221 9D95 8C80 C3A8 91F3 4C08 6A03 DE45" /* "!•Œ€Ã¨‘óL.j.ÞE */
2197 $"A985 9B7B 9ED3 A9A4 D929 A97F A125 FE22" /* ©…›{žÓ©¤Ù)©.¡%þ" */
2198 $"A893 77F3 EF0F C15C 3969 A153 3A7C 3110" /* ¨“wóï.Á\9i¡S:|1. */
2199 $"7A9C 9227 D2F6 BCA8 1A04 0219 8F36 21B7" /* zœ’'Òö¼¨....6!· */
2200 $"B37C 2AB6 678A 1675 BA9E 03B4 53BA 33B9" /* ³|*¶gŠ.uºž.´Sº3¹ */
2201 $"06AD 96D8 BDBC BFC8 5134 C040 7EBA B756" /* .­–ؽ¼¿ÈQ4À@~º·V */
2202 $"E619 DC67 BC83 BB39 AA42 65E1 5BBC 45B4" /* æ.Üg¼ƒ»9ªBeá[¼E´ */
2203 $"ECB6 E6ED D098 3C9F E17B 876D A039 553E" /* ì¶æíИ<Ÿá{‡m 9U> */
2204 $"5CF9 2D3F 6F47 4854 7085 62C1 C65D C07C" /* \ù-?oGHTp…bÁÆ]À| */
2205 $"86A0 3E43 500F 90D0 4787 8CE8 726C 5109" /* † >CP.ÐG‡ŒèrlQÆ */
2206 $"FD68 8099 E8FE 2A66 2F02 78F5 C78B 6A34" /* ýh€™èþ*f/.xõÇ‹j4 */
2207 $"0A9E 25FE 0DE3 E3C8 BD7B 3530 98D5 CF03" /* ž%þ.ããȽ{50˜ÕÏ. */
2208 $"CE64 A57D 620C 87C5 65B4 7BE1 34BC 3058" /* Îd¥}b.‡Åe´{á4¼0X */
2209 $"572A 9EBF 5E0C 5A01 80A3 B334 DF5A E1B8" /* W*ž¿^.Z.€£³4ßZḠ*/
2210 $"08C3 5C30 2CC4 C1F5 1341 F516 40FA 8A00" /* .Ã\0,ÄÁõ.Aõ.@úŠ. */
2211 $"477D B516 AD2F 4DD3 BE8C 58F0 7C77 A236" /* G}µ.­/MÓ¾ŒXð|w¢6 */
2212 $"DD43 6611 D582 F050 DC31 59D0 194D A6FD" /* ÝCf.Õ‚ðPÜ1YÐ.M¦ý */
2213 $"652E FA16 4BA7 25FE 0DE3 E3D9 B950 06E2" /* e.ú.K§%þ.ããÙ¹P.â */
2214 $"3A8A DA86 827A 4C68 5798 55FC FD46 A583" /* :ŠÚ†‚zLhW˜UüýF¥ƒ */
2215 $"064D 8FB0 29D9 8DAD 53CC 5229 B675 ACAB" /* .M°)Ù­SÌR)¶u¬« */
2216 $"8EED 34BC 2F12 142E 446C 0DF7 0BC3 D6E7" /* Ží4¼/...Dl.÷.ÃÖç */
2217 $"A086 8D72 6AE7 9270 B97C D981 C7F1 C38A" /*  †rjç’p¹|ÙÇñÊ */
2218 $"47EE E585 FC19 FCE3 668C C7E0 471F 813C" /* Gîå…ü.üãfŒÇàG.< */
2219 $"3F02 0005 B422 0345 FC66 9A91 446D DDCA" /* ?...´".Eüfš‘DmÝÊ */
2220 $"449B CCDB 8E8F A0B8 3942 A8FC 6409 F7F3" /* D›ÌÛŽ ¸9B¨üdÆ÷ó */
2221 $"ED01 353A 2B01 1B0C 2939 619B 9890 94E7" /* í.5:+...)9a›˜”ç */
2222 $"5FDA 75F2 7323 BF3A 7AED 757E 42D6 C336" /* _Úuòs#¿:zíu~BÖÃ6 */
2223 $"E74E 6B5F 2D43 4780 CA1C C462 6507 4801" /* çNk_-CG€Ê.Äbe.H. */
2224 $"EDEF 5B2A 7297 8FC6 1E13 E7FA 56B5 4279" /* íï[*r—Æ..çúVµBy */
2225 $"5BB4 B307 F4DE E273 4FC3 E9B1 72C3 EDA2" /* [´³.ôÞâsOÃé±rÃí¢ */
2226 $"A3F0 A9E0 FB5D C018 B35C 8B45 CD63 99FE" /* £ð©àû]À.³\‹EÍc™þ */
2227 $"11FB 8993 21D1 BA8B 69EB 5CB9 F258 468F" /* .û‰“!Ѻ‹ië\¹òXF */
2228 $"73D4 6804 C6E6 045E AE54 954C D0E5 D836" /* sÔh.Ææ.^®T•LÐåØ6 */
2229 $"EA0D DB9A 2806 36FA B3E9 5973 789D 6591" /* ê.Ûš(.6ú³éYsxe‘ */
2230 $"1EC2 F271 E9E2 5681 C542 A2FC F4EF 8111" /* .ÂòqéâVÅB¢üôï. */
2231 $"59D5 FC91 9749 52A3 EA37 B239 4939 8625" /* YÕü‘—IR£ê7²9I9†% */
2232 $"F248 18D2 075A 80A1 8005 9ED2 437F C705" /* òH.Ò.Z€¡€.žÒC.Ç. */
2233 $"2BFD 308C F1F0 E1BC 8FDA F5D5 50D9 9770" /* +ý0Œñðá¼ÚõÕPÙ—p */
2234 $"7EF5 213F 91F6 5B8B 189D EE67 70EF F40A" /* ~õ!?‘ö[‹.îgpïôÂ */
2235 $"2E24 C54B F37D 4941 FCD2 7779 5C8B 59CC" /* .$ÅKó}IAüÒwy\‹YÌ */
2236 $"F284 3377 A496 0399 6F17 47AC B5EA 3A84" /* ò„3w¤–.™o.G¬µê:„ */
2237 $"844E DC13 D058 BE9F 1BBE 8CE0 E615 D2E1" /* „NÜ.ÐX¾Ÿ.¾Œàæ.Òá */
2238 $"88A5 9DA6 9FB4 4EDE B804 ED14 A7EA 54E0" /* ˆ¥¦Ÿ´NÞ¸.í.§êTà */
2239 $"5A87 311B 5E69 70F5 EDA3 2E78 8862 7603" /* Z‡1.^ipõí£.xˆbv. */
2240 $"7761 094D 4A69 5AB0 A9BB 3F4F 92BE 205B" /* waÆMJiZ°©»?O’¾ [ */
2241 $"A226 24D5 C8B2 CCF7 E064 31C7 E727 6E2C" /* ¢&$ÕȲÌ÷àd1Çç'n, */
2242 $"D6A1 347F 41CD 5F70 E1C0 1AFC 4FBC 81A9" /* Ö¡4.AÍ_páÀ.üO¼© */
2243 $"A884 F03A CD84 B581 1F03 A523 838B 8038" /* ¨„ð:Í„µ..¥#ƒ‹€8 */
2244 $"02F4 6DE8 98FC EDD6 B331 21F7 4AC5 A31E" /* .ômè˜üíÖ³1!÷JÅ£. */
2245 $"9EB4 E770 D465 386E 18A6 D1BE EF6D B008" /* ž´çpÔe8n.¦Ñ¾ïm°. */
2246 $"63E6 1066 1374 4D10 3270 8C7F F297 F91D" /* cæ.f.tM.2pŒ.ò—ù. */
2247 $"DA61 677B 29FD A878 B122 E33C 17E3 8ED1" /* Úag{)ý¨x±"ã<.ãŽÑ */
2248 $"FB8E 4407 8B82 32AD 1B50 09DF BDA8 C80E" /* ûŽD.‹‚2­.PÆß½¨È. */
2249 $"7E28 ED9D A005 4297 B9C1 8D66 CA77 C41D" /* ~(í .B—¹ÁfÊwÄ. */
2250 $"41C5 E3B3 F94D 96E5 1308 7C59 1EB8 0871" /* AÅã³ùM–å..|Y.¸.q */
2251 $"C7A4 FED7 47F2 F800 6889 A21D 1FF4 9E93" /* Ǥþ×Gòø.h‰¢..ôž“ */
2252 $"1321 7377 D96E 86F5 A0CB EB17 C77A 81C0" /* .!swÙn†õ Ëë.ÇzÀ */
2253 $"7C8D A01F 0E91 00F9 1D00 94FD 4D32 E5DB" /* | ..‘.ù..”ýM2åÛ */
2254 $"0482 DEB8 CF1C 792A EA3B DECA 4470 4898" /* .‚Þ¸Ï.y*ê;ÞÊDpH˜ */
2255 $"81C0 5457 FE66 63DD CAF3 0B98 08E1 DC3F" /* ÀTWþfcÝÊó.˜.áÜ? */
2256 $"CF68 7F31 9BEE 73EF A3A5 8D57 8969 EEC3" /* Ïh.1›îsW‰iîà */
2257 $"0F13 3ED9 390D FC4C B37F C4F7 01E4 B115" /* ..>Ù9.üL³.Ä÷.ä±. */
2258 $"E9F9 9526 00FA 10D0 0D64 4CC5 8481 D231" /* éù•&.ú.Ð.dLÅ„Ò1 */
2259 $"DE6D 483E 8046 7F58 5BD3 1FFC CF82 297A" /* ÞmH>€F.X[Ó.üÏ‚)z */
2260 $"88A1 7E78 0668 3222 9E8B A287 30A3 DB10" /* ˆ¡~x.h2"ž‹¢‡0£Û. */
2261 $"A77F A842 87FC 164E 92B8 96DF 4920 EEC2" /* §.¨B‡ü.N’¸–ßI î */
2262 $"47B6 83F1 F68F 9309 63CE FAAC 3C8F 9FCF" /* G¶ƒñö“ÆcÎú¬<ŸÏ */
2263 $"A166 9621 ADC0 0ABB 7F1A 7E3C A4AD 3755" /* ¡f–!­À»..~<¤­7U */
2264 $"E2D8 E26D CAD1 6F24 F808 BC0D E94B EEBC" /* âØâmÊÑo$ø.¼.éKî¼ */
2265 $"D601 C1F5 30C1 F53B C0FA 97C0 90E6 901B" /* Ö.Áõ0Áõ;Àú—Àæ. */
2266 $"71C2 1EAB 8A4C 52A4 4431 058C DFB9 4148" /* qÂ.«ŠLR¤D1.Œß¹AH */
2267 $"185C 1E93 01C6 82D3 C81B 6398 8173 189D" /* .\.“.Æ‚ÓÈ.c˜s. */
2268 $"F73C 4887 5155 0C95 0088 4C69 0A27 3F39" /* ÷<H‡QU.•.ˆLiÂ'?9 */
2269 $"8CCA 32D8 1FD7 A3F4 CDD8 6275 5E7E 3619" /* ŒÊ2Ø.×£ôÍØbu^~6. */
2270 $"8D18 68C9 D2C7 0FCB 18EA FB01 5A68 4A52" /* .hÉÒÇ.Ë.êû.ZhJR */
2271 $"3C08 5313 5ED2 9B7D 31B5 953C 2F92 22F7" /* <.S.^Ò›}1µ•</’"÷ */
2272 $"3764 04E8 A9A6 C747 8DFD 9730 01DD 82E1" /* 7d.試ÇGý—0.Ý‚á */
2273 $"B08A FD72 7C33 A9BF AFEA 7188 AC4B 2B45" /* °Šýr|3©¿¯êqˆ¬K+E */
2274 $"BBB2 7826 6704 5864 9BAF 91FC 6BD3 E9D7" /* »²x&g.Xd›¯‘ükÓé× */
2275 $"0E30 E428 0FB2 4836 F94F 7CB9 3723 72A2" /* .0ä(.²H6ùO|¹7#r¢ */
2276 $"AB4C C0EB ED8F 823B B8D6 C4A6 E4B5 B41C" /* «LÀëí‚;¸ÖĦ䵴. */
2277 $"B0FC 0171 880F E77C 1EF8 9645 A8B4 969A" /* °ü.qˆ.ç|.ø–E¨´–š */
2278 $"5420 86B9 71CE 0DE5 7A40 B41A DD85 6B30" /* T †¹qÎ.åz@´.Ý…k0 */
2279 $"F02A 3B61 92B4 7A95 269E BF9F DDB3 9FB7" /* ð*;a’´z•&ž¿ŸÝ³Ÿ· */
2280 $"746B 1514 C89D 391B F835 73B8 0F1C 2567" /* tk..È9.ø5s¸..%g */
2281 $"A0C2 6B37 DFCE 5F4C 1DCD FD79 5CDA A8FF" /*  Âk7ßÎ_L.Íýy\Ú¨ÿ */
2282 $"0603 9014 308F AEB3 EDB7 D721 1709 3897" /* ...0®³í·×!.Æ8— */
2283 $"D3AB 181E 53BE 4025 3492 41C2 5EC7 BFC0" /* Ó«..S¾@%4’AÂ^Ç¿À */
2284 $"EA12 19D0 6158 530B A57B 8A2B 8DFF 18AF" /* ê..ÐaXS.¥{Š+ÿ.¯ */
2285 $"7651 65CF CD26 3F05 987E 0760 9C3C E3A6" /* vQeÏÍ&?.˜~.`œ<㦠*/
2286 $"86C0 DAB4 C6ED 7F19 8034 85FE DA7E 7963" /* †ÀÚ´Æí..€4…þÚ~yc */
2287 $"AFF2 9CBE 6AAA B6BB B2D3 6F41 BB45 B1EB" /* ¯òœ¾jª¶»²ÓoA»E±ë */
2288 $"9CC2 8803 907A 5CE1 F2D9 AF69 FF22 7DE8" /* œÂˆ.z\áòÙ¯iÿ"}è */
2289 $"D328 C2A1 0F97 2EE2 9575 E0E6 A665 B85A" /* Ó(¡.—.â•uàæ¦e¸Z */
2290 $"C5D7 6FA0 FE24 BC68 9D74 6CEB C4F9 615C" /* Å×o þ$¼htlëÄùa\ */
2291 $"4F34 48B3 7A64 2540 B64F EFBE 8D0F E427" /* O4H³zd%@¶Oï¾.ä' */
2292 $"4CCA 6DB3 83AC C5F6 EE52 7A43 8172 41E4" /* LÊm³ƒ¬ÅöîRzCrAä */
2293 $"2CE3 DF2F 1496 97DE 6AD1 2FFF 7E52 D993" /* ,ãß/.–—ÞjÑ/ÿ~RÙ“ */
2294 $"8AF9 AAA3 B192 0991 BFAE 4829 001E 963B" /* Šùª£±’Æ‘¿®H)..–; */
2295 $"019C 8A5D 78E8 6A56 F78C B81A F4D0 6312" /* .œŠ]xèjV÷Œ¸.ôÐc. */
2296 $"C0C4 A9BF 7CA5 75D9 9C23 F3EA 4F39 B325" /* ÀÄ©¿|¥uÙœ#óêO9³% */
2297 $"F6DE 6EF4 7D48 A279 8EA9 5395 0FBC C63F" /* öÞnô}H¢yŽ©S•.¼Æ? */
2298 $"679F CE93 2206 ECA9 079C 2BB7 D094 6A7B" /* gŸÎ“".ì©.œ+·Ð”j{ */
2299 $"1077 277F 88A6 21AE 84C3 EDD4 38FC 36B2" /* .w'.ˆ¦!®„ÃíÔ8ü6² */
2300 $"1F86 8F00 8F56 8825 7713 9061 800A A4CD" /* .†.Vˆ%w.a€Â¤Í */
2301 $"E3D3 0F3C B0AC 0C87 E368 8544 F251 5C39" /* ãÓ.<°¬.‡ãh…DòQ\9 */
2302 $"7D90 1BEF 7805 D624 7380 0A19 E093 3058" /* }.ïx.Ö$s€Â.à“0X */
2303 $"1C90 467F 5C70 4932 3947 4A95 A450 36C8" /* .F.\pI29GJ•¤P6È */
2304 $"D4D5 CA85 9922 FA12 D0D8 96CA 9A2F 40A2" /* ÔÕÊ…™"ú.ÐØ–Êš/@¢ */
2305 $"F105 054F 8C56 C164 85B5 C4E6 3EAB D76A" /* ñ..OŒVÁd…µÄæ>«×j */
2306 $"A227 4F09 072C 4682 9B0F 995C 7551 94E7" /* ¢'OÆ.,F‚›.™\uQ”ç */
2307 $"419A 0098 0283 19E8 0489 687B 4F66 B74C" /* Aš.˜.ƒ.è.‰h{Of·L */
2308 $"7F59 C07A A552 B04D 628F E401 E55C A4ED" /* .YÀz¥R°Mbä.å\¤í */
2309 $"390F C34D 81BB 9F88 0C50 F50F 9FBD A377" /* 9.ÃM»Ÿˆ.Põ.Ÿ½£w */
2310 $"F538 3F9C E243 FF47 D346 87F2 444B C479" /* õ8?œâCÿGÓF‡òDKÄy */
2311 $"F6B3 1C76 5125 F487 0FAF 294A DA20 EC56" /* ö³.vQ%ô‡.¯)JÚ ìV */
2312 $"07AB DE07 14C2 1721 F3E0 D687 1F67 039D" /* .«Þ..Â.!óàÖ‡.g. */
2313 $"461F 0D82 9CAA B2D4 DFC6 6AA5 D31E 4D01" /* F..‚œª²ÔßÆj¥Ó.M. */
2314 $"5AC2 B2BD FD97 7D6E 00D1 7ADF 377C 15A7" /* Z²½ý—}n.Ñzß7|.§ */
2315 $"9681 C7B2 8168 D706 425B 35EF 7298 C053" /* –Dzh×.B[5ïr˜ÀS */
2316 $"E198 B5E2 B835 712B 1AD8 BA77 CF86 83A3" /* ᘵâ¸5q+.غwφƒ£ */
2317 $"B0B9 C5E6 F37A A3DE D93B 8EC8 132F A52A" /* °¹Åæóz£ÞÙ;ŽÈ./¥* */
2318 $"AB20 E166 F719 7130 6482 5BE2 605B D78E" /* « áf÷.q0d‚[â`[׎ */
2319 $"672D 7AE6 3906 DA75 0E3D 1962 8A60 9294" /* g-zæ9.Úu.=.bŠ`’” */
2320 $"1FC8 C0F3 216D 815D 4DDE 5DDE D8AB 3F9C" /* .ÈÀó!m]MÞ]ÞØ«?œ */
2321 $"7F9F 24B3 7BBF CCB9 2F80 19B6 70AE 1B3D" /* .Ÿ$³{¿Ì¹/€.¶p®.= */
2322 $"C71A 1F7C 81D2 639F 0D03 24EA D4B1 D351" /* Ç..|ÒcŸ..$êÔ±ÓQ */
2323 $"DD10 FBD5 EA3F 4957 A7ED 04C6 384D C10F" /* Ý.ûÕê?IW§í.Æ8MÁ. */
2324 $"8A55 0C03 694F 0D18 70D8 0AC3 33C0 17D1" /* ŠU..iO..pØÂÃ3À.Ñ */
2325 $"73BB E85F 5204 090F FDFE 8AC5 9AD6 22D5" /* s»è_R.Æ.ýþŠÅšÖ"Õ */
2326 $"CA31 A6DE EF44 D910 B34A 0E59 7866 536F" /* Ê1¦ÞïDÙ.³J.YxfSo */
2327 $"9B0B A341 3AB8 C06C C64F 3F86 8160 DFB9" /* ›.£A:¸ÀlÆO?†`ß¹ */
2328 $"A709 59D8 88C3 3316 9FFA F83F 5120 E40E" /* §ÆY؈Ã3.Ÿúø?Q ä. */
2329 $"4DEA C88F C418 37F6 4C0B 7606 9632 EEC5" /* MêÈÄ.7öL.v.–2îÅ */
2330 $"6380 FB25 A69F AAE2 0888 B722 008F 35CB" /* c€û%¦Ÿªâ.ˆ·".5Ë */
2331 $"F6A7 90BF D0DB 6367 A14B 5A86 EE98 FD18" /* ö§¿ÐÛcg¡KZ†î˜ý. */
2332 $"A629 1BAB 3BE2 920D E99D BEC2 88B4 F909" /* ¦).«;â’.é¾Âˆ´ùÆ */
2333 $"66B1 535D 3940 AF78 8200 0C46 142A EA2A" /* f±S]9@¯x‚..F.*ê* */
2334 $"A991 95E8 FD2B D30B 0E4A 76E2 A97B FAA7" /* ©‘•èý+Ó..Jvâ©{ú§ */
2335 $"97E2 9B30 54FA 5E97 962A 7E83 5711 A707" /* —â›0Tú^—–*~ƒW.§. */
2336 $"2A21 3729 2046 9C41 8282 A161 E5F6 AB24" /* *!7) FœA‚‚¡aåö«$ */
2337 $"3324 74CF 1AF6 C935 D884 0008 DC18 663C" /* 3$tÏ.öÉ5Ø„..Ü.f< */
2338 $"3A00 25E4 92D7 8F23 4C07 3C63 DB6E 4924" /* :.%ä’×#L.<cÛnI$ */
2339 $"7362 34C9 2F1D 105B 97E2 03BF 648F C21C" /* sb4É/..[—â.¿dÂ. */
2340 $"C6AC 3657 2C72 ADAA 2889 0623 6A5D ACEC" /* Ƭ6W,r­ª(‰.#j]¬ì */
2341 $"3210 738F 51F5 CC65 9EA9 7AD3 95CB B265" /* 2.sQõÌež©zӕ˲e */
2342 $"D54E 6E1D E2A7 2673 E6C2 C247 2FFD C10E" /* ÕNn.â§&sæÂÂG/ýÁ. */
2343 $"5FC5 C1E1 2511 5C8F 6063 92AB E4B9 8212" /* _ÅÁá%.\`c’«ä¹‚. */
2344 $"3643 6D53 2492 3E58 3E71 15E3 A3B7 AB2A" /* 6CmS$’>X>q.㣷«* */
2345 $"A998 FE5A 74DB 537A CE3D CD46 49B6 DB6D" /* ©˜þZtÛSzÎ=ÍFI¶Ûm */
2346 $"B6DB 6DB2 8EE9 1D6F 6480 8613 D8D2 7D8F" /* ¶Ûm²Žé.od€†.ØÒ} */
2347 $"5615 3EAB B25B 722D ECB8 ED12 70F2 BA06" /* V.>«²[r-ì¸í.pòº. */
2348 $"E5A2 45C1 547C F861 A7D5 8E1C 08BC 346B" /* å¢EÁT|øa§ÕŽ..¼4k */
2349 $"2730 C670 2FD8 F159 6ABE 2092 ED98 AC34" /* '0Æp/ØñYj¾ ’혬4 */
2350 $"B4CA 8565 90CF 0034 6E68 F777 9672 F29D" /* ´Ê…eÏ.4nh÷w–rò */
2351 $"4621 6E73 9C90 5C3D A8DB F5B0 CACF A63E" /* F!nsœ\=¨Ûõ°ÊϦ> */
2352 $"861E 8B9E F490 8E15 69BC A01D EF59 E898" /* †.‹žôŽ.i¼ .ïYè˜ */
2353 $"7040 B817 5AA9 BFB1 09A0 FE74 D2F7 BEA8" /* p@¸.Z©¿±Æ þtÒ÷¾¨ */
2354 $"A4F3 FEAC 38A4 409E B504 9CC9 EAA3 533B" /* ¤óþ¬8¤@žµ.œÉê£S; */
2355 $"153D F710 FC9E 2055 A395 C374 2AF9 E7C5" /* .=÷.üž U£•Ãt*ùçÅ */
2356 $"E1E8 7F74 3CDB D568 B606 A9D5 B7AE E207" /* áè.t<ÛÕh¶.©Õ·®â. */
2357 $"947E 2E65 1C27 336D 927A 4F86 5422 0E04" /* ”~.e.'3m’zO†T".. */
2358 $"42C7 668A 9403 EAB7 21A3 C9F1 18BC 5380" /* BÇfŠ”.ê·!£Éñ.¼S€ */
2359 $"BED7 07B5 F9B1 B798 8727 D54A 7A6E E493" /* ¾×.µù±·˜‡'ÕJznä“ */
2360 $"5271 F27D 7C35 DCEE D0BC CB31 C1FB 879F" /* Rqò}|5ÜîмË1Áû‡Ÿ */
2361 $"E074 9EB9 D7BE C9ED D2C8 BD00 C7FC D05B" /* àtž¹×¾ÉíÒȽ.ÇüÐ[ */
2362 $"2B2C 9647 A924 9F22 A06D 62B4 A946 77B7" /* +,–G©$Ÿ" mb´©Fw· */
2363 $"AD6D 60EE C841 997D A7E8 7AD2 AFA8 EEC4" /* ­m`îÈA™}§èzÒ¯¨îÄ */
2364 $"D61F FC06 FD7A E761 AA33 0F74 A08F 8E5B" /* Ö.ü.ýzçaª3.t Ž[ */
2365 $"B7C0 7C9A 1201 F0F5 6403 E4D0 60D8 92D9" /* ·À|š..ðõd.äÐ`Ø’Ù */
2366 $"84ED 064F 1B29 D7A7 1D77 F4B3 61D6 2651" /* „í.O.)ק.wô³aÖ&Q */
2367 $"329E 2CA5 53B4 956D 1061 3A3A A73B FC8E" /* 2ž,¥S´•m.a::§;üŽ */
2368 $"DD3C 60C9 F855 32FB 3C04 6287 50F7 6BB3" /* Ý<`ÉøU2û<.b‡P÷k³ */
2369 $"B84A 05A6 3145 A832 3BBC CA56 115B 9D7F" /* ¸J.¦1E¨2;¼ÊV.[. */
2370 $"8ADB 5660 429D 1FF6 4E6D 4899 EFDA 592F" /* ŠÛV`B.öNmH™ïÚY/ */
2371 $"19DC 9790 802A 1C17 2250 ADEC 0312 2C23" /* .Ü—€*.."P­ì..,# */
2372 $"223B 1EC8 482C 6E26 DD67 528F 7CDC 1841" /* ";.ÈH,n&ÝgR|Ü.A */
2373 $"DBCB CF9E 6D26 B564 4FD4 0AB5 DA0B ADE2" /* ÛËÏžm&µdOÔµÚ.­â */
2374 $"C129 D895 00FF 105B 0D0B F4DB 286A B347" /* Á)Ø•.ÿ.[..ôÛ(j³G */
2375 $"A261 30A9 0A9B 7A0D 585B 3991 3217 6FF7" /* ¢a0©Â›z.X[9‘2.o÷ */
2376 $"A368 D6A8 E862 161A 3584 613E 04D9 DBCB" /* £hÖ¨èb..5„a>.ÙÛË */
2377 $"4D96 66A3 B736 F802 D67A 309F 04E6 AFD8" /* M–f£·6ø.Öz0Ÿ.æ¯Ø */
2378 $"888E A8A5 4461 F1F0 1B6B 2DC4 0DFE C676" /* ˆŽ¨¥Dañð.k-Ä.þÆv */
2379 $"8D4E 3750 C3E6 C233 EFC5 368B 6113 5B53" /* N7PÃæÂ3ïÅ6‹a.[S */
2380 $"08E0 C259 1B88 AA0C 74B0 862E 1024 BB3F" /* .àÂY.ˆª.t°†..$»? */
2381 $"2816 B320 715C 5DFA 9FF0 CBC3 6A85 777A" /* (.³ q\]úŸðËÃj…wz */
2382 $"23CB F89B D813 6706 313E 2CF5 A163 0848" /* #Ëø›Ø.g.1>,õ¡c.H */
2383 $"94C9 3288 B556 53DD 2A45 2302 F28E 7ED1" /* ”É2ˆµVSÝ*E#.òŽ~Ñ */
2384 $"B5A0 67C8 53BB 4CE4 45D9 317F 92AB B13B" /* µ gÈS»LäEÙ1.’«±; */
2385 $"7246 F6DE 5348 49C9 42A1 CA62 64B0 209E" /* rFöÞSHIÉB¡Êbd° ž */
2386 $"43F2 DF7C 9BBC 097F C94A EA52 8D01 ADEF" /* Còß|›¼Æ.ÉJêR.­ï */
2387 $"5241 7C9B 2876 75F4 D748 AF9D 6FBB 3306" /* RA|›(vuô×H¯o»3. */
2388 $"0AD1 3953 6C99 5BB7 F1F5 1C1F BCE7 CA83" /* ÂÑ9Sl™[·ñõ..¼çʃ */
2389 $"08C1 6811 FBC5 AE18 343C C6F5 E515 F9CF" /* .Áh.ûÅ®.4<Æõå.ùÏ */
2390 $"FE48 C6E9 956E 6712 DDCA D62C 7F37 6DFE" /* þHÆé•ng.ÝÊÖ,.7mþ */
2391 $"2465 A8EE 1BAF E106 CA62 101F 0144 31DC" /* $e¨î.¯á.Êb...D1Ü */
2392 $"029E ED0F 9E47 F22E 0C17 0D31 E60B 1662" /* .ží.žGò....1æ..b */
2393 $"C1F5 5C90 7D5A 6D03 EAB6 C0C8 1653 E821" /* Áõ\}Zm.ê¶ÀÈ.Sè! */
2394 $"5860 ED0B C711 39E5 E5C8 268D 2246 E3FB" /* X`í.Ç.9ååÈ&"Fãû */
2395 $"68A4 3B12 A487 350D FE94 3722 65AC 949B" /* h¤;.¤‡5.þ”7"e¬”› */
2396 $"2526 7CD5 0E28 E093 CFE8 314C BE18 5B60" /* %&|Õ.(à“Ïè1L¾.[` */
2397 $"827E 154B 9609 2536 F890 A361 BA29 8211" /* ‚~.K–Æ%6ø£aº)‚. */
2398 $"AF42 BEC6 1BCB CE6D 2910 8083 C890 D7FF" /* ¯B¾Æ.ËÎm).€ƒÈ×ÿ */
2399 $"6F04 CEF4 F47C 0D92 00BD D90F 4095 0A48" /* o.Îôô|.’.½Ù.@•ÂH */
2400 $"4DC6 210C 351D 34A5 5FDA E576 1E1B 1684" /* MÆ!.5.4¥_Úåv...„ */
2401 $"F2A0 B30A 589C 1DBC 4831 E906 0D67 0CDD" /* ò ³ÂXœ.¼H1é..g.Ý */
2402 $"876B 994F 6D66 47DD AF40 7158 4385 738E" /* ‡k™OmfGݯ@qXC…sŽ */
2403 $"82F8 E637 9B5C 7389 0AA5 2A04 D105 5E88" /* ‚øæ7›\s‰Â¥*.Ñ.^ˆ */
2404 $"C2A2 2943 E125 6C2F 0AD1 1E5C AF1F CFF6" /* ¢)Cá%l/ÂÑ.\¯.Ïö */
2405 $"B39B C799 0F39 6151 6625 BB66 C3C3 418B" /* ³›Ç™.9aQf%»fÃÃA‹ */
2406 $"90A4 F6F7 BD30 7A04 88E6 0F8A 3F0B FF2C" /* ¤ö÷½0z.ˆæ.Š?.ÿ, */
2407 $"D18B 1D88 1442 EB54 A6FC D226 251A 015D" /* Ñ‹.ˆ.BëT¦üÒ&%..] */
2408 $"4DA8 32CA 371B 86EB 4E89 1415 9A41 6AD2" /* M¨2Ê7.†ëN‰..šAjÒ */
2409 $"1F0F 7656 41E5 B874 72E7 5F88 ABDA 28D7" /* ..vVAå¸trç_ˆ«Ú(× */
2410 $"37D5 EE40 567F F751 2591 01A3 03B9 EFCD" /* 7Õî@V.÷Q%‘.£.¹ïÍ */
2411 $"E0A8 8CC8 8C8E 0945 3036 453A 1787 59C4" /* ਌ȌŽÆE06E:.‡YÄ */
2412 $"B99C 02D2 D5F6 1B5E E34C 551E 8C43 9A20" /* ¹œ.ÒÕö.^ãLU.ŒCš */
2413 $"981D 0B44 C6D1 E6AA 2B92 5F33 8016 C4F1" /* ˜..DÆÑæª+’_3€.Äñ */
2414 $"7AA6 E605 4676 A533 1D38 6ADA 9BC6 2C13" /* z¦æ.Fv¥3.8jÚ›Æ,. */
2415 $"385A 3DCE 7E2E B9A1 81BB 27C6 AFF8 FF5D" /* 8Z=Î~.¹¡»'Ưøÿ] */
2416 $"A511 4C25 DC70 082C B597 3EC4 004C D4B8" /* ¥.L%Üp.,µ—>Ä.LÔ¸ */
2417 $"BE6A B79D EF70 2610 B57B FEFE 6ACC 9EEE" /* ¾j·ïp&.µ{þþjÌžî */
2418 $"B94A 73A8 4B30 C207 7391 789E C0FE 6992" /* ¹Js¨K0Â.s‘xžÀþi’ */
2419 $"AB13 E2AA FF53 4B22 A338 0EA3 B476 D732" /* «.âªÿSK"£8.£´v×2 */
2420 $"EDA3 2009 3422 B4AA 64DE 26C3 5894 D6DD" /* í£ Æ4"´ªdÞ&ÃX”ÖÝ */
2421 $"F7A9 5A3B 6F31 5D2C EC22 1FAC 928B 647F" /* ÷©Z;o1],ì".¬’‹d. */
2422 $"1600 A961 11C3 FD11 E594 81F9 E0AC 20D4" /* ..©a.Ãý.å”ùà¬ Ô */
2423 $"0DCA 9CE0 FF14 3BE3 3010 00E1 9DFE F0C8" /* .Êœàÿ.;ã0..áþðÈ */
2424 $"70E7 D3A5 A7F9 884E 6941 CBCB FEBE 0C27" /* pçÓ¥§ùˆNiAËËþ¾.' */
2425 $"B3F5 BAA4 3068 BFC1 DB20 1E5F 9E83 BF7D" /* ³õº¤0h¿ÁÛ ._žƒ¿} */
2426 $"8EA3 8FB0 F355 FF02 DED2 5CC8 2B4D 4DA5" /* Ž£°óUÿ.ÞÒ\È+MM¥ */
2427 $"8122 C96A CDAB B130 2D35 B73E 2EE9 0AA9" /* "ÉjÍ«±0-5·>.é© */
2428 $"7DB8 B81D 7B0A 776B DFF3 2B02 1F6A EF5B" /* }¸¸.{Âwkßó+..jï[ */
2429 $"E6A6 177F D8C0 1C3B A88C 2154 18F3 BFB3" /* æ¦..ØÀ.;¨Œ!T.ó¿³ */
2430 $"F7EF 1249 860B F87F 60D6 AE06 B5B2 7824" /* ÷ï.I†.ø.`Ö®.µ²x$ */
2431 $"E601 91D7 1436 80CF 054C 9691 1321 B299" /* æ.‘×.6€Ï.L–‘.!²™ */
2432 $"11F3 2BA3 51F6 447E 1BC0 28CB 666B 9BA0" /* .ó+£QöD~.À(Ëfk›  */
2433 $"425A E39B 066C 1B7C 340B 950A BDCC E05D" /* BZã›.l.|4.•Â½Ìà] */
2434 $"C8DC 568C BDC6 54E9 0AA2 2D89 6E22 37E4" /* ÈÜVŒ½ÆTé¢-‰n"7ä */
2435 $"3508 39CC EE8F 8EE6 F926 626B E33F 4A06" /* 5.9ÌîŽæù&bkã?J. */
2436 $"4CD1 AE16 9063 3119 5554 58CA BB53 4A73" /* LѮ.c1.UTXʻSJs */
2437 $"AA2B 2A71 B86B 3E95 BED6 D9D2 9D59 3E60" /* ª+*q¸k>•¾ÖÙÒY>` */
2438 $"C5D1 FA4C E6A7 880F 30D8 A679 6467 697E" /* ÅÑúL槈.0ئydgi~ */
2439 $"F327 EAA4 E0D1 01F9 9B74 AAA1 6CDD 7DA7" /* ó'ê¤àÑ.ù›tª¡lÝ}§ */
2440 $"D2AB C9CB 63D6 D3DF C778 C6ED 71A5 0571" /* Ò«ÉËcÖÓßÇxÆíq¥.q */
2441 $"C7E1 4EC7 E16C 43F0 75B1 3C9E 91EA AAAC" /* ÇáNÇálCðu±<ž‘ꪬ */
2442 $"9A2E A47E 8DF0 873E 2275 3F71 F986 DF3D" /* š.¤~ð‡>"u?qù†ß= */
2443 $"DBE5 1F4C 0D83 C3F5 F2D4 5A7C 0BFB E4FC" /* Ûå.L.ƒÃõòÔZ|.ûäü */
2444 $"C83E D8A4 FAF4 F589 09F2 4909 40AA 2AA8" /* È>ؤúôõ‰ÆòIÆ@ª*¨ */
2445 $"C190 BE4D D484 1408 6EAD 722F 6BA6 7502" /* Á¾MÔ„..n­r/k¦u. */
2446 $"A53F 1B9A BE86 841A FC60 53F3 8AE9 2E4C" /* ¥?.š¾†„.ü`SóŠé.L */
2447 $"4B8E 1D09 F47C 3BAA CFB7 80DE 6A41 F007" /* KŽ.Æô|;ªÏ·€ÞjAð. */
2448 $"80A3 413A C568 5C02 6166 E8AF 9B6C EF86" /* €£A:Åh\.af诛lï† */
2449 $"F178 273B A803 89E9 520A ACFC 0E98 6198" /* ñx';¨.‰éR¬ü.˜a˜ */
2450 $"6ECE D094 76D1 8AF8 1035 D0C8 B9E5 ECC9" /* nÎДvÑŠø.5ÐȹåìÉ */
2451 $"08E6 748A F28B B0E0 F9AB 71B4 7971 9626" /* .ætŠò‹°àù«q´yq–& */
2452 $"5397 5D5A 31CB 5F9E 7C98 8300 72B1 2C67" /* S—]Z1Ë_ž|˜ƒ.r±,g */
2453 $"A38D 0C02 C603 C0C2 2000 E528 0CAA 9472" /* £..Æ.À .å(.ª”r */
2454 $"3115 8C05 0EE6 3F33 3F6D B6DB 64C7 AAB2" /* 1.Œ..æ?3?m¶ÛdǪ² */
2455 $"94EA DD85 D3DF F14E FF3F D3A2 778B 3749" /* ”êÝ…ÓßñNÿ?Ó¢w‹7I */
2456 $"B31B 6DB6 C5B6 5311 C782 3FCF 2880 6695" /* ³.m¶Å¶S.Ç‚?Ï(€f• */
2457 $"085A 35C2 3938 420E 8705 50BD 51C3 BD21" /* .Z5Â98B.‡.P½Qý! */
2458 $"41B9 C3ED 3A76 367F 40F5 DA53 3618 DF7A" /* A¹Ãí:v6.@õÚS6.ßz */
2459 $"EE11 B2D6 D9AD 4351 7D8F BC5A 7217 9352" /* î.²ÖÙ­CQ}¼Zr.“R */
2460 $"D43F 54B9 F618 3E0E 5FF8 1599 CD00 5489" /* Ô?T¹ö.>._ø.™Í.T‰ */
2461 $"459D 1B65 0538 7A92 D8EC 6AD5 E756 776E" /* E.e.8z’ØìjÕçVwn */
2462 $"5B66 A07C 36D6 A4B0 2E00 21E0 ABFC 2AB8" /* [f |6Ö¤°..!à«ü*¸ */
2463 $"F387 5784 0DB9 1978 67FE DEFF 0CCC CCCC" /* ó‡W„.¹.xgþÞÿ.ÌÌÌ */
2464 $"CCCC CCCC CCCC CCD3 5F84 850A F245 C370" /* ÌÌÌÌÌÌÌÓ_„…ÂòEÃp */
2465 $"786E 76C5 56A5 8C9B FC7F 6869 3085 EB26" /* xnvÅV¥Œ›ü.hi0…ë& */
2466 $"6162 A234 8BF4 868D 0BA5 77FA 56D2 31FD" /* ab¢4‹ô†.¥wúVÒ1ý */
2467 $"7436 0147 944C 2AAE C8C1 DE46 2A3A 2449" /* t6.G”L*®ÈÁÞF*:$I */
2468 $"EAD0 8E9E FF0B 129F 7F9C 1436 A6BC 10E6" /* êÐŽžÿ..Ÿ.œ.6¦¼.æ */
2469 $"3116 7A98 5FF6 97E9 FC84 7136 FEA5 C122" /* 1.z˜_ö—éü„q6þ¥Á" */
2470 $"E58F 44D6 D7A4 0AD3 E9B4 7C91 B833 1F91" /* åDÖפÂÓé´|‘¸3.‘ */
2471 $"5F0F D8F7 8A80 6560 B332 081A C68D 0FF9" /* _.Ø÷Š€e`³2..Æ.ù */
2472 $"899F 2CC7 E1D6 FC7E 1DEB C3ED EA04 F55D" /* ‰Ÿ,ÇáÖü~.ëÃíê.õ] */
2473 $"017D B775 48A1 A844 EAB2 8E3A 5FF2 20AF" /* .}·uH¡¨D겎:_ò ¯ */
2474 $"6231 D1B0 D4D9 D308 999B 09F2 95B1 7071" /* b1Ñ°ÔÙÓ.™›Æò•±pq */
2475 $"F57C 1F1E 7960 4639 6A62 5BC6 9E5A D45D" /* õ|..y`F9jb[ÆžZÔ] */
2476 $"F339 9597 BF1B 62EB D128 B3D8 9BD3 52BF" /* ó9•—¿.bëÑ(³Ø›ÓR¿ */
2477 $"0703 43F9 E1C7 940E EA41 F4B1 75E4 891F" /* ..CùáÇ”.êAô±uä‰. */
2478 $"09A4 D439 7DFF 6AB7 EB4F 1253 A9C0 8BBE" /* ƤÔ9}ÿj·ëO.S©À‹¾ */
2479 $"40A0 3CE6 965D F886 A9EF 7E69 712D 41C2" /* @ <æ–]ø†©ï~iq-A */
2480 $"0062 6917 5D06 6548 9FD6 1470 4A0C 8545" /* .bi.].eHŸÖ.pJ.…E */
2481 $"8417 6C73 0C2D DF44 0E4A D5F9 7443 D629" /* „.ls.-ßD.JÕùtCÖ) */
2482 $"E62D DE53 CCFA EAEA E08A F0E1 9D37 9616" /* æ-ÞSÌúêêàŠðá7–. */
2483 $"C0DA 1FD4 6A42 6CE6 1D10 AB6A 911A 19D2" /* ÀÚ.ÔjBlæ..«j‘..Ò */
2484 $"47A0 4AC5 6A3C 12FF 0FE8 3AFB 7DFD 3D27" /* G JÅj<.ÿ.è:û}ý=' */
2485 $"42C6 E2BA 6DDE D1ED 21CE 1EA0 F444 055B" /* BÆâºmÞÑí!Î. ôD.[ */
2486 $"122A 41EE D8C1 144C B39C 0EEA 014E 7448" /* .*AîØÁ.L³œ.ê.NtH */
2487 $"0B72 7C2C 92B6 0CAC 3CB5 ADA7 8BF8 0C56" /* .r|,’¶.¬<µ­§‹ø.V */
2488 $"1DD5 B763 907F 6B60 8A85 ED4A F87D FBDC" /* .Õ·c.k`Š…íJø}ûÜ */
2489 $"391D 822B CBF5 7266 0E6B B2D4 32DE 606C" /* 9.‚+Ëõrf.k²Ô2Þ`l */
2490 $"014E 64BF F969 E3A5 C8E4 09EC B205 6391" /* .Nd¿ùiã¥ÈäÆì².c‘ */
2491 $"3081 96F5 9A80 0599 50D2 38FF 635B 9C35" /* 0–õš€.™PÒ8ÿc[œ5 */
2492 $"97CF A325 D94F B8E1 A794 EABC DA8A 7CC3" /* —Ï£%ÙO¸á§”ê¼ÚŠ|à */
2493 $"8713 2EBB 1EA6 69B0 9A72 A93D 874A 1F30" /* ‡..».¦i°šr©=‡J.0 */
2494 $"4C7B B341 B8CF F61E 7CEE 60CC E9B0 6D85" /* L{³A¸Ïö.|î`Ìé°m… */
2495 $"4F96 977D F85D F85A 08AF 46EF F259 FD70" /* O–—}ø]øZ.¯FïòYýp */
2496 $"E364 C54D 1F3D C951 B1DD 2CB4 8B94 9350" /* ãdÅM.=ÉQ±Ý,´‹”“P */
2497 $"8FFC CD4E D39E 2FF5 DC65 9DB7 2133 6E97" /* üÍNÓž/õÜe·!3n— */
2498 $"9705 2AA6 2625 534E B2A2 D775 FCFA 60E0" /* —.*¦&%SN²¢×uüú`à */
2499 $"4929 3681 2E72 5087 F3CD FB3A 6386 36A2" /* I)6.rP‡óÍû:c†6¢ */
2500 $"5E62 8705 57E4 8441 1986 1487 E88F C834" /* ^b‡.Wä„A.†.‡èÈ4 */
2501 $"C59D D57C CCA2 D56F 3889 44AC 0E4D 0E88" /* ÅÕ|Ì¢Õo8‰D¬.M.ˆ */
2502 $"2592 A50A F98D DF1D 17F2 78BD D4AB FDB4" /* %’¥Âùß..òx½Ô«ý´ */
2503 $"4249 FBDE 3E56 BE58 B587 88B4 8D75 299F" /* BIûÞ>V¾Xµ‡ˆ´u)Ÿ */
2504 $"4C92 6D9A 6B17 6153 9A65 4770 E0EC BBEF" /* L’mšk.aSšeGpàì»ï */
2505 $"2F91 8C35 8FFA 04AF 880C D9B6 204A D65E" /* /‘Œ5ú.¯ˆ.Ù¶ JÖ^ */
2506 $"68DD DBE7 63BC E1C5 CCDD E994 3796 10EF" /* hÝÛçc¼áÅÌÝé”7–.ï */
2507 $"354D C0E7 7A72 E57E EFAC 7C75 E4CE F47F" /* 5MÀçzrå~ï¬|uäÎô. */
2508 $"2E82 A8D0 6401 3CC4 1ACC 4513 1211 DCC9" /* .‚¨Ðd.<Ä.ÌE...ÜÉ */
2509 $"BD7A 47CA F093 83C7 38EB 866D 1ED5 AC6C" /* ½zGÊð“ƒÇ8ë†m.Õ¬l */
2510 $"FF01 C348 CFA1 2532 DAD5 2BDD 8CCC 71C1" /* ÿ.ÃHÏ¡%2ÚÕ+ÝŒÌqÁ */
2511 $"1208 75AA 308B 4796 A89E 0EAF AB67 422A" /* ..uª0‹G–¨ž.¯«gB* */
2512 $"AA43 8162 68BC 9878 8578 419C AB2E 9518" /* ªCbh¼˜x…xAœ«.•. */
2513 $"A9E0 4298 DB46 36D7 ADD0 DE21 DC41 AEA7" /* ©àB˜ÛF6×­ÐÞ!ÜA®§ */
2514 $"A05D 795D AB14 E247 6750 3EA8 0A31 5A06" /*  ]y]«.âGgP>¨Â1Z. */
2515 $"FAEC AD07 ECF7 C636 A068 22AA E179 7613" /* úì­.ì÷Æ6 h"ªáyv. */
2516 $"30F9 831C 0AFA 38C0 E20B 96A9 464E B57A" /* 0ùƒ.Âú8Àâ.–©FNµz */
2517 $"5AF3 D612 DC70 2A8D 1D09 C7C9 967F 7F7B" /* ZóÖ.Üp*.ÆÇÉ–..{ */
2518 $"F47F 4017 A722 9853 37C2 DE55 34CF 104E" /* ô.@.§"˜S7ÂÞU4Ï.N */
2519 $"9DD3 35DF DEE2 589C FAF1 07DE 1803 86B1" /* Ó5ßÞâXœúñ.Þ..†± */
2520 $"2DE6 6B46 FC45 F24E 8718 3B6E D557 8008" /* -ækFüEòN‡.;nÕW€. */
2521 $"FF3B 8EC2 28BD 6146 3EF6 A0FB 0BCA 37C1" /* ÿ;ŽÂ(½aF>ö û.Ê7Á */
2522 $"749B 49F2 F419 9EC5 DC0A A6DE 0CFC 1BD2" /* t›Iòô.žÅܦÞ.ü.Ò */
2523 $"AAF5 4920 1AB3 842A 1813 606E 97CD 0EC2" /* ªõI .³„*..`n—Í. */
2524 $"50D4 84CD F427 569F 776D 940A A6F7 68D7" /* PÔ„Íô'VŸwm”¦÷h× */
2525 $"2A18 4C6D 2056 D254 1226 7F3C 1ED0 7AB8" /* *.Lm VÒT.&.<.Ðz¸ */
2526 $"BEFE 2050 50E6 C5FB 173C 1857 FF7F 86D9" /* ¾þ PPæÅû.<.Wÿ.†Ù */
2527 $"6CE3 E235 1AFA CBB4 D2BE 4E64 9713 B880" /* lãâ5.úË´Ò¾Nd—.¸€ */
2528 $"0C41 2E14 401B D14F 5BA4 AD20 7060 C05E" /* .A..@.ÑO[¤­ p`À^ */
2529 $"2011 000E C557 2951 009C A584 6178 50E8" /* ...ÅW)Q.œ¥„axPè */
2530 $"6E0D 922F BFF7 EC41 A907 0D2B EF09 3CE0" /* n.’/¿÷ìA©..+ïÆ<à */
2531 $"6344 B3D6 742A 0448 042D 44C3 390B 089B" /* cD³Öt*.H.-DÃ9..› */
2532 $"B0FF 2877 1C62 BE1E AC48 09B0 4667 19BC" /* °ÿ(w.b¾.¬HÆ°Fg.¼ */
2533 $"319D 1FEA ABB5 1EE9 02D8 C845 A20C 2E3F" /* 1.ꫵ.é.ØÈE¢..? */
2534 $"7010 FA38 E2A0 1F01 2933 0557 19BD 9DCD" /* p.ú8â ..)3.W.½Í */
2535 $"5486 F044 5838 C953 CC32 2DF8 6A04 30ED" /* T†ðDX8ÉSÌ2-øj.0í */
2536 $"2C42 0A7D 1B38 7F94 4936 5908 39F1 424F" /* ,BÂ}.8.”I6Y.9ñBO */
2537 $"2BFF 7F46 F53E 11D3 DA1E 41B4 67AB 296E" /* +ÿ.Fõ>.ÓÚ.A´g«)n */
2538 $"0B59 6213 9E16 1568 8787 ED75 8822 A102" /* .Yb.ž..h‡‡íuˆ"¡. */
2539 $"DAAC D7D6 FA63 ED91 52D2 E98C 6EEB ABBB" /* Ú¬×Öúcí‘RÒéŒnë«» */
2540 $"5465 7C7C 0CEB 3016 0CC6 5793 D7FF 7FFB" /* Te||.ë0..ÆW“×ÿ.û */
2541 $"34E7 7BDE 794E 6D8C 392D 051A 478B 4AD7" /* 4ç{ÞyNmŒ9-..G‹J× */
2542 $"028C 3119 EDCA 833C 2F1B A23A 5C69 908F" /* .Œ1.íʃ</.¢:\i */
2543 $"6F17 C143 83FF 31A8 709D 7BFA B0E4 A884" /* o.ÁCƒÿ1¨p{ú°ä¨„ */
2544 $"E3DC 88CC DF54 C132 6671 A0D0 B4C3 7721" /* ã܈ÌßTÁ2fq Ð´Ãw! */
2545 $"B5F0 84FF 0FDA 1588 5865 1B6B 94E3 9B46" /* µð„ÿ.Ú.ˆXe.k”ã›F */
2546 $"5CA1 7767 09F4 3448 2242 114C 2705 2C38" /* \¡wgÆô4H"B.L'.,8 */
2547 $"4565 F286 ABC2 AFF5 809D 0C5B BB5E 009C" /* Eeò†«Â¯õ€.[»^.œ */
2548 $"FCBA BC4C 84FF 45EF F42B 3F8E DEE0 A531" /* üº¼L„ÿEïô+?ŽÞà¥1 */
2549 $"DBBB 2113 7C30 8BB7 76FF 7E55 E6BC 012B" /* Û»!.|0‹·vÿ~Uæ¼.+ */
2550 $"EBDE EF62 0981 DCE1 AC6E 5AD7 D8AD 0560" /* ëÞïbÆÜá¬nZ×Ø­.` */
2551 $"5B36 3A62 5B57 3E03 75AC 25FB B396 1086" /* [6:b[W>.u¬%û³–.† */
2552 $"5EF0 4C11 ACE0 90D2 6568 EB55 75AB FF24" /* ^ðL.¬àÒehëUu«ÿ$ */
2553 $"54B8 0E77 3110 5C67 3138 8369 5BEA 3458" /* T¸.w1.\g18ƒi[ê4X */
2554 $"7FFE 6000 9940 0044 18C6 1A34 14B6 9CD2" /* .þ`.™@.D.Æ.4.¶œÒ */
2555 $"C039 2A00 00CC 8F27 9EFE FF80 1CAA 8000" /* À9*..Ì'žþÿ€.ª€. */
2556 $"0000 0000 D9B1 C1D0 BFE1 D01D 2DD4 E3DF" /* ....Ù±ÁпáÐ.-Ôãß */
2557 $"949B 6DB6 DB6D B83D 6B98 82BC 446D 0CB3" /* ”›m¶Ûm¸=k˜‚¼Dm.³ */
2558 $"55A5 C140 D9E5 5E98 37AF 0E38 4474 B8DC" /* U¥Á@Ùå^˜7¯.8Dt¸Ü */
2559 $"FCFA B14E BD14 730B DAA0 4B18 1B4D 81E7" /* üú±N½.s.Ú K..Mç */
2560 $"B8A8 26E7 EFB0 8272 4619 2A00 0000 0000" /* ¸¨&çï°‚rF.*..... */
2561 $"0000 0000 0000 060D CD91 05BE 3A07 80DE" /* ........Í‘.¾:.€Þ */
2562 $"29D6 2680 7867 5359 9411 F430 48D9 A22D" /* )Ö&€xgSY”.ô0HÙ¢- */
2563 $"DF74 0855 C0C4 C5AA D3F4 FC40 5815 C5FC" /* ßt.UÀÄŪÓôü@X.Åü */
2564 $"B741 3001 FF7F FDC6 00B8 F1BA FEC9 B662" /* ·A0.ÿ.ýÆ.¸ñºþɶb */
2565 $"4973 2EE9 5029 E237 296D D4A4 04DE 4DB9" /* Is.éP)â7)mÔ¤.ÞM¹ */
2566 $"5305 FD42 9A82 6842 EF09 9DA2 201D C6EF" /* S.ýBš‚hBïÆ¢ .Æï */
2567 $"4078 4FC3 038C B201 A1C0 0791 7B09 CF18" /* @xOÃ.Œ².¡À.‘{ÆÏ. */
2568 $"D61B DABD 0409 372B F69D 3CF8 E2E1 31A1" /* Ö.Ú½.Æ7+ö<øâá1¡ */
2569 $"023B B0FD 60B3 3933 16F2 C716 9259 82F8" /* .;°ý`³93.òÇ.’Y‚ø */
2570 $"77BB 3A47 46D2 D998 7AA1 01E1 DF78 8000" /* w»:GFÒÙ˜z¡.áßx€. */
2571 $"0000 0001 D8FD 4FB2 C620 0000 005A CD78" /* ....ØýO²Æ ...ZÍx */
2572 $"B755 53CD E910 3B50 96A8 4000 0000 0003" /* ·USÍé.;P–¨@..... */
2573 $"FD6F 5DD1 31D8 A087 6BC5 09F3 E81E B49F" /* ýo]Ñ1Ø ‡kÅÆóè.´Ÿ */
2574 $"5A88 0DB9 2492 4924 9234 EE49 0E46 EE5B" /* Zˆ.¹$’I$’4îI.Fî[ */
2575 $"8D2A E866 7AD0 1F3C 936D 50EF 6EF5 FDE7" /* *èfzÐ.<“mPïnõýç */
2576 $"BFFE 6EFF 82AD 0EDF 556D B01D C573 CA68" /* ¿þnÿ‚­.ßUm°.ÅsÊh */
2577 $"985A F307 82C5 D933 4C26 B9EE EEF7 D4C6" /* ˜Zó.‚ÅÙ3L&¹îî÷ÔÆ */
2578 $"BFB5 4130 F610 4AFE 602E 3723 0C95 0000" /* ¿µA0ö.Jþ`.7#.•.. */
2579 $"0000 0000 0000 0000 0002 7F7E DE44 DDEB" /* ...........~ÞDÝë */
2580 $"B8B1 0AB8 BA80 7F79 D59C 851A 0244 B8D1" /* ¸±Â¸º€.yÕœ…..D¸Ñ */
2581 $"6B92 AB1A 4997 5556 C0C7 5935 05AD B380" /* k’«.I—UVÀÇY5.­³€ */
2582 $"318D A387 1E5F 1523 0170 B5DB D9FA 0E80" /* 1£‡._.#.pµÛÙú.€ */
2583 $"7342 6634 1E36 FB10 615A 1862 FF53 1545" /* sBf4.6û.aZ.bÿS.E */
2584 $"C795 B42C 8282 534C 3AFD D370 7621 820E" /* Ç•´,‚‚SL:ýÓpv!‚. */
2585 $"9EDA AF3A 476B 3537 E327 52DE 4A99 73D1" /* žÚ¯:Gk57ã'RÞJ™sÑ */
2586 $"0718 7C16 82D5 99A5 32DD 0E83 9C4F 60F8" /* ..|.‚Õ™¥2Ý.ƒœO`ø */
2587 $"0743 325D 2056 84FF 06BC C6BB 338C 64CF" /* .C2] V„ÿ.¼Æ»3ŒdÏ */
2588 $"B7B9 C4C7 9800 E4DA EE0A 6636 DEE8 B8F8" /* ·¹Äǘ.äÚîÂf6Þè¸ø */
2589 $"739E 1EBD 408C C620 9790 A337 E987 2E54" /* sž.½@ŒÆ —£7é‡.T */
2590 $"DD4A E501 C0BF 44E6 E8EF ACCF 028F 253C" /* ÝJå.À¿Dæèï¬Ï.%< */
2591 $"F466 FA92 BEE6 A066 F4B6 5B41 CA80 3567" /* ôfú’¾æ fô¶[AÊ€5g */
2592 $"A079 E31D CEE9 CD64 0AED 265D E591 B98C" /*  yã.ÎéÍdÂí&]呹Œ */
2593 $"DF22 C203 3C43 E1D8 5D64 CA99 E6C7 EF30" /* ß"Â.<CáØ]dÊ™æÇï0 */
2594 $"68AF F4C9 97D5 F961 48CF 954C 2832 33A3" /* h¯ôÉ—ÕùaHÏ•L(23£ */
2595 $"0088 1417 0D84 DDE1 23FA C81D 487D C9AB" /* .ˆ...„Ýá#úÈ.H}É« */
2596 $"F239 ABB4 24E0 6694 291C 885C 23CE F212" /* ò9«´$àf”).ˆ\#Îò. */
2597 $"29F4 5656 7DD1 182A 2C11 AAEF 7534 24EE" /* )ôVV}Ñ.*,.ªïu4$î */
2598 $"9886 347F 28AD 6952 0A82 E9A4 6AA9 9390" /* ˜†4.(­iR‚é¤j©“ */
2599 $"06A8 EF47 527A EDF2 894B 5234 A900 82B1" /* .¨ïGRzíò‰KR4©.‚± */
2600 $"724D 791B 676C BC97 B3A5 94F7 137E FE8D" /* rMy.gl¼—³¥”÷.~þ */
2601 $"50F5 C1EE 0C5B 1F3D CEF4 DD64 709C 095B" /* PõÁî.[.=ÎôÝdpœÆ[ */
2602 $"A51A B239 3EC3 C9BA 39EC DBE2 FB9A 3C6F" /* ¥.²9>Ãɺ9ìÛâûš<o */
2603 $"BBC4 DE3E C5AF 0043 DC2D AE64 C0A7 2039" /* »ÄÞ>ů.CÜ-®dÀ§ 9 */
2604 $"A6C9 6079 72D6 0BC7 C501 A3A4 5EF4 A060" /* ¦É`yrÖ.ÇÅ.£¤^ô ` */
2605 $"C46E FCB9 1958 AD83 1176 0776 81C2 13C2" /* Änü¹.X­ƒ.v.vÂ. */
2606 $"DF08 4A76 137F DC5C 4867 0493 EE96 8373" /* ß.Jv..Ü\Hg.“î–ƒs */
2607 $"4644 13A4 F789 39FF 813B D226 575A 5A18" /* FD.¤÷‰9ÿ;Ò&WZZ. */
2608 $"3AF5 4B88 2747 3D47 681F 9670 0069 DD02" /* :õKˆ'G=Gh.–p.iÝ. */
2609 $"4252 ADB0 D6FB F1F1 1432 C24B D920 7290" /* BR­°Öûññ.2ÂKÙ r */
2610 $"3709 3D60 15D9 0C49 23EC 77F8 F791 F132" /* 7Æ=`.Ù.I#ìwø÷‘ñ2 */
2611 $"046E 0D05 9AFA 210A 9992 29D9 7AA6 F18E" /* .n..šú!™’)Ùz¦ñŽ */
2612 $"E245 75E0 018F BCEB 8D1B C2D0 083E 985F" /* âEuà.¼ë.ÂÐ.>˜_ */
2613 $"B791 554D F5F5 AD71 E064 75E6 1F3A D463" /* ·‘UMõõ­qàduæ.:Ôc */
2614 $"9A59 0A43 3457 BD7C 44A7 5C5E 9D19 C5D8" /* šYÂC4W½|D§\^.ÅØ */
2615 $"5880 C2CC 5DF0 2964 C0FD ABA1 004B 008D" /* X€ÂÌ]ð)dÀý«¡.K. */
2616 $"5205 7F2E 0843 E484 2D37 9C34 2425 7AFF" /* R....Cä„-7œ4$%zÿ */
2617 $"7021 D907 B6E1 F5E5 02C3 F3DD 44C8 2252" /* p!Ù.¶áõå.ÃóÝDÈ"R */
2618 $"0649 3C1A 1A80 449A 64D1 1720 76D6 4987" /* .I<..€DšdÑ. vÖI‡ */
2619 $"B4B1 E749 E899 BF69 5B35 F925 2EE6 6CE6" /* ´±çI虿i[5ù%.ælæ */
2620 $"B4FD CEB3 54C0 7C9D 4380 F93B 5701 F274" /* ´ýγTÀ|C€ù;W.òt */
2621 $"C4F3 CC20 F972 1FD1 56B3 911D 2995 5FC9" /* ÄóÌ ùr.ÑV³‘.)•_É */
2622 $"1F35 BAE0 9AC7 3082 1372 C1D5 4B23 D79E" /* .5ºàšÇ0‚.rÁÕK#מ */
2623 $"EF63 A93F 8E74 26FB AC68 CDBE BD3E 9720" /* ïc©?Žt&û¬h;½>— */
2624 $"DF71 956D 5D26 559E 2795 2F1B F798 7821" /* ßq•m]&Už'•/.÷˜x! */
2625 $"F3CB 1E6F 2351 11BD 0EFF 19B2 40A2 1C7F" /* óË.o#Q.½.ÿ.²@¢.. */
2626 $"267D D302 F6AE 5410 1E96 40DC 386E CB7B" /* &}Ó.ö®T..–@Ü8nË{ */
2627 $"7EA3 5CF7 46BA 8758 D0EE 12B3 34DF 46FE" /* ~£\÷Fº‡XÐî.³4ßFþ */
2628 $"517B E0F8 7E28 83A5 E93A C06D 7C3F 254B" /* Q{àø~(ƒ¥é:Àm|?%K */
2629 $"53DF 91ED F6AB FD0A 53A0 5257 F9B8 E8B7" /* Sß‘íö«ýÂS RWù¸è· */
2630 $"5A14 6036 C6DA E3FE C29D 799F 8B43 46D6" /* Z.`6ÆÚãþÂyŸ‹CFÖ */
2631 $"94DF 1954 073C 7C30 40F4 A00D 93D4 AADF" /* ”ß.T.<|0@ô .“ﻧ */
2632 $"4839 EF36 F92A 3758 97CE 955A 3521 3CB5" /* H9ï6ù*7X—ΕZ5!<µ */
2633 $"8269 30A7 2A93 6A40 07BE DCC3 50B6 C86B" /* ‚i0§*“j@.¾ÜÃP¶Èk */
2634 $"CE9A AF28 3B80 4FE6 873C DB8E A29C 15DC" /* Κ¯(;€Oæ‡<ÛŽ¢œ.Ü */
2635 $"81A8 F841 4F77 6237 7267 55C4 1289 2DA1" /* ¨øAOwb7rgUÄ.‰-¡ */
2636 $"8392 424A 398F 9FA7 8DBE 2CC6 44E9 A005" /* ƒ’BJ9Ÿ§¾,ÆDé . */
2637 $"0E57 6638 ADDD 9F15 D32E 13A9 F752 67BA" /* .Wf8­ÝŸ.Ó..©÷Rgº */
2638 $"9F1D 753C 0023 2BC1 2C48 19AF FF28 66E6" /* Ÿ.u<.#+Á,H.¯ÿ(fæ */
2639 $"0A05 1D62 536F C372 7DEC 5069 B44D AFD4" /* Â..bSoÃr}ìPi´M¯Ô */
2640 $"BE3C 9C16 161E 95B4 89E7 B034 4524 E373" /* ¾<œ...•´‰ç°4E$ãs */
2641 $"D4A2 2F82 F1BB 8F20 7861 0F95 7CDF C184" /* Ô¢/‚ñ» xa.•|ßÁ„ */
2642 $"5B65 6015 001B F6BD 5D52 D4BC 3A42 FD56" /* [e`...ö½]RÔ¼:BýV */
2643 $"D48F 3358 7432 09BD FF19 625D 3A11 13DA" /* Ô3Xt2ƽÿ.b]:..Ú */
2644 $"F222 12E8 5A1B 12BF 9B3B A234 A367 8FB6" /* ò".èZ..¿›;¢4£g¶ */
2645 $"4BF2 EE99 DB11 5D13 7021 71B4 2280 A1BC" /* Kòî™Û.].p!q´"€¡¼ */
2646 $"2AEF ECB5 D7EC 047C 0860 9676 78B1 CA76" /* *ïìµ×ì.|.`–vx±Êv */
2647 $"9AFB C995 D4EB 900A AD98 6423 E572 B68C" /* šûÉ•Ôë­˜d#år¶Œ */
2648 $"A271 A30B D157 8E95 8250 29BB 0323 E26C" /* ¢q£.ÑWŽ•‚P)».#âl */
2649 $"9223 91C7 0CD4 F0B0 442E 1BD3 1473 C699" /* ’#‘Ç.Ôð°D..Ó.sÆ™ */
2650 $"2D1C 8791 C699 920E 72C0 0D3E F6E9 9E2B" /* -.‡‘Æ™’.rÀ.>öéž+ */
2651 $"60B6 A87F 6CBE 146C 1224 90FC BF7B C6A9" /* `¶¨.l¾.l.$ü¿{Æ© */
2652 $"090E 3EAD C89D 5065 414B 3A1C F271 9327" /* Æ.>­ÈPeAK:.òq“' */
2653 $"D490 CD2B FBB3 BEFF 768D 4601 635B A746" /* ÔÍ+û³¾ÿvF.c[§F */
2654 $"8A4B 0981 8B8F EA85 D255 2113 8792 CC76" /* ŠKÆ‹ê…ÒU!.‡’Ìv */
2655 $"DE84 B950 C5F4 A4C1 D4EF 7D52 CC74 CCEE" /* Þ„¹PÅô¤ÁÔï}RÌtÌî */
2656 $"B40E B94F 9467 15CA 1DE0 3557 BF09 D787" /* ´.¹O”g.Ê.à5W¿Æׇ */
2657 $"ED66 345A E153 B4DC EF7C 2952 3161 5A99" /* íf4ZáS´Üï|)R1aZ™ */
2658 $"A193 D5EB 40F5 1300 65FA 8DFD 621A AE94" /* ¡“Õë@õ..eúýb.®” */
2659 $"30CD 6D25 A0FC 942E 37AC 52C8 CEAD 2D1F" /* 0Ím% ü”.7¬RÈέ-. */
2660 $"87D5 D078 F173 F5AD 7A56 DD1B 10C3 F9BF" /* ‡ÕÐxñsõ­zVÝ..Ãù¿ */
2661 $"69C1 9E6B E021 A0C7 84BF D87A 8AA8 327C" /* iÁžkà! Ç„¿ØzŠ¨2| */
2662 $"7D48 0D97 E584 FF7F AE07 2001 BF6C 2691" /* }H.—å„ÿ.®. .¿l&‘ */
2663 $"3032 E118 8741 42AD 7709 3086 8488 F9D3" /* 02á.‡AB­wÆ0†„ˆùÓ */
2664 $"0353 D79E 2E21 8F21 46CC 005C DA8A 0229" /* .Sמ.!!FÌ.\ÚŠ.) */
2665 $"A56B A72A C69E FCF7 7558 5D72 0050 2BDE" /* ¥k§*Æžü÷uX]r.P+Þ */
2666 $"0F36 E4F0 C744 89FC 37F0 7ECA F488 FE8C" /* .6äðÇD‰ü7ð~ÊôˆþŒ */
2667 $"1B6B 0158 B34D 1EA6 9B1F 154E FF79 01D4" /* .k.X³M.¦›..Nÿy.Ô */
2668 $"725F D9CF D9BF CCFF 439D 8F5C A92D D20D" /* r_ÙÏÙ¿ÌÿC\©-Ò. */
2669 $"0613 88F8 5C1C B6BD 07B9 9078 151D 8353" /* ..ˆø\.¶½.¹x..ƒS */
2670 $"0E68 8495 D521 92D8 E92D CF9B 10E6 ABDC" /* .h„•Õ!’Øé-Ï›.æ«Ü */
2671 $"53D9 DFB2 F2AF F964 14E3 74D6 3D64 01E2" /* SÙß²ò¯ùd.ãtÖ=d.â */
2672 $"FAFB 2D0B D303 DCF7 7718 E6CF 30DB 3FAE" /* úû-.Ó.Ü÷w.æÏ0Û?® */
2673 $"2873 3339 54A3 1E48 04D2 FDF2 E863 6201" /* (s39T£.H.Òýòècb. */
2674 $"01D1 182C 4C2A D85D AE26 DE15 9796 494C" /* .Ñ.,L*Ø]®&Þ.—–IL */
2675 $"82EA B4C0 2D3C 3D3E 1732 2ACA AC27 B7DB" /* ‚ê´À-<=>.2*ʬ'·Û */
2676 $"5CED 6F9D 3EDB FF04 5E83 BE60 1636 AE2C" /* \ío>Ûÿ.^ƒ¾`.6®, */
2677 $"754D 2928 7128 ACFD 15E8 C1A0 30A5 1063" /* uM)(q(¬ý.èÁ 0¥.c */
2678 $"1E6F 10F7 A946 B9B4 D921 5DB3 113F 332E" /* .o.÷©F¹´Ù!]³.?3. */
2679 $"61B8 AB3D 2F87 E081 C9D9 32B7 1060 785A" /* a¸«=/‡àÉÙ2·.`xZ */
2680 $"EFDD F472 0283 E235 4D42 E903 A06B 51CB" /* ïÝôr.ƒâ5MBé. kQË */
2681 $"39DC A412 A492 918E 235E F57C E4CE 4E0F" /* 9ܤ.¤’‘Ž#^õ|äÎN. */
2682 $"6BE6 7036 FA8A 7B2C 21FE 60B1 6FCA 7654" /* kæp6úŠ{,!þ`±oÊvT */
2683 $"C9FD DCDF E497 B2A6 D6D5 87ED 9D3B 5B86" /* ÉýÜßä—²¦ÖÕ‡í;[† */
2684 $"DA51 6B5B AE3E 520B 1DB3 5A6B 2B4D A777" /* ÚQk[®>R..³Zk+M§w */
2685 $"4F13 A04C 7D4F 819B 1FEB 086D 5F34 6643" /* O. L}O›.ë.m_4fC */
2686 $"0208 693A D70C 55B2 7A07 BC27 3A41 B739" /* ..i:×.U²z.¼':A·9 */
2687 $"C1F5 7425 07D5 D74C 1F56 F680 F1C4 B0CB" /* Áõt%.Õ×L.Vö€ñÄ°Ë */
2688 $"F3E0 DE80 53FC 256D EFD0 6B64 028C EC70" /* óàÞ€Sü%mïÐkd.Œìp */
2689 $"4973 06D4 242C DAAA 8373 DFAC B0C9 14A1" /* Is.Ô$,Úªƒs߬°É.¡ */
2690 $"BFBC 0BB4 E250 919E 3D2B B388 3A89 FB02" /* ¿¼.´âP‘ž=+³ˆ:‰û. */
2691 $"9796 86E6 20F8 C26C 8120 349C 757A 6875" /* —–†æ øÂl 4œuzhu */
2692 $"F63E AE68 84C3 03A3 6F64 F9EE F892 2CF8" /* ö>®h„Ã.£odùîø’,ø */
2693 $"61C1 B13A E941 0D67 DA36 4C05 9565 DC85" /* aÁ±:éA.gÚ6L.•eÜ… */
2694 $"D7F8 6EB9 D903 D428 F59A 3EBF C73E 5E95" /* ×øn¹Ù.Ô(õš>¿Ç>^• */
2695 $"764D 15FB 98F2 BECE 0FC8 EA3C 4E51 E1DD" /* vM.û˜ò¾Î.Èê<NQáÝ */
2696 $"5253 CE7A 2D16 8527 AF8E 9A17 757A A42F" /* RSÎz-.…'¯Žš.uz¤/ */
2697 $"6CA9 6BB3 7787 D84F 8E20 EA1F FB2D 15E3" /* l©k³w‡ØOŽ ê.û-.ã */
2698 $"0D2C 45A8 8C80 7DA1 89DB 5F46 F3FB 2871" /* .,E¨Œ€}¡‰Û_Fóû(q */
2699 $"539E 8CCA 5C03 EF20 B6B5 4956 EB82 172C" /* SžŒÊ\.ï ¶µIVë‚., */
2700 $"AB28 0D6D 4DF9 1F61 6F8D 61FE E962 778D" /* «(.mMù.aoaþébw */
2701 $"0C8E EC55 3BDC EC81 C9D1 E7D5 A811 C69A" /* .ŽìU;ÜìÉÑçÕ¨.Æš */
2702 $"6186 BC2C 75B4 DD3D C207 1151 4C3B 4175" /* a†¼,u´Ý=Â..QL;Au */
2703 $"942E 2ACF D3C7 7122 9D89 31B3 0918 EDC0" /* ”.*ÏÓÇq"‰1³Æ.íÀ */
2704 $"9D45 75D8 DE61 5036 6D9F 3373 4827 7ADE" /* EuØÞaP6mŸ3sH'zÞ */
2705 $"1BD1 16E8 8905 37D4 D811 1077 B359 0FF6" /* .Ñ.è‰.7ÔØ..w³Y.ö */
2706 $"0460 F360 20A5 B532 3418 142A B432 C2E9" /* .`ó` ¥µ24..*´2Âé */
2707 $"A0D6 DB04 317D 28F3 C893 AAE3 19B1 5742" /*  ÖÛ.1}(óÈ“ªã.±WB */
2708 $"7BF6 615C 0EAC F35E 0CD4 B142 A289 5458" /* {öa\.¬ó^.Ô±B¢‰TX */
2709 $"D699 1584 46FF 7174 758F B1F8 F540 F427" /* Ö™.„Fÿqtu±øõ@ô' */
2710 $"A496 8795 E66B 3DDC FB80 D0B8 9411 7240" /* ¤–‡•æk=Üû€Ð¸”.r@ */
2711 $"0374 54DC B2CA C982 BD5E FD06 4B02 5E8D" /* .tTܲÊÉ‚½^ý.K.^ */
2712 $"A958 79AA 5BE6 B5A2 76C3 7C23 0D45 6768" /* ©Xyª[æµ¢vÃ|#.Egh */
2713 $"D726 8259 FD2E E5CE 9B70 0600 22E7 82A3" /* ×&‚Yý.åΛp.."ç‚£ */
2714 $"8E14 9626 C4EC EED9 E7D8 13C9 623F 3DEB" /* Ž.–&ÄìîÙçØ.Éb?=ë */
2715 $"357B E617 A43A C9D4 328A C30A FF45 71BA" /* 5{æ.¤:ÉÔ2ŠÃÂÿEqº */
2716 $"1F8B 3945 8E06 0CF0 4749 0840 6F5A EDDB" /* .‹9EŽ..ðGI.@oZíÛ */
2717 $"29AC E877 27BD 6C8C A131 8A1C 9228 0FC5" /* )¬èw'½lŒ¡1Š.’(.Å */
2718 $"A029 D1A1 324D EFCE EB3F 2B92 150D FB8C" /*  )Ñ¡2MïÎë?+’..ûŒ */
2719 $"5399 1ABD D375 08BF 8F3F E788 684D 3064" /* S™.½Óu.¿?çˆhM0d */
2720 $"70B4 A733 4AB6 239A DC03 724F C8B8 F1BB" /* p´§3J¶#šÜ.rOȸñ» */
2721 $"8F1F A795 FF18 8256 0050 FF74 EDF1 3D05" /* .§•ÿ.‚V.Pÿtíñ=. */
2722 $"6CB0 E566 9272 E493 C085 3D06 3116 4ECE" /* l°åf’rä“À…=.1.NÎ */
2723 $"402D 329F 4BBB 2598 A7CF BEE1 333D 9019" /* @-2ŸK»%˜§Ï¾á3=. */
2724 $"61BB 1A29 2616 E907 2CD6 F64C 456F 9881" /* a».)&.é.,ÖöLEo˜ */
2725 $"725B 5C38 A40D 60D3 6B4F FDF1 87D7 4786" /* r[\8¤.`ÓkOýñ‡×G† */
2726 $"29BF CAEB 223A 044D 0F61 FDE6 0A3E 7727" /* )¿Êë":.M.aýæÂ>w' */
2727 $"DDEE 0A95 231F 04AC B6EF D134 C09D 1540" /* Ýî•#..¬¶ïÑ4À.@ */
2728 $"0E94 57E2 8418 C208 1F26 7396 96A0 D08F" /* .”Wâ„.Â..&s–– Ð */
2729 $"0CC0 40C8 C596 39BA 0CAE A6ED F8E8 7D6B" /* .À@ÈÅ–9º.®¦íøè}k */
2730 $"A76C 391B 6113 555F 62E0 6E14 5D27 E7BC" /* §l9.a.U_bàn.]'ç¼ */
2731 $"EDB7 D038 DED2 7BEE FC9D 6211 241E 0795" /* í·Ð8ÞÒ{îüb.$..• */
2732 $"9CDE 1607 B4C7 828E 24D2 4E9F FCA0 36EA" /* œÞ..´Ç‚Ž$ÒNŸü 6ê */
2733 $"004C C960 1680 01CE 7FF6 A201 EDAB 1ADF" /* .LÉ`.€.Î.ö¢.í«.ß */
2734 $"80D8 4524 390C 23DD EA8E 062C 5DDB 3C57" /* €ØE$9.#ÝêŽ.,]Û<W */
2735 $"BAEC 18E5 1ECE 91D7 A40E 08ED 23EA 55B6" /* ºì.å.Αפ..í#êU¶ */
2736 $"AA2C F48A 7B0E 8CAE 90DD 5840 41FF 7F4C" /* ª,ôŠ{.Œ®ÝX@Aÿ.L */
2737 $"47AD E774 87C4 9AB1 9CAD E633 DECD 3E36" /* G­çt‡Äš±œ­æ3ÞÍ>6 */
2738 $"00C2 0E05 134F 4802 3846 3575 1902 676D" /* .Â...OH.8F5u..gm */
2739 $"1006 D8AE 0D5F 1934 78F6 0721 F3C4 1000" /* ..Ø®._.4xö.!óÄ.. */
2740 $"8991 FA85 45B5 37A9 5A0C 54EE 014B 297B" /* ‰‘ú…Eµ7©Z.Tî.K){ */
2741 $"52F2 5ADD 7422 C97B EAA9 D291 45A7 A44A" /* RòZÝt"É{ê©Ò‘E§¤J */
2742 $"40FE AE73 5086 C7D3 85FD D734 67F2 8909" /* @þ®sP†ÇÓ…ý×4gò‰Æ */
2743 $"506D 36D8 2361 990C 802F A59E B603 9C94" /* Pm6Ø#a™.€/¥ž¶.œ” */
2744 $"F7BD AED9 8518 8651 DFFE 3D0E E920 E874" /* ÷½®Ù….†Qßþ=.é èt */
2745 $"FEB0 EE3C 3242 C249 4704 EEA8 9EFA DC61" /* þ°î<2BÂIG.úÜa */
2746 $"49C6 929E 2A9D 51CD FE0A FF02 3DDB 01EC" /* IÆ’ž*QÍþÂÿ.=Û.ì */
2747 $"80E8 630A B0C8 C9FC 7693 C60B 07E8 5D2F" /* €èc°ÈÉüv“Æ..è]/ */
2748 $"B97A 9F04 444E C836 DD68 FF12 EC9C 7E4F" /* ¹zŸ.DNÈ6Ýhÿ.ìœ~O */
2749 $"3CE9 83A8 191A 1E61 05F8 90FF 67E8 011A" /* <部...a.øÿgè.. */
2750 $"71EA 3EE8 AFBD 6328 ED84 9807 788D F3BC" /* qê>诽c(턘.xó¼ */
2751 $"2FA0 A210 7FFF 1D02 2519 4EC7 2A80 7FD0" /* / ¢..ÿ..%.NÇ*€.Ð */
2752 $"2064 A8F4 CC78 5EC8 88AF F1AB 868B 9F8D" /* d¨ôÌx^Ȉ¯ñ«†‹Ÿ */
2753 $"883E 3FDA D188 FBB7 3AFC 0C72 E01A CEF3" /* ˆ>?Úшû·:ü.rà.Îó */
2754 $"21E1 1718 4FDB 9A43 3767 424A 639B DFFE" /* !á..OÛšC7gBJc›ßþ */
2755 $"CA5F 7BA9 8F82 3EA6 6D4E 6986 6945 80DE" /* Ê_{©‚>¦mNi†iE€Þ */
2756 $"8274 4927 166A 6062 DF1D 0A72 F23B FA5A" /* ‚tI'.j`bß.Ârò;úZ */
2757 $"4DE4 5D19 54FC 488B 5237 FF5F 7B81 62C5" /* Mä].TüH‹R7ÿ_{bÅ */
2758 $"F6B7 B580 3016 11B6 22CF 63B8 428A D39A" /* ö·µ€0..¶"Ïc¸BŠÓš */
2759 $"5AC3 80FF 7310 8386 FF54 F361 304F 3BB5" /* ZÀÿs.ƒ†ÿTóa0O;µ */
2760 $"A7EB 0419 7DFB 6E56 20A8 3670 9018 9CB3" /* §ë..}ûnV ¨6p.œ³ */
2761 $"4B35 7082 32A7 E917 9CF8 FF7F FF80 0A6C" /* K5p‚2§é.œøÿ.ÿ€Âl */
2762 $"A48C 447E 3ECF 411D 89E4 F923 373B DCBE" /* ¤ŒD~>ÏA.‰äù#7;ܾ */
2763 $"2CE8 6580 0F87 1A23 1D93 62AE 48EF DEB8" /* ,èe€.‡.#.“b®HïÞ¸ */
2764 $"5DE8 DB68 1CA3 8D4B D3FE A476 7B3D ACAA" /* ]èÛh.£KÓþ¤v{=¬ª */
2765 $"284F 83EB 428F A201 D122 CB1A CCB2 C1FE" /* (OƒëB¢.Ñ"Ë.̲Áþ */
2766 $"367F 60D3 155D 8C00 22D8 ED33 D56B 1DE2" /* 6.`Ó.]Œ."Øí3Õk.â */
2767 $"98B0 A4A9 E041 2BF1 AA58 E78D 47E5 929F" /* ˜°¤©àA+ñªXçGå’Ÿ */
2768 $"85DA 699E C45A 0064 B931 CF2B 4169 44F0" /* …ÚižÄZ.d¹1Ï+AiDð */
2769 $"4B4F 083B 3D7C B2B2 D87B 785E 91A8 C614" /* KO.;=|²²Ø{x^‘¨Æ. */
2770 $"6EE6 A63C C8A7 B9E3 839D E245 4128 3BF9" /* næ¦<ȧ¹ãƒâEA(;ù */
2771 $"98CD 0C23 72EB E3A9 D21F 1BC2 4E13 274B" /* ˜Í.#rëã©Ò..ÂN.'K */
2772 $"19C8 CB39 5E7A D218 FBDB 0C42 51A1 1203" /* .ÈË9^zÒ.ûÛ.BQ¡.. */
2773 $"C0EB CDC2 9249 E461 1DE4 3DB6 FDFE 1334" /* ÀëÍÂ’Iäa.ä=¶ýþ.4 */
2774 $"1952 8231 CD71 A170 C55B 1FD0 6706 57F0" /* .R‚1Íq¡pÅ[.Ðg.Wð */
2775 $"282D 09A2 0893 A5BA 0314 43DD 32AF 3478" /* (-Æ¢.“¥º..CÝ2¯4x */
2776 $"EF6C 15F0 55C9 6A47 ECFE 3F3F 4DB4 5ED8" /* ïl.ðUÉjGìþ??M´^Ø */
2777 $"EFF8 8CA5 71F9 6669 078C 550C 943A 7046" /* ïøŒ¥qùfi.ŒU.”:pF */
2778 $"C031 6CE2 4681 4177 2913 CFE7 D857 C62A" /* À1lâFAw).ÏçØWÆ* */
2779 $"4652 88E2 8830 DF42 9C3D 2D76 E710 A8F1" /* FRˆâˆ0ßBœ=-vç.¨ñ */
2780 $"3626 45F2 55CC 008C EAB8 B891 A5F3 1AD2" /* 6&EòUÌ.Œê¸¸‘¥ó.Ò */
2781 $"AB11 6C48 3F18 40C0 51F0 DB88 0BD1 168C" /* «.lH?.@ÀQðÛˆ.Ñ.Œ */
2782 $"2E54 2DA6 CC60 BB05 4700 2C4E 179B 271B" /* .T-¦Ì`».G.,N.›'. */
2783 $"688C 1EE9 4D9A C781 8108 296B FE4F 028A" /* hŒ.éMšÇ.)kþO.Š */
2784 $"63D6 6EDF 6FEB FC17 BDFE 7A70 B48E D94E" /* cÖnßoëü.½þzp´ŽÙN */
2785 $"D985 3384 1BD2 B4C9 5213 B0D1 041B 876C" /* Ù…3„.Ò´ÉR.°Ñ..‡l */
2786 $"131C 4A9C 947B A79C A466 9779 E7C9 D2E1" /* ..Jœ”{§œ¤f—yçÉÒá */
2787 $"4E9F 0509 30E0 1115 E5C7 CAED 197B 818A" /* NŸ.Æ0à..åÇÊí.{Š */
2788 $"324D 8F8E ED44 BF44 5340 D647 1776 B983" /* 2MŽíD¿DS@ÖG.v¹ƒ */
2789 $"6D8C 88B1 6976 F7EB AFDB 6638 CAD3 F275" /* mŒˆ±iv÷ë¯Ûf8ÊÓòu */
2790 $"D93A 6CD3 9D6E C617 3969 D8E5 3059 947B" /* Ù:lÓnÆ.9iØå0Y”{ */
2791 $"6AFA 0E9B A19C 24C9 E1DC 089D 3545 89E4" /* jú.›¡œ$ÉáÜ.5E‰ä */
2792 $"E860 FB54 068C B464 EE9B 66B7 F267 34CF" /* è`ûT.Œ´dî›f·òg4Ï */
2793 $"1276 C6B2 47E6 8284 300B D1A9 1409 0C93" /* .vƲGæ‚„0.Ñ©.Æ.“ */
2794 $"E36A 8095 409A 7352 FF7A 0F50 A5E2 E678" /* ãj€•@šsRÿz.P¥âæx */
2795 $"C195 0898 E51E EB15 8D7A E918 29A6 D5CE" /* Á•.˜å.ë.zé.)¦ÕÎ */
2796 $"4DBC 978B 2CAA 9BA7 8727 EA1C 1C7A 6CC2" /* M¼—‹,ª›§‡'ê..zl */
2797 $"D172 DDF5 4BD4 9C69 607B 609F AEC8 FD84" /* ÑrÝõKÔœi`{`Ÿ®Èý„ */
2798 $"1DDA A076 C7E1 A7B1 F86C BC7E 1720 EB83" /* .Ú vÇ᧱øl¼~. ëƒ */
2799 $"095B F1C8 7239 10FD 6A26 D10E 534B E257" /* Æ[ñÈr9.ýj&Ñ.SKâW */
2800 $"B691 5D92 6949 E7D8 7470 AA8C 421F F945" /* ¶‘]’iIçØtpªŒB.ùE */
2801 $"99F6 9492 B806 E264 47B0 4EF5 6206 734E" /* ™ö”’¸.âdG°Nõb.sN */
2802 $"944B 102F A688 23A4 EAB0 CCEA 0017 0156" /* ”K./¦ˆ#¤ê°Ìê...V */
2803 $"A8C9 2A3F FF49 4137 E23A 09D0 97BB 0E5F" /* ¨É*?ÿIA7â:ÆЗ»._ */
2804 $"E2A2 2247 4980 6A20 B443 3E0B 0465 B9EF" /* â¢"GI€j ´C>..e¹ï */
2805 $"C490 B954 3AEA ABB7 3D53 111D 8897 551C" /* ĹT:ê«·=S..ˆ—U. */
2806 $"B865 1EA2 33F2 AD50 D488 1D6D 9733 27F3" /* ¸e.¢3ò­PÔˆ.m—3'ó */
2807 $"78AC C946 FB3C 4D2F 6580 1B3A 3368 3D54" /* x¬ÉFû<M/e€.:3h=T */
2808 $"55DF 6B52 1A54 9010 C4D2 12C8 D497 9CDB" /* UßkR.T.ÄÒ.ÈÔ—œÛ */
2809 $"173A 0609 66F1 C6C0 FD02 47A0 B2E2 D2E6" /* .:.ÆfñÆÀý.G ²âÒæ */
2810 $"096E F870 0776 4898 2F2B 84CF BA83 D656" /* Ænøp.vH˜/+„ϺƒÖV */
2811 $"7F77 79FF 0F1D 2A6E 03C6 4D0F E3EF D23B" /* .wyÿ..*n.ÆM.ãïÒ; */
2812 $"6F82 5F72 6701 98DF 5A63 DA7B 0ABC 75E2" /* o‚_rg.˜ßZcÚ{¼uâ */
2813 $"382D 0D93 3C8C 5308 19EA EF8D 7922 CD36" /* 8-.“<ŒS..êïy"Í6 */
2814 $"ED21 EB4D 3D77 5A8A 1380 E238 22E5 84AA" /* í!ëM=wZŠ.€â8"優 */
2815 $"4488 7DCE 91A0 CB4B 67FA 74AF EA3D 1C8E" /* Dˆ}Α ËKgút¯ê=.Ž */
2816 $"9279 611D FD02 D08F D952 B05D 2C11 B545" /* ’ya.ý.ÐÙR°],.µE */
2817 $"5F17 FF5C 1E9C 6A77 DA2F A474 B20C F5A2" /* _.ÿ\.œjwÚ/¤t².õ¢ */
2818 $"B2D4 176F 97E4 CE9E B576 C3E0 0F3D ECB9" /* ²Ô.o—äΞµvÃà.=ì¹ */
2819 $"7B35 DEBB 5ABA 9738 36F8 524D 74D8 08FF" /* {5Þ»Zº—86øRMtØ.ÿ */
2820 $"29A7 9B08 5B43 7C17 FB53 234E 4806 B0C3" /* )§›.[C|.ûS#NH.°Ã */
2821 $"AF3A FF38 CCAF FEAA C60F D103 32AC 7D7F" /* ¯:ÿ8̯þªÆ.Ñ.2¬}. */
2822 $"D2B8 51C1 7B7D 56FD 7CFB D2B5 C55B 7C7D" /* Ò¸QÁ{}Vý|ûÒµÅ[|} */
2823 $"7D30 10C2 4181 3358 5DD6 4625 4FFC EA30" /* }0.ÂA3X]ÖF%Oüê0 */
2824 $"3402 194F 6D0B 53D8 3C64 54AE E8DA 7874" /* 4..Om.SØ<dT®èÚxt */
2825 $"7FF1 DE25 3147 0AF0 D5B6 7BF7 88DD 5199" /* .ñÞ%1GÂðÕ¶{÷ˆÝQ™ */
2826 $"611E 526D B6DB 6DB6 DB69 9C6E 7A40 821D" /* a.Rm¶Ûm¶Ûiœnz@‚. */
2827 $"4416 6952 04BB 9C0A F19B 2C62 E698 A4F5" /* D.iR.»œÂñ›,b昤õ */
2828 $"9B83 3C59 8217 0000 0034 8080 DB92 4924" /* ›ƒ<Y‚....4€€Û’I$ */
2829 $"9249 247D 32D0 9B20 73FF 7E44 A49A 44BB" /* ’I$}2Л sÿ~D¤šD» */
2830 $"EB45 3E31 A4A0 C0CC BBC0 B29E 7771 4FDE" /* ëE>1¤ ÀÌ»À²žwqOÞ */
2831 $"1679 23F1 DE12 5574 68E3 60A1 9C00 CBEC" /* .y#ñÞ.Uthã`¡œ.Ëì */
2832 $"9C44 9009 0000 08DE 28C3 2776 AAA2 829A" /* œDÆ...Þ(Ã'vª¢‚š */
2833 $"05E0 47E9 0001 48A9 672C 0775 EE58 F075" /* .àGé..H©g,.uîXðu */
2834 $"7458 B48A 5455 DB33 3524 BE73 1D7C E223" /* tX´ŠTUÛ35$¾s.|â# */
2835 $"4EC4 732C EC4B 128D 341C 790C 00A2 1309" /* NÄs,ìK.4.y..¢.Æ */
2836 $"2D0B 5EA7 B07B C82C 976B 68C2 642A F095" /* -.^§°{È,—khÂd*ð• */
2837 $"A1C4 010E C94E D8A9 34BB FD3E 2B2F 92EC" /* ¡Ä..ÉNØ©4»ý>+/’ì */
2838 $"30E1 A7B3 040B C920 3FFF 7FA1 317B 90F7" /* 0᧳..É ?ÿ.¡1{÷ */
2839 $"C744 40B8 8325 4036 82FB 0C6C D800 19C4" /* ÇD@¸ƒ%@6‚û.lØ..Ä */
2840 $"2631 C4B8 3160 8649 2492 4924 9248 A747" /* &1ĸ1`†I$’I$’H§G */
2841 $"3D41 A17D 23A6 9AC7 9000 0000 0000 0000" /* =A¡}#¦šÇ....... */
2842 $"0000 0019 1A70 8823 BB21 7C62 4556 F257" /* .....pˆ#»!|bEVòW */
2843 $"62C0 CF0B 72EE F37E 64EC 43C2 AE04 9F58" /* bÀÏ.rîó~dìC®.ŸX */
2844 $"94DC E128 91EC BAA2 DADD 57A7 D5F7 1972" /* ”Üá(‘캢ÚÝW§Õ÷.r */
2845 $"7543 9A9A 0DB3 C3FD 42E0 19A3 8F45 7FDF" /* uCšš.³ÃýBà.£E.ß */
2846 $"CEB1 A7E5 8A09 5B4A F9E6 294B C5DC 80C9" /* α§åŠÆ[Jùæ)KÅÜ€É */
2847 $"9AEE 0729 374F 04FD 79D6 7170 D940 14F0" /* šî.)7O.ýyÖqpÙ@.ð */
2848 $"830F 0B71 50E7 3C76 97AF 0F71 A32D DC5A" /* ƒ..qPç<v—¯.q£-ÜZ */
2849 $"28A9 FE90 6CC0 9484 30D1 FCCD 4991 0758" /* (©þlÀ”„0ÑüÍI‘.X */
2850 $"BE36 B1DE 3A2E B6F8 2756 C568 2A7F D038" /* ¾6±Þ:.¶ø'VÅh*.Ð8 */
2851 $"2397 6E8F 32E0 C1AC 3736 32A3 C18E 13C4" /* #—n2àÁ¬762£ÁŽ.Ä */
2852 $"D298 8703 F9AF E24B A630 0627 6E63 ED70" /* Ò˜‡.ù¯âK¦0.'ncíp */
2853 $"0662 A833 6515 7225 C79D 8C1F 7410 45BF" /* .b¨3e.r%ÇŒ.t.E¿ */
2854 $"5019 F088 7C6C 43FC AE88 B794 5847 505F" /* P.ðˆ|lCü®ˆ·”XGP_ */
2855 $"2B73 6E58 E20E 18A2 01B4 DF7F F5BD D4BC" /* +snXâ..¢.´ß.õ½Ô¼ */
2856 $"B259 706B 754E 9740 BBF2 54FC FCB8 B293" /* ²YpkuN—@»òTüü¸²“ */
2857 $"4CEA 3670 D04B 8C42 B7C2 314D 1F53 956B" /* Lê6pÐKŒB·Â1M.S•k */
2858 $"CB14 9D05 8288 E7F0 D4FF 70AE EFB7 A10B" /* Ë..‚ˆçðÔÿp®ï·¡. */
2859 $"EDDE 3CFE 1B9D 7DBA 7B7D BD13 DF6F 45B8" /* íÞ<þ.}º{}½.ßoE¸ */
2860 $"FE1A 077D B444 FAB6 46FB 75FC E8AB DECC" /* þ..}´Dú¶Fûuüè«ÞÌ */
2861 $"AF0D 6C8A C695 8734 8A7A 5A21 F65D 05F6" /* ¯.lŠÆ•‡4ŠzZ!ö].ö */
2862 $"A417 27AC 998E 3646 07A8 0055 19DC B524" /* ¤.'¬™Ž6F.¨.U.ܵ$ */
2863 $"D2F2 842C DF9F BECA C26B C9C9 D0FD CA3B" /* Òò„,ߟ¾ÊÂkÉÉÐýÊ; */
2864 $"DB1B 3F81 F6A7 4465 001E 5552 4D0D 3BF3" /* Û.?ö§De..URM.;ó */
2865 $"0140 A2E9 7D63 8456 F9C7 665D F7FC 2DBF" /* .@¢é}c„VùÇf]÷ü-¿ */
2866 $"1B41 0667 7939 1B16 4997 5584 3CFE 81B9" /* .A.gy9..I—U„<þ¹ */
2867 $"C4A8 B346 EC6D E726 2560 5CB8 8B84 7699" /* Ĩ³Fìmç&%`\¸‹„v™ */
2868 $"3999 2CA0 91D9 A05A C96C 660C 267B 74A0" /* 9™, ‘Ù ZÉlf.&{t  */
2869 $"B935 73EB D464 D860 2694 7584 A4D4 DC52" /* ¹5sëÔdØ`&”u„¤ÔÜR */
2870 $"D136 D49A 1BEA 53F5 AE2F C19E 44E9 BA0A" /* Ñ6Ôš.êSõ®/ÁžDéºÂ */
2871 $"5D83 6587 7792 3DCB 449A B33E 4632 A395" /* ]ƒe‡w’=ËDš³>F2£• */
2872 $"57A3 0EC0 B3A3 969D 9DF0 6ACC 859F FF7F" /* W£.À³£–ðjÌ…Ÿÿ. */
2873 $"FF27 DAA0 AF8E 216C E5D8 874A 530F 555E" /* ÿ'Ú ¯Ž!lå؇JS.U^ */
2874 $"AF3F E231 5BAF F7B6 8E73 5742 2717 4031" /* ¯?â1[¯÷¶ŽsWB'.@1 */
2875 $"175D 5FDA F402 B756 AEAE 7E7E BFEE CE68" /* .]_Úô.·V®®~~¿îÎh */
2876 $"7878 870D 01C2 C2A4 61D5 64E3 E195 B914" /* xx‡..¤aÕdãᕹ. */
2877 $"A45F FF52 DC14 F5E9 E037 65E3 5477 62A5" /* ¤_ÿRÜ.õéà7eãTwb¥ */
2878 $"3EEC CA32 6558 5965 8B6E 3F13 9DB2 1361" /* >ìÊ2eXYe‹n?.².a */
2879 $"8426 9FD7 B329 4E75 FF1D 9B78 9735 4B1B" /* „&Ÿ×³)Nuÿ.›x—5K. */
2880 $"D80E 1781 192F 6777 8F94 F6A2 5016 726D" /* Ø.../gw”ö¢P.rm */
2881 $"1E0D D2CB 6F87 B3C6 09A2 1FE3 915E 8943" /* ..ÒËo‡³ÆÆ¢.ã‘^‰C */
2882 $"FE6C 6743 4733 D5BC A9DD 5338 C9E1 AF50" /* þlgCG3Õ¼©ÝS8Éá¯P */
2883 $"3634 C26C 0C1F 94E7 50B2 4310 DD62 4F09" /* 64Âl..”çP²C.ÝbOÆ */
2884 $"ABCD 7821 8B7B 7B87 2EEA 25A1 9D3C 55CC" /* «Íx!‹{{‡.ê%¡<UÌ */
2885 $"0644 1B14 3456 2E32 C013 815C 66C7 0526" /* .D..4V.2À.\fÇ.& */
2886 $"E24D CE15 B8FB 5D8B 0506 E30A 1D6A E2ED" /* âMÎ.¸û]‹..ãÂ.jâí */
2887 $"6145 D124 0EC9 1FAB 4E50 06C2 9DA5 8F6C" /* aEÑ$.É.«NP.Â¥l */
2888 $"C072 D11E BFEE DFE6 F6C7 12F4 E89C 35B7" /* ÀrÑ.¿îßæöÇ.ôèœ5· */
2889 $"097E 2E25 393F CEA3 03C6 D3C7 DED5 3882" /* Æ~.%9?Σ.ÆÓÇÞÕ8‚ */
2890 $"ED26 A3FD 9130 95B5 F3FA D31A 691F 8E09" /* í&£ý‘0•µóúÓ.i.ŽÆ */
2891 $"BFA8 7D7B 85BD B179 5C20 2855 1268 F9AF" /* ¿¨}{…½±y\ (U.hù¯ */
2892 $"553D 939E 6FC6 C67E 4611 F88C BBD4 773C" /* U=“žoÆÆ~F.øŒ»Ôw< */
2893 $"5F16 D598 D5C5 E649 B66E FD8D A2D7 9807" /* _.Õ˜ÕÅæI¶ný¢×˜. */
2894 $"EDA2 4621 2CF5 DDE3 C078 6455 1C29 3A07" /* í¢F!,õÝãÀxdU.):. */
2895 $"E992 C5DE 8D33 041B 83C6 56F6 7C95 168E" /* é’ÅÞ3..ƒÆVö|•.Ž */
2896 $"6127 40D2 DE11 CFF2 3379 DC22 20E3 5E1B" /* a'@ÒÞ.Ïò3yÜ" ã^. */
2897 $"DE83 DBB5 5B8A 8572 3DF2 2890 DC56 BE6E" /* ÞƒÛµ[Š…r=ò(ÜV¾n */
2898 $"D15F 9396 ECD4 725F 2E18 7616 394A 64C3" /* Ñ_“–ìÔr_..v.9Jdà */
2899 $"FDAA E6F2 3D6D 46BC B270 5B8F ACB4 9CAE" /* ýªæò=mF¼²p[¬´œ® */
2900 $"0D0D 3F29 6A02 1E92 347A E406 A52D 111A" /* ..?)j..’4zä.¥-.. */
2901 $"2E79 0340 1D82 C861 0C40 1963 3397 A4FD" /* .y.@.‚Èa.@.c3—¤ý */
2902 $"A998 0B63 E30A 7AA3 A5BC 8A8E 9CD0 4795" /* ©˜.cãÂz£¥¼ŠŽœÐG• */
2903 $"7538 7FB2 EC9A 952C CE29 C80F 369C 4E8D" /* u8.²ìš•,Î)È.6œN */
2904 $"8000 1C55 D5F3 E2AD 812E 4FAA AC2C D9BB" /* €..UÕóâ­.Oª¬,Ù» */
2905 $"F4CD 5568 5643 826F 3A38 91BD 6F70 92D3" /* ôÍUhVC‚o:8‘½op’Ó */
2906 $"23EC DB91 0FC4 C3BB 7542 023B 85F0 36C3" /* #ìÛ‘.ÄûuB.;…ð6à */
2907 $"8BF6 F6F8 4E77 EEE5 851F 219A CF99 7D9E" /* ‹ööøNwîå….!šÏ™}ž */
2908 $"856D A687 BC63 8E39 0407 B007 D184 10BD" /* …m¦‡¼cŽ9..°.Ñ„.½ */
2909 $"D9EF ACB1 B75A 46FA F95E 42DF 377B E2F7" /* Ùבּ·ZFúù^Bß7{â÷ */
2910 $"BEF2 357A 861C F486 B3F7 57E1 D39B 095B" /* ¾ò5z†.ô†³÷WáÓ›Æ[ */
2911 $"40C0 925C 0CA1 7885 CFEA 48B7 33E9 E8DE" /* @À’\.¡x…ÏêH·3éèÞ */
2912 $"D178 1E15 91D1 F6C5 BC87 CB7E CCC6 DEDE" /* Ñx..‘Ñöż‡Ë~ÌÆÞÞ */
2913 $"B017 A4C1 0B0F DD17 660E CB97 C098 C773" /* °.¤Á..Ý.f.Ë—À˜Çs */
2914 $"8A0A F4DB 59BD A218 055E 5348 05D8 B304" /* ŠÂôÛY½¢..^SH.س. */
2915 $"9F23 E1B1 0754 6DA2 FF33 34CB 2B12 7114" /* Ÿ#á±.Tm¢ÿ34Ë+.q. */
2916 $"62D2 4CA8 8091 CD34 8467 2752 B77A AA5B" /* bÒL¨€‘Í4„g'R·zª[ */
2917 $"15FC 2E56 7A29 9351 B6A4 AEE5 B56D 354D" /* .ü.Vz)“Q¶¤®åµm5M */
2918 $"3ED2 FA71 25E9 F887 B187 BADB B11B 2E01" /* >Òúq%éø‡±‡ºÛ±... */
2919 $"93B3 4206 45ED 7238 3F80 1441 50CA CCBA" /* “³B.Eír8?€.APÊ̺ */
2920 $"EF59 3BC5 4236 2ABF 9150 7335 49C5 0216" /* ïY;ÅB6*¿‘Ps5IÅ.. */
2921 $"F97B D5A5 1EF5 A69D 8B34 C25B 73E1 DA52" /* ù{Õ¥.õ¦‹4Â[sáÚR */
2922 $"79E5 9EB1 9CB1 0952 B3F5 E221 D426 4759" /* yåž±œ±ÆR³õâ!Ô&GY */
2923 $"D5CF 2D18 CC2A 270A 859D F10C 8108 52FF" /* ÕÏ-.Ì*'Â…ñ..Rÿ */
2924 $"2A7D D39E EFFD 568C 2DB3 7BD5 62D0 2403" /* *}ÓžïýVŒ-³{ÕbÐ$. */
2925 $"69D1 A4B6 2D24 E485 973D F6A5 E6DC 1DB5" /* iѤ¶-$ä…—=ö¥æÜ.µ */
2926 $"BF0B E185 5592 E3A0 6046 E050 5151 9546" /* ¿.á…U’ã `FàPQQ•F */
2927 $"17F7 0CF6 222F 17E0 40E5 3EF5 74EE BAB6" /* .÷.ö"/.à@å>õt */
2928 $"55BD 76C1 DD80 39C8 BAE0 37B8 398A B370" /* U½vÁÝ€9Ⱥà7¸9Š³p */
2929 $"D400 0C29 5DC9 94FF 069B 36E2 CD79 195F" /* Ô..)]É”ÿ.›6âÍy._ */
2930 $"5B9B 1237 1F18 C560 C901 F9A4 184B 7570" /* [›.7..Å`É.ù¤.Kup */
2931 $"433E 75BE 0297 C641 7D9B 7092 8D64 96F5" /* C>u¾.—ÆA}›p’d–õ */
2932 $"D70C 9B66 71D3 09B1 F635 0FC3 0B49 7D6E" /* ×.›fqÓƱö5.Ã.I}n */
2933 $"660C 8E1D 0257 672B 97EE C2A5 7B84 729E" /* f.Ž..Wg+—îÂ¥{„rž */
2934 $"6516 585E 354F 2E22 88A7 A515 B945 3745" /* e.X^5O."ˆ§¥.¹E7E */
2935 $"F6A5 5CB2 E212 10AD AB6F 07F5 FDA3 09EB" /* ö¥\²â..­«o.õý£Æë */
2936 $"A053 313B 9A8E 757D E132 D483 DC78 0882" /*  S1;šŽu}á2ÔƒÜx.‚ */
2937 $"A63C 95E0 036C 4626 F66B 5F6C 39A1 9401" /* ¦<•à.lF&ök_l9¡”. */
2938 $"7276 4DCE 4487 7D8C 12A3 B713 9139 AC0A" /* rvMÎD‡}Œ.£·.‘9¬Â */
2939 $"18AD 4DFD 2A3D 69E7 E76E 593C 8DAB FD56" /* .­Mý*=iççnY<«ýV */
2940 $"F959 BA6B FBA3 2853 D610 4DB0 7A30 3A09" /* ùYºkû£(SÖ.M°z0:Æ */
2941 $"916B DFF7 B3B4 F8D3 9619 0FD9 8FBC FC6B" /* ‘kß÷³´øÓ–..Ù¼ük */
2942 $"D73D ABD2 4C41 6AD0 6584 AF19 3074 AF6E" /* ×=«ÒLAjÐe„¯.0t¯n */
2943 $"369C BEB1 76D5 D311 6172 F157 D522 DDED" /* 6œ¾±vÕÓ.arñWÕ"Ýí */
2944 $"D4ED 0230 0BB5 E881 0E6B 9C4F 111F 4F6E" /* Ôí.0.µè.kœO..On */
2945 $"7CAD 4745 7BBF DA70 A9C4 051E FDEA 206C" /* |­GE{¿Úp©Ä..ýê l */
2946 $"9983 0E2D 4A4A A4DE 82E9 DAAF 5748 37AE" /* ™ƒ.-JJ¤Þ‚éÚ¯WH7® */
2947 $"4046 DCCB 0D1A 80DA 1804 20E2 F7CF AD69" /* @FÜË..€Ú.. â÷Ï­i */
2948 $"F9D8 5106 D02D 16E9 4437 9560 B618 1126" /* ùØQ.Ð-.éD7•`¶..& */
2949 $"95A2 4B23 89C4 78EE 898E D80C 8E49 5201" /* •¢K#‰ÄxØ.ŽIR. */
2950 $"2095 ABAF 9CA5 0F8E CB22 00D4 4289 59B3" /* •«¯œ¥.ŽË".ÔB‰Y³ */
2951 $"1835 1395 8AE5 3A88 7185 E7DD 57F3 4CE4" /* .5.•Šå:ˆq…çÝWóLä */
2952 $"1465 C878 6B72 7146 2AF1 F053 5B31 7697" /* .eÈxkrqF*ñðS[1v— */
2953 $"7300 A777 3919 099E BD1C 79C3 24C4 A355" /* s.§w9.Æž½.yÃ$Ä£U */
2954 $"0C88 C727 1831 D498 E513 47A5 F25F DDBE" /* .ˆÇ'.1Ô˜å.G¥ò_ݾ */
2955 $"46E7 40B5 EBCC 080F 6915 3FDF EDB9 A9B1" /* Fç@µëÌ..i.?ßí¹©± */
2956 $"39ED D794 60E1 A5A2 0EEC 7A09 46BF 201E" /* 9í×”`ᥢ.ìzÆF¿ . */
2957 $"311F EEEE 88EF C6C1 C10D E238 50C9 7F01" /* 1.îîˆïÆÁÁ.â8PÉ.. */
2958 $"DFF1 17BA D8F4 0017 47E7 75F2 4D82 679E" /* ßñ.ºØô..GçuòM‚gž */
2959 $"6867 60A4 6222 77B9 319B 186D FCB3 168A" /* hg`¤b"w¹1›.mü³.Š */
2960 $"EAF3 C227 1082 D7ED 2C70 E619 8676 0186" /* êóÂ'.‚×í,pæ.†v.† */
2961 $"8C23 5DE5 D4A0 61CB CDE4 AED5 E008 6F3C" /* Œ#]åÔ aËÍä®Õà.o< */
2962 $"D894 AC14 6FEC 5D4C C2FF 3A6C 512F E475" /* Ø”¬.oì]LÂÿ:lQ/äu */
2963 $"FCB8 DFA4 EB46 2DF4 E133 5858 364B 54E1" /* ü¸ß¤ëF-ôá3XX6KTá */
2964 $"A6E1 5D0C 157E D987 DF95 B1FB 3723 4F2F" /* ¦á]..~هߕ±û7#O/ */
2965 $"C9BF C6D4 D979 412E D0EB B285 8DFF 7CAC" /* É¿ÆÔÙyA.Ðë²…ÿ|¬ */
2966 $"F1BF 1825 8B89 9992 3848 C666 4184 4906" /* ñ¿.%‹‰™’8HÆfA„I. */
2967 $"0D61 6B58 9355 A5D9 C940 B6F2 6918 82E1" /* .akX“U¥ÙÉ@¶òi.‚á */
2968 $"FF7D 4F5F FE94 5208 650B B780 0D2B DD4F" /* ÿ}O_þ”R.e.·€.+ÝO */
2969 $"5874 3627 2353 6328 06B9 908C 6C95 D898" /* Xt6'#Sc(.¹Œl•Ø˜ */
2970 $"8C24 1D0F 641B 7763 CFBE E88A BB05 8639" /* Œ$..d.wcϾ芻.†9 */
2971 $"D91C 4A38 3A3F 75C6 61BD BFED CA10 2A73" /* Ù.J8:?uÆa½¿íÊ.*s */
2972 $"E3C5 E85C BF5B 0346 2105 4286 300D D812" /* ãÅè\¿[.F!.B†0.Ø. */
2973 $"8BE4 DAE4 292B A765 338E 7E42 50F1 8046" /* ‹äÚä)+§e3Ž~BPñ€F */
2974 $"3FDC 1A85 4616 61E5 7321 18D9 5AB9 8903" /* ?Ü.…F.aås!.ÙZ¹‰. */
2975 $"90BD 6F89 E7D0 35D1 0AA3 BBAE 3CF8 A7B7" /* ½o‰çÐ5Ñ£»®<ø§· */
2976 $"73C8 8B94 B409 16EC 60A6 E819 BCA7 BA66" /* sÈ‹”´Æ.ì`¦è.¼§ºf */
2977 $"2245 524C 718C 635D E4F7 ACA0 02C3 E0A7" /* "ERLqŒc]ä÷¬ .Ãৠ*/
2978 $"B542 0FF5 7029 FF4D 1D88 E3B3 D657 802B" /* µB.õp)ÿM.ˆã³ÖW€+ */
2979 $"8068 9BD4 B17F 9A6B CC1C 4B53 246F 81E5" /* €h›Ô±.škÌ.KS$oå */
2980 $"9168 48EC 4B44 3FFF 7B8B 5777 5677 134E" /* ‘hHìKD?ÿ{‹WwVw.N */
2981 $"1B8E 8C91 429F CE85 86EF 62B4 71AF EAE7" /* .ŽŒ‘BŸÎ…†ïb´q¯êç */
2982 $"E333 7BD3 2825 7230 C950 0000 1B8D 8BA6" /* ã3{Ó(%r0ÉP...‹¦ */
2983 $"04C1 56DC 30F0 619E DD6C D196 C91E 1ED4" /* .ÁVÜ0ðažÝlÑ–É..Ô */
2984 $"1285 94A8 F775 05A9 3440 78FF 7E52 8833" /* .…”¨÷u.©4@xÿ~Rˆ3 */
2985 $"E8A1 A4E4 4580 38DD ADE1 3BD5 AD19 74E6" /* 衤äE€8Ý­á;Õ­.tæ */
2986 $"EEA1 B4B1 0B0B 9BE9 08EC DB78 E6AA 37E5" /* î¡´±..›é.ìÛxæª7å */
2987 $"AD06 72A6 51FC 0004 4737 BF1A 89FF 7E11" /* ­.r¦Qü..G7¿.‰ÿ~. */
2988 $"0A68 EAD7 BDA5 4D5B 2C8D 0C7A 952E 2190" /* Âhê×½¥M[,.z•.! */
2989 $"8451 1B38 CEFD 2835 5ADD BDA2 01C2 A3D6" /* „Q.8Îý(5Zݽ¢.壅 */
2990 $"6046 4BD8 41DF D8B6 D9B1 1F96 5FF8 CC56" /* `FKØAßضٱ.–_øÌV */
2991 $"A63B 6E14 5035 26D6 946D 1F59 4D17 5507" /* ¦;n.P5&Ö”m.YM.U. */
2992 $"85F7 2DAF A737 4E30 9097 2E2E DAF8 37D1" /* …÷-¯§7N0—..Úø7Ñ */
2993 $"D987 4E59 ABFD CDF3 AAC3 30D1 8616 FAB3" /* Ù‡NY«ýÍóªÃ0ц.ú³ */
2994 $"2914 92AA 6913 C36F 66DA 4B0B 18FE DD55" /* ).’ªi.ÃofÚK..þÝU */
2995 $"1D2A 3F00 D80C 2423 D923 95C6 E11D 0069" /* .*?.Ø.$#Ù#•Æá..i */
2996 $"B5C9 0803 0907 B950 13DF 48EC F794 3D36" /* µÉ..Æ.¹P.ßHì÷”=6 */
2997 $"5249 2492 4924 9249 2489 9EF6 DC36 9A6B" /* RI$’I$’I$‰žöÜ6šk */
2998 $"1751 415E A37F 47EC A4EA 67AC A222 733C" /* .QA^£.Gì¤êg¬¢"s< */
2999 $"467D 1FFE C727 E6AA 6E99 C584 A87E DFFF" /* F}.þÇ'æªn™Å„¨~ßÿ */
3000 $"7FC3 7592 8204 71A2 6088 C38B 6E65 868E" /* .Ãu’‚.q¢`ˆÃ‹ne†Ž */
3001 $"5A3F FF7F F919 4069 CF10 A302 5125 525C" /* Z?ÿ.ù.@iÏ.£.Q%R\ */
3002 $"A443 88AF 4104 7807 1410 84BA E955 76E8" /* ¤Cˆ¯A.x...„ºéUvè */
3003 $"5F35 B612 A668 5694 9249 2492 4924 9249" /* _5¶.¦hV”’I$’I$’I */
3004 $"2492 4924 4C25 1941 A4EB 1996 7A28 19C1" /* $’I$L%.A¤ë.–z(.Á */
3005 $"A1B0 01D7 ACB2 3F83 42DC D154 27C9 F11F" /* ¡°.׬²?ƒBÜÑT'Éñ. */
3006 $"FC46 90B1 89C4 F78A 4C6F 5C2A 833D 8425" /* üF±‰Ä÷ŠLo\*ƒ=„% */
3007 $"D837 CA14 E4C7 7F8A 9833 99B7 E589 1376" /* Ø7Ê.äÇ.Š˜3™·å‰.v */
3008 $"C867 FF1D 200A 4C9B 624E 68E3 11AE C8AF" /* Ègÿ. ÂL›bNhã.®È¯ */
3009 $"1723 C741 CEAC 16CE C548 72FF 15CD 3E67" /* .#ÇAά.ÎÅHrÿ.Í>g */
3010 $"AF2C 323F 0FD0 6752 4973 55BD CC10 05B4" /* ¯,2?.ÐgRIsU½Ì..´ */
3011 $"AB3F 9302 00C3 EE70 1BA4 B650 FAB2 5821" /* «?“..Ãîp.¤¶Pú²X! */
3012 $"3856 3872 1B02 7D70 F1F9 0B28 A9DC CAE7" /* 8V8r..}pñù.(©ÜÊç */
3013 $"D9E7 6252 A768 A7DE 0FB1 FCB1 F54B 98C4" /* ÙçbR§h§Þ.±ü±õK˜Ä */
3014 $"7B6E 5E24 BC53 F945 741F 66A0 A51E EE5A" /* {n^$¼SùEt.f ¥.îZ */
3015 $"2A0D B951 4EEE A88B 4F2F C326 F326 1D12" /* *.¹QNO/Ã&ó&.. */
3016 $"524A 9E48 CC53 44EF C54F 1737 8505 46CF" /* RJžHÌSDïÅO.7….FÏ */
3017 $"351E 4354 05C7 C832 2A7D 8899 D009 E617" /* 5.CT.ÇÈ2*}ˆ™ÐÆæ. */
3018 $"0334 305D 9497 D845 E6D3 2CD2 178F 1316" /* .40]”—ØEæÓ,Ò... */
3019 $"65AD 239E 2ED5 ECCB 402A E728 09B5 E847" /* e­#ž.ÕìË@*ç(ƵèG */
3020 $"65BD 3F31 CAC5 F9D8 6606 B8AF 4F84 89FE" /* e½?1ÊÅùØf.¸¯O„‰þ */
3021 $"9004 4730 30BC E58F 5FB3 38CF 36B9 38FC" /* .G00¼å_³8Ï6¹8ü */
3022 $"FB9D 07EA D13F 9DB9 7185 0E88 0E3B 06E5" /* û.êÑ?¹q….ˆ.;.å */
3023 $"D476 CFCA 1587 3067 9257 B5DF 1E83 E7FF" /* ÔvÏÊ.‡0g’Wµß.ƒçÿ */
3024 $"7FFF 7FFF 0E68 E181 AC15 B980 2AFB 1D80" /* .ÿ.ÿ.há¬.¹€*û.€ */
3025 $"C5BB A88D E36A 4DC5 94CF 6DB2 0694 F977" /* Å»¨ãjMÅ”Ïm².”ùw */
3026 $"D708 02D1 F380 6773 016A CA84 3B1C 6A33" /* ×..Ñó€gs.jÊ„;.j3 */
3027 $"5AAC BA2D FEC5 7542 51FC 68D0 CDDD EA44" /* Z¬º-þÅuBQühÐÍÝêD */
3028 $"788E 2F96 D80C F159 FF45 3316 1494 A7F5" /* xŽ/–Ø.ñYÿE3..”§õ */
3029 $"98B4 FC39 0062 D59B 52A6 32CB F97C ABD6" /* ˜´ü9.bÕ›R¦2Ëù|«Ö */
3030 $"42AE AE46 6AA7 D986 0A4E DCDD 717E 8B7C" /* B®®Fj§Ù†ÂNÜÝq~‹| */
3031 $"8FB8 B396 65A6 83FF 6A4A A5C1 597F 70AF" /* ¸³–e¦ƒÿjJ¥ÁY.p¯ */
3032 $"DC96 E2EC 0C1D 7A00 3428 2C60 DE32 8DB8" /* Ü–âì..z.4(,`Þ2¸ */
3033 $"1604 C249 5E82 1F5B 6C23 E562 B2D4 754E" /* ..ÂI^‚.[l#åb²ÔuN */
3034 $"7F73 442A 25D3 C42A 6A6D 5D09 0E8C 2E67" /* .sD*%ÓÄ*jm]Æ.Œ.g */
3035 $"95EC 08FE B505 8B5A A4A8 0000 0000 0000" /* •ì.þµ.‹Z¤¨...... */
3036 $"0000 0000 6121 26B3 27C3 AEC0 FF52 2FEE" /* ....a!&³'îÀÿR/î */
3037 $"D4F3 92BB 06E2 ABE4 35DC A278 9084 B2F0" /* Ôó’».â«ä5Ü¢x„²ð */
3038 $"EE1A ADB2 F770 3D4E 120A FD01 B042 CD00" /* î.­²÷p=N.Âý.°BÍ. */
3039 $"B9C2 B661 40B0 E5FC DC59 59F0 61C5 53A7" /* ¹Â¶a@°åüÜYYðaÅS§ */
3040 $"7AC1 7EDC 77B7 1C84 0F9A E321 389C E693" /* zÁ~Üw·.„.šã!8œæ“ */
3041 $"AC98 5160 DDD0 C9A9 BE17 ED52 A10A 300C" /* ¬˜Q`ÝÐÉ©¾.íR¡Â0. */
3042 $"88ED BB5A 80DA C23B 1196 0C7C 6BA8 D4EA" /* ˆí»Z€ÚÂ;.–.|k¨Ôê */
3043 $"4FAB 08A9 EBE3 1CC9 6782 F6A9 85A4 1829" /* O«.©ëã.Ég‚ö©…¤.) */
3044 $"48BB D188 41E8 65BA 28BB 8AC1 8368 DC2F" /* H»ÑˆAèeº(»ŠÁƒhÜ/ */
3045 $"B2DE 61FE 95C0 BD88 C027 9CD9 3819 8A81" /* ²Þaþ•À½ˆÀ'œÙ8.Š */
3046 $"20FF 616C DEAE C6EA 15A3 D12F 764A B4E2" /* ÿalÞ®Æê.£Ñ/vJ´â */
3047 $"ECA3 AF32 36FF 29B0 E3CD 5046 527E 39B7" /* 죯26ÿ)°ãÍPFR~9· */
3048 $"921A ABF8 F0CB 7040 5FCD A182 4C57 986D" /* ’.«øðËp@_Í¡‚LW˜m */
3049 $"1115 DD94 687C 3663 7CFB 6C40 642D C8CA" /* ..Ý”h|6c|ûl@d-ÈÊ */
3050 $"1117 B5A9 8025 123D 9406 58F9 96B5 321E" /* ..µ©€%.=”.Xù–µ2. */
3051 $"7646 4BFD 48DE 0B9B DBEF B79F B6C7 031E" /* vFKýHÞ.›Ûï·Ÿ¶Ç.. */
3052 $"1D3B 1D18 B35D 2813 5601 3924 6AE1 FC21" /* .;..³](.V.9$jáü! */
3053 $"60B9 0B9F 6B4B AFB9 15D8 C57A 5345 7461" /* `¹.ŸkK¯¹.ØÅzSEta */
3054 $"0EF9 4B6B 88D1 7833 02DF 4FB8 DBEC 836A" /* .ùKkˆÑx3.ßO¸Ûìƒj */
3055 $"BEA7 3972 93C0 F973 37B5 C84F 1655 031C" /* ¾§9r“Àùs7µÈO.U.. */
3056 $"674D 741E 308E E3BA 6684 5BB0 4506 AB40" /* gMt.0Žãºf„[°E.«@ */
3057 $"14DE BFF2 9B38 4026 C5C2 3A44 FDFF 25CB" /* .Þ¿ò›8@&ÅÂ:Dýÿ%Ë */
3058 $"072E 1D99 62E3 22B8 DE8D 9CF1 79FA 1D38" /* ...™bã"¸Þœñyú.8 */
3059 $"8900 17CB A72B 8124 7EAF CF2F FC8D 34D6" /* ‰..˧+$~¯Ï/ü4Ö */
3060 $"E0AC 58ED 8BC1 0DAA 7964 FB91 BF08 EFA6" /* à¬Xí‹Á.ªydû‘¿.ï¦ */
3061 $"42FF 7FFF 7FE3 AF13 7C4B 1CF4 D643 3CD3" /* Bÿ.ÿ.ã¯.|K.ôÖC<Ó */
3062 $"5F1A 08BB 7C56 5CFB 6D27 04DE C66A 9AF1" /* _..»|V\ûm'.ÞÆjšñ */
3063 $"2053 D4B2 EE60 44FF 2A89 1FFC DFCC 57C1" /* SÔ²î`Dÿ*‰.üßÌWÁ */
3064 $"3800 1290 7854 7902 FF7A 9A36 D71E F8D1" /* 8..xTy.ÿzš6×.øÑ */
3065 $"D439 471B D02F 4A39 E5BC D25F FDF0 8B54" /* Ô9G.Ð/J9å¼Ò_ýð‹T */
3066 $"AE0A 3677 2625 B286 7DEC 8FF7 2457 2B25" /* ®Â6w&%²†}ì÷$W+% */
3067 $"C066 2A4E A605 EE16 7244 CCFD D3D3 FDA1" /* Àf*N¦.î.rDÌýÓÓý¡ */
3068 $"F3B8 76C3 1C5F 491C 0165 8735 D71D 19AD" /* ó¸vÃ._I..e‡5×..­ */
3069 $"9BB1 A40D E5BA 9D1C E34B B71C 9CF0 EC7A" /* ›±¤.åº.ãK·.œðìz */
3070 $"5E87 C4F0 A326 0913 9E2C 6517 50A3 E72B" /* ^‡Äð£&Æ.ž,e.P£ç+ */
3071 $"87FE D348 2E5D 0A00 0000 0000 0000 0000" /* ‡þÓH.]Â......... */
3072 $"0002 2C86 A73D 4030 2FE4 D32C 2B56 C74C" /* ..,†§=@0/äÓ,+VÇL */
3073 $"0869 A5C9 151A 69B9 9390 DA50 4411 8FFF" /* .i¥É..i¹“ÚPD.ÿ */
3074 $"4938 4E36 F9DD 09FB E4A0 C339 2431 ED8B" /* I8N6ùÝÆûä Ã9$1í‹ */
3075 $"793D 6354 12C0 97F9 C379 ADA9 7DEE E5EF" /* y=cT.À—ùÃy­©}îåï */
3076 $"2366 FF4F E2A2 F01A C90F 02E3 51CD B477" /* #fÿOâ¢ð.É..ãQÍ´w */
3077 $"2230 690A B47C E28B 463C 2E88 7579 7943" /* "0i´|â‹F<.ˆuyyC */
3078 $"5055 6D0A EEC5 F3BF 2404 37D8 EFE1 71AC" /* PUmÂîÅó¿$.7Øïáq¬ */
3079 $"6AFE A3E4 A7EB 28BF BFFE 4373 E5FF 7E4A" /* jþ£ä§ë(¿¿þCsåÿ~J */
3080 $"2D5D 1ED3 6D78 1657 9914 A061 7958 972C" /* -].Ómx.W™. ayX—, */
3081 $"56FB D5B0 1FFD A18B 7A29 0C81 295B DF7C" /* VûÕ°.ý¡‹z).)[ß| */
3082 $"83E3 CD36 0E66 7E2B D8FA 3096 AA44 7F9B" /* ƒãÍ6.f~+Øú0–ªD.› */
3083 $"F0B9 EA48 8CC7 0FFF 7E1C F394 CC5B 6A25" /* ð¹êHŒÇ.ÿ~.ó”Ì[j% */
3084 $"FD4C CECC 630B 38B7 D621 F081 73EE 9D40" /* ýLÎÌc.8·Ö!ðsî@ */
3085 $"7FAD FADD 8111 6492 599E DD2C 3600 FF6C" /* .­úÝ.d’YžÝ,6.ÿl */
3086 $"5A8D B0B8 2AE7 668D C5A0 826B FA0D C5B1" /* Z°¸*çfÅ ‚kú.ű */
3087 $"6873 D749 B533 9627 C2F6 4922 63F7 8944" /* hs×Iµ3–'ÂöI"c÷‰D */
3088 $"15C5 A1F9 8539 A21A 1CEB 1C2D 7D1B 0516" /* .Å¡ù…9¢..ë.-}... */
3089 $"FD6C 5D4F 92A3 14D9 126F C5FC 4116 B499" /* ýl]O’£.Ù.oÅüA.´™ */
3090 $"D878 D889 9123 D3C8 4637 36E3 8644 6F0B" /* Øx؉‘#ÓÈF76ã†Do. */
3091 $"D2C6 A599 B793 1367 B548 23BD 8836 11E5" /* ÒÆ¥™·“.gµH#½ˆ6.å */
3092 $"C323 7AD5 0534 3D05 A4E6 70B3 0376 2B0C" /* Ã#zÕ.4=.¤æp³.v+. */
3093 $"A964 173B F0BC 2A52 7FE4 2A53 85C2 22B2" /* ©d.;ð¼*R.ä*S…Â"² */
3094 $"B83F 7185 FB4C 3769 5B3E 4A24 E7E1 D0FD" /* ¸?q…ûL7i[>J$çáÐý */
3095 $"9B17 8737 FE8B E4C7 9FC1 0E30 D904 D0C5" /* ›.‡7þ‹äÇŸÁ.0Ù.ÐÅ */
3096 $"D2F5 05E4 3CD6 5FA7 B9AF FB98 755E 0BAF" /* Òõ.ä<Ö_§¹¯û˜u^.¯ */
3097 $"E4EE 408D A8BE 5E58 07A6 059D 1B33 37F3" /* äî@¨¾^X.¦..37ó */
3098 $"8D14 871A 7FC6 43ED 6A6F 8F41 9681 095E" /* .‡..ÆCíjoA–Æ^ */
3099 $"EE46 5BA4 1E15 F5F2 3063 E524 A62A 7C7F" /* îF[¤..õò0cå$¦*|. */
3100 $"0E38 5D00 A378 8F6D 3861 2088 EDD7 AC24" /* .8].£xm8a ˆí׬$ */
3101 $"D3B6 B052 DE10 357D B65A 1414 4596 8E3D" /* Ó¶°RÞ.5}¶Z..E–Ž= */
3102 $"97E3 D838 9ACC 3C84 AF82 EA8D 8BD3 0180" /* —ãØ8šÌ<„¯‚ê‹Ó.€ */
3103 $"1582 0654 BB61 1047 ACA1 29D3 7CFA 00C8" /* .‚.T»a.G¬¡)Ó|ú.È */
3104 $"BABC 146B 250C 8D19 8A4E A8B3 50D6 B986" /* º¼.k%..ŠN¨³PÖ¹† */
3105 $"2AD6 CEFA 02D6 AE11 FF7C B0A2 E6E0 30E9" /* *ÖÎú.Ö®.ÿ|°¢æà0é */
3106 $"D904 4C03 3BC1 8B68 5892 30B8 7D69 C2D6" /* Ù.L.;Á‹hX’0¸}iÂÖ */
3107 $"A9F8 56A2 7417 1E31 186F 09A1 4C11 6DCA" /* ©øV¢t..1.oÆ¡L.mÊ */
3108 $"A62E 5FCC F59A CCE8 6A29 B0DF E2BC E8BF" /* ¦._ÌõšÌèj)°ßâ¼è¿ */
3109 $"92DF 70C1 8B09 21DF 1440 1684 4413 2A60" /* ’ßpÁ‹Æ!ß.@.„D.*` */
3110 $"E033 6D92 8573 E63C 2746 6F40 D8F0 D0C9" /* à3m’…sæ<'Fo@ØðÐÉ */
3111 $"10AF 85A2 CFBF 373B B250 85E4 C1D3 85D2" /* .¯…¢Ï¿7;²P…äÁÓ…Ò */
3112 $"E167 1222 DF4A 67D9 B3D6 55B4 B047 8675" /* ág."ßJgÙ³ÖU´°G†u */
3113 $"C803 6AE5 E5AE AF92 C4B7 591A A040 98AC" /* È.jå宯’Ä·Y. @˜¬ */
3114 $"4412 45F8 BBC8 6482 F7BD 81B2 98FE 9D0B" /* D.Eø»Èd‚÷½²˜þ. */
3115 $"DAB1 2959 952C 9115 3504 9A24 BBA4 A04C" /* Ú±)Y•,‘.5.š$»¤ L */
3116 $"4125 5810 54F5 C268 63C2 1DB9 11CF 85BB" /* A%X.TõÂhcÂ.¹.Ï…» */
3117 $"D941 F5A1 0239 DED3 856D BBE5 7CF3 49C3" /* ÙAõ¡.9ÞÓ…m»å|óIà */
3118 $"C9CF 1BD1 A953 F58A F9AF E704 E70E 43B7" /* ÉÏ.Ñ©SõŠù¯ç.ç.C· */
3119 $"2B51 BE14 4FF3 262C 914B 90AF F2A9 E060" /* +Q¾.Oó&,‘K¯ò©à` */
3120 $"6A24 6553 B776 C48D 19AD ECD3 2DD3 8ECF" /* j$eS·vÄ.­ìÓ-ÓŽÏ */
3121 $"9EC7 8A0D 97F4 3C69 6E56 0881 1136 C147" /* žÇŠ.—ô<inV..6ÁG */
3122 $"E7D3 6FE5 A0C6 D7DC BCB0 76AC C4F8 DD65" /* çÓoå Æ×ܼ°v¬ÄøÝe */
3123 $"A5F9 02BF 2BFD 9A2C 354D 24C2 E088 6B63" /* ¥ù.¿+ýš,5M$Âàˆkc */
3124 $"E514 C014 E8F4 F5C2 B529 74FB EC02 032B" /* å.À.èôõµ)tûì..+ */
3125 $"A54B 696E B602 7D58 4542 824D BD8C 40FA" /* ¥Kin¶.}XEB‚M½Œ@ú */
3126 $"F675 5CD4 71C9 058E 7062 0E1B 10CC 72A9" /* öu\ÔqÉ.Žpb...Ìr© */
3127 $"95B8 C5FD 7EAF 995C 62ED DDE4 6579 3181" /* •¸Åý~¯™\bíÝäey1 */
3128 $"8BA1 A02B 1559 F5BC E9C9 914D 8CEB D7D8" /* ‹¡ +.Yõ¼éÉ‘MŒë×Ø */
3129 $"7D81 20C0 A609 18D2 B679 7C08 FB00 E4C6" /* } À¦Æ.Ò¶y|.û.äÆ */
3130 $"2797 518E 32CE 67CE 3C8E 6796 A832 F712" /* '—QŽ2ÎgÎ<Žg–¨2÷. */
3131 $"0037 059C 96CD 85A0 98E6 5D20 05F2 EC61" /* .7.œ–Í… ˜æ] .òìa */
3132 $"335D AFFF 14BC 3EF9 0779 7A53 BAA4 F47A" /* 3]¯ÿ.¼>ù.yzSº¤ôz */
3133 $"6926 DAD2 72F9 5D4B 1014 8BD5 A4FA 68EA" /* i&ÚÒrù]K..‹Õ¤úhê */
3134 $"D9F9 F684 BFD5 F2ED FB9E 4C18 91C3 FF17" /* Ùùö„¿ÕòíûžL.‘Ãÿ. */
3135 $"2D17 D99A DE29 FE6E 63A4 C901 8642 9357" /* -.ÙšÞ)þnc¤É.†B“W */
3136 $"3120 4386 1938 E7D2 572D 0C59 E3C9 7FED" /* 1 C†.8çÒW-.YãÉ.í */
3137 $"30FA E54A CEF8 A94C F92D AF19 76EA 3372" /* 0úåJÎø©Lù-¯.vê3r */
3138 $"B4E1 E7C5 8239 A4AC A247 4838 55E8 EB9B" /* ´áçÅ‚9¤¬¢GH8Uèë› */
3139 $"DE7D 94E9 DBD7 07FB D488 1672 E61D 9E4C" /* Þ}”éÛ×.ûÔˆ.ræ.žL */
3140 $"6DF2 97D5 4936 F89A 5CBC D37A 8C2C F7ED" /* mò—ÕI6øš\¼ÓzŒ,÷í */
3141 $"9755 19F2 0350 AB2E D851 F0B7 78B5 9770" /* —U.ò.P«.ØQð·xµ—p */
3142 $"4DF3 4212 9C9C CA3B 403A BA7B D497 9410" /* MóB.œœÊ;@:º{Ô—”. */
3143 $"04C6 288B 5058 5DC9 EB79 AB85 622C 9A55" /* .Æ(‹PX]Éëy«…b,šU */
3144 $"2DA7 C113 9315 7CAE D84E 6B50 4062 AE94" /* -§Á.“.|®ØNkP@b®” */
3145 $"8F5E 7969 4BA5 56B2 E881 8C02 ED3B 5259" /* ^yiK¥V²èŒ.í;RY */
3146 $"24CE C98A 4348 12B1 314F E3E3 B6A3 4E61" /* $ÎÉŠCH.±1Oã㶣Na */
3147 $"A426 6350 E380 B0B5 DEFF 64CF 72D6 D4B9" /* ¤&cP〰µÞÿdÏrÖÔ¹ */
3148 $"907C 9BE0 7E4D 39F9 2BB7 C3DE D7C3 DCD8" /* |›à~M9ù+·ÃÞ×ÃÜØ */
3149 $"1F93 775F 0F44 DF0F A717 C3E9 D603 F269" /* .“w_.Dß.§.ÃéÖ.òi */
3150 $"FBE1 D36F 87B3 6F87 B280 E8AB DECC AF0D" /* ûáÓo‡³o‡²€è«Þ̯. */
3151 $"6C8A C695 8734 87EB A75F 5130 05EC 9BA8" /* lŠÆ•‡4‡ë§_Q0.웨 */
3152 $"78DB 85A2 680C 75A0 EDD1 4AA2 7E1B BAFF" /* xÛ…¢h.u íÑJ¢~.ºÿ */
3153 $"5AFC FD6C 3E36 A6D9 923A 2DCE 24BC 35EF" /* Züýl>6¦Ù’:-Î$¼5ï */
3154 $"27F4 8813 7CC4 0141 3CD9 9568 BFE6 BBB3" /* 'ôˆ.|Ä.A<Ù•h¿æ»³ */
3155 $"219B 0442 5227 3796 635D 0DE7 499A A701" /* !›.BR'7–c].çIš§. */
3156 $"7F74 FB13 F9DF E737 08AB 0A91 3D9E B77D" /* .tû.ùßç7.«Â‘=ž·} */
3157 $"E616 57BB 8BAF 7A0D 1B28 42E6 D653 6BD3" /* æ.W»‹¯z..(BæÖSkÓ */
3158 $"D7A8 9A2B 0905 6198 8809 E5D0 D0A4 F589" /* רš+Æ.a˜ˆÆåÐФõ‰ */
3159 $"3D04 8161 C4CB 7BC9 96E2 9DA4 1C59 C982" /* =.aÄË{É–â¤.YÉ‚ */
3160 $"4705 B1BE 1E05 E391 5E89 43FE 6C67 4342" /* G.±¾..ã‘^‰CþlgCB */
3161 $"636F 80C5 6A98 16E6 6B80 27C8 D0D9 B28C" /* co€Åj˜.æk€'ÈÐÙ²Œ */
3162 $"6FD4 E109 61AB 8FCB D4CB 19ED 2BE7 B510" /* oÔáÆa«ËÔË.í+çµ. */
3163 $"C0E8 5883 0642 92A1 6094 7E45 5D3F 819A" /* ÀèXƒ.B’¡`”~E]?š */
3164 $"4B6F AE8E ED0B 4B30 ABB1 2789 5C58 EEFD" /* Ko®Ží.K0«±'‰\Xîý */
3165 $"06C9 EF2B 2A12 1731 7581 4428 C72D 2501" /* .Éï+*..1uD(Ç-%. */
3166 $"2C14 0DA4 2C98 035F FEA8 51A2 0E61 4C50" /* ,..¤,˜._þ¨Q¢.aLP */
3167 $"4A65 60DE FA1C F36C 62D9 A3FA 93A6 4CAC" /* Je`Þú.ólbÙ£ú“¦L¬ */
3168 $"C1D0 079D 912F A133 724B 13CC AFF4 1382" /* ÁÐ.‘/¡3rK.̯ô.‚ */
3169 $"D61F 8AF2 A48B CCA6 5D66 4F61 E6BE 657B" /* Ö.Šò¤‹Ì¦]fOaæ¾e{ */
3170 $"7F5B 6F20 397A BBC2 3F23 86DF 2355 4A18" /* .[o 9z»Â?#†ß#UJ. */
3171 $"15DB CB3E 201F FF7C 4AC9 C764 B098 CA46" /* .ÛË> .ÿ|JÉÇd°˜ÊF */
3172 $"C2CF 44C6 42E7 D30A FD05 380F 6BD3 24C1" /* ÂÏDÆBçÓÂý.8.kÓ$Á */
3173 $"3998 C5C1 E7D5 0E2C 8D50 7FBB 7A11 6CB7" /* 9˜ÅÁçÕ.,P.»z.l· */
3174 $"B80F 5A84 44BE E746 C43C 6B5D F055 7A3B" /* ¸.Z„D¾çFÄ<k]ðUz; */
3175 $"77CB BFA9 2B73 06AF 9C8B AF37 F600 E568" /* wË¿©+s.¯œ‹¯7ö.åh */
3176 $"EE70 09D2 B0A7 C201 94D9 AC58 E9A2 9D53" /* îpÆÒ°§Â.”Ù¬Xé¢S */
3177 $"94C0 D1C9 E379 E453 E4C7 27C5 C3F8 1161" /* ”ÀÑÉãyäSäÇ'ÅÃø.a */
3178 $"D631 3F3C 0CFE 13A3 F6EB 3048 F049 CF11" /* Ö1?<.þ.£öë0HðIÏ. */
3179 $"5962 65AE 5D8E F911 A2E2 7787 6C78 F63C" /* Ybe®]Žù.¢âw‡lxö< */
3180 $"E24C ED5B F634 B2B9 9DDF 51B0 94B9 1ABF" /* âLí[ö4²¹ßQ°”¹.¿ */
3181 $"BE93 4236 35A6 613E 3D1B C8FD 0587 27C7" /* ¾“B65¦a>=.Èý.‡'Ç */
3182 $"F936 55E0 D0CE BF1A 50D8 51CE 6253 0293" /* ù6UàÐο.PØQÎbS.“ */
3183 $"1958 3FA2 BF6C 54A5 B158 4236 7F88 7DE4" /* .X?¢¿lT¥±XB6.ˆ}ä */
3184 $"C231 6D0B 62F1 2C6C 1A1D F8AA 0317 C52D" /* Â1m.bñ,l..øª..Å- */
3185 $"D9D5 0B61 312B A074 B2B8 1905 FCF9 A102" /* ÙÕ.a1+ t²¸..üù¡. */
3186 $"6188 616D 74E6 8232 245D 9C8A 4FD8 E2FD" /* aˆamtæ‚2$]œŠOØâý */
3187 $"0C6C 8F2E 5C82 5724 C542 3AE5 BA0A EE0B" /* .l.\‚W$ÅB:åºÂî. */
3188 $"2A14 BCDE 8005 4446 25B1 CF8A 6744 9F5C" /* *.¼Þ€.DF%±ÏŠgDŸ\ */
3189 $"9B09 6571 3003 9F52 A42A 7669 CCAA 7A75" /* ›Æeq0.ŸR¤*vi̪zu */
3190 $"F807 2530 7BA9 1474 F318 5A7B E64A 5DD7" /* ø.%0{©.tó.Z{æJ]× */
3191 $"A6F2 13B0 AFA5 7BF8 46DC CABF 4D80 CC26" /* ¦ò.°¯¥{øFÜÊ¿M€Ì& */
3192 $"5838 4016 3C05 4550 C62F 1504 5B79 0816" /* X8@.<.EPÆ/..[y.. */
3193 $"556C 8524 5DDA E914 92F1 3124 5C5B 3213" /* Ul…$]Úé.’ñ1$\[2. */
3194 $"7851 D9B8 EE79 46CF 3F06 1EAB 662A FD9E" /* xQÙ¸îyFÏ?..«f*ýž */
3195 $"E7D8 2E8C 938F 43FA B1B1 34B0 9207 34EC" /* çØ.Œ“Cú±±4°’.4ì */
3196 $"7A09 46BF 201E 311F EEEE 88EF C6C1 C10D" /* zÆF¿ .1.îîˆïÆÁÁ. */
3197 $"E238 50C9 7F01 DFF0 2170 EDD1 7471 8C14" /* â8PÉ..ßð!píÑtqŒ. */
3198 $"FB17 6678 A8B9 6611 9713 D8BB 8840 427C" /* û.fx¨¹f.—.Ø»ˆ@B| */
3199 $"8E5E 1608 D5E6 79B6 0BD7 3592 5D97 3864" /* Ž^..Õæy¶.×5’]—8d */
3200 $"71DF 6137 C0E6 2EB0 F71D 466C CFFF 50EF" /* qßa7Àæ.°÷.FlÏÿPï */
3201 $"FE99 2E4D 0DBB 537F 32F1 DECB D5D4 39DF" /* þ™.M.»S.2ñÞËÕÔ9ß */
3202 $"4FCC 2FC2 C399 8EB9 FC8B 2806 3FB7 F227" /* OÌ/ÂÙŽ¹ü‹(.?·ò' */
3203 $"BA12 A288 9858 9159 B6ED 0DBF 3DCC 8FA1" /* º.¢ˆ˜X‘Y¶í.¿=Ì¡ */
3204 $"9CF5 836D 499F B9E7 DB4E 497F D3A4 57BF" /* œõƒmIŸ¹çÛNI.Ó¤W¿ */
3205 $"9F0A EECE 8E29 127A 82FF 4222 75AC 32D4" /* ŸÂîÎŽ).z‚ÿB"u¬2Ô */
3206 $"6540 8040 4137 9EB4 EFFF 7FEC 9D37 60B4" /* e@€@A7ž´ïÿ.ì7`´ */
3207 $"184A 9567 71E4 F5FE 1C55 BB95 9FD8 BE6D" /* .J•gqäõþ.U»•ŸØ¾m */
3208 $"037F 052C 035B 91D7 903B 6EEC 1642 3D18" /* ...,.[‘×;nì.B=. */
3209 $"0B05 FEC5 4C0C 9ED3 BFA5 94AF CBB1 E725" /* ..þÅL.žÓ¿¥”¯Ë±ç% */
3210 $"DFC3 AF74 2485 D5A2 7F79 1275 C7DD ADE1" /* ßït$…Õ¢.y.uÇÝ­á */
3211 $"3BD5 AD19 74E6 EE9F 6846 7900 C09D 090B" /* ;Õ­.tæîŸhFy.ÀÆ. */
3212 $"C17C FB0F 2C9F 4DEB B9FE 7152 A47E B1CB" /* Á|û.,ŸMë¹þqR¤~±Ë */
3213 $"FB0E 7108 21C7 EFAB 8FA3 8AF0 2FDC 17A9" /* û.q.!Çï«£Šð/Ü.© */
3214 $"2565 5082 BEBF 4DDD 0699 3265 82AE D421" /* %eP‚¾¿MÝ.™2e‚®Ô! */
3215 $"3776 341F C56C ECDA B302 0306 AE5F 37FF" /* 7v4.ÅlìÚ³...®_7ÿ */
3216 $"7FB7 1192 8D68 5475 EE0B 4D80 6149 DEBB" /* .·.’hTuî.M€aIÞ» */
3217 $"F9A7 D7E7 A35D 9515 8000 4F04 C4D6 670C" /* ù§×ç£]•.€.O.ÄÖg. */
3218 $"54B7 93BB D264 43E0 E8D4 2D4D D3E2 AEB0" /* T·“»ÒdCàèÔ-MÓâ®° */
3219 $"FBAE F5BD A155 A8F2 07B4 AAA6 CE0A 84CC" /* û®õ½¡U¨ò.´ª¦ÎÂ„Ì */
3220 $"907F D5C4 9900 8FE2 0E0D F385 55A0 CDFF" /* .ÕÄ™.â..ó…U Íÿ */
3221 $"7FFE D776 193F A5C4 0334 DD15 7A6A 0890" /* .þ×v.?¥Ä.4Ý.zj. */
3222 $"DE98 5707 7799 9A5B D638 31B9 982B 5623" /* Þ˜W.w™š[Ö81¹˜+V# */
3223 $"3AFA A84A 20E7 417C F56E 7776 0C54 0765" /* :ú¨J çA|õnwv.T.e */
3224 $"91DE A19E 3DD2 4D8B F9F9 0D61 6343 0746" /* ‘Þ¡ž=ÒM‹ùù.acC.F */
3225 $"7D72 600B 4E15 FC8F 60FA A273 4348 A86E" /* }r`.N.ü`ú¢sCH¨n */
3226 $"E11A CD6B 3FFF 7ED1 E486 AAAA A380 045A" /* á.Ík?ÿ~Ñ䆪ª£€.Z */
3227 $"70E5 3753 4FFF 7FC6 ADBE 8E71 66FF 8165" /* på7SOÿ.Æ­¾Žqfÿe */
3228 $"D782 24E8 7399 0C15 03BF 29B5 5685 FDA1" /* ׂ$ès™...¿)µV…ý¡ */
3229 $"5BAD 5751 6D53 799A A7C6 572E 6A37 B46A" /* [­WQmSyš§ÆW.j7´j */
3230 $"B9BF 05BF 3131 F7DB E3B8 8F11 EE2F 13D6" /* ¹¿.¿11÷Ûã¸.î/.Ö */
3231 $"7DE9 D552 0B25 FEAF AEFE F0A7 FBE9 487F" /* }éÕR.%þ¯®þð§ûéH. */
3232 $"9085 0FFA 23FE A9DB 0494 B0E1 FEFD 1D50" /* ….ú#þ©Û.”°áþý.P */
3233 $"15B4 6548 AAA0 0182 C5FF 7D24 05C8 B15E" /* .´eHª .‚Åÿ}$.ȱ^ */
3234 $"E45F A508 3C68 CA73 3A57 A35E 462D 9213" /* ä_¥.<hÊs:W£^F-’. */
3235 $"9D19 A4FE F266 C323 64FF 7B71 19F7 0BC3" /* .¤þòfÃ#dÿ{q.÷.Ã */
3236 $"062C 20C4 9745 F075 6FFF 31F0 A3AD 4C84" /* ., Ä—Eðuoÿ1ð£­L„ */
3237 $"00F3 104C 0064 3899 0DB9 8128 CB5F FF46" /* .ó.L.d8™.¹(Ë_ÿF */
3238 $"7184 41CB 7E58 4C0B ADD5 CBB2 1A61 E3D6" /* q„AË~XL.­Õ˲.aãÖ */
3239 $"B45F 489E 7FE9 D915 2B77 0776 98BD B3A6" /* ´_Hž.éÙ.+w.v˜½³¦ */
3240 $"230E B817 1D5A D937 3251 2449 6B0A 5A13" /* #.¸..ZÙ72Q$IkÂZ. */
3241 $"C4E0 BB45 CB72 9758 9E56 158D B1E6 9590" /* Äà»EËr—XžV.±æ• */
3242 $"4FC4 0611 EDBC 426F 6D2B D932 D595 A74E" /* OÄ..í¼Bom+Ù2Õ•§N */
3243 $"8728 58CD BD02 9746 DBA2 7EAB 0F07 363C" /* ‡(Xͽ.—FÛ¢~«..6< */
3244 $"BAB3 1228 E02A BDB4 373F F3FB FF7D 8D0D" /* º³.(à*½´7?óûÿ}. */
3245 $"2193 09F4 7603 A017 98B1 421E 7A47 D126" /* !“Æôv. .˜±B.zGÑ& */
3246 $"82FD 5449 B97F F864 5CD5 19F6 A8A4 F216" /* ‚ýTI¹.ød\Õ.ö¨¤ò. */
3247 $"A4B3 FF7F E820 4C58 DE4B 944B 6FD4 F4DA" /* ¤³ÿ.è LXÞK”KoÔôÚ */
3248 $"596E A688 456C 3F0D 7844 1596 2BED 0D5D" /* Yn¦ˆEl?.xD.–+í.] */
3249 $"FAFB 8D2E D7D0 ABCB B2BE 8D80 E74D 9EDC" /* úû.×Ы˲¾€çMžÜ */
3250 $"7FFF 7FC9 2FB9 3BDA F47A B9C2 E1B8 5CC8" /* .ÿ.É/¹;Úôz¹Âá¸\È */
3251 $"14AB D534 7208 32FE 73D2 EF23 862E 10F8" /* .«Õ4r.2þsÒï#†..ø */
3252 $"C16F 1FFF 6FBB FA97 5167 CDAD 4886 8FC2" /* Áo.ÿo»ú—QgÍ­H†Â */
3253 $"BFFF 7FFE 2B73 126E 1EC8 C82A 3F6D 6CC3" /* ¿ÿ.þ+s.n.ÈÈ*?mlà */
3254 $"D98A D501 1DC2 82FD FF57 9731 B866 2A7D" /* ÙŠÕ..‚ýÿW—1¸f*} */
3255 $"C983 5F41 893F 2D09 F81C E373 42C2 5963" /* Ƀ_A‰?-Æø.ãsBÂYc */
3256 $"7E9F C269 2B8B C21A 8247 D433 0DF7 491E" /* ~ŸÂi+‹Â.‚GÔ3.÷I. */
3257 $"D1BF 3D9E F4BD 1B50 8034 4EE9 4A69 B155" /* Ñ¿=žô½.P€4NéJi±U */
3258 $"849A B0F7 8CEA 3FD0 E4A0 C339 2431 ED8B" /* „š°÷Œê?Ðä Ã9$1í‹ */
3259 $"793D 6354 12C0 97F9 C379 ADA9 7DEE E5EF" /* y=cT.À—ùÃy­©}îåï */
3260 $"2366 FD9F 7F36 9703 7BCA 1455 6A98 F02E" /* #fýŸ.6—.{Ê.Uj˜ð. */
3261 $"1EDC 4707 C9A6 B325 A6E4 637D 612B B3DD" /* .ÜG.ɦ³%¦äc}a+³Ý */
3262 $"1E5A 3660 EEB0 BEFA 2C50 307B 5887 6D39" /* .Z6`î°¾ú,P0{X‡m9 */
3263 $"0EC7 2D81 C32E 6B72 8546 30E4 133F 3D3B" /* .Ç-Ã.kr…F0ä.?=; */
3264 $"0A76 21AA 4387 8F29 03C8 1C32 755C F553" /* Âv!ªC‡).È.2u\õS */
3265 $"5CA1 C16A 02EC 4654 97C8 6F10 BA2A 16E0" /* \¡Áj.ìFT—Èo.º*.à */
3266 $"DB18 605E 8A18 8A6E 4F35 1EF7 8C57 F8B2" /* Û.`^Š.ŠnO5.÷ŒWø² */
3267 $"0020 4D0A 1739 2287 ADE2 B0C2 D816 17D2" /* . MÂ.9"‡­â°ÂØ..Ò */
3268 $"21F8 3104 FEA8 38E3 8644 6F0B D2C6 A599" /* !ø1.þ¨8ã†Do.ÒÆ¥™ */
3269 $"B793 1367 B548 23BD 8836 1143 D5DB 2720" /* ·“.gµH#½ˆ6.CÕÛ' */
3270 $"73BB 1485 DEAF C96F 24E8 AA26 56B9 89D3" /* s».…Þ¯Éo$èª&V¹‰Ó */
3271 $"8F8D 2F3E 5EA5 466C BE3C 6879 6C0A 5891" /* />^¥Fl¾<hylÂX‘ */
3272 $"974E 6F22 0E47 66D4 BD1F 6A7D 1885 42CC" /* —No".GfÔ½.j}.…BÌ */
3273 $"7E13 126E AC98 74B7 B093 BDFF 37DB E527" /* ~..n¬˜t·°“½ÿ7Ûå' */
3274 $"E6D0 CF2A D7E6 E7EB 1095 05AF 6407 BB9B" /* æÐÏ*×æçë.•.¯d.»› */
3275 $"0227 D5EB 260A C844 340F B249 E84F 58A7" /* .'Õë&ÂÈD4.²IèOX§ */
3276 $"FA14 9D34 7614 73A6 BE73 ED76 B2CD 4515" /* ú.4v.s¦¾sív²ÍE. */
3277 $"F26C 3AD7 7C32 5480 5A3A C4DF 123A EA95" /* òl:×|2T€Z:Äß.:ê• */
3278 $"D2B4 A3D8 F88D E685 6505 A999 DD9E C8D1" /* Ò´£Øøæ…e.©™ÝžÈÑ */
3279 $"A073 3702 5A8F 3598 F7DC A36F 0058 065E" /*  s7.Z5˜÷Ü£o.X.^ */
3280 $"65E6 B5AC 2A85 0F1C 43BF 8A10 43A0 BB10" /* e浬*…..C¿Š.C ». */
3281 $"4C3A 8F4F 95AD 253D EEE9 FBE8 4023 4647" /* L:O•­%=îéûè@#FG */
3282 $"7A75 8F1C 9245 3C51 3FF5 BD2B DFD3 57EF" /* zu.’E<Q?õ½+ßÓWï */
3283 $"1FB4 900F 4546 6EFA A7AE 45EB EAE9 7B9D" /* .´.EFnú§®Eëêé{ */
3284 $"6408 1DCB F7AC BE44 7D08 1482 2257 A9CF" /* d..Ë÷¬¾D}..‚"W©Ï */
3285 $"8B78 3610 9816 9518 A64C 215A 4569 6C5F" /* ‹x6.˜.•.¦L!ZEil_ */
3286 $"57E0 4F89 F77C 88D6 ADFC 8E42 9299 A2C9" /* WàO‰÷|ˆÖ­üŽB’™¢É */
3287 $"0F7C EA0A 7E98 B7AF 70ED 09A8 0759 B1A7" /* .|êÂ~˜·¯píƨ.Y±§ */
3288 $"C18E 2CC9 883F A788 A2F1 57B9 7A0E F384" /* ÁŽ,Ɉ?§ˆ¢ñW¹z.ó„ */
3289 $"F0CE 46F0 E10A ED6F CE17 2BE1 25D5 3A36" /* ðÎFðáÂíoÎ.+á%Õ:6 */
3290 $"5C6A F3AA F2D1 7225 6C5C 514F 8F1F 64A5" /* \jóªòÑr%l\QO.d¥ */
3291 $"B08E D05D 3E2E B3E4 DE48 12A9 7DC6 6E03" /* °ŽÐ]>.³äÞH.©}Æn. */
3292 $"05B3 2AD0 EF87 EFB1 6D03 06E4 85AB 36C6" /* .³*Ðï‡ï±m..ä…«6Æ */
3293 $"9BF6 8382 74F2 F321 62DF 269C 8D95 8FBD" /* ›öƒ‚tòó!bß&œ•½ */
3294 $"C4CA 7278 FDBA C51B A4FC C224 BD43 5F76" /* ÄÊrxýºÅ.¤üÂ$½C_v */
3295 $"F9D9 0970 5EAA 5F05 FDCB 50DE 35E7 A82E" /* ùÙÆp^ª_.ýËPÞ5ç¨. */
3296 $"1E7E 584D 33D8 EF90 B221 622F 778E 460D" /* .~XM3Øï²!b/wŽF. */
3297 $"6DC9 383F CF41 7B89 7414 97EF EFE2 CC75" /* mÉ8?ÏA{‰t.—ïïâÌu */
3298 $"8895 6AFD C6E8 610E 5E29 7AE1 FAAF 9FD5" /* ˆ•jýÆèa.^)záú¯ŸÕ */
3299 $"435F 3F61 6F9F AC78 7EAD 62BE 7DF7 7CFD" /* C_?aoŸ¬x~­b¾}÷|ý */
3300 $"D3FD 5BAF 83F5 5B37 CF6D BE7E 9DDF 3F4D" /* Óý[¯ƒõ[7Ïm¾~ß?M */
3301 $"80E8 ABDE CCAF 0D6C 8AC6 9587 348A 7A5A" /* €è«Þ̯.lŠÆ•‡4ŠzZ */
3302 $"21F6 5D05 F6A4 1727 AC99 8E36 4607 A805" /* !ö].ö¤.'¬™Ž6F.¨. */
3303 $"1CA8 FB12 6979 4216 6FCF DF65 6135 AFF9" /* .¨û.iyB.oÏßea5¯ù */
3304 $"5A1E 01C1 15A0 4F38 E547 6F65 858D 0788" /* Z..Á. O8åGoe….ˆ */
3305 $"49E3 07A2 D476 B767 EC21 FF65 559D 3B3F" /* Iã.¢Ôv·gì!ÿeU;? */
3306 $"B8A5 C1A8 6496 5183 24E6 93A6 DF2F 52F1" /* ¸¥Á¨d–Qƒ$擦ß/Rñ */
3307 $"19CA BFD7 1479 8040 2F9C 0DB9 00F0 49C5" /* .Ê¿×.y€@/œ.¹.ðIÅ */
3308 $"3D32 5B0C 9453 8D1F 452F D9E7 75FD CD61" /* =2[.”S.E/ÙçuýÍa */
3309 $"44A9 62C3 F0C8 BAF0 6A66 A4D4 AA8B 73B0" /* D©bÃðȺðjf¤Ôª‹s° */
3310 $"C942 686A 4A1E E3A7 2343 A0ED D595 9AFC" /* ÉBhjJ.ã§#C íÕ•šü */
3311 $"5546 0ACB FD23 6F2E DCEE ABBD 70E7 FA93" /* UFÂËý#o.Üpçú“ */
3312 $"3FFF 7FC5 7D31 FA1C D910 1C70 6CDC 3362" /* ?ÿ.Å}1ú.Ù..plÜ3b */
3313 $"B0A1 C6F3 16D1 BE51 73D2 4697 37CA 8197" /* °¡Æó.ѾQsÒF—7Ê— */
3314 $"A8C6 89C1 FF78 99EB 31B8 5F88 7B08 C557" /* ¨Æ‰Áÿx™ë1¸_ˆ{.ÅW */
3315 $"5483 A35C 0713 94D5 D2DF B84C 36CA D9EC" /* Tƒ£\..”ÕÒ߸L6ÊÙì */
3316 $"8FC7 A305 814F 8B04 07D2 E391 5E89 43FE" /* Ç£.O‹..Òã‘^‰Cþ */
3317 $"6C67 4343 91DB DD56 C1D2 FEA6 9F1F 346F" /* lgCC‘ÛÝVÁÒþ¦Ÿ.4o */
3318 $"714B 79E1 7AC7 53A1 9934 69F4 E886 5A9C" /* qKyázÇS¡™4iôè†Zœ */
3319 $"6F9A D26F DD48 5F60 A72A 7E20 77F8 1BE8" /* ošÒoÝH_`§*~ wø.è */
3320 $"91B9 9018 8124 7694 3664 4202 7B94 1007" /* ‘¹.$v”6dB.{”.. */
3321 $"4234 15FC 04A2 6DE0 DC6B 5EDE 4332 F592" /* B4.ü.¢màÜk^ÞC2õ’ */
3322 $"779A A3BD 8E84 5464 DE08 6BAE AE2F 6EEF" /* wš£½Ž„TdÞ.k®®/nï */
3323 $"CB75 5862 59D8 1362 5D60 79D2 137C 7606" /* ËuXbYØ.b]`yÒ.|v. */
3324 $"F2B1 06DE 8A2F B76A A7D9 84DB 8F52 1107" /* ò±.ÞŠ/·j§Ù„ÛR.. */
3325 $"A42C 9803 2476 0448 42C9 A9E5 D0F5 9110" /* ¤,˜.$v.HBÉ©åÐõ‘. */
3326 $"2FAB AAF4 0752 81C9 6064 B8F7 6CEB 438E" /* /«ªô.RÉ`d¸÷lëCŽ */
3327 $"DC4B 916C 21F0 1C8F 2A6A 1919 9E26 2B36" /* ÜK‘l!ð.*j..ž&+6 */
3328 $"3E51 F543 F7C5 2549 66D0 2F14 D18F 42F1" /* >QõC÷Å%IfÐ/.ÑBñ */
3329 $"397B BA52 99ED 853C E07D 629B 92A1 2589" /* 9{ºR™í…<à}b›’¡%‰ */
3330 $"B3A9 B812 DC8D A368 3204 F8AA 7549 AF2B" /* ³©¸.Ü£h2.øªuI¯+ */
3331 $"2DE7 529C 1ECB 9747 A4B8 F6EC 8DDC 0AC4" /* -çRœ.Ë—G¤¸öìÜÂÄ */
3332 $"2C31 F042 C407 3F18 FD32 9280 60E4 60D8" /* ,1ðBÄ.?.ý2’€`ä`Ø */
3333 $"77B5 C019 A5FF 6E0D 8E35 A78E C7AA E95B" /* wµÀ.¥ÿn.Ž5§ŽÇªé[ */
3334 $"D37C D883 5DD2 756B 385A 08BB 7708 AA5E" /* Ó|؃]Òuk8Z.»w.ª^ */
3335 $"5B89 0628 F831 7775 3555 A523 BF2F 721A" /* [‰.(ø1wu5U¥#¿/r. */
3336 $"099B E6B4 5128 9EA6 41E1 9B8B 18C1 928C" /* Æ›æ´Q(ž¦Aᛋ.Á’Œ */
3337 $"72A0 BD1E 84D6 836A C947 0982 284A 9238" /* r ½.„ÖƒjÉGÆ‚(J’8 */
3338 $"A06F E390 1BD5 BBFD 323F BA86 2091 BAD5" /*  oã.Õ»ý2?º† ‘ºÕ */
3339 $"351D 16C5 1D44 E8C7 66C7 D469 047D 5548" /* 5..Å.DèÇfÇÔi.}UH */
3340 $"7049 7B42 B682 DF4C 68DE B5D2 2EDC C105" /* pI{B¶‚ßLhÞµÒ.ÜÁ. */
3341 $"4047 9A7E 0403 F48B 6215 C3ED 8DBA 12E9" /* @Gš~..ô‹b.Ãíº.é */
3342 $"EEFB B61B 906E F6F6 DDFD D030 CD1C 47FD" /* îû¶.nööÝýÐ0Í.Gý */
3343 $"7C37 E7C7 DC08 213E 3C33 08E6 74A0 F400" /* |7çÇÜ.!><3.æt ô. */
3344 $"7CFC 3B85 1A2E 5ACA 573F F24C 7D2C 0E3B" /* |ü;…..ZÊW?òL},.; */
3345 $"2A6D CEDC 6C9C 6E97 A572 915F A892 3833" /* *mÎÜlœn—¥r‘_¨’83 */
3346 $"A08F 0070 A602 FB49 0EA6 62FC 4237 C568" /*  .p¦.ûI.¦büB7Åh */
3347 $"E937 1DC1 1FC2 C3F1 AA30 AC4D DDB8 E747" /* é7.Á.ÂÃñª0¬MݸçG */
3348 $"5EE4 FD73 8124 56EB ADBE 6DB3 F27B 80C0" /* ^äýs$Vë­¾m³ò{€À */
3349 $"E536 971B 511B C76B AB20 8BA4 4DCD BFCB" /* å6—.Q.Çk« ‹¤MÍ¿Ë */
3350 $"4A0C 34DC 3DDC 9BEF 5122 89D0 99D1 9BE7" /* J.4Ü=Ü›ïQ"‰Ð™Ñ›ç */
3351 $"8840 002A A77A 25E2 9C2C F9BC 78F9 FB0E" /* ˆ@.*§z%âœ,ù¼xùû. */
3352 $"0DB7 4F14 B07A 12F6 65D3 ABE1 660D A84A" /* .·O.°z.öeÓ«áf.¨J */
3353 $"EFF9 A799 1852 8ED0 9582 B79A D812 1BE6" /* ïù§™.RŽÐ•‚·šØ..æ */
3354 $"F3D0 D5FA 9C76 5EBD DBFD 42A9 F7B3 885E" /* óÐÕúœv^½ÛýB©÷³ˆ^ */
3355 $"4A68 DBE7 9663 FB7F 1AC4 5004 197F 97F0" /* JhÛç–cû..ÄP...—ð */
3356 $"F57B 135D 19ED E0E0 1C84 139C BA3B 2493" /* õ{.].íàà.„.œº;$“ */
3357 $"D997 333D B6A7 9E83 619C FCE9 9875 134D" /* Ù—3=¶§žƒaœüé˜u.M */
3358 $"4B31 FCB3 5808 B917 C8BB 0B67 4564 488E" /* K1ü³X.¹.È».gEdHŽ */
3359 $"3554 8125 C3A4 DB4A 0BB2 E501 244C 1F49" /* 5T%äÛJ.²å.$L.I */
3360 $"C6A7 51E4 6C51 A134 3DF4 CE21 2993 FF3B" /* ƧQälQ¡4=ôÎ!)“ÿ; */
3361 $"80F6 AE0B B9F8 D1D5 8853 4531 6806 4F3E" /* €ö®.¹øÑÕˆSE1h.O> */
3362 $"D2B6 5F62 796A 683C D3C9 A22B 6D56 C497" /* Ò¶_byjh<ÓÉ¢+mVÄ— */
3363 $"D854 2E14 C281 0F94 0220 BEE7 3754 D077" /* ØT..Â.”. ¾ç7TÐw */
3364 $"EDB0 0F0E 95C1 A40B 55C9 B5AE 4DA8 A8A6" /* í°..•Á¤.Uɵ®M¨¨¦ */
3365 $"ADD6 4A11 DE81 B148 70D3 FA4F 795C 9171" /* ­ÖJ.Þ±HpÓúOy\‘q */
3366 $"C72E 7EF2 454C 0336 BE4A EE68 960E 25BA" /* Ç.~òEL.6¾Jîh–.%º */
3367 $"E686 01F4 6FF5 3C7C 8B33 60D8 24D3 70A1" /* æ†.ôoõ<|‹3`Ø$Óp¡ */
3368 $"06C6 E616 29D4 63D6 3334 379F 743E 745D" /* .Ææ.)ÔcÖ347Ÿt>t] */
3369 $"4EF5 ECB5 072E 9F62 0750 F7BA 6FDE B6B0" /* Nõìµ..Ÿb.P÷ºoÞ¶° */
3370 $"0BD0 4FCC 8F59 9B13 0C77 0A30 9BAE DF36" /* .ÐOÌY›..wÂ0›®ß6 */
3371 $"B13D D861 E92A 12C7 EC7A 0946 BF20 1E31" /* ±=Øaé*.ÇìzÆF¿ .1 */
3372 $"1FEE EE88 EFC6 C1C1 0DE2 3850 C97F 01DF" /* .îîˆïÆÁÁ.â8PÉ..ß */
3373 $"F021 605A D52A 570D 7089 0C1B B3FE 8B4D" /* ð!`ZÕ*W.p‰..³þ‹M */
3374 $"E441 70AC 5F71 3FCE 527F EBF4 048A A307" /* äAp¬_q?ÎR.ëô.Š£. */
3375 $"CEFD 4EB0 87ED BFE2 A36C 51B9 EAD3 37C6" /* ÎýN°‡í¿â£lQ¹êÓ7Æ */
3376 $"E8F0 9A3D 8F78 8747 81D4 33F0 9EEB 5EA0" /* èðš=x‡GÔ3ðžë^  */
3377 $"6FE0 A580 6B6B C126 1CE3 F1B2 DC9C CFCE" /* oीkkÁ&.ãñ²ÜœÏÎ */
3378 $"42EE 7E91 EF2F 0DDF CFDE 75EB 554D 6941" /* Bî~‘ï/.ßÏÞuëUMiA */
3379 $"07A5 21BE AD52 7CC1 49B5 FE74 AE40 F70F" /* .¥!¾­R|ÁIµþt®@÷. */
3380 $"AB3B 0C16 98F5 7742 3DCE 842D 0B2B 2FEB" /* «;..˜õwB=΄-.+/ë */
3381 $"5E90 DEBC 8BA9 81AC 40CC 0030 2853 FE9C" /* ^Þ¼‹©¬@Ì.0(Sþœ */
3382 $"6FC2 569B 2CD1 6200 2881 802D 7697 8442" /* oÂV›,Ñb.(€-v—„B */
3383 $"92C8 666B BC90 3252 F4D3 9BD2 AD14 0027" /* ’Èfk¼2RôÓ›Ò­..' */
3384 $"CE11 F5A4 437B 3F80 B250 AA4C 23B6 AD83" /* Î.õ¤C{?€²PªL#¶­ƒ */
3385 $"277E 5EF0 8132 6331 9325 D1A3 CFB6 6F73" /* '~^ð2c1“%ѣ϶os */
3386 $"D37D 780F 91CC CD40 6234 2FE2 F097 1681" /* Ó}x.‘ÌÍ@b4/âð—. */
3387 $"6097 88BD BFFF 18F5 2CBB FF67 FDBC 2F07" /* `—ˆ½¿ÿ.õ,»ÿgý¼/. */
3388 $"67FF 7FFF 1946 84C7 A551 03FF 7F52 A7C2" /* gÿ.ÿ.F„Ç¥Q.ÿ.R§Â */
3389 $"8AC8 1080 56FF 0C48 1804 A884 A5A2 08FF" /* ŠÈ.€Vÿ.H..¨„¥¢.ÿ */
3390 $"7FF5 3220 8043 9005 C25D DE15 02FB 7F2B" /* .õ2 €C.Â]Þ..û.+ */
3391 $"8205 5CA8 40BE EFB1 78F0 2656 2AD4 14FF" /* ‚.\¨@¾ï±xð&V*Ô.ÿ */
3392 $"7505 20CD 8BE2 8B15 47BB 9E26 105E 15DD" /* u. Í‹â‹.G»ž&.^.Ý */
3393 $"21A7 82AE E19D FE27 5D8B DDAD E13B D5AD" /* !§‚®áþ']‹Ý­á;Õ­ */
3394 $"1974 E6EE 9F68 4679 00C0 9D09 0BC1 7CFB" /* .tæîŸhFy.ÀÆ.Á|û */
3395 $"0F2C 9F4E 082C 2CB4 569B A7B0 0009 E098" /* .,ŸN.,,´V›§°.Æà˜ */
3396 $"9AB0 9892 B1FF 6957 1D78 2613 4289 24C6" /* š°˜’±ÿiW.x&.B‰$Æ */
3397 $"12BC E2EF C9AE E6D9 784F C157 77AB 3470" /* .¼âïÉ®æÙxOÁWw«4p */
3398 $"D8C7 C746 1978 322D D4E9 FA24 B8B2 5054" /* ØÇÇF.x2-Ôéú$¸²PT */
3399 $"D643 8270 9090 D6D8 0C24 16E5 1146 421C" /* ÖC‚pÖØ.$.å.FB. */
3400 $"D6A2 40D9 1864 A800 0000 0000 0001 4554" /* Ö¢@Ù.d¨.......ET */
3401 $"031E 793B 33D3 FD4A CE0A 3D8A 9D46 37B0" /* ..y;3ÓýJÎÂ=ŠF7° */
3402 $"4D2C 6F04 2BFF 071C 023F E153 6688 1815" /* M,o.+ÿ...?áSfˆ.. */
3403 $"BA20 BF61 DDDF 2979 84E3 3348 50F6 E9B8" /* º ¿aÝß)y„ã3HPöé¸ */
3404 $"634A 8937 FF7F F1AE E84B C95A 771F 4C9C" /* cJ‰7ÿ.ñ®èKÉZw.Lœ */
3405 $"3FFE 0734 7D7F 6E35 4A2E 21E0 E52F FF7E" /* ?þ.4}.n5J.!àå/ÿ~ */
3406 $"8532 8513 7869 A6E6 495D 3E58 F349 1EF5" /* …2….xi¦æI]>XóI.õ */
3407 $"886C 6441 9091 82E8 0C24 1507 0E02 A105" /* ˆldA‘‚è.$....¡. */
3408 $"95C5 1409 096C 9A37 F758 F13A 5ABF 149E" /* •Å.ÆÆlš7÷Xñ:Z¿.ž */
3409 $"DA31 52E9 0DA9 0BFF 45EB 20C7 1A1C E54C" /* Ú1Ré.©.ÿEë Ç..åL */
3410 $"29D1 6C8E D1EC 9D59 F945 4303 373F FF7F" /* )ÑlŽÑìYùEC.7?ÿ. */
3411 $"CE95 B027 88F7 AB06 28B9 92E7 D540 BC2B" /* Ε°'ˆ÷«.(¹’çÕ@¼+ */
3412 $"7167 8C6C C87E 32B0 C904 7D7D 278E E519" /* qgŒlÈ~2°É.}}'Žå. */
3413 $"707D 2C42 1714 C425 F9D0 DC01 D910 23DB" /* p},B..Ä%ùÐÜ.Ù.#Û */
3414 $"E7F3 391C A4E6 FAE1 C850 5A1F 456A 6690" /* çó9.¤æúáÈPZ.Ejf */
3415 $"3F37 F970 3841 73D3 1095 39CF 10A3 40F8" /* ?7ùp8AsÓ.•9Ï.£@ø */
3416 $"4CCC 4985 E3D5 127F 7CF4 92BC DCE9 2335" /* LÌI…ãÕ..|ô’¼Üé#5 */
3417 $"43FB 7460 8D5C C121 CFF2 1165 1CCE BBB2" /* Cût`\Á!Ïò.e.λ² */
3418 $"5EA8 0279 2C97 E45B A43D 328C 7A6C 5EBC" /* ^¨.y,—ä[¤=2Œzl^¼ */
3419 $"61DD BB2C E34E 25E4 1725 3C6B EC12 BFEF" /* aÝ»,ãN%ä.%<kì.¿ï */
3420 $"3E5E 0ACF 766D 9D4E 8978 2AC5 F138 755A" /* >^ÂÏvmN‰x*Åñ8uZ */
3421 $"CBDD 8421 F74E 9A07 A070 16ED 100C 769A" /* ËÝ„!÷Nš. p.í..vš */
3422 $"6571 1FA0 4D62 8ADC A3F1 0AAA 2253 1A39" /* eq. MbŠÜ£ñª"S.9 */
3423 $"0006 DF51 B09A 2267 BA13 3AD9 0120 8520" /* ..ßQ°š"gº.:Ù. … */
3424 $"7375 BB11 0715 9FFF 7FFF 276F 9A44 4D02" /* su»...Ÿÿ.ÿ'ošDM. */
3425 $"9DF2 BE32 729A 8C71 FBC9 4C73 FA4B 1D24" /* ò¾2ršŒqûÉLsúK.$ */
3426 $"4115 B69E 4FFF 7FFF 45B5 7091 9925 CEBD" /* A.¶žOÿ.ÿEµp‘™%ν */
3427 $"6A4E 1AA3 BFFF 7FFD AA3B 4043 EE5A 76B0" /* jN.£¿ÿ.ýª;@CîZv° */
3428 $"A073 CF17 7A58 3A06 649C B972 3CB8 897B" /*  sÏ.zX:.dœ¹r<¸‰{ */
3429 $"31E2 637A 05AC 83FA B94C 0F75 7113 FF7B" /* 1âcz.¬ƒú¹L.uq.ÿ{ */
3430 $"E690 225A FB16 A961 626A B7FE 22EF 864B" /* æ"Zû.©abj·þ"ï†K */
3431 $"F464 1D62 4127 02B3 DB08 1C01 3ECE 1326" /* ôd.bA'.³Û...>Î.& */
3432 $"CF03 BF05 5771 4992 75FE 29FC 5FFF 60D5" /* Ï.¿.WqI’uþ)ü_ÿ`Õ */
3433 $"DCC3 1B1F 40FF 6990 DC69 3E47 D09A 6E6A" /* ÜÃ..@ÿiÜi>GКnj */
3434 $"2866 9BA8 D74C BAAA 204E 05F9 DBFE E679" /* (f›¨×Lºª N.ùÛþæy */
3435 $"E76C 383D 9F92 BB32 1E14 2CA1 CBD5 E93C" /* çl8=Ÿ’»2..,¡ËÕé< */
3436 $"6C00 DFA2 B04F D650 3F14 60FF 7F73 29C3" /* l.ߢ°OÖP?.`ÿ.s)à */
3437 $"E20E 5672 C31B 6D72 FDCF 8097 B8B0 1482" /* â.VrÃ.mrýÏ€—¸°.‚ */
3438 $"C37E 4C4A 28FA 6E67 F061 E00C 371B 8655" /* Ã~LJ(úngðaà.7.†U */
3439 $"BDCB 2942 6AB1 0E31 38D3 6948 0D3F 6FEF" /* ½Ë)Bj±.18ÓiH.?oï */
3440 $"C2AB 669A E502 2490 C158 FC07 05F0 348A" /* «fšå.$ÁXü..ð4Š */
3441 $"0505 F0B2 E7E3 F934 19DA 2DB9 9686 603E" /* ..ð²çãù4.Ú-¹–†`> */
3442 $"C2C3 4B2F EB95 FB4E 62D2 F085 4364 9DCA" /* ÂÃK/ë•ûNbÒð…CdÊ */
3443 $"A6E8 94F8 CC41 2603 5BFC 4E90 C05F 068D" /* ¦è”øÌA&.[üNÀ_. */
3444 $"414C 618C 8860 58B1 7059 0B4C 39E8 FB58" /* ALaŒˆ`X±pY.L9èûX */
3445 $"C413 43C6 BF39 CC12 6E5B F65C F671 DD29" /* Ä.CÆ¿9Ì.n[ö\öqÝ) */
3446 $"8A03 BC15 FF06 2028 49E4 BF04 E6FC D4FD" /* Š.¼.ÿ. (Iä¿.æüÔý */
3447 $"401A CB9C 5F7F EFE7 8F41 E707 7803 9F1A" /* @.Ëœ_.ïçAç.x.Ÿ. */
3448 $"715F 951E E63A 9B4C 1404 32AA B5B7 98B0" /* q_•.æ:›L..2ªµ·˜° */
3449 $"D5F4 CD69 DD15 9E81 D2FD 09F7 462D AF3E" /* ÕôÍiÝ.žÒýÆ÷F-¯> */
3450 $"31DA 85C4 5053 8460 C06C 7018 908C 4821" /* 1Ú…ÄPS„`Àlp.ŒH! */
3451 $"D8AB AC44 7666 44D1 EA04 8979 3A4A A0FE" /* Ø«¬DvfDÑê.‰y:J þ */
3452 $"27D7 B0C3 DBAA 5233 F376 3CA8 4968 DF8A" /* '×°ÃÛªR3óv<¨Ihߊ */
3453 $"874C 2117 6A15 4664 03FF 7FFF 7F7C 2D12" /* ‡L!.j.Fd.ÿ.ÿ.|-. */
3454 $"B28B 8A4C 6D72 1106 16E0 BF7F 9822 2424" /* ²‹ŠLmr...à¿.˜"$$ */
3455 $"3C1B CBC8 2F76 1AC7 FF7F FF7F EB42 22AA" /* <.ËÈ/v.Çÿ.ÿ.ëB"ª */
3456 $"F30A 0C9D 6086 E561 E1BC C1D9 4E7F FADF" /* óÂ.`†åaá¼ÁÙN.úß */
3457 $"A85C B34C E2D4 FCF6 1A29 34F3 3B42 1DFC" /* ¨\³LâÔüö.)4ó;B.ü */
3458 $"C6BD 370B D203 B0C4 1C7D C348 1EE7 EAD9" /* ƽ7.Ò.°Ä.}ÃH.çêÙ */
3459 $"3145 E7FB 36CC 8E64 AB70 81DC 65E1 2C1D" /* 1Eçû6ÌŽd«pÜeá,. */
3460 $"9CB5 18A0 1C95 7DE2 96DF C185 7A40 50C7" /* œµ. .•}â–ßÁ…z@PÇ */
3461 $"E32C FCC1 FF6B 14F5 05FE 0E1C 8757 8D82" /* ã,üÁÿk.õ.þ..‡W‚ */
3462 $"3A41 284E 2906 8316 564F F479 4DCF FF7E" /* :A(N).ƒ.VOôyMÏÿ~ */
3463 $"5F11 3745 AC7F ED8D BC93 4205 7E12 E036" /* _.7E¬.í¼“B.~.à6 */
3464 $"0BE4 4B4F F99C F369 6B38 263E 63EC 6311" /* .äKOùœóik8&>cìc. */
3465 $"D577 8B5D 7957 D24D 7D64 A2B5 1107 4625" /* Õw‹]yWÒM}d¢µ..F% */
3466 $"E1EB 2460 41A2 E878 5967 CEAE AE16 D8D5" /* áë$`A¢èxYgή®.ØÕ */
3467 $"F960 B484 0B49 7253 26F2 714E 6A13 03E4" /* ù`´„.IrS&òqNj..ä */
3468 $"A0C3 3924 31ED 8B79 3D63 5412 C097 F9C3" /*  Ã9$1í‹y=cT.À—ùÃ */
3469 $"79AD A97D EEE5 EF23 66FF 15BD C854 5DFB" /* y­©}îåï#fÿ.½ÈT]û */
3470 $"5921 E05C 6A39 B68E 6444 6D55 3B7D 6DDA" /* Y!à\j9¶ŽdDmU;}mÚ */
3471 $"9003 8F53 5C49 D978 31CD 41C5 DD62 7DE4" /* .S\IÙx1ÍAÅÝb}ä */
3472 $"2F24 5932 A14F 9C9C 97B6 2652 5988 7970" /* /$Y2¡Oœœ—¶&RYˆyp */
3473 $"F890 8A5C 9614 EBF4 DAC8 15D1 6F3C 07E4" /* øŠ\–.ëôÚÈ.Ño<.ä */
3474 $"7B8B F763 6803 394F 2291 8D88 EB1B 3136" /* {‹÷ch.9O"‘ˆë.16 */
3475 $"10C9 5077 060A 7DB0 A890 CB7B 947F AD8B" /* .ÉPw.Â}°¨Ë{”.­‹ */
3476 $"0AAF 67FF 5D78 615A E459 013B 6923 5E0E" /* ¯gÿ]xaZäY.;i#^. */
3477 $"900D BA9C DFF2 37D0 0508 B5F3 EA48 FADE" /* .ºœßò7Ð..µóêHúÞ */
3478 $"D348 3F2F 8E71 E6CD B6BE 8941 8773 0E17" /* ÓH?/ŽqæͶ¾‰A‡s.. */
3479 $"E97A B699 5A4F 21C1 0766 538B B29A B8CA" /* éz¶™ZO!Á.fS‹²š¸Ê */
3480 $"FBAE 21FA 76A0 B197 C613 E523 B127 1FE4" /* û®!úv ±—Æ.å#±'.ä */
3481 $"0AA8 798D 688E 8F27 E386 446F 0BD2 C6A5" /* ¨yhŽ'ã†Do.ÒÆ¥ */
3482 $"99B7 9313 67B5 4823 BD88 3611 E5A8 8054" /* ™·“.gµH#½ˆ6.娀T */
3483 $"3C15 C120 1B02 5B2A 2195 DD25 F90A 48A6" /* <.Á ..[*!•Ý%ùÂH¦ */
3484 $"BF92 56B9 4639 F2BD AC5F 3350 9699 14A7" /* ¿’V¹F9ò½¬_3P–™.§ */
3485 $"30A2 4B91 C33D 3175 F806 15AA 4B01 558F" /* 0¢K‘Ã=1uø..ªK.U */
3486 $"400B 8148 DAF5 29FD 0561 1CA8 7239 51F4" /* @.HÚõ)ý.a.¨r9Qô */
3487 $"A169 A92B EE2F 4F3D 2F96 029B 186B 7219" /* ¡i©+î/O=/–.›.kr. */
3488 $"C673 0E85 6FAC 9889 C64A 90AE DBAF E8E3" /* Æs.…o¬˜‰ÆJ®Û¯èã */
3489 $"6607 DF2A C332 C690 840A 817A ABFF 3302" /* f.ß*Ã2Æ„Âz«ÿ3. */
3490 $"1464 A65F E1B3 04B0 90C6 51E5 6A2E 7EA2" /* .d¦_á³.°ÆQåj.~¢ */
3491 $"9222 EABA 0632 2F13 B1A3 2337 85B4 E390" /* ’"êº.2/.±£#7…´ã */
3492 $"766A 98DB BDDD 9813 F7BD 8AEA 1AB2 BEEC" /* vj˜Û½Ý˜.÷½Šê.²¾ì */
3493 $"BEE3 F4B7 EE35 6BB8 ADE1 E772 AEB0 7E66" /* ¾ãô·î5k¸­áçr®°~f */
3494 $"3F99 05C1 3339 69B2 C1D5 4CC7 DB0B 3C67" /* ?™.Á39i²ÁÕLÇÛ.<g */
3495 $"7F80 43C8 7B29 FA49 8C64 3FEB 6406 35FE" /* .€CÈ{)úIŒd?ëd.5þ */
3496 $"FAEB 4922 9410 5352 D4C0 00CB 72EA 56CE" /* úëI"”.SRÔÀ.ËrêVÎ */
3497 $"22F8 673A D3E8 AAFA E992 5B7F 827C A83D" /* "øg:Óèªúé’[.‚|¨= */
3498 $"586F 54B4 69F8 C6B7 FF14 CFD4 4069 C50F" /* XoT´iøÆ·ÿ.ÏÔ@iÅ. */
3499 $"9E23 797E DE78 5B86 FCAE BDE5 B920 9551" /* ž#y~Þx[†ü®½å¹ •Q */
3500 $"22EC 4155 0582 10F4 BF8C 144A 3251 97F3" /* "ìAU.‚.ô¿Œ.J2Q—ó */
3501 $"2E7D 1E04 969B 4C15 8BDB FAC1 9743 2B6C" /* .}..–›L.‹ÛúÁ—C+l */
3502 $"6EF5 C95E 47CB A380 A635 C17D AD97 42EA" /* nõÉ^GË£€¦5Á}­—Bê */
3503 $"88A1 A63E FC76 A19C AE08 C868 115F 098D" /* ˆ¡¦>üv¡œ®.Èh._Æ */
3504 $"A1BE 16D4 3BF4 91C9 6CF1 DBE0 E0CA 0DAA" /* ¡¾.Ô;ô‘ÉlñÛààÊ.ª */
3505 $"EFCB 2A06 908B 7BAC CCF3 4CF8 179A 615E" /* ïË*.‹{¬ÌóLø.ša^ */
3506 $"590D AB18 CB49 E032 B8ED 2A8E 584A ACDC" /* Y.«.ËIà2¸í*ŽXJ¬Ü */
3507 $"4797 F732 B8C9 24A4 0E5C 85A0 FED8 E30A" /* G—÷2¸É$¤.\… þØã */
3508 $"ECBF 08FB CDC1 E09D 9556 837A E086 95AC" /* ì¿.ûÍÁà•Vƒzà†•¬ */
3509 $"BA2C E411 756E F132 9CE6 EDC4 6C90 B09E" /* º,ä.unñ2œæíÄl°ž */
3510 $"3C59 DE78 44D0 E445 BCA0 3AE0 05D9 7440" /* <YÞxDÐäE¼ :à.Ùt@ */
3511 $"F09F 10EA E0BA 4596 84F5 81A2 550E 57A7" /* ðŸ.êàºE–„õ¢U.W§ */
3512 $"F2A8 B2DD D612 A18F D74A 671D B70C 994A" /* ò¨²ÝÖ.¡×Jg.·.™J */
3513 $"9441 8E10 12B8 80F0 6249 2075 CD39 3667" /* ”AŽ..¸€ðbI uÍ96g */
3514 $"6632 AFDD 5E48 6B22 15CC 179A C6FA 47AE" /* f2¯Ý^Hk".Ì.šÆúG® */
3515 $"66AF 7AFB 033D 03F1 B829 B852 F1BF 55DB" /* f¯zû.=.ñ¸)¸Rñ¿UÛ */
3516 $"17F6 E1EF A955 F266 ACFE 75F4 34FC 38B0" /* .öáï©Uòf¬þuô4ü8° */
3517 $"0068 7DD6 016E 98D4 57DB 6220 D269 4BE9" /* .h}Ö.n˜ÔWÛb ÒiKé */
3518 $"8007 22E8 9D82 8FCE EB41 317B D0FA 323B" /* €."è‚ÎëA1{Ðú2; */
3519 $"B2C0 06D3 99E3 ED9A 2423 78CD AE34 CF5B" /* ²À.Ó™ãíš$#xÍ®4Ï[ */
3520 $"58DA 8F69 9604 4804 8682 B58C C1DA 1E21" /* XÚi–.H.†‚µŒÁÚ.! */
3521 $"0E4E F709 83E1 B335 F208 6565 C882 70A0" /* .N÷ƃá³5ò.eeÈ‚p  */
3522 $"2F58 5379 3999 7F2E E63D 81E4 C2EB 58E3" /* /XSy9™..æ=äÂëXã */
3523 $"4605 35E7 76D7 C7D0 AEDA 26C5 8BB6 0F99" /* F.5çv×ÇЮÚ&Å‹¶.™ */
3524 $"77C0 D3D6 9870 8279 4C2E 29C6 518F 13E6" /* wÀÓÖ˜p‚yL.)ÆQ.æ */
3525 $"1373 FCB8 FD55 3D8F 8322 F8F4 CD80 3C09" /* .sü¸ýU=ƒ"øôÍ€<Æ */
3526 $"1496 931A E1BF 0AE6 2842 6FF7 6986 6AEE" /* .–“.á¿Âæ(Bo÷i†jî */
3527 $"1AE9 FF0A 947D E3F6 D93F B59B F6D5 5FB6" /* .éÿ”}ãöÙ?µ›öÕ_¶ */
3528 $"AAC7 EDD1 1FDB 5A5F 5549 7D55 2E1F B6A4" /* ªÇíÑ.ÛZ_UI}U..¶¤ */
3529 $"FDAA F7D4 DF7D 4E80 F173 72EC 2AD6 46CC" /* ýª÷Ôß}N€ñsrì*ÖFÌ */
3530 $"6653 9F8A F548 8CD9 F7CC 0758 DFBD 1976" /* fSŸŠõHŒÙ÷Ì.Xß½.v */
3531 $"0832 03BE 1A6C 242F 4978 025D 37A6 D46A" /* .2.¾.l$/Ix.]7¦Ôj */
3532 $"B859 037D 5250 D0D6 8FC0 4C05 AAAB 7F38" /* ¸Y.}RPÐÖÀL.ª«.8 */
3533 $"799B 43F9 E370 D367 B412 8CC2 F941 E270" /* y›CùãpÓg´.ŒÂùAâp */
3534 $"A967 1978 577B 7A22 541A 7DDD A593 75E5" /* ©g.xW{z"T.}Ý¥“uå */
3535 $"6B05 D950 D953 DA5E 7EBF D5D3 4314 5006" /* k.ÙPÙSÚ^~¿ÕÓC.P. */
3536 $"8EC3 8474 6B41 83B3 7B16 9C95 721B 5405" /* ŽÃ„tkAƒ³{.œ•r.T. */
3537 $"F4AE A41F 92D8 56DA F2C9 4BF8 5B0A EBC6" /* ô®¤.’ØVÚòÉKø[ÂëÆ */
3538 $"29D5 F4F3 36B9 A6D7 3BC4 75D7 972C 7465" /* )Õôó6¹¦×;Äu×—,te */
3539 $"CCBE 21FA 6EAF 6B26 465B 4676 356D E640" /* ̾!ún¯k&F[Fv5mæ@ */
3540 $"04C3 0E39 C431 FBA5 2B53 E001 8F9D 37F5" /* .Ã.9Ä1û¥+Sà.7õ */
3541 $"F289 EC84 85B8 5FC3 F74A 734B E0B1 ED8C" /* ò‰ì„…¸_Ã÷JsKà±íŒ */
3542 $"5DF4 6678 22E4 887C A45B 1478 DFC3 A9E9" /* ]ôfx"äˆ|¤[.xßéé */
3543 $"F234 5723 01B3 2685 2754 8133 8699 21C8" /* ò4W#.³&…'T3†™!È */
3544 $"180A 27F8 174C FED5 8F71 4082 C4E8 DB83" /* .Â'ø.LþÕq@‚ÄèÛƒ */
3545 $"BDA4 4506 3FA4 5286 5D63 00F7 905D A740" /* ½¤E.?¤R†]c.÷]§@ */
3546 $"5251 07FA 22F8 1334 FBA6 5640 7199 FA41" /* RQ.ú"ø.4û¦V@q™úA */
3547 $"A3C7 3CC1 ECF5 7F43 A9AE FBD5 C1F0 18B3" /* £Ç<Áìõ.C©®ûÕÁð.³ */
3548 $"7072 4809 0A4C 8127 6E10 5F7C 335C CC28" /* prHÆÂL'n._|3\Ì( */
3549 $"B723 3D12 724D 3DE5 37B3 1C2A 136D 2258" /* ·#=.rM=å7³.*.m"X */
3550 $"DCE6 BFA4 0DAD FB6E 72C1 70F7 6D71 785D" /* Ü濤.­ûnrÁp÷mqx] */
3551 $"BC75 69CE CE3B CF7A 170E 8343 CBA9 DE66" /* ¼uiÎÎ;Ïz..ƒCË©Þf */
3552 $"06ED 779C AA9F F28D 943D 5E3E DEDE 4769" /* .íwœªŸò”=^>ÞÞGi */
3553 $"289C 5523 9792 EFAC 19A6 A945 B504 9446" /* (œU#—’ï¬.¦©Eµ.”F */
3554 $"A4DF BAA6 B5EB BAEF 7B92 3E08 6D17 870F" /* ¤ßº¦µëºï{’>.m.‡. */
3555 $"9E0A 487E 8A60 90B5 E555 CD4F D2F1 FE67" /* žÂH~Š`µåUÍOÒñþg */
3556 $"88DE BB6A E653 A2B6 F9C7 B226 2544 A167" /* ˆÞ»jæS¢¶ùDz&%D¡g */
3557 $"5DF7 5F35 F38B DB99 30F8 C210 AF41 C7A4" /* ]÷_5ó‹Û™0øÂ.¯AǤ */
3558 $"167B 30B4 8B8D 0821 4ADB EFC6 5728 A86D" /* .{0´‹.!JÛïÆW(¨m */
3559 $"99A8 2A1D 51E2 4CE5 AEA5 7ECC 23CB 628B" /* ™¨*.QâL宥~Ì#Ëb‹ */
3560 $"E438 F41A A280 CF2E 8E51 5004 A9BA 64AB" /* ä8ô.¢€Ï.ŽQP.©ºd« */
3561 $"B0AA 608C 8C19 38F7 567B 0C45 B7C5 0E2D" /* °ª`ŒŒ.8÷V{.E·Å.- */
3562 $"0F3D A192 B0F5 A567 4EE1 9FF5 F085 979A" /* .=¡’°õ¥gNáŸõð…—š */
3563 $"13DA 6FC3 89D0 0370 C986 5F44 AADD CAB9" /* .ÚoÉÐ.pɆ_DªÝʹ */
3564 $"FBD0 8CDE 18D9 8FED 715E 264F 0D69 2CEF" /* ûÐŒÞ.Ùíq^&O.i,ï */
3565 $"63F0 7A64 D65B 094A 6976 E6D4 E3DC 1583" /* cðzdÖ[ÆJivæÔãÜ.ƒ */
3566 $"FE8C BD22 992E 3FDB AF18 03A7 0A74 8333" /* þŒ½"™.?Û¯..§Âtƒ3 */
3567 $"76E3 5195 C7FA A180 5123 7E0C 544B 9C8C" /* vãQ•Çú¡€Q#~.TKœŒ */
3568 $"928D 3DF6 F330 4D6E 8049 11AF 064E 4E3B" /* ’=öó0Mn€I.¯.NN; */
3569 $"B937 EE03 A4D2 F530 4513 47F0 5E98 E060" /* ¹7î.¤Òõ0E.Gð^˜à` */
3570 $"72C6 46EC B761 FAB4 B0FA 9A80 FF78 5408" /* rÆFì·aú´°úš€ÿxT. */
3571 $"9152 452E 0111 2383 5E5F 6C4F FC53 0EDE" /* ‘RE...#ƒ^_lOüS.Þ */
3572 $"1092 66D3 5F38 1AC8 1412 561A 4017 9110" /* .’fÓ_8.È..V.@.‘. */
3573 $"CA19 3E6F 8803 0908 5F57 A2E2 4744 E3C4" /* Ê.>oˆ.Æ._W¢âGDãÄ */
3574 $"F1BF 49F6 836F E294 610B 4098 2761 1502" /* ñ¿Iöƒoâ”a.@˜'a.. */
3575 $"CCB2 0C11 81DD 05B4 ACD8 8F28 C5DD 1DD8" /* ̲..Ý.´¬Ø(ÅÝ.Ø */
3576 $"58E0 C1E1 70A8 42BF 456F FE20 1261 1F81" /* XàÁáp¨B¿Eoþ .a. */
3577 $"08AC FEB1 F89C 3576 EF94 A20C 255F 3B3F" /* .¬þ±øœ5v.%_;? */
3578 $"5E6B B0C0 4B3F EADC 8536 55E9 8144 C946" /* ^k°ÀK?êÜ…6UéDÉF */
3579 $"7613 8662 DCB1 C761 2BDA 412D C7D6 2D5C" /* v.†bܱÇa+ÚA-ÇÖ-\ */
3580 $"BCC0 F84E 54E4 9B0B BDF7 4F45 FCA6 D6AE" /* ¼ÀøNTä›.½÷OEü¦Ö® */
3581 $"1754 31D1 E6CB 94F4 D163 2B1D 017D 4171" /* .T1ÑæË”ôÑc+..}Aq */
3582 $"ABE0 0285 395D 3D23 42D7 E641 348A 0C2E" /* «à.…9]=#B×æA4Š.. */
3583 $"9C16 42C9 8E99 B654 8046 C365 EA71 CE64" /* œ.BÉŽ™¶T€FÃeêqÎd */
3584 $"B762 0E4D 7C48 617B CDB9 6264 2C81 4A9F" /* ·b.M|Ha{͹bd,JŸ */
3585 $"8600 50B2 B985 EB73 DB96 82EA FF7D 1E50" /* †.P²¹…ësÛ–‚êÿ}.P */
3586 $"6A49 AEA3 78E3 2DFD 0D59 3013 F257 AAA9" /* jI®£xã-ý.Y0.òWª© */
3587 $"0E5D 81DA E983 8D48 41BE DF0B FB34 AEA5" /* .]ÚéƒHA¾ß.û4®¥ */
3588 $"07B6 B0AA 1E53 1D9F B9C7 4CE5 8D46 6151" /* .¶°ª.S.Ÿ¹ÇLåFaQ */
3589 $"8000 0C24 1D66 1946 1073 4456 2361 E486" /* €..$.f.F.sDV#aä† */
3590 $"120F 29F0 6121 2D6A AF51 0C82 F68C B571" /* ..)ða!-j¯Q.‚öŒµq */
3591 $"77AD BE59 9145 D105 DE8C 9500 0000 0000" /* w­¾Y‘EÑ.ÞŒ•..... */
3592 $"0000 0032 BC9A BD52 00B4 6C6F 3753 1A96" /* ...2¼š½R.´lo7S.– */
3593 $"9B00 FCD3 F055 A11A AFB1 FB95 1610 88D0" /* ›.üÓðU¡.¯±û•..ˆÐ */
3594 $"8D32 9653 FC10 55FD B965 C1A9 B6BD 2245" /* 2–Sü.Uý¹eÁ©¶½"E */
3595 $"D48B 8230 2EF5 56F1 6618 9F91 FEC4 4106" /* Ô‹‚0.õVñf.Ÿ‘þÄA. */
3596 $"F23B 7C8A 0320 79EA D7A0 D75F 09BD B985" /* ò;|Š. yê× ×_ƽ¹… */
3597 $"C22B E2F0 0508 64BA AA2F 2414 19D7 311D" /* Â+âð..dºª/$..×1. */
3598 $"F709 E05C 809B 9E62 83F8 FF13 2DE3 01D6" /* ÷Æà\€›žbƒøÿ.-ã.Ö */
3599 $"8ADC F118 5A80 77C8 DABC 2FB5 CEF6 FCFB" /* ŠÜñ.Z€wÈÚ¼/µÎöüû */
3600 $"7A94 2773 6CEC FAE2 7865 753C E612 E4AF" /* z”'slìúâxeu<æ.ä¯ */
3601 $"657C 5C67 8FB3 1E56 A319 1ED1 FE48 0D8D" /* e|\g³.V£..ÑþH. */
3602 $"2431 B10B 8E15 0A4B FF7F 7EB8 D068 5015" /* $1±.Ž.ÂKÿ.~¸ÐhP. */
3603 $"151E C37C 0390 F6CC 64A8 0000 0000 0000" /* ..Ã|.öÌd¨...... */
3604 $"0000 0002 5991 79E8 2B17 082C ABCB DA90" /* ....Y‘yè+..,«ËÚ */
3605 $"CE92 8CB0 E992 0710 2B8F CAAB D217 C4E9" /* Î’Œ°é’..+Ê«Ò.Äé */
3606 $"E55E 11D2 6200 B530 5EF4 6932 1CBF EA6C" /* å^.Òb.µ0^ôi2.¿êl */
3607 $"E58D 2AA9 68C2 89FF 7903 A6ED D674 F1FC" /* å*©h‰ÿy.¦íÖtñü */
3608 $"A256 3564 F7E0 4DDF CDA1 2729 F7FF 6EB2" /* ¢V5d÷àMßÍ¡')÷ÿn² */
3609 $"9D35 70A9 5447 924B B8E1 71D3 4A8A DECB" /* 5p©TG’K¸áqÓJŠÞË */
3610 $"93E1 8FA0 140E C9B7 6124 8020 D660 3D22" /* “á ..É·a$€ Ö`=" */
3611 $"C708 222E 7289 B890 0002 00E1 2BC6 84B9" /* Ç.".r‰¸...á+Æ„¹ */
3612 $"25DF 442F 97FF 7FEF 68EC 7325 B92C A150" /* %ßD/—ÿ.ïhìs%¹,¡P */
3613 $"EE19 48C3 2540 0000 0000 0000 0000 0749" /* î.HÃ%@.........I */
3614 $"DD4A 9891 375B B0E0 C176 A698 672E F295" /* ÝJ˜‘7[°àÁv¦˜g.ò• */
3615 $"0311 7B3E 2B87 B4B8 7FB3 5DF7 9C67 CBEA" /* ..{>+‡´¸.³]÷œgËê */
3616 $"6A19 4107 C9F4 2B19 6829 179A 3FFF 7E8C" /* j.A.Éô+.h).š?ÿ~Œ */
3617 $"44A2 15E8 8E37 B422 F825 1862 58FF 7FFE" /* D¢.èŽ7´"ø%.bXÿ.þ */
3618 $"8EA1 D38C 727A 3071 1FF0 541F 6AB4 EA83" /* Ž¡ÓŒrz0q.ðT.j´êƒ */
3619 $"44A0 086A BAD7 6966 FC5D 0E72 A66C C301" /* D .jº×ifü].r¦lÃ. */
3620 $"3E1F B82C 9192 20D5 0322 858F 224C 87F5" /* >.¸,‘’ Õ."…"L‡õ */
3621 $"E940 85ED 7B36 EC96 D05C 21FF 7B10 59E1" /* é@…í{6ì–Ð\!ÿ{.Yá */
3622 $"E125 6C79 7852 2031 F3BA 34FB 6E57 BC3B" /* á%lyxR 1óº4ûnW¼; */
3623 $"69F0 C303 3A2A A573 D1E0 9836 C703 D02C" /* iðÃ.:*¥sÑà˜6Ç.Ð, */
3624 $"58CC 3DA7 FF0D 4301 F607 07C1 31FA 7F66" /* XÌ=§ÿ.C.ö..Á1ú.f */
3625 $"89BD A759 90CD 107A E5BD 6398 D7BE F7BB" /* ‰½§YÍ.zå½c˜×¾÷» */
3626 $"E273 D09A F8EE D21B 1015 A513 18F5 5C7D" /* âsКøîÒ...¥..õ\} */
3627 $"FD20 E7C9 C6BE 3105 7A4B 831D 251B 4C36" /* ý çÉƾ1.zKƒ.%.L6 */
3628 $"2A49 3EAC 1A86 9F87 09CC 0B00 2CF4 643C" /* *I>¬.†Ÿ‡ÆÌ..,ôd< */
3629 $"7012 8574 D28F 952D E959 1093 FE7E F021" /* p.…tÒ•-éY.“þ~ð! */
3630 $"028C 74ED 0E90 8DCD 5F06 B4BE EA1A 4C53" /* .Œtí.Í_.´¾ê.LS */
3631 $"A47F 3706 93CB 8FAB 7864 D123 4A39 B6BA" /* ¤.7.“Ë«xdÑ#J9¶º */
3632 $"CDCB 8AA9 2128 54FA CFB5 C4E1 F470 AD6E" /* ÍËŠ©!(TúϵÄáôp­n */
3633 $"6A05 07C9 72AA 562E F22F C922 BCF9 7DDF" /* j..ÉrªV.ò/É"¼ù}ß */
3634 $"3565 1AD4 F707 7DC0 1038 129E 4EA0 297E" /* 5e.Ô÷.}À.8.žN )~ */
3635 $"1037 3516 64BB FF75 539A 5C03 F7A3 C14D" /* .75.d»ÿuSš\.÷£ÁM */
3636 $"C617 50C8 14F1 7C95 0372 1443 C3F0 7ED4" /* Æ.PÈ.ñ|•.r.CÃð~Ô */
3637 $"EFDA FA88 BDD2 E947 7A43 A4A3 2339 CD58" /* ïÚúˆ½ÒéGzC¤£#9ÍX */
3638 $"526C 8407 8211 1949 6431 DB89 390B EB27" /* Rl„.‚..Id1Û‰9.ë' */
3639 $"9975 F04F D507 AC80 5D51 95B0 992A 1AC6" /* ™uðOÕ.¬€]Q•°™*.Æ */
3640 $"8699 86CC E64E 441C 2EFD 4F8C 70C1 DB2A" /* †™†ÌæND..ýOŒpÁÛ* */
3641 $"5395 8DF7 E279 AA65 BA32 2FD1 48C9 F400" /* S•÷âyªeº2/ÑHÉô. */
3642 $"D0EA 663D 92FF 053E 130C A1A9 491B E583" /* Ðêf=’ÿ.>..¡©I.åƒ */
3643 $"6133 2EE1 AFBE 86B8 D218 B698 906D A5B9" /* a3.᯾†¸Ò.¶˜m¥¹ */
3644 $"ACD3 9DC7 8720 C668 E134 1A1C 9C71 EA49" /* ¬ÓLJ Æhá4..œqêI */
3645 $"7AE9 9276 56E9 78BB 5679 18E2 6044 2763" /* zé’vVéx»Vy.â`D'c */
3646 $"2342 64F4 3952 2712 F704 B2E8 C1D2 35CC" /* #Bdô9R'.÷.²èÁÒ5Ì */
3647 $"F0AB 5ABD 61A0 1CD5 5316 0E78 22E6 B807" /* ð«Z½a .ÕS..x"æ¸. */
3648 $"8774 CA36 91EF 0BFF D969 6330 3900 00D1" /* ‡tÊ6‘ï.ÿÙic09..Ñ */
3649 $"2300 0000 0C6A 5020 200D 0A87 0A00 0000" /* #....jP .‡Â... */
3650 $"1466 7479 706A 7032 2000 0000 006A 7032" /* .ftypjp2 ....jp2 */
3651 $"2000 0000 4F6A 7032 6800 0000 1669 6864" /* ...Ojp2h....ihd */
3652 $"7200 0002 0000 0002 0000 0407 0701 0000" /* r............... */
3653 $"0000 0F63 6F6C 7201 0000 0000 0010 0000" /* ...colr......... */
3654 $"0022 6364 6566 0004 0000 0000 0001 0003" /* ."cdef.......... */
3655 $"0001 0000 0001 0000 0002 0002 0000 0003" /* ................ */
3656 $"0000 0000 6A70 3263 FF4F FF51 0032 0000" /* ....jp2cÿOÿQ.2.. */
3657 $"0000 0200 0000 0200 0000 0000 0000 0000" /* ................ */
3658 $"0000 0200 0000 0200 0000 0000 0000 0000" /* ................ */
3659 $"0004 0701 0107 0101 0701 0107 0101 FF52" /* ..............ÿR */
3660 $"000C 0000 0001 0105 0404 0001 FF5C 0013" /* ............ÿ\.. */
3661 $"2050 5858 6058 5860 5858 6058 5858 5050" /* PXX`XX`XX`XXXPP */
3662 $"58FF 6400 1100 014B 616B 6164 752D 7635" /* Xÿd....Kakadu-v5 */
3663 $"2E32 2E31 FF90 000A 0000 0000 D036 0001" /* .2.1ÿ.Â....Ð6.. */
3664 $"FF93 CFC2 DC03 54F9 36EC A8DC 2A8C 3701" /* ÿ“ÏÂÜ.Tù6ì¨Ü*Œ7. */
3665 $"118B 95C3 F2B2 5A7A 0428 C30A 2C64 B704" /* .‹•Ãò²Zz.(ÃÂ,d·. */
3666 $"5C3C 6DED 8696 4890 6404 5638 430C 59C5" /* \<m톖Hd.V8C.YŠ*/
3667 $"D913 B06B 0B08 E00E 1802 6D82 7225 E695" /* Ù.°k..à...m‚r%æ• */
3668 $"9F1E E7B0 D1DF 323C 61DC 1F25 E3FF 83E2" /* Ÿ.ç°Ñß2<aÜ.%ãÿƒâ */
3669 $"A49A DED4 4495 A948 5B70 9E5A 01F1 2431" /* ¤šÞÔD•©H[pžZ.ñ$1 */
3670 $"8EE5 2B54 2863 9041 FAE9 9E9F 1B85 E206" /* Žå+T(cAú鞟.…â. */
3671 $"4104 106C 5027 632A 8716 C3A5 F047 B3D5" /* A..lP'c*‡.Ã¥ðG³Õ */
3672 $"EE2B 19CD 2B75 17D8 DFB6 E2BF 491E A41F" /* î+.Í+u.Ø߶â¿I.¤. */
3673 $"BC48 3493 DEFB 453D 64DE DEA0 68DB EF5B" /* ¼H4“ÞûE=dÞÞ hÛï[ */
3674 $"1E69 8F3F C55C 1FF6 1823 1543 F483 DF20" /* .i?Å\.ö.#.Côƒß */
3675 $"F5B4 08F4 5D20 4DF0 7D7D 2007 2ACA 5B5E" /* õ´.ô] Mð}} .*Ê[^ */
3676 $"159F EF4A 505D 811D A8A3 5476 5539 B45B" /* .ŸïJP].¨£TvU9´[ */
3677 $"3113 1AC7 00F3 F1A7 E9E3 9E88 5D91 6CD5" /* 1..Ç.óñ§é㞈]‘lÕ */
3678 $"2CC0 F92B 2063 FF29 4B0E 775A 06EE 75CC" /* ,Àù+ cÿ)K.wZ.îuÌ */
3679 $"DA54 AC2F B72D 1C25 1E46 A4F8 C3E1 7D8D" /* ÚT¬/·-.%.F¤øÃá} */
3680 $"85AE BBE6 3DBE EC4A 35F7 3B36 1FBF BC38" /* …®»æ=¾ìJ5÷;6.¿¼8 */
3681 $"2DC1 785C D644 2BED AB51 1950 2643 8730" /* -Áx\ÖD+í«Q.P&C‡0 */
3682 $"2AE9 E4EB 1B8E 8F90 BA0C FF2F 6F65 5F28" /* *éäë.Žº.ÿ/oe_( */
3683 $"1A3F 9398 FF20 01A2 69A0 02C9 8D1B C3EA" /* .?“˜ÿ .¢i .É.Ãê */
3684 $"A600 6417 3CA3 9E84 93EF 063D 59DC 702C" /* ¦.d.<£ž„“ï.=YÜp, */
3685 $"959D C3A6 B1ED DEF1 F321 5BA6 FCCD 7762" /* •Ã¦±íÞñó![¦üÍwb */
3686 $"6C23 7398 AA59 4BBA 0052 B8A7 0608 1AAC" /* l#s˜ªYKº.R¸§...¬ */
3687 $"5B2E AF60 17F4 278E 6433 6F75 7839 CED2" /* [.¯`.ô'Žd3oux9ÎÒ */
3688 $"F32E 5D7D 9D40 B145 4CFB A25C D8D7 4BCB" /* ó.]}@±ELû¢\Ø×KË */
3689 $"956D 88DD 4B92 64BF 4CD4 AFD5 6E56 9859" /* •mˆÝK’d¿LÔ¯ÕnV˜Y */
3690 $"ABEF BB40 AD0E 6E1F 9B3B 16A3 D9D3 58DF" /* «ï»@­.n.›;.£ÙÓXß */
3691 $"584E C303 1DAD D18B 6082 9C29 88EB 5163" /* XNÃ..­Ñ‹`‚œ)ˆëQc */
3692 $"A42D 061A 1570 64A9 0F1C E00D 56D9 E0CB" /* ¤-...pd©..à.VÙàË */
3693 $"7C66 799C 8EB4 BFCA CF5C CFC2 B611 4F0C" /* |fyœŽ´¿ÊÏ\϶.O. */
3694 $"AFDE 008C 3580 A270 0C1A 3737 50A1 9A89" /* ¯Þ.Œ5€¢p..77P¡š‰ */
3695 $"2546 BB2C 62A0 57BE 59CB C00A 1EE9 0F1D" /* %F»,b W¾YËÀÂ.é.. */
3696 $"C528 40D4 EA69 D281 AED4 B078 F27A 0B42" /* Å(@ÔêiÒ®Ô°xòz.B */
3697 $"7AD2 DADD 146B 7FFF 223D 6A74 2041 4FCF" /* zÒÚÝ.k.ÿ"=jt AOÏ */
3698 $"46E1 60C8 9ABE 841E E18D 1712 DB6D 902B" /* Fá`Èš¾„.á..Ûm+ */
3699 $"7BE6 56DA 7E4B 1704 A373 2802 B120 0184" /* {æVÚ~K..£s(.± .„ */
3700 $"0681 4499 2739 CE73 9CE8 99D8 C352 337C" /* .D™'9Îsœè™ØÃR3| */
3701 $"06AB BB71 6257 16EF B535 4972 8C2F 2EE0" /* .«»qbW.ïµ5IrŒ/.à */
3702 $"85CC 8431 D867 47EE CC43 6E87 A485 2316" /* …Ì„1ØgGîÌCn‡¤…#. */
3703 $"4927 AE22 C12D 49CE 739C E61C 97D0 99CC" /* I'®"Á-IÎsœæ.—Ð™Ì */
3704 $"3DC5 F26B 1A31 E742 3E56 464B 2944 108E" /* =Åòk.1çB>VFK)D.Ž */
3705 $"CB0C F4C7 E144 47E1 47C1 F6BD 8089 21DB" /* Ë.ôÇáDGáGÁö½€‰!Û */
3706 $"8279 4533 01BF B9CC C444 AD53 5F75 D706" /* ‚yE3.¿¹ÌÄD­S_u×. */
3707 $"3FDD CA27 5D6C 9F54 1CCF F838 38E4 B2E4" /* ?ÝÊ']lŸT.Ïø88ä²ä */
3708 $"F9FF 429F 59FE D27B 4A5E A69F 2C21 38F6" /* ùÿBŸYþÒ{J^¦Ÿ,!8ö */
3709 $"5A74 D405 2FEE 50B8 E5F1 C489 2693 5B33" /* ZtÔ./îP¸åñĉ&“[3 */
3710 $"D2C2 9DEC 68ED F55C 1FAC 1401 8D66 795A" /* ÒÂìhíõ\.¬..fyZ */
3711 $"F5F3 27A3 5874 6681 9AC6 F41D A4E6 40DA" /* õó'£XtfšÆô.¤æ@Ú */
3712 $"3EE5 CCEE 340C AF72 87FD 6B2A EB94 88EC" /* >åÌî4.¯r‡ýk*딈ì */
3713 $"A61D A536 7AC2 C6B8 85D9 CEBD 146C 83B5" /* ¦.¥6zÂƸ…Ùν.lƒµ */
3714 $"F5E0 A3C7 B524 BC64 B6B5 91A6 BF91 C547" /* õà£Çµ$¼d¶µ‘¦¿‘ÅG */
3715 $"BD87 811F D58E 8E51 BB89 FA6C 5257 33D9" /* ½‡.ÕŽŽQ»‰úlRW3Ù */
3716 $"A964 A4AB 3BB9 9608 BECC 0D9C D6B9 3D3A" /* ©d¤«;¹–.¾Ì.œÖ¹=: */
3717 $"CB64 28BE 3B07 6318 DF9D C134 9F16 567A" /* Ëd(¾;.c.ßÁ4Ÿ.Vz */
3718 $"8127 5FFD F396 BA0C B86F AA17 2301 022A" /* '_ýó–º.¸oª.#..* */
3719 $"3742 CE95 B1AF F858 C503 8156 35E0 8F2C" /* 7BΕ±¯øXÅ.V5à, */
3720 $"67D7 2D41 1F0B 5284 1535 AF16 6540 FB65" /* g×-A..R„.5¯.e@ûe */
3721 $"65BC 5F6B 136D 73A5 1C5D 3D92 FF5F 8494" /* e¼_k.ms¥.]=’ÿ_„” */
3722 $"FDBF E0C5 821F 072A 0EEB B855 6B42 CEE8" /* ý¿àÅ‚..*.ë¸UkBÎè */
3723 $"ABEE 381E 894E DF1E 29DD 4B78 3F0A F5EB" /* «î8.‰Nß.)ÝKx?Âõë */
3724 $"B9F8 61B8 8266 3BD8 A2AC 5BC1 38F4 5098" /* ¹øa¸‚f;Ø¢¬[Á8ôP˜ */
3725 $"3951 2437 1798 7BF9 EA00 12BF CF3E 9166" /* 9Q$7.˜{ùê..¿Ï>‘f */
3726 $"8253 6FF0 B942 70D7 C729 0866 33F7 3484" /* ‚Soð¹Bp×Ç).f3÷4„ */
3727 $"ADF8 C3D2 4EF6 1DF4 0E6F 8E64 B470 1D5E" /* ­øÃÒNö.ô.oŽd´p.^ */
3728 $"F311 9BD1 EDE1 BA5D 7601 2053 D70A FDCD" /* ó.›Ñíáº]v. S×ÂýÍ */
3729 $"82C0 1BDA A35C FAD2 67AD E569 7851 10A7" /* ‚À.Ú£\úÒg­åixQ.§ */
3730 $"EF9A 3533 EC03 E813 08B6 D984 1A1D 3DC0" /* ïš53ì.è..¶Ù„..=À */
3731 $"7C8E E03E 4A44 03E4 7894 FF1F 080E 2BFD" /* |Žà>JD.äx”ÿ...+ý */
3732 $"EEB4 E64A C757 389B 5780 3AF8 248C 580D" /* î´æJÇW8›W€:ø$ŒX. */
3733 $"461B D417 66BA CEB2 2042 3C84 DAF9 C127" /* F.Ô.fºÎ² B<„ÚùÁ' */
3734 $"63E9 168C A9E3 D418 61E8 C46C CF01 F59B" /* cé.Œ©ãÔ.aèÄlÏ.õ› */
3735 $"4518 8833 3E62 5B14 BFD1 41A8 45D6 D311" /* E.ˆ3>b[.¿ÑA¨EÖÓ. */
3736 $"8431 80DB 1FD5 5839 DE81 BCD9 EAFB EE26" /* „1€Û.ÕX9Þ¼Ùêûî& */
3737 $"33DD 9E73 0B6F F957 26EE E7BA E0DA FF22" /* 3Ýžs.oùW&îçºàÚÿ" */
3738 $"EA50 24BF A182 089D 749A 6AAF BFF2 224D" /* êP$¿¡‚.tšj¯¿ò"M */
3739 $"30D4 11D0 E07A A012 587A 0633 92B4 CBFC" /* 0Ô.Ðàz .Xz.3’´Ëü */
3740 $"8E1B E5AC 9025 A74D 2819 3F9D 8132 B795" /* Ž.å¬%§M(.?2·• */
3741 $"458E 4651 1589 158D D24C A5B0 CBFA 359E" /* EŽFQ.‰.ÒL¥°Ëú5ž */
3742 $"BDB0 E4FB BFE3 5854 3E88 A646 71B1 9CB2" /* ½°äû¿ãXT>ˆ¦Fq±œ² */
3743 $"BB4E BA8E E170 8CBF C1F5 3141 F537 C0FA" /* »NºŽápŒ¿Áõ1Aõ7Àú */
3744 $"9780 6448 BA3B 94D6 3E8B 7AF0 0B5A C7A2" /* —€dHº;”Ö>‹zð.ZÇ¢ */
3745 $"4D05 C6BB 7F47 7102 F66E E4E8 3681 1C97" /* M.Æ».Gq.önäè6.— */
3746 $"0996 4491 F713 2A24 3756 2715 4B55 762F" /* Æ–D‘÷.*$7V'.KUv/ */
3747 $"78CB 2608 0563 73F7 5626 9F35 0C54 6822" /* xË&..cs÷V&Ÿ5.Th" */
3748 $"F061 792A 4AFC 163A 9F83 8F82 638B 524D" /* ðay*Jü.:Ÿƒ‚c‹RM */
3749 $"C21C 3735 DB76 6F4B 01F2 3E7E 5755 5945" /* Â.75ÛvoK.ò>~WUYE */
3750 $"6149 AAEE 1A88 7748 DC47 79E4 0660 318C" /* aIªî.ˆwHÜGyä.`1Œ */
3751 $"AA94 E92D 9879 C9C1 AC17 C828 7BBB 997A" /* ª”é-˜yÉÁ¬.È({»™z */
3752 $"315E 858F F31D 3522 A6D2 B3BD E548 DBA2" /* 1^…ó.5"¦Ò³½åHÛ¢ */
3753 $"3274 749B 11C1 9570 D715 0350 4CC4 6820" /* 2tt›.Á•p×..PLÄh */
3754 $"560A 8542 A38D 913B 3863 FF5C 97F2 9BA5" /* VÂ…B£‘;8cÿ\—ò›¥ */
3755 $"893F 6C9B 15A2 EE40 BCD6 2676 80A9 AC89" /* ‰?l›.¢î@¼Ö&v€©¬‰ */
3756 $"9054 849D 859C 8DCD 181B 64F4 6D7B 71B4" /* T„…œÍ..dôm{q´ */
3757 $"FBD3 0C84 21D4 CC6C CF84 F40A A3CD C958" /* ûÓ.„!ÔÌlÏ„ô£ÍÉX */
3758 $"928E 97E5 346C 6497 2888 7903 5B0B 3277" /* ’Ž—å4ld—(ˆy.[.2w */
3759 $"B4D6 9AA4 86C3 C691 CA1A 3C92 FCFB 02DE" /* ´Öš¤†ÃÆ‘Ê.<’üû.Þ */
3760 $"A25E 5C5C C6A8 1CE2 F5B5 88AB 3673 F912" /* ¢^\\ƨ.âõµˆ«6sù. */
3761 $"96AF E6BC 67FF 40CC 068D C6E3 8435 48AF" /* –¯æ¼gÿ@Ì.Æã„5H¯ */
3762 $"B929 F509 0F59 3410 A9A6 1087 8352 11EC" /* ¹)õÆ.Y4.©¦.‡ƒR.ì */
3763 $"23CF CD2E 3F05 487E 0740 9BE7 236F 56FB" /* #ÏÍ.?.H~.@›ç#oVû */
3764 $"D0F4 677F 9514 C6E9 50BB A61A 6135 73FB" /* Ðôg.•.ÆéP»¦.a5sû */
3765 $"37AA FA5C 0967 671C 8485 5326 6EB5 4955" /* 7ªú\Ægg.„…S&nµIU */
3766 $"1AAE 5FCE C271 D992 9E8C B0DF 7795 E0F2" /* .®_ÎÂqÙ’žŒ°ßw•àò */
3767 $"A17A B50F E53A FE12 756F D1A1 5CE1 7C9B" /* ¡zµ.å:þ.uoÑ¡\á|› */
3768 $"D185 2C1A 9224 BC62 5C98 FA35 1649 6EA7" /* Ñ…,.’$¼b\˜ú5.In§ */
3769 $"4C7C C191 DF92 9D7A 6FE9 71D9 9A11 5A19" /* L|Á‘ß’zoéqÙš.Z. */
3770 $"214D F951 38FA C459 E39A 6DAE 1253 31DF" /* !MùQ8úÄYãšm®.S1ß */
3771 $"B335 3337 39D2 7591 BFC1 31E6 887A 8BAB" /* ³5379Òu‘¿Á1æˆz‹« */
3772 $"ECCD 7A58 8E4A AD65 A7E1 5FC6 8EB0 DA82" /* ìÍzXŽJ­e§á_ÆŽ°Ú‚ */
3773 $"0F81 6849 5CE5 AB32 B763 1227 3F4C 5691" /* .hI\å«2·c.'?LV‘ */
3774 $"43C7 DD24 E8D9 C4F3 7BB0 4666 7A24 1C5B" /* CÇÝ$èÙÄó{°Ffz$.[ */
3775 $"F57D 719F 2BDB 3794 66BA BBB6 9D8D A662" /* õ}qŸ+Û7”fº»¶¦b */
3776 $"CF99 4DDC E533 96D6 EEE0 3FC7 BFB8 B1B7" /* Ï™MÜå3–Öîà?Ç¿¸±· */
3777 $"9AE3 57C7 E1A8 B1F8 6C5C 3F0D 19C1 812D" /* šãWÇᨱøl\?..Á- */
3778 $"8D31 C88B C396 B5E7 3CE0 4E2C AE73 7876" /* 1ȋÖµç<àN,®sxv */
3779 $"0436 A295 BEC6 BDF1 C604 C41C 94E6 E7C1" /* .6¢•¾Æ½ñÆ.Ä.”æçÁ */
3780 $"AC78 356A B92A DB37 3360 3372 6638 0C5C" /* ¬x5j¹*Û73`3rf8.\ */
3781 $"F388 7CDE 4045 060F E713 C4C3 321E E08B" /* óˆ|Þ@E..ç.ÄÃ2.à‹ */
3782 $"0810 71EE A6AB C032 2B85 C34C 2671 8143" /* ..qÀ2+…ÃL&qC */
3783 $"AFDE 07D1 A40C D86A ADBE B961 EAA3 54BD" /* ¯Þ.Ѥ.Øj­¾¹aê£T½ */
3784 $"804D 6FA9 AA3F 7FBE BCD9 E785 A230 EA4E" /* €Mo©ª?.¾¼Ùç…¢0êN */
3785 $"1C08 1DF6 8373 7754 5039 7854 1192 1512" /* ...öƒswTP9xT.’.. */
3786 $"B956 E9A7 575E E3DB F5F9 4B02 F739 F2BB" /* ¹Vé§W^ãÛõùK.÷9ò» */
3787 $"91B2 73E1 3D19 EBB6 AD2F 291C 5BAC 5EEA" /* ‘²sá=.붭/).[¬^ê */
3788 $"EEDF 8DA7 5FCA 8E8C 952D 8FD0 441C 5BA4" /* îߧ_ÊŽŒ•-ÐD.[¤ */
3789 $"8AF6 21BE 1FAF DAE3 DADD EA91 EF73 58A0" /* Šö!¾.¯ÚãÚÝê‘ïsX  */
3790 $"29E6 89B2 E279 B02A D092 DD08 6187 9095" /* )扲ây°*Ð’Ý.a‡• */
3791 $"5C85 C903 0DD2 9ED3 538B D9BB E936 8ABB" /* \…É..ÒžÓS‹Ù»é6Š» */
3792 $"E203 DD03 2944 5317 7BC3 0297 2125 F198" /* â.Ý.)DS.{Ã.—!%ñ˜ */
3793 $"D117 8DDB E382 71F8 D0A7 14B1 6D7A A0EB" /* Ñ.Ûã‚qøЧ.±mz ë */
3794 $"7C6F 7651 D2EC ECA7 F670 D09F 6CF6 30DB" /* |ovQÒìì§öpПlö0Û */
3795 $"0830 39B5 BC45 3915 4054 4490 A7BA 5CEC" /* .09µ¼E9.@TD§º\ì */
3796 $"D37B FBC2 7890 B18F DEEA 4966 D46D 5FD2" /* Ó{ûÂx±ÞêIfÔm_Ò */
3797 $"7811 AAD0 8EBF FB40 0F30 D8A4 2B71 5A03" /* x.ªÐŽ¿û@.0ؤ+qZ. */
3798 $"636A C360 C889 891D D420 A828 E337 41CC" /* cjÃ`ȉ‰.Ô ¨(ã7AÌ */
3799 $"3314 5473 B91F 7B78 2B3B AC7A 1127 F2DE" /* 3.Ts¹.{x+;¬z.'òÞ */
3800 $"E997 2101 6008 26AE 43D5 7CE7 8532 B9CE" /* é—!.`.&®CÕ|ç…2¹Î */
3801 $"A81A 710E 5D87 49D7 3EF6 65A3 D533 977E" /* ¨.q.]‡I×>öe£Õ3—~ */
3802 $"7BE9 0CA7 8B28 9ADA AF4F 45A5 99BD E21D" /* {é.§‹(šÚ¯OE¥™½â. */
3803 $"D4B1 BB33 2508 C8D1 31E5 E9FB F917 A8E1" /* Ô±»3%.ÈÑ1åéûù.¨á */
3804 $"2955 9008 F531 9010 575A 3AFB 59F4 CD63" /* )U.õ1.WZ:ûYôÍc */
3805 $"3EEE 2409 BCD4 E5F1 1418 6155 B6D7 A94B" /* >î$ƼÔåñ..aU¶×©K */
3806 $"1D48 79A8 2F32 0770 476B CE28 023A DC86" /* .Hy¨/2.pGkÎ(.:܆ */
3807 $"E008 813B E64A 39F5 58CE 3E75 DAA6 BD7A" /* à.;æJ9õXÎ>uÚ¦½z */
3808 $"1528 FF50 0738 C132 5569 3C99 C4BC A20F" /* .(ÿP.8Á2Ui<™Ä¼¢. */
3809 $"6DED 9310 6FE1 8BE4 BF4D D0B1 993E 0FD3" /* mí“.oá‹ä¿Mб™>.Ó */
3810 $"4938 1302 E4A8 FDA2 A7D2 4615 CD89 1E52" /* I8..ä¨ý¢§ÒF.͉.R */
3811 $"4160 51F8 BABB FEED 4281 0E0C 31CD 91D7" /* A`Qøº»þíB..1Í‘× */
3812 $"C7CF E302 E155 4188 0F06 097F 6906 2EC9" /* ÇÏã.áUAˆ..Æ.i..É */
3813 $"BE00 A1FB 0D99 8FB1 3B3D E3D3 70B8 4296" /* ¾.¡û.™±;=ãÓp¸B– */
3814 $"F199 E066 15B5 920C 38A2 695F F2E8 81E1" /* ñ™àf.µ’.8¢i_òèá */
3815 $"E0EC 34E5 97B3 9580 459F A2D9 E267 B847" /* àì4å—³•€EŸ¢Ùâg¸G */
3816 $"E302 3AA0 8631 8C61 5F8E 88DE 2FBB 394B" /* ã.: †1Œa_ŽˆÞ/»9K */
3817 $"B9EC 234B 6515 BDF3 BA80 AA30 3D50 2F90" /* ¹ì#Ke.½óº€ª0=P/ */
3818 $"C26A D743 2198 707A 2DC1 9C64 1647 1FA3" /* Âj×C!˜pz-Áœd.G.£ */
3819 $"43A2 B1C7 C95D 1E19 9650 E616 F24B C118" /* C¢±ÇÉ]..–Pæ.òKÁ. */
3820 $"FB68 CE23 485E BF50 ACF8 F669 B5A3 92AA" /* ûhÎ#H^¿P¬øöiµ£’ª */
3821 $"5625 BF48 8584 A6E7 DAC0 E203 2AF0 89A0" /* V%¿H…„¦çÚÀâ.*ð‰  */
3822 $"DB92 4924 9249 1BF5 D855 0470 51D0 AAE2" /* Û’I$’I.õØU.pQЪâ */
3823 $"A1E5 FBC9 CB80 1798 2EB3 EB1E 9FD4 46E7" /* ¡åûÉË€.˜.³ë.ŸÔFç */
3824 $"63DB F02E 204B D35F 54DE 0FD3 2F81 FB63" /* cÛð. KÓ_TÞ.Ó/ûc */
3825 $"9CEC 37F1 C9FF 5B63 B13D BFBD 1169 0415" /* œì7ñÉÿ[c±=¿½.i.. */
3826 $"0E97 DA89 25E3 92C7 01F5 50E6 2181 A536" /* .—Ú‰%ã’Ç.õPæ!¥6 */
3827 $"4020 C49B 1977 1BF5 5226 FD7D 668A D76F" /* @ Ä›.w.õR&ý}fŠ×o */
3828 $"2954 58F1 F44F 2935 F136 18BD C844 05FD" /* )TXñôO)5ñ6.½ÈD.ý */
3829 $"E325 9012 9E92 6EC3 E822 D06F A958 C54C" /* ã%.ž’nÃè"Ðo©XÅL */
3830 $"6A4D 0A98 093C 481D 1424 7964 E810 7A60" /* jM˜Æ<H..$ydè.z` */
3831 $"F2C0 8287 A7F4 B307 FBDF 2550 567E 01EA" /* òÀ‚‡§ô³.ûß%PV~.ê */
3832 $"2C45 4614 9A0A 04E8 397B 3DEC 6CDA CA95" /* ,EF.šÂ.è9{=ìlÚÊ• */
3833 $"B754 699A FF29 B46B D6E3 BB8C 153C AEC0" /* ·Tišÿ)´kÖ㻌.<®À */
3834 $"BEFF 46AD 744B B945 4C07 F7F7 178D 059E" /* ¾ÿF­tK¹EL.÷÷..ž */
3835 $"2E80 10C4 6DD6 F19E B649 73D6 8C57 7A6C" /* .€.ÄmÖñž¶IsÖŒWzl */
3836 $"45DE 3D43 22DE C54A DFCD 64EA 9D77 1AC6" /* EÞ=C"ÞÅJßÍdêw.Æ */
3837 $"E15E A9A7 0D83 D53C 100B EC25 2B93 1D27" /* á^©§.ƒÕ<..ì%+“.' */
3838 $"367A 864E D9C4 F0B9 DF5C 538D B2C0 24EE" /* 6z†NÙÄð¹ß\S²À$î */
3839 $"46E7 424C 2127 6BED B492 3354 86C9 D855" /* FçBL!'kí´’3T†ÉØU */
3840 $"317B 6BE2 8205 C07C 9A42 03E4 D6B0 0F93" /* 1{kâ‚.À|šB.äÖ°.“ */
3841 $"4400 AFF0 AE8C D6D6 6729 AEBE 9CDE 5C69" /* D.¯ð®ŒÖÖg)®¾œÞ\i */
3842 $"D95C 01A0 28AF 1E57 B12C CA6D F010 ED89" /* Ù\. (¯.W±,Êmð.í‰ */
3843 $"4C46 38AA BAFC D67E 9E98 C6CA 85E4 433E" /* LF8ªºüÖ~ž˜ÆÊ…äC> */
3844 $"C450 03B7 E8DE 17B3 9CE7 02E1 BE72 100B" /* ÄP.·èÞ.³œç.á¾r.. */
3845 $"2EF5 787D 0D12 FC3B 855A 3F97 1850 05EF" /* .õx}..ü;…Z?—.P.ï */
3846 $"A05D 7CC2 405B BA6D 9175 7C99 BE1C 2370" /*  ]|Â@[ºm‘u|™¾.#p */
3847 $"1F57 2085 13F8 B672 728D 1152 8232 1EE4" /* .W ….ø¶rr.R‚2.ä */
3848 $"A666 BFD0 06A8 6CFF 3D73 D895 5968 A54A" /* ¦f¿Ð.¨lÿ=sØ•Yh¥J */
3849 $"3219 63AB D4CD 8E7D 52F3 D260 CE4D E329" /* 2.c«ÔÍŽ}RóÒ`ÎMã) */
3850 $"F554 C837 34CC 2866 FA1E 1F34 B209 B8C3" /* õTÈ74Ì(fú..4²Æ¸Ã */
3851 $"097B 8DBC 8788 F621 2A57 5468 5FD8 852B" /* Æ{¼‡ˆö!*WTh_Ø…+ */
3852 $"08A9 45F3 71A8 A26B F63C 2DB1 750F A833" /* .©Eóq¨¢kö<-±u.¨3 */
3853 $"4767 6D8A B551 FF10 9E54 AD5D EE2E 2207" /* GgmŠµQÿ.žT­]î.". */
3854 $"44EA 0D21 75D4 779D E96D 49FF 47CE D775" /* Dê.!uÔwémIÿGÎ×u */
3855 $"D7B0 2380 5F1C 4185 EF0B BECB 1A55 9696" /* ×°#€_.A…ï.¾Ë.U–– */
3856 $"81B8 94F2 4F5B 07D8 D5EC 9E2A 049D 5E87" /* ¸”òO[.ØÕìž*.^‡ */
3857 $"2601 FB44 4AD5 C57B A7B0 8088 B723 134E" /* &.ûDJÕÅ{§°€ˆ·#.N */
3858 $"0B8A 375E B972 F34F F25A 2B68 3F15 4496" /* .Š7^¹róOòZ+h?.D– */
3859 $"5734 FE10 D742 67F9 9FFF 639C FAFD 23DB" /* W4þ.×BgùŸÿcœúý#Û */
3860 $"B90C F402 17F0 81C6 2656 EFD0 E011 C866" /* ¹.ô..ðÆ&VïÐà.Èf */
3861 $"15C8 4927 3415 BEC1 7876 E693 74CB DBEA" /* .ÈI'4.¾Áxvæ“tËÛê */
3862 $"7206 2246 23EC DCCA 51CD 72C1 8C41 1B85" /* r."F#ìÜÊQÍrÁŒA.… */
3863 $"AE9B 6FA5 4286 03FB 7000 D94F 5A8B 8A85" /* ®›o¥B†.ûp.ÙOZ‹Š… */
3864 $"2F34 7575 E7AB 08FF 3CBD 328D D95D BDF5" /* /4uuç«.ÿ<½2Ù]½õ */
3865 $"8070 0FAD B573 A91E 5F83 D32D 3337 A5B7" /* €p.­µs©._ƒÓ-37¥· */
3866 $"C6A7 3048 8D7C 3F01 F6BF 1BAB D684 0585" /* Ƨ0H|?.ö¿.«Ö„.… */
3867 $"798A A28D 68A6 4993 22BC F35C E3A7 BABE" /* yŠ¢h¦I“"¼ó\㧺¾ */
3868 $"0D5B 7E43 2B91 5DA6 6821 0495 4B22 33C0" /* .[~C+‘]¦h!.•K"3À */
3869 $"1217 1302 A7EB 1093 C8BD 3622 F0FD 14C3" /* ....§ë.“Ƚ6"ðý.à */
3870 $"EDBA 60FA B4C2 07D5 6D80 C177 9C23 24FE" /* íº`ú´Â.Õm€Áwœ#$þ */
3871 $"C9E7 77A7 1945 4C1A 8945 129A 2581 498D" /* Éçw§.EL.‰E.š%I */
3872 $"F2BD 5AD6 EF89 4D80 3EC2 DA29 E093 A726" /* ò½ZÖï‰M€>ÂÚ)à“§& */
3873 $"88F1 0796 E9F0 8F36 D342 7AD3 DEC2 2CCA" /* ˆñ.–éð6ÓBzÓÞÂ,Ê */
3874 $"45B9 35A0 DE31 D18B 2954 C38C 4B3A EEA2" /* E¹5 Þ1Ñ‹)TÃŒK:î¢ */
3875 $"5CD5 333D 6C59 23C7 17B3 C98C 65EE 8117" /* \Õ3=lY#Ç.³ÉŒeî. */
3876 $"22A2 574D D223 581B D09B 6473 3F85 6E2A" /* "¢WMÒ#X.Лds?…n* */
3877 $"81B5 F600 CAB6 1A02 3B24 D726 4344 536F" /* µö.ʶ..;$×&CDSo */
3878 $"99AB 09C8 96EA B41B 01C9 7AC8 9478 B8AB" /* ™«ÆÈ–ê´..ÉzÈ”x¸« */
3879 $"69E3 1BF1 1100 AFF3 C59C 01FB 8EF9 047D" /* iã.ñ..¯óÅœ.ûŽù.} */
3880 $"21EF 11DE D2CA BEE2 8372 5DDB C39C DE6E" /* !ï.ÞÒʾâƒr]ÛÃœÞn */
3881 $"B652 35FE FDFB F1E8 2E91 778A 86C3 3117" /* ¶R5þýûñè.‘wŠ†Ã1. */
3882 $"87D8 A7D5 7862 68B7 30C1 3B32 D209 0256" /* ‡Ø§Õxbh·0Á;2ÒÆ.V */
3883 $"2BF7 DFEF 17C3 FC30 EF1D 9327 7041 FC3C" /* +÷ßï.Ãü0ï.“'pAü< */
3884 $"674F 3069 DAB2 0EA5 BB48 DC2C DC66 F660" /* gO0iÚ².¥»HÜ,Üfö` */
3885 $"9C9B C7C8 3734 C68B 7D5A 60A1 DF3D D3A8" /* œ›ÇÈ74Æ‹}Z`¡ß=Ó¨ */
3886 $"E60C D15A 11C7 FB3B F75A 358E A7F7 16CB" /* æ.ÑZ.Çû;÷Z5Ž§÷.Ë */
3887 $"67B5 097E E2A2 DE6C E40A FD52 8F75 43EF" /* gµÆ~â¢ÞläÂýRuCï */
3888 $"F5DF 5A51 BBF5 A074 791F F54F 9724 23C3" /* õßZQ»õ ty.õO—$#Ã */
3889 $"F5E6 C4A3 E22C 1E06 3B71 A9A2 1C17 0109" /* õæÄ£â,..;q©¢...Æ */
3890 $"1B59 2742 AB03 0497 3E5A AD73 7FD3 DA51" /* .Y'B«..—>Z­s.ÓÚQ */
3891 $"9F17 A10E B9CF 7503 3395 8788 9D9D 4A58" /* Ÿ.¡.¹Ïu.3•‡ˆJX */
3892 $"F9B8 4A61 3DDA 7489 8086 9EAC 4D7D 62DD" /* ù¸Ja=Út‰€†ž¬M}bÝ */
3893 $"BF8B 9462 1CC0 6912 69BE 3BFE FED7 3174" /* ¿‹”b.Ài.i¾;þþ×1t */
3894 $"CAA6 A806 FF59 B963 ABEE 508B F428 D15C" /* ʦ¨.ÿY¹c«îP‹ô(Ñ\ */
3895 $"82FC BA30 6907 C572 F2BD C0DB E9A2 44AF" /* ‚üº0i.Årò½ÀÛé¢D¯ */
3896 $"EED6 81F7 C602 F802 0374 CD1D 0F41 5E2E" /* îÖ÷Æ.ø..tÍ..A^. */
3897 $"F54F E7AB C492 54F8 C570 48A6 1603 35D3" /* õOç«Ä’TøÅpH¦..5Ó */
3898 $"EA1A 6A6D FD79 27E3 F928 4E16 3A2D 43FE" /* ê.jmýy'ãù(N.:-Cþ */
3899 $"6C3D AFC6 FA1C 578C 7BA9 7343 5B2C 7BB9" /* l=¯Æú.WŒ{©sC[,{¹ */
3900 $"0614 915A 24C4 CAC1 A2D3 0EAF EAE8 7257" /* ..‘Z$ÄÊÁ¢Ó.¯êèrW */
3901 $"EA2D 1ED2 3FFE 26A7 3E28 28D0 1AE1 D790" /* ê-.Ò?þ&§>((Ð.á× */
3902 $"A25D 1C6C BA20 E196 1EEC 9720 92EE 6E62" /* ¢].lº á–.ì— ’înb */
3903 $"E218 5609 944E 9A2E 9228 117A 6065 93FF" /* â.VÆ”Nš.’(.z`e“ÿ */
3904 $"2B32 B2C1 7876 E657 E39E 8641 F202 62B4" /* +2²ÁxvæW㞆Aò.b´ */
3905 $"20C5 99D9 F9E5 7D83 D807 EDB7 9A34 475B" /* Å™Ùùå}ƒØ.í·š4G[ */
3906 $"4F45 9AE8 ACD6 3098 A0C2 8D14 CBDB 9A2B" /* OEšè¬Ö0˜ Â.ËÛš+ */
3907 $"0EF7 CB30 8B49 169F 1ECD 6F33 F063 65DA" /* .÷Ë0‹I.Ÿ.Ío3ðceÚ */
3908 $"2A2F F0B0 EE29 91F7 CA11 748C 5E4E A447" /* *.ð°î)‘÷Ê.tŒ^N¤G */
3909 $"0F7F 4B32 DB7A 366C 27C4 F178 33B7 5E9B" /* ..K2Ûz6l'Äñx3·^› */
3910 $"BAAF 29CD A3EF 39BB 5FAD AD2B 5DCA 09E8" /* º¯)Í£ï9»_­­+]ÊÆè */
3911 $"DB9A DD07 84DD 870E 2A4C 850B BD04 7F9A" /* ÛšÝ.„݇.*L….½..š */
3912 $"1354 1DAA 0819 F583 1F47 5905 6597 5F07" /* .T.ª..õƒ.GY.e—_. */
3913 $"7ED6 DFFA BA65 FA6C D01D F65F F833 D479" /* ~ÖßúºeúlÐ.ö_ø3Ôy */
3914 $"BFD3 F3D8 57BB 3718 EBC8 5A2D 732E 464E" /* ¿ÓóØW»7.ëÈZ-s.FN */
3915 $"6B46 9512 778B 8066 D5DA D21A 819D 5384" /* kF•.w‹€fÕÚÒ.S„ */
3916 $"A84C AE56 92E2 2E9A 4D27 8A21 E02D 67FC" /* ¨L®V’â.šM'Š!à-gü */
3917 $"EAA4 B3D5 9306 1D06 CC9A 84C8 D6C4 C7E1" /* ꤳՓ...Ìš„ÈÖÄÇá */
3918 $"4F47 E168 43F0 6EB1 9276 ED11 2C29 F1CB" /* OGáhCðn±’ví.,)ñË */
3919 $"90AB 1975 3405 422B 78EC 7776 FA5C 0A2C" /* «.u4.B+xìwvú\Â, */
3920 $"F4B1 4F40 32CE D338 8911 EAB4 4CFC 7765" /* ô±O@2ÎÓ8‰.ê´Lüwe */
3921 $"D9ED C10E 114B 0909 1122 6832 A41E 3365" /* ÙíÁ..KÆÆ."h2¤.3e */
3922 $"96EF FC81 A398 2FE8 0464 5D18 0C9F C1AF" /* –ïü£˜/è.d]..ŸÁ¯ */
3923 $"8E6F 42CA BDC9 1DC4 770E 1C2E 01BD 62DB" /* ŽoBʽÉ.Äw....½bÛ */
3924 $"7798 4167 FC4F B27D D7E6 32CE 7F95 954F" /* w˜AgüO²}×æ2Î.••O */
3925 $"653C 833E B4F1 C6C2 307E 0796 686E 6F5C" /* e<ƒ>´ñÆÂ0~.–hno\ */
3926 $"6EE2 6260 4C0B 5329 36D8 839E 5F08 319C" /* nâb`L.S)6؃ž_.1œ */
3927 $"4CAE 85DE 6B64 F427 1358 C9FF 57B9 AF78" /* L®…Þkdô'.XÉÿW¹¯x */
3928 $"332B 82A6 0EBF 0F83 7A3C 8004 1402 6A12" /* 3+‚¦.¿.ƒz<€...j. */
3929 $"FEE8 1612 2D8A 47FE 5BDE 2714 B393 E32F" /* þè..-ŠGþ[Þ'.³“ã/ */
3930 $"013E BD7E 14FA 285D BF61 7CDA 3A92 734A" /* .>½~.ú(]¿a|Ú:’sJ */
3931 $"520E 978D 8736 6AA9 847B 05C9 F28B 3D9A" /* R.—‡6j©„{.Éò‹=š */
3932 $"9B2E 721C 9082 3EC1 362C D516 D306 1EB9" /* ›.r.‚>Á6,Õ.Ó..¹ */
3933 $"A95C EC63 3111 4ED2 054A EFF8 F26A 0E36" /* ©\ìc1.NÒ.Jïøòj.6 */
3934 $"7445 26A0 464F CEDC 924D B183 FAEF 28F7" /* tE& FOÎÜ’M±ƒúï(÷ */
3935 $"AF76 2DBA F15C 4F45 4BFD E003 CDC1 A878" /* ¯v-ºñ\OEKýà.ÍÁ¨x */
3936 $"6FB4 207C 2A45 1ED9 CE49 2495 F6A9 77E8" /* o´ |*E.ÙÎI$•ö©wè */
3937 $"E7FF 7FFF 7FFF 7FFF 70EC F373 E872 28BA" /* çÿ.ÿ.ÿ.ÿpìósèr(º */
3938 $"A0BB 38E4 AC79 94DA 6562 832A 9A7B EEA8" /*  »8ä¬y”Úebƒ*š{î¨ */
3939 $"6B09 FEA7 9249 2005 E7D1 D721 4761 B6DB" /* kÆþ§’I .çÑ×!Ga¶Û */
3940 $"6DB6 DB6D 98C5 C208 FD98 41AA F430 3EAE" /* m¶Ûm˜ÅÂ.ý˜Aªô0>® */
3941 $"7118 7229 50B1 07D8 C5CA 010D 4AB4 DE82" /* q.r)P±.ØÅÊ..J´Þ‚ */
3942 $"53D3 E184 6561 DE5F 7236 BBF5 550D 4A83" /* SÓá„eaÞ_r6»õU.Jƒ */
3943 $"555B 5C0F 9C0E F052 0080 F4AC 3912 DD30" /* U[\.œ.ðR.€ô¬9.Ý0 */
3944 $"47C9 B77E C632 15D7 8EB6 CD51 0454 A805" /* GÉ·~Æ2.׎¶ÍQ.T¨. */
3945 $"2DAD F687 6CB7 B37F 2289 759F F7D5 8839" /* -­ö‡l·³."‰uŸ÷Õˆ9 */
3946 $"B3E6 BCA5 AA89 9D9D 599A 5BDD 54B9 7F7D" /* ³æ¼¥ª‰Yš[ÝT¹.} */
3947 $"2770 11ED 2217 C539 0204 16FF 728A C52A" /* 'p.í".Å9...ÿrŠÅ* */
3948 $"2D24 5FC7 E1D7 C47E 1DE8 C3F0 EA38 E730" /* -$_Çá×Ä~.èÃðê8ç0 */
3949 $"2D9D 0AC5 991A F5DD 38EC 007B A963 8B4D" /* -ÂÅ™.õÝ8ì.{©c‹M */
3950 $"51BA A9FC AE25 908A 1B70 9145 EBA2 38C4" /* Qº©ü®%Š.p‘Eë¢8Ä */
3951 $"168F 70BB 10A5 CAA5 A249 1974 03F3 AB57" /* .p».¥Ê¥¢I.t.ó«W */
3952 $"3611 30C5 1F14 529F 040A A8EC EBDF F2FF" /* 6.0Å..RŸ.¨ìëßòÿ */
3953 $"232B 83FE C2D0 59D9 93C2 2A8A F86A 997F" /* #+ƒþÂÐYÙ“Â*Šøj™. */
3954 $"3207 03A7 C406 E96C C96F 23F1 1490 95DF" /* 2..§Ä.élÉo#ñ.•ß */
3955 $"4024 67DC 3DE6 E1B1 EB60 1026 8786 531C" /* @$gÜ=æá±ë`.&‡†S. */
3956 $"9A51 378D EE86 881F 496C 8854 9459 7799" /* šQ7.IlˆT”Yw™ */
3957 $"11EC 4196 0C22 0F05 3762 D8F4 C348 7299" /* .ìA–."..7bØôÃHr™ */
3958 $"793E 0718 14D3 D09C C192 80E1 9F7C 5CFA" /* y>...ÓÐœÁ’€áŸ|\ú */
3959 $"429C 7960 2F8B 9063 C7E1 1447 7F52 D850" /* Bœy`/‹cÇá.G.RØP */
3960 $"B80A F1D8 BE98 DC3C 9C44 3AB7 3DA7 E08C" /* ¸Âñؾ˜Ü<œD:·=§àŒ */
3961 $"E7B6 07CE 2B69 C0E9 0C21 6133 1EC5 DAB5" /* ç¶.Î+iÀé.!a3.ÅÚµ */
3962 $"B079 413B FBA4 0259 78B8 DA3A E6D1 4AAC" /* °yA;û¤.Yx¸Ú:æÑJ¬ */
3963 $"2459 93C8 AD9A D69C AC40 5CF7 7385 1B18" /* $Y“È­šÖœ¬@\÷s….. */
3964 $"D67D 82BD 5E44 3DF8 5D2F E6D3 CE47 0191" /* Ö}‚½^D=ø]/æÓÎG.‘ */
3965 $"6E57 0F2F E8E8 9FF0 14BC 21F1 7720 6F34" /* nW./èèŸð.¼!ñw o4 */
3966 $"1EEE 5EF6 F8FD 5481 44E3 AB6B B06E 2556" /* .î^öøýTDã«k°n%V */
3967 $"6F07 AD65 FC95 7C32 7487 10A0 3C20 9CA7" /* o.­eü•|2t‡. < œ§ */
3968 $"B0EB F703 2D09 F0A6 D3FD 55F6 354B EDB0" /* °ë÷.-Æð¦ÓýUö5Kí° */
3969 $"179B B267 B9EB 8DA1 ED8E 7D0F 1AFF 4D50" /* .›²g¹ë¡íŽ}..ÿMP */
3970 $"C1C7 A686 586C 6A26 3B0B 4292 60A0 A804" /* ÁǦ†Xlj&;.B’` ¨. */
3971 $"04F6 5FDB 0F76 E2BC D680 20B5 46AE 399D" /* .ö_Û.vâ¼Ö€ µF®9 */
3972 $"CC54 82A4 1DCA 08E7 E2B4 6710 ABD8 FC18" /* ÌT‚¤.Ê.çâ´g.«Øü. */
3973 $"949B 7076 11CD 598E 2A8B 99FC CC28 EC17" /* ”›pv.ÍYŽ*‹™üÌ(ì. */
3974 $"451C DE31 F7F4 C47E 3ABB AF03 FDC6 D875" /* E.Þ1÷ôÄ~:»¯.ýÆØu */
3975 $"BD0C AB3E B78F F942 A53E E5F8 CA09 414D" /* ½.«>·ùB¥>åøÊÆAM */
3976 $"7544 D5B4 8367 3256 6D8C CB66 6DE7 E99C" /* uDÕ´ƒg2VmŒËfmçéœ */
3977 $"88E9 FCDC EB55 F67B 20E7 F44D 7616 6B29" /* ˆéüÜëUö{ çôMv.k) */
3978 $"124A C9AB 95C7 E9A8 209D EDA5 499F 2D2F" /* .JÉ«•Çé¨ í¥IŸ-/ */
3979 $"20E5 DE8C 2EEE 92AF 4BD6 484B 7E18 2D81" /* åÞŒ.î’¯KÖHK~.- */
3980 $"0502 F439 C742 BA21 693B 43C5 60DF 8BA0" /* ..ô9ÇBº!i;CÅ`ß‹  */
3981 $"9EAC 0A98 DFE4 DB4B 0BE1 E526 9B74 5982" /* ž¬Â˜ßäÛK.áå&›tY‚ */
3982 $"1817 EA6B 067A D3E4 8786 883D 26DB D361" /* ..êk.zÓ䇆ˆ=&ÛÓa */
3983 $"C40F 89F4 B31F 2AF3 1369 FDA9 889A 5620" /* Ä.‰ô³.*ó.iý©ˆšV */
3984 $"9AE7 4384 7184 9D7F 6C37 F79B 9422 ADF3" /* šçC„q„.l7÷›”"­ó */
3985 $"2BEA A620 14CF 0267 110E AB20 594B F1DA" /* +ê¦ .Ï.g..« YKñÚ */
3986 $"9D7F DB53 3723 1A4E 0DEC DF68 3A10 078F" /* .ÛS7#.N.ìßh:.. */
3987 $"8CA5 471B 4400 0975 92AA A351 8C66 5DDA" /* Œ¥G.D.Æu’ª£QŒf]Ú */
3988 $"0E4E C7B1 286F 2F7C E0EB 24CC 0A8B CAF8" /* .NDZ(o/|àë$Ì‹Êø */
3989 $"4F0F 75E5 CACF 26F5 0FFE 86A8 1E77 5F03" /* O.uåÊÏ&õ.þ†¨.w_. */
3990 $"A8B5 A544 F04B A521 B3FA 854A 64FA 70CD" /* ¨µ¥DðK¥!³ú…JdúpÍ */
3991 $"526F 97AE 807A 05FC 3F67 2471 61E5 2715" /* Ro—®€z.ü?g$qaå'. */
3992 $"5774 E452 7E4A CDDA 6E48 0DA2 04B3 3A29" /* WtäR~JÍÚnH.¢.³:) */
3993 $"DE10 8F75 3A3A 559D A881 B948 74F3 AB92" /* Þ.u::U¨¹Htó«’ */
3994 $"B154 0F88 A11B A00B 25ED 9A59 B894 618E" /* ±T.ˆ¡. .%íšY¸”aŽ */
3995 $"AD45 3D59 9C08 49EA 076C CD63 8F49 B714" /* ­E=Yœ.Iê.lÍcI·. */
3996 $"32B3 8743 2506 F55A C011 CBEF C94A 8606" /* 2³‡C%.õZÀ.ËïÉJ†. */
3997 $"EDE4 BE7D 2DC9 8830 6C23 91E0 0209 440C" /* íä¾}-Ɉ0l#‘à.ÆD. */
3998 $"9409 1457 6CA0 2201 8FF4 7573 54F8 CCEC" /* ”Æ.Wl ".ôusTøÌì */
3999 $"D201 4A3A 66A6 B191 4E14 4CB1 08B4 2100" /* Ò.J:f¦±‘N.L±.´!. */
4000 $"BCF2 3A0D 696F 4582 F8B0 3A60 2D09 E9A7" /* ¼ò:.ioE‚ø°:`-Æé§ */
4001 $"8E83 CF44 A16A 6516 31C1 B51E 2DFE BDAC" /* ŽƒÏD¡je.1Áµ.-þ½¬ */
4002 $"356B F402 856C BEA0 109C A125 A759 E580" /* 5kô.…l¾ .œ¡%§Yå€ */
4003 $"3501 F500 F252 9533 F180 6E7D 30A8 FD62" /* 5.õ.òR•3ñ€n}0¨ýb */
4004 $"7FD6 B4EB 9120 8504 493A DD87 D79A 0CB1" /* .Ö´ë‘ ….I:݇ך.± */
4005 $"B674 7010 830D 8A38 5B44 B11D 3632 3FA5" /* ¶tp.ƒ.Š8[D±.62?¥ */
4006 $"CE31 CE9A 1670 AF20 16F6 BDA6 4980 002E" /* Î1Κ.p¯ .ö½¦I€.. */
4007 $"3E9E 8AB0 8B1F 63C5 28C3 7914 2833 137F" /* >žŠ°‹.cÅ(Ãy.(3.. */
4008 $"0915 DD39 7D38 49A3 6054 B5DC 2509 EE11" /* Æ.Ý9}8I£`TµÜ%Æî. */
4009 $"D68A 5C2A C75B 5B9F 7A9A FF3A D06F 3331" /* ÖŠ\*Ç[[Ÿzšÿ:Ðo31 */
4010 $"29E6 A9F4 8AD5 E0D9 7FB9 84B1 F403 8910" /* )æ©ôŠÕàÙ.¹„±ô.‰. */
4011 $"1168 1270 19E2 E385 0353 0FFF 697F 96BE" /* .h.p.âã….S.ÿi.–¾ */
4012 $"EF55 21CA 25A1 CE5E 0CD7 03A9 094F 51FE" /* ïU!Ê%¡Î^.×.©ÆOQþ */
4013 $"5314 E59F 90EB 907A E37A DD9D 182A E41C" /* S.åŸëzãzÝ.*ä. */
4014 $"CFFB 7262 0D9E B904 8D95 2DE3 E02B F5CB" /* Ïûrb.ž¹.•-ãà+õË */
4015 $"BF61 6012 924E 50D3 2D8D 6C25 FC60 8D19" /* ¿a`.’NPÓ-l%ü`. */
4016 $"9855 8BF2 5400 0000 04E3 7684 B40E 9EE7" /* ˜U‹òT....ãv„´.žç */
4017 $"21F8 CB76 250B 7CE0 2605 7C84 7E9F F226" /* !øËv%.|à&.|„~Ÿò& */
4018 $"6B94 0DB5 02AA 61E7 A9FF 5D9F A9F2 B546" /* k”.µ.ªaç©ÿ]Ÿ©òµF */
4019 $"2417 2E4D B238 ADDF 9233 5911 1D61 D35A" /* $..M²8­ß’3Y..aÓZ */
4020 $"8788 DF34 284A 9664 B91E 7A11 4568 B395" /* ‡ˆß4(J–d¹.z.Eh³• */
4021 $"7C74 C891 2A46 C056 EE92 0459 D81C A41F" /* |tÈ‘*FÀVî’.YØ.¤. */
4022 $"CA5E 4752 3ADE 89AB 995B 2BF2 D070 41B1" /* Ê^GR:Þ‰«™[+òÐpA± */
4023 $"EBFE 65BF FF61 55F5 5460 A4E0 33CF 7F1E" /* ëþe¿ÿaUõT`¤à3Ï.. */
4024 $"691A 0DA4 9372 4DCD 4A7C FF30 7DA5 4AD0" /* i..¤“rMÍJ|ÿ0}¥JÐ */
4025 $"1236 3C90 00C2 4517 FF78 771E DA05 952D" /* .6<.ÂE.ÿxw.Ú.•- */
4026 $"1085 D433 FD50 1E6F D583 2585 CBD6 5CFC" /* .…Ô3ýP.oÕƒ%…ËÖ\ü */
4027 $"9EF2 539B BE7A CCA1 ABF6 5AED 484B FF78" /* žòS›¾zÌ¡«öZíHKÿx */
4028 $"D6BD 435E E56E 5510 3047 49DE C511 72CF" /* Ö½C^ånU.0GIÞÅ.rÏ */
4029 $"72A0 B2CE 5E4D E2DA 0AFA FEDE BDFD 3167" /* r ²Î^MâÚÂúþÞ½ý1g */
4030 $"02FE 3FBE A1B9 7A5F 205B 7D60 1BA3 C975" /* .þ?¾¡¹z_ [}`.£Éu */
4031 $"5949 A641 5A3E 5AF2 F237 53BE FCAC 71F1" /* YI¦AZ>Zòò7S¾ü¬qñ */
4032 $"E3E3 6AEB 35B9 41BD C4B6 3400 DBA0 4B7F" /* ããjë5¹A½Ä¶4.Û K. */
4033 $"FF79 17FD 23F9 918D E532 F6BD F949 B633" /* ÿy.ý#ù‘å2ö½ùI¶3 */
4034 $"6A36 7600 17D8 C912 DB72 6F48 869C 0D66" /* j6v..ØÉ.ÛroH†œ.f */
4035 $"1410 074A 8F5B 629C 5B8B F293 6DB6 DB6D" /* ...J[bœ[‹ò“m¶Ûm */
4036 $"B6DB 6740 B8F8 BF85 2938 ECDA 6390 6537" /* ¶Ûg@¸ø¿…)8ìÚce7 */
4037 $"5986 A2A6 B52C A20D F057 C41F 660A C203" /* Y†¢¦µ,¢.ðWÄ.fÂÂ. */
4038 $"E5C1 68B0 9D56 DAD8 F20C 665C 5D04 4BA2" /* åÁh°VÚØò.f\].K¢ */
4039 $"46FF 7DB5 4880 6121 2EA3 5D2A 82F4 B18A" /* Fÿ}µH€a!.£]*‚ô±Š */
4040 $"50FC 2D12 DEFE 1F4D 01BF 3315 10D3 5D94" /* Pü-.Þþ.M.¿3..Ó]” */
4041 $"11B1 0221 28B8 56D9 4CED 012D D9C9 4005" /* .±.!(¸VÙLí.-ÙÉ@. */
4042 $"316F E887 29A8 3E83 9E25 FF1F A4C1 5D25" /* 1oè‡)¨>ƒž%ÿ.¤Á]% */
4043 $"8893 36E0 73BE DE25 456A 4678 B7C5 AD7A" /* ˆ“6às¾Þ%EjFx·Å­z */
4044 $"90C9 3950 942F 1459 C737 31EF 991F 241B" /* É9P”/.YÇ71ï™.$. */
4045 $"C294 7CFB 9461 B43A 8D37 8A6D BBC8 D7F6" /* ”|û”a´:7Šm»È×ö */
4046 $"A128 281D DF2B EAC5 A154 E6D9 FF53 984D" /* ¡((.ß+êÅ¡TæÙÿS˜M */
4047 $"550E 9C70 3F64 0E0E 0940 0AFC 5CC9 CF43" /* U.œp?d..Æ@Âü\ÉÏC */
4048 $"7184 3D0F 9FDE 08DF EC31 B86E 0D38 AF71" /* q„=.ŸÞ.ßì1¸n.8¯q */
4049 $"29F1 A21D 7847 7150 6DCA 9211 C778 F1A4" /* )ñ¢.xGqPmÊ’.Çxñ¤ */
4050 $"26AA B90D 1A39 DB92 4924 9249 2493 36D2" /* &ª¹..9Û’I$’I$“6Ò */
4051 $"4924 9249 2492 49FE 069C E7B9 CB0D 4E87" /* I$’I$’Iþ.œç¹Ë.N‡ */
4052 $"7D9E 9D29 FC64 8A6F 6185 2BD9 806F 760B" /* }ž)üdŠoa…+Ù€ov. */
4053 $"464D 4732 BD90 0E7D CABF 2B6F 2A78 8608" /* FMG2½.}Ê¿+o*x†. */
4054 $"DEF5 406F D401 3FD4 AE82 058D D6C8 B980" /* Þõ@oÔ.?Ô®‚.Öȹ€ */
4055 $"FECA D9B9 E7B6 3982 9FD3 81EA 544B 30BD" /* þÊÙ¹ç¶9‚ŸÓêTK0½ */
4056 $"7E56 FD78 66FD 5A41 D0BD 7714 5FAF 2A1E" /* ~VýxfýZAнw._¯*. */
4057 $"8FDA B705 EAAE F6F2 D69C 9812 7194 A56E" /* Ú·.ê®öòÖœ˜.q”¥n */
4058 $"DB55 BF75 C4E4 BDCD 9FC2 ACAD C428 829F" /* ÛU¿uÄä½ÍŸÂ¬­Ä(‚Ÿ */
4059 $"2409 3BB2 A894 8020 A8E7 FC16 F4FF 4E84" /* $Æ;²¨”€ ¨çü.ôÿN„ */
4060 $"C06E 889C 1C74 96AD 5420 F825 1A2B 015C" /* Ànˆœ.t–­T ø%.+.\ */
4061 $"6BC2 31EE 64AB 7A44 15E5 3458 8040 AEEF" /* kÂ1îd«zD.å4X€@®ï */
4062 $"F6BD 7D58 6478 8344 018F D3C6 2E33 69A4" /* ö½}XdxƒD.ÓÆ.3i¤ */
4063 $"E5E8 721A 5B2F 777B C0D8 0A05 2CE7 EEC8" /* åèr.[/w{ÀØÂ.,çîÈ */
4064 $"69EF 417B A960 D320 842E 84DE D442 AB2F" /* iïA{©`Ó „.„ÞÔB«/ */
4065 $"3B31 84FE DCFC A608 2E09 AA42 60F6 DB2E" /* ;1„þÜü¦..ƪB`öÛ. */
4066 $"DA5B C95D D10A 77BE AD48 B5FF 0557 A5AC" /* Ú[É]ÑÂw¾­Hµÿ.W¥¬ */
4067 $"327B F763 FDA1 32BF 7308 3EFC 0C2B 2D22" /* 2{÷cý¡2¿s.>ü.+-" */
4068 $"584A F9CA BFB4 78FF 6E67 42CC B491 492B" /* XJùÊ¿´xÿngBÌ´‘I+ */
4069 $"17C3 C746 9966 5780 BA6C 2798 472E 1CFF" /* .ÃÇF™fW€ºl'˜G..ÿ */
4070 $"6A32 69A0 86E0 44C6 1679 08F9 9928 48D9" /* j2i †àDÆ.y.ù™(HÙ */
4071 $"3DA0 CBA0 1E5E 2618 7162 51C9 DEF0 56A0" /* = Ë .^&.qbQÉÞðV  */
4072 $"1924 F126 CAAD F248 A1A4 2816 13A7 FE76" /* .$ñ&Ê­òH¡¤(..§þv */
4073 $"594E 647C 36C4 C014 CDC7 5C89 DBAB 9854" /* YNd|6ÄÀ.ÍÇ\‰Û«˜T */
4074 $"9094 FC96 5FED 7476 AA3C DF0B B47B C123" /* ”ü–_ítvª<ß.´{Á# */
4075 $"BE6D CD5A BA07 CC19 94FC DC37 B85C 0FD2" /* ¾mÍZº.Ì.”üÜ7¸\.Ò */
4076 $"9FED 62E6 F910 2F49 529E CE10 9738 D296" /* Ÿíbæù./IRžÎ.—8Ò– */
4077 $"A81C 1A0D 0FBF 7CAE DB93 40C0 3BC9 5A0C" /* ¨....¿|®Û“@À;ÉZ. */
4078 $"B23D FBD4 3863 C520 03A0 D966 5327 A0A2" /* ²=ûÔ8cÅ . ÙfS' ¢ */
4079 $"DD06 B7A1 942B 0A75 CB23 8664 4159 8647" /* Ý.·¡”+ÂuË#†dAY†G */
4080 $"2725 DAF6 693A 58D7 7A7D B34A 393D FE7A" /* '%Úöi:X×z}³J9=þz */
4081 $"C105 C374 193C 123C 130E 062C 8AB2 32FD" /* Á.Ãt.<.<...,Š²2ý */
4082 $"80E0 72E3 6AEA 2078 5D7C D3E5 4E20 D927" /* €àrãjê x]|ÓåN Ù' */
4083 $"157E 9DC5 1A29 2F0F C326 AFE3 3ACF C361" /* .~Å.)/.Ã&¯ã:ÏÃa */
4084 $"8C45 D79C EB27 7441 E4C7 8BFD 5832 DB93" /* ŒEלë'tAäÇ‹ýX2Û“ */
4085 $"78F5 B9DB BA4E 329E A262 C467 88DC C540" /* xõ¹ÛºN2ž¢bÄgˆÜÅ@ */
4086 $"78E0 4E55 34F3 806E 2DEA B371 E9B5 D8DF" /* xàNU4ó€n-ê³qéµØß */
4087 $"5EDA B5B9 1C48 5A11 ECAB E4F8 67B7 C76E" /* ^Úµ¹.HZ.ì«äøg·Çn */
4088 $"460F 8E6A C7BA B5F8 75F2 9105 1480 FD1A" /* F.ŽjǺµøuò‘..€ý. */
4089 $"80EB DB48 6115 AA6E 9AEA A07C 57B0 1A7F" /* €ëÛHa.ªnšê |W°.. */
4090 $"0CBF D5DE 47A7 89BE 4CAE 19FE 7B79 5839" /* .¿ÕÞG§‰¾L®.þ{yX9 */
4091 $"232D 495E 476C E267 D9D2 5257 F0E6 3EB5" /* #-I^GlâgÙÒRWðæ>µ */
4092 $"F140 AAAF 1E36 BA04 086A EEC5 3232 7958" /* ñ@ª¯.6º..jîÅ22yX */
4093 $"72E3 FCC3 9488 B44C 0C15 EF6B 811B CF97" /* rãüÔˆ´L..ïk.Ï— */
4094 $"0532 2B88 663D 8675 6050 AB94 A435 C0FC" /* .2+ˆf=†u`P«”¤5Àü */
4095 $"9E08 9873 92AF 6859 F7F5 64B0 0BA5 FA68" /* ž.˜s’¯hY÷õd°.¥úh */
4096 $"3557 0898 9E0D 5795 BF67 2866 5FB6 63C6" /* 5W.˜ž.W•¿g(f_¶cÆ */
4097 $"4F82 42CE A682 DC8D CB18 D4FE 6252 95D1" /* O‚BΦ‚ÜË.ÔþbR•Ñ */
4098 $"C85C 6B2C 0FC0 7C9D 5A80 F93B 8900 F93A" /* È\k,.À|Z€ù;‰.ù: */
4099 $"8EE6 7513 4AFA 1609 3CEE D5EB B420 A1CE" /* Žæu.Jú.Æ<îÕë´ ¡Î */
4100 $"318D 6F67 720A 7F84 4127 C0F2 9193 35CE" /* 1ogrÂ.„A'Àò‘“5Î */
4101 $"6D97 9682 5E5D B9FC 5A97 3B71 AB1F 64AA" /* m—–‚^]¹üZ—;q«.dª */
4102 $"3383 1F0E C0E9 26BE E6EB 24CD 499F F2BA" /* 3ƒ..Àé&¾æë$ÍIŸòº */
4103 $"997D E886 6FF8 C6B5 0607 1259 7715 7539" /* ™}è†oøƵ...Yw.u9 */
4104 $"4B57 F7A9 56A7 A04B 031F 0786 6C02 E7BC" /* KW÷©V§ K...†l.ç¼ */
4105 $"8256 7F27 A39A B66D 6B95 6C11 CDE4 C580" /* ‚V.'£š¶mk•l.ÍäÅ€ */
4106 $"54DE 7E26 129C EB67 ABC8 455E 6CC3 453E" /* TÞ~&.œëg«ÈE^lÃE> */
4107 $"F9A8 3ED5 9B43 4EB8 384E 0F7B 28E0 16FF" /* ù¨>Õ›CN¸8N.{(à.ÿ */
4108 $"1342 18B1 31B6 EAEF 4C40 36F7 0CFF 6AFF" /* .B.±1¶êïL@6÷.ÿjÿ */
4109 $"8059 5D1C 275B 4F7D B392 4DB0 5E5D 4304" /* €Y].'[O}³’M°^]C. */
4110 $"4848 2A3A C93F BAD6 638D 315A 8771 1150" /* HH*:É?ºÖc1Z‡q.P */
4111 $"1D41 B6A7 C9B8 782E 19D8 F8E7 07EB ED20" /* .A¶§É¸x..Øøç.ëí */
4112 $"7D4E AFFF 5FD2 4FA0 2B48 B549 6A50 AD81" /* }N¯ÿ_ÒO +HµIjP­ */
4113 $"F11D 357F 7CB2 4B8B F28B 6C97 2C23 58A3" /* ñ.5.|²K‹ò‹l—,#X£ */
4114 $"92E8 2BFB 77F2 1ECE 7A2A C437 47E3 A833" /* ’è+ûwò.Îz*Ä7Gã¨3 */
4115 $"D60C C3CA 168A 85B8 620C 109C 4134 35BF" /* Ö.ÃÊ.Š…¸b..œA45¿ */
4116 $"ECCB 3629 944F AD29 444A C4B6 F019 F19B" /* ìË6)”O­)DJĶð.ñ› */
4117 $"4189 B1D3 8F28 65B9 85D8 C715 2E1A 267D" /* A‰±Ó(e¹…ØÇ...&} */
4118 $"A7DB 4C90 9829 BC86 E14C 9F44 757D 5436" /* §ÛL˜)¼†áLŸDu}T6 */
4119 $"9C38 979D 3654 9A63 E572 7864 E513 A083" /* œ8—6Tšcårxdå. ƒ */
4120 $"C943 97C5 A88B 23A2 4ECC E4F1 AEED F3EC" /* ÉC—Ũ‹#¢NÌäñ®íóì */
4121 $"C57D F254 B087 7E1F 81B3 59E6 E2A0 E5CB" /* Å}òT°‡~.³Yæâ åË */
4122 $"B710 EF71 0598 01BF 1400 3814 0759 EDA8" /* ·.ïq.˜.¿..8..Yí¨ */
4123 $"386C 3DF0 F1C5 CA93 612F C58D 71BA 6ED6" /* 8l=ðñÅÊ“a/ÅqºnÖ */
4124 $"FE35 90B4 9C10 A938 33B6 6987 E407 AE7B" /* þ5´œ.©83¶i‡ä.®{ */
4125 $"5B1A 8E0E BE53 1C94 D747 9303 2ED9 13FA" /* [.Ž.¾S.”×G“..Ù.ú */
4126 $"226C F38A 7134 3CF6 1923 B85F A254 0048" /* "lóŠq4<ö.#¸_¢T.H */
4127 $"A765 B678 FC9C 1E2C E183 FC80 CA83 9572" /* §e¶xüœ.,áƒü€Êƒ•r */
4128 $"E573 B224 9894 7316 C931 4A49 C28F 6E33" /* ås²$˜”s.É1JIÂn3 */
4129 $"B579 EE14 84BC 61CC 351B 41FB 7095 5F8C" /* µyî.„¼aÌ5.Aûp•_Œ */
4130 $"1B15 6DAF FF7F F8EA 5A11 5453 6ECA 1C02" /* ..m¯ÿ.øêZ.TSnÊ.. */
4131 $"C8A4 F40F AD00 7BC9 EDFD AC3A 28E4 546F" /* Ȥô.­.{Éíý¬:(äTo */
4132 $"1E36 BE45 897E F5D5 BE25 E84B 57C6 9080" /* .6¾E‰~õÕ¾%èKWÆ€ */
4133 $"B6C4 79B8 153B 110F D90B 215D 401C 0453" /* ¶Äy¸.;..Ù.!]@..S */
4134 $"8243 BF4A CDAE 9270 0658 462F E0C7 82A8" /* ‚C¿JÍ®’p.XF/àÇ‚¨ */
4135 $"E155 C547 D144 EBAD 74EC EAFF 7799 6D50" /* áUÅGÑDë­tìêÿw™mP */
4136 $"D0F9 6BA4 D8B3 0FBB B75B BC48 D5BA 8EAB" /* Ðùk¤Ø³.»·[¼HÕºŽ« */
4137 $"FF7F 3A2A 820F D817 FB8B 7590 ED4A 3D7B" /* ÿ.:*‚.Ø.û‹uíJ={ */
4138 $"DAF8 C05F BDCF 1B7C 8862 53A8 95D6 C0DF" /* ÚøÀ_½Ï.|ˆbS¨•ÖÀß */
4139 $"4069 36DA 0739 783C C432 1E0C 7DA6 2D70" /* @i6Ú.9x<Ä2..}¦-p */
4140 $"B33A C5AD 810A FBBD E9BB B776 6463 9FDC" /* ³:Å­Âû½é»·vdcŸÜ */
4141 $"B401 211D 81BA A9FA 8761 ED36 A1EF 439D" /* ´.!.º©ú‡aí6¡ïC */
4142 $"9880 BE88 E045 3068 F59F 7AD7 EFFF 7FFC" /* ˜€¾ˆàE0hõŸz×ïÿ.ü */
4143 $"5562 1F00 0818 22D6 5002 F762 7A20 0DC0" /* Ub...."ÖP.÷bz .À */
4144 $"3ADD FF5D 1851 D391 F011 0000 0000 0000" /* :Ýÿ].QÓ‘ð....... */
4145 $"0000 0000 0138 5715 ED61 F2C5 2C28 30C0" /* .....8W.íaòÅ,(0À */
4146 $"F669 9389 6153 3A95 E010 CCA0 2FEF B36F" /* öi“‰aS:•à.Ì /ï³o */
4147 $"9576 F8C0 F17B 27F6 F6FA 412C 70C7 CF14" /* •vøÀñ{'ööúA,pÇÏ. */
4148 $"7625 6871 7FE2 16C9 B6E9 5BF1 1A16 E2F0" /* v%hq.â.ɶé[ñ..âð */
4149 $"945D E51E CCF9 0970 E586 517C 475F 8856" /* ”]å.ÌùÆpå†Q|G_ˆV */
4150 $"CA0C 1DD9 E001 D7BC 1876 745C 8077 672D" /* Ê..Ùà.×¼.vt\€wg- */
4151 $"CECA FF0B 01D1 76FA 32F5 C047 26FB 451F" /* ÎÊÿ..Ñvú2õÀG&ûE. */
4152 $"5261 79B6 5990 79C9 4DF7 5B69 D548 E894" /* Ray¶YyÉM÷[iÕHè” */
4153 $"F249 0C84 D3F0 9555 7B99 EA27 FA38 184E" /* òI.„Óð•U{™ê'ú8.N */
4154 $"F863 AFA1 CE80 AEBC CB89 DD99 B8E2 0BEC" /* øc¯¡Î€®¼Ë‰Ý™¸â.ì */
4155 $"2F74 E534 3FF4 B50A 4B04 02B1 C178 B189" /* /tå4?ôµÂK..±Áx±‰ */
4156 $"D30F 77DC 8A15 8C9E AF87 1DCD D545 AC6B" /* Ó.wÜŠ.Œž¯‡.ÍÕE¬k */
4157 $"CAFB 832B E240 6752 8EF2 9BDF 76E8 621D" /* Êûƒ+â@gRŽò›ßvèb. */
4158 $"892E 384C 7BF0 4DE8 F910 7689 C3F0 E7E9" /* ‰.8L{ðMèù.v‰Ãðçé */
4159 $"E401 C781 F341 A84F 6922 E97B FC22 E259" /* ä.ÇóA¨Oi"é{ü"âY */
4160 $"6B26 9B03 14A7 DFA1 B7BD CBED 9539 5DE3" /* k&›..§ß¡·½Ëí•9]ã */
4161 $"2041 2F5F A37A 2F23 00FC 6424 D7F8 902E" /* A/_£z/#.üd$×ø. */
4162 $"7261 227B B4EC F4D1 9C18 22C3 8CA5 EFF8" /* ra"{´ìôÑœ."ÃŒ¥ïø */
4163 $"5701 6734 9110 8B4E D9E0 EE8F 7FEA 202F" /* W.g4‘.‹NÙàî.ê / */
4164 $"CFF7 5CC7 6107 0B22 B0BE A87B 32EF 0FA8" /* Ï÷\Ça.."°¾¨{2ï.¨ */
4165 $"3D2D 794E 556E 6089 ACBA D46C 17EC A9DC" /* =-yNUn`‰¬ºÔl.ì©Ü */
4166 $"0F4E D57D B8C8 EED1 F9D4 F96A 7BEE 3794" /* .NÕ}¸ÈîÑùÔùj{î7” */
4167 $"49DE 3AA7 EE2E 0B25 A47C 966A D90D C792" /* IÞ:§î..%¤|–jÙ.Ç’ */
4168 $"6304 7C05 C6EB A26D 83B8 3E0C AAF5 AFFE" /* c.|.Æë¢mƒ¸>.ªõ¯þ */
4169 $"FDC3 F7C4 C0A3 C3ED E8D2 0FAB AC58 1F56" /* ýÃ÷ÄÀ£ÃíèÒ.«¬X.V */
4170 $"FF40 F44B 4289 C6D7 CC17 A019 AD4A C889" /* ÿ@ôKB‰Æ×Ì. .­Jȉ */
4171 $"67AD 0673 32A0 B6BA 087E 7279 19C2 025F" /* g­.s2 ¶º.~ry.Â._ */
4172 $"DB0E 0E97 02D9 2268 5BCA CDE6 B94E 8D9B" /* Û..—.Ù"h[ÊÍæ¹N› */
4173 $"03EB D786 1698 2D8A 2ECD 432E D615 931F" /* .ë׆.˜-Š.ÍC.Ö.“. */
4174 $"452B 5D40 0950 5BBE A70F BD95 9F0E 8B95" /* E+]@ÆP[¾§.½•Ÿ.‹• */
4175 $"86B7 47DE 0757 BFE4 9775 3082 9D22 863A" /* †·GÞ.W¿ä—u0‚"†: */
4176 $"E404 B84C 5E88 8424 31DD 689A D234 88E2" /* ä.¸L^ˆ„$1ÝhšÒ4ˆâ */
4177 $"971F 9E59 429C 6C7E 3670 8F7C 8F86 A80D" /* —.žYBœl~6p|†¨. */
4178 $"848E E78B 5331 058E E444 FEC2 269A 7E23" /* „Žç‹S1.ŽäDþÂ&š~# */
4179 $"608D 0502 E075 F7A4 DACF 515F AA08 31C1" /* `..àu÷¤ÚÏQ_ª.1Á */
4180 $"1275 02C0 F37E F465 ADE9 1918 F1F0 0E4F" /* .u.Àó~ôe­é..ñð.O */
4181 $"E5A4 41A5 F655 22D9 946A 7FEC 0720 3D3A" /* å¤A¥öU"Ù”j.ì. =: */
4182 $"4961 05B2 F02D 51D2 1212 084B B3EA 5DC9" /* Ia.²ð-QÒ...K³ê]É */
4183 $"F986 5763 A2AC E2AC 1144 5DC3 E6A5 D092" /* ù†Wc¢¬â¬.D]Ãæ¥Ð’ */
4184 $"3654 3737 A598 21C2 34FF 097C B8B8 5934" /* 6T77¥˜!Â4ÿÆ|¸¸Y4 */
4185 $"C947 05C9 B4BA F52B 99FF 3AFE 6B15 2CAE" /* ÉG.É´ºõ+™ÿ:þk.,® */
4186 $"06CF D962 CCDE D937 D4AE B3D9 7E92 E2AF" /* .ÏÙbÌÞÙ7Ô®³Ù~’⯠*/
4187 $"8F4E 31CE 06E7 0AD8 71DB 4456 7101 E221" /* N1Î.çÂØqÛDVq.â! */
4188 $"74AC 1159 9EDF 9841 CFA3 E04F DECF 6FD3" /* t¬.Yžß˜AÏ£àOÞÏoÓ */
4189 $"90CC C22F 63B0 45CC C98B 3125 33C0 CFBA" /* ÌÂ/c°EÌÉ‹1%3ÀϺ */
4190 $"4CE7 3FAD F2E4 85E7 0C74 35A5 97E9 8672" /* Lç?­òä…ç.t5¥—é†r */
4191 $"9180 E059 EF0F C416 E25F 0E83 095A 36AA" /* ‘€àYï.Ä.â_.ƒÆZ6ª */
4192 $"8E74 F1F7 11A8 49DD C47E 5098 D576 DC41" /* Žtñ÷.¨IÝÄ~P˜ÕvÜA */
4193 $"D6FC 7C37 E307 A2DB 997E A046 C114 CF04" /* Öü|7ã.¢Û™~ FÁ.Ï. */
4194 $"FD8E 32D1 2AC6 3A81 C8B6 C680 6E60 7826" /* ýŽ2Ñ*Æ:ȶƀn`x& */
4195 $"9A40 9C80 BA1B 4DE8 854B 09D9 33B3 95BE" /* š@œ€º.Mè…KÆÙ3³•¾ */
4196 $"7CE5 CCA3 C463 5D1C 1F2B A160 E208 AA0A" /* |åÌ£Äc]..+¡`â.ªÂ */
4197 $"D00F 1933 5FB5 2705 4E9C 3733 0FD0 2AA0" /* Ð..3_µ'.Nœ73.Ð*  */
4198 $"D116 F240 05EA 53BB 5A5A 0A4B 3D9E FCB7" /* Ñ.ò@.êS»ZZÂK=žü· */
4199 $"FE35 1D0B 1E56 C4AA 9B6C 8CE6 10CA DAA5" /* þ5...VĪ›lŒæ.ÊÚ¥ */
4200 $"6DF1 6F74 C332 BD93 556E 89F5 A94A 232D" /* mñotÃ2½“Un‰õ©J#- */
4201 $"E9EF C950 666C 7D3E D1BA C98F 4489 3C5D" /* éïÉPfl}>ѺÉD‰<] */
4202 $"F7FC 88D4 C90E EE9D 7691 C976 2CFE 6BA0" /* ÷üˆÔÉ.îv‘Év,þk  */
4203 $"B53E 5C59 749E FEBC 4AB4 490C A3B6 5187" /* µ>\Ytžþ¼J´I.£¶Q‡ */
4204 $"4A10 1076 6348 AEC1 054B 0A98 9196 29C3" /* J..vcH®Á.K˜‘–)à */
4205 $"F995 50E4 E003 F099 9495 7ECC 1C78 C536" /* ù•Päà.ð™”•~Ì.xÅ6 */
4206 $"AA8D 7305 BE7F FF72 99F7 25ED 4C38 0896" /* ªs.¾.ÿr™÷%íL8.– */
4207 $"A1BE F2D4 016E B744 CBB7 9CEE 1C88 5E3D" /* ¡¾òÔ.n·DË·œî.ˆ^= */
4208 $"1B9E E3CB 29D2 AAA7 C3F6 41F4 B6C0 5861" /* .žãË)Òª§ÃöAô¶ÀXa */
4209 $"93D3 4773 858E 3470 E670 4F94 E206 FBA3" /* “ÓGs…Ž4pæpO”â.û£ */
4210 $"7050 2A3D 6DC0 004E 32D7 6043 4E5E C44F" /* pP*=mÀ.N2×`CN^ÄO */
4211 $"284A 3214 97B7 19DE 41C4 6204 56CB 1695" /* (J2.—·.ÞAÄb.VË.• */
4212 $"BAD8 C308 0FFE BEB7 FE14 C6AC CEE8 5022" /* ºØÃ..þ¾·þ.ƬÎèP" */
4213 $"C27A 2CCA 4714 4C52 3975 615D A1C8 62BF" /* Âz,ÊG.LR9ua]¡Èb¿ */
4214 $"C477 FF7E 2637 3B89 8C43 6E09 285B 2D1A" /* Äwÿ~&7;‰ŒCnÆ([-. */
4215 $"8E9E 4110 CE7B E30A E21C A140 02C8 D0AD" /* ŽžA.Î{ãÂâ.¡@.ÈЭ */
4216 $"630B 5488 7CE7 B884 393A 6FDD 5A68 7FB9" /* c.Tˆ|縄9:oÝZh.¹ */
4217 $"60EC C73B 143E 3F61 3E31 1A3E 8438 7944" /* `ìÇ;.>?a>1.>„8yD */
4218 $"B652 14AE 63CA 803C 9B67 C6FE 2F5D 4CD0" /* ¶R.®cÊ€<›gÆþ/]LÐ */
4219 $"3A63 1328 8809 A4AB B4A1 8664 FE90 F03E" /* :c.(ˆÆ¤«´¡†dþð> */
4220 $"18E2 7982 7DDC A444 1306 4546 61B2 A710" /* .ây‚}ܤD..EFa²§. */
4221 $"CCED 529C 92CB D547 22F5 0DB0 B10F 8450" /* ÌíRœ’ËÕG"õ.°±.„P */
4222 $"E5AC 253A 6937 BFBD D0C6 8AED 14C7 787E" /* å¬%:i7¿½ÐÆŠí.Çx~ */
4223 $"21E7 860D 8567 633D A9E6 0466 93A5 6789" /* !ç†.…gc=©æ.f“¥g‰ */
4224 $"D643 2EEE 7542 7B02 086A 83C4 AD3C 785C" /* ÖC.îuB{..jƒÄ­<x\ */
4225 $"E3B4 BFC0 C27C 3762 1D98 0A0C B43D 8107" /* ã´¿ÀÂ|7b.˜Â.´=. */
4226 $"3003 FF74 C626 1BC1 44AA 08A0 7A68 0ADE" /* 0.ÿtÆ&.ÁDª. zhÂÞ */
4227 $"E9BD 94DB 3644 AA13 CFCA A9CB 0E8F 9061" /* é½”Û6Dª.ÏÊ©Ë.a */
4228 $"73BC 6A23 359D C129 F184 4EBA BE0F A772" /* s¼j#5Á)ñ„Nº¾.§r */
4229 $"9AB6 7DDC C179 81DB 9FDC EDA3 E6C5 21E2" /* š¶}ÜÁyÛŸÜí£æÅ!â */
4230 $"7049 87BC 00E3 34F5 8066 3FFE 7CA7 A588" /* pI‡¼.ã4õ€f?þ|§¥ˆ */
4231 $"6277 30DE 8FC1 950A A652 5B12 B0A4 B8BE" /* bw0ÞÁ•Â¦R[.°¤¸¾ */
4232 $"2297 4261 CB90 AEBB F3CB 2BEE 2FA8 149E" /* "—BaË®»óË+î/¨.ž */
4233 $"11E6 487B 3EFA 45B9 E4A8 17DF DF8E D5FF" /* .æH{>úE¹ä¨.ßߎÕÿ */
4234 $"750C 2E52 4F3F 5960 B3B7 3DEB CFE3 4EC3" /* u..RO?Y`³·=ëÏãNà */
4235 $"676F D76A F8C3 67EB 383B 042A C000 1CF5" /* go×jøÃgë8;.*À..õ */
4236 $"FB57 51DF 4E0F 9709 4A58 F371 8A53 79CD" /* ûWQßN.—ÆJXóqŠSyÍ */
4237 $"B935 29C8 5953 BBFB B216 24F0 FF5C F1BE" /* ¹5)ÈYS»û².$ðÿ\ñ¾ */
4238 $"1649 C9BE 754A CC45 62C3 44A2 3E12 A872" /* .IɾuJÌEbÃD¢>.¨r */
4239 $"736B 05DD F77C C7C6 F33D 8224 147E D163" /* sk.Ý÷|ÇÆó=‚$.~Ñc */
4240 $"02B4 0BC6 297A FA75 03A7 BFDD 709A A878" /* .´.Æ)zúu.§¿Ýpš¨x */
4241 $"734A 7236 791A BFF6 9F21 CC67 268D 160D" /* sJr6y.¿öŸ!Ìg&.. */
4242 $"A6D0 7988 72CF 6475 146C 81EB 8249 518A" /* ¦ÐyˆrÏdu.lë‚IQŠ */
4243 $"49B7 0389 FDB6 9CEB DCA2 41ED 085D 4E85" /* I·.‰ý¶œëÜ¢Aí.]N… */
4244 $"03E4 3F4E D8CF 25E1 658D 38F6 8F88 A499" /* .ä?NØÏ%áe8öˆ¤™ */
4245 $"B64A DD79 FDF2 39FB 5CEC F29B 714A 733B" /* ¶JÝyýò9û\ìò›qJs; */
4246 $"76E4 94E5 F567 3A71 28F0 13A6 7A74 CD91" /* vä”åõg:q(ð.¦ztÍ‘ */
4247 $"5804 065E D3C7 09B7 ED19 51E5 0913 4436" /* X..^ÓÇÆ·í.QåÆ.D6 */
4248 $"9791 BB58 10F3 7183 5DB6 4874 65D2 AAD2" /* —‘»X.óqƒ]¶HteÒªÒ */
4249 $"DBA2 C761 A70F 3EEE 9256 2EF0 945D E52D" /* Û¢Ça§.>î’V.ð”]å- */
4250 $"34CF 10DF B2AF 8E14 A5A4 E24F 0051 F63E" /* 4Ï.ß²¯Ž.¥¤âO.Qö> */
4251 $"F11C 5DAC 6D8D DEDD A585 96FC A2AB A5FF" /* ñ.]¬mÞÝ¥…–ü¢«¥ÿ */
4252 $"5298 6349 DB41 9276 C1C6 F1E2 9ABF 822B" /* R˜cIÛA’vÁÆñâš¿‚+ */
4253 $"346F 8679 726C 666A 9638 246A EABE 54A9" /* 4o†yrlfj–8$jê¾T© */
4254 $"49DD F22A BC62 5867 51F2 FDBD B33B 40E0" /* IÝò*¼bXgQòý½³;@à */
4255 $"220F 075D 031C EAAE 3CDE 67CF 2269 E26D" /* "..]..ê®<ÞgÏ"iâm */
4256 $"BEF3 1873 E610 D43E 8F03 A14F F04F 980B" /* ¾ó.sæ.Ô>.¡OðO˜. */
4257 $"69FF 1E4A 1925 DDE6 B473 84B5 6F53 75DD" /* iÿ.J.%Ýæ´s„µoSuÝ */
4258 $"CF71 C4C0 72DC 5403 7E7B 1A9B 6F16 BA87" /* ÏqÄÀrÜT.~{.›o.º‡ */
4259 $"A44D D4A2 8029 E15A 8C17 BE55 A30B 87B3" /* ¤MÔ¢€)áZŒ.¾U£.‡³ */
4260 $"DC5B CED9 2E4C A8F3 939B 6F82 8885 9BD5" /* Ü[ÎÙ.L¨ó“›o‚ˆ…›Õ */
4261 $"905B 6EE2 E3C9 D45E DE91 DD46 7EDD 23BB" /* [nâãÉÔ^Þ‘ÝF~Ý#» */
4262 $"6852 2BD3 3D31 2755 2D1B 7431 35EB 6CBD" /* hR+Ó=1'U-.t15ël½ */
4263 $"638C 9E5D F0EB 9AE0 49BC D327 7536 BCB3" /* cŒž]ðëšàI¼Ó'u6¼³ */
4264 $"65F1 992B E073 9D25 980D A244 7F9E 749F" /* eñ™+às%˜.¢D.žtŸ */
4265 $"53BD D08A C5EF 64A2 D672 7A55 9146 5CAD" /* S½ÐŠÅïd¢ÖrzU‘F\­ */
4266 $"7839 E1B6 7543 4556 146E C347 33E3 2798" /* x9á¶uCEV.nÃG3ã'˜ */
4267 $"4752 6F78 AAA5 AE5E 7B02 CD92 D5F1 FD30" /* GRoxª¥®^{.Í’Õñý0 */
4268 $"F78A 7BFB 03AB CF34 58BF 3810 B8A7 CDAB" /* ÷Š{û.«Ï4X¿8.¸§Í« */
4269 $"A573 658E 260A 7C50 000F 00AC D13F 618E" /* ¥seŽ&Â|P...¬Ñ?aŽ */
4270 $"A241 9458 3945 9D59 3F9B 13C5 04CC 600E" /* ¢A”X9EY?›.Å.Ì`. */
4271 $"FC51 8C8D FBA0 4150 5832 4539 730B 4631" /* üQŒû APX2E9s.F1 */
4272 $"0598 EE14 817C B560 97C5 B953 64D4 980D" /* .˜î.|µ`—ŹSdÔ˜. */
4273 $"C379 6FFF 3E63 6746 7BE8 D3AB 5215 B47F" /* Ãyoÿ>cgF{èÓ«R.´. */
4274 $"3CAE 42E4 D4BF B7BF 6580 3319 6A71 C2E9" /* <®BäÔ¿·¿e€3.jqÂé */
4275 $"48AA 2C5E 9D78 B9C3 F8DA B858 D5AB 99F4" /* Hª,^x¹ÃøÚ¸XÕ«™ô */
4276 $"B04F EAAC D0DE 2302 F874 7E64 A69B 89CE" /* °Oê¬ÐÞ#.øt~d¦›‰Î */
4277 $"AEAB A73F F815 0D06 B24E 39EC D8E9 EFB7" /* ®«§?ø...²N9ìØéï· */
4278 $"ED32 55A0 8E21 B52A E55C 17AE E07B 42F4" /* í2U Ž!µ*å\.®à{Bô */
4279 $"D451 CB7C E941 1578 3EE3 9565 087E 9A05" /* ÔQË|éA.x>ã•e.~š. */
4280 $"B5FC 403A AAA2 25CE 5AC1 B658 1EE9 9A53" /* µü@:ª¢%ÎZÁ¶X.éšS */
4281 $"4000 51DF 95E8 C605 97AC C7E1 A8B1 F86C" /* @.Qß•èÆ.—¬Çᨱøl */
4282 $"7C3F 0BCC E410 8FA7 78C0 7964 BDD0 E341" /* |?.Ìä.§xÀyd½ÐãA */
4283 $"5DC5 D977 EF99 460C FC48 A51A B5CD DE47" /* ]ÅÙwï™F.üH¥.µÍÞG */
4284 $"F9E2 194D 1F2D B2B6 556B 0F68 BD1B 5BEA" /* ùâ.M.-²¶Uk.h½.[ê */
4285 $"9FDD 1280 92A3 EF96 132C 22F6 CA8A 1C20" /* ŸÝ.€’£ï–.,"öÊŠ. */
4286 $"54DA F163 6119 BC02 7AE6 10CA A16B 993A" /* TÚñca.¼.zæ.Ê¡k™: */
4287 $"E22B CC58 D181 40E6 EA99 0897 5166 4C1F" /* â+ÌXÑ@æê™.—QfL. */
4288 $"6D58 D092 5119 1AF5 0C2B 1DC6 029D F0E8" /* mXÐ’Q..õ.+.Æ.ðè */
4289 $"1F6F 9F5C 17D8 68A0 F600 5C68 5C16 4269" /* .oŸ\.Øh ö.\h\.Bi */
4290 $"F5A9 4D97 32DE 3A9C 6609 86C2 1D0F BA56" /* õ©M—2Þ:œfƆÂ..ºV */
4291 $"3C8C 1046 E0DC 2ECB 9BDB D61E 6955 CE38" /* <Œ.FàÜ.Ë›ÛÖ.iUÎ8 */
4292 $"DB97 859B 9E73 78BF FDEB ED74 0C4E 4203" /* Û—…›žsx¿ýëít.NB. */
4293 $"431D 69C4 635D D1EA 1A9A 6462 BE48 DDB9" /* C.iÄc]Ñê.šdb¾Hݹ */
4294 $"6E63 C4D8 8886 51CB 19E6 A7C9 5941 8443" /* ncÄ؈†QË.æ§ÉYA„C */
4295 $"57E5 8C3B B907 FF17 4B41 08DA 7AFC 1B8B" /* WåŒ;¹.ÿ.KA.Úzü.‹ */
4296 $"9B05 622E 1F81 91D8 2C60 9C6A 3B23 608B" /* ›.b..‘Ø,`œj;#`‹ */
4297 $"F2EC E527 70F9 D963 D302 D7AC 18E2 2692" /* òìå'pùÙcÓ.׬.â&’ */
4298 $"AE0C D915 7E30 5B09 305C 8F5D 1346 3FF2" /* ®.Ù.~0[Æ0\].F?ò */
4299 $"8635 ECEC 1CB7 962D 0846 3FA9 5920 C1B0" /* †5ìì.·–-.F?©Y Á° */
4300 $"5582 FF3A 24E0 FAAE 8FAE 3843 DFCF B74F" /* U‚ÿ:$àú®®8CßÏ·O */
4301 $"CAEC 5602 D1C5 1760 5ECD 92C8 1DD1 4ABE" /* ÊìV.ÑÅ.`^Í’È.ÑJ¾ */
4302 $"2336 8A90 E444 6753 D3E0 0F02 8E99 7393" /* #6ŠäDgSÓà..Ž™s“ */
4303 $"8B26 6C9F BFB4 64DE 7867 73F7 10F0 477A" /* ‹&lŸ¿´dÞxgs÷.ðGz */
4304 $"8383 ADA5 49C3 722B 1FD7 0BB5 4118 4714" /* ƒƒ­¥IÃr+.×.µA.G. */
4305 $"D5F9 6C20 CDD0 8151 EAB4 457F FF4E 314C" /* Õùl ÍÐQê´E.ÿN1L */
4306 $"6E7F 04DB DE0C 611B 62AC 2A4E 869C 06FB" /* n..ÛÞ.a.b¬*N†œ.û */
4307 $"DB81 F238 C4FC 149E 8176 3F0C 4B83 0DFF" /* Ûò8Äü.žv?.Kƒ.ÿ */
4308 $"7FB4 A5F5 80C7 E4F0 47AD 8D3F 5426 B12A" /* .´¥õ€ÇäðG­?T&±* */
4309 $"8678 11E1 A0EF 5439 31D8 E97E 3AE9 E4DD" /* †x.á ïT91Øé~:éäÝ */
4310 $"3DB7 4A94 7FFF 7135 0C02 ACE2 70F5 626B" /* =·J”.ÿq5..¬âpõbk */
4311 $"271A 4401 DF00 AE70 E43B D3F8 75AD 0DAB" /* '.D.ß.®pä;Óøu­.« */
4312 $"794A C0C7 928F 8621 BE61 DA60 A89F 8E95" /* yJÀÇ’†!¾aÚ`¨ŸŽ• */
4313 $"64E1 4B82 9CA5 D1CB 26FA 3B49 2FDF 8007" /* dáK‚œ¥ÑË&ú;I/߀. */
4314 $"60B1 1C23 B192 973E 87DD 9323 E697 CA76" /* `±.#±’—>‡Ý“#æ—Êv */
4315 $"03D6 B09A 33FA 5CEC 856D 1D12 5249 2492" /* .Ö°š3ú\ì…m..RI$’ */
4316 $"4924 9249 2492 4924 9231 8B0A C6C2 C882" /* I$’I$’I$’1‹ÂÆÂÈ‚ */
4317 $"FC66 E59C E646 38B0 B26F A097 FEA2 30FE" /* üfåœæF8°²o —þ¢0þ */
4318 $"F5B9 90DC 3FEF 3116 73C4 7B20 6C09 EA40" /* õ¹Ü?ï1.sÄ{ lÆê@ */
4319 $"AB90 6257 8BAD 951C 002E 138D 7274 121D" /* «bW‹­•....rt.. */
4320 $"B91E 66F5 6038 8257 FD9A 18C9 0155 522C" /* ¹.fõ`8‚Wýš.É.UR, */
4321 $"D6CC 0F6A 6A4A 09F3 0C4A B702 47FF 7FFC" /* ÖÌ.jjJÆó.J·.Gÿ.ü */
4322 $"B504 0034 6682 CE19 CA7C 50BE F8B0 9DCB" /* µ..4f‚Î.Ê|P¾ø°Ë */
4323 $"0092 4924 9248 F298 B4D2 A612 6CEE 878F" /* .’I$’Hò˜´Ò¦.lî‡ */
4324 $"FF7F FF5F 8F59 B3E0 FE9F A74E 506D C924" /* ÿ.ÿ_Y³àþŸ§NPmÉ$ */
4325 $"9249 2492 4924 9249 2492 4924 924D 57A2" /* ’I$’I$’I$’I$’MW¢ */
4326 $"2CC8 426C 393A 96E4 50FB 0ACE 8874 7A86" /* ,ÈBl9:–äPûÂΈtz† */
4327 $"2B20 84D4 0F34 1532 DFF0 D633 0231 0F65" /* + „Ô.4.2ßðÖ3.1.e */
4328 $"91D1 8E19 A917 CD2A 8D35 89BE F64E D1A8" /* ‘ÑŽ.©.Í*5‰¾öNѨ */
4329 $"926C AE06 3A49 80F9 C1FE 0E81 52D8 5A8C" /* ’l®.:I€ùÁþ.RØZŒ */
4330 $"7A00 5EF2 9F04 3659 74EC D695 94B6 5B90" /* z.^òŸ.6YtìÖ•”¶[ */
4331 $"89C0 E661 DFC4 5E69 965B 4D1D 4B76 7C0E" /* ‰ÀæaßÄ^i–[M.Kv|. */
4332 $"89D2 C1E8 B1EF CF9E 5E96 3977 AEA6 532B" /* ‰ÒÁè±ïÏž^–9w®¦S+ */
4333 $"68B1 BD73 2BE6 BB5B 766E FA91 5C36 628C" /* h±½s+æ»[vnú‘\6bŒ */
4334 $"F45F FEEA C7DF 49F0 278F F459 E9B6 BDAC" /* ô_þêÇßIð'ôY鶽¬ */
4335 $"1A28 F485 45C5 2761 DC37 C72A 8A17 2D08" /* .(ô…EÅ'aÜ7Ç*Š.-. */
4336 $"5130 E9D5 E1BD 2D59 07B5 2290 00F9 F737" /* Q0éÕá½-Y.µ".ù÷7 */
4337 $"C1F4 5C78 1058 C4C6 13AB AE5C 45DE ACB4" /* Áô\x.XÄÆ.«®\EÞ¬´ */
4338 $"7DC9 03C4 0F82 7850 6F9E 5FD3 9223 36FE" /* }É.Ä.‚xPož_Ó’#6þ */
4339 $"8A1D 1D99 FBB3 646B 206B FC7E 668E 4730" /* Š..™û³dk kü~fŽG0 */
4340 $"7C8C 79D9 A37A 427B 1E91 E7A1 DED2 E57D" /* |ŒyÙ£zB{.‘ç¡ÞÒå} */
4341 $"E167 967A 8B9F A6C0 A36F 68E8 D03C 84C6" /* ág–z‹Ÿ¦À£ohèÐ<„Æ */
4342 $"E952 3CAF 039F 18CD 236C 4AE1 FB74 D7F6" /* éR<¯.Ÿ.Í#lJáût×ö */
4343 $"DFBF B7A4 AFDB D27E 2FB7 7BBF 86F0 DF6F" /* ß¿·¤¯ÛÒ~/·{¿†ðßo */
4344 $"4F9F C3A7 EC7F 0D0F BEDB 1EFB 77AA FB77" /* OŸÃ§ì...¾Û.ûwªûw */
4345 $"2CED 1CDE F39E A2F3 567D 91E9 4703 B8A2" /* ,í.Þóž¢óV}‘éG.¸¢ */
4346 $"5006 2494 6271 81F3 3B95 0B89 EDD5 7FE8" /* P.$”bqó;•.‰íÕ.è */
4347 $"B864 3D84 75CD 7478 A5D6 28C8 D483 39EF" /* ¸d=„uÍtx¥Ö(ÈÔƒ9ï */
4348 $"86CA 5763 87CA 97CF A9D4 AFA9 0450 6744" /* †ÊWc‡Ê—Ï©Ô¯©.PgD */
4349 $"16E3 8C0B 0015 88DA 5244 1AB2 9790 35B0" /* .ãŒ...ˆÚRD.²—5° */
4350 $"0489 B911 D871 2BB4 6576 C185 22B7 1F86" /* .‰¹.Øq+´evÁ…"·.† */
4351 $"230A 3CD3 ECB5 20A6 23BA A068 A53E 8EAD" /* #Â<Óìµ ¦#º h¥>Ž­ */
4352 $"3793 46B5 BA07 96A8 DF28 6A66 CE05 73CE" /* 7“Fµº.–¨ß(jfÎ.sÎ */
4353 $"1938 F9A6 9CBC 0D7F F193 E0D5 09CC 3426" /* .8ù¦œ¼..ñ“àÕÆÌ4& */
4354 $"4BB1 52B9 F337 0537 FA01 B010 5471 B015" /* K±R¹ó7.7ú.°.Tq°. */
4355 $"754C A1A6 E071 800C 1A26 243D 172B 1497" /* uL¡¦àq€..&$=.+.— */
4356 $"E5DF 1EB1 6A6C 6761 3BA6 52C0 C0B4 69BD" /* åß.±jlga;¦RÀÀ´i½ */
4357 $"E6B4 275E EB6E 42BF D693 8928 15A4 9DB2" /* æ´'^ënB¿Ö“‰(.¤² */
4358 $"D8FA E273 6C04 CBB5 06A9 8096 5E97 5D11" /* Øúâsl.˵.©€–^—]. */
4359 $"0B1B 8E93 BDCC 1AE8 4CBA 9413 A729 F6A7" /* ..Ž“½Ì.èLº”.§)ö§ */
4360 $"F24D 467F 0316 BF60 F777 C2E3 7FAA DC07" /* òMF...¿`÷wÂã.ªÜ. */
4361 $"148F 5C26 91C3 20B8 F3A0 9088 F893 6D47" /* .\&‘Ã ¸ó ˆø“mG */
4362 $"7AC1 A0D9 5483 8281 5B98 28AE 9EAB 94F0" /* zÁ ÙTƒ‚[˜(®ž«”ð */
4363 $"9B68 08E3 E3DA 7E3A AA84 9EED F083 117F" /* ›h.ããÚ~:ª„žíðƒ.. */
4364 $"FE75 781E E394 EEEC F9AC 21D6 FF5E DD57" /* þux.ã”îìù¬!Öÿ^ÝW */
4365 $"96CF A7DF 3C0D 7E2F F9E7 F212 83EE E629" /* –ϧß<.~/ùçò.ƒîæ) */
4366 $"9543 AA61 C10A 4B12 1DD8 6835 405A D739" /* •CªaÁÂK..Øh5@Z×9 */
4367 $"DBD7 1628 2816 909D 1DEB 81F2 16AF 8953" /* Û×.((..ëò.¯‰S */
4368 $"9239 B79D A64A 3275 E506 BFD3 0198 776C" /* ’9·¦J2uå.¿Ó.˜wl */
4369 $"F4C2 39CD 4CF8 2482 D781 526A 7D82 0B83" /* ôÂ9ÍLø$‚×Rj}‚.ƒ */
4370 $"120C B2AB 1FC0 2DAA 4A72 ACD9 B4C7 926A" /* ..²«.À-ªJr¬Ù´Ç’j */
4371 $"CE69 46FA C67E 904D 12D4 D6EC 2F77 AC43" /* ÎiFúÆ~M.ÔÖì/w¬C */
4372 $"0A82 A09A 8FAC 59F0 D192 4F8F E6D1 A8B3" /* ‚ š¬YðÑ’OæѨ³ */
4373 $"26FD EAD1 7727 E253 F826 580D 8786 8EAD" /* &ýêÑw'âSø&X.‡†Ž­ */
4374 $"4561 33FC 6C93 72E4 3F53 3E92 5E78 9597" /* Ea3ül“rä?S>’^x•— */
4375 $"895F 61B9 D382 514D 839E D4E8 A40B 6F99" /* ‰_a¹Ó‚QMƒžÔè¤.o™ */
4376 $"0BEC 889F F976 6F24 AEAC 2A18 479B 9CD0" /* .숟ùvo$®¬*.G›œÐ */
4377 $"A58D E4A8 4940 D7A9 26A7 8649 C387 22EB" /* ¥ä¨I@ש&§†IÇ"ë */
4378 $"10F3 AB7F 805D 57F4 6918 508A 429D FC32" /* .ó«.€]Wôi.PŠBü2 */
4379 $"0E49 3480 E5A6 0267 54A6 D677 422D 1B62" /* .I4€å¦.gT¦ÖwB-.b */
4380 $"4DFB C3A4 2E01 8C0D 029D D238 87B0 230E" /* Mûä..Œ..Ò8‡°#. */
4381 $"AB6E AEFD 64F3 F7AE 7BD7 DA13 2BCC DCFB" /* «n®ýdó÷®{×Ú.+ÌÜû */
4382 $"13EC E7EE A36F 86C6 A2D8 DD70 6174 04FA" /* .ìçî£o†Æ¢ØÝpat.ú */
4383 $"B7F7 A3BF 9C4C F99C C177 9B27 9148 3998" /* ·÷£¿œLùœÁw›'‘H9˜ */
4384 $"013A 4B0C E3A5 6905 6ADC 739C 3586 7009" /* .:K.ã¥i.jÜsœ5†pÆ */
4385 $"38DA 0496 C25E DFB2 F2AB 34C0 F138 4F81" /* 8Ú.–Â^ß²ò«4Àñ8O */
4386 $"7240 2774 4588 B153 267B DBBE DFDE AEAD" /* r@'tEˆ±S&{Û¾ßÞ®­ */
4387 $"1D90 BA71 2B83 D108 1CDB 8B36 7837 8AAA" /* .ºq+ƒÑ..Û‹6x7Šª */
4388 $"299C 2916 D66C CC2E 2FCF B0E3 228A 88C1" /* )œ).ÖlÌ./Ï°ã"ŠˆÁ */
4389 $"568F 12D8 D599 AB3F 29DE 1FA6 9336 132F" /* V.ØÕ™«?)Þ.¦“6./ */
4390 $"521E 8EB9 9BD4 30E4 362E 349E 209A 6EB6" /* R.Ž¹›Ô0ä6.4ž šn¶ */
4391 $"D5CC 985B E51E 8A74 B9A0 1718 2753 A1E0" /* Õ̘[å.Št¹ ..'S¡à */
4392 $"BDCC 77CC 5697 641D B916 AB08 C12F 102F" /* ½ÌwÌV—d.¹.«.Á/./ */
4393 $"59A0 4283 27A8 9F9E 1980 381A 4785 E896" /* Y Bƒ'¨Ÿž.€8.G…è– */
4394 $"B9C8 A383 0C1E EBDE A8DC D1A0 00FB 61C2" /* ¹È£ƒ..ëÞ¨ÜÑ .ûa */
4395 $"70F1 84C8 8368 337E DA6C 7A1A 014F 77C3" /* pñ„ȃh3~Úlz..Owà */
4396 $"EFFF 0CCC F88E E539 B4FF 3187 54EA 4B2E" /* ïÿ.ÌøŽå9´ÿ1‡TêK. */
4397 $"27BF 1121 0DCD 456F 5AB4 E115 9E30 8B1C" /* '¿.!.ÍEoZ´á.ž0‹. */
4398 $"FCFB 8634 E35F E3F0 2A65 8EC0 775F C0EE" /* üû†4ã_ãð*eŽÀw_Àî */
4399 $"37B2 6C5A AA44 2B7C 889A 5854 FBB4 DC29" /* 7²lZªD+|ˆšXTû´Ü) */
4400 $"E875 94AB D4F4 19C2 5989 594D 6B55 CB5E" /* èu”«Ôô.ÂY‰YMkUË^ */
4401 $"012C A350 BF1C 322E 6DC6 6CFB 052A B48D" /* .,£P¿.2.mÆlû.*´ */
4402 $"2FFE D908 D443 2FB2 706F 13A8 B2BF 2E97" /* /þÙ.ÔC/²po.¨²¿.— */
4403 $"D7EF 6FE2 7D0B 4D6C 89E6 24BB D547 A266" /* ×ïoâ}.Ml‰æ$»ÕG¢f */
4404 $"3B92 FF58 BE83 0D95 D587 B51D B83A B360" /* ;’ÿX¾ƒ.•Õ‡µ.¸:³` */
4405 $"DF16 A55F 5D17 5ED7 C7D7 88FD D24B 89C4" /* ß.¥_].^×Ç׈ýÒK‰Ä */
4406 $"17FF 1CE0 2FC5 E332 79FF 6532 D599 2C36" /* .ÿ.à/Åã2yÿe2Õ™,6 */
4407 $"7360 56F2 6017 1165 F8CD AC09 6435 530F" /* s`Vò`..eøͬÆd5S. */
4408 $"8E48 0152 06AE 7F31 9D5A A12E EC4A 26BD" /* ŽH.R.®.1Z¡.ìJ&½ */
4409 $"1D28 2D81 EBF2 625A 03C8 8240 FAB0 343C" /* .(-ëòbZ.È‚@ú°4< */
4410 $"3460 4650 A369 CBAF D533 EC55 DB4D 46F7" /* 4`FP£i˯Õ3ìUÛMF÷ */
4411 $"45C4 1B75 581D CC26 9E29 8B0F C424 5512" /* EÄ.uX.Ì&ž)‹.Ä$U. */
4412 $"9417 F11C 77C1 F3FD 57B1 487F D8F8 A086" /* ”.ñ.wÁóýW±H.Øø † */
4413 $"E60E 2356 E9E1 F3EC 7F31 52E1 E3DB C75E" /* æ.#Véáóì.1RáãÛÇ^ */
4414 $"7A4B 2D19 8F06 AB86 5A88 F23D C312 C565" /* zK-..«†Zˆò=Ã.Åe */
4415 $"1AF0 4B35 F0D9 D100 6634 A377 90C1 A69A" /* .ðK5ðÙÑ.f4£wÁ¦š */
4416 $"1C64 495A BEF2 5A5C 1714 0504 2639 71A2" /* .dIZ¾òZ\....&9q¢ */
4417 $"5989 FF6E F887 5ADD 9843 A719 60CC 5185" /* Y‰ÿnø‡ZݘC§.`ÌQ… */
4418 $"B308 2551 F63A 7543 2A92 3949 FCC5 5023" /* ³.%Qö:uC*’9IüÅP# */
4419 $"5A92 FE32 A26E FF00 9CFC 0CFF 4A08 60C7" /* Z’þ2¢nÿ.œü.ÿJ.`Ç */
4420 $"F76C 480A E682 3C58 66B8 7045 CDBA 616C" /* ÷lHÂæ‚<Xf¸pEͺal */
4421 $"9995 BEC1 809B 0892 A7EC 43EC 7FE8 F49F" /* ™•¾Á€›.’§ìCì.èôŸ */
4422 $"9E4B AFD6 66BB 0B88 38ED B165 9C1D F096" /* žK¯Öf».ˆ8í±eœ.ð– */
4423 $"64EC FD43 9A7A BC84 8CEF 2E65 F99B 4B43" /* dìýCšz¼„Œï.eù›KC */
4424 $"7D47 3AE8 D0DB A066 308B 201D FF3F ABC1" /* }G:èÐÛ f0‹ .ÿ?«Á */
4425 $"CD0D B822 3734 A23E AF05 D1E1 F9F5 AF09" /* Í.¸"74¢>¯.Ñáùõ¯Æ */
4426 $"6428 F517 1201 C3F1 1B80 0DD2 DCD9 CA31" /* d(õ...Ãñ.€.ÒÜÙÊ1 */
4427 $"B022 DAFB D990 A8B1 6FF1 004E 4847 E5C8" /* °"ÚûÙ¨±oñ.NHGåÈ */
4428 $"0580 DA86 704F E2FF 7E83 5167 5C3F ADB2" /* .€Ú†pOâÿ~ƒQg\?­² */
4429 $"4C44 A9D9 DB84 C360 68ED 1BF0 068E 04BF" /* LD©ÙÛ„Ã`hí.ð.Ž.¿ */
4430 $"D16E B55F 0701 3739 42FA E15C 0EA2 BF81" /* Ñnµ_..79Búá\.¢¿ */
4431 $"31C1 F1A3 A766 CAB8 C82E C96B 4868 D491" /* 1Áñ£§fʸÈ.ÉkHhÔ‘ */
4432 $"5ACB 6EED 4027 0C73 AACA 730C ECA6 DE42" /* ZËní@'.sªÊs.ì¦ÞB */
4433 $"38DA E07E CE64 BC49 7FDD FCCB 07B3 45BF" /* 8Úà~Îd¼I.ÝüË.³E¿ */
4434 $"B9DC FF13 039F D40E 43BB ACE4 B8F8 31F5" /* ¹Üÿ..ŸÔ.C»¬ä¸ø1õ */
4435 $"6743 9390 0B87 C9B1 194A 0200 FB53 29CD" /* gC“.‡É±.J..ûS)Í */
4436 $"3141 15F5 3C38 9F70 2B7E 0E46 B5A7 5C94" /* 1A.õ<8Ÿp+~.Fµ§\” */
4437 $"AED4 E415 1639 7B49 20DA 1541 9742 A3A6" /* ®Ôä..9{I Ú.A—B£¦ */
4438 $"B873 4C7C 9112 1322 7D7F 5F6E 14AB 57FC" /* ¸sL|‘.."}._n.«Wü */
4439 $"A01D 94EC BC05 F45B C4C4 1FC3 D61B F5D3" /*  .”ì¼.ô[ÄÄ.ÃÖ.õÓ */
4440 $"0E62 9C2F CAE6 C609 B0D2 803B AF5F CC7F" /* .bœ/ÊæÆÆ°Ò€;¯_Ì. */
4441 $"4085 5B49 F81B 0AB3 DB0C 27C1 7A95 45D6" /* @…[Iø.³Û.'Áz•EÖ */
4442 $"CDDD 4F06 1A20 A7FE 22F6 EA13 EB6E C723" /* ÍÝO.. §þ"öê.ënÇ# */
4443 $"87B9 A058 CAF9 9F59 C9C9 6AAD 8358 5147" /* ‡¹ XÊùŸYÉÉj­ƒXQG */
4444 $"2B3E 2FD8 506F A48B 305C 97C7 5D25 5C75" /* +>/ØPo¤‹0\—Ç]%\u */
4445 $"C5B1 E7B4 CBC7 C76A 2FE5 1669 302C 2318" /* űç´ËÇÇj/å.i0,#. */
4446 $"CB1D BB38 5B47 3563 F041 0F00 C23A B1E9" /* Ë.»8[G5cðA..Â:±é */
4447 $"1972 D9C9 2F2F 4013 F8EF A6CA 7E8E 705C" /* .rÙÉ//@.øï¦Ê~Žp\ */
4448 $"0CB6 1301 5ED4 25E6 F7D9 999D AB8F 4CAC" /* .¶..^Ô%æ÷Ù™«L¬ */
4449 $"6FF2 04C8 8307 016C 6E46 645B 5488 79C0" /* oò.ȃ..lnFd[TˆyÀ */
4450 $"C0E5 8A2A 46EB DB4C 65A0 27FC 6230 781C" /* ÀåŠ*FëÛLe 'üb0x. */
4451 $"EDB8 4666 1604 1937 9603 A2AA D8C3 43A6" /* í¸Ff...7–.¢ªØÃC¦ */
4452 $"E254 D745 866F D24A DD91 397E C575 F187" /* âT×E†oÒJÝ‘9~Åuñ‡ */
4453 $"193B F5F5 819B 7D57 EC83 0871 ED1B 64F6" /* .;õõ›}Wìƒ.qí.dö */
4454 $"E47A E1B0 65F9 67DF 5680 3642 52AA BB4B" /* äzá°eùgßV€6BRª»K */
4455 $"BA52 D8BA 8AF7 0A96 412A 92B2 045F 9739" /* ºRغŠ÷–A*’²._—9 */
4456 $"3A52 D961 6BC6 1D2E D90D 29A7 E9DE 2651" /* :RÙakÆ..Ù.)§éÞ&Q */
4457 $"CE3F 9921 03BC 7A7A CBFD 63E2 4C7C 9025" /* Î?™!.¼zzËýcâL|% */
4458 $"BCC3 D509 745E 9AE4 1675 0242 26EE E4F6" /* ¼ÃÕÆt^šä.u.B&îäö */
4459 $"B04B CFB3 E37F EADB 2840 E47E 0209 C8C5" /* °Kϳã.êÛ(@ä~.ÆÈÅ */
4460 $"56FC 6228 BB57 F43A BE32 0753 73FB EAE2" /* Vüb(»Wô:¾2.Ssûêâ */
4461 $"55B4 D581 42C8 10B8 AEA9 67C4 F685 982C" /* U´ÕBÈ.¸®©gÄö…˜, */
4462 $"3104 095F DCBD 3701 8749 9CBA A7A5 B714" /* 1.Æ_ܽ7.‡Iœº§¥·. */
4463 $"FDED FAA3 F034 54D8 728F 8640 4A61 560C" /* ýíú£ð4TØr†@JaV. */
4464 $"50D4 B224 A5F1 6715 6C8B 7EC6 BF5C 120D" /* PÔ²$¥ñg.l‹~Æ¿\.. */
4465 $"8797 B25E B0E1 C57E 69AF 1FF2 99C3 44B5" /* ‡—²^°áÅ~i¯.ò™ÃDµ */
4466 $"0508 0061 1F44 795F 27C0 511E 0796 9740" /* ...a.Dy_'ÀQ..–—@ */
4467 $"14FF 4C51 5651 34F3 658D 4CA8 3FBF 43CC" /* .ÿLQVQ4óeL¨?¿CÌ */
4468 $"8813 D372 1723 7DB5 6D44 4524 4E91 B644" /* ˆ.Ór.#}µmDE$N‘¶D */
4469 $"4B7D CDEC E0E0 8468 622D 87FE 80E3 E097" /* K}Íìàà„hb-‡þ€ãà— */
4470 $"303D 8894 1FFF 7FA6 9AAB C6E0 0B83 3EDD" /* 0=ˆ”.ÿ.¦š«Æà.ƒ>Ý */
4471 $"86A5 43D3 C650 0008 D364 A800 0000 0000" /* †¥CÓÆP..Ód¨..... */
4472 $"0000 07D7 8F92 61B9 E6E0 BCBF CD4A AB76" /* ...×’a¹æ༿ÍJ«v */
4473 $"5B6E 246A 8DFB D274 41F9 3583 773D 5165" /* [n$jûÒtAù5ƒw=Qe */
4474 $"2139 B773 476E DF91 33F0 8CDA F420 613F" /* !9·sGnß‘3ðŒÚô a? */
4475 $"9B35 33C9 8298 A661 A5DB 2CEF 1A1C BC3E" /* ›53É‚˜¦a¥Û,ï..¼> */
4476 $"09B4 5415 8511 4FE5 3FF8 B88C 339D C169" /* Æ´T.….Oå?ø¸Œ3Ái */
4477 $"9608 FF62 B2D6 285A 80A2 22C9 E4AA 5A99" /* –.ÿb²Ö(Z€¢"ÉäªZ™ */
4478 $"B3F5 E9D4 7FFF 7FF4 7D5C 4CC0 788F 0EB6" /* ³õéÔ.ÿ.ô}\LÀx.¶ */
4479 $"8024 0000 0A1E 1F40 0000 0000 0000 0000" /* €$..Â..@........ */
4480 $"CA54 CF6A 897B B6D7 9C90 87E9 FF6A 22A0" /* ÊTÏj‰{¶×œ‡éÿj"  */
4481 $"0765 4AE8 B827 B7A1 C412 4000 0000 0000" /* .eJè¸'·¡Ä.@..... */
4482 $"0000 2222 DAB7 AEED C4EB AFCB FF79 6610" /* ..""Ú·®íÄë¯Ëÿyf. */
4483 $"A362 D5F2 1401 DA9F 8978 3FC3 FF60 341C" /* £bÕò..ÚŸ‰x?Ãÿ`4. */
4484 $"524C CBF3 AF64 9BA4 637F F217 CA8C A4CE" /* RLËó¯d›¤c.ò.ÊŒ¤Î */
4485 $"A881 46DE C63F CB0B 4C86 F71C CDFF 6CDC" /* ¨FÞÆ?Ë.L†÷.ÍÿlÜ */
4486 $"3C86 AFD6 02EF 25B3 E392 0238 14ED F9FF" /* <†¯Ö.ï%³ã’.8.íùÿ */
4487 $"71EA 1A7B 7848 281D C18D 83C1 F0D1 C115" /* qê.{xH(.ÁƒÁðÑÁ. */
4488 $"C525 7E38 9E60 32A4 CED2 A5DE 8006 1212" /* Å%~8ž`2¤ÎÒ¥Þ€... */
4489 $"7136 14A1 74D1 9C7D F74C 708E 43DE 4154" /* q6.¡tÑœ}÷LpŽCÞAT */
4490 $"2939 179A 87BB 2AAF 7401 4404 CB30 458F" /* )9.š‡»*¯t.D.Ë0E */
4491 $"F1B7 EE42 3E46 458F B220 6F30 EE24 7D86" /* ñ·îB>FE² o0î$}† */
4492 $"2D28 3CA7 C184 60D3 4EBC 9C79 C402 02FC" /* -(<§Á„`ÓN¼œyÄ..ü */
4493 $"553C C62D DDC0 3D0C F12B C1FF 546D A4FF" /* U<Æ-ÝÀ=.ñ+ÁÿTm¤ÿ */
4494 $"5885 6B1B 9EF6 2206 8FB5 1CB0 2D3D B922" /* X…k.žö".µ.°-=¹" */
4495 $"644F D104 0152 70F8 BF41 4D6E 4F05 B928" /* dOÑ..Rpø¿AMnO.¹( */
4496 $"396A 4A92 9B1B 24AB 4611 6D95 87D6 2D7C" /* 9jJ’›.$«F.m•‡Ö-| */
4497 $"7546 B839 A3B1 C612 0F2A 796E 7911 5FF9" /* uF¸9£±Æ..*yny._ù */
4498 $"03C4 D13E EF00 2DEF 9CFE FDDE 3A2C FF3E" /* .ÄÑ>ï.-ïœþýÞ:,ÿ> */
4499 $"4567 F432 3673 3F84 8787 B65C 7A4F 2007" /* Egô26s?„‡‡¶\zO . */
4500 $"FF7C D894 A762 3872 8FA4 9563 D178 5039" /* ÿ|Ø”§b8r¤•cÑxP9 */
4501 $"C4BD 2EB4 0491 2A80 0000 0000 0000 0001" /* Ľ.´.‘*€........ */
4502 $"F172 6FA1 09F2 9F35 F3BC 2E0B 8E46 2557" /* ñro¡ÆòŸ5ó¼..ŽF%W */
4503 $"67C5 4F12 D1CF F08C BC61 0F89 E4A4 9249" /* gÅO.ÑÏðŒ¼a.‰ä¤’I */
4504 $"2492 4924 9249 221B 4708 65ED 84CA FDD2" /* $’I$’I".G.eí„ÊýÒ */
4505 $"D193 7C69 0CA3 95EF DDF2 33FF 556E D976" /* Ñ“|i.£•ïÝò3ÿUnÙv */
4506 $"2E4D FDCE E0FC 8669 83FF 768E 3CBB 179B" /* .MýÎàü†iƒÿvŽ<».› */
4507 $"DBB9 253D BFFF 79F1 5006 27BF 5548 40B9" /* Û¹%=¿ÿyñP.'¿UH@¹ */
4508 $"BADC F963 10BA 8BD9 367F E03A 6E29 5908" /* ºÜùc.º‹Ù6.à:n)Y. */
4509 $"0000 0000 0000 0000 0028 8080 0000 000A" /* .........(€€... */
4510 $"6370 D000 0142 83C0 0000 0011 CD3F D940" /* cpÐ..BƒÀ....Í?Ù@ */
4511 $"0022 C990 C912 501C 14FC 1926 5412 0E88" /* ."ÉÉ.P..ü.&T..ˆ */
4512 $"C32F B2ED E7A4 9249 2492 4924 9249 247E" /* Ã/²í礒I$’I$’I$~ */
4513 $"FB2C 999E D2ED 6DFF 783B 4C3A 3DB7 14A5" /* û,™žÒímÿx;L:=·.¥ */
4514 $"872C 2B85 8FC2 72EA 3412 FCA8 32E0 7A2E" /* ‡,+…Ârê4.ü¨2àz. */
4515 $"B109 F66C 3F99 7C32 2761 1522 7B9C 1851" /* ±Æöl?™|2'a."{œ.Q */
4516 $"B3CB 5373 0652 CE79 D8C5 B721 03D7 CD81" /* ³ËSs.RÎyØÅ·!.×Í */
4517 $"A03A CD5F CECF B58A 4122 7ED2 9FFF 7FFF" /*  :Í_ÎϵŠA"~ÒŸÿ.ÿ */
4518 $"1575 DF0B 430B 0A6C 6108 B421 B33F E9FA" /* .uß.C.Âla.´!³?éú */
4519 $"AC06 391C EB01 17F4 3BF4 4CDA 87DA 516F" /* ¬.9.ë..ô;ôLÚ‡ÚQo */
4520 $"EFA3 E7F9 651A 6902 C269 AF79 2EA4 D861" /* ï£çùe.i.Âi¯y.¤Øa */
4521 $"CBC1 7F37 146D 4163 38BB B16B AAD4 9AC2" /* ËÁ.7.mAc8»±kªÔšÂ */
4522 $"424A B3CE 1368 78EF B4B0 FE68 2FBA 0CB2" /* BJ³Î.hxï´°þh/º.² */
4523 $"E672 A89D 999E 64CD 417A 98A3 8458 0603" /* ær¨™ždÍAz˜£„X.. */
4524 $"C03D 9F9E B15E 8418 0FC6 F3E0 BA39 A3C1" /* À=Ÿž±^„..Æóàº9£Á */
4525 $"9929 0547 9C29 FC76 57CA B1E5 F887 AE73" /* ™).Gœ)üvWʱåø‡®s */
4526 $"78AA BA9F FF7F C07C 00F0 28E9 7533 0FC1" /* xªºŸÿ.À|.ð(éu3.Á */
4527 $"097C 4ABC F3CB 6604 EEC2 5194 A1F2 A201" /* Æ|J¼óËf.îÂQ”¡ò¢. */
4528 $"D6B0 C5F3 4AA3 8FD8 34DC A382 0CD4 134E" /* Ö°ÅóJ£Ø4Ü£‚.Ô.N */
4529 $"8275 37F5 2388 74C6 1A6C F889 1037 A348" /* ‚u7õ#ˆtÆ.lø‰.7£H */
4530 $"ACB4 EFF5 B446 564C C6DC 75F7 8445 013F" /* ¬´ïõ´FVLÆÜu÷„E.? */
4531 $"79FF 407B 05EE 9C66 8A53 FF7A 367A 6D06" /* yÿ@{.îœfŠSÿz6zm. */
4532 $"9ADF CBDD 25B5 0629 78A0 A071 35BA EE49" /* šßËÝ%µ.)x  q5ºîI */
4533 $"64E9 3EA3 9A07 917A 66E3 090C B916 3BF5" /* dé>£š.‘zfãÆ.¹.;õ */
4534 $"10D7 77D5 7281 248E 3F09 0C0F 319E 7F71" /* .×wÕr$Ž?Æ..1ž.q */
4535 $"98DA A34A C823 06A4 6BFD 8EA1 8C71 EB25" /* ˜Ú£JÈ#.¤kýŽ¡Œqë% */
4536 $"E5FC 0BA1 DB35 9514 A229 56F0 7E42 9FD0" /* åü.¡Û5•.¢)Vð~BŸÐ */
4537 $"5435 3CB7 AED9 0A4F 625B A493 D1B2 C654" /* T5<·®ÙÂOb[¤“ѲÆT */
4538 $"F691 87F9 F8E9 7459 1823 E06B 57D6 C638" /* ö‘‡ùøétY.#àkWÖÆ8 */
4539 $"7EE2 8CA0 1D79 4000 0000 0000 0000 0000" /* ~⌠.y@......... */
4540 $"0000 0000 442A 0D8C 8522 4E1A 3752 5040" /* ....D*.Œ…"N.7RP@ */
4541 $"E53D EE69 0B70 A6BF 9D0D D725 D66E 8D50" /* å=îi.p¦¿.×%ÖnP */
4542 $"10DB 966B 649B 0CA3 958B 6457 90CC 214A" /* .Û–kd›.£•‹dWÌ!J */
4543 $"C4C0 27A2 95F4 98AD 14C2 1892 EBE7 864B" /* ÄÀ'¢•ô˜­.Â.’ëç†K */
4544 $"18AA 55C7 50D2 4A15 7F4E 566A 9C13 9C52" /* .ªUÇPÒJ..NVjœ.œR */
4545 $"AC77 FE86 B3A2 5D92 D112 516C BA99 60EE" /* ¬wþ†³¢]’Ñ.Qlº™`î */
4546 $"221A F194 D9DF FF5F FF6B 77F9 4B01 4F8F" /* ".ñ”Ùßÿ_ÿkwùK.O */
4547 $"F681 8614 2F3E 31E3 EABB 7C34 6025 A491" /* ö†./>1ãê»|4`%¤‘ */
4548 $"9BC1 A348 628D 34AE 751A F8F7 7521 7F48" /* ›Á£Hb4®u.ø÷u!.H */
4549 $"68A4 6B9C F66F 252D 6021 9C97 39AB B637" /* h¤kœöo%-`!œ—9«¶7 */
4550 $"3B5D E8FB 56EE 824A F65D C84D E23C 7BF2" /* ;]èûVî‚Jö]ÈMâ<{ò */
4551 $"5400 0000 0000 0000 0000 0000 0014 080D" /* T............... */
4552 $"B05B 4688 1F60 376D 2209 1DE1 7E75 CD30" /* °[Fˆ.`7m"Æ.á~uÍ0 */
4553 $"5D2F 627B A077 8D86 2001 62AF 1031 6853" /* ]/b{ w† .b¯.1hS */
4554 $"2A8E 0308 16F6 C4EC E5B6 814A 1DF2 23EB" /* *Ž...öÄìå¶J.ò#ë */
4555 $"8C16 64F9 A1ED 8A1F 346E 2E1C 5ACB 4376" /* Œ.dù¡íŠ.4n..ZËCv */
4556 $"5014 B885 5212 5294 8F4F DF56 7339 8A5D" /* P.¸…R.R”OßVs9Š] */
4557 $"03C0 A05F D60B 5D58 2677 CD67 A4EE 3803" /* .À _Ö.]X&wÍg¤î8. */
4558 $"B2B1 9AD5 A41A C3EF 3281 3FFF 780A A5BD" /* ²±šÕ¤.Ãï2?ÿxÂ¥½ */
4559 $"861B 62F7 456F 1021 93CD A115 BD61 7E4C" /* †.b÷Eo.!“Í¡.½a~L */
4560 $"2306 D6BF D5D9 18AF 12BB 22D9 E32E 6976" /* #.Ö¿ÕÙ.¯.»"Ùã.iv */
4561 $"9282 5E47 A842 7983 2C87 64C5 6215 A0D9" /* ’‚^G¨Byƒ,‡dÅb. Ù */
4562 $"E45A EFAE 74F3 E5E5 7679 A7C0 D366 649C" /* äZï®tóååvy§ÀÓfdœ */
4563 $"9EF3 D763 2D6C D0AD 48E5 7A2A 9454 8B34" /* žó×c-lЭHåz*”T‹4 */
4564 $"B7FF 7FCD F604 90E4 2716 1C40 DD8A 8B1A" /* ·ÿ.Íö.ä'..@ÝŠ‹. */
4565 $"24C8 2F0C 06AC 999A 58B7 C15E E6B1 431B" /* $È/..¬™šX·Á^æ±C. */
4566 $"73D1 FEC5 5182 4A2D 33CB E920 AFBE 9F5A" /* sÑþÅQ‚J-3Ëé ¯¾ŸZ */
4567 $"0478 C2F3 80D7 241A 2E07 8BF3 FD3F 471A" /* .xÂó€×$...‹óý?G. */
4568 $"7C53 1C79 2F17 C32F D5C6 B977 E2F9 9D80" /* |S.y/.Ã/Õƹwâù€ */
4569 $"558B 7336 75BC 5945 3986 BD1C CE95 EA07" /* U‹s6u¼YE9†½.Εê. */
4570 $"7152 C778 65AD 73E9 F1B7 24D4 BDB0 7F24" /* qRÇxe­séñ·$Ô½°.$ */
4571 $"BACD 3C51 D344 33D7 21C7 BE9A 915D 2808" /* ºÍ<QÓD3×!Ǿš‘](. */
4572 $"3E68 3F1B 43AE 8F30 CE7F FF67 1C78 8498" /* >h?.C®0Î.ÿg.x„˜ */
4573 $"08D8 E1D9 3F1A E50B EB7C E564 6F4C 57F3" /* .ØáÙ?.å.ë|ådoLWó */
4574 $"9E60 5F9B 244E 83A9 33C9 668A 3951 7E33" /* ž`_›$Nƒ©3ÉfŠ9Q~3 */
4575 $"31D7 01E7 0342 6BC0 7FD1 7488 2BE1 9AD1" /* 1×.ç.BkÀ.Ñtˆ+ášÑ */
4576 $"1938 BBD8 7710 BAD3 BB92 2C80 A162 B2EF" /* .8»Øw.ºÓ»’,€¡b²ï */
4577 $"3FEA 6FC2 47D2 0D0E 28AB 03DA 4B34 4027" /* ?êoÂGÒ..(«.ÚK4@' */
4578 $"7FFD 87BC 9D96 E076 3C00 0000 0000 0000" /* .ý‡¼–àv<....... */
4579 $"0000 0000 0000 136C 1721 95F0 1991 3F80" /* .......l.!•ð.‘?€ */
4580 $"65DC 1F3F AEA0 BE5C 71D2 94CE C7FF 7FFF" /* eÜ.?® ¾\qÒ”ÎÇÿ.ÿ */
4581 $"7917 BEAD D458 935A 563C CC9C 6C0D CFFF" /* y.¾­ÔX“ZV<Ìœl.Ïÿ */
4582 $"55DA 93C2 F199 3D1E C4C2 3C5F A7BC D48E" /* UÚ“Âñ™=.ÄÂ<_§¼ÔŽ */
4583 $"4980 037B 9FCC F7BC 6E1E 78CD 2838 DC58" /* I€.{ŸÌ÷¼n.xÍ(8ÜX */
4584 $"F156 C827 88EA BFF7 BD95 BBD6 FE11 C305" /* ñVÈ'ˆê¿÷½•»Öþ.Ã. */
4585 $"A1D2 FA2A EA0B E56B 285B 91FE 551E F5E2" /* ¡Òú*ê.åk([‘þU.õâ */
4586 $"687C 5A51 1A67 64D3 BD76 4937 F455 4C94" /* h|ZQ.gdÓ½vI7ôUL” */
4587 $"6A7E B888 CB40 7AA3 DDEE 8BD8 2D9F 1EB6" /* j~¸ˆË@z£Ýî‹Ø-Ÿ.¶ */
4588 $"48DF 9C66 6BF3 A26A 3CC4 2D4D E47A 6D9A" /* Hßœfkó¢j<Ä-Mäzmš */
4589 $"DAB1 1DA4 083A D994 4416 C0D2 2E63 539E" /* Ú±.¤.:Ù”D.ÀÒ.cSž */
4590 $"7274 3C04 85F4 D7B5 EDEF 507A B2B7 1832" /* rt<.…ô×µíïPz²·.2 */
4591 $"6615 A186 4A80 0000 0000 0000 0000 0000" /* f.¡†J€.......... */
4592 $"07CF BF6C 3626 7453 BF7D 8B57 26C9 F556" /* .Ï¿l6&tS¿}‹W&ÉõV */
4593 $"1F12 0BB9 5DC4 797D 3C69 7DB2 2FFF 7F33" /* ...¹]Äy}<i}²/ÿ.3 */
4594 $"81FC E4ED 4BF8 9180 3FD2 0142 3F2D 1DF0" /* üäíKø‘€?Ò.B?-.ð */
4595 $"097B D61C 019A C409 B506 26FC D55D 7AE9" /* Æ{Ö..šÄƵ.&üÕ]zé */
4596 $"3464 6C57 13E7 565F 2553 70C3 3EC7 87AC" /* 4dlW.çV_%SpÃ>LJ¬ */
4597 $"3161 5289 3A6A FC0B E254 CAFA 6A32 2F8C" /* 1aR‰:jü.âTÊúj2/Œ */
4598 $"8B76 FA87 DADD 0333 2250 0058 F5C6 21CD" /* ‹vú‡ÚÝ.3"P.XõÆ!Í */
4599 $"D094 5CD5 10DD 2FA0 B74B 06FB AA9B 2B62" /* Д\Õ.Ý/ ·K.ûª›+b */
4600 $"E36D 708E B8F5 0739 3097 7F03 47BE 48F5" /* ãmpŽ¸õ.90—..G¾Hõ */
4601 $"D079 1641 CA5D DF28 C92B 0EFA B18F CE6F" /* Ðy.AÊ]ß(É+.ú±Îo */
4602 $"6648 DB26 DE5C 1D17 2BD3 28AF DD89 801C" /* fHÛ&Þ\..+Ó(¯Ý‰€. */
4603 $"AB0D 40D1 9016 D542 63A0 8222 9D7A F0F5" /* «.@Ñ.ÕBc ‚"zðõ */
4604 $"A171 2D28 3D2C C22E 09AB 3AA9 C50B 7545" /* ¡q-(=,Â.Æ«:©Å.uE */
4605 $"4C64 18E8 8E67 3A7D DDBE 36CE 2F97 5AD0" /* Ld.èŽg:}ݾ6Î/—ZÐ */
4606 $"E4F0 8AFB 6071 6268 E5F6 09EA 245F 9F87" /* äðŠû`qbhåöÆê$_Ÿ‡ */
4607 $"E304 242C 234C 9FF7 1D0A 11C7 4FE7 20BC" /* ã.$,#LŸ÷.Â.ÇOç ¼ */
4608 $"EC58 1A4B 5A8E DE45 0E5F 4A03 4C8A 5051" /* ìX.KZŽÞE._J.LŠPQ */
4609 $"E410 4405 321B BD82 AC69 94F7 AA5E 5C65" /* ä.D.2.½‚¬i”÷ª^\e */
4610 $"436F 861A C95F 1AB0 2E2B 9689 AA43 B247" /* Co†.É_.°.+–‰ªC²G */
4611 $"6DE3 4E9E F205 F221 D175 86BB 4434 C0EE" /* mãNžò.ò!Ñu†»D4Àî */
4612 $"C472 EA2B 499D 63FA B4C8 FAB3 91F3 060D" /* Ärê+Icú´Èú³‘ó.. */
4613 $"C203 A636 1D98 6B00 D678 0D3C BE92 309E" /* Â.¦6.˜k.Öx.<¾’0ž */
4614 $"759A 11D4 B514 24FB E4D2 7089 76DE 42DD" /* uš.Ôµ.$ûäÒp‰vÞBÝ */
4615 $"5338 4798 5943 4A6B 500A 472E 77BE AEBD" /* S8G˜YCJkPÂG.w¾®½ */
4616 $"93B0 117A 0E2D A8E4 DFED 5A76 1775 2BFF" /* “°.z.-¨äßíZv.u+ÿ */
4617 $"1A84 CBE1 B007 D3EA 11B0 9BB8 4B3F BB56" /* .„Ëá°.Óê.°›¸K?»V */
4618 $"33F6 B242 4C5C A63D 638F 1BA5 0AC5 698D" /* 3ö²BL\¦=c.¥ÂÅi */
4619 $"45B3 D343 D769 FEEE C45D 50B0 9AAA 4146" /* E³ÓC×iþîÄ]P°šªAF */
4620 $"0BFA F8CC 694B A42D FC1E C3F1 54F0 D3F9" /* .úøÌiK¤-ü.ÃñTðÓù */
4621 $"F051 5182 D373 5210 38AA F9B0 D3F3 6B07" /* ðQQ‚ÓsR.8ªù°Óók. */
4622 $"C944 7FCA 2126 D17A 01B1 7763 CDE8 D5FF" /* ÉD.Ê!&Ñz.±wcÍèÕÿ */
4623 $"00F4 08D7 4060 339C D8E2 7EA4 B00D 3171" /* .ô.×@`3œØâ~¤°.1q */
4624 $"ABB0 7F47 D146 13B9 398E 14B3 C55D 10AF" /* «°.GÑF.¹9Ž.³Å].¯ */
4625 $"8D0A 2444 26A0 EFEA 6CB2 51FD EA28 0FD7" /* Â$D& ïêl²Qýê(.× */
4626 $"4E2F F54F 0066 62F2 66F3 334C 5D9D 77ED" /* N/õO.fbòfó3L]wí */
4627 $"F3D0 12ED 7A95 89A1 B928 8429 DCFB 8C68" /* óÐ.íz•‰¡¹(„)ÜûŒh */
4628 $"C35C 3C77 5D7D 5180 A012 ADA3 AE60 AAE0" /* Ã\<w]}Q€ .­£®`ªà */
4629 $"0D88 09A4 4F7B FAC4 A2FD 327D E109 4F0B" /* .ˆÆ¤O{úÄ¢ý2}áÆO. */
4630 $"3343 C0ED D985 7402 93E2 7A2E 09B4 09A6" /* 3CÀíÙ…t.“âz.ƴƦ */
4631 $"5348 2E51 C037 BE62 C1A7 15C4 B9C8 7F4B" /* SH.QÀ7¾bÁ§.ĹÈ.K */
4632 $"FC22 3596 D989 C701 6701 5488 1001 22B2" /* ü"5–Ù‰Ç.g.Tˆ.."² */
4633 $"C06A A5D5 2C94 6BA9 D1C6 2B33 5910 8B1F" /* Àj¥Õ,”k©ÑÆ+3Y.‹. */
4634 $"0B0D 5531 BE0F 3E72 9C60 75A8 2669 220D" /* ..U1¾.>rœ`u¨&i". */
4635 $"E140 D538 7CD4 5763 D708 6D5E 45C0 AE61" /* á@Õ8|ÔWc×.m^EÀ®a */
4636 $"EC8B E180 1D9C 712C 4DB9 F177 6733 0F76" /* ì‹á€.œq,M¹ñwg3.v */
4637 $"9A72 7AD0 D18D 2BE6 9DCE 6294 4092 CE8E" /* šrzÐÑ+æÎb”@’ÎŽ */
4638 $"ACED 8B00 B050 AE53 C09C 98D6 CFD1 4208" /* ¬í‹.°P®SÀœ˜ÖÏÑB. */
4639 $"DEB2 AF01 5ED7 E1F4 4EAA 0B09 2263 FE09" /* Þ²¯.^×áôNª.Æ"cþÆ */
4640 $"2771 6EB7 9181 1DFE A5DD 9A12 4592 02FD" /* 'qn·‘.þ¥Ýš.E’.ý */
4641 $"5F2D D4D6 5C15 B454 B07C 9B6A B9F9 AEC2" /* _-ÔÖ\.´T°|›j¹ù®Â */
4642 $"D883 1F5F B9B1 8258 6732 C7E3 5C90 DB16" /* ؃._¹±‚Xg2Çã\Û. */
4643 $"42EC D875 2B9D FEAF 1FED BD80 261D BAAE" /* BìØu+þ¯.í½€&.º® */
4644 $"3799 FDC7 DBE5 E769 A11C 3304 5D3B 419C" /* 7™ýÇÛåçi¡.3.];Aœ */
4645 $"5844 E615 EE7A 5DCE 272E D055 121D 1F84" /* XDæ.îz]Î'.ÐU...„ */
4646 $"2EC6 E6B1 A7DA D03A D600 6D58 4FF0 9196" /* .Æ汧ÚÐ:Ö.mXOð‘– */
4647 $"FBCA CDDC 1B8D 9D1A BB7B 3782 0F3F 626C" /* ûÊÍÜ..»{7‚.?bl */
4648 $"26AA AF34 6A20 8210 1E96 ED21 5A26 EF04" /* &ª¯4j ‚..–í!Z&ï. */
4649 $"5F66 5C2D A8A4 F3BC 1871 AD1D FE4D 8C8B" /* _f\-¨¤ó¼.q­.þMŒ‹ */
4650 $"F1E5 A382 654B 08C7 EFC4 BFBA C29B 5C73" /* ñ壂eK.ÇïÄ¿ºÂ›\s */
4651 $"2420 9390 3B75 6DE6 0208 6F4F BB53 B2AA" /* $ “;umæ..oO»S²ª */
4652 $"AD28 4360 1A8A 4301 088C 6F17 68CC 9180" /* ­(C`.ŠC..Œo.hÌ‘€ */
4653 $"D757 7012 3BE3 C4AB DF05 97B9 4B57 B6FC" /* ×Wp.;ãÄ«ß.—¹KW¶ü */
4654 $"7693 36DE 89E8 E2AB 4352 A782 4520 DA28" /* v“6Þ‰èâ«CR§‚E Ú( */
4655 $"F1F2 34D6 2EAE E401 ED61 1E2E 4E74 D4EB" /* ñò4Ö.®ä.ía..NtÔë */
4656 $"98A9 94AD F856 8EE1 E3D0 06FC AA37 31E5" /* ˜©”­øVŽáãÐ.üª71å */
4657 $"1047 113E C151 CE86 B6A4 0F82 E5D9 CE50" /* .G.>ÁQΆ¶¤.‚åÙÎP */
4658 $"57A8 8F86 AFAD 21D1 2C4C F181 8BD7 106C" /* W¨†¯­!Ñ,Lñ‹×.l */
4659 $"3C77 649E 038E 3C63 66F4 EE1A 2906 755C" /* <wdž.Ž<cfôî.).u\ */
4660 $"EDD8 6093 6868 531C 9FA3 C5C9 3F3C 7786" /* íØ`“hhS.Ÿ£ÅÉ?<w† */
4661 $"BCC4 440C 13F9 0BCB 76BA 9364 A3CC 344F" /* ¼ÄD..ù.Ëvº“d£Ì4O */
4662 $"128B D594 CB9D A2DC 6C03 CA48 2D9E 9706" /* .‹Õ”Ë¢Ül.ÊH-ž—. */
4663 $"A281 5170 A91B 0033 4552 2A9A BF6F D4A9" /* ¢Qp©..3ER*š¿oÔ© */
4664 $"61B6 F6C1 7959 FDD2 8F3F C94B 2B90 29BB" /* a¶öÁyYýÒ?ÉK+)» */
4665 $"9FAA A83B FEFF 80A3 1EC2 B2D9 77CF 963B" /* Ÿª¨;þÿ€£.²ÙwÏ–; */
4666 $"85FF 5728 5CDD 2F01 7556 8155 F8AA 7984" /* …ÿW(\Ý/.uVUøªy„ */
4667 $"7543 0C18 A1FC 0353 DF5F D368 41E9 E0EF" /* uC..¡ü.Sß_ÓhAéàï */
4668 $"C363 A78F 3FE9 41E9 5F77 19A4 A811 FF43" /* Ãc§?éAé_w.¤¨.ÿC */
4669 $"8EE8 3FBA 00FA 54F6 15F5 CF3B 39A6 0984" /* Žè?º.úTö.õÏ;9¦Æ„ */
4670 $"CC99 7AE1 8E5B 71A9 1575 DB95 F166 D52F" /* Ì™záŽ[q©.uÛ•ñfÕ/ */
4671 $"A270 08D4 9515 3B89 2EA1 A097 12A3 B4E9" /* ¢p.Ô•.;‰.¡ —.£´é */
4672 $"5BFB AE47 8FD7 60F0 33DA E91B 234B 5D2F" /* [û®G×`ð3Úé.#K]/ */
4673 $"7C4B 00C2 60F1 7260 B78A 1835 B440 611B" /* |K.Â`ñr`·Š.5´@a. */
4674 $"042D F768 F9C9 8785 50AD 8421 77D4 B97A" /* .-÷hùɇ…P­„!wÔ¹z */
4675 $"6B02 828C E758 8B31 1E92 DF7F BE67 3DAB" /* k.‚ŒçX‹1.’ß.¾g=« */
4676 $"E5F8 F1FB FD8C 34F4 4B2F 98BF 24A9 4DF2" /* åøñûýŒ4ôK/˜¿$©Mò */
4677 $"32A9 A661 B01E F960 12E1 9C18 F197 CEA7" /* 2©¦a°.ù`.áœ.ñ—Χ */
4678 $"E1C4 4AB4 7CEB 2CE2 33F3 C23C F3FD 2CF9" /* áÄJ´|ë,â3óÂ<óý,ù */
4679 $"F132 8395 3D39 FD9D 983D 4454 9758 856B" /* ñ2ƒ•=9ý˜=DT—X…k */
4680 $"6556 B234 72B0 C2CA 71CA 9CEB 7AE4 FD7C" /* eV²4r°ÂÊqÊœëzäý| */
4681 $"0E3F 1930 6B17 7074 C216 3D9C 24BF 5B97" /* .?.0k.ptÂ.=œ$¿[— */
4682 $"A7EA 25F0 9DCC AFA5 BBEF 47E9 D7E6 7B0E" /* §ê%ð̯¥»ïGé×æ{. */
4683 $"E02F 87A2 EF87 68FC 9BF7 F274 5F00 FC3D" /* à/‡¢ï‡hü›÷òt_.ü= */
4684 $"A5F8 7AC7 F0FA A5F8 7D42 C03F 0F42 FE1D" /* ¥øzÇðú¥ø}BÀ?.Bþ. */
4685 $"ABF0 F7CF E1EE 40ED 1CBC E67A C7C3 33E9" /* «ð÷Ïáî@í.¼æzÇÃ3é */
4686 $"75CE 6202 697A FF68 B299 C0A6 2F39 4F64" /* uÎb.izÿh²™À¦/9Od */
4687 $"6775 1459 6387 68C9 941E E328 B150 8D7C" /* gu.Yc‡hÉ”.ã(±P| */
4688 $"24C4 D953 4443 9A50 E4CC 4E41 B3A9 F28A" /* $ÄÙSDCšPäÌNA³©òŠ */
4689 $"BB0E 943C 0DAB C98A 023C 332B AE2D AF60" /* ».”<.«ÉŠ.<3+®-¯` */
4690 $"4D30 BA77 9D1A 93DC CEBB 7560 EA33 084C" /* M0ºw.“Üλu`ê3.L */
4691 $"BCFD 2F47 685E 4CC9 8A76 F1C8 04AB 126F" /* ¼ý/Gh^LÉŠvñÈ.«.o */
4692 $"B9FD 4A34 E181 4147 9F56 2AB4 EB2C 50EF" /* ¹ýJ4áAGŸV*´ë,Pï */
4693 $"D652 4543 763B B857 210B 2B4A BB50 0EAE" /* ÖRECv;¸W!.+J»P.® */
4694 $"90BD EEEC F92B DD18 0881 9B3A C6DF A028" /* ½îìù+Ý..›:Æß ( */
4695 $"45EB 36D7 50B4 D756 FB49 9F08 D74D 037B" /* Eë6×P´×VûIŸ.×M.{ */
4696 $"83A1 001C 0977 1DCC 81D0 B6B9 828A 6851" /* ƒ¡..Æw.Ìж¹‚ŠhQ */
4697 $"3CAC B3FF 572B 543A 4C73 3F35 0561 EC81" /* <¬³ÿW+T:Ls?5.aì */
4698 $"A8D4 82BC 9148 5E30 FF3E 3164 C43E 5461" /* ¨Ô‚¼‘H^0ÿ>1dÄ>Ta */
4699 $"4BD0 139E 6390 0E05 4793 56B8 5080 CBF6" /* KÐ.žc..G“V¸P€Ëö */
4700 $"9E70 BEA1 FB26 DD1E AEE1 E78D 0D32 FA02" /* žp¾¡û&Ý.®áç.2ú. */
4701 $"43FC FBC6 7464 2C9A 14AD 2C7C 0969 995F" /* CüûÆtd,š.­,|Æi™_ */
4702 $"6363 3037 9C34 C5F8 42DF B339 D2B0 5C45" /* cc07œ4ÅøBß³9Ò°\E */
4703 $"6130 509D 28E7 D3A7 9308 74ED 9265 B7F9" /* a0P(çÓ§“.tí’e·ù */
4704 $"0F54 D265 33D9 EB57 07C4 852B E3C8 771F" /* .TÒe3ÙëW.Ä…+ãÈw. */
4705 $"21F8 ADA3 D807 625C 513A E395 604B 0D6A" /* !ø­£Ø.b\Q:ã•`K.j */
4706 $"A9FC 297E 63AF 7622 23B6 63E1 EF25 F572" /* ©ü)~c¯v"#¶cáï%õr */
4707 $"01B0 400D 18C6 C9FA 6AF5 3E26 4199 6E68" /* .°@..ÆÉújõ>&A™nh */
4708 $"99B5 B3A9 F861 3419 C6C7 B65C D0F6 353B" /* ™µ³©øa4.ÆǶ\Ðö5; */
4709 $"6551 1B0A 9D82 1F07 4185 8C46 5867 DC22" /* eQ.‚..A…ŒFXgÜ" */
4710 $"BD38 AFF7 27BA 1114 9266 5EF4 1EA9 89B4" /* ½8¯÷'º..’f^ô.©‰´ */
4711 $"A634 E917 65E5 502E 8028 D24E 725F 0C22" /* ¦4é.eåP.€(ÒNr_." */
4712 $"1513 7B38 5FEA 3150 520B 6D8A 03D8 F796" /* ..{8_ê1PR.mŠ.Ø÷– */
4713 $"D183 D8FA 82E2 C147 B662 593B 9FC8 A2A0" /* уØú‚âÁG¶bY;ŸÈ¢  */
4714 $"C63B D151 D905 072C 02E5 919B 0BE9 6D76" /* Æ;ÑQÙ..,.å‘›.émv */
4715 $"4BEF 7D51 FF67 C2F2 BB61 DDD2 7981 0B7E" /* Kï}QÿgÂò»aÝÒy.~ */
4716 $"D406 3679 DFA4 FAE3 A33C 28AC 06C6 93C1" /* Ô.6yߤúã£<(¬.Æ“Á */
4717 $"B82F 53DB 1EB8 A6F3 5A24 A44A 1A76 9204" /* ¸/SÛ.¸¦óZ$¤J.v’. */
4718 $"6543 FC80 18DA 3C5D 395B 01DC D7E8 C21E" /* eCü€.Ú<]9[.Ü×èÂ. */
4719 $"A66C 9AE3 08D6 DBFC EE95 9E73 F71D 7CCA" /* ¦lšã.ÖÛüî•žs÷.|Ê */
4720 $"2A6A F6D2 11D9 AC28 BEDE 8E1B 65EF A995" /* *jöÒ.Ù¬(¾ÞŽ.eï©• */
4721 $"F7B5 B19D 5F63 F42B D0AD D69A BD47 1EED" /* ÷µ±_cô+Э֚½G.í */
4722 $"2E5C 0276 3AEA F6D9 6E3F 314C 7F5F 52C3" /* .\.v:êöÙn?1L._RÃ */
4723 $"093D C8A9 23E4 C154 5587 294A 98A9 0643" /* Æ=È©#äÁTU‡)J˜©.C */
4724 $"AF18 0D20 51A4 6FE1 F326 11E7 5A91 2919" /* ¯.. Q¤oáó&.çZ‘). */
4725 $"DD53 B13B 2CB3 DE77 FAB9 420E BAFB 305B" /* ÝS±;,³Þwú¹B.ºû0[ */
4726 $"E9AB 7A2B 623B 78FE 346D 8BB6 BA40 AE40" /* é«z+b;xþ4m‹¶º@®@ */
4727 $"5B6D 6D53 81A1 076D 7058 E792 E410 3FA7" /* [mmS¡.mpXç’ä.?§ */
4728 $"AD06 7E2E 5158 D129 9233 6E1D 6B7C C701" /* ­.~.QXÑ)’3n.k|Ç. */
4729 $"D61D 42D8 472F D5E2 2710 0B6C 828A 2352" /* Ö.BØG/Õâ'..l‚Š#R */
4730 $"D400 65FA E227 A938 1832 18CC 2BCE 19A8" /* Ô.eúâ'©8.2.Ì+Î.¨ */
4731 $"773C 3CB1 C6BD D722 8EE1 8AE2 4D4B 97D4" /* w<<±Æ½×"ŽáŠâMK—Ô */
4732 $"1763 37E4 2F93 8578 534E 0BA9 B493 3B80" /* .c7ä/“…xSN.©´“;€ */
4733 $"F018 28BE 2A52 15B2 8499 08A8 005F F028" /* ð.(¾*R.²„™.¨._ð( */
4734 $"ADFD ACEB 238F 922A 75E4 1C65 F2C3 F14B" /* ­ý¬ë#’*uä.eòÃñK */
4735 $"213D 7263 4A9A 1C80 12BD 5895 0EC8 B955" /* !=rcJš.€.½X•.ȹU */
4736 $"8CD0 FB81 63CF FF7F B545 85DF E201 36A9" /* ŒÐûcÏÿ.µE…ßâ.6© */
4737 $"E524 1BD6 EDDA 7C33 8CD2 E114 BA93 51E0" /* å$.ÖíÚ|3ŒÒá.º“Qà */
4738 $"A113 A12A FBEA 8570 B5FE E1B6 7963 5B31" /* ¡.¡*ûê…pµþá¶yc[1 */
4739 $"512A 99B1 3A59 E50E C584 DD7F FF7F FF7E" /* Q*™±:Yå.Å„Ý.ÿ.ÿ~ */
4740 $"D3C9 019B 1FBC DB70 2C2A 14A6 E7F1 0147" /* ÓÉ.›.¼Ûp,*.¦çñ.G */
4741 $"5F3A A36C 6F8A 9038 ABD8 EB8F FF7F FE79" /* _:£loŠ8«Øëÿ.þy */
4742 $"6C12 2D6F FD6D F9A0 0392 0E82 0296 3C14" /* l.-oýmù .’.‚.–<. */
4743 $"FEFA 803C A3D4 1049 CF30 E22F 6542 7ABF" /* þú€<£Ô.IÏ0â/eBz¿ */
4744 $"378E 66B2 9091 D396 B953 DCF5 66D3 C5B5" /* 7Žf²‘Ó–¹SÜõfÓŵ */
4745 $"7719 028C 5C0F F898 00A1 0C1D E181 F9C7" /* w..Œ\.ø˜.¡..áùÇ */
4746 $"2E46 06D4 D623 1256 EFAE 89E3 4FFF 7FDD" /* .F.ÔÖ#.VﮉãOÿ.Ý */
4747 $"F00D 4E11 65D5 B8F9 7C0B A045 AC4A 1E42" /* ð.N.eÕ¸ù|. E¬J.B */
4748 $"221C B512 5480 EF2D CB80 A089 3603 2CA1" /* ".µ.T€ï-Ë€ ‰6.,¡ */
4749 $"391C 7925 C817 92E3 8438 C438 08D1 0637" /* 9.y%È.’ã„8Ä8.Ñ.7 */
4750 $"9FCD F4C2 C04C 40BB A484 5043 0C1E 7C85" /* ŸÍôÂÀL@»¤„PC..|… */
4751 $"D7F6 1F6D BFC7 60AA 4D18 A399 9A13 CCD0" /* ×ö.m¿Ç`ªM.£™š.ÌÐ */
4752 $"26DA 3F97 24CB E902 0668 67F7 FE63 7A2E" /* &Ú?—$Ëé..hg÷þcz. */
4753 $"16D6 987F FF7F AFC1 5C35 E63D BA36 6227" /* .Ö˜.ÿ.¯Á\5æ=º6b' */
4754 $"FF7C FD39 8B8B 1A5F 6026 831B 0764 8805" /* ÿ|ý9‹‹._`&ƒ..dˆ. */
4755 $"E40B 0F19 7FFF 7FFC DEBC DD5B 9008 0000" /* ä....ÿ.üÞ¼Ý[... */
4756 $"0C24 1D44 4641 3BC8 4248 E229 62D2 088D" /* .$.DFA;ÈBHâ)bÒ. */
4757 $"117F DE8D 0B52 C3FD 1DD9 3823 F138 4C98" /* ..Þ.RÃý.Ù8#ñ8L˜ */
4758 $"58A8 2683 519C F914 4961 5226 891F F863" /* X¨&ƒQœù.IaR&‰.øc */
4759 $"3FF2 B19F 113D BFEF 9D12 30C6 66BD E2A6" /* ?ò±Ÿ.=¿ï.0Æf½â¦ */
4760 $"5D8C BE7E BE19 3D8F 03F2 5D26 FF7F FF7E" /* ]Œ¾~¾.=.ò]&ÿ.ÿ~ */
4761 $"A82B 5E03 E7A8 E8F1 8C4D B6F1 F0E2 FC36" /* ¨+^.ç¨èñŒM¶ñðâü6 */
4762 $"DE7A 2F55 38B1 B436 2E50 7D25 E3F0 82C8" /* Þz/U8±´6.P}%ãð‚È */
4763 $"580F 0D19 C280 415C 2A7F FCD9 C720 E649" /* X...€A\*.üÙÇ æI */
4764 $"4064 2624 04AC 0B71 41FD 3937 8359 4137" /* @d&$.¬.qAý97ƒYA7 */
4765 $"8CA9 B642 C318 BD37 82D3 B786 8217 3252" /* Œ©¶BÃ.½7‚Ó·†‚.2R */
4766 $"44EA 4598 57D2 2F66 957F 39FE D712 F449" /* DêE˜WÒ/f•.9þ×.ôI */
4767 $"213A BEBB B6CC F551 FF7F EB0A AE45 8497" /* !:¾»¶ÌõQÿ.ë®E„— */
4768 $"0F4C FD34 4090 01FE CFC8 51AA C32A 7D95" /* .Lý4@.þÏÈQªÃ*}• */
4769 $"D414 2609 E22F 1B7D E10E 97BB 05D1 9D04" /* Ô.&Æâ/.}á.—».Ñ. */
4770 $"0592 9271 0D39 AB59 F165 0D09 549C B4E3" /* .’’q.9«Yñe.ÆTœ´ã */
4771 $"AEE5 555F 00A3 5E0A E4D3 BAFE 1EC6 2FCE" /* ®åU_.£^ÂäÓºþ.Æ/Î */
4772 $"FB04 C9BC 71D8 A42D 2F70 9FE1 EC17 C31D" /* û.ɼqؤ-/pŸáì.Ã. */
4773 $"ECB2 0A82 EFB1 914C F6D2 E54C 5316 B6C4" /* ì²Â‚ﱑLöÒåLS.¶Ä */
4774 $"4FFF 653B FD6E 27A6 9959 244B F458 B35C" /* Oÿe;ýn'¦™Y$KôX³\ */
4775 $"865C EB94 2CD7 7343 B74C C211 8A4D 2A99" /* †\ë”,×sC·LÂ.ŠM*™ */
4776 $"732E 3B43 CEAC C300 A520 924D 6F1F 8295" /* s.;CάÃ.¥ ’Mo.‚• */
4777 $"DF36 1FD4 E8F0 9221 6313 1B33 0C98 2721" /* ß6.Ôèð’!c..3.˜'! */
4778 $"8F55 5BA1 0E46 A755 1D7F A914 458D 9FFF" /* U[¡.F§U..©.EŸÿ */
4779 $"33CF 4CE3 AFC6 3383 BC4D A7E9 F546 FDCB" /* 3ÏLã¯Æ3ƒ¼M§éõFýË */
4780 $"8276 7778 2BBA EF7C 3677 6251 58C0 9EFF" /* ‚vwx+ºï|6wbQXÀžÿ */
4781 $"526C C883 6CFF 7FFF 7D4C 3F9F BD74 6BE9" /* Rlȃlÿ.ÿ}L?Ÿ½tké */
4782 $"B6EB 9003 823B 235D 6AD9 B382 FC45 F10C" /* ¶ë.‚;#]jÙ³‚üEñ. */
4783 $"8282 90ED 9D47 E949 FADC 7B04 1C1C 9EF1" /* ‚‚íGéIúÜ{...žñ */
4784 $"1ABB 270D 07BE 1943 4E14 70E0 48FF 81EE" /* .»'..¾.CN.pàHÿî */
4785 $"CE8A 5AAD 3CE9 090D 3126 F96A AEBA 5853" /* ΊZ­<éÆ.1&ùj®ºXS */
4786 $"D02E ADE8 4614 E2B7 2E7E 3DB6 DE6A 77A8" /* Ð.­èF.â·.~=¶Þjw¨ */
4787 $"48D0 2DBB BAF4 E94C 735D 27D6 87FF 7F80" /* HÐ-»ºôéLs]'Ö‡ÿ.€ */
4788 $"5BCC 3CA6 1168 D9E0 38B4 22B2 2154 02AA" /* [Ì<¦.hÙà8´"²!T.ª */
4789 $"A1FF 6D87 EB2B F3EB 3814 9F74 DEF3 4D86" /* ¡ÿm‡ë+óë8.ŸtÞóM† */
4790 $"ED68 7E75 9E81 1FD9 170B E013 7E4D 97B3" /* íh~už.Ù..à.~M—³ */
4791 $"51B0 6B2A 42AF EEB4 899B D2A2 6AC9 8EBF" /* Q°k*B¯î´‰›Ò¢jÉŽ¿ */
4792 $"2858 9FFC 5050 3364 8F2D 313E 94A9 5ED5" /* (XŸüPP3d-1>”©^Õ */
4793 $"6213 E9DD 6FF6 5813 72DA FE40 0F70 06C4" /* b.éÝoöX.rÚþ@.p.Ä */
4794 $"FF7D 053C 3E69 C976 DDFF 02D9 4688 D8D7" /* ÿ}.<>iÉvÝÿ.ÙFˆØ× */
4795 $"8DEF 5187 FCA3 40EE 3167 B6DD 7EE6 42AB" /* ïQ‡ü£@î1g¶Ý~æB« */
4796 $"B07A DB20 DC1D 7016 631F 8FB0 C83A 9CC2" /* °zÛ Ü.p.c.°È:œÂ */
4797 $"66B9 304B 74F5 03F7 217C D3E3 6000 ECE6" /* f¹0Ktõ.÷!|Óã`.ìæ */
4798 $"A319 FD9E 4131 7E74 59C6 FB3F 1B51 FE89" /* £.ýžA1~tYÆû?.Qþ‰ */
4799 $"52D3 C845 1BF0 4BFE 3BAE 4940 9830 8E9C" /* RÓÈE.ðKþ;®I@˜0Žœ */
4800 $"F843 F6A2 218E B2E2 8092 8E0E 3889 8137" /* øCö¢!Ž²â€’Ž.8‰7 */
4801 $"583C 394F CCE6 3D1B 37B8 C9A4 D805 B9E4" /* X<9OÌæ=.7¸É¤Ø.¹ä */
4802 $"A037 E45D 1167 9627 81E0 538C 1B6D EA0E" /*  7ä].g–'àSŒ.mê. */
4803 $"18CD 8E3C EE0C 5E0C B048 8DD2 C804 CA38" /* .ÍŽ<î.^.°HÒÈ.Ê8 */
4804 $"8678 CAA9 5EE1 8B6C E7D9 FDE1 5C14 D52A" /* †xÊ©^á‹lçÙýá\.Õ* */
4805 $"67F3 8A12 F698 857A 5692 1FB3 FF27 FE1B" /* góŠ.ö˜…zV’.³ÿ'þ. */
4806 $"7E31 5D25 B4A2 3647 FF07 064A 4D7B F160" /* ~1]%´¢6Gÿ..JM{ñ` */
4807 $"62D7 81CE 0940 AE5F CAEB F1A6 10C4 CB0E" /* b×ÎÆ@®_Êëñ¦.ÄË. */
4808 $"3D77 2C40 0146 8C72 B765 F6A9 3047 E748" /* =w,@.FŒr·eö©0GçH */
4809 $"0239 A725 8B4C 56F0 7E86 9A24 53D7 4832" /* .9§%‹LVð~†š$S×H2 */
4810 $"7924 73CB 4431 4977 0487 03FC F1B3 A21C" /* y$sËD1Iw.‡.üñ³¢. */
4811 $"2792 0B05 8183 8348 8EC0 2635 47D9 B51D" /* '’..ƒƒHŽÀ&5GÙµ. */
4812 $"CE40 1FA4 20C5 93A8 BEB4 B8CD 93D8 A79E" /* Î@.¤ Å“¨¾´¸Í“اž */
4813 $"62C5 846C 964D 0404 BE21 3AA5 9EC3 4450" /* bÅ„l–M..¾!:¥žÃDP */
4814 $"FAEE 938A A428 E4D0 7F1B 46A8 7AEC 97FB" /* úî“Š¤(äÐ..F¨zì—û */
4815 $"1AFF 71DA F26D B5B1 E6F2 66B4 865E 1F12" /* .ÿqÚòmµ±æòf´†^.. */
4816 $"CE0F 3A8A EDF1 6321 BC5A 22D5 D3D6 BE19" /* Î.:Šíñc!¼Z"ÕÓÖ¾. */
4817 $"671A 38C3 11E8 FC9D 93AC 895A 1B84 7C9B" /* g.8Ã.èü“¬‰Z.„|› */
4818 $"979F 5DC5 BBE6 19A8 5D03 BE83 6FA4 B8F2" /* —Ÿ]Å»æ.¨].¾ƒo¤¸ò */
4819 $"AFCD 8115 B21B C1D5 80B4 5E20 3B19 9E48" /* ¯Í.².ÁÕ€´^ ;.žH */
4820 $"29C0 68DA F799 EC0D 56B3 7049 5EC1 11CB" /* )ÀhÚ÷™ì.V³pI^Á.Ë */
4821 $"CBAF FA0A 5AF1 22F1 3A4C 6F13 635A C681" /* ˯úÂZñ"ñ:Lo.cZÆ */
4822 $"06DA 8B44 A35B CF31 9B6F 57E6 AEC2 8D59" /* .Ú‹D£[Ï1›oWæ®ÂY */
4823 $"1556 A43E A289 74DC C398 B209 31B9 8CD0" /* .V¤>¢‰tÜزÆ1¹ŒÐ */
4824 $"07BE D253 76AB 7D79 4F26 D099 7AE8 E52C" /* .¾ÒSv«}yO&Йzèå, */
4825 $"EA35 D7BB E968 CAA0 5F61 EAE5 E9A1 E903" /* ê5×»éhÊ _aêåé¡é. */
4826 $"100E ED2C 5A66 21E2 1426 BE74 7A19 8C98" /* ..í,Zf!â.&¾tz.Œ˜ */
4827 $"3D67 A4D2 370F C95D 7131 2D31 0971 6022" /* =g¤Ò7.É]q1-1Æq`" */
4828 $"F4F2 359E 1FBD D23A CD94 4467 205E F7B1" /* ôò5ž.½Ò:Í”Dg ^÷± */
4829 $"5D18 EE91 9078 176B ADC2 65EB EECF D1A8" /* ].î‘x.k­ÂeëîÏѨ */
4830 $"F1B3 B999 E7CC 3079 BD9C 82D8 DF6E 29E0" /* ñ³¹™çÌ0y½œ‚Øßn)à */
4831 $"9502 EC8D 5C13 629B 109E A7C0 F438 6674" /* •.ì\.b›.ž§Àô8ft */
4832 $"C48B E75A 7CAC 28AE 3E9C 0ECF 9ADF F7BF" /* Ä‹çZ|¬(®>œ.Ïšß÷¿ */
4833 $"C51A E20D 64F1 B1DD C986 0C6F 6BFF 5102" /* Å.â.dñ±ÝɆ.okÿQ. */
4834 $"B233 B826 EBC9 35E2 9799 0A0F E81D 0816" /* ²3¸&ëÉ5â—™Â.è... */
4835 $"E01C B1A8 E4D9 1CCF 7F2E 4DB3 371B 83C0" /* à.±¨äÙ.Ï..M³7.ƒÀ */
4836 $"9DFD A603 83D6 4412 7DCF 2E2F 85D8 8259" /* ý¦.ƒÖD.}Ï./…Ø‚Y */
4837 $"DC97 798F 2E8A 09F5 C1A7 1E56 55F3 BFD0" /* Ü—y.ŠÆõÁ§.VUó¿Ð */
4838 $"34CE 311A 98BE C87C 8CCE 6EDF C85C A788" /* 4Î1.˜¾È|ŒÎnßÈ\§ˆ */
4839 $"AA7E 47D5 72AF 1842 5C5F 9D6A C586 CA4C" /* ª~GÕr¯.B\_jņÊL */
4840 $"34D3 6315 D6CA 0D6D 5B75 6C85 551B E270" /* 4Óc.ÖÊ.m[ul…U.âp */
4841 $"E9DD 6127 C363 1F5A 0AA4 8F55 114F 9ED3" /* éÝa'Ãc.Z¤U.OžÓ */
4842 $"034E A968 1BF1 513A 2F0D 3E61 612A 15E6" /* .N©h.ñQ:/.>aa*.æ */
4843 $"B89F 1877 F38E 8C96 20C3 1952 A559 62AE" /* ¸Ÿ.w󎌖 Ã.R¥Yb® */
4844 $"20E0 BE7D BF7C FAA3 F56C FF75 6D5E 07E7" /* à¾}¿|ú£õlÿum^.ç */
4845 $"EB87 E7E9 BFE7 EE37 E7EE B60B E7DA F7CF" /* ë‡çé¿çî7çî¶.çÚ÷Ï */
4846 $"A6FF 2B5C 2F9F AC00 ED1C BCF0 084D B6D5" /* ¦ÿ+\/Ÿ¬.í.¼ð.M¶Õ */
4847 $"A3F8 3A1B 179B 5659 AE02 A536 8D65 B1A0" /* £ø:..›VY®.¥6e±  */
4848 $"F806 81C6 9453 B9E5 1E84 EF36 3D8C 9922" /* ø.Æ”S¹å.„ï6=Œ™" */
4849 $"A841 EBC7 584D 175D A8CF 5AE5 52F4 364A" /* ¨AëÇXM.]¨ÏZåRô6J */
4850 $"CACB F4FA 59D1 6C18 1FE0 5F96 0F70 465A" /* ÊËôúYÑl..à_–.pFZ */
4851 $"7CFD 0C37 59FF 6248 10C6 4872 8573 D54E" /* |ý.7YÿbH.ÆHr…sÕN */
4852 $"7839 337E D900 4336 CF58 B59C BCC4 602F" /* x93~Ù.C6ÏXµœ¼Ä`/ */
4853 $"EA1A 205F CD8D 635B AE0D 5750 3316 72C7" /* ê. _Íc[®.WP3.rÇ */
4854 $"A765 C2F2 CF8C 52FB 1892 F55E B7A5 6D85" /* §eÂòÏŒRû.’õ^·¥m… */
4855 $"5782 FAB6 FBB5 CDF3 2DC2 0256 2927 4F4F" /* W‚ú¶ûµÍó-Â.V)'OO */
4856 $"1F92 5F99 B540 87DD 7A80 991B 0677 AB00" /* .’_™µ@‡Ýz€™..w«. */
4857 $"2D82 C5F6 11F7 F21B 2652 B798 75D5 42A6" /* -‚Åö.÷ò.&R·˜uÕB¦ */
4858 $"7757 E0E7 3C3F DBA5 6106 9F44 1800 E044" /* wWàç<?Û¥a.ŸD..àD */
4859 $"5844 8C9D 83C0 C5D3 6B95 CE2A 3EBC D7FD" /* XDŒƒÀÅÓk•Î*>¼×ý */
4860 $"B79B E645 6FD3 A5EE ECE2 C9A7 53C7 B2E3" /* ·›æEoÓ¥îìâɧSDzã */
4861 $"C659 D5C5 0FBD 7C88 93C3 D3D9 D81F 0AEB" /* ÆYÕÅ.½|ˆ“ÃÓÙØ.Âë */
4862 $"5784 8BF9 DAD7 993D 0C8B 9873 08A4 254B" /* W„‹ùÚ×™=.‹˜s.¤%K */
4863 $"2452 F95D 29CA 8B3E D48D 18FB C813 4ECB" /* $Rù])Ê‹>Ô.ûÈ.NË */
4864 $"D118 E3FA 926C 7A5F E5CC F774 D1DB B5C1" /* Ñ.ãú’lz_åÌ÷tÑÛµÁ */
4865 $"579A 2647 619A 67A0 423D 6C64 B3A6 9357" /* Wš&Gašg B=ld³¦“W */
4866 $"B8C6 8FBE A3AC E380 E548 5ED3 D83D 7DB9" /* ¸Æ¾£¬ã€åH^ÓØ=}¹ */
4867 $"93E8 9071 F6E0 168F 6BEC F674 6D08 F4DA" /* “èqöà.kìötm.ôÚ */
4868 $"C1F7 11FD DEF8 2420 30DA 71E2 C605 81EB" /* Á÷.ýÞø$ 0ÚqâÆ.ë */
4869 $"565B D461 AF6E 3127 34AC BA64 C660 14E1" /* V[Ôa¯n1'4¬ºdÆ`.á */
4870 $"F6AB DA92 386B 3E7B BD42 90E9 ABA2 6EE7" /* ö«Ú’8k>{½Bé«¢nç */
4871 $"8D0D 373C D280 46EC 6746 310C EA41 862B" /* .7<Ò€FìgF1.êA†+ */
4872 $"6D1B 7BE9 93AF 17F6 1D3A E7AB CA55 8A4B" /* m.{铯.ö.:ç«ÊUŠK */
4873 $"E867 6EF3 29DF FF5F B839 75E1 FA04 DD81" /* ègnó)ßÿ_¸9uáú.Ý */
4874 $"B6C9 DA44 D268 3B1A FF63 60F5 37A5 DDCB" /* ¶ÉÚDÒh;.ÿc`õ7¥ÝË */
4875 $"1AB3 5275 7692 7F15 F8E8 6A96 CEB4 D9E5" /* .³Ruv’..øèj–δÙå */
4876 $"3E5A 0E16 B1D0 B056 D0D2 0360 0900 5773" /* >Z..±Ð°VÐÒ.`Æ.Ws */
4877 $"BB3F C215 FD55 C9BF E3FC 48A1 CFAB BD39" /* »?Â.ýUÉ¿ãüH¡Ï«½9 */
4878 $"CD3D 906E 21CB C3DD E4D3 548C 4731 E777" /* Í=n!ËÃÝäÓTŒG1çw */
4879 $"EE15 C0DE CEBC 0F2F 85A6 9822 F1FF 7B2F" /* î.ÀÞμ./…¦˜"ñÿ{/ */
4880 $"2530 48C7 0C39 3659 CD03 06C5 7C8E 3D49" /* %0HÇ.96YÍ..Å|Ž=I */
4881 $"FED5 7B72 4652 772C 39C7 8F1B 63E8 2DC1" /* þÕ{rFRw,9Ç.cè-Á */
4882 $"1242 CA35 E396 6103 15DF D939 0597 B8D4" /* .BÊ5ã–a..ßÙ9.—¸Ô */
4883 $"8858 ACE3 3C32 6EE5 69A3 8512 3447 2B3B" /* ˆX¬ã<2nåi£….4G+; */
4884 $"0647 8C1F 2D31 4E57 0D03 BE26 5235 5275" /* .GŒ.-1NW..¾&R5Ru */
4885 $"74E8 B8F6 CF32 E077 8C51 41DB ED67 EE30" /* tè¸öÏ2àwŒQAÛígî0 */
4886 $"AD97 7956 D279 B0A8 768D 00E3 F604 A240" /* ­—yVÒy°¨v.ãö.¢@ */
4887 $"9656 5BCD B309 D0CD 3ECE C477 31EC F88D" /* –V[ͳÆÐÍ>ÎÄw1ìø */
4888 $"782F 8B9E 37FA A741 C636 7B55 D047 64A4" /* x/‹ž7ú§AÆ6{UÐGd¤ */
4889 $"E2EC C69D F609 F38F 821E 8D20 8709 87FF" /* âìÆöÆó‚. ‡Æ‡ÿ */
4890 $"3C3A B1ED C420 1F0B 52E3 8999 C684 30F3" /* <:±íÄ ..R㉙Ƅ0ó */
4891 $"C4ED 7FA9 3A2C D0E7 AE48 1AC2 7196 9347" /* Äí.©:,Ðç®H.Âq–“G */
4892 $"6BC9 BEE1 4112 4209 93CA 307A 7FF7 8B12" /* kɾáA.BÆ“Ê0z.÷‹. */
4893 $"EE76 8890 A529 33CC F435 A84F 9414 A719" /* îvˆ¥)3Ìô5¨O”.§. */
4894 $"BFB2 6305 201F 372D 567F 30DF 2E47 D0B9" /* ¿²c. .7-V.0ß.Gй */
4895 $"C68F 5126 7EAA D95A 12D0 DA8A 8CF4 8A2A" /* ÆQ&~ªÙZ.ÐÚŠŒôŠ* */
4896 $"CBAE 0509 B614 A9E1 2CA2 D0E0 F017 E395" /* Ë®.ƶ.©á,¢Ðàð.ã• */
4897 $"AF82 85B5 4509 E75C 8E4D 5465 7DF2 CF39" /* ¯‚…µEÆç\ŽMTe}òÏ9 */
4898 $"ACFB DD5B C683 62C0 0B1C B7B9 EAEC 049C" /* ¬ûÝ[ƃbÀ..·¹êì.œ */
4899 $"8045 0178 6757 E317 872D ABC2 B077 6EF6" /* €E.xgWã.‡-«Â°wnö */
4900 $"3612 4132 3DD7 D39B B49A 04A8 207D 6135" /* 6.A2=×Ó›´š.¨ }a5 */
4901 $"C64F 3A0F 5028 7B6B 953E 8F19 920A 718F" /* ÆO:.P({k•>.’Âq */
4902 $"08E9 A079 EC51 A08F 4A77 5130 C807 9BC2" /* .é yìQ JwQ0È.›Â */
4903 $"B37B 4C7B 9BAA 40F3 4E94 BE51 C027 32B5" /* ³{L{›ª@óN”¾QÀ'2µ */
4904 $"751F 4793 7271 226E 82F3 CF14 8BC3 F927" /* u.G“rq"n‚óÏ.‹Ãù' */
4905 $"4C81 7F29 AB70 8B3B E948 86D6 569F FEC2" /* L.)«p‹;éH†ÖVŸþÂ */
4906 $"BF6C 92F9 1011 3BE3 9E91 6458 1634 34A3" /* ¿l’ù..;ãž‘dX.44£ */
4907 $"3042 520F 5D64 6429 32CE 04FD 1B98 0698" /* 0BR.]dd)2Î.ý.˜.˜ */
4908 $"3A36 655C 86C7 C272 4B02 E259 0537 4DB8" /* :6e\†ÇÂrK.âY.7M¸ */
4909 $"C6C2 6980 ECFB 0FC1 C6D9 0A2C D00F 282A" /* ÆÂi€ìû.ÁÆÙÂ,Ð.(* */
4910 $"7A0B D91F 08CA 762C A629 048E 9BCC CFD2" /* z.Ù..Êv,¦).Ž›ÌÏÒ */
4911 $"1EBC 8F60 2F64 F24D F1FB 81C6 8AEC CFDB" /* .¼`/dòMñûÆŠìÏÛ */
4912 $"623A 01A9 35D2 B5E1 B80A 2D32 084E 3857" /* b:.©5Òµá¸Â-2.N8W */
4913 $"C025 BCDA 4728 F3AD 35AD 9AAA E054 21B7" /* À%¼ÚG(ó­5­šªàT!· */
4914 $"A47E 62C5 9921 02C0 09E3 440D 063A 3789" /* ¤~bÅ™!.ÀÆãD..:7‰ */
4915 $"5072 E54A 4654 E148 AC2E 4A99 C6A5 3923" /* PråJFTáH¬.J™Æ¥9# */
4916 $"49B5 6906 6531 FD5E 7CCE 1C4B EEDE 7482" /* Iµi.e1ý^|Î.KîÞt‚ */
4917 $"9E3F 73AE C777 0214 C921 3131 C5CB 9F61" /* ž?s®Çw..É!11ÅËŸa */
4918 $"64A4 4E70 57C2 5C04 E25B 266E 6887 7477" /* d¤NpWÂ\.â[&nh‡tw */
4919 $"FCCB 1F0C 89F2 6CF6 713E 4D08 8AC8 9B0C" /* üË..‰òlöq>M.ŠÈ›. */
4920 $"00AC D9D7 A28A C219 B52B B46A D704 F919" /* .¬Ù×¢ŠÂ.µ+´j×.ù. */
4921 $"2050 6CCA 215A 299B 9129 9739 DA6F 3A67" /* PlÊ!Z)›‘)—9Úo:g */
4922 $"FE12 2BF1 4F8B 26ED D21F F727 5B59 22F3" /* þ.+ñO‹&íÒ.÷'[Y"ó */
4923 $"2E05 F4A0 9754 F431 9AED 1B65 038C CD7F" /* ..ô —Tô1ší.e.ŒÍ. */
4924 $"8254 E3AE 035C 18D7 0E28 6300 0DF0 998D" /* ‚Tã®.\.×.(c..ð™ */
4925 $"0191 85AF C71B B3CF F0D6 3A8F B1AA 5E99" /* .‘…¯Ç.³ÏðÖ:±ª^™ */
4926 $"BAB8 7C7F 0214 F864 4744 E747 7248 3C94" /* º¸|...ødGDçGrH<” */
4927 $"3AC8 CE04 1019 11ED 4BCC 76E9 FE4E 5728" /* :ÈÎ....íKÌvéþNW( */
4928 $"5BB0 986C D763 A3C7 AF8A 14E9 D24A AD17" /* [°˜l×c£Ç¯Š.éÒJ­. */
4929 $"FF66 611F B77C 0830 9093 A560 06FA E9CF" /* ÿfa.·|.0“¥`.úéÏ */
4930 $"054B 5846 1681 5DBF 34F9 49A9 45E0 8F20" /* .KXF.]¿4ùI©Eà */
4931 $"7FFD 6264 2193 031D A60F A111 B0B7 CFEE" /* .ýbd!“..¦.¡.°·Ïî */
4932 $"DE49 EC80 C0F1 D7F6 A495 900B 4126 40BE" /* ÞIì€Àñ×ö¤•.A&@¾ */
4933 $"185B DFFE C7B0 12AC C143 AA85 70E5 81EF" /* .[ßþÇ°.¬ÁCª…påï */
4934 $"79CE 1662 08E4 203F 1706 40FB CC39 CA8F" /* yÎ.b.ä ?..@ûÌ9Ê */
4935 $"8002 1CFA 3BCC 6B79 5C83 A4D2 7147 E38F" /* €..ú;Ìky\ƒ¤ÒqGã */
4936 $"C93B F2E8 6A15 6D30 C314 E898 81E3 FF7B" /* É;òèj.m0Ã.è˜ãÿ{ */
4937 $"5FC5 EE13 0449 1985 2CBC 73C7 C569 DCB1" /* _Åî..I.…,¼sÇÅiܱ */
4938 $"8024 F7CA CC7A FE3B CC15 4BCE 5B92 1BBB" /* €$÷ÊÌzþ;Ì.KÎ[’.» */
4939 $"0048 F291 579F FD20 F11A 1934 CC11 9C3F" /* .Hò‘WŸý ñ..4Ì.œ? */
4940 $"CE49 027A 9763 9E57 A2FF 7FFD 53E4 E50B" /* ÎI.z—cžW¢ÿ.ýSäå. */
4941 $"C747 02FF 7869 0537 1482 221E 0220 79D5" /* ÇG.ÿxi.7.‚".. yÕ */
4942 $"45B1 2E48 6A6C 8486 571F E1F1 BF39 0797" /* E±.Hjl„†W.áñ¿9.— */
4943 $"5D21 6964 EA9B 13F1 E6B7 C4B5 A2B7 E2BD" /* ]!idê›.ñæ·Äµ¢·â½ */
4944 $"09C2 B200 0000 0000 003E A392 6527 69B6" /* Ʋ......>£’e'i¶ */
4945 $"B189 8365 F55D 7A2B 0398 4196 BB60 D4F0" /* ±‰ƒeõ]z+.˜A–»`Ôð */
4946 $"06B6 100C 5B60 D76F 8FEE EFFB D525 0E2B" /* .¶..[`×oîïûÕ%.+ */
4947 $"3535 B765 22E7 F77C CF5C 8907 7626 62C0" /* 55·e"ç÷|Ï\‰.v&bÀ */
4948 $"3B04 A170 EEA6 A399 F26B CD7E 92BC 9E13" /* ;.¡p™òkÍ~’¼ž. */
4949 $"9D2D 6907 B06F 6B9A 957D 3C57 DC9F 06E6" /* -i.°okš•}<WÜŸ.æ */
4950 $"C3B6 16AD C91B E868 E000 1848 3BE4 5C3A" /* ö.­É.èhà..H;ä\: */
4951 $"1162 2272 401F 600B A973 281E 62B3 2654" /* .b"r@.`.©s(.b³&T */
4952 $"74B0 287C C53E A3DA 2A14 E38F 9FFE 3A8E" /* t°(|Å>£Ú*.ãŸþ:Ž */
4953 $"0D69 7E9D 5B07 1396 ED52 69BC 3971 5630" /* .i~[..–íRi¼9qV0 */
4954 $"7C63 8DA9 7A40 F364 CC6A FCAC DC7C 59DC" /* |c©z@ódÌjü¬Ü|YÜ */
4955 $"278A 92E3 6FBF F936 7157 2583 232E E558" /* 'Š’ão¿ù6qW%ƒ#.åX */
4956 $"0000 C241 6B90 4DCB 6421 F85A B681 4812" /* ..ÂAkMËd!øZ¶H. */
4957 $"9165 5C06 0195 F213 DB9F 5E2F 4BDE A075" /* ‘e\..•ò.ÛŸ^/KÞ u */
4958 $"BD9A 741B 971B 3411 1F73 7FF8 D719 BA55" /* ½št.—.4..s.ø×.ºU */
4959 $"8048 404F FEEA FC74 AEB1 84FD 03F9 5D43" /* €H@Oþêüt®±„ý.ù]C */
4960 $"BE42 E61F FF7F F4CA BA56 9654 B757 FF60" /* ¾Bæ.ÿ.ôʺV–T·Wÿ` */
4961 $"CA39 3290 054C E785 0EA7 F04D AF3E B342" /* Ê92.Lç….§ðM¯>³B */
4962 $"A80A 815D 3954 73F2 871A 51FF 7488 20CD" /* ¨Â]9Tsò‡.Qÿtˆ Í */
4963 $"90F3 23B8 80FE C6BF 726C 5426 83F2 5400" /* ó#¸€þÆ¿rlT&ƒòT. */
4964 $"0000 0000 0000 0000 BFA5 D802 777C F954" /* ........¿¥Ø.w|ùT */
4965 $"286B A586 76CF 26CE 72CA 6FE7 BD43 DB36" /* (k¥†vÏ&ÎrÊoç½CÛ6 */
4966 $"A826 870E 2EEF E2C4 2E22 E63C FF7F AF51" /* ¨&‡..ïâÄ."æ<ÿ.¯Q */
4967 $"40C1 B727 22F3 9ACC 894D 0C49 EC7A D998" /* @Á·'"óšÌ‰M.IìzÙ˜ */
4968 $"64A9 DD22 2545 B85C D621 0609 B73A 9D9F" /* d©Ý"%E¸\Ö!.Æ·:Ÿ */
4969 $"FF7F FF7F C0F7 00E1 B069 1D76 3BA1 E98C" /* ÿ.ÿ.À÷.á°i.v;¡éŒ */
4970 $"5F1B 1E11 B6F6 EB6D 6316 9DBC D1B2 DC90" /* _...¶öëmc.¼Ñ²Ü */
4971 $"5E1D 5EE0 3C65 57D0 B69C 3782 D1BE 3A77" /* ^.^à<eWжœ7‚Ѿ:w */
4972 $"436E 462B 45B7 FF61 4FA4 A45B 8C34 39D8" /* CnF+E·ÿaO¤¤[Œ49Ø */
4973 $"1B35 B876 A5F1 F2AD 3F78 D289 1C2E E3B4" /* .5¸v¥ñò­?xÒ‰..ã´ */
4974 $"A28B 64FA 1E2C 0CCD 0B1C AD42 8866 DDD6" /* ¢‹dú.,.Í..­BˆfÝÖ */
4975 $"62F0 225B 8DF7 32B3 FC3C 79E9 000B 1CA9" /* bð"[÷2³ü<yé...© */
4976 $"2C82 4874 34AB B158 47CD FA9F EBC8 0923" /* ,‚Ht4«±XGÍúŸëÈÆ# */
4977 $"B291 7229 8C3F E7FD 193C 330B A3B4 6969" /* ²‘r)Œ?çý.<3.£´ii */
4978 $"FCF6 E1BA 4C4A E64C B1BC 5BAF F402 C828" /* üöáºLJæL±¼[¯ô.È( */
4979 $"3A51 CC67 A851 E207 5A7C 3733 1031 FD5C" /* :QÌg¨Qâ.Z|73.1ý\ */
4980 $"E4D3 B69F FF67 2C6D 3FC7 D5B4 E63F 55B9" /* äÓ¶Ÿÿg,m?ÇÕ´æ?U¹ */
4981 $"FD5F 3DB1 4589 6ADF 54F0 F42A 498F 61C8" /* ý_=±E‰jßTðô*IaÈ */
4982 $"4872 5CD7 F70D 9C80 8880 EB9A 1FE7 C715" /* Hr\×÷.œ€ˆ€ëš.çÇ. */
4983 $"E57A 280F 96CF 014C 0411 EF44 C4F2 C64F" /* åz(.–Ï.L..ïDÄòÆO */
4984 $"F91B A9D6 EB9E F615 096F E5C0 5B30 BB79" /* ù.©Öëžö.ÆoåÀ[0»y */
4985 $"D645 BF4F B70A 2C40 3D24 A4C4 5A01 F3DB" /* ÖE¿O·Â,@=$¤ÄZ.óÛ */
4986 $"8879 D458 F558 4C8E 3C87 E83C 9C30 F0C3" /* ˆyÔXõXLŽ<‡è<œ0ðà */
4987 $"F7EB BE6A 2B3B B9CB 4F2E 3B49 CA98 6025" /* ÷ë¾j+;¹ËO.;Iʘ`% */
4988 $"D6C7 6B39 ED18 A784 5410 F9CD 4FB5 9E32" /* ÖÇk9í.§„T.ùÍOµž2 */
4989 $"EABF F72F 6ECC 217F E295 4BDA F0C8 2678" /* ê¿÷/nÌ!.â•KÚðÈ&x */
4990 $"B0F7 3381 2299 1033 5300 BB1C E72F 1EE0" /* °÷3"™.3S.».ç/.à */
4991 $"75D6 68D0 8C87 A574 580B 4AD8 7BC8 E1C4" /* uÖhÐŒ‡¥tX.JØ{ÈáÄ */
4992 $"64D3 76AA A080 1E28 FD04 890B B9A1 7E5C" /* dÓvª €.(ý.‰.¹¡~\ */
4993 $"79E2 31B9 1C3E DBAE 8BC6 DB23 53A4 0F06" /* yâ1¹.>Û®‹ÆÛ#S¤.. */
4994 $"74AA 7920 6233 E3BF B281 AFAA 957D FDFB" /* tªy b3㿲¯ª•}ýû */
4995 $"216A 3ECE 3139 37DF 8885 620B 5D55 D0FD" /* !j>Î197߈…b.]UÐý */
4996 $"F796 6A70 CEFD 33D8 B369 178E 99C0 9FFF" /* ÷–jpÎý3سi.Ž™ÀŸÿ */
4997 $"7FD2 27D4 D615 4840 B836 A0B5 1D6F 2A5A" /* .Ò'ÔÖ.H@¸6 µ.o*Z */
4998 $"1338 2369 83A0 D409 0FA7 77EF 19B9 21E6" /* .8#iƒ ÔÆ.§wï.¹!æ */
4999 $"3E21 0CB0 D4D3 362A EA6F 6340 8D73 27FB" /* >!.°ÔÓ6*êoc@s'û */
5000 $"C3EF 7823 33DF 7A8C 5C69 20C4 5816 72E4" /* Ãïx#3ßzŒ\i ÄX.rä */
5001 $"712C 3345 6755 76F3 FEAF 494B D0B4 3C8F" /* q,3EgUvóþ¯IKд< */
5002 $"B83F A050 C3E9 4CA2 6A6E 7AD0 D7FF 5860" /* ¸? PÃéL¢jnzÐ×ÿX` */
5003 $"548E 54E7 C3B9 6DDF 462C 54BE 5EF9 1A41" /* TŽTçùmßF,T¾^ù.A */
5004 $"6A46 A4FB 1C36 1CA4 77EC 2899 F147 3422" /* jF¤û.6.¤wì(™ñG4" */
5005 $"843C 7FAE 123E 6894 9B7F 3125 EB0F 3129" /* „<.®.>h”›.1%ë.1) */
5006 $"9DC1 8469 CE90 BB6E 4F2C 385A 0FD1 9AC7" /* Á„iλnO,8Z.ÑšÇ */
5007 $"3318 3BF0 B1AA A51A 9022 A143 29FF 7FC1" /* 3.;𱪥."¡C)ÿ.Á */
5008 $"0F0F 6570 67C4 7FA7 9906 DE4E 5439 A278" /* ..epgÄ.§™.ÞNT9¢x */
5009 $"34E1 3D57 BB0E 086E 4C71 4406 DA9D CA56" /* 4á=W»..nLqD.ÚÊV */
5010 $"3EFD D077 5DA5 CD7D C244 9128 F408 1F03" /* >ýÐw]¥Í}ÂD‘(ô... */
5011 $"0C8F FF4B 9274 2EC6 E208 13C5 EE1B 3CEA" /* .ÿK’t.Æâ..Åî.<ê */
5012 $"C5C0 06F5 0FA1 11FF 7FE3 A446 32E6 F4DA" /* ÅÀ.õ.¡.ÿ.ã¤F2æôÚ */
5013 $"23EC 5108 3AE0 CD16 AFFF 3965 8196 56E2" /* #ìQ.:àÍ.¯ÿ9e–Vâ */
5014 $"2881 4EB9 CA14 5C4A 8091 B176 8823 BF09" /* (N¹Ê.\J€‘±vˆ#¿Æ */
5015 $"CED5 0D88 E6BB DD95 1B72 36E8 809C D432" /* ÎÕ.ˆæ»Ý•.r6耜Ô2 */
5016 $"872D C08C 7DCB B30E 548B AE16 0D85 6B49" /* ‡-ÀŒ}˳.T‹®..…kI */
5017 $"9B28 D491 ECD6 F598 691A 0891 135A 63A0" /* ›(Ô‘ìÖõ˜i..‘.Zc  */
5018 $"593C 1FFD 8A54 4FB9 F2AB 20FC 5CF3 1B88" /* Y<.ýŠTO¹ò« ü\ó.ˆ */
5019 $"EE7E 8355 45D6 87C8 28CE 7B33 92A2 D8D6" /* î~ƒUEÖ‡È(Î{3’¢ØÖ */
5020 $"E8DF EF94 500A 0D78 DE9F 8657 F7BD 7F40" /* èßï”PÂ.xÞŸ†W÷½.@ */
5021 $"5E07 0789 EDC7 F3A5 A0BF 3929 6B19 A460" /* ^..‰íÇó¥ ¿9)k.¤` */
5022 $"7A50 91FF 42EA 5F12 DFA5 E0A0 84CC E869" /* zP‘ÿBê_.ߥࠄÌèi */
5023 $"BB1F 6EDA 2238 5DB0 7F22 3521 F04B FF6B" /* ».nÚ"8]°."5!ðKÿk */
5024 $"6827 722A DD5F 3C9D D3F4 2BE3 614D 0A3F" /* h'r*Ý_<Óô+ãaMÂ? */
5025 $"62C4 E6AC 95CA 5946 37E8 BC76 97FD 5167" /* bÄ欕ÊYF7è¼v—ýQg */
5026 $"C970 D4C7 0655 C470 5913 DBBD AA8C 87A4" /* ÉpÔÇ.UÄpY.Û½ªŒ‡¤ */
5027 $"3C63 0B7F 54CD 391E 574D F2D5 C728 20B7" /* <c..TÍ9.WMòÕÇ( · */
5028 $"9955 DAC8 72A5 DBBB F7ED 4C9F 6FFE 3A4E" /* ™UÚÈr¥Û»÷íLŸoþ:N */
5029 $"E165 1831 C0E5 8285 96C2 3959 1BE7 E884" /* áe.1Àå‚…–Â9Y.çè„ */
5030 $"E568 89C1 FD03 D443 F6D1 A7C9 4CFE F7B9" /* åh‰Áý.ÔCöѧÉLþ÷¹ */
5031 $"A0BA 5040 19D5 965F 0EB5 E503 4B32 E6C8" /*  ºP@.Õ–_.µå.K2æÈ */
5032 $"B9C1 DEBB B8B7 47DC A850 AF44 D3B7 F562" /* ¹ÁÞ»¸·GܨP¯DÓ·õb */
5033 $"4210 4DFF 42A0 3D9A 7C63 8124 22A9 B258" /* B.MÿB =š|c$"©²X */
5034 $"2256 6243 3077 FF57 7389 3FB6 A096 0EAB" /* "VbC0wÿWs‰?¶ –.« */
5035 $"DD33 EF25 C4B0 7338 F6D7 8730 FF2E DD0A" /* Ý3ï%Ä°s8öׇ0ÿ.Ý */
5036 $"BBDA 7A6E EFE8 58EE D64B A09E 2B00 EC04" /* »ÚznïèXîÖK ž+.ì. */
5037 $"09C9 A9F4 82A0 3132 4829 65CA E93B B827" /* ÆÉ©ô‚ 12H)eÊé;¸' */
5038 $"E81F B387 132B 5D15 E526 6FEC 2CB1 407F" /* è.³‡.+].å&oì,±@. */
5039 $"8485 FF32 4933 D357 FC45 0E44 EE66 D960" /* „…ÿ2I3ÓWüE.DîfÙ` */
5040 $"5AA3 A13A FC0B D8E2 622E 0BEE 714F 2672" /* Z£¡:ü.Øâb..îqO&r */
5041 $"3850 26C4 E626 F9BA 418C BC8A 7481 C6BE" /* 8P&Äæ&ùºAŒ¼Štƾ */
5042 $"BFA6 0D72 0603 3452 46C0 9FDB BE63 34D9" /* ¿¦.r..4RFÀŸÛ¾c4Ù */
5043 $"9599 7519 804B F1CE 0FC8 7572 F58E EB32" /* •™u.€KñÎ.ÈurõŽë2 */
5044 $"3501 CBB0 C05B 5643 485A 0012 64C2 8022" /* 5.Ë°À[VCHZ..d€" */
5045 $"BD39 EB39 2B57 0AA3 3931 93D4 885E CDF2" /* ½9ë9+W£91“Ôˆ^Íò */
5046 $"818D 7734 36C2 BEE1 4F55 116C 47A9 DC40" /* w46¾áOU.lG©Ü@ */
5047 $"A8A8 4532 7C33 9D7E 070A BA9E 36F7 2445" /* ¨¨E2|3~.ºž6÷$E */
5048 $"074C 181A 07B2 C470 FA15 8CCB C069 AD0F" /* .L...²Äpú.ŒËÀi­. */
5049 $"9DD2 8B21 6F22 7300 34B4 4378 25AB D9D2" /* Ò‹!o"s.4´Cx%«ÙÒ */
5050 $"1D9B B7F7 2F9C C3B1 926F DE61 4463 90BD" /* .›·÷/œÃ±’oÞaDc½ */
5051 $"BC76 27E7 A5B5 826F 908E 31BA 048F 97C1" /* ¼v'祵‚oŽ1º.—Á */
5052 $"1884 67A9 C4BA 4B2B 4A58 D0EE 0269 6832" /* .„g©ÄºK+JXÐî.ih2 */
5053 $"E8C6 03AA D2A2 D034 27AA D49E 9C01 069A" /* èÆ.ªÒ¢Ð4'ªÔžœ..š */
5054 $"1BDC C40B 3BA7 5F8D 0468 152D E505 7EC0" /* .ÜÄ.;§_.h.-å.~À */
5055 $"6BBF C4F4 2F45 99CB 1872 C713 FA0D 055F" /* k¿Äô/E™Ë.rÇ.ú.._ */
5056 $"551D 6E4D 5794 CC71 BAB5 C560 4D20 9464" /* U.nMW”ÌqºµÅ`M ”d */
5057 $"9F8C 94BA 1C96 0987 1AB4 61BB BA86 751B" /* ŸŒ”º.–Ƈ.´a»º†u. */
5058 $"9B79 D06A 7A3D A663 FB31 8B86 E588 5D15" /* ›yÐjz=¦cû1‹†åˆ]. */
5059 $"4A09 8B2B 81FC AE85 0D5A 1D8C A5B7 6DD9" /* JÆ‹+ü®….Z.Œ¥·mÙ */
5060 $"02F5 50CE 7017 1BDD 3D3D 86CB 250B 491B" /* .õPÎp..Ý==†Ë%.I. */
5061 $"AA1F 2D21 A416 E8E7 9A53 4299 8CDE CD59" /* ª.-!¤.èçšSB™ŒÞÍY */
5062 $"C678 B559 D85C C580 6795 AD5F F578 C9EE" /* ÆxµYØ\Å€g•­_õxÉî */
5063 $"73B2 8F4B 6EEA 6F07 F785 C1B3 374B E51F" /* s²Knêo.÷…Á³7Kå. */
5064 $"46DC 728C 05A4 6932 792A DB50 4E9A FD82" /* FÜrŒ.¤i2y*ÛPNšý‚ */
5065 $"A8A2 5EB8 024D C558 D6BC 350C 97B0 B2E8" /* ¨¢^¸.MÅXÖ¼5.—°²è */
5066 $"8F42 92FD 604D 6FB7 74B6 6EBE 97F6 CE03" /* B’ý`Mo·t¶n¾—öÎ. */
5067 $"0DFA C340 31C3 4C5E 0041 088B E097 383B" /* .úÃ@1ÃL^.A.‹à—8; */
5068 $"A236 97CC 8D2B 6F6D 0E58 4E56 1D49 32EC" /* ¢6—Ì+om.XNV.I2ì */
5069 $"626C C303 42BB D30B B8DE 5868 3C2F E39B" /* blÃ.B»Ó.¸ÞXh</ã› */
5070 $"A07A 236D 0F21 C0DD 1A0A 933A 7710 6605" /*  z#m.!ÀÝ.“:w.f. */
5071 $"343E 8D1A 9384 4F16 C01E 5AF7 DF53 0B38" /* 4>.“„O.À.Z÷ßS.8 */
5072 $"3615 80D7 428E 90F6 4620 02EA 4590 DF22" /* 6.€×BŽöF .êEß" */
5073 $"4B70 2FB2 CADA A529 F7FA E7C6 BC99 DFCD" /* Kp/²ÊÚ¥)÷úçƼ™ßÍ */
5074 $"5EE7 D677 B5BE F819 6A55 6070 E1A9 DF53" /* ^çÖwµ¾ø.jU`pá©ßS */
5075 $"3F82 0229 B6B7 D247 1967 8313 056F 9D27" /* ?‚.)¶·ÒG.gƒ..o' */
5076 $"753E E4DD EB7F 1372 C0F7 D72E 349B 2F9B" /* u>äÝë..rÀ÷×.4›/› */
5077 $"686C C9AF 0896 0865 7A3A 5A9D 807F 292A" /* hlɯ.–.ez:Z€.)* */
5078 $"8DDA A776 4B3C 0993 532D D682 A41B 9DC2" /* Ú§vK<Æ“S-Ö‚¤. */
5079 $"5113 9D60 934B 2055 D671 C6C4 1252 3CEF" /* Q.`“K UÖqÆÄ.R<ï */
5080 $"C72F AC19 4BED 185D BC60 5957 F81B 8278" /* Ç/¬.Kí.]¼`YWø.‚x */
5081 $"20B5 9173 4A1B FDC9 295D 54B7 8AFE 6938" /* µ‘sJ.ýÉ)]T·Šþi8 */
5082 $"FE49 BA78 3225 49A1 4243 823C 52B9 8489" /* þIºx2%I¡BC‚<R¹„‰ */
5083 $"9BDF 0AA1 9A6B 667D DCE2 FE18 C386 4EE9" /* ›ß¡škf}Üâþ.ÆNé */
5084 $"8AF7 92D0 4405 227C BD4C B9E4 34A7 2533" /* Š÷’ÐD."|½L¹ä4§%3 */
5085 $"D3C6 E915 D57B 681B B6DC FF03 D5D4 F1DD" /* ÓÆé.Õ{h.¶Üÿ.ÕÔñÝ */
5086 $"4FB5 BA54 262A 73C2 1CF4 4CD1 D842 E8C2" /* OµºT&*sÂ.ôLÑØBè */
5087 $"8169 3555 13EC 6A25 6DE0 3614 EC2E D1BB" /* i5U.ìj%mà6.ì.Ñ» */
5088 $"E597 BFC6 2ACB 6879 11D1 870D E79E 8422" /* å—¿Æ*Ëhy.ч.çž„" */
5089 $"C01D 4032 8887 6DBA FBEC 3077 F220 49E3" /* À.@2ˆ‡mºûì0wò Iã */
5090 $"8693 0B00 9F45 0F57 0A39 DA8E EAA5 CD48" /* †“..ŸE.WÂ9ÚŽê¥ÍH */
5091 $"2C93 C3EC BDE0 71D5 5749 0952 441C E3F8" /* ,“Ãì½àqÕWIÆRD.ãø */
5092 $"597F C1E6 FB6B BBED AD71 FC34 CFF8 5877" /* Y.Áæûk»í­qü4ÏøXw */
5093 $"DB67 5F6D 798F E163 5F6B 1CFA A87B ED7C" /* Ûg_myác_k.ú¨{í| */
5094 $"F176 3065 72FF 443D BA6B 8FBD 9E85 806A" /* ñv0erÿD=ºk½ž…€j */
5095 $"2A1B 368C 7A9E B1B1 93DE ABD8 263F 31B3" /* *.6Œzž±±“Þ«Ø&?1³ */
5096 $"1739 58F1 7233 FE7C 4EC4 32AA CDDB CF11" /* .9Xñr3þ|NÄ2ªÍÛÏ. */
5097 $"C519 9C61 B756 AF62 D55D 5D48 6AF7 4364" /* Å.œa·V¯bÕ]]Hj÷Cd */
5098 $"205E F14D AAD6 EFF5 2F0D CBE4 0F19 3159" /* ^ñMªÖïõ/.Ëä..1Y */
5099 $"94F4 910E 4217 990B CABE EBF5 2B67 2EF6" /* ”ô‘.B.™.ʾëõ+g.ö */
5100 $"FE41 0C44 1C50 43EA 69F5 4E73 5569 82A1" /* þA.D.PCêiõNsUi‚¡ */
5101 $"C13C 4899 3AA9 5E13 5F76 BF98 2105 1842" /* Á<H™:©^._v¿˜!..B */
5102 $"AF34 9AFD CFC8 D1E7 3479 E1F3 C86F D06F" /* ¯4šýÏÈÑç4yáóÈoÐo */
5103 $"9ED9 9DD8 E2E0 4B44 19F4 03E6 9CC0 3474" /* žÙØâàKD.ô.æœÀ4t */
5104 $"DFBD 078F D140 1C06 5F8C B6E2 665C 703A" /* ß½.Ñ@.._Œ¶âf\p: */
5105 $"2841 642E F538 C531 697D 5064 11AD 9E8C" /* (Ad.õ8Å1i}Pd.­žŒ */
5106 $"5A53 3174 7302 762E 9708 BEF5 AD41 0C01" /* ZS1ts.v.—.¾õ­A.. */
5107 $"D744 85FC D963 416A 9A3A 6898 F067 5B1C" /* ×D…üÙcAjš:h˜ðg[. */
5108 $"873B 42B6 72C4 FF18 337A 8A24 EDCE 6B8B" /* ‡;B¶rÄÿ.3zŠ$íÎk‹ */
5109 $"BF06 0EA4 0227 A131 8620 B03C A2B9 729E" /* ¿..¤.'¡1† °<¢¹rž */
5110 $"1242 EC64 E340 5C5C 9BFF 120A BB1B 75E5" /* .Bìdã@\\›ÿ.».uå */
5111 $"385B 68AF C7B7 8BA5 1E7B 6FC1 DDB2 F642" /* 8[h¯Ç·‹¥.{oÁݲöB */
5112 $"FF56 4D21 66B3 EA8C 7095 8FBD 92CC 7315" /* ÿVM!f³êŒp•½’Ìs. */
5113 $"665F B398 608C ADD4 11E0 DA38 734A C3DB" /* f_³˜`Œ­Ô.àÚ8sJÃÛ */
5114 $"9249 4640 27D6 D057 426E 651D BF14 F0DE" /* ’IF@'ÖÐWBne.¿.ðÞ */
5115 $"9130 2D17 8D66 9689 79BD 9A6D 5AF9 6C7C" /* ‘0-.f–‰y½šmZùl| */
5116 $"94BF 8531 6507 5621 1C11 8D8F F3A5 83D9" /* ”¿…1e.V!..ó¥ƒÙ */
5117 $"7EE3 1E6D 9B0A 8D44 F466 DE49 E606 E143" /* ~ã.m›ÂDôfÞIæ.áC */
5118 $"7E77 D417 D49D 9CF2 89AA B0FA 84A4 33A5" /* ~wÔ.Ôœò‰ª°ú„¤3¥ */
5119 $"8279 A26A 82C5 27CF FB64 D227 994E C6A7" /* ‚y¢j‚Å'ÏûdÒ'™NƧ */
5120 $"531C 7B7D D333 20D4 F79E 7C21 CC1E 7ADA" /* S.{}Ó3 Ô÷ž|!Ì.zÚ */
5121 $"F978 DEBB 1FF2 7420 A72D DE6B AB74 8DC6" /* ùxÞ».òt §-Þk«tÆ */
5122 $"DD0F 0386 BF57 5F23 4926 C874 D598 47A3" /* Ý..†¿W_#I&ÈtÕ˜G£ */
5123 $"FBC8 E9B0 38BB C695 B7F4 82A1 CC5F 1E22" /* ûÈé°8»Æ•·ô‚¡Ì_." */
5124 $"767C 20D5 E64D 44F1 B2D4 2298 C6A1 1842" /* v| ÕæMDñ²Ô"˜Æ¡.B */
5125 $"8139 0CC8 B9C5 284F 9FC8 945B 5342 94A8" /* 9.ȹÅ(OŸÈ”[SB”¨ */
5126 $"1A57 3351 E00E DB28 D5E3 9712 4346 6DBA" /* .W3Qà.Û(Õã—.CFmº */
5127 $"CC9B A1ED CD9B 778D 4523 1E9A AC69 8ED9" /* Ì›¡íÍ›wE#.š¬iŽÙ */
5128 $"67C4 C16D A548 A029 0075 0185 8D06 B7F0" /* gÄÁm¥H ).u.….·ð */
5129 $"8258 D26A EB95 D437 F0D2 8E91 D536 F534" /* ‚XÒjë•Ô7ðÒŽ‘Õ6õ4 */
5130 $"30A1 6DE7 E4B8 48DF 246E 6A43 4FE6 AED0" /* 0¡mçä¸Hß$njCOæ®Ð */
5131 $"48A0 5E1E C339 6C40 BE36 CEB8 870B F9EB" /* H ^.Ã9l@¾6θ‡.ùë */
5132 $"5ED8 3CA2 B3FA 8CD9 2D26 FF79 6468 862D" /* ^Ø<¢³úŒÙ-&ÿydh†- */
5133 $"6B87 3072 15D5 5640 D5D4 B4BA EAD3 84F1" /* k‡0r.ÕV@ÕÔ´ºêÓ„ñ */
5134 $"6A43 F378 100E 8088 A3FE 989B E75B F67F" /* jCóx..€ˆ£þ˜›ç[ö. */
5135 $"5B25 3AE2 C08C 8CB0 08DD A37F 94DD 7F03" /* [%:âÀŒŒ°.Ý£.”Ý.. */
5136 $"35C9 DF27 9A9A B829 6326 A95D 91F7 0BA3" /* 5Éß'šš¸)c&©]‘÷.£ */
5137 $"7220 E220 F062 D8DE ADE2 2AD6 DDFD C9E4" /* r â ðbØÞ­â*ÖÝýÉä */
5138 $"FAAE 543D 3CCB 5230 74F7 3120 02FD 6B45" /* ú®T=<ËR0t÷1 .ýkE */
5139 $"A2AB 805B 13FB 1879 6060 5600 1847 98E5" /* ¢«€[.û.y``V..G˜å */
5140 $"BF65 2CD4 ACD7 15D0 B77E 5A0F 8095 95CA" /* ¿e,Ô¬×.з~Z.€••Ê */
5141 $"1847 D25F 7D32 1AE2 89EA 9D49 074D A3E5" /* .GÒ_}2.â‰êI.M£å */
5142 $"201E 8AC7 CB9C 43BC 0732 70E0 3C4F E625" /* .ŠÇËœC¼.2pà<Oæ% */
5143 $"88E3 74DB 6FB7 7BE2 7006 F9E7 1F76 DBF3" /* ˆãtÛo·{âp.ùç.vÛó */
5144 $"C988 D665 F7AA 21E2 A5C1 E969 2917 3BA3" /* ɈÖe÷ª!â¥Áéi).;£ */
5145 $"17BF 925F F835 9827 813E DA4F EE9B 2DF3" /* .¿’_ø5˜'>ÚOî›-ó */
5146 $"B640 95E8 70A5 B577 8C1D 99D5 797D D482" /* ¶@•èp¥µwŒ.™Õy}Ô‚ */
5147 $"E23A 56DD 644D 9623 FEE2 63D2 A3DB E146" /* â:VÝdM–#þâcÒ£ÛáF */
5148 $"FC39 35A7 6C28 63D8 5240 0C80 0000 0000" /* ü95§l(cØR@.€.... */
5149 $"0001 4095 99D3 7A7A 0A05 B673 69BC DA9C" /* ..@•™ÓzzÂ.¶si¼Úœ */
5150 $"A108 DDEA EE48 6385 0790 FEA1 1AFC 2CED" /* ¡.ÝêîHc….þ¡.ü,í */
5151 $"2225 BE73 2ED7 00BB 2301 80FE 09DF E78E" /* "%¾s.×.»#.€þÆßçŽ */
5152 $"6FE6 4743 A0EE 0A03 4C9E F046 CDD8 E7F1" /* oæGC îÂ.LžðFÍØçñ */
5153 $"DB3F 1B67 F6E1 1F31 8096 90DF 5110 40B0" /* Û?.göá.1€–ßQ.@° */
5154 $"0000 0000 0000 0000 C0B9 E0FC 41FB A11C" /* ........À¹àüAû¡. */
5155 $"4696 89A0 DE42 F8C7 27D0 3F03 AA51 70FD" /* F–‰ ÞBøÇ'Ð?.ªQpý */
5156 $"DC5F D7B9 AFD3 A0F3 7BAA A910 9E5C 259E" /* Ü_×¹¯Ó ó{ª©.ž\%ž */
5157 $"E4FB 8F8E 01C1 96E2 0768 FE5A 0A43 E2F8" /* äûŽ.Á–â.hþZÂCâø */
5158 $"DA74 9500 C241 D1F6 3EFF 3F06 586F A511" /* Út•.ÂAÑö>ÿ?.Xo¥. */
5159 $"CCFE 8FE7 61E1 C392 D001 3F52 1CA8 CC23" /* ÌþçaáÃ’Ð.?R.¨Ì# */
5160 $"93F0 27DF 893F 4AC1 06C3 34DA 8953 BBC0" /* “ð'߉?JÁ.Ã4Ú‰S»À */
5161 $"84C0 4843 27E0 067E 5EBF FF7A 1540 4C0E" /* „ÀHC'à.~^¿ÿz.@L. */
5162 $"FA6C 44A1 A7BC DB24 6AD7 C367 EC93 33BF" /* úlD¡§¼Û$j×Ãgì“3¿ */
5163 $"FECB C1DF 83CC 5BF7 A7C0 DF62 2EFA 4283" /* þËÁ߃Ì[÷§Àßb.úBƒ */
5164 $"6E49 2492 4924 9249 2492 4924 9246 A4A5" /* nI$’I$’I$’I$’F¤¥ */
5165 $"7754 9685 B091 D8FF 1549 CF90 2079 3AFB" /* wT–…°‘Øÿ.IÏ y:û */
5166 $"E925 85CC 62A2 E49B 476B 47B9 319B 630F" /* é%…Ìb¢ä›GkG¹1›c. */
5167 $"A6B8 182C E282 D1CD 920A 4EB3 21BF 943C" /* ¦¸.,â‚ÑÍ’ÂN³!¿”< */
5168 $"27BF CCDE BD6E 481A 188C F70B C257 8118" /* '¿ÌÞ½nH..Œ÷.ÂW. */
5169 $"FBF7 FF78 F422 A3DB AE81 4980 0000 0000" /* û÷ÿxô"£Û®I€.... */
5170 $"0000 0000 0000 1EE1 BFBB C300 0000 0000" /* .......á¿»Ã..... */
5171 $"0000 0000 0000 14FB 3FE1 1B7A D142 E13F" /* .......û?á.zÑBá? */
5172 $"5B6F 704A 61CF 957D 258E F744 FB26 8356" /* [opJaÏ•}%Ž÷Dû&ƒV */
5173 $"74AD 1DDB 02F2 CF85 7AEB 3A06 6F12 084E" /* t­.Û.òÏ…zë:.o..N */
5174 $"8E93 D6DA E4FE 9FBE 2D16 1C87 701F 55C3" /* Ž“ÖÚäþŸ¾-..‡p.Uà */
5175 $"9966 3E8F 36CB 6D9F F3F6 F8D3 B3B9 E2C1" /* ™f>6ËmŸóöøÓ³¹âÁ */
5176 $"1019 C6E6 8FFF 7FDC 6948 D3AB C944 C64A" /* ..Ææÿ.ÜiHÓ«ÉDÆJ */
5177 $"8000 0000 0000 0000 000A B0CB 3806 445C" /* €........°Ë8.D\ */
5178 $"7110 4CDE 3651 AC94 777C 8AB0 5382 04AF" /* q.LÞ6Q¬”w|Š°S‚.¯ */
5179 $"32E5 68C2 122F 8A5B 12A8 FF39 CF5E 72FB" /* 2åhÂ./Š[.¨ÿ9Ï^rû */
5180 $"EFD4 1669 47C6 525E 88EF 0AAC 1EE1 98B6" /* ïÔ.iGÆR^ˆï¬.ᘶ */
5181 $"0BFF 7FAF 8A4B 7158 F7D7 1707 DE93 841E" /* .ÿ.¯ŠKqX÷×..Þ“„. */
5182 $"3C82 3260 1FFF 1C8B 6A6E 8C66 0000 0000" /* <‚2`.ÿ.‹jnŒf.... */
5183 $"0000 0000 0000 0121 EF03 234C 3124 0000" /* .......!ï.#L1$.. */
5184 $"0000 0000 0000 0000 077C 5957 204B A2ED" /* .........|YW K¢í */
5185 $"59B8 F3C4 CC60 8A58 7E23 0B9F A0FD 1DC8" /* Y¸óÄÌ`ŠX~#.Ÿ ý.È */
5186 $"8E0F FE2B 5F9F 12D8 09B3 57BB 7818 3CF5" /* Ž.þ+_Ÿ.ØƳW»x.<õ */
5187 $"D579 D427 5198 BD86 E2FC 8775 915B 37A5" /* ÕyÔ'Q˜½†âü‡u‘[7¥ */
5188 $"B2E6 6BD8 8404 31D9 4C54 3621 6561 5C3E" /* ²ækØ„.1ÙLT6!ea\> */
5189 $"4A80 0000 0000 0000 0000 0014 D22D 6758" /* J€..........Ò-gX */
5190 $"336C 63A1 C13F 3E94 9877 8E90 4E5D 0C70" /* 3lc¡Á?>”˜wŽN].p */
5191 $"F80A 4262 C2CC C7E4 DAE8 526F 393F 4558" /* øÂBbÂÌÇäÚèRo9?EX */
5192 $"5CC9 5DDA B2FF 7ED5 F809 3A02 F1EE 2760" /* \É]Ú²ÿ~ÕøÆ:.ñî'` */
5193 $"FF7E 5037 F054 4A1B 9602 92EA 8D26 A198" /* ÿ~P7ðTJ.–.’ê&¡˜ */
5194 $"9C4F 8238 A60E 7734 20F8 18FE 478F 5403" /* œO‚8¦.w4 ø.þGT. */
5195 $"1658 618B A80F 879F 4A98 E809 DEB2 7CE9" /* .Xa‹¨.‡ŸJ˜èÆÞ²|é */
5196 $"9724 407B B8C8 A48D 4F33 9126 751B 9FC2" /* —$@{¸È¤O3‘&u.ŸÂ */
5197 $"0283 44C3 5AFD 9546 FCE2 4212 4F5B 01D4" /* .ƒDÃZý•FüâB.O[.Ô */
5198 $"6E53 A032 DA91 40F4 4BDE 0C23 FF1E D5DE" /* nS 2Ú‘@ôKÞ.#ÿ.ÕÞ */
5199 $"B543 59DC C0DC 759A 6043 5883 A5FE C785" /* µCYÜÀÜuš`CXƒ¥þÇ… */
5200 $"BA68 9F46 C21A 4C50 20E3 0488 FB34 1043" /* ºhŸFÂ.LP ã.ˆû4.C */
5201 $"FC68 562B 635A EE8D E334 0C6F 25A9 E4C9" /* ühV+cZîã4.o%©äÉ */
5202 $"3484 2AC2 6188 7242 E3F6 AEAC 6F86 2DE2" /* 4„*ÂaˆrBãö®¬o†-â */
5203 $"C377 BD02 CB1C 9553 5485 6A5B E118 9BBD" /* Ãw½.Ë.•ST…j[á.›½ */
5204 $"DC6B 2C92 C6CC C866 6E7F FE63 AB01 FE7D" /* Ük,’ÆÌÈfn.þc«.þ} */
5205 $"FF7F BB81 EA94 87BE B101 F468 0E30 F111" /* ÿ.»ê”‡¾±.ôh.0ñ. */
5206 $"7BC9 FA0D F87F BDD0 811B 8588 1AE7 8387" /* {Éú.ø.½Ð.…ˆ.烇 */
5207 $"5C06 B3A9 E2ED 6E5B B524 35AA CBFF 50D6" /* \.³©âín[µ$5ªËÿPÖ */
5208 $"49D9 6918 3837 59BD E7CC 8796 B0AF 2729" /* IÙi.87Y½ç̇–°¯') */
5209 $"0512 5A97 66FF 1A85 E004 1882 0108 EA41" /* ..Z—fÿ.…à..‚..êA */
5210 $"BBCC 15E0 254C 59AF 877D 0722 15FB ADA1" /* »Ì.à%LY¯‡}.".û­¡ */
5211 $"84C2 9B83 DD5B C6B1 EE29 084C 08F7 06C8" /* „›ƒÝ[Ʊî).L.÷.È */
5212 $"4F07 9818 6BF2 66E2 582B 2F7D 29AD BAFA" /* O.˜.kòfâX+/})­ºú */
5213 $"8F9E 0AC8 60AE D10E 3E49 17BF E015 0C5E" /* žÂÈ`®Ñ.>I.¿à..^ */
5214 $"5C51 5D5B 5BC1 6C83 C428 4505 E9BB 61CB" /* \Q][[ÁlƒÄ(E.é»aË */
5215 $"D7C2 F3C6 C102 73F5 409E D0CF B43E E497" /* ×ÂóÆÁ.sõ@žÐÏ´>ä— */
5216 $"C1E0 707B 3F6F EAA8 2F10 9285 7D9D 9F81" /* Áàp{?oê¨/.’…}Ÿ */
5217 $"303D 3A70 2B3F 4A45 558D 63F6 EEB9 CF21" /* 0=:p+?JEUcöî¹Ï! */
5218 $"52C1 27C2 8439 0BE2 BE1F A553 A1C7 E44C" /* RÁ'„9.â¾.¥S¡ÇäL */
5219 $"5422 9BC0 356D 1B40 E53B 3064 AA69 F464" /* T"›À5m.@å;0dªiôd */
5220 $"7AA7 4E56 F7E2 7AE5 CB6E E538 8582 1927" /* z§NV÷âzåËnå8…‚.' */
5221 $"019D B4B0 E6D9 0F0E 9670 7723 62CF C422" /* .´°æÙ..–pw#bÏÄ" */
5222 $"DD53 ED12 92AE 20B0 6B63 6CB3 C596 4F4E" /* ÝSí.’® °kcl³Å–ON */
5223 $"18B6 FD06 93B2 6F73 A740 770D C39F B873" /* .¶ý.“²os§@w.߸s */
5224 $"598F 3667 6F7A 29E9 9E6F 9D04 48DD A175" /* Y6goz)éžo.HÝ¡u */
5225 $"2AFC 61BD D706 2A8E 9789 F513 B8AF B8EA" /* *üa½×.*Ž—‰õ.¸¯¸ê */
5226 $"2426 7EDF 1EFA 1D19 7A50 D22F D15E 76FE" /* $&~ß.ú..zPÒ/Ñ^vþ */
5227 $"CD34 19AD 8126 775C A5FB B209 9658 F850" /* Í4.­&w\¥û²Æ–XøP */
5228 $"F2FD A65F B487 9F50 7FF0 12FD BA8B FB6E" /* òý¦_´‡ŸP.ð.ýº‹ûn */
5229 $"49F5 50DF C349 B4F9 F4D7 EDEB 53BE DEB0" /* IõPßÃI´ùô×íëS¾Þ° */
5230 $"7F85 29FB 5DFF 36B9 BEDA 9BF8 3CF2 FDAE" /* .…)û]ÿ6¹¾Ú›ø<òý® */
5231 $"DFB5 ABBE D3DB ED2B FDBA CFFB 7606 FB74" /* ßµ«¾ÓÛí+ýºÏûv.ût */
5232 $"D3F8 6B96 83BA F7ED EB3F 7EDE AFE0 EECD" /* Óøk–ƒº÷íë?~Þ¯àîÍ */
5233 $"FB5E 7F6E 807E DB9B F6BD F0FE D32B EA21" /* û^.n€~Û›ö½ðþÓ+ê! */
5234 $"EFA8 1EFA 823F 6DCF FB6C 8BEA 6CFD B5AF" /* ï¨.ú‚?mÏûl‹êlýµ¯ */
5235 $"0774 CFDB D337 FB7A 3F83 BA5D F51F DF55" /* .tÏÛÓ7ûz?ƒº]õ.ßU */
5236 $"47FB 690F DA86 F791 DDD6 2CCB E6B8 C536" /* Gûi.Ú†÷‘ÝÖ,Ëæ¸Å6 */
5237 $"D512 AD5E 1B08 0B8A 8D03 2F75 60E5 6BF8" /* Õ.­^...Š./u`åkø */
5238 $"447B C66A 7EC2 7912 B45F 8E48 277C D8E1" /* D{Æj~Ây.´_ŽH'|Øá */
5239 $"809C 5755 D718 BAAC F891 2AE5 F97C 3F5E" /* €œWU×.º¬ø‘*åù|?^ */
5240 $"0116 3A00 99F4 5896 E0EA B189 F5A5 7929" /* ..:.™ôX–à걉õ¥y) */
5241 $"C491 B57F 2232 B0C2 52F8 89B1 DB2F B284" /* Ä‘µ."2°ÂRø‰±Û/²„ */
5242 $"C1EE 0C43 EF76 FD94 F871 4077 7E19 EC36" /* Áî.Cïvý”øq@w~.ì6 */
5243 $"BBFA 6DFF 3C0B 5A98 89B4 84BB 56DB 5FC2" /* »úmÿ<.Z˜‰´„»VÛ_ */
5244 $"16C2 351A B46E AF45 AAC7 DD2E 97ED 970C" /* .Â5.´n¯EªÇÝ.—í—. */
5245 $"76D8 F8D0 42EB E639 28E8 BE33 A530 3B58" /* vØøÐBëæ9(è¾3¥0;X */
5246 $"2374 6B1C 97B0 1CD5 ACD5 615F FD30 62C6" /* #tk.—°.Õ¬Õa_ý0bÆ */
5247 $"899A 977D 4B74 CAB1 E9EE 6588 4E67 8733" /* ‰š—}KtʱéîeˆNg‡3 */
5248 $"B359 BCC7 DC7B 9884 E4A8 78CB 77E7 675D" /* ³Y¼ÇÜ{˜„ä¨xËwçg] */
5249 $"FF2D FCE4 7744 BDD1 A833 6BEC C481 2DA8" /* ÿ-üäwD½Ñ¨3kìÄ-¨ */
5250 $"3D1C 5D57 7595 1DEB 2278 31AE 4188 B1F2" /* =.]Wu•.ë"x1®Aˆ±ò */
5251 $"54E1 113D DA75 96ED 71FF 1577 7820 4D22" /* Tá.=Úu–íqÿ.wx M" */
5252 $"2BD9 3841 A416 96A4 2549 1A9D 3A55 8E39" /* +Ù8A¤.–¤%I.:UŽ9 */
5253 $"A929 4B4E E11F 0F88 8BB6 7E08 2210 9D21" /* ©)KNá..ˆ‹¶~.".! */
5254 $"92BF 623B B974 D371 0208 1489 5713 0F66" /* ’¿b;¹tÓq...‰W..f */
5255 $"3C4C 8394 72A6 08A1 3D86 BA0C 198B CE8B" /* <Lƒ”r¦.¡=†º..‹Î‹ */
5256 $"FB71 18D8 E044 CE7C A642 F1E5 DC8B F8E6" /* ûq.ØàDÎ|¦BñåÜ‹øæ */
5257 $"2405 66E0 B6C5 6A4F B1AE 2231 3060 11D4" /* $.fà¶ÅjO±®"10`.Ô */
5258 $"9963 5EF4 BB3D 1F61 0807 0AE1 0DFC 4718" /* ™c^ô»=.a..Âá.üG. */
5259 $"6C97 80A7 D438 6A81 B76A 6E7E 7A64 87A1" /* l—€§Ô8j·jn~zd‡¡ */
5260 $"1D7A 8744 3227 F565 4B4A E311 FA0F B477" /* .z‡D2'õeKJã.ú.´w */
5261 $"9DD6 0662 8844 7138 BDF8 CBCC 007F BDB6" /* Ö.bˆDq8½øËÌ..½¶ */
5262 $"07C4 98CC 226B 9762 33D0 99EF 54D9 5800" /* .ĘÌ"k—b3ЙïTÙX. */
5263 $"509D C37B 39A7 E11B 8771 0999 AB8B AAA6" /* PÃ{9§á.‡qÆ™«‹ª¦ */
5264 $"C463 6C38 7FB0 9121 2CA2 7634 BBEE 41FB" /* Äcl8.°‘!,¢v4»îAû */
5265 $"4F3B B050 3E38 15C4 98A6 216D 31C2 7057" /* O;°P>8.ʦ!m1ÂpW */
5266 $"0B3D 429A 6CFB 0819 EB4D B9D2 549F 6601" /* .=Bšlû..ëM¹ÒTŸf. */
5267 $"2436 5BEA 9DAC BBDA AB3A AB4F ABFF 768D" /* $6[ꬻګ:«O«ÿv */
5268 $"E220 E451 7E45 49C5 21FD B2E6 DEFD 2505" /* â äQ~EIÅ!ý²æÞý%. */
5269 $"836B 3500 54D8 50B8 7538 C5BF B951 7FB2" /* ƒk5.TØP¸u8Å¿¹Q.² */
5270 $"F927 CBB1 7AA1 D0BD 51E2 D7F7 C440 5DA0" /* ù'˱z¡Ð½Qâ×÷Ä@]  */
5271 $"89EF FEEE BF2E A5E4 F98A B652 F25A D1DC" /* ‰ïþî¿.¥äùŠ¶RòZÑÜ */
5272 $"482A 40CB A288 250A 22CA BCB4 815D 077E" /* H*@Ë¢ˆ%Â"ʼ´].~ */
5273 $"229E 59B2 8249 D336 A3C1 5D5B FAE5 483C" /* "žY²‚IÓ6£Á][úåH< */
5274 $"67F3 255E 1530 AFB1 D900 48FE 254B C54E" /* gó%^.0¯±Ù.Hþ%KÅN */
5275 $"42DC EE54 066B CE83 B1C9 F021 2031 8DF1" /* BÜîT.k΃±Éð! 1ñ */
5276 $"FE58 9315 B761 79CA 409A 6CD6 337A 14A9" /* þX“.·ayÊ@šlÖ3z.© */
5277 $"8622 90BC 3474 727C 66CE 09C5 61B4 A386" /* †"¼4tr|fÎÆÅa´£† */
5278 $"7509 819F 6EEB 5FCC C0A7 084A 7742 A6E3" /* uÆŸnë_ÌÀ§.JwB¦ã */
5279 $"F69A 90CA 24AD EB53 60AB 5FD0 FD6F 3DE6" /* öšÊ$­ëS`«_Ðýo=æ */
5280 $"44CF 80FB A400 B71F 1DD4 C690 A3DB 54CF" /* DÏ€û¤.·..ÔÆ£ÛTÏ */
5281 $"F492 7EC7 540C 048F 3D35 FD63 7593 751B" /* ô’~ÇT..=5ýcu“u. */
5282 $"F88F 4B7D E355 6685 FD5F 2743 8DF3 D839" /* øK}ãUf…ý_'CóØ9 */
5283 $"0894 99DB 1FAA 22B2 8800 8C9F D91F E60B" /* .”™Û.ª"²ˆ.ŒŸÙ.æ. */
5284 $"0EEE 2870 2932 2AE5 F401 11F0 8B2B 53DB" /* .î(p)2*åô..ð‹+SÛ */
5285 $"8028 E39D 744F E70B 11F3 A220 ABF4 FCD5" /* €(ãtOç..ó¢ «ôüÕ */
5286 $"37C9 0AC8 8749 215E 1D89 4022 96D0 04FF" /* 7ÉÂȇI!^.‰@"–Ð.ÿ */
5287 $"0C57 AC3D 351A 8582 EBA4 EA2B B65B A14B" /* .W¬=5.…‚ë¤ê+¶[¡K */
5288 $"048B E031 DE15 251C 669F 8457 FF38 D131" /* .‹à1Þ.%.fŸ„Wÿ8Ñ1 */
5289 $"0027 BB20 9721 6636 A375 AFBA AF7B BDBA" /* .'» —!f6£u¯º¯{½º */
5290 $"05F3 3114 E55E DAA9 219F 9516 F3DF 12B4" /* .ó1.å^Ú©!Ÿ•.óß.´ */
5291 $"DA3F 83DF 13A0 9900 3FA6 17E9 B014 E404" /* Ú?ƒß. ™.?¦.é°.ä. */
5292 $"434D 02D4 4283 D73D F4D1 5D95 8B25 6A6A" /* CM.ÔBƒ×=ôÑ]•‹%jj */
5293 $"CD5E BA93 82DF 1A30 4B0D 0E21 65A1 0001" /* Í^º“‚ß.0K..!e¡.. */
5294 $"2869 F06A 8949 311F DB03 39EB E8E1 5BFB" /* (iðj‰I1.Û.9ëèá[û */
5295 $"F11C 05C6 2469 BAEA 4516 4CC4 DAF5 927A" /* ñ..Æ$iºêE.LÄÚõ’z */
5296 $"2CEB 3150 DB6F 4DE2 8EED 59C0 604F 9AE5" /* ,ë1PÛoMâŽíYÀ`Ošå */
5297 $"E136 83B0 F348 3D1A B44D 3A8E D77A B0DE" /* á6ƒ°óH=.´M:Ž×z°Þ */
5298 $"5267 1055 24F7 3C3D EB3E 08EF 97F9 4B29" /* Rg.U$÷<=ë>.ï—ùK) */
5299 $"454F 1B5D 4A6E 56E1 0F90 00A1 4467 7454" /* EO.]JnVá..¡DgtT */
5300 $"B556 362A 9A19 9E35 19E9 BFDF E2AD 91D6" /* µV6*š.ž5.é¿ßâ­‘Ö */
5301 $"7FB6 95B9 F19D 8D07 2FAF 3162 D880 0AA7" /* .¶•¹ñ./¯1b؀§ */
5302 $"C9C4 94AD C49A 1231 2D9F 780F 6E3E 57D2" /* ÉÄ”­Äš.1-Ÿx.n>WÒ */
5303 $"8C1C 582C 179A 721C 7063 F056 F938 4EA1" /* Œ.X,.šr.pcðVù8N¡ */
5304 $"F3E4 E458 D254 280F 92CA ABDC 4ECF 3EB7" /* óääXÒT(.’Ê«ÜNÏ>· */
5305 $"95DF A3B8 45C0 1427 BA54 B2E2 D1BC B67D" /* •ß£¸EÀ.'ºT²âѼ¶} */
5306 $"5A0F EE12 37D4 BE1C 5785 A90D 2E62 B301" /* Z.î.7Ô¾.W…©..b³. */
5307 $"F66D A637 374B 17DA 7446 C318 3B11 4F50" /* öm¦77K.ÚtFÃ.;.OP */
5308 $"ED27 AEB2 D8F6 C3E4 AB48 5E7C 1D46 9463" /* í'®²ØöÃä«H^|.F”c */
5309 $"E7BA 9296 7BFA FDBB 39F2 7E86 1A5D 8FFA" /* 纒–{úý»9ò~†.]ú */
5310 $"7E06 FC92 3472 7950 8B67 8329 FA9F 47AA" /* ~.ü’4ryP‹gƒ)úŸGª */
5311 $"51F3 01AD A6DA 224F E711 AF6F BA8F FA86" /* Qó.­¦Ú"Oç.¯oºú† */
5312 $"FF61 EBD1 5613 B076 3543 3515 FF1B 1E9C" /* ÿaëÑV.°v5C5.ÿ..œ */
5313 $"CE78 6A36 7CCF FD63 E9E3 00E6 EA60 1DBE" /* Îxj6|Ïýcéã.æê`.¾ */
5314 $"42FB 3E66 D69D 8BA6 A0E6 13E1 2087 20D7" /* Bû>fÖ‹¦ æ.á ‡ × */
5315 $"7941 E3C4 C7C6 67FF 2C9C A486 253A C206" /* yAãÄÇÆgÿ,œ¤†%:Â. */
5316 $"F961 4A0E D9DD D32A 6D67 A012 B1A2 B549" /* ùaJ.ÙÝÓ*mg .±¢µI */
5317 $"3F58 8BA1 CA98 94EB 6099 570C D139 09AA" /* ?X‹¡Ê˜”ë`™W.Ñ9ƪ */
5318 $"8DEB C31A 0812 5DAD 2926 6846 D789 4430" /* ëÃ...]­)&hF׉D0 */
5319 $"4931 16B5 0804 52F1 040D B0A7 DDD7 7052" /* I1.µ..Rñ..°§Ý×pR */
5320 $"4269 C765 98AA 3941 F9EE 987A 2EAD 46BE" /* BiÇe˜ª9Aùî˜z.­F¾ */
5321 $"AA2B DD79 D9F9 7AF7 9318 B633 97CC DB93" /* ª+ÝyÙùz÷“.¶3—ÌÛ“ */
5322 $"5AF7 23D4 08E5 1FD7 EA45 85E9 4C98 77B6" /* Z÷#Ô.å.×êE…éL˜w¶ */
5323 $"0038 8756 6C8F 1A76 8D36 D67C 0BBD 248F" /* .8‡Vl.v6Ö|.½$ */
5324 $"8465 4CC4 7B7A C1B7 6348 F763 66A7 F04E" /* „eLÄ{zÁ·cH÷cf§ðN */
5325 $"FF4E 1C72 1053 323F 9E55 F75D 4097 9C24" /* ÿN.r.S2?žU÷]@—œ$ */
5326 $"AD5D 3C1B 766A 50A8 7252 6563 2687 8251" /* ­]<.vjP¨rRec&‡‚Q */
5327 $"8AE2 2EAE 6AA9 6439 2831 281E 034D 7999" /* Šâ.®j©d9(1(..My™ */
5328 $"F46F 47C1 911D 553A D887 0E8F 6E83 1B48" /* ôoGÁ‘.U:؇.nƒ.H */
5329 $"F0D9 C566 C0FF 0F02 5E68 EA76 7381 25B1" /* ðÙÅfÀÿ..^hêvs%± */
5330 $"D388 A375 370B A655 625B B71A 191C CD9D" /* Óˆ£u7.¦Ub[·...Í */
5331 $"F3CA 83B2 88D6 3712 B3E3 6CEA 19DC 3295" /* óʃ²ˆÖ7.³ãlê.Ü2• */
5332 $"3398 DF4F 1279 B346 1DD8 ED24 186F BEE1" /* 3˜ßO.y³F.Øí$.o¾á */
5333 $"8FD4 5FAD EAFF 6960 DE17 A0A4 B89E 7CF3" /* Ô_­êÿi`Þ. ¤¸ž|ó */
5334 $"C360 9DA8 91BF 470F ECC0 C0AA E260 3430" /* Ã`¨‘¿G.ìÀÀªâ`40 */
5335 $"EF4E CAD6 F964 05B0 8E27 C1F6 7516 4350" /* ïNÊÖùd.°Ž'Áöu.CP */
5336 $"B87D 7D16 703E 7972 1232 2E0F 6577 664C" /* ¸}}.p>yr.2..ewfL */
5337 $"8FA6 1414 7FB2 A33D A69E FD2F CF21 FC8F" /* ¦...²£=¦žý/Ï!ü */
5338 $"23A5 6AED 3E28 34A0 F73F F7D6 7F7C 5B6B" /* #¥jí>(4 ÷?÷Ö.|[k */
5339 $"0596 8B6D BACA 52DF 8E72 CDBA E221 7092" /* .–‹mºÊRߎrͺâ!p’ */
5340 $"A3AB B99D 1EE3 3F21 1AD2 0F0B DC5A 8BE1" /* £«¹.ã?!.Ò..ÜZ‹á */
5341 $"9E35 D891 9A60 EF28 5934 FA3B 8009 DC42" /* ž5Ø‘š`ï(Y4ú;€ÆÜB */
5342 $"11BE 487F D776 AF26 0EBD BF3E 8DCC B940" /* .¾H.×v¯&.½¿>̹@ */
5343 $"2523 D6E1 447F EA8A 5F66 DE0B 0962 249E" /* %#ÖáD.êŠ_fÞ.Æb$ž */
5344 $"165D BB6D 1EBD 1237 021B F903 DEEF 78FE" /* .]»m.½.7..ù.Þïxþ */
5345 $"B3F3 76B7 429F 336D 0EFA FF47 5CBC E3DF" /* ³óv·BŸ3m.úÿG\¼ãß */
5346 $"FC44 41BA BC9D 67AE 0B43 D817 FBCE 4F36" /* üDAº¼g®.CØ.ûÎO6 */
5347 $"8209 CCB5 38F6 712E 7DEA 4E9E 4B38 3B80" /* ‚Æ̵8öq.}êNžK8;€ */
5348 $"7B16 28E3 AB59 340E 93F0 4C65 C281 A4F1" /* {.(ã«Y4.“ðLe¤ñ */
5349 $"08E4 26A6 31AA B6A4 F784 BA8E C7FA 8919" /* .ä&¦1ª¶¤÷„ºŽÇú‰. */
5350 $"4B19 FA98 09C8 3C79 27DA CB39 881C 3B0E" /* K.ú˜ÆÈ<y'ÚË9ˆ.;. */
5351 $"9BEA 1EF3 D655 CFEB B4F7 0888 971D 69EF" /* ›ê.óÖUÏë´÷.ˆ—.iï */
5352 $"1105 0EF2 80B8 FF1E F0BE 107F 9AB0 6C52" /* ...ò€¸ÿ.ð¾..š°lR */
5353 $"FF78 3AA4 8FE0 3370 40DF C5E8 478A 2FCF" /* ÿx:¤à3p@ßÅèGŠ/Ï */
5354 $"96C5 8D32 8E07 AA93 DA95 4D9B 60C6 2748" /* –Å2Ž.ª“Ú•M›`Æ'H */
5355 $"C8F4 8347 D2D9 2E35 75E4 333A 6494 B177" /* ÈôƒGÒÙ.5uä3:d”±w */
5356 $"C836 6E4F AF08 CDB0 0FA5 D565 A0EC 946F" /* È6nO¯.Í°.¥Õe ì”o */
5357 $"ED5C 03F6 E5DB FA4F D29A BF8F BC7F 12D8" /* í\.öåÛúOÒš¿¼..Ø */
5358 $"7730 8564 524D 4B31 F681 8C71 C5BC 1641" /* w0…dRMK1öŒqż.A */
5359 $"6988 F9CF 0385 B8EE 4C04 07DB 5AD2 531C" /* iˆùÏ.…¸îL..ÛZÒS. */
5360 $"48BA 3E6F E24E AF73 DB5E B729 A4BF 894A" /* Hº>oâN¯sÛ^·)¤¿‰J */
5361 $"782D E8F2 91C9 E628 322C F20C 2D0C 73DD" /* x-èò‘Éæ(2,ò.-.sÝ */
5362 $"F093 4ED7 63DF E121 E7B9 DB7E 530D E3BD" /* ð“N×cßá!ç¹Û~S.ã½ */
5363 $"3469 29CE 5768 BE0F 1E91 46B7 00A0 CC2E" /* 4i)ÎWh¾..‘F·. Ì. */
5364 $"183D 7D57 762C 062D 0707 EBA4 177D 73E8" /* .=}Wv,.-..ë¤.}sè */
5365 $"FA30 83A6 479B AA9A 702E B8FD 9B54 0FF3" /* ú0ƒ¦G›ªšp.¸ý›T.ó */
5366 $"8222 1EB0 4CDD 4CF7 F0AB 8972 B655 9426" /* ‚".°LÝL÷ð«‰r¶U”& */
5367 $"4EEE 3B88 A6D2 F8B9 6845 0467 D606 9DDD" /* Nî;ˆ¦Òø¹hE.gÖ.Ý */
5368 $"C547 A61F 71E7 5A8E 6B83 51FD B2C1 A732" /* ÅG¦.qçZŽkƒQý²Á§2 */
5369 $"A6EA A0AA 6D13 E80B 0EC4 5DF4 348F FF6E" /* ¦ê ªm.è..Ä]ô4ÿn */
5370 $"2289 CFB4 1AE2 18D1 340F B29B E1FF 16B1" /* "‰Ï´.â.Ñ4.²›áÿ.± */
5371 $"0F0F B5AD 260A 7FD9 B1F2 3D0C 404F 75A8" /* ..µ­&Â.Ù±ò=.@Ou¨ */
5372 $"E4DB 52EE 259B D762 E5E5 4FFD 22AC 4856" /* äÛRî%›×bååOý"¬HV */
5373 $"9C62 8DDB F5D8 58F8 4EC7 1110 30EC E0D8" /* œbÛõØXøNÇ..0ìàØ */
5374 $"7FED 0176 FEF2 53B3 75C6 34E1 A3A7 79DA" /* .í.vþòS³uÆ4ᣧyÚ */
5375 $"1FDC 42EC 83B2 F3EB 056C E41B 4E65 3699" /* .ÜB샲óë.lä.Ne6™ */
5376 $"4BD6 1AE3 85A9 DBF6 89D4 39B0 79F9 8877" /* KÖ.ã…©Ûö‰Ô9°yùˆw */
5377 $"161C 2CB5 3F3C 294B 8CA3 A6F6 556C 4CAD" /* ..,µ?<)KŒ£¦öUlL­ */
5378 $"A752 918D 7E61 BA54 02D2 CF5C AEBE 1A0B" /* §R‘~aºT.ÒÏ\®¾.. */
5379 $"B75C A9CA 9876 AB0B 6028 4D8E D46C E479" /* ·\©Ê˜v«.`(MŽÔläy */
5380 $"A186 EA09 496E 0935 04E2 4C25 FA18 270B" /* ¡†êÆInÆ5.âL%ú.'. */
5381 $"A054 DE1C 1BD8 A089 9D95 1335 E93C 7C21" /*  TÞ..Ø ‰•.5é<|! */
5382 $"435E A570 3C42 AA88 0075 BB20 20AF 90EC" /* C^¥p<Bªˆ.u» ¯ì */
5383 $"26F9 7E41 5CC7 2154 63A3 D965 075C 1A78" /* &ù~A\Ç!Tc£Ùe.\.x */
5384 $"2A13 753E DDD9 F846 467C EFC6 5308 2B46" /* *.u>ÝÙøFF|ïÆS.+F */
5385 $"5BD9 2BFF 5F26 72DB 523D D0FC CE49 47B0" /* [Ù+ÿ_&rÛR=ÐüÎIG° */
5386 $"D98B 4D36 1B60 7C3A 0707 F46A 8565 4CCB" /* Ù‹M6.`|:..ôj…eLË */
5387 $"5DC1 A50D C039 BF24 7418 78A7 6D4F DE55" /* ]Á¥.À9¿$t.x§mOÞU */
5388 $"1CB8 B787 158C 6C4D D840 920F 3130 7A92" /* .¸·‡.ŒlMØ@’.10z’ */
5389 $"1CF4 1B74 BC2B 8954 0A80 9636 BFC3 6330" /* .ô.t¼+‰T€–6¿Ãc0 */
5390 $"3E7F 7E4E A811 39F2 3D56 10D3 6A76 4E20" /* >.~N¨.9ò=V.ÓjvN */
5391 $"F646 5CD3 9166 D2D6 046F E398 A934 2D04" /* öF\Ó‘fÒÖ.o㘩4-. */
5392 $"2E01 C602 1332 8274 6AE2 D5C9 6226 30B3" /* ..Æ..2‚tjâÕÉb&0³ */
5393 $"07DB FDF3 B3BB 6C31 B162 FF63 0639 8E6F" /* .Ûýó³»l1±bÿc.9Žo */
5394 $"3501 A54C 1AA6 42EB EDE7 885E EE2F A6D9" /* 5.¥L.¦Bëíçˆ^î/¦Ù */
5395 $"B74A AE20 8FFB 6FCF A537 642D F17F A45E" /* ·J® ûoÏ¥7d-ñ.¤^ */
5396 $"EE37 DE05 7569 A81E F464 A35B 603B 4F40" /* î7Þ.ui¨.ôd£[`;O@ */
5397 $"D00F C3D2 D04A F943 AC3C 37E2 1B2B A1D3" /* Ð.ÃÒÐJùC¬<7â.+¡Ó */
5398 $"09D6 A92B F7CB B2FA 9FF7 97F2 83F9 BABC" /* ÆÖ©+÷˲úŸ÷—òƒùº¼ */
5399 $"E4BE F015 E804 97FC A16F 6E8B 9004 8424" /* ä¾ð.è.—ü¡on‹.„$ */
5400 $"04F7 1295 0A15 3C1A AA5D 6A75 372A 0BB4" /* .÷.•Â.<.ª]ju7*.´ */
5401 $"4849 DD4A 012F D969 23A9 FBA7 C3EB D29F" /* HIÝJ./Ùi#©û§ÃëÒŸ */
5402 $"5CE0 BD6F 8436 26BB 1B52 3BCB DCAA 0791" /* \à½o„6&».R;Ëܪ.‘ */
5403 $"02B3 8EC7 5A89 D402 C9FF 058E E2C8 AD72" /* .³ŽÇZ‰Ô.Éÿ.ŽâÈ­r */
5404 $"01BF D9B3 FA52 B000 0000 3090 8B4E 8809" /* .¿Ù³úR°...0‹NˆÆ */
5405 $"9E4F 59A7 8021 D030 169B 78E6 55B4 9FB8" /* žOY§€!Ð0.›xæU´Ÿ¸ */
5406 $"48A1 D2F4 BE8E A948 A89E 5E3E BE56 AE8C" /* H¡Òô¾Ž©H¨ž^>¾V®Œ */
5407 $"BF6C 6485 F435 4906 BE37 4D88 589A 85C0" /* ¿ld…ô5I.¾7MˆXš…À */
5408 $"5278 59EC 1FED 3652 3FE0 5229 0524 D686" /* RxYì.í6R?àR).$Ö† */
5409 $"1E5E 14D9 8C56 8742 9625 36BB 4674 0391" /* .^.ÙŒV‡B–%6»Ft.‘ */
5410 $"9647 FCC9 30C4 6D0D 5812 1271 E9C8 E89D" /* –GüÉ0Äm.X..qéÈè */
5411 $"7F9B 3420 0269 5F58 4554 F964 BDDA E9F3" /* .›4 .i_XETùd½Úéó */
5412 $"973A 5B5F 4C59 107B 2D9E 87CB D896 1F13" /* —:[_LY.{-ž‡ËØ–.. */
5413 $"AC52 F00D 3600 9104 3FF2 399A 0158 5153" /* ¬Rð.6.‘.?ò9š.XQS */
5414 $"139A A5C2 51CC D2C7 D082 C2A0 E35B FE05" /* .š¥ÂQÌÒÇЂ ã[þ. */
5415 $"06C9 DBB4 7036 39DB 80AF 4642 9F53 170C" /* .ÉÛ´p69Û€¯FBŸS.. */
5416 $"2856 38D5 0FA7 B562 4ED8 3BB5 B48A B1C8" /* (V8Õ.§µbNØ;µ´Š±È */
5417 $"B20B 4B42 4499 C5C1 242B A1BA CB74 D8F1" /* ².KBD™ÅÁ$+¡ºËtØñ */
5418 $"1CF1 241E 7A2A B847 111D 13DC CD3C 05A3" /* .ñ$.z*¸G...ÜÍ<.£ */
5419 $"024F 25B5 41E2 0A15 E1C4 1A0E A5D8 0742" /* .O%µAâÂ.áÄ..¥Ø.B */
5420 $"A359 2372 FD88 7447 1DB7 F766 5B7F E63E" /* £Y#rýˆtG.·÷f[.æ> */
5421 $"26B8 BC6E 7B72 E331 2BE1 73BD 04A0 E941" /* &¸¼n{rã1+ás½. éA */
5422 $"45EC 9039 8769 8BFF 1624 8D43 CA24 9D0D" /* Eì9‡i‹ÿ.$CÊ$. */
5423 $"A05B F467 7401 E777 0608 C4A6 A698 9A9B" /*  [ôgt.çw..Ħ¦˜š› */
5424 $"7066 11D3 606F 857E 18D8 D9D3 E226 38C0" /* pf.Ó`o…~.ØÙÓâ&8À */
5425 $"D89B 09D9 A2F1 0171 BAC9 D7BF AB2E BD58" /* Ø›ÆÙ¢ñ.qºÉ׿«.½X */
5426 $"7178 6CC2 608D 447D D92A 621C 1A82 B764" /* qxlÂ`D}Ù*b..‚·d */
5427 $"2ABE CBE8 07C0 E2A6 9B83 46A8 1109 FC87" /* *¾Ëè.À⦛ƒF¨.Æü‡ */
5428 $"F083 9598 26AE 8847 7E22 278D 9311 59FC" /* ðƒ•˜&®ˆG~"'“.Yü */
5429 $"2995 1D44 BA58 24BC 2A99 3946 0E00 9144" /* )•.DºX$¼*™9F..‘D */
5430 $"9113 0297 29E3 A7B5 B937 2D23 8405 86ED" /* ‘..—)㧵¹7-#„.†í */
5431 $"29F1 5254 6A8C 0FB8 4B13 F6C3 6028 2C14" /* )ñRTjŒ.¸K.öÃ`(,. */
5432 $"3B80 E317 225C 7A9B 405C 7E95 A2E4 311B" /* ;€ã."\z›@\~•¢ä1. */
5433 $"076A D7B8 A4B5 225A 1F29 FAA2 8239 D98F" /* .j׸¤µ"Z.)ú¢‚9Ù */
5434 $"071A F302 DA24 AE80 2AC0 D108 035D EA76" /* ..ó.Ú$®€*ÀÑ..]êv */
5435 $"2F7E 850F 9E87 6B19 B2F1 F1E5 F5B3 A5AF" /* /~….ž‡k.²ññåõ³¥¯ */
5436 $"35BB D867 8257 8A48 5E4F 6983 E22E 6DAD" /* 5»Øg‚WŠH^Oiƒâ.m­ */
5437 $"D361 1505 ECF2 3F3C DB84 1861 E5AB 6793" /* Óa..ìò?<Û„.aå«g“ */
5438 $"910D 8F56 6BB5 FD17 29DB 242A 6946 8022" /* ‘.Vkµý.)Û$*iF€" */
5439 $"7DAF 8120 02EB C840 3765 69EC BB8B F2FF" /* }¯ .ëÈ@7ei컋òÿ */
5440 $"6031 7BE4 EFC4 BECD 7BD7 CB0A 8B8C 75C2" /* `1{äïľÍ{×Ë‹Œu */
5441 $"E63A F4E4 B05B 1442 0CB1 BEBD E078 84F5" /* æ:ôä°[.B.±¾½àx„õ */
5442 $"3D95 24FA 952F 949B AD72 01B7 1CC7 4CA6" /* =•$ú•/”›­r.·.ÇL¦ */
5443 $"78C2 BA05 B757 517A 5CB1 A380 0C23 0680" /* xº.·WQz\±£€.#.€ */
5444 $"3113 0CBA 23B8 AA48 F832 B74F 997E 6E03" /* 1..º#¸ªHø2·O™~n. */
5445 $"D16C 577F 968F E9A4 73CA DA79 07B3 A5F1" /* ÑlW.–é¤sÊÚy.³¥ñ */
5446 $"2D20 C13D F821 62F9 41A0 A7AA 472A 368A" /* - Á=ø!bùA §ªG*6Š */
5447 $"28EE 7686 F7B4 D5CF 225E 004E 709F C4E8" /* (îv†÷´ÕÏ"^.NpŸÄè */
5448 $"FCBC B778 C976 A1E0 1968 1EF9 E998 2DC2" /* ü¼·xÉv¡à.h.ùé˜- */
5449 $"1693 C645 A4F5 787A 5B10 45C0 F010 8596" /* .“ÆE¤õxz[.EÀð.…– */
5450 $"A0F6 E8AA 1BAC C958 C0F6 101E 0C4D 2E61" /*  öèª.¬ÉXÀö...M.a */
5451 $"B76E 4019 58DD 3058 000C 2375 6EBC 6599" /* ·n@.XÝ0X..#un¼e™ */
5452 $"BEA3 9ADC 0002 F98F 24B3 B036 EA0D F2FD" /* ¾£šÜ..ù$³°6ê.òý */
5453 $"6823 E10A 59D7 5D0B F6C0 EFB2 7D9D A684" /* h#áÂY×].öÀï²}¦„ */
5454 $"3084 4AD6 92F2 BFB2 57CA 7294 FF2D 53C8" /* 0„JÖ’ò¿²WÊr”ÿ-SÈ */
5455 $"8D05 254E 2360 582F CE0C E209 240D FAB4" /* .%N#`X/Î.âÆ$.ú´ */
5456 $"C638 2103 7462 2AF1 5461 2036 09B4 294F" /* Æ8!.tb*ñTa 6Æ´)O */
5457 $"52A6 6553 F6B7 85F6 E77F A8B7 058C F201" /* R¦eSö·…öç.¨·.Œò. */
5458 $"19BA D75B 6612 0013 CFA6 F54F 8855 C000" /* .º×[f...ϦõOˆUÀ. */
5459 $"00BE 57DE C13B 77B0 AF81 F95D 8E88 7224" /* .¾WÞÁ;w°¯ù]Žˆr$ */
5460 $"002F C7BE 1D06 F540 58EF 1909 1D8F 037F" /* ./Ǿ..õ@Xï.Æ... */
5461 $"E973 290F 641E 8849 F996 EA66 D15C CA23" /* és).d.ˆIù–êfÑ\Ê# */
5462 $"C620 3090 94D8 F95F C58C 720B 7FFE 206C" /* Æ 0”Øù_ÅŒr..þ l */
5463 $"A3E0 EE49 AE89 4586 6617 FE87 4D7B D300" /* £àîI®‰E†f.þ‡M{Ó. */
5464 $"4CF6 E77F A882 E041 362F 710E AC03 D573" /* Löç.¨‚àA6/q.¬.Õs */
5465 $"69FF 7480 0018 484B 0D10 C800 0000 0C24" /* iÿt€..HK..È....$ */
5466 $"183F ADBF D900 0184 8481 E82C C758 1848" /* .?­¿Ù..„„è,ÇX.H */
5467 $"4840 6806 1212 B020 EA50 0818 484B F6E7" /* H@h...° êP..HKöç */
5468 $"7FA5 E774 6249 2F3D 5FF9 2FC0 0C24 1656" /* .¥çtbI/=_ù/À.$.V */
5469 $"1B91 8000 1846 D5F4 CA01 40C2 3F26 3D84" /* .‘€..FÕôÊ.@Â?&=„ */
5470 $"7B4A 811F 08D6 B47D 05C2 4402 D57B C1FC" /* {J..Ö´}.ÂD.Õ{Áü */
5471 $"7D32 E6FE 8125 F24E 514B 2820 7323 F96F" /* }2æþ%òNQK( s#ùo */
5472 $"B1F9 CDBD 94E4 C9BF 81D6 5A26 1C08 2131" /* ±ùͽ”äÉ¿ÖZ&..!1 */
5473 $"FF58 608E A4BB BEFD 703F C3EA B596 2AEA" /* ÿX`Ž¤»¾ýp?Ãêµ–*ê */
5474 $"48B2 2319 2F7A B9BC A14D EAB4 49CF 89E9" /* H²#./z¹¼¡Mê´Iωé */
5475 $"D312 5979 1910 6519 C45E 4B88 F709 D65D" /* Ó.Yy..e.Ä^Kˆ÷ÆÖ] */
5476 $"BF0F 86DC C883 8469 9757 7FC7 FB91 A851" /* ¿.†Üȃ„i—W.Çû‘¨Q */
5477 $"7834 0232 03F5 F552 B022 E799 431E 3FE8" /* x4.2.õõR°"ç™C.?è */
5478 $"BE7C A37B AAE1 D04F 9795 EA98 CAB0 6816" /* ¾|£{ªáÐO—•ê˜Ê°h. */
5479 $"047F 244A 2BD3 E0CF B862 B172 B1B3 F027" /* ..$J+Óàϸb±r±³ð' */
5480 $"6505 A5AA 6AB2 5F8E B98F 85CB D487 2603" /* e.¥ªj²_Ž¹…ËÔ‡&. */
5481 $"BDA4 4C6D 4B74 0A12 117F 6137 6A30 37CE" /* ½¤LmKtÂ...a7j07Î */
5482 $"0441 188C 63FC 46ED 5C9A B6A0 9012 6450" /* .A.ŒcüFí\š¶ .dP */
5483 $"A042 C4D3 8E69 8930 0797 25B3 B70D 5C62" /*  BÄÓŽi‰0.—%³·.\b */
5484 $"6A83 3964 5EF1 4A28 508D FF7F E847 17D0" /* jƒ9d^ñJ(Pÿ.èG.Ð */
5485 $"7C91 F4BC AA82 5462 99EF FF79 5A7A E45E" /* |‘ô¼ª‚Tb™ïÿyZzä^ */
5486 $"98FF 5B1E 90FE 7F80 9453 7AD1 4A63 8FFC" /* ˜ÿ[.þ.€”SzÑJcü */
5487 $"1B61 796C 4B90 7FE9 1959 752B 8579 95F8" /* .aylK.é.Yu+…y•ø */
5488 $"C5B9 7EC6 2D24 5185 1BCE 12D6 B418 B42C" /* Ź~Æ-$Q….Î.Ö´.´, */
5489 $"D40F 7AF7 657E 5184 9CAA 8834 B65C 4785" /* Ô.z÷e~Q„œªˆ4¶\G… */
5490 $"B934 7C3A 8000 0000 99F5 3F06 3790 6AF7" /* ¹4|:€...™õ?.7j÷ */
5491 $"0769 9D8E F19F 4FF3 EDE6 D059 B97C A1F0" /* .iŽñŸOóíæÐY¹|¡ð */
5492 $"0CE2 4FAF B846 8CCE 52E4 E898 D2E0 00A3" /* .âO¯¸FŒÎRäè˜Òà.£ */
5493 $"CB3D F2B1 E7F7 0C30 FF13 DB29 474C C00D" /* Ë=ò±ç÷.0ÿ.Û)GLÀ. */
5494 $"C6B7 6A2D 2F89 8E2F BDE7 F2BA C3DD 591B" /* Æ·j-/‰Ž/½çòºÃÝY. */
5495 $"CEDE C7DD 35BA 492C BB53 2AF6 7315 AC30" /* ÎÞÇÝ5ºI,»S*ös.¬0 */
5496 $"17D7 1C05 3AE4 4AB3 8D31 0DC9 7A9F 0A76" /* .×..:äJ³1.ÉzŸÂv */
5497 $"B4EE 95EE 6CB5 1C6A FE4F D27E 0966 CE51" /* ´î•îlµ.jþOÒ~ÆfÎQ */
5498 $"8607 E144 F4AD E999 5480 05FF 7FC2 C645" /* †.áDô­é™T€.ÿ.ÂÆE */
5499 $"D136 BB6E 89FA 9A2D F827 338F FEB9 B248" /* Ñ6»n‰úš-ø'3þ¹²H */
5500 $"23A6 377D 0E53 BBF3 D290 3AD8 F58B CE4C" /* #¦7}.S»óÒ:Øõ‹ÎL */
5501 $"24CA 8E49 76ED DA48 8856 904D C31F 305F" /* $ÊŽIvíÚHˆVMÃ.0_ */
5502 $"C441 7DAA 86D8 3FE1 5EA7 E20A CDBC 5F2A" /* ÄA}ª†Ø?á^§âÂͼ_* */
5503 $"35DC 107F DDE2 D88C 7B38 D700 4C54 9C81" /* 5Ü..ÝâØŒ{8×.LTœ */
5504 $"B8FD F39D 0F47 DE2B 6E17 7D4F E30F F60C" /* ¸ýó.GÞ+n.}Oã.ö. */
5505 $"0895 5694 3006 1211 EFEC D7F8 F743 3D43" /* .•V”0...ïì×ø÷C=C */
5506 $"6BA5 7C06 9025 9188 E369 0FC8 94CB F38E" /* k¥|.%‘ˆãi.È”ËóŽ */
5507 $"DF76 CA67 91C4 D786 F34F 1E56 332B 1404" /* ßvÊg‘Ä׆óO.V3+.. */
5508 $"B66B 2702 B13D 47B8 1FBD 38D7 A2DF 54EF" /* ¶k'.±=G¸.½8×¢ßTï */
5509 $"FD1C 00CC 5D05 5B28 3EBF 2FC7 7263 5880" /* ý..Ì].[(>¿/ÇrcX€ */
5510 $"0364 4A0B 982F 4A13 A55F 5D64 61D2 110C" /* .dJ.˜/J.¥_]daÒ.. */
5511 $"4319 318A 5BD6 94B7 DBA9 92F0 379B 0E87" /* C.1Š[Ö”·Û©’ð7›.‡ */
5512 $"4561 92A0 0000 0000 0000 12FE B897 0ABD" /* Ea’ .......þ¸—½ */
5513 $"B3C7 FEA8 AE43 B177 DA3F 2BA3 2D59 3358" /* ³Çþ¨®C±wÚ?+£-Y3X */
5514 $"9FAE 567F E53B 2877 9FFF 7FFF 7FFB 4B90" /* Ÿ®V.å;(wŸÿ.ÿ.ûK */
5515 $"C00D FEA3 7DF6 39C4 C825 2952 2C65 8FFF" /* À.þ£}ö9ÄÈ%)R,eÿ */
5516 $"7E91 DB49 1333 7DEC 6471 1E2E 394E A080" /* ~‘ÛI.3}ìdq..9N € */
5517 $"C1C9 0DD4 62C4 4FC9 E332 BC0D F9DD FEAB" /* ÁÉ.ÔbÄOÉã2¼.ùÝþ« */
5518 $"9D33 8271 2A01 8484 B009 6058 624E 2736" /* 3‚q*.„„°Æ`XbN'6 */
5519 $"529C A0F4 BCBB 846D 32FD 407C FA84 2D52" /* Rœ ô¼»„m2ý@|ú„-R */
5520 $"21DC 1623 210B 0410 4061 212D 0386 04FF" /* !Ü.#!...@a!-.†.ÿ */
5521 $"7F72 1DFF 6F83 6A31 2B6E 0A6B D1F1 9A43" /* .r.ÿoƒj1+nÂkÑñšC */
5522 $"F340 2C47 D413 DFAC FF76 46AC 4BDD 55F0" /* ó@,GÔ.߬ÿvF¬KÝUð */
5523 $"2F9A 3BC6 613E 2F69 F45C 08F3 3FCB F83F" /* /š;Æa>/iô\.ó?Ëø? */
5524 $"F7D8 DC38 0F99 4764 0309 0948 41C6 1212" /* ÷ØÜ8.™Gd.ÆÆHAÆ.. */
5525 $"293B 5EA3 BE56 F760 BAEF 61FF 43D4 2891" /* );^£¾V÷`ºïaÿCÔ(‘ */
5526 $"A380 672E FF7E 4B98 FBFB 1ACD 90F6 4A7E" /* £€g.ÿ~K˜ûû.ÍöJ~ */
5527 $"3B14 E9F4 B1B4 4120 E600 AF42 0056 B131" /* ;.éô±´A æ.¯B.V±1 */
5528 $"0310 EF4F EA97 E030 9090 A298 F514 CEFA" /* ..ïOê—à0¢˜õ.Îú */
5529 $"B200 0061 211A A495 FD76 5850 B8F7 1CF1" /* ²..a!.¤•ývXP¸÷.ñ */
5530 $"A979 F478 5BFF 7FFB E6D6 F6D8 03FF 7FFD" /* ©yôx[ÿ.ûæÖöØ.ÿ.ý */
5531 $"2A36 38D4 BA43 6280 D508 C4BD 735D 1C6F" /* *68ÔºCb€Õ.Ľs].o */
5532 $"2444 63E9 1C9A 969F 90A6 F34E D24D 94F2" /* $Dcé.š–Ÿ¦óNÒM”ò */
5533 $"1A09 F86A 2762 886F FBA0 96EA 1DC7 0364" /* .Æøj'bˆoû –ê.Ç.d */
5534 $"6192 A000 0000 0000 0000 0000 0061 BE9F" /* a’ ..........a¾Ÿ */
5535 $"2C25 5C25 4958 1428 AA60 5ABF 5551 6084" /* ,%\%IX.(ª`Z¿UQ`„ */
5536 $"D319 B739 1DC3 F92F 03A7 CF66 39CC 13BE" /* Ó.·9.Ãù/.§Ïf9Ì.¾ */
5537 $"100A 204E 9A06 CBD9 A8ED 9E4D CEED AE53" /* . Nš.ËÙ¨ížMÎí®S */
5538 $"023D B3BF AC07 F70E F7DD 2601 E2B4 B214" /* .=³¿¬.÷.÷Ý&.â´². */
5539 $"3B1D 74CD 0F60 7063 EFC5 24B8 3B0F DF21" /* ;.tÍ.`pcïÅ$¸;.ß! */
5540 $"2929 3755 A800 7D09 63D9 1548 5D89 6D22" /* ))7U¨.}ÆcÙ.H]‰m" */
5541 $"FAEF 37DC EB96 FF52 0018 EBDF 464C 8B34" /* úï7Üë–ÿR..ëßFL‹4 */
5542 $"DF85 2990 1CF1 7C84 CEDC D384 5003 D5A1" /* ß…).ñ|„ÎÜÓ„P.Õ¡ */
5543 $"2797 DBDC FDFB 0E8C 3703 470D 1FD5 B974" /* '—ÛÜýû.Œ7.G..Õ¹t */
5544 $"5A32 CF32 3D2A 0213 FDC8 8A0C B595 4840" /* Z2Ï2=*..ýÈŠ.µ•H@ */
5545 $"C240 6E40 D585 AF4C 004A F98F FC90 E5BB" /* Â@n@Õ…¯L.Jùüå» */
5546 $"D6AD 2A34 0A6E 1D4D 933D 2221 80B7 C8EF" /* Ö­*4Ân.M“="!€·Èï */
5547 $"7C61 2953 2991 F91A 61A3 B54E 56D2 77E1" /* |a)S)‘ù.a£µNVÒwá */
5548 $"1DB8 8B5F 5E9C 7D32 80A0 C23F BBE6 A2B2" /* .¸‹_^œ}2€ Â?»æ¢² */
5549 $"D49F C777 4BE6 FDA6 7B0F 2983 E19B 84FF" /* ÔŸÇwKæý¦{.)ƒá›„ÿ */
5550 $"4B7B 0DD6 A35E 60AD 632D D6D7 7030 0A9F" /* K{.Ö£^`­c-Ö×p0Ÿ */
5551 $"0FA2 0820 8451 9624 D0FF 1FB4 9B81 61CC" /* .¢. „Q–$Ðÿ.´›aÌ */
5552 $"591F 6D98 E1AF 16E4 AF42 1FE0 B7C7 30DF" /* Y.m˜á¯.ä¯B.à·Ç0ß */
5553 $"CFFC EC14 15A1 B07A 4E11 ED5F BDB3 FD2A" /* Ïüì..¡°zN.í_½³ý* */
5554 $"84B1 6901 4333 27BB 2E8C 3329 2064 A800" /* „±i.C3'».Œ3) d¨. */
5555 $"0001 2FDE 803E 817B C369 A30F FCF0 FF1D" /* ../Þ€>{Ãi£.üðÿ. */
5556 $"89A1 2FD7 FF71 B63D 19EC 98DE DFE2 D9B8" /* ‰¡/×ÿq¶=.ì˜ÞßâÙ¸ */
5557 $"9D39 1737 4722 2A89 D291 623B 279F BF0B" /* 9.7G"*‰Ò‘b;'Ÿ¿. */
5558 $"E8C0 8AF8 CBE4 0011 5D58 29AB 34B0 335C" /* èÀŠøËä..]X)«4°3\ */
5559 $"36B2 1383 D820 11B8 22DF 56E1 27EF 932D" /* 6².ƒØ .¸"ßVá'ï“- */
5560 $"30DE CC72 58E3 9BDD A88C 229A CBC8 A466" /* 0ÞÌrXã›Ý¨Œ"šËȤf */
5561 $"7C29 FDE8 E789 F28F 3258 A2DD 897B 1C6A" /* |)ýèç‰ò2X¢Ý‰{.j */
5562 $"C048 306A EEA7 3DF0 F8D4 BECC CDBD 9E43" /* ÀH0jî§=ðøÔ¾ÌͽžC */
5563 $"A29D 8052 478B 6470 79B7 B38A 5743 CAE7" /* ¢€RG‹dpy·³ŠWCÊç */
5564 $"0BD4 0F4A 23E1 4C85 39C9 DEB0 75AF 151E" /* .Ô.J#áL…9ÉÞ°u¯.. */
5565 $"45D5 1681 2BA4 74C9 13B5 746A E399 9467" /* EÕ.+¤tÉ.µtjã™”g */
5566 $"E6B9 D503 7F7C D57D 4D5F 7FC8 DD43 7D9B" /* æ¹Õ..|Õ}M_.ÈÝC}› */
5567 $"3CDC F9AD 167C 162B 4E6C 2110 DB2C DF34" /* <Üù­.|.+Nl!.Û,ß4 */
5568 $"AEED CCE4 05AC 4057 9829 B161 9CA0 8159" /* ®íÌä.¬@W˜)±aœ Y */
5569 $"A64F FD15 EC5A 4A51 CA6C FD10 9A25 4291" /* ¦Oý.ìZJQÊlý.š%B‘ */
5570 $"1E90 1FC2 3530 E0DB E4E6 232E CB64 AF95" /* ..Â50àÛäæ#.Ëd¯• */
5571 $"9494 656D D395 3D62 9EDA 2EC1 DB02 1FAA" /* ””emÓ•=bžÚ.ÁÛ..ª */
5572 $"6778 0FC0 C4A2 CCA8 EDC0 4DA8 F889 162F" /* gx.ÀĢ̨íÀM¨ø‰./ */
5573 $"03F9 A9C1 C635 1DAD 2E22 580B 0B2B 83E3" /* .ù©ÁÆ5.­."X..+ƒã */
5574 $"EC02 5552 3AA8 91BA 45AF 5439 4265 71F6" /* ì.UR:¨‘ºE¯T9Beqö */
5575 $"3E7A 4412 5DE5 1863 50E6 C0ED C470 3ED9" /* >zD.]å.cPæÀíÄp>Ù */
5576 $"0E3F 48BA 54C5 915E 03F0 D836 6429 2A67" /* .?HºTÅ‘^.ðØ6d)*g */
5577 $"B7FA 6AF9 069E 8E67 2848 B570 C3AC 7746" /* ·újù.žŽg(HµpìwF */
5578 $"EB48 0A2F 4BE4 8EB3 3F8F 791F 0646 DEDF" /* ëHÂ/K䎳?y..FÞß */
5579 $"316B EFDF 6FD8 C0B9 7319 CE94 8930 C6F6" /* 1kïßoØÀ¹s.Δ‰0Æö */
5580 $"6399 C4A9 79AD E967 4783 3F8D C538 3C15" /* c™Ä©y­égGƒ?Å8<. */
5581 $"E5B7 CE98 22B7 5333 A938 B26F 0E1E EF2E" /* å·Î˜"·S3©8²o..ï. */
5582 $"74B9 72EF 9D8A 80B7 FDC1 8334 A5F9 DCFB" /* t¹r·ýÁƒ4¥ùÜû */
5583 $"B891 BB38 373C 9BE8 59F4 6018 6E63 DA65" /* ¸‘»87<›èYô`.ncÚe */
5584 $"9B13 9DC8 28DB 3C15 0D2C 11FC 0E2D 7A0A" /* ›.È(Û<..,.ü.-z */
5585 $"F8FF 671F C3FF 7F8E 1210 C212 EA5A 5F0B" /* øÿg.Ãÿ.Ž..Â.êZ_. */
5586 $"9727 F770 25A5 236D 9789 75C7 4089 11DD" /* —'÷p%¥#m—‰uÇ@‰.Ý */
5587 $"E472 3865 B217 B946 CF22 5225 27DE 566D" /* är8e².¹FÏ"R%'ÞVm */
5588 $"6799 4F82 0D46 59F5 E466 F9E7 71C3 FA80" /* g™O‚.FYõäfùçqÃú€ */
5589 $"7826 E598 FF48 E181 6CA8 5A7E C354 0CAA" /* x&å˜ÿHál¨Z~ÃT.ª */
5590 $"B01C 9EC4 181F 849B 6A13 FB8D C477 70BD" /* °.žÄ..„›j.ûÄwp½ */
5591 $"F46B 278C 4467 B0CF 3E21 805E EF97 9696" /* ôk'ŒDg°Ï>!€^ï—–– */
5592 $"CBB9 E3F6 B62E DC26 001A 408F D7E2 07C3" /* ˹ãö¶.Ü&..@×â.à */
5593 $"C1A4 AD97 4235 8863 A088 1980 C505 6E1F" /* Á¤­—B5ˆc ˆ.€Å.n. */
5594 $"F392 0B24 B500 20DC 8295 5703 F9B9 FF70" /* ó’.$µ. Ü‚•W.ù¹ÿp */
5595 $"355C 9B8D BB49 898F 1AAB F65F 7D7E E28F" /* 5\›»I‰.«ö_}~â */
5596 $"4300 BDCC FB20 4F67 CA07 0CAE 3BAD AA36" /* C.½Ìû OgÊ..®;­ª6 */
5597 $"A4D8 3358 4176 1AD6 01FA 0450 0000 0042" /* ¤Ø3XAv.Ö.ú.P...B */
5598 $"7B49 E0E8 A7D8 4EA9 E1A5 597B DB80 BA6D" /* {Iàè§ØN©á¥Y{Û€ºm */
5599 $"8010 25EA 0A26 833F DE77 DBF7 78B9 564B" /* €.%êÂ&ƒ?ÞwÛ÷x¹VK */
5600 $"57B2 AF8C BC92 97D7 46A1 23C1 B595 A2EE" /* W²¯Œ¼’—×F¡#Áµ•¢î */
5601 $"F8A9 29FA 42C2 3557 6345 80B1 FCFD F322" /* ø©)úBÂ5WcE€±üýó" */
5602 $"E992 9262 A83F E43D B059 CB12 D425 FEF2" /* é’’b¨?ä=°YË.Ô%þò */
5603 $"9932 1BD8 C65C ED82 D05E E15C 5E9C 76B7" /* ™2.ØÆ\í‚Ð^á\^œv· */
5604 $"7C64 FCDB A247 D388 3CCB 86B5 C486 2261" /* |düÛ¢GÓˆ<ˆµÄ†"a */
5605 $"BFD1 7213 39C3 0D69 6AF0 2476 B711 7E91" /* ¿Ñr.9Ã.ijð$v·.~‘ */
5606 $"6B53 6A04 4F3C 2781 A090 3118 6C3F 49BA" /* kSj.O<' 1.l?Iº */
5607 $"B81A 3FEB D686 EFCE F487 8315 E33F 84DB" /* ¸.?ëÖ†ïÎô‡ƒ.ã?„Û */
5608 $"E2C9 F35F 28C5 10C4 FF7F FA4F E953 89FC" /* âÉó_(Å.Äÿ.úOéS‰ü */
5609 $"8B32 23C6 0D04 5E49 DADA F0FE BCA7 D2C9" /* ‹2#Æ..^IÚÚðþ¼§ÒÉ */
5610 $"5869 EAD4 F153 9BF5 A5EA 3298 CC8B 8721" /* XiêÔñS›õ¥ê2˜Ì‹‡! */
5611 $"F919 680B 3F8C 304A 2849 4970 41CF 0F60" /* ù.h.?Œ0J(IIpAÏ.` */
5612 $"76D9 5820 EF21 CD4A 205A 632F 7CC4 EFDF" /* vÙX ï!ÍJ Zc/|Äïß */
5613 $"33F3 CCA8 EDAF 405B 78E1 8F79 0F66 6573" /* 3ǫ́í¯@[xáy.fes */
5614 $"35A2 AD75 1E18 6018 AF23 7C9D A008 1A01" /* 5¢­u..`.¯#| ... */
5615 $"C5FE 69AA 2C8E D97E 244D D075 F213 0CC6" /* Åþiª,ŽÙ~$MÐuò..Æ */
5616 $"738F 4395 BBC0 5CB6 3ADC 3DA8 ACB8 E018" /* sC•»À\¶:Ü=¨¬¸à. */
5617 $"BA5B 13DB 0F6A CB18 DEAC 9749 F5B5 361D" /* º[.Û.jË.Þ¬—Iõµ6. */
5618 $"CF3A C107 9606 179F F4C7 F3DE CB0B 1F53" /* Ï:Á.–..ŸôÇóÞË..S */
5619 $"F27E 5D3C 11AB 66B4 8037 0644 AE98 19BF" /* ò~]<.«f´€7.D®˜.¿ */
5620 $"D564 973A 0CF2 C96F 56D4 5CB8 666F C68C" /* Õd—:.òÉoVÔ\¸foÆŒ */
5621 $"1E73 E515 8B33 75D2 D3B4 B3A3 8CDE DE0C" /* .så.‹3uÒÓ´³£ŒÞÞ. */
5622 $"DA37 A3DF 44D2 B57E 2DB2 E891 D36F CC23" /* Ú7£ßDÒµ~-²è‘ÓoÌ# */
5623 $"ADE8 45BC BB30 78D7 77BD D4A8 087F C83F" /* ­èE¼»0x×w½Ô¨..È? */
5624 $"E49A 6873 FAC4 C12B 0056 5E18 C3CB C2E9" /* äšhsúÄÁ+.V^.ÃËÂé */
5625 $"DCAE F0E8 A75F 18DD B8DD 1DCD B0F5 3A1C" /* Ü®ðè§_.ݸÝ.Í°õ:. */
5626 $"3816 51A8 0D93 00D0 6FF6 8F07 E4BE EDF9" /* 8.Q¨.“.Ðoö.ä¾íù */
5627 $"BF0E 6CAA 5384 5DF0 DF12 4CF4 E3B3 5D6C" /* ¿.lªS„]ðß.Lôã³]l */
5628 $"602A B6F1 C0E0 E520 B0D6 71FB 7996 4930" /* `*¶ñÀàå °Öqûy–I0 */
5629 $"23DD 3601 3653 C40D 1A64 DC2B D5C2 01C9" /* #Ý6.6SÄ..dÜ+ÕÂ.É */
5630 $"5002 6BBE 7338 81EE F87D 7687 0FE6 7CF9" /* P.k¾s8îø}v‡.æ|ù */
5631 $"BAB6 5B35 1A25 421C 5BBA 4D82 4E1F B1D4" /* º¶[5.%B.[ºM‚N.±Ô */
5632 $"1907 FF78 F534 4A16 7BB6 B598 51F6 E4D3" /* ..ÿxõ4J.{¶µ˜QöäÓ */
5633 $"A04B 1198 B926 CFAE FC03 22E3 8360 E696" /*  K.˜¹&Ï®ü."ãƒ`æ– */
5634 $"F546 62F9 7178 F327 E245 4520 8D17 41C4" /* õFbùqxó'âEE .AÄ */
5635 $"9EC6 EF8D 0924 9416 7901 CE87 5EBB 286D" /* žÆïÆ$”.y.·^»(m */
5636 $"53BF 09FA 41F6 5FBA 8F4C 79A8 75BA 277A" /* S¿ÆúAö_ºLy¨uº'z */
5637 $"7D42 642B 38EE 9A49 DEDB F1B3 80D0 E5D0" /* }Bd+8îšIÞÛñ³€ÐåÐ */
5638 $"2980 F797 E7D0 F90D 4B2F AFDD 4A69 3389" /* )€÷—çÐù.K/¯ÝJi3‰ */
5639 $"1418 EBD0 6DF0 E38D 6E2F D546 C1A8 C8DD" /* ..ëÐmðãn/ÕFÁ¨ÈÝ */
5640 $"8977 E053 9C26 053A CF69 97F9 7FB4 9000" /* ‰wàSœ&.:Ïi—ù.´. */
5641 $"0000 0115 0E67 B64C 0015 DD82 643D 6476" /* .....g¶L..Ý‚d=dv */
5642 $"ED28 6324 AD72 8124 1AF6 FB1B 21C9 0605" /* í(c$­r$.öû.!É.. */
5643 $"FAE6 04A6 31BF 6D67 FF7B B889 831A 4FFD" /* úæ.¦1¿mgÿ{¸‰ƒ.Oý */
5644 $"6BF5 F098 23AB A490 39F7 6AFC 3832 E2E1" /* kõð˜#«¤9÷jü82âá */
5645 $"11B2 ADB0 ECCA 83DE B4FF 3685 5106 75DE" /* .²­°ìʃ޴ÿ6…Q.uÞ */
5646 $"3047 28A0 EDBE AD29 17CD DA62 698B CE64" /* 0G( í¾­).ÍÚbi‹Îd */
5647 $"5999 2B8E BB7D C74F F009 A25D B2B5 BDD9" /* Y™+Ž»}ÇOðÆ¢]²µ½Ù */
5648 $"B852 BFFE 0B74 9C05 22D7 B0A3 2139 0979" /* ¸R¿þ.tœ."×°£!9Æy */
5649 $"5C29 BAE8 43DA F9E5 5383 AFD2 14EC 64AA" /* \)ºèCÚùåSƒ¯Ò.ìdª */
5650 $"442C CE71 74ED 5C27 4331 9374 AC77 47EE" /* D,Îqtí\'C1“t¬wGî */
5651 $"31AC 4C74 97BC 753C D5DC 3D8B F7D2 C612" /* 1¬Lt—¼u<ÕÜ=‹÷ÒÆ. */
5652 $"2399 F431 07A1 76CA DAE6 772B 309A C800" /* #™ô1.¡vÊÚæw+0šÈ. */
5653 $"9F2F D6DF A44C 48EB 853E 4140 A123 BCA3" /* Ÿ/ÖߤLHë…>A@¡#¼£ */
5654 $"D096 00DA 0822 DFB3 6887 B31F A18F 59BE" /* Ж.Ú."ß³h‡³.¡Y¾ */
5655 $"6B25 B5CF CFA3 8806 85B7 ED84 B20B CDA2" /* k%µÏÏ£ˆ.…·í„².Í¢ */
5656 $"A0C8 404B 3FFF 7FF3 3816 5BF0 A16B 85D0" /*  È@K?ÿ.ó8.[ð¡k…Ð */
5657 $"B87F E4BB 21F9 A3BB 9103 2944 434A 5789" /* ¸.ä»!ù£»‘.)DCJW‰ */
5658 $"E3EC B1E3 6F3E 154A 37E4 ACA6 4B02 6C5B" /* ãì±ão>.J7䬦K.l[ */
5659 $"D23A D4D4 83CE F291 CD7F 114F 5935 8EE0" /* Ò:ÔÔƒÎò‘Í..OY5Žà */
5660 $"17EA F0B3 1D93 BC5F 2CF8 511C E99F 21D8" /* .êð³.“¼_,øQ.éŸ!Ø */
5661 $"E286 EB17 6FC2 C34B 1110 6398 03BF CB08" /* â†ë.oÂÃK..c˜.¿Ë. */
5662 $"0018 4848 E24D 90A5 63F9 B1F8 6E20 EF6E" /* ..HHâM¥cù±øn ïn */
5663 $"25D5 858B 0AE4 2235 581B D4DA E01C B006" /* %Õ…‹Âä"5X.ÔÚà.°. */
5664 $"E5EB DE78 855B 19E7 4D80 DAC2 1E8F CB2B" /* åëÞx…[.çM€ÚÂ.Ë+ */
5665 $"0EC8 3FFF 7759 B569 0861 20CC 1D71 2121" /* .È?ÿwYµi.a Ì.q!! */
5666 $"71A7 FA20 B34B EAB3 4260 A827 6E91 2B3C" /* q§ú ³Kê³B`¨'n‘+< */
5667 $"5479 449A 3161 D24E 8489 C00A 18A6 3FEC" /* TyDš1aÒN„‰ÀÂ.¦?ì */
5668 $"61F2 4C86 23C1 85DB 6ECA 221D BCC2 C25F" /* aòL†#Á…ÛnÊ".¼ÂÂ_ */
5669 $"EFFF 7891 F475 0E20 DC0A 8F85 8208 4541" /* ïÿx‘ôu. ÜÂ…‚.EA */
5670 $"579B 5EE2 24C4 5C60 39B7 D9F1 ECFD 0F0C" /* W›^â$Ä\`9·Ùñìý.. */
5671 $"3719 72A8 A543 8BF5 94BF BF6C E6F7 E45A" /* 7.r¨¥C‹õ”¿¿læ÷äZ */
5672 $"C5CF 1FD7 32F5 2D70 041E 3641 2C46 E23D" /* ÅÏ.×2õ-p..6A,Fâ= */
5673 $"E072 6889 A892 A27F 44A8 564A 74A3 B421" /* àrh‰¨’¢.D¨VJt£´! */
5674 $"E1CC A0F3 50E2 2711 6919 76BE D84B D2FE" /* áÌ óPâ'.i.v¾ØKÒþ */
5675 $"AAED 2D64 7C8F 4C55 7FFF 7EFC 2CBF 05DE" /* ªí-d|LU.ÿ~ü,¿.Þ */
5676 $"25B2 001C 00EC 6D17 ED17 E559 9DFA F731" /* %²...ìm.í.åYú÷1 */
5677 $"B21A 7394 8B35 5948 BA4F 5858 020F FF7C" /* ².s”‹5YHºOXX..ÿ| */
5678 $"C89D 1CFA F89B 9F9C 841F 19EF D626 E6DE" /* È.úø›Ÿœ„..ïÖ&æÞ */
5679 $"DCC3 3148 38A0 C32F 898F BEC3 0AF3 318C" /* ÜÃ1H8 Ã/‰¾ÃÂó1Œ */
5680 $"5E09 119B 43C8 9FE6 73B2 F4B9 9789 4BFC" /* ^Æ.›CÈŸæs²ô¹—‰Kü */
5681 $"99A2 FF7F FF7A 4FD0 8C64 F459 410C 013C" /* ™¢ÿ.ÿzOÐŒdôYA..< */
5682 $"1C6C 85B5 1C8F D078 995D 714E 1C60 3090" /* .l…µ.Ðx™]qN.`0 */
5683 $"9058 77C4 BB80 5F57 1871 CA72 B2FD 0016" /* XwÄ»€_W.qÊr²ý.. */
5684 $"BAA7 F84F F4E9 ACDF F766 8CB4 475D 2F0B" /* º§øOôé¬ß÷fŒ´G]/. */
5685 $"37BC 18C8 6162 79C2 BDD7 8753 204B A536" /* 7¼.Èaby½ׇS K¥6 */
5686 $"9CBE 4972 316A BCB1 9442 4238 B88F 2F48" /* œ¾Ir1j¼±”BB8¸/H */
5687 $"7A45 5CD1 A306 3A23 5A78 354F CDB6 C0A5" /* zE\Ñ£.:#Zx5OͶÀ¥ */
5688 $"2A5C 19DA 0B0C CD84 8D85 D2B8 1DC9 059C" /* *\.Ú..Í„…Ò¸.É.œ */
5689 $"A8C4 8118 4848 9372 9372 566C 21E5 2665" /* ¨Ä.HH“r“rVl!å&e */
5690 $"D16C 6601 48A8 35CE 7FFF 7F19 B54E 7F04" /* Ñlf.H¨5Î.ÿ..µN.. */
5691 $"10EC 1AA3 13FF 4588 9722 A7AA B011 863C" /* .ì.£.ÿEˆ—"§ª°.†< */
5692 $"E4B1 717B 7C2D 21E6 267B 4B48 E790 FF76" /* ä±q{|-!æ&{KHçÿv */
5693 $"40CC F425 41CB 289F 809D 8170 A529 2EDA" /* @Ìô%AË(Ÿ€p¥).Ú */
5694 $"A105 B3AF FB44 7951 B87A 0091 5B53 5979" /* ¡.³¯ûDyQ¸z.‘[SYy */
5695 $"CDC6 5976 6393 34F2 21FF 7FFF 7FFF 7D43" /* ÍÆYvc“4ò!ÿ.ÿ.ÿ}C */
5696 $"4F4B C77F 73C7 0454 BE9C BE9C 282E 440E" /* OKÇ.sÇ.T¾œ¾œ(.D. */
5697 $"0608 A380 6121 2103 DBD2 250B 5D57 9159" /* ..£€a!!.ÛÒ%.]W‘Y */
5698 $"B69A 28CF E66A 154F F84F F4E9 99ED 48C4" /* ¶š(Ïæj.OøOôé™íHÄ */
5699 $"CA7E BE76 FC67 A7CD DC26 1C00 0184 8463" /* Ê~¾vüg§ÍÜ&...„„c */
5700 $"69A8 C0A9 127C 5830 CC3A 380A C742 E4DE" /* i¨À©.|X0Ì:8ÂÇBäÞ */
5701 $"06F5 7999 556D FD9F 268B 895F FF4B 7BB9" /* .õy™UmýŸ&‹‰_ÿK{¹ */
5702 $"C201 52B7 B483 0906 65EC 1848 4750 6F27" /* Â.R·´ƒÆ.eì.HGPo' */
5703 $"C86C 1F27 9108 6253 0416 4CD3 30E4 7F77" /* Èl.'‘.bS..LÓ0ä.w */
5704 $"0705 8420 83B6 BCB6 29DE B71E 8DC5 851A" /* ..„ ƒ¶¼¶)Þ·.Å…. */
5705 $"ABB0 83D8 F2E2 5113 55D2 AAF6 B3AB 7679" /* «°ƒØòâQ.UÒªö³«vy */
5706 $"49FE A1F8 6F30 0EC0 7D91 534C C78C DC5D" /* Iþ¡øo0.À}‘SLÇŒÜ] */
5707 $"5A42 CA06 37D8 E0ED 27FA 3E31 C849 D2BE" /* ZBÊ.7Øàí'ú>1ÈIÒ¾ */
5708 $"847C 0CCF 676F ACFE 91A3 0F62 B711 1897" /* „|.Ïgo¬þ‘£.b·..— */
5709 $"9DC3 8E37 3AF8 907E 0B69 1577 2856 AA36" /* ÃŽ7:ø~.i.w(Vª6 */
5710 $"FAC0 D56C 6686 0443 CA96 FDCD 051B 23A7" /* úÀÕlf†.CÊ–ýÍ..#§ */
5711 $"7DAC 8229 C5FC F840 103A 6407 49F7 6B32" /* }¬‚)Åüø@.:d.I÷k2 */
5712 $"254F 2B32 7FC1 F460 D5C0 5EE1 3046 612A" /* %O+2.Áô`ÕÀ^á0Fa* */
5713 $"1BC1 C143 7B76 B9EF ECCB 5EE9 8F0C 3F71" /* .ÁÁC{v¹ïìË^é.?q */
5714 $"E805 8B9B 17B7 9ECE C237 AF5C 0062 E61E" /* è.‹›.·žÎÂ7¯\.bæ. */
5715 $"DF6C C1F7 904E 4379 2A9C 92FC 1B04 00A8" /* ßlÁ÷NCy*œ’ü...¨ */
5716 $"F9D5 DB1B C4C6 9485 ABC2 1199 CCF2 0A47" /* ùÕÛ.ÄÆ”…«Â.™ÌòÂG */
5717 $"9693 C097 7AD0 449A FC53 DEC5 6EE8 6BF7" /* –“À—zÐDšüSÞÅnèk÷ */
5718 $"0D7D 4ED8 3426 DA7E ECF9 57ED 9252 9A6A" /* .}NØ4&Ú~ìùWí’Ršj */
5719 $"2B94 2614 1B6E A495 8261 4D5E DAEF 03FA" /* +”&..n¤•‚aM^Úï.ú */
5720 $"8A63 9496 E8AB A1A6 5B5C B03E E73E 2889" /* Šc”–è«¡¦[\°>ç>(‰ */
5721 $"D257 6C28 080A 68DC 226C 950F F55B E7CC" /* ÒWl(.ÂhÜ"l•.õ[çÌ */
5722 $"95AD FDA7 43EA 7489 A545 C0FC E9B0 2A25" /* •­ý§Cêt‰¥EÀüé°*% */
5723 $"719C EE06 9E5A 8FC0 D3B0 0C81 1EB0 C8C6" /* qœî.žZÀÓ°..°ÈÆ */
5724 $"25BD B383 33BD B80D D9A9 48F3 7539 D7D5" /* %½³ƒ3½¸.Ù©Hóu9×Õ */
5725 $"8021 5EBA 94A7 83A3 69FE 8179 9106 BC56" /* €!^º”§ƒ£iþy‘.¼V */
5726 $"14A4 427B 8C09 BACB 2FC9 B8F3 CAFA E51C" /* .¤B{ŒÆºË/ɸóÊúå. */
5727 $"9C07 9A69 033C 6159 163E 6ED8 259D 7AAB" /* œ.ši.<aY.>nØ%z« */
5728 $"D316 475C F6C7 BD0E 7972 4C59 DF3A D5B4" /* Ó.G\öǽ.yrLYß:Õ´ */
5729 $"44ED 7D01 B0FB 34D4 4C9C BC2D B8A6 5B65" /* Dí}.°û4ÔLœ¼-¸¦[e */
5730 $"134F 0C96 5CA1 21CC A249 F17D 4660 9835" /* .O.–\¡!Ì¢Iñ}F`˜5 */
5731 $"957C 7392 53A9 DE42 E650 604B 10E2 FF12" /* •|s’S©ÞBæP`K.âÿ. */
5732 $"B47A 044A 524A B8D3 60B5 A258 CEAB 55E8" /* ´z.JRJ¸Ó`µ¢XΫUè */
5733 $"5219 EC3E A9F6 0813 A2B4 930C EDE4 3BBE" /* R.ì>©ö..¢´“.íä;¾ */
5734 $"C0E3 7F93 1A3F 38EB 2DE3 492D A3BD FD00" /* Àã.“.?8ë-ãI-£½ý. */
5735 $"811C 530E 2FB8 9D68 2466 D288 EC29 9094" /* .S./¸h$fÒˆì)” */
5736 $"A3C7 2D32 0A25 BA73 2023 08CA C360 2C72" /* £Ç-2Â%ºs #.ÊÃ`,r */
5737 $"8BA9 516A 7081 F2FF 1E84 E1C2 F841 77CE" /* ‹©Qjpòÿ.„áÂøAwÎ */
5738 $"ABDF 6476 30A4 3018 F7F4 F3EE 1A5E 5DF0" /* «ßdv0¤0.÷ôóî.^]ð */
5739 $"CAAA AA77 C90D 52C4 6AA9 5755 33B9 1814" /* ʪªwÉ.RÄj©WU3¹.. */
5740 $"3528 E205 C379 648A E627 A23E D5DB 1CAE" /* 5(â.ÃydŠæ'¢>ÕÛ.® */
5741 $"4868 B7D4 F381 2534 1F48 2BCC 5211 3B0F" /* Hh·Ôó%4.H+ÌR.;. */
5742 $"9692 B002 4CFB 1F83 3628 D1EB 5416 0648" /* –’°.Lû.ƒ6(ÑëT..H */
5743 $"F0F0 B0F8 C7C7 6E92 8C54 6859 791B 7890" /* ðð°øÇÇn’ŒThYy.x */
5744 $"EBA3 BC74 5F3F C4AD 7C9D 6954 2D0C 15BF" /* 룼t_?Ä­|iT-..¿ */
5745 $"F699 82A6 4170 D2F1 02A5 7EF3 6061 C9CF" /* ö™‚¦ApÒñ.¥~ó`aÉÏ */
5746 $"C370 E129 F805 8CC8 C670 CBDC 2D44 D349" /* Ãpá)ø.ŒÈÆpËÜ-DÓI */
5747 $"F3E5 C5F9 357E 3DF2 CDF3 DC8A 1F13 5B2D" /* óåÅù5~=òÍóÜŠ..[- */
5748 $"C544 448D 1038 8293 4EEA 75A4 0738 7D9F" /* ÅDD.8‚“Nêu¤.8}Ÿ */
5749 $"C002 3D68 26D8 7B06 FB10 CCDF C4F3 5364" /* À.=h&Ø{.û.ÌßÄóSd */
5750 $"2342 154B F8FB 01ED 8893 9160 A3A0 B81D" /* #B.Køû.툓‘`£ ¸. */
5751 $"47A0 6C82 1CBA FAED 931D E025 BDFF 1535" /* G l‚.ºúí“.à%½ÿ.5 */
5752 $"CADF 68C5 41FD 3896 1AC9 F979 A885 F5AE" /* ÊßhÅAý8–.Éùy¨…õ® */
5753 $"EFBE C674 ED92 5FE9 E9AF FF52 D573 A6DD" /* ï¾Ætí’_éé¯ÿRÕs¦Ý */
5754 $"631B 27E4 62CB B76E 7020 EC65 75E2 DB6F" /* c.'äbË·np ìeuâÛo */
5755 $"0E10 980A 0EA3 2287 4CF8 D402 52B8 1491" /* ..˜Â.£"‡LøÔ.R¸.‘ */
5756 $"21C9 BC2B 48BC CBD4 464A C539 6CD5 28F1" /* !ɼ+H¼ËÔFJÅ9lÕ(ñ */
5757 $"CAE4 CA43 9CB8 B181 BF06 522B 4D19 8295" /* ÊäÊCœ¸±¿.R+M.‚• */
5758 $"05C8 D7CD 8CFA D3E7 7BC9 630C DCDD 7C7E" /* .È×ÍŒúÓç{Éc.ÜÝ|~ */
5759 $"E4C6 D7DC 5E38 67CC 5934 9E8D 9552 B837" /* äÆ×Ü^8gÌY4ž•R¸7 */
5760 $"53AE 6D39 FAB1 2EB6 886C 1855 26ED AD08" /* S®m9ú±.¶ˆl.U&í­. */
5761 $"1EBE 9570 EA2F DFFF 06F4 ABF3 4534 2831" /* .¾•pê/ßÿ.ô«óE4(1 */
5762 $"1AE2 0A99 2956 2A90 C2A4 58AC E49E F047" /* .â™)V*¤X¬äžðG */
5763 $"A9BA C394 E8F4 6427 7966 A79C 4269 9ADD" /* ©ºÃ”èôd'yf§œBišÝ */
5764 $"AD1D 1A7E 375C D3FB 8C25 0B6B 0460 5EB9" /* ­..~7\ÓûŒ%.k.`^¹ */
5765 $"416C AE82 DFC3 09DA 1F69 8796 6897 8CD0" /* Al®‚ßÃÆÚ.i‡–h—ŒÐ */
5766 $"3E1B FF7D 9AE9 7F6D 4E84 967C 674F CA41" /* >.ÿ}šé.mN„–|gOÊA */
5767 $"44C1 0575 93A9 2599 66D0 AB7B 6260 D32C" /* DÁ.u“©%™fЫ{b`Ó, */
5768 $"94AF 7FC8 82FD F692 92FE B6ED A660 750F" /* ”¯.È‚ýö’’þ¶í¦`u. */
5769 $"80A2 A8AA E6F6 7B9F E894 ED71 D223 6F4B" /* €¢¨ªæö{Ÿè”íqÒ#oK */
5770 $"A203 F64C 7560 DBB1 6F9E EE9F 2945 C994" /* ¢.öLu`Û±ožîŸ)EÉ” */
5771 $"BA00 D3D1 6414 A300 4296 670B 2350 CDD1" /* º.ÓÑd.£.B–g.#PÍÑ */
5772 $"DF61 29E8 EC17 87B6 BC62 B6BD 5F31 13B2" /* ßa)èì.‡¶¼b¶½_1.² */
5773 $"48A2 F723 53C7 6955 969B ED83 6A9B 1B06" /* H¢÷#SÇiU–›íƒj›.. */
5774 $"C7D0 2584 430B 8C52 D00A 736B D6FB AEDB" /* ÇÐ%„C.ŒRÐÂskÖû®Û */
5775 $"2BA1 5095 759B 0AFF 5138 58EF 3DC2 B14D" /* +¡P•u›ÂÿQ8Xï=±M */
5776 $"3B7D 62D0 DE12 CFEF 17A3 32C4 C79A C2DA" /* ;}bÐÞ.Ïï.£2ÄÇšÂÚ */
5777 $"6BA1 6478 B1D3 2278 3787 6C30 08FD 6095" /* k¡dx±Ó"x7‡l0.ý`• */
5778 $"FF65 1DF4 7606 34C3 B4EE E609 A3BF 7085" /* ÿe.ôv.4ôîæÆ£¿p… */
5779 $"8B3B 2C80 D860 6043 10A4 24B1 2D80 880D" /* ‹;,€Ø``C.¤$±-€ˆ. */
5780 $"671A 9A76 E1D4 2304 B4E0 9E47 129D 6316" /* g.šváÔ#.´àžG.c. */
5781 $"33DF C88C 3BB6 5232 475C D19D FA9B 3303" /* 3ßÈŒ;¶R2G\Ñú›3. */
5782 $"2956 D8B1 08A5 2735 CD4D F130 C700 DA0D" /* )Vر.¥'5ÍMñ0Ç.Ú. */
5783 $"7BAE 21FA FB1B 35A5 957E 0211 955B 25D0" /* {®!úû.5¥•~..•[%Ð */
5784 $"A3DD B72F 5BCD 8792 418E BCB6 C727 DD0F" /* £Ý·/[͇’AŽ¼¶Ç'Ý. */
5785 $"2D42 F031 2A73 C1F9 7964 B937 1E77 A757" /* -Bð1*sÁùyd¹7.w§W */
5786 $"D158 CB02 80D3 C310 E1C5 709C 5C69 7F04" /* ÑXË.€ÓÃ.áÅpœ\i.. */
5787 $"4476 F017 3FF2 B891 0160 D681 AEBC F8C9" /* Dvð.?ò¸‘.`Ö®¼øÉ */
5788 $"8F46 7922 4414 5CEE 0CA8 417B 33BB 5926" /* Fy"D.\î.¨A{3»Y& */
5789 $"B7A6 7094 6363 C5F2 9AD7 1751 2456 3B83" /* ·¦p”ccÅòš×.Q$V;ƒ */
5790 $"9BB0 0ECD 1420 6141 A097 DBF4 802A 2377" /* ›°.Í. aA —Ûô€*#w */
5791 $"CDAC EFE9 4A16 4B3C 5058 A5DC 1C40 169E" /* ͬïéJ.K<PX¥Ü.@.ž */
5792 $"3999 F0C2 C418 2E8F 0951 664A 7082 F49F" /* 9™ðÂÄ..ÆQfJp‚ôŸ */
5793 $"E576 B2B1 5918 E3EE 9B97 1686 6499 A572" /* åv²±Y.ãî›—.†d™¥r */
5794 $"B1F6 2F39 A798 6292 DE22 007B 60AD 1D94" /* ±ö/9§˜b’Þ".{`­.” */
5795 $"31BA 068D F15A 06DB 2654 6B52 F692 3C3A" /* 1º.ñZ.Û&TkRö’<: */
5796 $"0DA8 A74B 30F6 3852 76F0 A897 9086 FBD5" /* .¨§K0ö8Rv𨗆ûÕ */
5797 $"1C78 047E 7BF2 08EE 7B45 85C5 6ED5 AA43" /* .x.~{ò.î{E…ÅnÕªC */
5798 $"F423 8A4E 4111 C68E 172E DD87 AF9E BF19" /* ô#ŠNA.ÆŽ..݇¯ž¿. */
5799 $"D4D2 020C 6FD5 EE3F F0E8 289E 4E6C 0871" /* ÔÒ..oÕî?ðè(žNl.q */
5800 $"1187 D3F1 E458 94F5 4519 BF3C D239 D86C" /* .‡ÓñäX”õE.¿<Ò9Øl */
5801 $"17F1 8916 4206 2346 ACD8 1F08 9A44 0AB3" /* .ñ‰.B.#F¬Ø..šD³ */
5802 $"CEE6 441D 78D5 2909 4CEA 46F7 D6C6 D21A" /* ÎæD.xÕ)ÆLêF÷ÖÆÒ. */
5803 $"6D41 BB64 ADFF 6252 5A80 3556 C459 2845" /* mA»d­ÿbRZ€5VÄY(E */
5804 $"C05D C2C5 1F69 4087 0380 C0FF 61AA D5D1" /* À]ÂÅ.i@‡.€ÀÿaªÕÑ */
5805 $"E5C2 5FC0 CEF4 2D59 B4A3 6BA8 343E 184B" /* åÂ_ÀÎô-Y´£k¨4>.K */
5806 $"89CE 81FD AC96 C691 FDE5 F993 B9CB 6302" /* ‰Îý¬–Æ‘ýåù“¹Ëc. */
5807 $"B8EE 86B4 A2F7 19EA DAFD D511 B59F BBD2" /* ¸î†´¢÷.êÚýÕ.µŸ»Ò */
5808 $"5D4E F6A3 BC58 51D5 273F 2E2E 2B6A 2755" /* ]Nö£¼XQÕ'?..+j'U */
5809 $"38A3 CA29 BFAB D31D CD53 B29C 7418 40DB" /* 8£Ê)¿«Ó.ÍS²œt.@Û */
5810 $"FD56 1BF6 9350 5411 CF5C 8D26 B1FA 754F" /* ýV.ö“PT.Ï\&±úuO */
5811 $"E584 8277 6221 6866 257C 9FC9 65A5 6D93" /* å„‚wb!hf%|ŸÉe¥m“ */
5812 $"C524 B971 3F1D 34A0 BBF4 6B83 9722 CFAD" /* Å$¹q?.4 »ôkƒ—"Ï­ */
5813 $"8296 103F 53BB 1B22 8A84 2FAC 94DE 4994" /* ‚–.?S»."Š„/¬”ÞI” */
5814 $"2D31 56A5 DBCD B661 81D7 B360 4958 8FF5" /* -1V¥ÛͶa׳`IXõ */
5815 $"EB02 25A9 6386 8241 D936 A3CB AA88 9936" /* ë.%©c†‚AÙ6£Ëªˆ™6 */
5816 $"1698 4F59 765B 34EA 3741 D2D3 2DAC 854D" /* .˜OYv[4ê7AÒÓ-¬…M */
5817 $"366B C9A0 15F8 D2E6 7CCF 99EF A794 460C" /* 6kÉ .øÒæ|ϙ倫F. */
5818 $"934E C88B 2BF5 91F7 7BD1 3DC9 6ED3 91FE" /* “NÈ‹+õ‘÷{Ñ=ÉnÓ‘þ */
5819 $"E63B EDCC 3D4A CC1B AE5D 88D0 B241 20D1" /* æ;íÌ=JÌ.®]ˆÐ²A Ñ */
5820 $"AB6C 9FE2 E494 395E 8E3C 0EB0 1796 58CC" /* «lŸâä”9^Ž<.°.–XÌ */
5821 $"9791 D931 DB33 473E 003E 10CD B736 7295" /* —‘Ù1Û3G>.>.Í·6r• */
5822 $"DD81 B481 9A0A ED27 3C1E 6298 FD0D BDE0" /* Ý´šÂí'<.b˜ý.½à */
5823 $"11D6 8A21 79C1 DBB7 FEDC 6E48 8080 5ADB" /* .ÖŠ!yÁÛ·þÜnH€€ZÛ */
5824 $"E61D 9E0E E6A3 6D38 A028 4016 464D F534" /* æ.ž.æ£m8 (@.FMõ4 */
5825 $"D764 3AD7 55DF 3CAB 7B3D 12F5 9A8D DDCF" /* ×d:×Uß<«{=.õšÝÏ */
5826 $"6CCD 0387 C982 0FE9 D431 0FE3 E064 1700" /* lÍ.‡É‚.éÔ1.ãàd.. */
5827 $"1AAD F49E D6DE A939 8010 C91B 605B 4E0A" /* .­ôžÖÞ©9€.É.`[NÂ */
5828 $"FCBE ADE9 C17A EC1F 3990 9EB2 E6BF 92AA" /* ü¾­éÁzì.9ž²æ¿’ª */
5829 $"951C D27F A984 10A9 22DC 996E FF6E 12AE" /* •.Ò.©„.©"Ü™nÿn.® */
5830 $"DC03 5AB3 2CA0 8291 4174 C69E AE28 DBA8" /* Ü.Z³, ‚‘AtÆž®(Û¨ */
5831 $"38A8 FF12 67D3 F8A3 00D6 2A2E A564 CEFA" /* 8¨ÿ.gÓø£.Ö*.¥dÎú */
5832 $"0F00 4B44 62A7 CA9F F072 2821 DD3C 6A34" /* ..KDb§ÊŸðr(!Ý<j4 */
5833 $"926C 8F3C 1548 D31A 021F 2604 252D A929" /* ’l<.HÓ...&.%-©) */
5834 $"172B 8212 174F 2D2D CC7D DA15 F9A9 AD7E" /* .+‚..O--Ì}Ú.ù©­~ */
5835 $"59D3 7885 9215 C77B 6583 4D8F 3308 149C" /* YÓx…’.Ç{eƒM3..œ */
5836 $"270A 4508 21C9 A05B CDE9 BEF1 C18A 4B74" /* 'ÂE.!É [Íé¾ñÁŠKt */
5837 $"F07B 0DFE 007B E5AF D9AA CED7 8661 34C7" /* ð{.þ.{å¯ÙªÎ׆a4Ç */
5838 $"AA26 21AC D09C 6BAA EABB A7C4 486E 40A5" /* ª&!¬Ðœkªê»§ÄHn@¥ */
5839 $"C791 976A 1EC3 534F 84EC E6E9 7363 FF08" /* Ç‘—j.ÃSO„ìæéscÿ. */
5840 $"5B20 0E29 000C 5E8F 3339 6210 65CC FD34" /* [ .)..^39b.eÌý4 */
5841 $"76EB F1B2 76C6 5FDC C1A8 B0F5 53EE 103C" /* vëñ²vÆ_ÜÁ¨°õSî.< */
5842 $"50B0 650F 8459 9777 E890 E28A BB84 56B9" /* P°e.„Y—wè⊻„V¹ */
5843 $"0522 90F9 5B81 C982 979E E507 A4BC 26C3" /* ."ù[É‚—žå.¤¼&à */
5844 $"E356 F2A9 C0D1 BFF3 F882 EC0E 6AA9 CA0D" /* ãVò©ÀÑ¿óø‚ì.j©Ê. */
5845 $"4419 16FB 9BEF 947E F848 19BF 5CB6 EA4E" /* D..û›ï”~øH.¿\¶êN */
5846 $"C290 F254 020B 51DB 8094 4D05 E9A5 21A0" /* ÂòT..QÛ€”M.é¥!  */
5847 $"D3E6 84EA 5A3E 4380 650C B24F 31DA 209F" /* Óæ„êZ>C€e.²O1Ú Ÿ */
5848 $"F51A 9108 7912 32B0 52A6 A901 CADB A758" /* õ.‘.y.2°R¦©.ÊÛ§X */
5849 $"C00A D516 E462 35B4 C071 131A 0F01 9A95" /* ÀÂÕ.äb5´Àq....š• */
5850 $"9739 F131 0E5F 7FBA D8AD 925F 992C 0187" /* —9ñ1._.ºØ­’_™,.‡ */
5851 $"D97C 832B 847E 1148 0402 0449 FB25 D0F1" /* Ù|ƒ+„~.H...Iû%Ðñ */
5852 $"C1F8 2B8E CE97 D5A4 BEFE 7F0D E420 E43E" /* Áø+ŽÎ—Õ¤¾þ..ä ä> */
5853 $"801A 448D 9D61 D23C 5956 3DEB A1A6 0858" /* €.DaÒ<YV=롦.X */
5854 $"CD98 F32B 92E6 D960 C0E1 E542 294D 6FD3" /* ͘ó+’æÙ`ÀáåB)MoÓ */
5855 $"4234 37C9 3537 275F AC1E 936D 534A BF02" /* B47É57'_¬.“mSJ¿. */
5856 $"B742 8CAB BE88 E4FF 23DC D9EB 1FC4 9CF0" /* ·BŒ«¾ˆäÿ#ÜÙë.Äœð */
5857 $"C5D1 3F1D 5995 AD68 12E9 71B3 2100 AFB7" /* ÅÑ?.Y•­h.éq³!.¯· */
5858 $"CBF7 9ADB D5FF 48EE B1A2 AE4D E021 7C07" /* Ë÷šÛÕÿHî±¢®Mà!|. */
5859 $"5AD5 E94C A965 DFE8 B32A 23AB DE05 4FB1" /* ZÕéL©eßè³*#«Þ.O± */
5860 $"FDB7 ECC5 3611 73D9 B03C 399A D5F6 663D" /* ý·ìÅ6.sÙ°<9šÕöf= */
5861 $"0E78 0BEE 67D9 2F9D 0072 E938 509C 9779" /* .x.îgÙ/.ré8Pœ—y */
5862 $"6C64 03A1 B8C9 C1C0 2256 29EA 112C FB1C" /* ld.¡¸ÉÁÀ"V)ê.,û. */
5863 $"766C DF51 83B1 388F 902E EE03 337E 689A" /* vlßQƒ±8.î.3~hš */
5864 $"CA5A A9F0 09AF 3422 4115 D489 3FBD 22C1" /* ÊZ©ðƯ4"A.Ô‰?½"Á */
5865 $"4A4F 642A 0AC8 D01C 2950 18CA D441 780A" /* JOd*ÂÈÐ.)P.ÊÔAx */
5866 $"C929 A7FF 0AFA 956A A581 B590 9B7A 7D74" /* É)§ÿÂú•j¥µ›z}t */
5867 $"2084 3DC1 5D81 B12B DF9C 333D EFAD 0ADD" /* „=Á]±+ßœ3=ï­ÂÝ */
5868 $"3445 4F8C 132E F02F C2E7 E13F BE12 2F84" /* 4EOŒ..ð/Âçá?¾./„ */
5869 $"7FC3 D55F 876A BE1D 07F2 688D 774C FC3E" /* .ÃÕ_‡j¾..òhwLü> */
5870 $"A177 C3EA 4FE4 AFFE 1BFF 61D3 2F87 4BFC" /* ¡wÃêOä¯þ.ÿaÓ/‡Kü */
5871 $"946E 03F8 6CFF 06A3 FC28 FE13 BF0F 6B7E" /* ”n.ølÿ.£ü(þ.¿.k~ */
5872 $"1EB8 FC3B 47E1 ECEE EEDF F87D 51FF 07D5" /* .¸ü;Gáìîîßø}Qÿ.Õ */
5873 $"0BBB 87E1 D3FF 0779 FC3B 6FE1 D378 0DF0" /* .»‡áÓÿ.yü;oáÓx.ð */
5874 $"BD7C 29EB A2DD 17F2 6ADB E1DB 7F0D 97E1" /* ½|)ë¢Ý.òjÛáÛ..—á */
5875 $"E84D 7750 FC3E 906F C3E8 35DD 42ED AFE1" /* èMwPü>oÃè5ÝBí¯á */
5876 $"D33F 0E8D F86E 00F7 91DD 3D8B A94D D83C" /* Ó?.øn.÷‘Ý=‹©MØ< */
5877 $"B51B 129C 103F 899D B929 4724 C188 2C29" /* µ..œ.?‰¹)G$Áˆ,) */
5878 $"CE89 11F8 9065 1C37 E234 DFEF 60D7 3221" /* Ή.øe.7â4ßï`×2! */
5879 $"5343 F889 DCDB AFB3 6F20 F76A 31D9 986E" /* SCø‰ÜÛ¯³o ÷j1Ù˜n */
5880 $"A745 547E 6F18 076D A675 BA1A 1AAF 6558" /* §ET~o..m¦uº..¯eX */
5881 $"338A FF71 4707 0776 1B62 BCCC 89E5 4726" /* 3ŠÿqG..v.b¼Ì‰åG& */
5882 $"A7CB 8885 E07C DADC D741 3B1D D81F AB03" /* §Ëˆ…à|ÚÜ×A;.Ø.«. */
5883 $"2F84 F52D DFD5 7384 4649 7BA2 5AB1 14C8" /* /„õ-ßÕs„FI{¢Z±.È */
5884 $"3D8D B951 8183 C33A B08E 82CC EF1A F046" /* =¹QƒÃ:°Ž‚Ìï.ðF */
5885 $"5B62 C9E0 A926 F330 0A61 A30C 6194 7E1E" /* [bÉà©&ó0Âa£.a”~. */
5886 $"1EE9 3D0D 1ABE 5536 A026 8B32 830F C02F" /* .é=..¾U6 &‹2ƒ.À/ */
5887 $"3041 04B7 2C65 024D AC81 D2CC 03CA A08A" /* 0A.·,e.M¬ÒÌ.Ê Š */
5888 $"B105 F3F1 C365 6BCE 9876 A867 7DBA 63AF" /* ±.óñÃekΘv¨g}ºc¯ */
5889 $"0973 495F DCC1 3552 54BA 5BDB 618D C6C0" /* ÆsI_ÜÁ5RTº[ÛaÆÀ */
5890 $"91B8 4489 141B A7D3 F188 8A97 DAB0 8942" /* ‘¸D‰..§ÓñˆŠ—Ú°‰B */
5891 $"EA67 F235 E18A 871B 4B0C DAC6 9050 BA9C" /* êgò5ኇ.K.ÚÆPºœ */
5892 $"C432 95CE 13CA 93ED 4FD5 9495 377D C920" /* Ä2•Î.Ê“íOÕ”•7}É */
5893 $"C8A2 F997 5348 8890 91D5 0A23 50BF 3C37" /* È¢ù—SHˆ‘ÕÂ#P¿<7 */
5894 $"8372 7C96 32AA 1CD2 46BE 8220 C983 2A71" /* ƒr|–2ª.ÒF¾‚ Ƀ*q */
5895 $"7961 BF33 9590 C086 CCE9 578B 322E FB50" /* ya¿3•À†ÌéW‹2.ûP */
5896 $"CB68 6459 C127 EB9B E974 EF02 59F4 FF4D" /* ËhdYÁ'ë›étï.YôÿM */
5897 $"4525 1874 6A9F 99EB DFCC C1B1 72EA 9FA0" /* E%.tjŸ™ëßÌÁ±r꟠ */
5898 $"DE00 BBB9 D95F 36B9 406E 3CE0 3BCF 32B6" /* Þ.»¹Ù_6¹@n<à;Ï2¶ */
5899 $"8DC0 55D6 C6DA 3622 8A6E 63F6 28AE 08AC" /* ÀUÖÆÚ6"Šncö(®.¬ */
5900 $"03AC 288D 069A 750E CBBD 97D9 E42D BA93" /* .¬(.šu.˽—Ùä-º“ */
5901 $"E82A 4EB3 C008 CC7C B6A7 6F70 F1BC FDAA" /* è*N³À.Ì|¶§opñ¼ýª */
5902 $"1DF4 D2E4 3ECB 9702 444E 278F 6B50 F00E" /* .ôÒä>Ë—.DN'kPð. */
5903 $"C228 C132 E5E0 B4DE 93BF DBBD 2C85 ABF9" /* Â(Á2åà´Þ“¿Û½,…«ù */
5904 $"7FAD EC28 1D40 D390 5A2F 9B14 D348 8C76" /* .­ì(.@ÓZ/›.ÓHŒv */
5905 $"C04B 1173 BF19 8F50 7E3D 8311 BB79 FDA8" /* ÀK.s¿.P~=ƒ.»yý¨ */
5906 $"1FD4 24A9 5F59 8B76 709E 5C84 1902 8690" /* .Ô$©_Y‹vpž\„..† */
5907 $"AD49 334F 5AE8 E376 288C BDE7 EE13 FBDE" /* ­I3OZèãv(Œ½çî.ûÞ */
5908 $"7606 0135 6DB2 DCD9 F5B3 E7E2 B2B8 8BE1" /* v..5m²ÜÙõ³çⲸ‹á */
5909 $"1985 85D2 0EC1 5CCD BC74 D88B 7206 5075" /* .……Ò.Á\ͼtØ‹r.Pu */
5910 $"FB92 BF92 C5CB B6E3 024D EB71 D909 AF79" /* û’¿’Å˶ã.MëqÙƯy */
5911 $"DD82 BBF2 37F1 1193 74D0 373D 4043 C292" /* Ý‚»ò7ñ.“tÐ7=@CÂ’ */
5912 $"0B1D 4E8F 04F4 A035 451A 7DCB 02DB D77E" /* ..N.ô 5E.}Ë.Û×~ */
5913 $"DD1C 3667 1BA7 2584 C128 3835 4454 5C15" /* Ý.6g.§%„Á(85DT\. */
5914 $"5846 C7D1 4689 3D2A 1172 9BA8 9830 F037" /* XFÇÑF‰=*.r›¨˜0ð7 */
5915 $"0053 8FD6 4023 68C6 7122 CAC6 0325 5AF3" /* .SÖ@#hÆq"ÊÆ.%Zó */
5916 $"E104 A423 C5AE F551 6DF6 7B11 D5EB FD34" /* á.¤#Å®õQmö{.Õëý4 */
5917 $"DF67 C50C 737D 74D5 D5EC 7027 A2D8 C79A" /* ßgÅ.s}tÕÕìp'¢ØÇš */
5918 $"200D A972 A30A 509A C3DE 483F 8B53 D69C" /* .©r£ÂPšÃÞH?‹SÖœ */
5919 $"001F 47E9 BD2C 84EC DB83 B493 0326 DE6E" /* ..Gé½,„ìÛƒ´“.&Þn */
5920 $"336A 7C76 3225 8351 7B2D 37B5 D645 9866" /* 3j|v2%ƒQ{-7µÖE˜f */
5921 $"019E 6472 40C4 5853 3376 9D90 D3EA A727" /* .ždr@ÄXS3vÓê§' */
5922 $"07A1 A4B8 A32F 475A 22A2 059C AB5B F13E" /* .¡¤¸£/GZ"¢.œ«[ñ> */
5923 $"E2DF 5B3E E6B5 B27F 28AF A15F 400C 7D9F" /* âß[>æµ².(¯¡_@.}Ÿ */
5924 $"43ED 33D4 9B4D CB64 E550 5FED FC2F E485" /* Cí3Ô›MËdåP_íü/ä… */
5925 $"271E 2DB1 6AE5 6793 EFE8 FCC5 A784 4C95" /* '.-±jåg“ïèüŧ„L• */
5926 $"E488 B5AC A528 BACB 10FF 4ABD D554 E56B" /* 䈵¬¥(ºË.ÿJ½ÕTåk */
5927 $"F72E 8ED7 5E48 60A4 82D0 381F A2D4 625C" /* ÷.Ž×^H`¤‚Ð8.¢Ôb\ */
5928 $"9F80 2A63 5FD3 DD0C EDA8 3DE3 281E A65C" /* Ÿ€*c_ÓÝ.í¨=ã(.¦\ */
5929 $"88EA 1A96 626D DC03 79BE C4ED EA60 4FC5" /* ˆê.–bmÜ.y¾Äíê`OÅ */
5930 $"BB10 D9D5 99AF 0534 65C2 05AE 8D23 82B0" /* ».ÙÕ™¯.4eÂ.®#‚° */
5931 $"6FB7 881A 7BC5 0316 7A28 4B27 2763 A6C3" /* o·ˆ.{Å..z(K''c¦Ã */
5932 $"8FC7 073A 1391 81BB 707F 625D 355F B1DF" /* Ç.:.‘»p.b]5_±ß */
5933 $"A749 C3EE A157 EC1F 0F6C 70AB 1A36 5711" /* §IÃî¡Wì..lp«.6W. */
5934 $"C49B 1CA8 54A0 0FB9 6A2E 0F86 2E57 BC2F" /* Ä›.¨T .¹j..†.W¼/ */
5935 $"8CDD B76A F6DB 83F9 EEFF 4BF1 DE60 660E" /* ŒÝ·jöÛƒùîÿKñÞ`f. */
5936 $"BCBA 7D68 D5DE 8663 DF06 3F65 A981 38D7" /* ¼º}hÕÞ†cß.?e©8× */
5937 $"CC20 EBAE 6143 C79E D2F3 DCF4 FA0F 433E" /* Ì ë®aCÇžÒóÜôú.C> */
5938 $"6DFE 4C5F 032A F6DD DD11 F85F 5003 22CD" /* mþL_.*öÝÝ.ø_P."Í */
5939 $"C07E F1CC 40B9 8D61 825D 77C7 91A6 BD49" /* À~ñÌ@¹a‚]wÇ‘¦½I */
5940 $"2590 4BCD EB13 37A2 D5FA 2931 F311 9028" /* %KÍë.7¢Õú)1ó.( */
5941 $"6C02 96FC ACF5 1EA4 8E51 4BC9 FDE8 DFEF" /* l.–ü¬õ.¤ŽQKÉýèßï */
5942 $"C5A0 8082 7E0D C127 3A80 A65B 7989 CCEE" /* Å €‚~.Á':€¦[y‰Ìî */
5943 $"6F6A 8DDF FB5B 46A5 3757 7FC3 3EFD BC0A" /* ojßû[F¥7W.Ã>ý¼Â */
5944 $"8567 1CB0 3BE7 A153 D7CE 8F63 D2DC 8840" /* …g.°;ç¡S×ÎcÒ܈@ */
5945 $"D993 E028 0E86 AA99 3ADE CC55 A789 CFC8" /* Ù“à(.†ª™:ÞÌU§‰ÏÈ */
5946 $"D92B 9613 3850 B7B3 467A FA09 7D45 E174" /* Ù+–.8P·³FzúÆ}Eát */
5947 $"D351 3254 64A3 7FC5 0D8D 1EDB FEC9 3F05" /* ÓQ2Td£.Å..ÛþÉ?. */
5948 $"C3C2 264B ACB8 F3C3 1BFF 04A5 12CF C191" /* ÃÂ&K¬¸óÃ.ÿ.¥.ÏÁ‘ */
5949 $"8CA0 5985 E34C E583 A230 CD43 8602 BAAF" /* Œ Y…ãL僢0ÍC†.º¯ */
5950 $"1475 FCA7 B274 1314 051F AF06 089D 13B1" /* .uü§²t....¯...± */
5951 $"5C06 815E FAA5 6864 CECE D56A 127C 058B" /* \.^ú¥hdÎÎÕj.|.‹ */
5952 $"1859 E9E8 7A98 4299 3CFF 70CE C2DD 8676" /* .Yéèz˜B™<ÿpÎÂ݆v */
5953 $"1798 5F8E 9960 922E 9226 3F9B 5657 890F" /* .˜_Ž™`’.’&?›VW‰. */
5954 $"75BC FECF 6919 6701 D086 0EA5 26BA 8B78" /* u¼þÏi.g.І.¥&º‹x */
5955 $"7381 41FC 19AD 7201 BFD9 B3D3 2F00 1A1C" /* sAü.­r.¿Ù³Ó/... */
5956 $"E689 F3BC 5FC7 0418 66A2 5AEE 0374 DE30" /* æ‰ó¼_Ç..f¢Zî.tÞ0 */
5957 $"DC4B 70F1 ACC6 2BC6 06E9 461F E71B CD5E" /* ÜKpñ¬Æ+Æ.éF.ç.Í^ */
5958 $"2766 D533 884B A37F 7820 5CCA 3D60 1C3A" /* 'fÕ3ˆK£.x \Ê=`.: */
5959 $"8865 509F C1F0 86B6 9A91 0A52 426E CF1D" /* ˆePŸÁð†¶š‘ÂRBnÏ. */
5960 $"4B52 7AFE 9519 ECDB 9DD3 BFA1 80F7 50BD" /* KRzþ•.ìÛÓ¿¡€÷P½ */
5961 $"D2DD 6FAB F00D 3600 9104 37AC 81AA F9C3" /* ÒÝo«ð.6.‘.7¬ªùà */
5962 $"3933 A702 AC9C 42F1 4579 C5F2 CD99 165F" /* 93§.¬œBñEyÅòÍ™._ */
5963 $"2D84 FE8B D02C 055F F99C 1729 45C7 6B56" /* -„þ‹Ð,._ùœ.)EÇkV */
5964 $"EE73 818A 9940 BB46 1408 639B 9779 C805" /* îsŠ™@»F..c›—yÈ. */
5965 $"1B0B CC86 D42E E9BB 046D 0E93 7273 E00F" /* ..̆Ô.é».m.“rsà. */
5966 $"B7D5 D377 E0ED 2494 4623 5BDF C83C 54A5" /* ·ÕÓwàí$”F#[ßÈ<T¥ */
5967 $"6B6B D343 F20E AD4C B45C 2BF4 7C65 87A1" /* kkÓCò.­L´\+ô|e‡¡ */
5968 $"E2EA E2B7 FF17 F9A1 5606 D5A7 C113 F062" /* âêâ·ÿ.ù¡V.Õ§Á.ðb */
5969 $"D50E E647 922C 8746 7CBA 99C8 4400 979D" /* Õ.æG’,‡F|º™ÈD.— */
5970 $"3D09 19E7 3A84 E245 ED1F 1C14 3967 45CE" /* =Æ.ç:„âEí...9gEÎ */
5971 $"2B06 C383 F2A6 2CEE 02E6 A2A7 1821 0F3F" /* +.Ãò¦,î.梧.!.? */
5972 $"4057 F9E9 B830 94C7 65AA C396 6F97 2721" /* @Wùé¸0”ÇeªÃ–o—'! */
5973 $"F1AC 6AF7 6C6C 3F02 D2F1 343D 8B42 0F6F" /* ñ¬j÷ll?.Òñ4=‹B.o */
5974 $"E2D4 A7D8 7158 F033 C573 AD72 01B7 1CC7" /* âÔ§ØqXð3Ås­r.·.Ç */
5975 $"4CA6 78C2 BABD BB30 5E03 BDEE DF19 8240" /* L¦xº½»0^.½îß.‚@ */
5976 $"9521 A43A B142 2F42 3590 AD8C B9FD A409" /* •!¤:±B/B5­Œ¹ý¤Æ */
5977 $"9D77 38E7 B8F8 3BCD 4478 61C3 5768 0324" /* w8ç¸ø;ÍDxaÃWh.$ */
5978 $"4E55 4240 1E87 1F93 D0BA 6929 C235 7E76" /* NUB@.‡.“кi)Â5~v */
5979 $"F6E8 AA1B AF13 15FD EB95 2609 BE7D BFE8" /* öèª.¯..ýë•&ƾ}¿è */
5980 $"3E51 8F2E 4780 4EE6 891E F83D FF7D D1C3" /* >Q.G€Næ‰.ø=ÿ}Ñà */
5981 $"818F 28A2 2AC0 AD00 7F03 5781 2882 A44A" /* (¢*À­...W(‚¤J */
5982 $"6728 D9F6 E77F A883 C794 71AC 55E9 8112" /* g(Ùöç.¨ƒÇ”q¬Ué. */
5983 $"BF6F ECDA 9BD1 96B8 79AA A397 A6F2 C93F" /* ¿oìڛі¸yª£—¦òÉ? */
5984 $"3792 B8C4 8667 AAF4 659D 59F6 E77F A870" /* 7’¸Ä†gªôeYöç.¨p */
5985 $"24F1 5461 DB69 0F4C F8B3 F02A F6E7 7FA6" /* $ñTaÛi.Lø³ð*öç.¦ */
5986 $"26C9 5EDE 9BB6 A1C6 9467 854A 5327 BA38" /* &É^Þ›¶¡Æ”g…JS'º8 */
5987 $"F535 A01A B90A 9580 95A0 FE5C A623 DE0D" /* õ5 .¹Â•€• þ\¦#Þ. */
5988 $"6C3E BF23 66F2 9312 9490 EB88 1D63 7AF4" /* l>¿#fò“.”ëˆ.czô */
5989 $"9F5B 7F45 9078 3A5F CC36 7702 EAD5 FA4D" /* Ÿ[.Ex:_Ì6w.êÕúM */
5990 $"5F9D 258B 14A8 A235 6490 6B7D 2B05 42C3" /* _%‹.¨¢5dk}+.Bà */
5991 $"2A5A 791E 92C3 B1E8 B323 FF74 81FC B063" /* *Zy.’ñè³#ÿtü°c */
5992 $"4A31 CBBC 91E2 A64A F935 FE79 4C07 1376" /* J1˼‘â¦Jù5þyL..v */
5993 $"002A 4795 5221 70B2 005C 41F9 D631 126F" /* .*G•R!p².\AùÖ1.o */
5994 $"FF7F DF03 06BD 7214 71AB 4EF3 8EEA 0261" /* ÿ.ß..½r.q«NóŽê.a */
5995 $"D054 C087 EA15 CBD2 4645 2F9F 3600 4144" /* ÐTÀ‡ê.ËÒFE/Ÿ6.AD */
5996 $"5671 C61E D3CB 8B84 A60D B58E FB69 C71F" /* VqÆ.ÓË‹„¦.µŽûiÇ. */
5997 $"B09A EDD9 AAC0 6FBA D7FE 8C4D 8262 6C73" /* °šíÙªÀoº×þŒM‚bls */
5998 $"9F69 0E81 7581 1D52 FB27 C979 1597 69EA" /* Ÿi.u.Rû'Éy.—iê */
5999 $"F1DF E906 0B77 2E21 D31A 5CCD 9474 95A2" /* ñßé..w.!Ó.\Í”t•¢ */
6000 $"CB48 AB27 5F53 B82F 1638 16A4 87CD ED1F" /* ËH«'_S¸/.8.¤‡Íí. */
6001 $"20BC 2894 5EE1 C84C 1AC1 1158 0293 024E" /* ¼(”^áÈL.Á.X.“.N */
6002 $"1023 0E4F 9BD8 FA73 6E62 FF7F FD08 5797" /* .#.O›Øúsnbÿ.ý.W— */
6003 $"0788 A951 6DDA 2448 21D2 7FCA 20B4 E1BF" /* .ˆ©QmÚ$H!Ò.Ê ´á¿ */
6004 $"3262 89C7 5386 ACB1 8B89 6AC3 F907 1355" /* 2b‰ÇS†¬±‹‰jÃù..U */
6005 $"66D9 1E5A 5B54 19E9 2737 FF7C B8DF 1F5E" /* fÙ.Z[T.é'7ÿ|¸ß.^ */
6006 $"3592 B16D 6089 DE73 8F19 479D 626B 977D" /* 5’±m`‰Þs.Gbk—} */
6007 $"185E F7A3 AF62 AD92 E5AC 2F74 B991 F96F" /* .^÷£¯b­’å¬/t¹‘ùo */
6008 $"211F 5AE0 4C27 344F A9E1 C731 DB20 A0FF" /* !.ZàL'4O©áÇ1Û  ÿ */
6009 $"7FFF 7F2E 356F CC55 C6B8 C2C9 2AEF 2D31" /* .ÿ..5oÌUƸÂÉ*ï-1 */
6010 $"EFEB D878 C16F B1B1 3D47 240C 489C 7153" /* ïëØxÁo±±=G$.HœqS */
6011 $"E5F8 A5C8 6E2C 7650 AED0 C4B7 43EA 67B6" /* åø¥Èn,vP®ÐÄ·Cêg¶ */
6012 $"94E4 7274 CFEB 4CF3 FD3E 8065 B9CC 35A5" /* ”ärtÏëLóý>€e¹Ì5¥ */
6013 $"21B1 3804 AD98 4F8A 6FFC 50DA 014C 442B" /* !±8.­˜OŠoüPÚ.LD+ */
6014 $"AA41 1455 BD94 B366 A37D CA82 7FFC DE57" /* ªA.U½”³f£}Ê‚.üÞW */
6015 $"2EA9 98C2 5510 E51E 24CC 0428 4C83 1BBE" /* .©˜ÂU.å.$Ì.(Lƒ.¾ */
6016 $"0A46 A6DD 6963 D4CB 24E8 748B ED10 7B6D" /* ÂF¦ÝicÔË$èt‹í.{m */
6017 $"E61C 86C3 C80E 3030 FCE9 2263 C956 95A1" /* æ.†ÃÈ.00üé"cÉV•¡ */
6018 $"AED0 C4B1 D07C F701 9DA0 ED2C C401 BC1A" /* ®ÐıÐ|÷. í,Ä.¼. */
6019 $"9421 2D43 EF12 7494 8D46 CB82 3FE2 6439" /* ”!-Cï.t”FË‚?âd9 */
6020 $"6BDE C8CE 23B7 9D2E B6F9 DF4B C1A9 A145" /* kÞÈÎ#·.¶ùßKÁ©¡E */
6021 $"1512 85E6 30E6 98D1 AC22 EEBC 459C D841" /* ..…æ0æ˜Ñ¬"î¼EœØA */
6022 $"0A0F 1F31 2F75 7937 220F 7271 FE79 44A6" /* Â..1/uy7".rqþyD¦ */
6023 $"777E 1645 E0BA D980 0FFF 7D9F EC83 A930" /* w~.EàºÙ€.ÿ}Ÿìƒ©0 */
6024 $"D12B 216D 4D3F 4AD0 5EE9 DBC7 53D7 0A21" /* Ñ+!mM?JÐ^éÛÇS×Â! */
6025 $"2372 C608 6701 8AFA 8E33 4125 2B7E 38DA" /* #rÆ.g.ŠúŽ3A%+~8Ú */
6026 $"5990 99EE B1D0 B07C 9F9D 97DD D658 2C2A" /* Y™î±Ð°|Ÿ—ÝÖX,* */
6027 $"C7D6 4556 2AA7 297F ACBE 4802 B472 E76F" /* ÇÖEV*§).¬¾H.´rço */
6028 $"644F 2F11 17FF 7F9D CE1C 2989 7199 03B1" /* dO/..ÿ.Î.)‰q™.± */
6029 $"E719 2B3B 1131 C4CC 808B BC7A 26A4 479F" /* ç.+;.1ÄÌ€‹¼z&¤GŸ */
6030 $"4824 6486 E338 DB65 A502 454C C415 B8D0" /* H$d†ã8Ûe¥.ELÄ.¸Ð */
6031 $"7C77 7323 E381 5958 F415 95B9 142E 85F8" /* |ws#ãYXô.•¹..…ø */
6032 $"1742 E22F FF17 567B A195 DFF1 7EE0 8E40" /* .Bâ/ÿ.V{¡•ßñ~àŽ@ */
6033 $"431A B629 DDCE AED1 A925 9FCD 56B5 7945" /* C.¶)Ýήѩ%ŸÍVµyE */
6034 $"B8B9 77DF 732C CD1E 8137 2645 1135 9593" /* ¸¹wßs,Í.7&E.5•“ */
6035 $"E31C 333B 30E2 518D E202 A1E0 FEA6 C40E" /* ã.3;0âQâ.¡àþ¦Ä. */
6036 $"BB50 0174 C21D 0BFB 34C1 1A8D 8E5D FF77" /* »P.tÂ..û4Á.Ž]ÿw */
6037 $"909A 8111 3123 8200 AFC2 0525 13A1 C383" /* š.1#‚.¯Â.%.¡Ãƒ */
6038 $"5472 BA45 8D58 8818 E5CD 6FEA D858 47C5" /* TrºEXˆ.åÍoêØXGÅ */
6039 $"F5A0 7773 3C86 1CE8 9A67 FAA7 5726 643B" /* õ ws<†.èšgú§W&d; */
6040 $"1BF8 C2C1 E7AD D3CE E89B 97C4 0210 1FAE" /* .øÂÁç­ÓÎè›—Ä...® */
6041 $"9319 1F1F 7F89 0B76 5918 7EF8 9947 CF44" /* “....‰.vY.~ø™GÏD */
6042 $"6B5C 4B5D 5067 58A7 F35E CF39 7D01 C555" /* k\K]PgX§ó^Ï9}.ÅU */
6043 $"FCD3 E0F6 C1A4 9C8A 0B34 2D33 A20D F664" /* üÓàöÁ¤œŠ.4-3¢.öd */
6044 $"C174 CCE8 CAA1 C45F 2974 101B 86E7 68FD" /* ÁtÌèÊ¡Ä_)t..†çhý */
6045 $"D6FE 8FE9 AC95 5D3D DE38 1829 E3B9 37FE" /* Öþ鬕]=Þ8.)ã¹7þ */
6046 $"5008 F383 21C4 4D57 AE92 9F94 A9BB 3A76" /* P.óƒ!ÄMW®’Ÿ”©»:v */
6047 $"705F 8D2D 889C EB93 FD2B 05C5 89F2 500E" /* p_-ˆœë“ý+.ʼnòP. */
6048 $"4220 A486 F348 D466 4D62 E368 540A 1D25" /* B ¤†óHÔfMbãhTÂ.% */
6049 $"AF7C A9EF 43CC E423 16FC 6EE5 C407 DDAE" /* ¯|©ïCÌä#.ünåÄ.Ý® */
6050 $"EB28 23D2 3FDE 40EF 2ED1 D53A B87B 9C40" /* ë(#Ò?Þ@ï.ÑÕ:¸{œ@ */
6051 $"80A2 77EF CC8F D34E C33F 7BB4 4748 E4A6" /* €¢wïÌÓNÃ?{´GHä¦ */
6052 $"B177 05FF 085F CBF9 F1A0 8CA7 4200 32AC" /* ±w.ÿ._Ëùñ Œ§B.2¬ */
6053 $"7B87 A517 EA04 C96C F9A3 C6ED 5FFF 7FED" /* {‡¥.ê.Élù£Æí_ÿ.í */
6054 $"D5EB F835 3E15 6882 AED1 72BF B42C 87DE" /* Õëø5>.h‚®Ñr¿´,‡Þ */
6055 $"8111 0F7A 5DA6 CFEA 79A7 9174 89E8 E637" /* ..z]¦Ïêy§‘t‰èæ7 */
6056 $"7E56 B53E 9987 2013 8F1A 06A5 07A2 1856" /* ~Vµ>™‡ ...¥.¢.V */
6057 $"FE30 E259 128A 968B 881F E88D 8566 98D7" /* þ0âY.Š–‹ˆ.è…f˜× */
6058 $"C815 C397 64E8 9FAC 059A 5922 C863 F220" /* È.×d蟬.šY"Ècò */
6059 $"EC2A 4AF8 5DB2 A77D FC6A 3AC1 357E D5CC" /* ì*Jø]²§}üj:Á5~ÕÌ */
6060 $"142B 85B0 FEE0 2579 D845 CDFD F507 4C58" /* .+…°þà%yØEÍýõ.LX */
6061 $"D86A F299 0BBC A0A8 39A4 03D9 2144 6B3E" /* Øjò™.¼ ¨9¤.Ù!Dk> */
6062 $"6D67 242B 0FEB B6F4 79CB 58ED 2338 DB9F" /* mg$+.ë¶ôyËXí#8ÛŸ */
6063 $"6EC7 1626 0FDD 0C77 1E00 2AE4 8B46 F39C" /* nÇ.&.Ý.w..*ä‹Fóœ */
6064 $"6268 EE5F FF49 B5C8 30E7 9859 E163 A9D4" /* bhî_ÿIµÈ0ç˜Yác©Ô */
6065 $"C50F BC0C 46BB BBC7 9FFF 7D54 E81B 8936" /* Å.¼.F»»ÇŸÿ}Tè.‰6 */
6066 $"A032 72E8 6576 5FEA 9A3F A5A9 9E58 B9C2" /*  2rèev_êš?¥©žX¹Â */
6067 $"A089 A039 5695 766F 3295 A1FF 7F5F FBDB" /*  ‰ 9V•vo2•¡ÿ._ûÛ */
6068 $"A3FD 1F1F 76AD 6787 B4D0 D1A5 E4EA 72F8" /* £ý..v­g‡´ÐÑ¥äêrø */
6069 $"0276 0C35 EC34 65A8 000A CA35 6AAE 1800" /* .v.5ì4e¨.ÂÊ5j®.. */
6070 $"99CA 1B65 F56D 6C3B DF33 AB08 94A3 15CF" /* ™Ê.eõml;ß3«.”£.Ï */
6071 $"C9B8 D32E 35D7 D32D 57E6 86D2 A5BE 2B3A" /* ɸÓ.5×Ó-Wæ†Ò¥¾+: */
6072 $"4535 2C10 41FE FDA9 E202 3927 BC4F 5F90" /* E5,.Aþý©â.9'¼O_ */
6073 $"E637 311C DB00 E394 09F3 005B 7DB3 0DFE" /* æ71.Û.ã”Æó.[}³.þ */
6074 $"9F1F CAA4 DD03 B381 8330 AB38 E13B 2F9C" /* Ÿ.ʤÝ.³ƒ0«8á;/œ */
6075 $"3DB5 01C5 100A 5D16 5C8D 792C FA0E 1A85" /* =µ.Å.Â].\y,ú..… */
6076 $"E3FF 467A 6333 E4F1 F27C 9E2B 161E 18F0" /* ãÿFzc3äñò|ž+...ð */
6077 $"3F30 9C2C 631D BE74 4B7F 6E21 3FBC 404E" /* ?0œ,c.¾tK.n!?¼@N */
6078 $"E063 4152 D02D 68E4 869C E7E9 E4E6 4E95" /* àcARÐ-h䆜çéäæN• */
6079 $"3A66 1FDA 1145 DFB4 0796 9F97 503C E2C9" /* :f.Ú.Eß´.–Ÿ—P<âÉ */
6080 $"7F49 D644 1290 98BD 8EA0 2FA1 CF00 E383" /* .IÖD.˜½Ž /¡Ï.ム*/
6081 $"C003 7BFE D79B FF62 A38E 2C39 A64D 19FF" /* À.{þ×›ÿb£Ž,9¦M.ÿ */
6082 $"6A9D 976A 994B 6626 4F4D 7DC8 F0CA EDB7" /* j—j™Kf&OM}ÈðÊí· */
6083 $"F99E 21E2 36B4 3AAB E787 C6A2 1783 F623" /* ùž!â6´:«ç‡Æ¢.ƒö# */
6084 $"8755 1F66 AFBC 2959 6E6E 2E61 AC85 2198" /* ‡U.f¯¼)Ynn.a¬…!˜ */
6085 $"9978 EDFD 334C F0D6 7F76 9AF2 47AF 5E4B" /* ™xíý3LðÖ.všòG¯^K */
6086 $"805C 54D3 5F2A 16C5 6675 C288 B44F F851" /* €\TÓ_*.Åfuˆ´OøQ */
6087 $"1CE9 9F21 BF10 92B9 2366 5D69 AE8E 9989" /* .éŸ!¿.’¹#f]i®Ž™‰ */
6088 $"36A6 F9E6 75A7 0D47 C8B5 8727 0138 2BFA" /* 6¦ùæu§.Gȵ‡'.8+ú */
6089 $"5C4A 649C 123C 225E 2CEC 2007 5016 3F11" /* \Jdœ.<"^,ì .P.?. */
6090 $"B8FF 60CB 7150 EBFD DFED 147E 0A98 E096" /* ¸ÿ`ËqPëýßí.~Â˜à– */
6091 $"6B76 3AF0 39A5 5BF2 880C E857 174C 8735" /* kv:ð9¥[òˆ.èW.L‡5 */
6092 $"ACF6 E4B7 3477 6293 FF7C 8515 A8DE 4E73" /* ¬öä·4wb“ÿ|….¨ÞNs */
6093 $"8E37 8A0C 4384 0CF3 FA01 15F5 9639 ED05" /* Ž7Š.C„.óú..õ–9í. */
6094 $"C86B 28A0 C331 14BC 2817 FE9B F96A D60D" /* Èk( Ã1.¼(.þ›ùjÖ. */
6095 $"EBCB 14DA FF7F FF47 8A61 A2C7 F01F 10B7" /* ëË.Úÿ.ÿGŠa¢Çð..· */
6096 $"3DAF B01C B484 F55D 457E E3EC CC41 95DE" /* =¯°.´„õ]E~ãìÌA•Þ */
6097 $"097E 8117 F77F FEFB A490 8B96 1300 2B37" /* Æ~.÷.þû¤‹–..+7 */
6098 $"19FA E04C 4188 E9F6 8950 0668 B082 8FD8" /* .úàLAˆéö‰P.h°‚Ø */
6099 $"0B7D 6C32 4DBF F84F F4E9 ACAF 719A DC43" /* .}l2M¿øOô鬯qšÜC */
6100 $"9F8D A53E DF1A BDB0 AAA7 3267 9C2D 357A" /* Ÿ¥>ß.½°ª§2gœ-5z */
6101 $"9CA7 1AE1 59C4 F467 83D3 308B 004A 42C2" /* œ§.áYÄôgƒÓ0‹.JB */
6102 $"909B F979 41CE AB25 C6D1 9FE9 46E1 E837" /* ›ùyAΫ%ÆÑŸéFáè7 */
6103 $"7ADF FF72 225E 4472 D323 F55C BE19 1E50" /* zßÿr"^DrÓ#õ\¾..P */
6104 $"BF94 6787 CADB F576 300A 054B 0A2D E9B2" /* ¿”g‡ÊÛõv0Â.KÂ-é² */
6105 $"5C15 DB84 E735 F76D 5477 D8A7 28AF FF7A" /* \.Û„ç5÷mTwا(¯ÿz */
6106 $"7EB8 06F8 4FF4 E999 ED48 02C4 F111 F61D" /* ~¸.øOôé™íH.Äñ.ö. */
6107 $"8A6C 1CC6 AE54 94E4 8C5D 7655 4ECC 205F" /* Šl.Æ®T”äŒ]vUNÌ _ */
6108 $"DBF9 1BA7 83CC 52E9 E9C9 52A4 1151 7DE4" /* Ûù.§ƒÌRééÉR¤.Q}ä */
6109 $"051B E140 3FC0 D60B 0C11 663F 98A9 8B53" /* ..á@?ÀÖ...f?˜©‹S */
6110 $"776E BD8D 7678 AD62 ACEE 033F D134 B61E" /* wn½vx­b¬î.?Ñ4¶. */
6111 $"F86D 3384 AAE7 9074 F7CF 4509 F9B3 4F30" /* øm3„ªçt÷ÏEÆù³O0 */
6112 $"F32D 840F 1DDA E6B1 BDD4 951F 2379 F890" /* ó-„..Úæ±½Ô•.#yø */
6113 $"530A E915 A228 D3D8 B188 C692 2767 D628" /* SÂé.¢(ÓرˆÆ’'gÖ( */
6114 $"12F8 3FFA BA23 F76B 1D92 1FC1 EA73 30FC" /* .ø?úº#÷k.’.Áês0ü */
6115 $"CE72 0CA5 6695 6326 F93B B52F B9D4 F6F0" /* Îr.¥f•c&ù;µ/¹Ôöð */
6116 $"FF07 727B 80F9 EBFC 2176 788C 333F 4137" /* ÿ.r{€ùëü!vxŒ3?A7 */
6117 $"E82C D066 6088 A8EA 168F 40EA F1EE BDE8" /* è,Ðf`ˆ¨ê.@êñî½è */
6118 $"C023 75BA 66F2 335A 98C0 31A8 2137 7A7B" /* À#uºfò3Z˜À1¨!7z{ */
6119 $"DA0F 3962 D4B3 3E6E A5A1 3A19 5EED 48A7" /* Ú.9bÔ³>n¥¡:.^íH§ */
6120 $"7617 DE46 D178 BC48 D85D 7821 DFEC B30D" /* v.ÞFÑx¼HØ]x!ßì³. */
6121 $"F84F B7CD 80ED 55C7 9E1A F58D 7085 F625" /* øO·Í€íUÇž.õp…ö% */
6122 $"F564 3BF5 A09E B353 4E45 2F0B FC02 ECFD" /* õd;õ ž³SNE/.ü.ìý */
6123 $"539F 529C A652 34F1 C0CC BC04 FCE0 2C7D" /* SŸRœ¦R4ñÀ̼.üà,} */
6124 $"A8A9 9E67 79E9 ADE4 ABEE BFF6 4793 1B91" /* ¨©žgyé­ä«î¿öG“.‘ */
6125 $"413A 4302 7FB5 190C CB09 0DC9 3B33 E18D" /* A:C..µ..ËÆ.É;3á */
6126 $"DDAB 23C5 FABA 5DC1 554F C940 B964 7F6A" /* Ý«#Åúº]ÁUOÉ@¹d.j */
6127 $"A781 2032 BF9E 0262 7C99 CD96 9251 9FB6" /* § 2¿ž.b|™Í–’QŸ¶ */
6128 $"1C69 9141 7A13 3022 DE48 DA68 C959 A0B5" /* .i‘Az.0"ÞHÚhÉY µ */
6129 $"0F3A F19A 9301 5051 5855 9D7B 5173 EE47" /* .:ñš“.PQXU{QsîG */
6130 $"2B0D DB30 28CC 5E41 46F1 E79F 90B3 AB2A" /* +.Û0(Ì^AFñ石«* */
6131 $"CAEA 6128 10E1 2CC0 DDC2 EBF1 26F1 E1DC" /* Êêa(.á,ÀÝÂëñ&ñáÜ */
6132 $"EB87 87ED 55F3 827C A066 D932 FCF7 B134" /* 뇇íUó‚| fÙ2ü÷±4 */
6133 $"8BC9 CC70 B38C B019 8372 EA60 7C36 4D38" /* ‹ÉÌp³Œ°.ƒrê`|6M8 */
6134 $"F82F 16C2 2390 A91B 203A 8EBE D0EC E278" /* ø/.Â#©. :Ž¾Ðìâx */
6135 $"7AC4 8493 A217 6AC3 B85A 470D D74A B91D" /* zÄ„“¢.jøZG.×J¹. */
6136 $"0180 7BAB 4088 5671 6268 5B4A 54FE C179" /* .€{«@ˆVqbh[JTþÁy */
6137 $"1600 7677 830B 0E81 EEB2 6124 33F8 DBBD" /* ..vwƒ..î²a$3øÛ½ */
6138 $"1B35 D1F9 0568 3891 0ECB A836 5A86 9636" /* .5Ñù.h8‘.˨6Z†–6 */
6139 $"9F87 052F 0D66 8AA3 3362 1651 9B33 9057" /* Ÿ‡./.fŠ£3b.Q›3W */
6140 $"5B98 05EB 23CE 099F 2358 444E 0D64 A9F9" /* [˜.ë#ÎÆŸ#XDN.d©ù */
6141 $"A569 7D56 A50D 6256 69AF BDD9 7847 D651" /* ¥i}V¥.bVi¯½ÙxGÖQ */
6142 $"73E2 F76E F277 58DC BFB9 7B8E 593C 0E97" /* sâ÷nòwXÜ¿¹{ŽY<.— */
6143 $"3C4E 507D FA6C 7984 FAC8 6C42 6882 78AC" /* <NP}úly„úÈlBh‚x¬ */
6144 $"E40D B7A2 4E43 998B 1C29 D7C6 B7BA 58C9" /* ä.·¢NC™‹.)×Æ·ºXÉ */
6145 $"3503 114B 86B8 CB5D B605 832D 98FE 0257" /* 5..K†¸Ë]¶.ƒ-˜þ.W */
6146 $"FB50 8CA0 43D4 71BE E330 1584 5983 668F" /* ûPŒ CÔq¾ã0.„Yƒf */
6147 $"735C 2448 3B30 82E4 1932 5BF8 129F FE38" /* s\$H;0‚ä.2[ø.Ÿþ8 */
6148 $"749D 01ED DAFC 95B9 375D BBCB 60D9 FC58" /* t.íÚü•¹7]»Ë`ÙüX */
6149 $"0796 AEFC 2337 F89E 01F5 48BD 0BAF A61F" /* .–®ü#7øž.õH½.¯¦. */
6150 $"3EC4 C092 DC6A 584C AAAF 1A9F A20F CEA4" /* >ÄÀ’ÜjXLª¯.Ÿ¢.Τ */
6151 $"884B 2DB6 09F4 F51B 546F CD71 F4D3 6452" /* ˆK-¶Æôõ.ToÍqôÓdR */
6152 $"B6E5 3EFF 66F8 0D60 D916 F755 1348 E250" /* ¶å>ÿfø.`Ù.÷U.HâP */
6153 $"D8E2 6858 B424 B84B D59A 6885 24D3 D845" /* ØâhX´$¸KÕšh…$ÓØE */
6154 $"692F 4313 B616 584F 7419 0661 0064 C281" /* i/C.¶.XOt..a.d */
6155 $"A873 131C 5296 042B 1FD5 3EED BFC2 659E" /* ¨s..R–.+.Õ>í¿Âež */
6156 $"C4C7 2720 8002 28DD 141A BBE7 99F8 028F" /* ÄÇ' €.(Ý..»ç™ø. */
6157 $"8262 0577 5240 EB9A F866 2901 B75B 3FED" /* ‚b.wR@ëšøf).·[?í */
6158 $"9E78 9071 83FD 02BC FCDE 2135 42D1 F184" /* žxqƒý.¼üÞ!5BÑñ„ */
6159 $"309D F47E DF10 F797 4268 120A D377 04A4" /* 0ô~ß.÷—Bh.ÂÓw.¤ */
6160 $"2998 099E CA35 66AD FB20 8C14 1E0E 714E" /* )˜ÆžÊ5f­û Œ...qN */
6161 $"B9A7 70EE 5BA0 7A18 FC16 97EB 1A98 CB6C" /* ¹§pî[ z.ü.—ë.˜Ël */
6162 $"4B5D AC5B 3DC2 2062 E74A 18F2 0A76 6085" /* K]¬[=Â bçJ.òÂv`… */
6163 $"EF50 1C2F FE23 117A ED22 7BE8 0231 BC71" /* ïP./þ#.zí"{è.1¼q */
6164 $"707C 6736 BC3C 38AA 81C2 66B6 DCE5 13E9" /* p|g6¼<8ªÂf¶Üå.é */
6165 $"3076 C7AD 8C4B A962 C37E 4605 CDC0 8247" /* 0vÇ­ŒK©bÃ~F.ÍÀ‚G */
6166 $"190C 41CD 6923 8D00 BC94 5B5F E2AB 443B" /* ..AÍi#.¼”[_â«D; */
6167 $"3C5A 7FF6 213C 9E2D 9224 70B1 EA9B 7D36" /* <Z.ö!<ž-’$p±ê›}6 */
6168 $"E7EA 0D03 CB32 7413 AB26 CB30 1B56 CBDE" /* çê..Ë2t.«&Ë0.VËÞ */
6169 $"3C31 361D 24E2 F441 4D78 7825 1DA0 0C14" /* <16.$âôAMxx%. .. */
6170 $"5C84 B112 6FC1 77DB 42CA 7791 960B 9F09" /* \„±.oÁwÛBÊw‘–.ŸÆ */
6171 $"980A 5629 54C0 EC82 889A B0E3 38F4 E734" /* ˜ÂV)TÀ삈š°ã8ôç4 */
6172 $"FA91 D5CD 2C8F 43CD 5629 3DAD 81DA 5E0A" /* ú‘ÕÍ,CÍV)=­Ú^Â */
6173 $"C008 712F EAD3 2486 4CD2 C7BA 0FA9 BBD3" /* À.q/êÓ$†LÒǺ.©»Ó */
6174 $"6AC2 A912 7736 5A33 CC96 9EDC 9C5A 3084" /* j©.w6Z3Ì–žÜœZ0„ */
6175 $"C826 A3FB 0661 ED4B 9689 A921 22AB 2399" /* È&£û.aíK–‰©!"«#™ */
6176 $"6F2A 4A78 A5F8 A059 BE4B 7DFF 5D41 1A31" /* o*Jx¥ø Y¾K}ÿ]A.1 */
6177 $"E688 045C BD1E D1DB 7C5B 6B89 5C22 3CAF" /* æˆ.\½.ÑÛ|[k‰\"<¯ */
6178 $"F133 FF14 13A2 9A3F 6E42 54EB 5082 9F25" /* ñ3ÿ..¢š?nBTëP‚Ÿ% */
6179 $"7C07 6BA6 25EA A890 3560 E915 B058 CB68" /* |.k¦%ê¨5`é.°XËh */
6180 $"3601 4B07 ACE7 EC8A 2897 F908 D405 455E" /* 6.K.¬çìŠ(—ù.Ô.E^ */
6181 $"5EDD 427E 791A EA3D 6ACE 3BC0 0D43 731A" /* ^ÝB~y.ê=jÎ;À.Cs. */
6182 $"C9C6 8C03 BD83 6F85 EF75 7246 2F8E 1CFB" /* ÉÆŒ.½ƒo…ïurF/Ž.û */
6183 $"8DC9 2726 593F 1D87 A822 399F 9770 324C" /* É'&Y?.‡¨"9Ÿ—p2L */
6184 $"6ABF 38B9 E89E B2F5 D575 E7DB C449 63CF" /* j¿8¹èž²õÕuçÛÄIcÏ */
6185 $"EBE1 07BB 80A4 C099 6A15 9A47 96F3 8C8D" /* ëá.»€¤À™j.šG–óŒ */
6186 $"49E1 1F78 2119 9460 CA7A F257 EDA1 104B" /* Iá.x!.”`ÊzòWí¡.K */
6187 $"5C68 0E57 188C 62B0 FBE3 CF4F 5251 6525" /* \h.W.Œb°ûãÏORQe% */
6188 $"CB59 5E3D C6F4 6B04 5B2D 1ED2 3BE1 02BB" /* ËY^=Æôk.[-.Ò;á.» */
6189 $"7207 12AA BFEC 50F4 83FE 2797 121B 3D14" /* r..ª¿ìPôƒþ'—..=. */
6190 $"DA23 BE41 D647 E5CA DD2D CD48 8C4D A094" /* Ú#¾AÖGåÊÝ-ÍHŒM ” */
6191 $"B1A9 4ED5 4735 8818 C4F1 597D 3211 5D12" /* ±©NÕG5ˆ.ÄñY}2.]. */
6192 $"D96B 5A38 AB9A 7E89 C503 13B0 8354 C887" /* ÙkZ8«š~‰Å..°ƒTȇ */
6193 $"F766 96F0 EDAE C6B6 17B4 E9A4 9230 C2F5" /* ÷f–ðí®Æ¶.´é¤’0Âõ */
6194 $"029D 3D72 A1CF 5BB9 E975 DBFF 06DC F5B2" /* .=r¡Ï[¹éuÛÿ.Üõ² */
6195 $"686F 667B AD3E 1D8D 5BE4 0D6A 2CD7 DE66" /* hof{­>.[ä.j,×Þf */
6196 $"BE8E C996 696D 58EC 6CFE 40AD 3C95 EAF1" /* ¾ŽÉ–imXìlþ@­<•êñ */
6197 $"4591 1D62 836E D2E3 4CD8 E4A6 F4F4 C456" /* E‘.bƒnÒãLØä¦ôôÄV */
6198 $"A70C B3BE AA22 A188 DAB5 D3F7 4B7B 865D" /* §.³¾ª"¡ˆÚµÓ÷K{†] */
6199 $"4D89 77E6 99A6 46C9 14BA 25E1 55C5 ADBD" /* M‰w晦FÉ.º%áUÅ­½ */
6200 $"4379 96AF 26DA A399 F009 AE75 248B 0285" /* Cy–¯&Ú£™ðÆ®u$‹.… */
6201 $"B370 5704 6429 C8AF 0BD3 A332 90B2 8351" /* ³pW.d)ȯ.Ó£2²ƒQ */
6202 $"F715 32C9 347B EADE 2EBB 9D97 BF95 0C5A" /* ÷.2É4{êÞ.»—¿•.Z */
6203 $"9203 1EC5 7A8E CF46 C28C 39A2 DE74 C656" /* ’..ÅzŽÏFÂŒ9¢ÞtÆV */
6204 $"F0BF 3ABF CE5F BE71 B7CE 2FF3 F41B F3EA" /* ð¿:¿Î_¾q·Î/óô.óê */
6205 $"8BE7 B07E AB17 4F87 74FC FDE8 EF9F BF3F" /* ‹ç°~«.O‡tüýè? */
6206 $"A9EB F3D5 3F3E 83BE 7BAF EA5F E0FE 7ADF" /* ©ëóÕ?>ƒ¾{¯ê_àþzß */
6207 $"E7A7 7F9D 3FE7 3BF9 FA77 F9FA 3FF9 F7C7" /* ç§.?ç;ùúwùú?ù÷Ç */
6208 $"E7E9 871D E84F CFE8 83FC FE85 E3BB E7E7" /* çé‡.èOÏèƒüþ…ã»çç */
6209 $"AFFE 7D7F F9F5 57E7 AF70 6F9D 2DF3 9ED7" /* ¯þ}.ùõWç¯po-óž× */
6210 $"C81E F903 FEAB 8EF9 F50D F254 3F3E A4D1" /* È.ù.þ«Žùõ.òT?>¤Ñ */
6211 $"DD53 F3F6 F37E 7EC9 4775 1BE4 77F9 EEBF" /* ÝSóöó~~ÉGu.äwùî¿ */
6212 $"9ED1 F9DC 00F7 91DD 3D8B A94D D83C 797F" /* žÑùÜ.÷‘Ý=‹©MØ<y. */
6213 $"4243 1F04 D29C 94E6 FA35 A9C7 9C1C 0762" /* BC..Òœ”æú5©Çœ..b */
6214 $"AA92 7DF8 65D6 B16D 30C6 E3F2 22D5 8971" /* ª’}øeÖ±m0Æãò"Õ‰q */
6215 $"F890 651C 37E3 1F4A 29A4 6637 D7AE 7CB9" /* øe.7ã.J)¤f7×®|¹ */
6216 $"14C7 D06B 2595 45F8 89DC DBAF B284 6ADA" /* .ÇÐk%•Eø‰ÜÛ¯²„jÚ */
6217 $"E4DB 9D25 F76C CDA3 EB7E 1B5A 4264 8145" /* äÛ%÷lÍ£ë~.ZBdE */
6218 $"547E 6F18 076D A675 BA1A 1AB1 0BF1 AEB6" /* T~o..m¦uº..±.ñ®¶ */
6219 $"C8C2 AAE0 489F 4E11 7F77 336A 41A4 C050" /* ȪàHŸN..w3jA¤ÀP */
6220 $"D19E AE10 BD35 C5EC DA71 BDEF A017 C32D" /* Ñž®.½5ÅìÚq½ï .Ã- */
6221 $"CB15 0C8E 0B75 C179 FB84 FDF2 DD5D C21F" /* Ë..Ž.uÁyû„ýòÝ]Â. */
6222 $"56A5 397D C437 A82F 65F9 2E68 A785 0AF3" /* V¥9}Ä7¨/eù.h§…Âó */
6223 $"B9F0 7781 E6B8 ACFA 09DC B57D 6317 B29B" /* ¹ðw測úÆܵ}c.²› */
6224 $"C754 09FC 3635 9854 0DA1 A3BE D3EE CF40" /* ÇTÆü65˜T.¡£¾ÓîÏ@ */
6225 $"4BE4 A4D9 07C4 D65E 3887 C8A7 CD3A 83F5" /* Kä¤Ù.ÄÖ^8‡È§Í:ƒõ */
6226 $"DFA8 10A6 BB6D B811 852D 3877 8782 1E66" /* ߨ.¦»m¸.…-8w‡‚.f */
6227 $"AF11 43B8 CA3A 6146 3657 AFE0 B314 36CB" /* ¯.C¸Ê:aF6W¯à³.6Ë */
6228 $"8E1C 272D ED4B 634C AABA 0207 6A1A E2E3" /* Ž.'-íKcLªº..j.âã */
6229 $"C500 C0A4 894A BAD8 C9A1 0AE7 AC8D 750C" /* Å.À¤‰JºØÉ¡Âç¬u. */
6230 $"7D84 FBCC DB2E EE05 B04A 002B B383 46DE" /* }„ûÌÛ.î.°J.+³ƒFÞ */
6231 $"C18D 5BBD B442 9E88 BBB2 89CC 0EBA CF5A" /* Á[½´Bžˆ»²‰Ì.ºÏZ */
6232 $"5616 DDAB ED7B 4C2E 1C82 0C9D 4820 C0E8" /* V.Ý«í{L..‚.H Àè */
6233 $"1C4E 39A5 9041 9E33 A20A A73D 821A 238A" /* .N9¥Až3¢Â§=‚.#Š */
6234 $"3B24 14B9 D9A6 95AA F5B0 13C1 8CFD 790F" /* ;$.¹Ù¦•ªõ°.ÁŒýy. */
6235 $"33CB 82D3 FE12 0F27 F309 7453 05E0 DF8F" /* 3Ë‚Óþ..'óÆtS.àß */
6236 $"AAE8 F77A 31BA 0118 43E1 7AE7 69DC 5D12" /* ªè÷z1º..CázçiÜ]. */
6237 $"BD53 9858 EA6D D8D3 174C FE4C F487 3CCF" /* ½S˜XêmØÓ.LþLô‡<Ï */
6238 $"9098 7872 8FC3 EBAC 4C76 F503 6915 A1B3" /* ˜xrÃë¬Lvõ.i.¡³ */
6239 $"5FF8 81CD E13D D511 AAB8 5C7B 1376 C87F" /* _øÍá=Õ.ª¸\{.vÈ. */
6240 $"2DA1 557D 2053 3341 CC15 418C 0911 5378" /* -¡U} S3AÌ.AŒÆ.Sx */
6241 $"5FFE 324E 1412 2046 B049 3A77 69B7 417F" /* _þ2N.. F°I:wi·A. */
6242 $"AC17 B8B0 7FDA 6D19 59F0 DD68 8A88 E55A" /* ¬.¸°.Úm.YðÝhŠˆåZ */
6243 $"8098 0888 3714 713A 1D17 BB8D F01C 6005" /* €˜.ˆ7.q:..»ð.`. */
6244 $"8F2E 3D20 2753 1BB4 9BE3 DFD1 709F 99EB" /* .= 'S.´›ãßÑpŸ™ë */
6245 $"DFCC C1B1 717B 7FA3 52BB C12D E6B7 24D2" /* ßÌÁ±q{.£R»Á-æ·$Ò */
6246 $"F448 F23D C196 1BAA D61B F422 41B4 D620" /* ôHò=Á–.ªÖ.ô"A´Ö */
6247 $"466D 45F3 06F6 F631 3E88 5CDE F7F6 BC6F" /* FmEó.öö1>ˆ\Þ÷ö¼o */
6248 $"789C D06C 02CC 2E71 B6B0 03D2 297B BFCD" /* xœÐl.Ì.q¶°.Ò){¿Í */
6249 $"8C21 67AD CEE0 DB53 5749 A676 690C 11E3" /* Œ!g­ÎàÛSWI¦vi..ã */
6250 $"5AD2 905C 78E1 4AB0 E60E C920 4ECC 7CB6" /* ZÒ\xáJ°æ.É NÌ|¶ */
6251 $"A76F 70F1 BCFD AA1D F4D2 E43F E203 D0C8" /* §opñ¼ýª.ôÒä?â.ÐÈ */
6252 $"E11E 61AF F1A7 5762 600E 65BB D870 818A" /* á.a¯ñ§Wb`.e»ØpŠ */
6253 $"CDF0 DFC4 8C9C 1926 678B 2732 C52F 98FD" /* ÍðßÄŒœ.&g‹'2Å/˜ý */
6254 $"33B3 EE23 138D 5E5F C9C3 FEF9 6111 E3E6" /* 3³î#.^_ÉÃþùa.ãæ */
6255 $"AF79 A8A5 2949 D590 B463 EDF3 F72A 18FD" /* ¯y¨¥)IÕ´cíó÷*.ý */
6256 $"BB23 233B 7924 2DD1 A335 B949 467E A30C" /* »##;y$-Ñ£5¹IF~£. */
6257 $"3185 5FE5 DB63 6748 B22D AB3F 8A8C 0926" /* 1…_åÛcgH²-«?ŠŒÆ& */
6258 $"5450 E925 A69D 1185 7300 D694 EA1F 4DF2" /* TPé%¦.…s.Ö”ê.Mò */
6259 $"2413 F4ED 6D64 5B74 BBD5 0E65 26EF A8CD" /* $.ôímd[t»Õ.e&ï¨Í */
6260 $"5806 0C60 404F 90A0 06B6 AFD1 785F 9646" /* X..`@O .¶¯Ñx_–F */
6261 $"B1AD 2A45 5777 33FA 49DB 8D3D AC2A BAEA" /* ±­*EWw3úIÛ=¬*ºê */
6262 $"4527 B4DF 481A 6AB9 4485 05E6 7040 1B93" /* E'´ßH.j¹D….æp@.“ */
6263 $"D6E0 3BBF A334 E13B 68EC 934B C393 B621" /* Öà;¿£4á;hì“KÓ¶! */
6264 $"CFC8 69BE A6AC 672C 235E F1FC 4480 DE83" /* ÏÈi¾¦¬g,#^ñüD€Þƒ */
6265 $"32D7 D269 F78C F22D 5B9F F4DF DDDD D6DE" /* 2×Òi÷Œò-[ŸôßÝÝÖÞ */
6266 $"4C65 4D61 C1F0 26BF E4C3 D7C9 A034 163D" /* LeMaÁð&¿äÃ×É 4.= */
6267 $"FBAE 0167 4DF0 EBEF AA8B B742 2832 1F67" /* û®.gMðë懲·B(2.g */
6268 $"8CC0 80D0 4A6B 9843 DE59 2F7B F944 9DA4" /* ŒÀ€ÐJk˜CÞY/{ùD¤ */
6269 $"343D 9AD9 9E0B C7B5 0B7D 2CA1 F638 8A3B" /* 4=šÙž.ǵ.},¡ö8Š; */
6270 $"BB38 A39B 025A 9BA9 34AC ACF0 063D 5483" /* »8£›.Z›©4¬¬ð.=Tƒ */
6271 $"FE57 22E4 EB2C C699 AEF3 8EFB 1C8C A23A" /* þW"äë,Æ™®óŽû.Œ¢: */
6272 $"2C15 D2EF AC9A 91C9 993A 4CB0 2DDC 0A32" /* ,.Ò﬚‘É™:L°-ÜÂ2 */
6273 $"14B9 50D2 8579 8F9D 5AF2 88DB E726 1B39" /* .¹PÒ…yZòˆÛç&.9 */
6274 $"3E06 69F9 F300 09E4 D3E8 BB4C A704 10E0" /* >.iùó.ÆäÓè»L§..à */
6275 $"F1D0 53DE 91D8 6723 A047 11C7 57B3 C46C" /* ñÐSÞ‘Øg# G.ÇW³Äl */
6276 $"84A7 C2E1 C7CC 185C 9F21 7E2B 0F2E 64B1" /* „§ÂáÇÌ.\Ÿ!~+..d± */
6277 $"D734 4142 C65E A2FB 9ABE B62D 076B 2B65" /* ×4ABÆ^¢ûš¾¶-.k+e */
6278 $"9D6E 63F1 4825 79A9 3936 C7A7 531F EF6A" /* ncñH%y©96ǧS.ïj */
6279 $"F859 3084 0421 88A9 A648 8641 ACEB 95DE" /* øY0„.!ˆ©¦H†A¬ë•Þ */
6280 $"2E94 E3C9 442C 13AF CF63 0404 C5C6 5CE2" /* .”ãÉD,.¯Ïc..ÅÆ\â */
6281 $"CE90 F9CC A1B6 5713 031E C239 174F CC40" /* ÎùÌ¡¶W...Â9.OÌ@ */
6282 $"BCA4 EA9A EB6A 1D24 7962 F735 AF5A B937" /* ¼¤êšëj.$yb÷5¯Z¹7 */
6283 $"AC3B A12E 10A8 D332 6FE3 8ED1 6F01 B198" /* ¬;¡..¨Ó2oãŽÑo.±˜ */
6284 $"1543 A6A1 367E E226 5D76 B860 E0E1 8963" /* .C¦¡6~â&]v¸`àá‰c */
6285 $"AA7A F9EE DABF DB52 28F6 69F9 273F 8729" /* ªzùîÚ¿ÛR(öiù'?‡) */
6286 $"1D00 C7D2 20B9 3483 2125 88FC 94C0 54A6" /* ..ÇÒ ¹4ƒ!%ˆü”ÀT¦ */
6287 $"42FE F4E5 DA50 F495 F88B 5986 21CB 22E8" /* BþôåÚPô•ø‹Y†!Ë"è */
6288 $"EE5E 0622 2CB0 BCC8 0C6B 2B2B 23EB 0506" /* î^.",°¼È.k++#ë.. */
6289 $"A40F 09C2 726F 0C1F B8D4 55D3 2FE4 D629" /* ¤.ÆÂro..¸ÔUÓ/äÖ) */
6290 $"94C2 C913 BB28 4394 A9D2 8684 9E47 0445" /* ”ÂÉ.»(C”©Ò†„žG.E */
6291 $"B6CF 3E21 7072 B435 310C D7A3 063D 942B" /* ¶Ï>!pr´51.×£.=”+ */
6292 $"6AE9 350C 9442 C76E 1E6B A8C1 18A3 4309" /* jé5.”BÇn.k¨Á.£CÆ */
6293 $"6D55 E62F FC4E C4E9 6CF8 241D FAC5 2CC9" /* mUæ/üNÄélø$.úÅ,É */
6294 $"E020 6B12 31A6 9B11 710B 8850 FABE 5D63" /* à k.1¦›.q.ˆPú¾]c */
6295 $"068A 4018 2A90 93A5 9715 531E 8E7B AD7A" /* .Š@.*“¥—.S.Ž{­z */
6296 $"2921 115F 19CE 2B6A F643 DE89 2E76 890B" /* )!._.Î+jöCÞ‰.v‰. */
6297 $"5A69 1668 6A02 061F 4832 24EB FC82 6B4D" /* Zi.hj...H2$ëü‚kM */
6298 $"9B08 D22F CBBF D348 D18F 8B0C C684 6851" /* ›.Ò/Ë¿ÓHÑ‹.Æ„hQ */
6299 $"6CA9 E2FA 43CE 8A9A 7A58 FB28 0208 A6E0" /* l©âúCΊšzXû(..¦à */
6300 $"1ACF CE23 C624 5A38 C640 72C0 26F1 2818" /* .ÏÎ#Æ$Z8Æ@rÀ&ñ(. */
6301 $"07FD 74D9 F3D6 ED38 CA01 6485 CE8C 41A3" /* .ýtÙóÖí8Ê.d…ÎŒA£ */
6302 $"02C6 18E5 E4D2 2043 FA62 8768 3E14 7E80" /* .Æ.åäÒ Cúb‡h>.~€ */
6303 $"F2EB 67AD F743 75A0 2DDF 8724 1468 F88D" /* òëg­÷Cu -߇$.hø */
6304 $"9BF3 11EB 4D4C B372 D210 9B58 BAA0 646A" /* ›ó.ëML³rÒ.›Xº dj */
6305 $"222F 5E5A C781 1D86 5652 1B57 07AF C8FA" /* "/^ZÇ.†VR.W.¯Èú */
6306 $"9E77 DD7B FCB9 1D4C 8573 7B03 95AC D2DA" /* žwÝ{ü¹.L…s{.•¬ÒÚ */
6307 $"3314 4FFC CAF4 39B5 EAF4 9617 2CC5 9258" /* 3.OüÊô9µêô–.,Å’X */
6308 $"8F99 8C44 8D44 DA10 F1A5 51F7 5533 F13B" /* ™ŒDDÚ.ñ¥Q÷U3ñ; */
6309 $"CDDC B6D6 BE71 3C92 2628 3B69 DC32 C623" /* Íܶ־q<’&(;iÜ2Æ# */
6310 $"F497 3959 034A 67C3 10A8 26E2 572F B4B1" /* ô—9Y.JgÃ.¨&âW/´± */
6311 $"6C5C 3E47 FB9F AA7D D9A4 7A08 4BBA E854" /* l\>GûŸª}Ù¤z.KºèT */
6312 $"4370 CE77 C69A 11EB 1BD8 B9AF 8225 BC8E" /* CpÎwÆš.ë.ع¯‚%¼Ž */
6313 $"A261 1CAA A74D B531 A0B9 D462 35DF 9C21" /* ¢a.ª§Mµ1 ¹Ôb5ßœ! */
6314 $"73F1 EAC1 A13C E0BC AF6C 8111 03DF AF1F" /* sñêÁ¡<༯l..߯. */
6315 $"4748 1866 322C 535A 7C5E D2BC 4304 3541" /* GH.f2,SZ|^Ò¼C.5A */
6316 $"F14E 8412 296B 2C37 B642 9B4A 6417 EABB" /* ñN„.)k,7¶B›Jd.ê» */
6317 $"9034 1260 1B81 AFCC F903 4FAA A3F2 339E" /* 4.`.¯Ìù.Oª£ò3ž */
6318 $"F332 B080 8C32 31D7 4DEA B260 F190 43F1" /* ó2°€Œ21×Mê²`ñCñ */
6319 $"CCD5 A584 5C1C 343F FB87 CEA5 F246 8EAC" /* ÌÕ¥„\.4?û‡Î¥òFŽ¬ */
6320 $"C407 302C FEE7 3F59 F4B8 74ED ED62 D373" /* Ä.0,þç?Yô¸tííbÓs */
6321 $"A4BA B53A 0554 5403 9C2C E745 1087 5546" /* ¤ºµ:.TT.œ,çE.‡UF */
6322 $"2671 7BA6 3A33 703E BEF5 CD28 10A5 462B" /* &q{¦:3p>¾õÍ(.¥F+ */
6323 $"D902 9493 B2FC 176F 34BA 5A2D D2BC 0CBB" /* Ù.”“²ü.o4ºZ-Ò¼.» */
6324 $"5AB7 B854 08D3 CD79 3C71 1A89 E643 2FBC" /* Z·¸T.ÓÍy<q.‰æC/¼ */
6325 $"5A24 FEA6 EC06 1F23 79D9 3886 F6F4 7FB9" /* Z$þ¦ì..#yÙ8†öô.¹ */
6326 $"F892 1A20 DC66 1EB1 D6FD 1C48 52DE 4267" /* ø’. Üf.±Öý.HRÞBg */
6327 $"77E2 620B 2DC0 6828 575C F7CA 74BC FE73" /* wâb.-Àh(W\÷Êt¼þs */
6328 $"FABD C9ED 4E8F 71A7 8CCD 8D80 8BD2 8AA3" /* ú½ÉíNq§ŒÍ€‹ÒŠ£ */
6329 $"45C0 EF2A 387D 038E 8B00 BA81 12CD F93F" /* EÀï*8}.Ž‹.º.Íù? */
6330 $"E9BE 9134 2928 439B 69CF 3DB1 5DFC 3DAF" /* 龑4)(C›iÏ=±]ü=¯ */
6331 $"86CA 34A7 4574 C91C 3F99 3EA9 B6E9 F3AF" /* †Ê4§EtÉ.?™>©¶éó¯ */
6332 $"6757 09A3 C49E A9AD 7201 BFD9 B3FA 52B0" /* gWƣĞ©­r.¿Ù³úR° */
6333 $"0000 0030 908B 4E52 45F1 3CBE F04A D2E4" /* ...0‹NREñ<¾ðJÒä */
6334 $"83AF 6AEA 78E9 A438 C877 BAAD 65CB C703" /* ƒ¯jêxé¤8Èwº­eËÇ. */
6335 $"70B2 B9DD E19B 6B8C 0CE9 E402 0C9F 94F0" /* p²¹Ýá›kŒ.éä..Ÿ”ð */
6336 $"21BC 4E05 C03C 012A 66EF D0BC 2B72 292E" /* !¼N.À<.*fïм+r). */
6337 $"3592 1FDB 2A5C 8D2D C2FF 5C5B 6AB8 F695" /* 5’.Û*\-Âÿ\[j¸ö• */
6338 $"F279 2C54 0529 555A 6ACA 22A4 C28B D693" /* òy,T.)UZjÊ"¤Â‹Ö“ */
6339 $"1FC9 4492 43F3 A323 F990 0A31 9356 30D3" /* .ÉD’Có£#ùÂ1“V0Ó */
6340 $"D6F0 0D36 0091 043F F239 9D1E 114E 3693" /* Öð.6.‘.?ò9..N6“ */
6341 $"DF1C 23DF A27A 5B11 A44D 9199 07D1 AF2C" /* ß.#ߢz[.¤M‘™.ѯ, */
6342 $"63EB 21C5 D29F 8644 8C6A 129A 9CB9 ED72" /* cë!ÅÒŸ†DŒj.šœ¹ír */
6343 $"9286 3E0E B604 539A F262 B727 9284 01F9" /* ’†>.¶.Sšòb·'’„.ù */
6344 $"5AE1 DA5A 8A02 140E 5275 5433 BCDF 8038" /* ZáÚZŠ...RuT3¼ß€8 */
6345 $"0050 856F A747 857B 8376 255A 9185 28CC" /* .P…o§G…{ƒv%Z‘…(Ì */
6346 $"301A EC7C B5D3 89CC A695 1C87 8266 7CA8" /* 0.ì|µÓ‰Ì¦•.‡‚f|¨ */
6347 $"A203 7467 426E 9507 3DB3 1F90 F66B DC9F" /* ¢.tgBn•.=³.ökÜŸ */
6348 $"ACF6 CDB2 4FCC 5AE4 2F94 F555 CB9E D8AC" /* ¬öͲOÌZä/”õU˞ج */
6349 $"950B FF38 0FE4 5056 E5E8 F371 9A98 5697" /* •.ÿ8.äPVåèóqš˜V— */
6350 $"6319 5197 B545 E594 AADD B2F2 CA27 260D" /* c.Q—µE唪ݲòÊ'&. */
6351 $"9BAF 0E45 0846 5573 F96B 7AC1 CC89 E86E" /* ›¯.E.FUsùkzÁ̉èn */
6352 $"61E6 72E2 05E3 9F8D 26D8 F178 BCC0 0B18" /* aærâ.ãŸ&Øñx¼À.. */
6353 $"967C EA80 F7C1 45AE 8FAE A41C 41B6 438E" /* –|ê€÷ÁE®®¤.A¶CŽ */
6354 $"46EF 1094 D558 01A8 BBAD 7380 DA27 2772" /* Fï.”ÕX.¨»­s€Ú''r */
6355 $"9D67 1330 A48C 62EA 0643 14EC 3E22 A055" /* g.0¤Œbê.C.ì>" U */
6356 $"4E39 4E23 853D C587 99C8 CFD2 AEBB 9843" /* N9N#…=Ň™ÈÏÒ®»˜C */
6357 $"ECC9 0241 3253 8CF1 E068 1936 3BB2 56D3" /* ìÉ.A2SŒñàh.6;²VÓ */
6358 $"46F7 6A71 98D1 A300 1337 B3B0 7ABB 5752" /* F÷jq˜Ñ£..7³°z»WR */
6359 $"DB7A 7F85 5CFE 59DE A852 6987 DC11 C6B5" /* Ûz.…\þYÞ¨Ri‡Ü.Ƶ */
6360 $"E45B 7DD1 1F3A D566 C16D 3FBF 7BAD 7201" /* ä[}Ñ.:ÕfÁm?¿{­r. */
6361 $"B71C C74C A678 C2BB 10FD 534A 5E5D 79C0" /* ·.ÇL¦x».ýSJ^]yÀ */
6362 $"000C 2336 9113 B9C5 5D4A 1756 1C8B 0CD6" /* ..#6‘.¹Å]J.V.‹.Ö */
6363 $"AA8B DFF5 6CE3 CDAB B9B4 D85C 93FF 76AA" /* ª‹ßõlãÍ«¹´Ø\“ÿvª */
6364 $"15CF CF39 A864 B236 A172 03A1 65A1 9F76" /* .ÏÏ9¨d²6¡r.¡e¡Ÿv */
6365 $"FF55 00DE C7D0 C767 2787 9EB3 7CE5 C5BC" /* ÿU.ÞÇÐÇg'‡ž³|åż */
6366 $"8E08 6085 37A2 229C 73D3 2CC5 F6E8 AA1B" /* Ž.`…7¢"œsÓ,Åöèª. */
6367 $"AF13 15FD EB95 2609 6006 23C6 7910 8FFE" /* ¯..ýë•&Æ`.#Æy.þ */
6368 $"8C5E 60A6 A558 E899 0A05 0F37 EC94 8E51" /* Œ^`¦¥Xè™Â..7씎Q */
6369 $"7838 9A11 8483 88B0 E284 B88D CDEA 9D56" /* x8š.„ƒˆ°â„¸ÍêV */
6370 $"5C7E CFA2 8001 847E ABC9 360E 17EA 2D34" /* \~Ï¢€.„~«É6..ê-4 */
6371 $"8314 96C0 3810 D88F A54E 6E7C 6030 76FA" /* ƒ.–À8.Ø¥Nn|`0vú */
6372 $"18A4 A549 37FC 11F6 E77F A883 C794 71AC" /* .¤¥I7ü.öç.¨ƒÇ”q¬ */
6373 $"55F1 7F88 664A FEE4 01C4 5576 1BE6 9C41" /* Uñ.ˆfJþä.ÄUv.æœA */
6374 $"D800 6121 2FC0 E681 A16E 21AF D5FE 0E80" /* Ø.a!/Àæ¡n!¯Õþ.€ */
6375 $"A800 0000 3090 8C40 9184 82DA 7187 51C6" /* ¨...0Œ@‘„‚Úq‡QÆ */
6376 $"44DC C420 FF13 98AD D100 2C07 132C 8D6C" /* DÜÄ ÿ.˜­Ñ.,..,l */
6377 $"5D16 A089 D8F6 E77F A870 24F1 5461 DB69" /* ]. ‰Øöç.¨p$ñTaÛi */
6378 $"0F41 5029 7A41 B55F 0000 0184 846A 850C" /* .AP)zAµ_...„„j…. */
6379 $"241E E628 EDA6 4000 3090 6AA2 F6E7 7FA6" /* $.æ(í¦@.0j¢öç.¦ */
6380 $"26C9 5EDE 9BB6 A1B1 51E6 8D5D F800 0061" /* &É^Þ›¶¡±Qæ]ø..a */
6381 $"19B3 E47D 6F6F DB03 0885 4A53 27BA 38F5" /* .³ä}ooÛ..…JS'º8õ */
6382 $"35A0 1AB9 0A95 8FAE 85E3 F528 5A8B E645" /* 5 .¹Â•®…ãõ(Z‹æE */
6383 $"8419 0456 6A38 D0DA 4948 8987 2323 1216" /* „..Vj8ÐÚIH‰‡##.. */
6384 $"A4F8 FD1A C374 D30C BF43 CD86 B984 F23C" /* ¤øý.ÃtÓ.¿C͆¹„ò< */
6385 $"5487 B47F E217 F15A D8CF A66A 96A9 EAF3" /* T‡´.â.ñZØϦj–©êó */
6386 $"F966 0205 D320 1556 5C3C 073A 8E66 1E3F" /* ùf..Ó .V\<.:Žf.? */
6387 $"A74E FF2C BC45 E9DB 3B25 FF7F 46AD 13A9" /* §Nÿ,¼EéÛ;%ÿ.F­.© */
6388 $"5C21 458B 6AD4 829C 1DFB 54BA E5F2 3C76" /* \!E‹jÔ‚œ.ûTºåò<v */
6389 $"3898 11F6 D710 7470 00FC 0742 CA59 9E40" /* 8˜.ö×.tp.ü.BÊYž@ */
6390 $"757C 5952 61FF 4D28 0991 1673 9B01 06B9" /* u|YRaÿM(Æ‘.s›..¹ */
6391 $"3999 E9B5 06CD B1DA CB08 FF19 DE70 8D10" /* 9™éµ.ͱÚË.ÿ.Þp. */
6392 $"E725 848E D27D 2B0B 54F0 B60B 26AB CD92" /* ç%„ŽÒ}+.Tð¶.&«Í’ */
6393 $"E4F8 C007 FF68 6933 E2FF 31D5 435B FF7F" /* äøÀ.ÿhi3âÿ1ÕC[ÿ. */
6394 $"9A8E 9845 007F FEDA 4C63 9892 513A ABD9" /* šŽ˜E..þÚLc˜’Q:«Ù */
6395 $"A98A C012 5C99 31C0 D48F E334 671D A695" /* ©ŠÀ.\™1ÀÔã4g.¦• */
6396 $"C7EF 3AAA FF37 D381 4F42 983F FC4D AE82" /* Çï:ªÿ7ÓOB˜?üM®‚ */
6397 $"FF43 6555 9E7F 10A3 7B95 415D 41FF 20B3" /* ÿCeUž..£{•A]Aÿ ³ */
6398 $"8CB1 7302 0000 0000 584E AB14 398C A865" /* Œ±s.....XN«.9Œ¨e */
6399 $"5A7B 1650 52EB 8BCE 3E92 461D 071B 8F21" /* Z{.PRë‹Î>’F...! */
6400 $"2CFF 4F5F FD2E 999E B77D A47D 61B4 2C01" /* ,ÿO_ý.™ž·}¤}a´,. */
6401 $"D397 493D CB48 AB27 EB4A 13A7 8C89 7F64" /* Ó—I=ËH«'ëJ.§Œ‰.d */
6402 $"6C08 FF21 9696 98C7 6248 1615 541F EC81" /* l.ÿ!––˜ÇbH..T.ì */
6403 $"8E18 FAED 5257 3D01 2CBB 74C1 DA64 81A0" /* Ž.úíRW=.,»tÁÚd  */
6404 $"39BF B272 4068 15E8 A44A 007C 732C D9DC" /* 9¿²r@h.è¤J.|s,ÙÜ */
6405 $"1CF8 4612 8611 A36D 67BC 6E6A EA14 9D87" /* .øF.†.£mg¼njê.‡ */
6406 $"2962 C4B4 5442 9564 BFAA D0FB 991F 4288" /* )bÄ´TB•d¿ªÐû™.Bˆ */
6407 $"7CB2 2A41 333E 7827 5070 F3A6 67FF 7FFF" /* |²*A3>x'Ppó¦gÿ.ÿ */
6408 $"7601 CFFE E44B 4413 809B 3877 B59D BC19" /* v.ÏþäKD.€›8wµ¼. */
6409 $"548F 0A5B C1E9 A8D7 6B5D 8EC8 8A1A BB3D" /* TÂ[Áé¨×k]ŽÈŠ.»= */
6410 $"3CD1 3139 57CF 9E94 00E9 CF6E 3830 3561" /* <Ñ19WÏž”.éÏn805a */
6411 $"8DE4 A59F FD1B 45CF C608 D0FD 5D48 485E" /* 䥟ý.EÏÆ.Ðý]HH^ */
6412 $"D5A3 30A5 F9EE 5D55 B9C2 E552 3A9F B087" /* Õ£0¥ùî]U¹ÂåR:Ÿ°‡ */
6413 $"FE87 5DBC 5E73 0F16 9221 2B0D F399 AB6F" /* þ‡]¼^s..’!+.ó™«o */
6414 $"9950 0000 0000 0000 0008 2444 88CE 3BBD" /* ™P........$DˆÎ;½ */
6415 $"CC78 4932 9C47 DEFA 74E7 91BF 9827 FF7B" /* ÌxI2œGÞútç‘¿˜'ÿ{ */
6416 $"77EB 9B1B 9F7F FDAB 6552 35A1 0C22 E9C6" /* wë›.Ÿ.ý«eR5¡."éÆ */
6417 $"42E3 FF7F FF7F E9FD A23B 2F7D 3ADD FC90" /* Bãÿ.ÿ.éý¢;/}:Ýü */
6418 $"E4A1 F8B9 0560 0F86 D7FE 3F46 C953 2A03" /* ä¡ø¹.`.†×þ?FÉS*. */
6419 $"F1C7 F5AE D0C4 B743 EA67 B694 E47D 45CD" /* ñÇõ®ÐÄ·Cêg¶”ä}EÍ */
6420 $"6F92 178A E383 8B71 800E D9AF A55A F149" /* o’.Šãƒ‹q€.Ù¯¥ZñI */
6421 $"A838 5671 4C9A 8915 447A CDA9 C6B7 DD68" /* ¨8VqLš‰.DzÍ©Æ·Ýh */
6422 $"A5FB F404 CF63 A62E CC5E 89D3 FDB2 C841" /* ¥ûô.Ïc¦.Ì^‰Óý²ÈA */
6423 $"7A37 5B5D 5958 4B46 20B1 D389 5188 F9FE" /* z7[]YXKF ±Ó‰Qˆùþ */
6424 $"8FF1 D718 6C8C 3254 0000 0000 0000 0000" /* ñ×.lŒ2T........ */
6425 $"0000 00A1 EBEC C33A 8622 D0FF 7FFF 7FFF" /* ...¡ëìÃ:†"Ðÿ.ÿ.ÿ */
6426 $"705D C7FE 49E7 01B7 A65D D5BC 2041 80B0" /* p]ÇþIç.·¦]Õ¼ A€° */
6427 $"89ED F68A A000 F438 EBD0 C908 0B67 414F" /* ‰íöŠ .ô8ëÐÉ..gAO */
6428 $"C8F1 4312 2EC8 05E6 CA19 184F FF5B BA24" /* ÈñC..È.æÊ..Oÿ[º$ */
6429 $"57E8 A6B4 FBD3 FF79 4D8E FF44 BC50 6938" /* W覴ûÓÿyMŽÿD¼Pi8 */
6430 $"137F FF7D 6251 8D1A 9B33 CF7E 0BCB EAD7" /* ..ÿ}bQ.›3Ï~.Ëê× */
6431 $"2E0D EAE0 0003 0906 AA2B 66A8 C950 0000" /* ..êà..Æ.ª+f¨ÉP.. */
6432 $"0000 0000 0000 0000 0001 1E1F F600 1848" /* ............ö..H */
6433 $"4BF6 7A7C F92D 3E7A 437E 2254 51EB 4AF5" /* Köz|ù->zC~"TQëJõ */
6434 $"C6BF 442A 12CD 51FF 7FFE B8AE D0C4 B1D0" /* Æ¿D*.ÍQÿ.þ¸®ÐıР*/
6435 $"7CF7 019D A0ED 2CC4 01BC 1A94 212D 43EF" /* |÷. í,Ä.¼.”!-Cï */
6436 $"1274 9B67 94D5 062D 5FCC E23C 4816 416B" /* .t›g”Õ.-_Ìâ<H.Ak */
6437 $"1540 59C2 1D35 213D A11C EE70 8D15 5394" /* .@YÂ.5!=¡.îp.S” */
6438 $"53C6 29CF 4E19 F4CF 5B94 7FFF 7F8B 2813" /* SÆ)ÏN.ôÏ[”.ÿ.‹(. */
6439 $"3E95 DE81 30D0 3188 2A75 4F35 CB11 DDD5" /* >•Þ0Ð1ˆ*uO5Ë.ÝÕ */
6440 $"7FFD A983 95A9 71E7 A7A3 7D3F F944 0A7E" /* .ý©ƒ•©q秣}?ùDÂ~ */
6441 $"24D9 966F 6B6A 0FD0 23AC 7000 0000 0000" /* $Ù–okj.Ð#¬p..... */
6442 $"0009 D4AF 9196 E5A4 B8AC 407F F9EE C709" /* .ÆÔ¯‘–夸¬@.ùîÇÆ */
6443 $"F927 08C3 CA6C 3A3A D90F E306 BCC4 6D6C" /* ù'.ÃÊl::Ù.ã.¼Äml */
6444 $"C7A9 F042 6F4C FDC9 60AB A087 6338 8F12" /* Ç©ðBoLýÉ`« ‡c8. */
6445 $"4D29 D00C C575 C7B5 9FA4 E96C 1FA0 AAFB" /* M)Ð.ÅuǵŸ¤él. ªû */
6446 $"09E9 8DF9 1BE0 C62D 3C1D F55B DD77 A0FD" /* Æéù.àÆ-<.õ[Ýw ý */
6447 $"5C16 D959 BA08 0000 0000 0000 0145 AE01" /* \.ÙYº........E®. */
6448 $"712A 0E06 1212 70CD 94A8 0A2C 18F5 1E3B" /* q*....pÍ”¨Â,.õ.; */
6449 $"52FA C8F6 56F3 F7E4 69E6 54A0 3FF6 2487" /* RúÈöVó÷äiæT ?ö$‡ */
6450 $"C65F 0EFF 7F4F 8D07 C817 FE78 727D 3C75" /* Æ_.ÿ.O.È.þxr}<u */
6451 $"E4C6 1003 FECF 3E7E 6252 08C0 4A83 50D7" /* äÆ..þÏ>~bR.ÀJƒP× */
6452 $"DADA 8602 5949 900F D2B6 D10D 2661 3014" /* ÚÚ†.YI.Ò¶Ñ.&a0. */
6453 $"4541 17FF 2106 00DF AC82 0046 09BB A5AF" /* EA.ÿ!..߬‚.FÆ»¥¯ */
6454 $"CE51 0EBF F9AD 787A 907F 9F9A 628F E16B" /* ÎQ.¿ù­xz.Ÿšbák */
6455 $"C015 137E 9C68 FCFA A817 FF7F DD6B FDB6" /* À..~œhüú¨.ÿ.Ýký¶ */
6456 $"3DA3 7C9D 3309 0B8A B551 C370 4401 CD7F" /* =£|3Æ.ŠµQÃpD.Í. */
6457 $"7503 8425 E297 1B3F FF49 4FF8 3583 685A" /* u.„%â—.?ÿIOø5ƒhZ */
6458 $"B273 A7F7 CEBF F27E D78C 3E35 5332 152B" /* ²s§÷οò~׌>5S2.+ */
6459 $"033C C7FF 7B97 1AF0 F2A4 3C88 CC7B B96E" /* .<Çÿ{—.ðò¤<ˆÌ{¹n */
6460 $"65B3 533C F2F8 5E4B 6DBF 7D78 A316 310F" /* e³S<òø^Km¿}x£.1. */
6461 $"6B09 FD62 88D7 77FF 7447 524E C235 00A3" /* kÆýbˆ×wÿtGRNÂ5.£ */
6462 $"8F5A 4BEE D240 6154 C17C 2CC2 68F0 A959" /* ZKîÒ@aTÁ|,Âhð©Y */
6463 $"2F12 9B74 7E8E 423F BB1D BC9A C75B C618" /* /.›t~ŽB?».¼šÇ[Æ. */
6464 $"19D1 C6CB 0A15 BD77 99BD 96D3 CC07 F5AC" /* .ÑÆËÂ.½w™½–ÓÌ.õ¬ */
6465 $"D2ED DE5E F19D 5CFC B2B0 5407 0386 32C6" /* ÒíÞ^ñ\ü²°T..†2Æ */
6466 $"5F49 7BAD 3270 BF81 CF97 C934 7E23 7237" /* _I{­2p¿Ï—É4~#r7 */
6467 $"727B 0FA2 6DB0 D717 8C73 B109 E089 AAC5" /* r{.¢m°×.Œs±Æà‰ªÅ */
6468 $"7D98 9061 2956 EA75 0135 E870 3430 4E9B" /* }˜a)Vêu.5èp40N› */
6469 $"C76C D3D6 7EEB 83DB 9EEB C9A0 983D 1327" /* ÇlÓÖ~ëƒÛžëÉ ˜=.' */
6470 $"62D8 FD62 CA51 7135 80B0 ABFF 431B 9843" /* bØýbÊQq5€°«ÿC.˜C */
6471 $"68B4 A929 44E4 1F3E E3A1 22AA 5E87 579C" /* h´©)Dä.>ã¡"ª^‡Wœ */
6472 $"745B 9CA4 438C BFC2 9A1B 17BE BA75 06E4" /* t[œ¤CŒ¿Âš..¾ºu.ä */
6473 $"0108 698C E4F2 341C 24CC 7913 6237 ED48" /* ..iŒäò4.$Ìy.b7íH */
6474 $"E797 4D7A 0D5A D1EA ACDF F974 4F9F 9139" /* ç—Mz.ZÑê¬ßùtOŸ‘9 */
6475 $"6A87 3972 A1C8 0A2B 1E8B 6DB7 B811 4AB0" /* j‡9r¡ÈÂ+.‹m·¸.J° */
6476 $"EEE8 BB23 959C 239D 4165 DBED ACE4 F133" /* îè»#•œ#AeÛí¬äñ3 */
6477 $"8276 40BB C447 29FE 3EB6 5BA4 A6D0 2441" /* ‚v@»ÄG)þ>¶[¤¦Ð$A */
6478 $"1431 8B2D 8BFD 96B7 C8C2 9F9B DFB9 2B06" /* .1‹-‹ý–·ÈŸ›ß¹+. */
6479 $"E191 00FF 7E4B 8281 D609 D163 B8CB AF9A" /* á‘.ÿ~K‚ÖÆÑc¸Ë¯š */
6480 $"0995 7385 27FC 3C6A 5310 024D BAD1 8013" /* Æ•s…'ü<jS..MºÑ€. */
6481 $"8995 3DF4 FA80 FE12 8F5F 40E5 09E6 E7E8" /* ‰•=ôú€þ._@åÆæçè */
6482 $"C5E7 1309 3E97 E278 0228 1693 F565 F83E" /* Åç.Æ>—âx.(.“õeø> */
6483 $"4161 0037 E0AA D0CC 3AED 4E56 04E8 4456" /* Aa.7àªÐÌ:íNV.èDV */
6484 $"6E50 4626 C7E0 0790 014E 329B 0DDB D87D" /* nPF&Çà..N2›.ÛØ} */
6485 $"4532 6482 3F51 D651 3F62 D6EB 3BCA 75EB" /* E2d‚?QÖQ?bÖë;Êuë */
6486 $"5444 A42F 3CFB 4146 19FB 5376 876F 6BC1" /* TD¤/<ûAF.ûSv‡okÁ */
6487 $"B80B 7787 71DF 4CAA D70A 98BC 98E1 15A1" /* ¸.w‡qßLª×˜¼˜á.¡ */
6488 $"7996 F17F FF7A 91CF 350C FA04 5753 7ECB" /* y–ñ.ÿz‘Ï5.ú.WS~Ë */
6489 $"29F1 A4AD F335 59DB A580 EAA3 98AD FEB0" /* )ñ¤­ó5YÛ¥€ê£˜­þ° */
6490 $"275E BABE 6679 9AD4 B246 75F2 ECAA B042" /* '^º¾fyšÔ²Fuò쪰B */
6491 $"92C9 745E 1C58 58FF 2570 9228 4EAF 6F65" /* ’Ét^.XXÿ%p’(N¯oe */
6492 $"56F3 1D0C 85AA 9468 8000 0000 0101 3082" /* Vó..…ª”h€.....0‚ */
6493 $"08FD E30F FF75 70BF FCCA 2225 E5FC 3464" /* .ýã.ÿup¿üÊ"%åü4d */
6494 $"00CA 6C43 E833 80DE 2895 5F84 4B08 CEFA" /* .ÊlCè3€Þ(•_„K.Îú */
6495 $"AA94 EE33 24E7 CA20 A668 4717 FD5F F7F2" /* ª”î3$çÊ ¦hG.ý_÷ò */
6496 $"59E7 D6C6 6D0D 8E0F 1AC3 BBFA 3890 8ACB" /* YçÖÆm.Ž..ûú8ŠË */
6497 $"9250 6D82 E892 D4B9 1F14 D987 9818 877A" /* ’Pm‚è’Ô¹..Ù‡˜.‡z */
6498 $"66F0 905A B088 D761 B529 F02A 6964 6C65" /* fðZ°ˆ×aµ)ð*idle */
6499 $"8FB8 9A87 7771 9A12 C8A6 7F9C 9905 D643" /* ¸š‡wqš.Ȧ.œ™.ÖC */
6500 $"E554 91F5 0C26 4299 30C6 BC87 B38C 86FB" /* åT‘õ.&B™0Ƽ‡³Œ†û */
6501 $"ED50 C019 3822 52A8 97C6 1F49 176D FB8C" /* íPÀ.8"R¨—Æ.I.mûŒ */
6502 $"87B7 E37C 196E 3695 357A E2B8 FDE5 736E" /* ‡·ã|.n6•5zâ¸ýåsn */
6503 $"DF11 6026 3CD9 51CF 2A50 6F8A 53B0 0F16" /* ß.`&<ÙQÏ*PoŠS°.. */
6504 $"938B 745A F84D 571C A582 9723 90B4 49D7" /* “‹tZøMW.¥‚—#´I× */
6505 $"B11D 7BA6 45C1 2AFA D519 A471 60A3 17A9" /* ±.{¦EÁ*úÕ.¤q`£.© */
6506 $"2C13 6E04 D58E 3F37 0115 E4AE F51C 1BA8" /* ,.n.ÕŽ?7..ä®õ..¨ */
6507 $"EF7F 4C9F 7B47 8C5A D1D6 CAC7 D416 D6D4" /* ï.LŸ{GŒZÑÖÊÇÔ.ÖÔ */
6508 $"7F05 9504 5685 0D6D E0E8 6809 9307 7864" /* ..•.V….màèhÆ“.xd */
6509 $"1A86 1BA6 A321 D08C 1B0C 0981 9395 6DC0" /* .†.¦£!ÐŒ..Æ“•mÀ */
6510 $"C74F ECF7 CA1B FF4B 1896 BDBE 4876 8A4B" /* ÇOì÷Ê.ÿK.–½¾HvŠK */
6511 $"519F CC3C 7813 BE21 C40C B001 30F4 4FC7" /* QŸÌ<x.¾!Ä.°.0ôOÇ */
6512 $"B76C B9FA 26F6 38C8 116D B8F0 0B9D 818F" /* ·l¹ú&ö8È.m¸ð. */
6513 $"56F9 F934 AE60 71FD E583 8D07 A4A4 DE41" /* Vùù4®`qýåƒ.¤¤ÞA */
6514 $"FB75 B83F 384B 11C9 CC5E CD9D FF4C 05A8" /* ûu¸?8K.ÉÌ^ÍÿL.¨ */
6515 $"D59F 1E59 4797 FF7F DFD8 391C E8BA 72E2" /* ÕŸ.YG—ÿ.ßØ9.èºrâ */
6516 $"C1F8 9F5C 5317 01E3 EC2D 4120 97D2 BAEC" /* ÁøŸ\S..ãì-A —Òºì */
6517 $"DBB0 FF30 FC56 2E43 3716 1B7B A8CD 19AE" /* Û°ÿ0üV.C7..{¨Í.® */
6518 $"7FFF 7FF4 468B FF45 749B 3C67 EE31 1651" /* .ÿ.ôF‹ÿEt›<gî1.Q */
6519 $"17B2 B21C A982 A185 E8A3 03BC 2DCB C09A" /* .²².©‚¡…è£.¼-ËÀš */
6520 $"8522 64CF BB21 6955 068D F002 871B 05F3" /* …"dÏ»!iU.ð.‡..ó */
6521 $"9F44 7384 D624 E1FA A24D 67C7 BC5E F7BF" /* ŸDs„Ö$áú¢MgǼ^÷¿ */
6522 $"59BC DC3C BE4B 1456 0C6F F2C1 0841 038D" /* Y¼Ü<¾K.V.oòÁ.A. */
6523 $"723C 14FA 4F19 0AD4 1F88 0A1B FF14 3D93" /* r<.úO.ÂÔ.ˆÂ.ÿ.=“ */
6524 $"27AA 6E0B 4AA7 6A11 E06D 5D82 C930 1B53" /* 'ªn.J§j.àm]‚É0.S */
6525 $"0227 A9AA 253A 41E6 31D5 8B87 DC08 819B" /* .'©ª%:Aæ1Õ‹‡Ü.› */
6526 $"E5EE EA0F 6AA0 0000 0006 9BC0 594E 0004" /* åîê.j ....›ÀYN.. */
6527 $"D326 312C 0364 8835 C4D7 5040 3724 3CD9" /* Ó&1,.dˆ5Ä×P@7$<Ù */
6528 $"B889 2E14 12BC F0AD 9D2E 326B 1654 5952" /* ¸‰...¼ð­.2k.TYR */
6529 $"2B5F 1A9D 5403 C9C5 A731 1B3C 3443 783C" /* +_.T.Éŧ1.<4Cx< */
6530 $"A459 248B BBC7 DEDC 74AD E2A1 D647 5047" /* ¤Y$‹»ÇÞÜt­â¡ÖGPG */
6531 $"AD17 15AF FF5C 88C4 025F 4361 3F83 BFC9" /* ­..¯ÿ\ˆÄ._Ca?ƒ¿É */
6532 $"FF6D 7E58 128D 33D7 7076 E73A 9CF6 76D8" /* ÿm~X.3×pvç:œövØ */
6533 $"A0FF 2C44 2029 0B59 B427 3BDC 915B 87CF" /*  ÿ,D ).Y´';Ü‘[‡Ï */
6534 $"75D6 EC52 7793 6DFA A4E2 9E2D 7D25 FBC2" /* uÖìRw“mú¤âž-}%û */
6535 $"2028 DE78 D868 BEC5 E9D2 BFFA 8B12 9265" /* (ÞxØh¾ÅéÒ¿ú‹.’e */
6536 $"B01D 92F7 F71E 8782 F1CD 4E98 B46E 6DA5" /* °.’÷÷.‡‚ñÍN˜´nm¥ */
6537 $"8825 F851 1CE9 9F21 D8E2 86EB BAF4 126F" /* ˆ%øQ.éŸ!Øâ†ëºô.o */
6538 $"9CB3 0144 009A 6F38 0919 9C1F D0CE D23C" /* œ³.D.šo8Æ.œ.ÐÎÒ< */
6539 $"C9DD 9273 D8F6 6733 6E5A 2E7A 635C 8723" /* ÉÝ’sØög3nZ.zc\‡# */
6540 $"6E04 1283 1A43 02CA 74E4 8000 0309 08DB" /* n..ƒ.C.Êtä€..Æ.Û */
6541 $"EF05 DC00 D116 0D58 1A69 2055 1BA0 D8DE" /* ï.Ü.Ñ..X.i U. ØÞ */
6542 $"34B6 EA40 CC06 C673 559A 75F2 9B58 C474" /* 4¶ê@Ì.ÆsUšuò›XÄt */
6543 $"DD4C AB9A 9E6D 653B FCDF 4F33 3707 105E" /* ÝL«šžme;üßO37..^ */
6544 $"DBCE D327 45FB C663 E1AF 375B B106 B0B8" /* ÛÎÓ'EûÆcá¯7[±.°¸ */
6545 $"26EE AE4B 538A CF74 588E 928B 58C7 2D93" /* &î®KSŠÏtXŽ’‹XÇ-“ */
6546 $"371E BC81 0ED0 9F2C 1A18 8DD7 7E65 4FBF" /* 7.¼.П,..×~eO¿ */
6547 $"511B 63A1 8F26 2A08 A4D3 2BF3 96E6 FC32" /* Q.c¡&*.¤Ó+ó–æü2 */
6548 $"D457 8287 D843 6D19 2458 0EA4 AC8F 0512" /* ÔW‚‡ØCm.$X.¤¬.. */
6549 $"831D D4CA 9BFF 5A6E 951A 5897 451F 750C" /* ƒ.ÔÊ›ÿZn•.X—E.u. */
6550 $"CAD4 89C1 94A7 4BFA 4030 4828 1E37 C049" /* ÊÔ‰Á”§Kú@0H(.7ÀI */
6551 $"34C4 54B1 1054 2645 14E5 6DFF 7FFF 7328" /* 4ÄT±.T&E.åmÿ.ÿs( */
6552 $"F1A4 AAA2 4FD2 507D 86D5 FF7F FA43 F49A" /* ñ¤ª¢OÒP}†Õÿ.úCôš */
6553 $"5049 0839 5964 8186 EE46 1867 158E 9E2C" /* PI.9Yd†îF.g.Žž, */
6554 $"D618 8FF5 D416 6838 6187 9CF7 21BC DE1F" /* Ö.õÔ.h8a‡œ÷!¼Þ. */
6555 $"F84F F4E9 ACDB ECD8 6CA6 6725 85B4 4049" /* øOôé¬ÛìØl¦g%…´@I */
6556 $"AA9E 4935 7E1F 54E7 B0D5 A026 B073 899B" /* ªžI5~.Tç°Õ &°s‰› */
6557 $"51C4 8C2E 483C B3BF 38A0 4BCF 2042 EE90" /* QÄŒ.H<³¿8 KÏ Bî */
6558 $"4E1B 8C94 420F 99A7 9EA1 7D96 12A3 8C8D" /* N.Œ”B.™§ž¡}–.£Œ */
6559 $"819B C97D C518 51CB 0D8A A7A1 7159 EB10" /* ›É}Å.QË.Š§¡qYë. */
6560 $"4A27 5CD0 0ED7 2688 5F74 CE10 DF6A 5B4F" /* J'\Ð.×&ˆ_tÎ.ßj[O */
6561 $"E370 A282 105D 2F43 6E74 6B07 05EC 880E" /* ãp¢‚.]/Cntk..ìˆ. */
6562 $"15AF 5118 9D27 327D 2552 9996 020B 2D9A" /* .¯Q.'2}%R™–..-š */
6563 $"9AFC 6849 6068 6491 42FA 889C 7949 285A" /* šühI`hd‘BúˆœyI(Z */
6564 $"7FFE 5B6D DAF2 7FFF 772D E08E B9E4 65A3" /* .þ[mÚò.ÿw-àŽ¹äe£ */
6565 $"B49A DDC8 FF52 8DA3 B318 F84F F4E9 99ED" /* ´šÝÈÿR£³.øOôé™í */
6566 $"48C4 CA7E BE77 2634 6A22 1FAD 4752 8D9B" /* HÄÊ~¾w&4j".­GR› */
6567 $"B935 0449 1A27 9EAB B000 C242 3BB7 72B7" /* ¹5.I.'ž«°.ÂB;·r· */
6568 $"3ACC B41F 0AC9 CFFD 58DA D99F 498A 21CF" /* :Ì´.ÂÉÏýXÚÙŸIŠ!Ï */
6569 $"50B8 A155 9BB3 B3DA 13FE 251F 14F2 3431" /* P¸¡U›³³Ú.þ%..ò41 */
6570 $"6DBF 2774 3EFC 55BB 9CB3 40A4 CA00 A112" /* m¿'t>üU»œ³@¤Ê.¡. */
6571 $"3E83 51D4 9D13 DE0D F86D 3384 AAE7 9074" /* >ƒQÔ.Þ.øm3„ªçt */
6572 $"F7CF 4509 F99A 70B2 2E74 43C3 1363 021F" /* ÷ÏEÆùšp².tCÃ.c.. */
6573 $"6482 E471 22FA 6265 2DF9 C302 43F8 9053" /* d‚äq"úbe-ùÃ.CøS */
6574 $"0AE9 15A2 28D4 FD7C 05AF C7B8 26D5 7C0F" /* Âé.¢(Ôý|.¯Ç¸&Õ|. */
6575 $"22E0 4735 518D BE4B 4E83 1EF8 3FFA BA23" /* "àG5Q¾KNƒ.ø?úº# */
6576 $"3AE8 F76B 1D92 2038 64C1 EA73 30FC CE72" /* :è÷k.’ 8dÁês0üÎr */
6577 $"0CA5 6697 157E 55C4 8BAE E703 6FF5 F743" /* .¥f—.~UÄ‹®ç.oõ÷C */
6578 $"B456 C85F 3BFF 2629 95B7 02F4 F580 A49B" /* ´VÈ_;ÿ&)•·.ôõ€¤› */
6579 $"1587 2316 D131 66C1 C6DB F3DC C409 D801" /* .‡#.Ñ1fÁÆÛóÜÄÆØ. */
6580 $"E2DA 30B6 73FD 99EF AA26 25D7 DF07 FBEB" /* âÚ0¶sý™ïª&%×ß.ûë */
6581 $"094E 2E8E BD11 3C49 81BA E6BE 7666 ECBE" /* ÆN.Ž½.<Iºæ¾vfì¾ */
6582 $"59D2 4ACC B4CE 3FAD 2173 25CB E42F 37B8" /* YÒJÌ´Î?­!s%Ëä/7¸ */
6583 $"F3CC 79EF 695C 10F4 0381 2D14 1B0F D632" /* óÌyïi\.ô.-...Ö2 */
6584 $"8A1E 9C29 F617 6A4B 204E A147 C08D 1AA5" /* Š.œ)ö.jK N¡GÀ.¥ */
6585 $"7418 DED9 DE83 A555 A75B AB00 C650 247F" /* t.ÞÙÞƒ¥U§[«.ÆP$. */
6586 $"0222 5558 731B 54DB 14F6 3A0E 1FAD A8D8" /* ."UXs.TÛ.ö:..­¨Ø */
6587 $"F327 DC8F AF3F 630B 3BA9 7933 8D30 458C" /* ó'ܯ?c.;©y30EŒ */
6588 $"4C2F 6E3A 0A64 DDC5 926A 71CB 2347 EE4D" /* L/n:ÂdÝÅ’jqË#GîM */
6589 $"647B D94D BE24 7F62 6A14 EBE2 696F 8735" /* d{ÙM¾$.bj.ëâio‡5 */
6590 $"A96F E268 6912 A4A9 3254 0293 CB09 0DC0" /* ©oâhi.¤©2T.“ËÆ.À */
6591 $"206B EB7B F6B9 0643 5E74 4F2C 555A AE2D" /* kë{ö¹.C^tO,UZ®- */
6592 $"B16B 7FA3 8ADE 7EAC 764F 9A20 BC94 05F1" /* ±k.£ŠÞ~¬vOš ¼”.ñ */
6593 $"9AAC 0118 36B8 6B30 D696 6E84 EEC2 5342" /* š¬..6¸k0Ö–n„îÂSB */
6594 $"03A8 EFD3 CB37 D50D F676 35DB AD6C 280A" /* .¨ïÓË7Õ.öv5Û­l( */
6595 $"DB04 D23A 0922 A2E3 5F45 EBD1 5C49 F6AA" /* Û.Ò:Æ"¢ã_EëÑ\Iöª */
6596 $"4579 1BA2 D94E D3F0 7A7E C24E 79B0 5D24" /* Ey.¢ÙNÓðz~ÂNy°]$ */
6597 $"B98E 23E7 4C4F 54D9 A3CE 389F 63F6 2426" /* ¹Ž#çLOTÙ£Î8Ÿcö$& */
6598 $"7087 D921 86D6 709F 768D 5684 BB90 47B7" /* p‡Ù!†ÖpŸvV„»G· */
6599 $"AC32 98D7 E247 3668 E954 8105 EE44 AF58" /* ¬2˜×âG6héT.îD¯X */
6600 $"13FF 573A 9F89 06C9 FB77 277E 08C9 09E9" /* .ÿW:Ÿ‰.Éûw'~.ÉÆé */
6601 $"B180 F96E C5AB 1E5D 3029 E229 CE1B B2AD" /* ±€ùnÅ«.]0)â)Î.²­ */
6602 $"BA11 DD98 0D9C 4C45 66DD 8553 3BA2 6F5B" /* º.ݘ.œLEfÝ…S;¢o[ */
6603 $"699B CEF3 48A7 6C31 63E6 E189 9C68 B9EC" /* i›ÎóH§l1cæቜh¹ì */
6604 $"A663 411F EBCB 41AB 8F7E 7EAD 87DA 5BF3" /* ¦cA.ëËA«~~­‡Ú[ó */
6605 $"AAC9 975B AC1F 712B F7ED DEBD 04C3 B85A" /* ªÉ—[¬.q+÷íÞ½.øZ */
6606 $"470D D74A B91D 0180 7BAB 4088 5671 6268" /* G.×J¹..€{«@ˆVqbh */
6607 $"5B4A 54FE C179 1600 7677 830B 0E81 EEB4" /* [JTþÁy..vwƒ..î´ */
6608 $"056E 79FF 8251 AB20 A6BC 15A5 E71F 7D4A" /* .nyÿ‚Q« ¦¼.¥ç.}J */
6609 $"2F6E 951A DE36 7A81 C704 9A4A F239 E1DC" /* /n•.Þ6zÇ.šJò9áÜ */
6610 $"FF6C DE49 B4C8 F6C1 F764 8D19 4686 DFC2" /* ÿlÞI´ÈöÁ÷d.F†ß */
6611 $"5C72 4A52 9784 F974 DCA4 A177 21DA 9869" /* \rJR—„ùtܤ¡w!Ú˜i */
6612 $"80A4 5BC6 FD54 A56B C7B1 4705 3A32 C896" /* €¤[ÆýT¥kDZG.:2È– */
6613 $"4539 25E5 90CC F228 B7F9 ADA5 CC2C 59CA" /* E9%åÌò(·ù­¥Ì,YÊ */
6614 $"D14D 4B86 9CC0 D367 7EF5 DB6D C2E1 06DB" /* ÑMK†œÀÓg~õÛmÂá.Û */
6615 $"58BC 0D97 DCFE 3CB1 EA45 C36F 1B60 83C9" /* X¼.—Üþ<±êEÃo.`ƒÉ */
6616 $"663F B883 83BA A69F 2653 0747 18C7 6D20" /* f?¸ƒƒº¦Ÿ&S.G.Çm */
6617 $"F2C7 6E01 47DA AB9D 2D83 D5CE 1E9C 779A" /* òÇn.GÚ«-ƒÕÎ.œwš */
6618 $"5FAE 6015 63DE 317A EFCA 7142 F3F8 A7E1" /* _®`.cÞ1zïÊqBóø§á */
6619 $"F739 60AB DF24 41BF EB6C AF15 7223 E56C" /* ÷9`«ß$A¿ël¯.r#ål */
6620 $"8D61 D9D1 C61F 8F8E 8435 6452 C45A 917B" /* aÙÑÆ.Ž„5dRÄZ‘{ */
6621 $"0856 B8BA 14E2 0A77 ABA0 E605 2E39 63EA" /* .V¸º.âÂw« æ..9cê */
6622 $"E7F5 4804 6535 7672 575F 37EA 9E69 1A1C" /* çõH.e5vrW_7êži.. */
6623 $"E380 CB7D C109 2D50 73EF 4119 54BE CBFE" /* ã€Ë}ÁÆ-PsïA.T¾Ëþ */
6624 $"4552 74A1 3E73 C457 1436 9DFF 3C25 8231" /* ERt¡>sÄW.6ÿ<%‚1 */
6625 $"2C25 ACE4 F084 E842 60E8 355D 22BE 6FEE" /* ,%¬äð„èB`è5]"¾oî */
6626 $"93F9 DDE6 DAED 4E44 545A FE4E 5EA4 0487" /* “ùÝæÚíNDTZþN^¤.‡ */
6627 $"36F1 52AF 8683 2DE8 F30B 72DE E807 2068" /* 6ñR¯†ƒ-èó.rÞè. h */
6628 $"742B 7262 BF7E 516C D41F CA56 9DE1 E3B8" /* t+rb¿~QlÔ.ÊVá㸠*/
6629 $"8D72 2993 C073 516D A343 DDE0 984D F06A" /* r)“ÀsQm£CÝà˜Mðj */
6630 $"CD83 D22D C161 30D7 2E9A FED4 4E85 5D2E" /* ̓Ò-Áa0×.šþÔN…]. */
6631 $"CF72 2181 7F23 BC37 FF83 C30D 43E0 DBC7" /* Ïr!.#¼7ÿƒÃ.CàÛÇ */
6632 $"A277 B4D9 4E68 1FB1 AF7B 6D8B 8F43 2A1B" /* ¢w´ÙNh.±¯{m‹C*. */
6633 $"9FE4 6CCC E826 C4AA 96C9 98A9 4D3B 981F" /* ŸälÌè&Ī–ɘ©M;˜. */
6634 $"8786 8633 89B0 2B42 4266 BC27 0098 D2B3" /* ‡††3‰°+BBf¼'.˜Ò³ */
6635 $"E8E4 0D2C 6E14 D34D 3613 4568 4A1E 8E5E" /* èä.,n.ÓM6.EhJ.Ž^ */
6636 $"E328 D89C 85D3 D8C2 C15B 3533 989F F015" /* ã(Øœ…ÓØÂÁ[53˜Ÿð. */
6637 $"1B49 871D 031B 2DBE D49E 880D A557 0694" /* .I‡...-¾Ôžˆ.¥W.” */
6638 $"60C3 47A1 CD2A 961B F73C 94A3 6B17 4268" /* `ÃG¡Í*–.÷<”£k.Bh */
6639 $"F766 81DC 33BC 8C1D 5571 D2D7 FB1C 9378" /* ÷fÜ3¼Œ.UqÒ×û.“x */
6640 $"01B7 BDCC 5DD0 9171 5FA1 50DA 7EBF 1586" /* .·½Ì]Бq_¡PÚ~¿.† */
6641 $"FA82 9E6F CBE4 0977 9C9C 2373 E789 5A3E" /* ú‚žoËäÆwœœ#sç‰Z> */
6642 $"8743 EB0E ED13 7955 DB28 2874 8065 2078" /* ‡Cë.í.yUÛ((t€e x */
6643 $"97A7 6C13 2283 729A CCF9 E449 A627 7652" /* —§l."ƒršÌùäI¦'vR */
6644 $"E821 2F1F 574E 6887 1830 6E01 5A8D 02FB" /* è!/.WNh‡.0n.Z.û */
6645 $"DB61 8EEF 4E08 B607 26FA 2B4C FF47 38FE" /* ÛaŽïN.¶.&ú+LÿG8þ */
6646 $"9B7C A3E4 DB46 F898 CFE9 8F3C 8717 2975" /* ›|£äÛFø˜Ïé<‡.)u */
6647 $"9BA2 582E 86D1 D882 C127 EFD7 E71A B5DD" /* ›¢X.†ÑØ‚Á'ï×ç.µÝ */
6648 $"7772 6391 2722 2884 AA0F 9C72 9A96 F4F8" /* wrc‘'"(„ª.œrš–ôø */
6649 $"BFF8 869A FD00 3B41 A8C7 DCD0 2834 270C" /* ¿ø†šý.;A¨ÇÜÐ(4'. */
6650 $"B93C 8702 5B16 8A32 0289 979B 0A35 3A7B" /* ¹<‡.[.Š2.‰—›Â5:{ */
6651 $"5870 6189 03C2 DD00 FAB2 B137 AB93 3EF5" /* Xpa‰.ÂÝ.ú²±7«“>õ */
6652 $"24E3 1FE1 A206 963E 1344 FE12 285A 5C52" /* $ã.á¢.–>.Dþ.(Z\R */
6653 $"692E D315 6C73 2CBE 7ADC 81BC EBC8 13EA" /* i.Ó.ls,¾zܼëÈ.ê */
6654 $"796B 6056 E9E7 D971 6E09 7086 252C 6A19" /* yk`VéçÙqnÆp†%,j. */
6655 $"7351 153D F4C4 FE01 6235 917F B203 171A" /* sQ.=ôÄþ.b5‘.²... */
6656 $"1822 B42B 9226 D163 5572 7E7E C508 BEBA" /* ."´+’&ÑcUr~~Å.¾º */
6657 $"D0D2 1C24 8D62 565D C183 F78D 4726 0541" /* ÐÒ.$bV]Áƒ÷G&.A */
6658 $"F829 10C7 1B21 E59C C4E5 7688 6268 FABC" /* ø).Ç.!åœÄåvˆbhú¼ */
6659 $"C0B9 6C02 8820 3F44 54A7 8C83 F14F 61B8" /* À¹l.ˆ ?DT§ŒƒñOa¸ */
6660 $"707C AB32 9D59 F01E D18A 37FC 40F9 5C59" /* p|«2Yð.ÑŠ7ü@ù\Y */
6661 $"EEA8 E442 FDC8 CA73 970F 6EE0 1348 AC8E" /* î¨äBýÈÊs—.nà.H¬Ž */
6662 $"9D65 4DA9 2820 AEDB A7F3 C1B4 8E3F 8780" /* eM©( ®Û§óÁ´Ž?‡€ */
6663 $"8DA9 F7D9 F116 DD30 778E 4FB6 49D3 AFE8" /* ©÷Ùñ.Ý0wŽO¶IÓ¯è */
6664 $"74B1 EB63 92B8 4210 3B22 3613 6784 41A2" /* t±ëc’¸B.;"6.g„A¢ */
6665 $"5953 1EFF 16A9 1769 9852 73D0 B6C2 3523" /* YS.ÿ.©.i˜RsжÂ5# */
6666 $"854B 1247 531D 47C5 7AFC 1B6B F0C4 2E2F" /* …K.GS.GÅzü.kðÄ./ */
6667 $"6C60 82C9 9C4D 2FAD 25A5 BEC6 8590 7388" /* l`‚ÉœM/­%¥¾Æ…sˆ */
6668 $"5D15 9A65 E013 D48B 7D9C 34B2 A617 75A8" /* ].šeà.Ô‹}œ4²¦.u¨ */
6669 $"8E8E 2D91 1AEC 26D5 8B9C D03C A02A A829" /* ŽŽ-‘.ì&Õ‹œÐ< *¨) */
6670 $"738D 9A4E 8F31 82A9 39B7 7CFE D412 810E" /* sšN1‚©9·|þÔ.. */
6671 $"1372 6D79 8D49 BAC1 9FFB 5D52 56AD 488F" /* .rmyIºÁŸû]RV­H */
6672 $"4E1D A232 7348 1FE2 483F AB9F A23C 0997" /* N.¢2sH.âH?«Ÿ¢<Æ— */
6673 $"678D 1AB7 7F66 8927 7DED 2A66 E03B 05C9" /* g.·.f‰'}í*fà;.É */
6674 $"0420 66A2 E0AE E1B9 259E 64C9 FF0E A7C7" /* . f¢à®á¹%ždÉÿ.§Ç */
6675 $"5E9D 69F4 DD50 394C 344E 9DA9 6BCA 3D9F" /* ^iôÝP9L4N©kÊ=Ÿ */
6676 $"8FA9 C156 3248 2310 8AB9 6131 B94F FF36" /* ©ÁV2H#.Š¹a1¹Oÿ6 */
6677 $"DF00 9E80 5713 E9AD 3B07 879E C876 E063" /* ß.ž€W.é­;.‡žÈvàc */
6678 $"38D8 2776 3081 5810 1760 927C D93C EE88" /* 8Ø'v0X..`’|Ù<îˆ */
6679 $"518B 755A EBF1 B276 C65B 98DD 1421 8AA1" /* Q‹uZëñ²vÆ[˜Ý.!Š¡ */
6680 $"27D2 A8B2 5E3E B7B7 8F73 CDCB 9896 D80F" /* 'Ò¨²^>··s͢–Ø. */
6681 $"1D50 2E28 4F54 26A9 E68F 822C 3031 0A5B" /* .P.(OT&©æ‚,01Â[ */
6682 $"213A 8ED8 B1B8 C32C F5EF 6784 3641 A888" /* !:ŽØ±¸Ã,õïg„6A¨ˆ */
6683 $"1AF9 941B E9B2 42C0 D9BE AAD7 2727 9E13" /* .ù”.é²BÀÙ¾ª×''ž. */
6684 $"284F A530 1F62 679B 7860 E677 9E24 3663" /* (O¥0.bg›x`æwž$6c */
6685 $"E7D1 E4B5 D37B C274 9ECB CFA2 CC95 8A75" /* çÑäµÓ{ÂtžËϢ̕Šu */
6686 $"0C3A FB7D F074 1433 5EC7 1FC4 330E F221" /* .:û}ðt.3^Ç.Ä3.ò! */
6687 $"AE39 4A04 097F 4B21 27CD C193 39CB 3AB2" /* ®9J.Æ.K!'ÍÁ“9Ë:² */
6688 $"0B6E D8E0 54EA 0F75 15F9 D75D 0D82 624D" /* .nØàTê.u.ù×].‚bM */
6689 $"7D19 8E11 1AD0 764F CEA8 F0FE 2913 6841" /* }.Ž..ÐvOΨðþ).hA */
6690 $"89B8 CA62 C997 34B9 5950 4842 4F13 1ACD" /* ‰¸ÊbÉ—4¹YPHBO..Í */
6691 $"39AD 30CA 4ED2 A17D 0B09 206B 9426 EF50" /* 9­0ÊNÒ¡}.Æ k”&ïP */
6692 $"63C6 386E 74BB BDE0 420F 6154 5260 E1A2" /* cÆ8nt»½àB.aTR`ᢠ*/
6693 $"8546 3192 76D1 1F38 268E 7AC6 049F 321D" /* …F1’vÑ.8&ŽzÆ.Ÿ2. */
6694 $"CB51 35C7 067C 961B DA2F 4BCB E065 A8DB" /* ËQ5Ç.|–.Ú/KËàe¨Û */
6695 $"16C9 1F05 ABAF 93FF 333A F049 3161 6838" /* .É..«¯“ÿ3:ðI1ah8 */
6696 $"6E1A FEF2 564C 3F48 3800 BC9C F009 AF34" /* n.þòVL?H8.¼œðƯ4 */
6697 $"2241 15D4 764F 4764 CEDF 6D7D 2E9C 8141" /* "A.ÔvOGdÎßm}.œA */
6698 $"1E00 E109 D827 DDAA A47C 2854 9229 8998" /* ..áÆØ'ݪ¤|(T’)‰˜ */
6699 $"9175 1FFB 496B 36C7 3695 3631 390B 06E6" /* ‘u.ûIk6Ç6•619..æ */
6700 $"EB0D 3BA7 F1BE A2FF 6D3A 9FB6 FCFD ADEF" /* ë.;§ñ¾¢ÿm:Ÿ¶üý­ï */
6701 $"EDBA 3FDB 632F EDB1 BF6D BE7E DB9F 97ED" /* íº?Ûc/í±¿m¾~ÛŸ—í */
6702 $"45FD AB93 F6E8 7FED A7F7 DAC3 FC34 6F43" /* Eý«“öè.í§÷ÚÃü4oC */
6703 $"E1DB 5507 762F DB7E 5F51 DDF5 1DFE DD07" /* áÛU.v/Û~_QÝõ.þÝ. */
6704 $"E1FD A67F B4E6 7EDB 8BF6 AE3F B6BC D3E4" /* áý¦.´æ~Û‹ö®?¶¼Óä */
6705 $"D00B 0F87 A0FF 2AC3 3F6D 84F8 7475 99F2" /* Ð..‡ ÿ*Ã?m„øtu™ò */
6706 $"F382 BE95 100F 8FEE C1C8 D086 E345 E973" /* 󂾕..îÁÈІãEés */
6707 $"0FE4 06B6 7813 7115 B8D0 D91B C698 D10D" /* .ä.¶x.q.¸ÐÙ.ƘÑ. */
6708 $"A370 844F 9330 E047 0201 F880 D146 6522" /* £p„O“0àG..ø€ÑFe" */
6709 $"8E52 12DE 3D1A 9231 5315 682E 4706 8685" /* ŽR.Þ=.’1S.h.G.†… */
6710 $"DA39 C538 9828 7ED0 714F 3E27 532A 3840" /* Ú9Å8˜(~ÐqO>'S*8@ */
6711 $"C912 3E46 8205 3243 7835 7284 12D6 CCF5" /* É.>F‚.2Cx5r„.ÖÌõ */
6712 $"36AF 0975 8A27 4F44 3857 B5A3 160D 1391" /* 6¯ÆuŠ'OD8Wµ£...‘ */
6713 $"8005 2453 86CB 51B3 E493 EA9C 707F 7047" /* €.$S†ËQ³ä“êœp.pG */
6714 $"1DA8 1386 91D1 6105 7D84 1563 FC52 D5D3" /* .¨.†‘Ña.}„.cüRÕÓ */
6715 $"EDA7 D4A0 4AC1 BB4E 49D6 62F4 CA92 CE8E" /* í§Ô JÁ»NIÖbôÊ’ÎŽ */
6716 $"8DE0 84DC 418D ACE2 71AD 9206 3C98 3281" /* à„ÜA¬âq­’.<˜2 */
6717 $"104E A1F2 8982 6ED6 223E B67B BE6A C51F" /* .N¡ò‰‚nÖ">¶{¾jÅ. */
6718 $"4BF8 6C35 B6A4 5EC8 87BB 4834 7CF3 16AC" /* Køl5¶¤^ȇ»H4|ó.¬ */
6719 $"2453 B3DA 3503 94D6 2E70 2B6F 975E 21DB" /* $S³Ú5.”Ö.p+o—^!Û */
6720 $"F409 0368 9A2E DFB2 7A4B 9A6F 4165 1173" /* ôÆ.hš.ß²zKšoAe.s */
6721 $"A53E 329A 7925 FB80 9664 2C09 A9E5 715C" /* ¥>2šy%û€–d,Æ©åq\ */
6722 $"E42F 8E14 EC68 05A8 D565 53C2 9C98 86A2" /* ä/Ž.ìh.¨ÕeSÂœ˜†¢ */
6723 $"2C2D 6443 A1D0 A619 2320 6CD3 FE48 8006" /* ,-dC¡Ð¦.# lÓþH€. */
6724 $"FC0F 3690 DF76 1FD8 2E16 0705 D91F EEBE" /* ü.6ßv.Ø....Ù.î¾ */
6725 $"E961 32B9 E252 4F0E EE4A 6F73 AEBB 014A" /* éa2¹âRO.îJos®».J */
6726 $"8F45 1551 9123 7C3A 13F8 1B57 EB6A 0AFB" /* E.Q‘#|:.ø.WëjÂû */
6727 $"9AE9 65F5 9FDE 5F1C 7C23 84F1 6DCD CC52" /* šéeõŸÞ_.|#„ñmÍÌR */
6728 $"97DD 03E6 C571 0C23 F06B 9F21 2E2C 79D5" /* —Ý.æÅq.#ðkŸ!.,yÕ */
6729 $"1827 1436 E6FB C5FB BA11 617B 9B32 3DCD" /* .'.6æûÅûº.a{›2=Í */
6730 $"B0AD AA8F 53D0 2F20 849C D667 9436 A677" /* °­ªSÐ/ „œÖg”6¦w */
6731 $"38C9 1B5A 26E2 B4D4 29BB 2D9E 56D4 652D" /* 8É.Z&â´Ô)»-žVÔe- */
6732 $"9A12 FC7E FBD5 0075 3EC9 64FE D0CE 06A2" /* š.ü~ûÕ.u>ÉdþÐÎ.¢ */
6733 $"B63F 8731 DB8A 6917 26EA CCFC C1E6 10AA" /* ¶?‡1ÛŠi.&êÌüÁæ.ª */
6734 $"704E 20EA 7518 0416 6BBE 2867 9470 9FE6" /* pN êu...k¾(g”pŸæ */
6735 $"3D2A D178 6CD1 0B7D E518 4682 FC48 EA03" /* =*ÑxlÑ.}å.F‚üHê. */
6736 $"EFA0 ADEE B643 CDFD 796D C309 E13B 9DD3" /* ï ­î¶CÍýymÃÆá;Ó */
6737 $"82CC 1237 8D6B 9CB9 0438 AF1A 6190 136E" /* ‚Ì.7kœ¹.8¯.a.n */
6738 $"A170 6109 4BA8 FD0B 4C10 DE61 71A9 A5FF" /* ¡paÆK¨ý.L.Þaq©¥ÿ */
6739 $"5AD1 3895 15D0 912A BC62 5344 A7FD 7B9B" /* ZÑ8•.Б*¼bSD§ý{› */
6740 $"0360 8C71 DD04 20C7 4685 E6B7 7941 7BD7" /* .`ŒqÝ. ÇF…æ·yA{× */
6741 $"DBBB 3F61 742B D692 AD3D B778 6442 3DD1" /* Û»?at+Ö’­=·xdB=Ñ */
6742 $"A97E 1312 9AF4 05C1 7B33 9FE2 B3F5 D16C" /* ©~..šô.Á{3Ÿâ³õÑl */
6743 $"875D 7109 13EC BB96 0664 DF60 1958 8DE5" /* ‡]qÆ.ì»–.dß`.Xå */
6744 $"5B3F 3E75 9D21 0415 CE9C 3172 87C7 FF05" /* [?>u!..Îœ1r‡Çÿ. */
6745 $"F787 4F14 E63B 4DCE 247D B3A3 475C 5336" /* ÷‡O.æ;MÎ$}³£G\S6 */
6746 $"C794 AF23 6415 68C6 B893 1B16 8C81 3F43" /* Ç”¯#d.hƸ“..Œ?C */
6747 $"C455 6EB8 8D5A 6919 4C3A D980 BFB1 3699" /* ÄUn¸Zi.L:Ù€¿±6™ */
6748 $"C790 C7D1 7B05 12AA 803A 172B DEF2 00CC" /* ÇÇÑ{..ª€:.+Þò.Ì */
6749 $"FF38 62C8 1815 1D3A F60D 2B9B 87A0 05C5" /* ÿ8bÈ...:ö.+›‡ .Å */
6750 $"3587 0181 8754 06D7 2CFC 78B8 0C65 D5BC" /* 5‡.‡T.×,üx¸.eÕ¼ */
6751 $"2903 C07C 0631 A0B9 E94E 192F DE4B 4924" /* ).À|.1 ¹éN./ÞKI$ */
6752 $"A4F0 BB9A 49C5 B751 38EB 7289 9806 FC5C" /* ¤ð»šIÅ·Q8ër‰˜.ü\ */
6753 $"D822 ED93 CA92 14B6 5056 017F 7826 CDE1" /* Ø"í“Ê’.¶PV..x&Íá */
6754 $"8401 9F6C A7F7 4AD5 E86F FDC3 05AF 6AE3" /* „.Ÿl§÷JÕèoýÃ.¯jã */
6755 $"5EED 07E3 E5ED 7EE7 FB97 0B99 E191 605B" /* ^í.ãåí~çû—.™á‘`[ */
6756 $"955A 6A3C 33C6 2BB8 9562 0E38 09C1 1ED9" /* •Zj<3Æ+¸•b.8ÆÁ.Ù */
6757 $"8914 73AF E9AA 7B2F 214E 7EEA 98E8 B976" /* ‰.s¯éª{/!N~ê˜è¹v */
6758 $"E058 E0B5 6DB4 5B1C F212 2C8E 0AE5 7100" /* àXàµm´[.ò.,ŽÂåq. */
6759 $"BC1E 84CD 0598 7CF9 EA4E 1E96 2B4A DE9E" /* ¼.„Í.˜|ùêN.–+JÞž */
6760 $"6CE9 E79B 0336 9059 E109 DF83 A2AE 9E74" /* léç›.6YáÆ߃¢®žt */
6761 $"5BB1 0236 590C 66CD 0658 ECE5 50A2 EDDD" /* [±.6Y.fÍ.XìåP¢íÝ */
6762 $"D7BB DAF7 548B 7F21 2A40 7821 FDA2 62B6" /* ×»Ú÷T‹.!*@x!ý¢b¶ */
6763 $"C862 B0B2 96CF 27D5 EC9D F5C8 42D8 F42A" /* Èb°²–Ï'ÕìõÈBØô* */
6764 $"5962 F21A D191 6744 1AE2 64B4 6744 A1B2" /* Ybò.Ñ‘gD.âd´gD¡² */
6765 $"7625 FF0D F0CF A1F8 3273 C4B8 FCCE C2BC" /* v%ÿ.ðÏ¡ø2sĸüμ */
6766 $"EDD5 F0C6 765F 2446 5EF5 2195 04EE C94B" /* íÕðÆv_$F^õ!•.îÉK */
6767 $"C9C2 4F82 0D0F 6034 3560 64A8 C372 4E17" /* ÉÂO‚..`45`d¨ÃrN. */
6768 $"D4F6 B2DC 2162 A6DC 9B35 5F36 628E EA58" /* Ôö²Ü!b¦Ü›5_6bŽêX */
6769 $"B2EF D0B8 79FF 3F60 39DC 34C9 8DD1 C7DA" /* ²ïиyÿ?`9Ü4ÉÑÇÚ */
6770 $"BFFD 9220 B977 42CD 1F4E 00C7 1A7B F29F" /* ¿ý’ ¹wBÍ.N.Ç.{òŸ */
6771 $"9738 8D5E 3E5F BA1F D4BD 0592 2006 1216" /* —8^>_º.Ô½.’ ... */
6772 $"D478 DE72 171A A49D 9C4A 0691 CD59 6FB3" /* ÔxÞr..¤œJ.‘ÍYo³ */
6773 $"F3C5 B3CD DCC8 5794 133C 85B3 176A 0C6A" /* óųÍÜÈW”.<…³.j.j */
6774 $"323E C74F 7CE3 4042 38AB E9CA 5700 E39B" /* 2>ÇO|ã@B8«éÊW.ã› */
6775 $"26D3 62B7 59F8 966D A789 35AA C72D 9943" /* &Ób·Yø–m§‰5ªÇ-™C */
6776 $"C884 2E53 30B3 D351 EFCC 6BF8 9889 8AB6" /* È„.S0³ÓQïÌkø˜‰Š¶ */
6777 $"E284 F5A4 64BD F89F 98A4 8082 6292 48EB" /* â„õ¤d½øŸ˜¤€‚b’Hë */
6778 $"2039 4A80 D5D7 BEFC 2DC1 69A9 F484 9B4E" /* 9J€Õ×¾ü-Ái©ô„›N */
6779 $"94C9 6E87 31A6 6D4E 23DB 77A9 37D5 CEE9" /* ”Én‡1¦mN#Ûw©7ÕÎé */
6780 $"10B5 22DB 58B2 3DFB 973A E321 F02A 2985" /* .µ"ÛX²=û—:ã!ð*)… */
6781 $"AE7E F964 9A23 4B8D 90FD 75F4 9944 3CEB" /* ®~ùdš#Kýuô™D<ë */
6782 $"C5C5 B0BA DA1C AA0A B59A EFCA 903A 972B" /* ÅÅ°ºÚ.ªÂµšïÊ:—+ */
6783 $"10E9 2A66 2BAB 3E63 8312 E494 A82C AEE8" /* .é*f+«>cƒ.䔨,®è */
6784 $"DE3B 902F 4DE5 A934 7FA5 59D8 B355 75C7" /* Þ;/Må©4.¥YسUuÇ */
6785 $"DC51 6208 6D60 DE89 F04A F698 FC35 5341" /* ÜQb.m`Þ‰ðJö˜ü5SA */
6786 $"A8C7 894B 5E8F 0638 0F21 36AB 23FF 37BF" /* ¨Ç‰K^.8.!6«#ÿ7¿ */
6787 $"CA6E C0CE 1C93 9BB1 FEA7 49E8 9BA5 7F32" /* ÊnÀÎ.“›±þ§I蛥.2 */
6788 $"4C9D C8BA 821C 1E07 F277 BE63 241C D5F6" /* LȺ‚...òw¾c$.Õö */
6789 $"07CB 7A98 E51E B0FC B312 223C 21BF 5DEE" /* .Ëz˜å.°ü³."<!¿]î */
6790 $"0229 A0EE 8B90 5918 5910 F6A6 EEB6 503D" /* .) î‹Y.Y.ö¦î¶P= */
6791 $"8E76 A3B6 E583 FEFF 5B3D F804 F6EE 956E" /* Žv£¶åƒþÿ[=ø.öî•n */
6792 $"FEE7 D95F 9D05 AE0B 4926 52B4 23C3 D17A" /* þçÙ_.®.I&R´#ÃÑz */
6793 $"FC0F CC41 1264 0956 8CA2 6A30 C0D0 275F" /* ü.ÌA.dÆVŒ¢j0ÀÐ'_ */
6794 $"0CE8 C646 CC49 EF38 CC94 8B6C 1737 9636" /* .èÆFÌIï8Ì”‹l.7–6 */
6795 $"4EA7 0FE7 217B F3F1 A10D 7E49 242E 6F19" /* N§.ç!{óñ¡.~I$.o. */
6796 $"A8CF 369A 44DE 6C99 A9D4 24DA 6909 62C3" /* ¨Ï6šDÞl™©Ô$ÚiÆbà */
6797 $"0C4C D4CD D80E 72E6 FF6B A90E 7080 977B" /* .LÔÍØ.ræÿk©.p€—{ */
6798 $"4BEB 6A2A 72BB 0574 45FB 1E12 6408 C966" /* Këj*r».tEû..d.Éf */
6799 $"A632 9AC7 E67D 82C9 3FED 1E27 C1FA C47A" /* ¦2šÇæ}‚É?í.'ÁúÄz */
6800 $"AFCF 5719 3BCA 3975 BE3A 550B 6DC9 91CC" /* ¯ÏW.;Ê9u¾:U.mÉ‘Ì */
6801 $"F28E 751C 1B20 E7BB 58FF 0D92 2BF7 DE26" /* òŽu.. ç»Xÿ.’+÷Þ& */
6802 $"DFE3 B230 78F7 C64E ADF8 7741 F45A E3BC" /* ßã²0x÷ÆN­øwAôZã¼ */
6803 $"5185 1323 1C74 3288 F720 5DB7 B5C9 1EFD" /* Q….#.t2ˆ÷ ]·µÉ.ý */
6804 $"C844 7159 7047 A9BA 6CA1 403E CE2E 3522" /* ÈDqYpG©ºl¡@>Î.5" */
6805 $"1088 A628 490C 5F8D 64C4 7E17 CBD3 290D" /* .ˆ¦(I._dÄ~.ËÓ). */
6806 $"91B1 B073 AD4A BF5B A1E9 6306 3E9A F87E" /* ‘±°s­J¿[¡éc.>šø~ */
6807 $"2DEC 7390 2CF5 3305 93C2 15DA 7FFF 7FC6" /* -ìs,õ3.“Â.Ú.ÿ.Æ */
6808 $"0578 C93E BF93 5B69 25D4 E0F9 5726 0D7E" /* .xÉ>¿“[i%ÔàùW&.~ */
6809 $"9C06 C76B 1BF5 3206 F26C 4F57 6A13 7488" /* œ.Çk.õ2.òlOWj.tˆ */
6810 $"07F4 1787 316E 19B5 2CB4 D7B8 23EE BF15" /* .ô.‡1n.µ,´×¸#î¿. */
6811 $"84F7 C141 CE7E 358F F83B 081D 2680 C5CB" /* „÷ÁAÎ~5ø;..&€ÅË */
6812 $"2002 0FFB D329 10E3 1880 E0F6 29FF 14F6" /* ..ûÓ).ã.€àö)ÿ.ö */
6813 $"1447 24FF 4BDD 371B 00F3 0334 6FE5 D217" /* .G$ÿKÝ7..ó.4oåÒ. */
6814 $"8E7D 3CCB EC04 D019 0583 0792 D4F4 59E5" /* Ž}<Ëì.Ð..ƒ.’ÔôYå */
6815 $"0914 52FB CE7A 2EFD B899 ED16 38FB E1D4" /* Æ.RûÎz.ý¸™í.8ûáÔ */
6816 $"3312 BAAE 3EF3 45B7 2A77 62F3 4787 8900" /* 3.º®>óE·*wbóG‡‰. */
6817 $"050D 5A64 92D3 64E7 7950 4234 FCC0 0EC6" /* ..Zd’ÓdçyPB4üÀ.Æ */
6818 $"004C 8652 616B B5FF 87F6 72D0 400B 9574" /* .L†Rakµÿ‡örÐ@.•t */
6819 $"7ADD 2EE6 F979 EE70 393F 5E65 09EC 561B" /* zÝ.æùyîp9?^eÆìV. */
6820 $"2FF4 F6FA 9226 2AA7 C2D2 4517 2258 15C7" /* /ôöú’&*§ÂÒE."X.Ç */
6821 $"D27E DE80 0000 0009 BB69 0154 3C66 FD24" /* Ò~Þ€...Æ»i.T<fý$ */
6822 $"D6C1 DFFC 41CF 26FD 27E3 9482 7299 C4A3" /* ÖÁßüAÏ&ý'㔂r™Ä£ */
6823 $"A4B0 4F99 5ED7 6507 C196 C060 D7BD 7BA6" /* ¤°O™^×e.Á–À`×½{¦ */
6824 $"A0A2 C1E7 0ECE 98C4 36F0 B006 0526 5FC4" /*  ¢Áç.ΘÄ6ð°..&_Ä */
6825 $"CDEF A25D CE59 7B6F 507F C409 957F 43E6" /* Íï¢]ÎY{oP.ÄÆ•.Cæ */
6826 $"20AB C4BE 33C2 E794 46B7 5341 D8C9 5487" /* «Ä¾3Âç”F·SAØÉT‡ */
6827 $"3000 A3E6 41BE 7D2A B553 6A8D C345 2E1E" /* 0.£æA¾}*µSjÃE.. */
6828 $"BF55 F536 52DD 101F D6C9 BB65 B7E4 0CFC" /* ¿Uõ6RÝ..ÖÉ»e·ä.ü */
6829 $"03D7 F641 F641 7A4F 8EE2 BA7A 352C ED91" /* .×öAöAzOŽâºz5,í‘ */
6830 $"9057 F893 C46F 62F7 A791 A8DE 8A25 BB17" /* Wø“Äob÷§‘¨ÞŠ%». */
6831 $"F164 F2ED 43E5 A2E2 17E9 C95D DE1C 45F4" /* ñdòíCå¢â.éÉ]Þ.Eô */
6832 $"3019 8090 809D D124 EE5C B48E 6C92 2A74" /* 0.€€Ñ$î\´Žl’*t */
6833 $"ACA0 4F0A 1777 70CF EBEC 112A 9035 16AB" /* ¬ OÂ.wpÏëì.*5.« */
6834 $"B36D 13D6 9F72 69CD E213 F146 6733 BAA3" /* ³m.ÖŸriÍâ.ñFg3º£ */
6835 $"0080 0000 0000 0000 0001 0151 0AD3 43F0" /* .€.........QÂÓCð */
6836 $"14A4 0000 61F0 20D9 9F3A 47FC 60A2 4780" /* .¤..að ÙŸ:Gü`¢G€ */
6837 $"F2D0 2A57 2C4C D349 5B9A 1BE3 0D39 80AD" /* òÐ*W,LÓI[š.ã.9€­ */
6838 $"72C4 873D 5028 F09E F0F5 700F B776 4B38" /* rć=P(ðžðõp.·vK8 */
6839 $"4FC6 7D26 AE5D 219E DDCE 4AA3 9AA9 FE19" /* OÆ}&®]!žÝÎJ£š©þ. */
6840 $"EC25 FEF0 0626 D259 8ECF 0364 6192 A000" /* ì%þð.&ÒYŽÏ.da’ . */
6841 $"0000 0000 0000 0000 0184 84B4 4FF0 1848" /* .........„„´Oð.H */
6842 $"4BC2 3700 0000 0000 0000 00B5 DA5E 3FF1" /* KÂ7........µÚ^?ñ */
6843 $"C9FC 9186 4A80 0000 0000 0000 0000 0000" /* Éü‘†J€.......... */
6844 $"0510 0FC3 251B 71C0 D918 64A8 0000 0000" /* ...Ã%.qÀÙ.d¨.... */
6845 $"0000 0000 0000 07E1 1EE1 F164 E11A 319D" /* .......á.áñdá.1 */
6846 $"3806 659F 8C35 7012 B17E 6096 52F0 8E96" /* 8.eŸŒ5p.±~`–RðŽ– */
6847 $"1438 1EBF 363A 49C9 51BD 3517 4ADA 7060" /* .8.¿6:IÉQ½5.JÚp` */
6848 $"0849 8F8B FCEC FD48 0000 54DF 4C0B E043" /* .I‹üìýH..TßL.àC */
6849 $"F3B6 1CEB 518A F2B1 5A9C 9500 0000 0000" /* ó¶.ëQŠò±Zœ•..... */
6850 $"0196 C058 0636 AF4B 041F 37EC DE6F 4B4E" /* .–ÀX.6¯K..7ìÞoKN */
6851 $"291D A2A6 3CB8 9BAC 4B0C 5017 9031 0EF1" /* ).¢¦<¸›¬K.P.1.ñ */
6852 $"3CF7 F63B 73A1 B4A6 9EA7 0513 C571 8EA8" /* <÷ö;s¡´¦ž§..ÅqŽ¨ */
6853 $"5D0A 28FC DCB6 D27A 0000 0000 0159 D076" /* ]Â(üܶÒz.....YÐv */
6854 $"3D1E 84A9 1C76 876E 7B6B 8519 1F9F 01C6" /* =.„©.v‡n{k…..Ÿ.Æ */
6855 $"1A11 B2A2 4841 4D47 5463 5D18 2AFE 54F5" /* ..²¢HAMGTc].*þTõ */
6856 $"591E 5FF1 39C7 C0CD 0D20 F366 59DE FE22" /* Y._ñ9ÇÀÍ. ófYÞþ" */
6857 $"B12C 4608 009D F105 49C8 16B5 417A 6079" /* ±,F..ñ.IÈ.µAz`y */
6858 $"40B0 7E7A C4B3 83B8 485D 42B1 4000 0000" /* @°~zijƒ¸H]B±@... */
6859 $"0E9F 0340 5469 49BB 5767 B4BE 47AF 19B3" /* .Ÿ.@TiI»Wg´¾G¯.³ */
6860 $"4E69 B99F 25DF C3C0 1B9C 5455 41D2 F508" /* Ni¹Ÿ%ßÃÀ.œTUAÒõ. */
6861 $"9900 1F13 B43E C345 C4B3 C066 8A27 C3D3" /* ™...´>ÃEijÀfŠ'ÃÓ */
6862 $"7A8A 6368 2F2C 3F2F 5D43 59ED 5E40 9E4F" /* zŠch/,?/]CYí^@žO */
6863 $"59BB 6A03 B7F8 083A 021D F8F0 79AF 43B0" /* Y»j.·ø.:..øðy¯C° */
6864 $"2270 F775 B8D8 FB59 371A 8B22 9F0B 55FA" /* "p÷u¸ØûY7.‹"Ÿ.Uú */
6865 $"C9B1 5565 0914 AA67 2D9E 81B2 60FC 1333" /* ɱUeÆ.ªg-ž²`ü.3 */
6866 $"318F 21E9 97E4 1400 F69E F709 7AE3 82A5" /* 1!é—ä..öž÷Æzã‚¥ */
6867 $"C9DE 7D16 1DF8 EDF8 FC5E DB3E FC2A F822" /* ÉÞ}..øíøü^Û>ü*ø" */
6868 $"886E F247 9BC1 250E 905C 4AF7 4B22 3595" /* ˆnòG›Á%.\J÷K"5• */
6869 $"0835 2567 EEC1 C4C8 B70D D782 6A22 C9DA" /* .5%gîÁÄÈ·.ׂj"ÉÚ */
6870 $"ADA3 0370 EED9 E428 E163 963A E6F0 5D4A" /* ­£.pîÙä(ác–:æð]J */
6871 $"F42A D11F B46D 7FBC 2D87 4274 4756 896E" /* ô*Ñ.´m.¼-‡BtGV‰n */
6872 $"C489 80C0 62F6 88A8 184A 79BE 3068 A9AF" /* ĉ€Àböˆ¨.Jy¾0h©¯ */
6873 $"D703 390B 1A76 3136 B799 726A AAA8 C23D" /* ×.9..v16·™rjª¨Â= */
6874 $"EEB0 E0F1 49E1 A6B7 204F 7BF3 6E44 F25E" /* î°àñIᦷ O{ónDò^ */
6875 $"7E0A 5125 CA89 B477 15CD 83CC CD21 C6BE" /* ~ÂQ%ʉ´w.̓ÌÍ!ƾ */
6876 $"F20B 99F3 C30C 5113 2E0A FF7E 1034 1BFF" /* ò.™óÃ.Q..Âÿ~.4.ÿ */
6877 $"0378 72CF B0EE D132 2A2D 14A9 E37F 6B10" /* .xrÏ°îÑ2*-.©ã.k. */
6878 $"B5CE 0500 0000 0000 0000 0160 A7E3 A715" /* µÎ.........`§ã§. */
6879 $"0C13 DE44 025B 9720 0000 0000 0000 0001" /* ..ÞD.[— ........ */
6880 $"E0F5 5A21 77FB C1F6 EAF0 244A EE78 B6FA" /* àõZ!wûÁöêð$Jîx¶ú */
6881 $"1769 3D98 AA28 2EB6 9826 A16B D6B8 BA89" /* .i=˜ª(.¶˜&¡kÖ¸º‰ */
6882 $"26C6 25C9 9E66 FD9C 6D2D FCDA FCB9 6AB2" /* &Æ%Éžfýœm-üÚü¹j² */
6883 $"B42A 7008 5069 CB61 D530 B47A FCFF 7F95" /* ´*p.PiËaÕ0´züÿ.• */
6884 $"FA58 2D11 111A 53BF FB17 59E1 63E7 0FAD" /* úX-...S¿û.Yácç.­ */
6885 $"B016 A862 3107 8DF0 7112 DD6A B6E3 2477" /* °.¨b1.ðq.Ýj¶ã$w */
6886 $"3162 94F0 6826 75B0 D0B8 4C13 21C7 E4BC" /* 1b”ðh&u°Ð¸L.!Çä¼ */
6887 $"FB86 7A83 DF1C A4D9 C3B4 E3DE C334 1633" /* û†zƒß.¤ÙôãÞÃ4.3 */
6888 $"DC27 76B9 7ADF 50CA F95E C7C9 D5EB 402C" /* Ü'v¹zßPÊù^ÇÉÕë@, */
6889 $"276F A0B0 D88B CF4A 0FD2 380A E3E7 2BA5" /* 'o °Ø‹ÏJ.Ò8Âãç+¥ */
6890 $"DD24 A247 B631 75B1 6D3A 4C60 9BAB E4C5" /* Ý$¢G¶1u±m:L`›«äÅ */
6891 $"BBCB 2972 36B9 AC74 5FF5 B5DB 231B 95F3" /* »Ë)r6¹¬t_õµÛ#.•ó */
6892 $"7CFF 8E5F 86E9 1906 B3DF 75C7 0364 6192" /* |ÿŽ_†é..³ßuÇ.da’ */
6893 $"A000 0000 0000 0000 0000 003B B1A0 0000" /*  ..........;± .. */
6894 $"0000 0000 0000 0000 0000 0016 D51B CEEA" /* ............Õ.Îê */
6895 $"0406 C003 4E50 C0B8 8DB2 F37C FF8E 5F86" /* ..À.NPÀ¸²ó|ÿŽ_† */
6896 $"E919 06B3 DF75 C703 6461 92A0 0000 0000" /* é..³ßuÇ.da’ .... */
6897 $"0000 0000 0000 3BB1 A000 0000 0000 0000" /* ......;± ....... */
6898 $"0000 0000 0000 16D5 1BCE EA04 06C0 034E" /* .......Õ.Îê..À.N */
6899 $"50C0 B88D B2F4 4BED 0C57 2F64 38E7 DFE6" /* PÀ¸²ôKí.W/d8çßæ */
6900 $"95DB 93EF B9ED 1250 6A6A A6E3 4478 1E7E" /* •Û“ï¹í.Pjj¦ãDx.~ */
6901 $"F105 8E1B 961B 230C 9500 0000 0000 0C18" /* ñ.Ž.–.#.•....... */
6902 $"0EA3 5F13 6306 E1B5 4B22 3D26 79A1 06E4" /* .£_.c.áµK"=&y¡.ä */
6903 $"228F F320 0B74 8820 0000 0000 0000 0007" /* "ó .tˆ ........ */
6904 $"9F62 443B 9A51 EAB0 7C1A A374 E7F1 52F3" /* ŸbD;šQê°|.£tçñRó */
6905 $"3BB8 C1E0 5919 6C04 A2E2 1032 6917 1394" /* ;¸ÁàY.l.¢â.2i..” */
6906 $"CCBE 472A 0652 C144 6D1E 755C ECF9 9725" /* ̾G*.RÁDm.u\ìù—% */
6907 $"A84A 55AE 7A0E 6730 FCA7 B6E0 FF31 08C0" /* ¨JU®z.g0ü§¶àÿ1.À */
6908 $"3E76 4DDC 9E24 A60B C4A7 4CDD C221 1941" /* >vMÜž$¦.ħLÝÂ!.A */
6909 $"0810 2DE3 206F C551 4910 77AA 762A 1FF2" /* ..-ã oÅQI.wªv*.ò */
6910 $"D39A 0ADC 1089 90F8 D098 1E77 BDD1 AF74" /* ÓšÂÜ.‰øИ.w½Ñ¯t */
6911 $"4DEF D00D 0B2C CA2F 9EDC 27C4 35F9 F924" /* MïÐ..,Ê/žÜ'Ä5ùù$ */
6912 $"67FF 74E5 A746 B627 6267 F6D0 9B94 22D4" /* gÿtå§F¶'bgöЛ”"Ô */
6913 $"5FFE DF67 A7A9 E3CA 02A5 44D1 E926 DCA4" /* _þßg§©ãÊ.¥DÑé&ܤ */
6914 $"7490 4AB8 E094 7037 FF7C 8CF7 2A9B B784" /* tJ¸à”p7ÿ|Œ÷*›·„ */
6915 $"794E 9026 D48F FF7F F013 AABF F874 63DA" /* yN&Ôÿ.ð.ª¿øtcÚ */
6916 $"0302 FBFA AA6A 31D5 E2DF 85F7 2ACD D98C" /* ..ûúªj1Õâß…÷*ÍÙŒ */
6917 $"175D 1243 F1C0 CEA2 344C B6FC ADCF C6AA" /* .].CñÀ΢4L¶ü­Ïƪ */
6918 $"5CAE FA82 783F 58DD 754D 5C63 A018 19F8" /* \®ú‚x?XÝuM\c ..ø */
6919 $"7EFE 8953 AE16 22B9 4ED7 43D2 8A0B FA52" /* ~þ‰S®."¹N×CÒŠ.úR */
6920 $"5703 08CA 555B E51E 307B 0565 E165 22F3" /* W..ÊU[å.0{.eáe"ó */
6921 $"7130 0CEC CA23 576D 8D58 BED1 FEB6 9A2F" /* q0.ìÊ#WmX¾Ñþ¶š/ */
6922 $"DCEA 3288 3EEC B12A D43C B191 2627 7723" /* Üê2ˆ>ì±*Ô<±‘&'w# */
6923 $"F40F 1B7A F1E3 9A7E 366D 7490 EE80 3570" /* ô..zñãš~6mtî€5p */
6924 $"CB59 D05D F384 AA96 71FE 68E8 4D32 F9D2" /* ËYÐ]󄪖qþhèM2ùÒ */
6925 $"48BC 7B03 EA3B 879E 2E96 671F 8098 CE76" /* H¼{.ê;‡ž.–g.€˜Îv */
6926 $"87D8 0336 5C88 91F4 3C69 D76B 4DEF 29DA" /* ‡Ø.6\ˆ‘ô<i×kMï)Ú */
6927 $"F378 1035 720A CE61 C2E3 5776 CA53 F43B" /* óx.5rÂÎaÂãWvÊSô; */
6928 $"4FCB 79E4 5164 1270 A23E 6048 2089 7B12" /* OËyäQd.p¢>`H ‰{. */
6929 $"BCA8 E157 DFD5 E879 C14C 1B1A 3431 2856" /* ¼¨áWßÕèyÁL..41(V */
6930 $"0E74 D87F 7691 A923 632A 5EBC 6E95 6A46" /* .tØ.v‘©#c*^¼n•jF */
6931 $"8E68 7118 3704 6E41 37CB C9AC 7F84 1005" /* Žhq.7.nA7Ëɬ.„.. */
6932 $"C308 7C90 C6E0 B56C 8CF8 3C33 A97E C46C" /* Ã.|ÆàµlŒø<3©~Äl */
6933 $"E373 91A9 4A3F 7331 481D 843F 0472 59DC" /* ãs‘©J?s1H.„?.rYÜ */
6934 $"0837 85BA 4867 C202 6BFC 7433 F093 530F" /* .7…ºHgÂ.küt3ð“S. */
6935 $"D721 8927 26CF AA6B B4E1 7981 FCE4 9F4E" /* ×!‰'&Ϫk´áyüäŸN */
6936 $"1105 9E7B 7F68 1CE7 D811 E270 FCA3 9CDE" /* ..ž{.h.çØ.âpü£œÞ */
6937 $"BFE6 48BA AC07 B55E 4E7F 5946 115B B1DC" /* ¿æHº¬.µ^N.YF.[±Ü */
6938 $"F694 3A9B EADD 7971 E0F1 B6E1 C6FF 4337" /* ö”:›êÝyqàñ¶áÆÿC7 */
6939 $"F543 A074 FC74 AD1F 45BF 7867 C472 7605" /* õC tüt­.E¿xgÄrv. */
6940 $"1786 E496 2D22 22BE 5760 9ACE A5C9 22B9" /* .†ä–-""¾W`šÎ¥É"¹ */
6941 $"9A14 4136 93E4 3E4A 715C 6F69 8447 5764" /* š.A6“ä>Jq\oi„GWd */
6942 $"D761 77A8 2C3F E200 ACAD 8331 11D0 ABE6" /* ×aw¨,?â.¬­ƒ1.Ыæ */
6943 $"EA7B 5A22 58CF 097E 732F 894B E99C 6BAF" /* ê{Z"XÏÆ~s/‰Kéœk¯ */
6944 $"B36C 68AA 5668 EF92 66E9 DDF9 FF78 DB89" /* ³lhªVhï’féÝùÿxÛ‰ */
6945 $"FC78 2032 99D9 62F0 1380 3FE8 41DF F341" /* üx 2™Ùbð.€?èAßóA */
6946 $"F1FD 7F08 CE2E F09A 9335 6735 0FAD 8093" /* ñý..Î.ðš“5g5.­€“ */
6947 $"B6B1 53A2 964F EA7E 72A2 9A29 794D 98F0" /* ¶±S¢–Oê~r¢š)yM˜ð */
6948 $"DD57 AE65 C61E DDEC BDB4 35C2 D050 E063" /* ÝW®eÆ.Ýì½´5ÂÐPàc */
6949 $"5F54 BCA5 928D 786D CAE3 8F96 BFEB 027E" /* _T¼¥’xmÊã–¿ë.~ */
6950 $"6BBC 8795 7C88 1A2C 9908 36A1 6CAB 9268" /* k¼‡•|ˆ.,™.6¡l«’h */
6951 $"EB0D 816F F34D 55F5 B562 BCFF 4190 EE42" /* ë.oóMUõµb¼ÿAîB */
6952 $"F195 E7F3 E220 7E51 74A2 FA23 23F7 20F0" /* ñ•çóâ ~Qt¢ú##÷ ð */
6953 $"985F 011C 34B8 C988 C519 C623 81BC D026" /* ˜_..4¸ÉˆÅ.Æ#¼Ð& */
6954 $"A8C5 B82C 7A7F 86F7 E60E 44F2 CD53 6FAB" /* ¨Å¸,z.†÷æ.DòÍSo« */
6955 $"2D69 1FD4 75B7 A011 80E7 09B3 B9CF 4503" /* -i.Ôu· .€çƳ¹ÏE. */
6956 $"F4A5 1DE3 AE8A 96F7 E245 0DF9 3859 24FA" /* ô¥.㮊–÷âE.ù8Y$ú */
6957 $"7B43 665F B15E D4D3 FB2A 666E FB6A 6CA8" /* {Cf_±^ÔÓû*fnûjl¨ */
6958 $"9CAF C052 D658 6DC3 BDD1 C752 21FA 6426" /* œ¯ÀRÖXmýÑÇR!úd& */
6959 $"857C D05D 41C2 0241 306C 6FD4 81E3 69F7" /* …|Ð]AÂ.A0loÔãi÷ */
6960 $"A6F5 227F 39F9 780E 829A 17A9 C649 2BF5" /* ¦õ".9ùx.‚š.©ÆI+õ */
6961 $"01DD E500 A973 E599 890C A548 CE34 2877" /* .Ýå.©s噉.¥HÎ4(w */
6962 $"D160 A2EE 4B3B CC7A 0C87 6723 51FD C222" /* Ñ`¢îK;Ìz.‡g#QýÂ" */
6963 $"9BFB E72D 2769 6250 2054 22C9 ABB2 3125" /* ›ûç-'ibP T"É«²1% */
6964 $"7DA0 73A3 C083 1AAD 90F2 F0A8 C22D 9DF5" /* } s£Àƒ.­òð¨Â-õ */
6965 $"3FFB 6B56 18BE 61A6 B198 F1BC 1E4E 0CFE" /* ?ûkV.¾a¦±˜ñ¼.N.þ */
6966 $"B323 8275 A644 CAC4 D36B 9AF9 FCC8 5DEC" /* ³#‚u¦DÊÄÓkšùüÈ]ì */
6967 $"292B CC9B A0B6 9148 09DF E46D 1B2C 4EDF" /* )+Ì› ¶‘HÆßäm.,Nß */
6968 $"EDB9 2DB4 BAD5 C50B 2115 C476 E09A F407" /* í¹-´ºÕÅ.!.Ävàšô. */
6969 $"5EE8 2E9F 870F A319 32D4 EBEC CB7B FDE9" /* ^è.Ÿ‡.£.2ÔëìË{ýé */
6970 $"FB5C 0D41 61F3 BA97 0F9E 558F 6E39 C213" /* û\.Aaóº—.žUn9Â. */
6971 $"3101 A5E8 ECEC 15E5 4F29 F69A 58CD D82D" /* 1.¥èìì.åO)öšXÍØ- */
6972 $"986E E8E0 6898 17CC 98C4 C851 AC75 9306" /* ˜nèàh˜.̘ÄÈQ¬u“. */
6973 $"5241 0350 E2EB 38CA 1682 6132 FF45 578A" /* RA.Pâë8Ê.‚a2ÿEWŠ */
6974 $"FA7F 7557 AC2C 9A18 3835 A62B 7D09 0992" /* ú.uW¬,š.85¦+}ÆÆ’ */
6975 $"EF78 BD49 5317 373A B07D 6420 DC30 5067" /* ïx½IS.7:°}d Ü0Pg */
6976 $"A659 F316 4436 8E8E 9786 1163 A6A5 B841" /* ¦Yó.D6ŽŽ—†.c¦¥¸A */
6977 $"99AA 4E1C 6163 309A 3C23 0208 FF4B 2967" /* ™ªN.ac0š<#..ÿK)g */
6978 $"B7F7 37E4 A337 D0DC C48A A742 FB2D C529" /* ·÷7ä£7ÐÜÄŠ§Bû-Å) */
6979 $"BC6C 5BBE BC5C 03B1 F87F D7EA F5AC B94B" /* ¼l[¾¼\.±ø.×êõ¬¹K */
6980 $"5A88 84AB E44E BE6A F337 96B0 7CB6 1140" /* Zˆ„«äN¾jó7–°|¶.@ */
6981 $"25CB 45D6 BE02 A9D4 7868 1EDD F660 7963" /* %ËEÖ¾.©Ôxh.Ýö`yc */
6982 $"B438 C030 3EA5 51FA F451 FA84 A6FF 2E5A" /* ´8À0>¥QúôQú„¦ÿ.Z */
6983 $"EA95 2300 C0F4 39AA 42BA 4120 4EEC AFDD" /* ê•#.Àô9ªBºA Nì¯Ý */
6984 $"20B4 6C42 0552 1177 6F1A AC6D FE8B 98E1" /* ´lB.R.wo.¬mþ‹˜á */
6985 $"D3FB F52E BCE3 5BB1 7235 F597 3E0D 8C46" /* Óûõ.¼ã[±r5õ—>.ŒF */
6986 $"7361 1E2A C081 CA97 C8EA CD3F E91D 823F" /* sa.*ÀÊ—ÈêÍ?é.‚? */
6987 $"73A7 5EA1 F641 9CBD 219D D7E4 EE0D 270E" /* s§^¡öAœ½!×äî.'. */
6988 $"14DF F756 B4E5 062C 8251 4AD0 B090 A0AF" /* .ß÷V´å.,‚QJа ¯ */
6989 $"CD2A 3C80 6068 C9CD C3D7 3D7F 258B 365A" /* Í*<€`hÉÍÃ×=.%‹6Z */
6990 $"5E1A 90DC D058 4ED9 DF50 6F40 07A9 2BDE" /* ^.ÜÐXNÙßPo@.©+Þ */
6991 $"8486 5404 AB9C E323 0C4E D3DB 8352 0C0F" /* „†T.«œã#.NÓÛƒR.. */
6992 $"CD59 A5F5 56CC 0BB2 B603 85C3 C709 7D6E" /* ÍY¥õVÌ.²¶.…ÃÇÆ}n */
6993 $"A10E 33C2 AE0F D52F 5AD7 2279 E6EB 7E6C" /* ¡.3®.Õ/Z×"yæë~l */
6994 $"1757 589D C6DC B4FD 470C FFD9" /* .WXÆÜ´ýG.ÿÙ */
6995};
6996
diff --git a/linden/indra/newview/installers/darwin/firstlookslim-dmg/_DS_Store b/linden/indra/newview/installers/darwin/firstlookslim-dmg/_DS_Store
new file mode 100644
index 0000000..e170ac7
--- /dev/null
+++ b/linden/indra/newview/installers/darwin/firstlookslim-dmg/_DS_Store
Binary files differ
diff --git a/linden/indra/newview/installers/darwin/firstlookslim-dmg/_VolumeIcon.icns b/linden/indra/newview/installers/darwin/firstlookslim-dmg/_VolumeIcon.icns
new file mode 100644
index 0000000..da5307e
--- /dev/null
+++ b/linden/indra/newview/installers/darwin/firstlookslim-dmg/_VolumeIcon.icns
Binary files differ
diff --git a/linden/indra/newview/installers/darwin/firstlookslim-dmg/background.jpg b/linden/indra/newview/installers/darwin/firstlookslim-dmg/background.jpg
new file mode 100644
index 0000000..55294dc
--- /dev/null
+++ b/linden/indra/newview/installers/darwin/firstlookslim-dmg/background.jpg
Binary files differ
diff --git a/linden/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store b/linden/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store
index c73ba24..a8b7573 100644
--- a/linden/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store
+++ b/linden/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store
Binary files differ
diff --git a/linden/indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt b/linden/indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt
new file mode 100644
index 0000000..185c018
--- /dev/null
+++ b/linden/indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt
@@ -0,0 +1,6 @@
1The language files in this directory are Unicode (Little-Endian) format, also known as UTF-16 LE.
2
3This is the format required for NSIS Unicode. See http://www.scratchpaper.com/ for details.
4
5James Cook
6September 2008
diff --git a/linden/indra/newview/installers/windows/installer_template.nsi b/linden/indra/newview/installers/windows/installer_template.nsi
index 53c607c..c3573b5 100644
--- a/linden/indra/newview/installers/windows/installer_template.nsi
+++ b/linden/indra/newview/installers/windows/installer_template.nsi
@@ -1,990 +1,990 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;; imprudence setup.nsi 2;; imprudence setup.nsi
3;; Copyright 2004-2007, Linden Research, Inc. 3;; Copyright 2004-2007, Linden Research, Inc.
4;; For info, see http://www.nullsoft.com/free/nsis/ 4;; For info, see http://www.nullsoft.com/free/nsis/
5;; 5;;
6;; NSIS 2.22 or higher required 6;; NSIS 2.22 or higher required
7;; Author: James Cook, Don Kjer, Callum Prentice 7;; Author: James Cook, Don Kjer, Callum Prentice
8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9 9
10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11;;; Detect NSIS compiler version 11;;; Detect NSIS compiler version
12!define "NSIS${NSIS_VERSION}" 12!define "NSIS${NSIS_VERSION}"
13!ifdef "NSISv2.02" | "NSISv2.03" | "NSISv2.04" | "NSISv2.05" | "NSISv2.06" 13!ifdef "NSISv2.02" | "NSISv2.03" | "NSISv2.04" | "NSISv2.05" | "NSISv2.06"
14 ;; before 2.07 defaulted lzma to solid (whole file) 14 ;; before 2.07 defaulted lzma to solid (whole file)
15 SetCompressor lzma 15 SetCompressor lzma
16!else 16!else
17 ;; after 2.07 required /solid for whole file compression 17 ;; after 2.07 required /solid for whole file compression
18 SetCompressor /solid lzma 18 SetCompressor /solid lzma
19!endif 19!endif
20 20
21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
22;; Compiler flags 22;; Compiler flags
23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
24SetOverwrite on ; overwrite files 24SetOverwrite on ; overwrite files
25SetCompress auto ; compress iff saves space 25SetCompress auto ; compress iff saves space
26SetDatablockOptimize off ; only saves us 0.1%, not worth it 26SetDatablockOptimize off ; only saves us 0.1%, not worth it
27XPStyle on ; add an XP manifest to the installer 27XPStyle on ; add an XP manifest to the installer
28 28
29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30;;; Project flags 30;;; Project flags
31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32 32
33%%VERSION%% 33%%VERSION%%
34 34
35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36;; - language files - one for each language (or flavor thereof) 36;; - language files - one for each language (or flavor thereof)
37;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the 37;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the
38;; application directory so we have to add a path to these include files) 38;; application directory so we have to add a path to these include files)
39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40!include "%%SOURCE%%\installers\windows\lang_de.nsi" 40!include "%%SOURCE%%\installers\windows\lang_de.nsi"
41!include "%%SOURCE%%\installers\windows\lang_en-us.nsi" 41!include "%%SOURCE%%\installers\windows\lang_en-us.nsi"
42!include "%%SOURCE%%\installers\windows\lang_ja.nsi" 42!include "%%SOURCE%%\installers\windows\lang_ja.nsi"
43!include "%%SOURCE%%\installers\windows\lang_ko.nsi" 43!include "%%SOURCE%%\installers\windows\lang_ko.nsi"
44 44
45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
46;; Tweak for different servers/builds (this placeholder is replaced by viewer_manifest.py) 46;; Tweak for different servers/builds (this placeholder is replaced by viewer_manifest.py)
47%%GRID_VARS%% 47%%GRID_VARS%%
48 48
49Name ${INSTNAME} 49Name ${INSTNAME}
50 50
51SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text 51SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text
52 52
53BrandingText " " ; bottom of window text 53BrandingText " " ; bottom of window text
54Icon %%SOURCE%%\res\install_icon.ico ; our custom icon 54Icon %%SOURCE%%\res\install_icon.ico ; our custom icon
55UninstallIcon %%SOURCE%%\res\uninstall_icon.ico ; our custom icon 55UninstallIcon %%SOURCE%%\res\uninstall_icon.ico ; our custom icon
56WindowIcon on ; show our icon in left corner 56WindowIcon on ; show our icon in left corner
57BGGradient off ; no big background window 57BGGradient off ; no big background window
58CRCCheck on ; make sure CRC is OK 58CRCCheck on ; make sure CRC is OK
59InstProgressFlags smooth colored ; new colored smooth look 59InstProgressFlags smooth colored ; new colored smooth look
60ShowInstDetails nevershow ; no details, no "show" button 60ShowInstDetails nevershow ; no details, no "show" button
61SetOverwrite on ; stomp files by default 61SetOverwrite on ; stomp files by default
62AutoCloseWindow true ; after all files install, close window 62AutoCloseWindow true ; after all files install, close window
63 63
64InstallDir "$PROGRAMFILES\${INSTNAME}" 64InstallDir "$PROGRAMFILES\${INSTNAME}"
65InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "" 65InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" ""
66!ifdef UPDATE 66!ifdef UPDATE
67DirText $(DirectoryChooseTitle) $(DirectoryChooseUpdate) 67DirText $(DirectoryChooseTitle) $(DirectoryChooseUpdate)
68!else 68!else
69DirText $(DirectoryChooseTitle) $(DirectoryChooseSetup) 69DirText $(DirectoryChooseTitle) $(DirectoryChooseSetup)
70!endif 70!endif
71 71
72 72
73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
74;;; Variables 74;;; Variables
75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
76Var INSTPROG 76Var INSTPROG
77Var INSTEXE 77Var INSTEXE
78Var INSTFLAGS 78Var INSTFLAGS
79Var LANGFLAGS 79Var LANGFLAGS
80Var INSTSHORTCUT 80Var INSTSHORTCUT
81 81
82;;; Function definitions should go before file includes, because the NSIS package 82;;; Function definitions should go before file includes, because the NSIS package
83;;; is a single stream of bytecodes + file data. So if your function definitions are at 83;;; is a single stream of bytecodes + file data. So if your function definitions are at
84;;; the end of the file it has to decompress the whole thing before it can call a function. JC 84;;; the end of the file it has to decompress the whole thing before it can call a function. JC
85 85
86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
87; PostInstallExe 87; PostInstallExe
88; This just runs any post installation scripts. 88; This just runs any post installation scripts.
89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
90Function PostInstallExe 90Function PostInstallExe
91push $0 91push $0
92 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "PostInstallExe" 92 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "PostInstallExe"
93 ;MessageBox MB_OK '$0' 93 ;MessageBox MB_OK '$0'
94 ExecWait '$0' 94 ExecWait '$0'
95pop $0 95pop $0
96FunctionEnd 96FunctionEnd
97 97
98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
99; CheckStartupParameters 99; CheckStartupParameters
100; Sets INSTFLAGS, INSTPROG, and INSTEXE. 100; Sets INSTFLAGS, INSTPROG, and INSTEXE.
101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
102Function CheckStartupParams 102Function CheckStartupParams
103push $0 103push $0
104push $R0 104push $R0
105 105
106 ; Look for a registry entry with info about where to update. 106 ; Look for a registry entry with info about where to update.
107 Call GetProgramName 107 Call GetProgramName
108 pop $R0 108 pop $R0
109 StrCpy $INSTPROG "$R0" 109 StrCpy $INSTPROG "$R0"
110 StrCpy $INSTEXE "$R0.exe" 110 StrCpy $INSTEXE "$R0.exe"
111 111
112 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" 112 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" ""
113 ; If key doesn't exist, skip install 113 ; If key doesn't exist, skip install
114 IfErrors ABORT 114 IfErrors ABORT
115 StrCpy $INSTDIR "$0" 115 StrCpy $INSTDIR "$0"
116 116
117 ; We now have a directory to install to. Get the startup parameters and shortcut as well. 117 ; We now have a directory to install to. Get the startup parameters and shortcut as well.
118 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" 118 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags"
119 IfErrors +2 119 IfErrors +2
120 StrCpy $INSTFLAGS "$0" 120 StrCpy $INSTFLAGS "$0"
121 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" 121 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut"
122 IfErrors +2 122 IfErrors +2
123 StrCpy $INSTSHORTCUT "$0" 123 StrCpy $INSTSHORTCUT "$0"
124 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" 124 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe"
125 IfErrors +2 125 IfErrors +2
126 StrCpy $INSTEXE "$0" 126 StrCpy $INSTEXE "$0"
127 Goto FINISHED 127 Goto FINISHED
128 128
129ABORT: 129ABORT:
130 MessageBox MB_OK $(CheckStartupParamsMB) 130 MessageBox MB_OK $(CheckStartupParamsMB)
131 Quit 131 Quit
132 132
133FINISHED: 133FINISHED:
134 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS" 134 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS"
135pop $R0 135pop $R0
136pop $0 136pop $0
137FunctionEnd 137FunctionEnd
138 138
139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
140;; 140;;
141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
142Function un.CheckStartupParams 142Function un.CheckStartupParams
143push $0 143push $0
144push $R0 144push $R0
145 145
146 ; Look for a registry entry with info about where to update. 146 ; Look for a registry entry with info about where to update.
147 Call un.GetProgramName 147 Call un.GetProgramName
148 pop $R0 148 pop $R0
149 StrCpy $INSTPROG "$R0" 149 StrCpy $INSTPROG "$R0"
150 StrCpy $INSTEXE "$R0.exe" 150 StrCpy $INSTEXE "$R0.exe"
151 151
152 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" 152 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" ""
153 ; If key doesn't exist, skip install 153 ; If key doesn't exist, skip install
154 IfErrors ABORT 154 IfErrors ABORT
155 StrCpy $INSTDIR "$0" 155 StrCpy $INSTDIR "$0"
156 156
157 ; We now have a directory to install to. Get the startup parameters and shortcut as well. 157 ; We now have a directory to install to. Get the startup parameters and shortcut as well.
158 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" 158 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags"
159 IfErrors +2 159 IfErrors +2
160 StrCpy $INSTFLAGS "$0" 160 StrCpy $INSTFLAGS "$0"
161 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" 161 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut"
162 IfErrors +2 162 IfErrors +2
163 StrCpy $INSTSHORTCUT "$0" 163 StrCpy $INSTSHORTCUT "$0"
164 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" 164 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe"
165 IfErrors +2 165 IfErrors +2
166 StrCpy $INSTEXE "$0" 166 StrCpy $INSTEXE "$0"
167 Goto FINISHED 167 Goto FINISHED
168 168
169ABORT: 169ABORT:
170 MessageBox MB_OK $(CheckStartupParamsMB) 170 MessageBox MB_OK $(CheckStartupParamsMB)
171 Quit 171 Quit
172 172
173FINISHED: 173FINISHED:
174 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS" 174 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS"
175pop $R0 175pop $R0
176pop $0 176pop $0
177FunctionEnd 177FunctionEnd
178 178
179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
180;;; After install completes, offer readme file 180;;; After install completes, offer readme file
181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
182Function .onInstSuccess 182Function .onInstSuccess
183 MessageBox MB_YESNO \ 183 MessageBox MB_YESNO \
184 $(InstSuccesssQuestion) /SD IDYES IDNO NoReadme 184 $(InstSuccesssQuestion) /SD IDYES IDNO NoReadme
185 ; Assumes SetOutPath $INSTDIR 185 ; Assumes SetOutPath $INSTDIR
186 Exec '"$INSTDIR\$INSTEXE" $INSTFLAGS' 186 Exec '"$INSTDIR\$INSTEXE" $INSTFLAGS'
187 NoReadme: 187 NoReadme:
188FunctionEnd 188FunctionEnd
189 189
190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
191; Remove old NSIS version. Modifies no variables. 191; Remove old NSIS version. Modifies no variables.
192; Does NOT delete the LindenWorld directory, or any 192; Does NOT delete the LindenWorld directory, or any
193; user files in that directory. 193; user files in that directory.
194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
195Function RemoveNSIS 195Function RemoveNSIS
196 Push $0 196 Push $0
197 ; Grab the installation directory of the old version 197 ; Grab the installation directory of the old version
198 DetailPrint $(RemoveOldNSISVersion) 198 DetailPrint $(RemoveOldNSISVersion)
199 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" 199 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" ""
200 200
201 ; If key doesn't exist, skip uninstall 201 ; If key doesn't exist, skip uninstall
202 IfErrors NO_NSIS 202 IfErrors NO_NSIS
203 203
204 ; Clean up legacy beta shortcuts 204 ; Clean up legacy beta shortcuts
205 Delete "$SMPROGRAMS\Second Life Beta.lnk" 205 Delete "$SMPROGRAMS\Second Life Beta.lnk"
206 Delete "$DESKTOP\Second Life Beta.lnk" 206 Delete "$DESKTOP\Second Life Beta.lnk"
207 Delete "$SMPROGRAMS\Second Life.lnk" 207 Delete "$SMPROGRAMS\Second Life.lnk"
208 208
209 ; Clean up old newview.exe file 209 ; Clean up old newview.exe file
210 Delete "$INSTDIR\newview.exe" 210 Delete "$INSTDIR\newview.exe"
211 211
212 ; Intentionally don't delete the stuff in 212 ; Intentionally don't delete the stuff in
213 ; Documents and Settings, so we keep the user's settings 213 ; Documents and Settings, so we keep the user's settings
214 214
215 NO_NSIS: 215 NO_NSIS:
216 Pop $0 216 Pop $0
217FunctionEnd 217FunctionEnd
218 218
219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
220; Make sure we're not on Windows 98 / ME 220; Make sure we're not on Windows 98 / ME
221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
222Function CheckWindowsVersion 222Function CheckWindowsVersion
223 DetailPrint "Checking Windows version..." 223 DetailPrint "Checking Windows version..."
224 Call GetWindowsVersion 224 Call GetWindowsVersion
225 Pop $R0 225 Pop $R0
226 ; Just get first two characters, ignore 4.0 part of "NT 4.0" 226 ; Just get first two characters, ignore 4.0 part of "NT 4.0"
227 StrCpy $R0 $R0 2 227 StrCpy $R0 $R0 2
228 ; Blacklist certain OS versions 228 ; Blacklist certain OS versions
229 StrCmp $R0 "95" win_ver_bad 229 StrCmp $R0 "95" win_ver_bad
230 StrCmp $R0 "98" win_ver_bad 230 StrCmp $R0 "98" win_ver_bad
231 StrCmp $R0 "ME" win_ver_bad 231 StrCmp $R0 "ME" win_ver_bad
232 StrCmp $R0 "NT" win_ver_bad 232 StrCmp $R0 "NT" win_ver_bad
233 Return 233 Return
234win_ver_bad: 234win_ver_bad:
235 MessageBox MB_YESNO $(CheckWindowsVersionMB) IDNO win_ver_abort 235 MessageBox MB_YESNO $(CheckWindowsVersionMB) IDNO win_ver_abort
236 Return 236 Return
237win_ver_abort: 237win_ver_abort:
238 Quit 238 Quit
239FunctionEnd 239FunctionEnd
240 240
241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
242; Make sure the user can install/uninstall 242; Make sure the user can install/uninstall
243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
244Function CheckIfAdministrator 244Function CheckIfAdministrator
245 DetailPrint $(CheckAdministratorInstDP) 245 DetailPrint $(CheckAdministratorInstDP)
246 UserInfo::GetAccountType 246 UserInfo::GetAccountType
247 Pop $R0 247 Pop $R0
248 StrCmp $R0 "Admin" is_admin 248 StrCmp $R0 "Admin" is_admin
249 MessageBox MB_OK $(CheckAdministratorInstMB) 249 MessageBox MB_OK $(CheckAdministratorInstMB)
250 Quit 250 Quit
251is_admin: 251is_admin:
252 Return 252 Return
253FunctionEnd 253FunctionEnd
254 254
255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
256;; 256;;
257;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 257;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
258Function un.CheckIfAdministrator 258Function un.CheckIfAdministrator
259 DetailPrint $(CheckAdministratorUnInstDP) 259 DetailPrint $(CheckAdministratorUnInstDP)
260 UserInfo::GetAccountType 260 UserInfo::GetAccountType
261 Pop $R0 261 Pop $R0
262 StrCmp $R0 "Admin" is_admin 262 StrCmp $R0 "Admin" is_admin
263 MessageBox MB_OK $(CheckAdministratorUnInstMB) 263 MessageBox MB_OK $(CheckAdministratorUnInstMB)
264 Quit 264 Quit
265is_admin: 265is_admin:
266 Return 266 Return
267FunctionEnd 267FunctionEnd
268 268
269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
270; Checks to see if the current version has already been installed (according to the registry). 270; Checks to see if the current version has already been installed (according to the registry).
271; If it has, allow user to bail out of install process. 271; If it has, allow user to bail out of install process.
272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
273Function CheckIfAlreadyCurrent 273Function CheckIfAlreadyCurrent
274 Push $0 274 Push $0
275 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" 275 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version"
276 StrCmp $0 ${VERSION_LONG} 0 DONE 276 StrCmp $0 ${VERSION_LONG} 0 DONE
277 MessageBox MB_OKCANCEL $(CheckIfCurrentMB) /SD IDOK IDOK DONE 277 MessageBox MB_OKCANCEL $(CheckIfCurrentMB) /SD IDOK IDOK DONE
278 Quit 278 Quit
279 279
280 DONE: 280 DONE:
281 Pop $0 281 Pop $0
282 Return 282 Return
283FunctionEnd 283FunctionEnd
284 284
285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
286; Close the program, if running. Modifies no variables. 286; Close the program, if running. Modifies no variables.
287; Allows user to bail out of install process. 287; Allows user to bail out of install process.
288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
289Function CloseSecondLife 289Function CloseSecondLife
290 Push $0 290 Push $0
291 FindWindow $0 "Imprudence" "" 291 FindWindow $0 "Imprudence" ""
292 IntCmp $0 0 DONE 292 IntCmp $0 0 DONE
293 MessageBox MB_OKCANCEL $(CloseSecondLifeInstMB) IDOK CLOSE IDCANCEL CANCEL_INSTALL 293 MessageBox MB_OKCANCEL $(CloseSecondLifeInstMB) IDOK CLOSE IDCANCEL CANCEL_INSTALL
294 294
295 CANCEL_INSTALL: 295 CANCEL_INSTALL:
296 Quit 296 Quit
297 297
298 CLOSE: 298 CLOSE:
299 DetailPrint $(CloseSecondLifeInstDP) 299 DetailPrint $(CloseSecondLifeInstDP)
300 SendMessage $0 16 0 0 300 SendMessage $0 16 0 0
301 301
302 LOOP: 302 LOOP:
303 FindWindow $0 "Imprudence" "" 303 FindWindow $0 "Imprudence" ""
304 IntCmp $0 0 DONE 304 IntCmp $0 0 DONE
305 Sleep 500 305 Sleep 500
306 Goto LOOP 306 Goto LOOP
307 307
308 DONE: 308 DONE:
309 Pop $0 309 Pop $0
310 Return 310 Return
311FunctionEnd 311FunctionEnd
312 312
313 313
314;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 314;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
315; Delete files in Documents and Settings\<user>\SecondLife\cache 315; Delete files in Documents and Settings\<user>\SecondLife\cache
316; Delete files in Documents and Settings\All Users\SecondLife\cache 316; Delete files in Documents and Settings\All Users\SecondLife\cache
317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
318;Function RemoveCacheFiles 318;Function RemoveCacheFiles
319; 319;
320;; Delete files in Documents and Settings\<user>\SecondLife 320;; Delete files in Documents and Settings\<user>\SecondLife
321;Push $0 321;Push $0
322;Push $1 322;Push $1
323;Push $2 323;Push $2
324; DetailPrint $(RemoveCacheFilesDP) 324; DetailPrint $(RemoveCacheFilesDP)
325; 325;
326; StrCpy $0 0 ; Index number used to iterate via EnumRegKey 326; StrCpy $0 0 ; Index number used to iterate via EnumRegKey
327; 327;
328; LOOP: 328; LOOP:
329; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 329; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
330; StrCmp $1 "" DONE ; no more users 330; StrCmp $1 "" DONE ; no more users
331; 331;
332; ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 332; ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath"
333; StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing 333; StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing
334; 334;
335; ; Required since ProfileImagePath is of type REG_EXPAND_SZ 335; ; Required since ProfileImagePath is of type REG_EXPAND_SZ
336; ExpandEnvStrings $2 $2 336; ExpandEnvStrings $2 $2
337; 337;
338; ; When explicitly uninstalling, everything goes away 338; ; When explicitly uninstalling, everything goes away
339; RMDir /r "$2\Application Data\SecondLife\cache" 339; RMDir /r "$2\Application Data\SecondLife\cache"
340; 340;
341; CONTINUE: 341; CONTINUE:
342; IntOp $0 $0 + 1 342; IntOp $0 $0 + 1
343; Goto LOOP 343; Goto LOOP
344; DONE: 344; DONE:
345;Pop $2 345;Pop $2
346;Pop $1 346;Pop $1
347;Pop $0 347;Pop $0
348; 348;
349;; Delete files in Documents and Settings\All Users\SecondLife 349;; Delete files in Documents and Settings\All Users\SecondLife
350;Push $0 350;Push $0
351; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" 351; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
352; StrCmp $0 "" +2 352; StrCmp $0 "" +2
353; RMDir /r "$0\SecondLife\cache" 353; RMDir /r "$0\SecondLife\cache"
354;Pop $0 354;Pop $0
355; 355;
356;; Delete filse in C:\Windows\Application Data\SecondLife 356;; Delete filse in C:\Windows\Application Data\SecondLife
357;; If the user is running on a pre-NT system, Application Data lives here instead of 357;; If the user is running on a pre-NT system, Application Data lives here instead of
358;; in Documents and Settings. 358;; in Documents and Settings.
359;RMDir /r "$WINDIR\Application Data\SecondLife\cache" 359;RMDir /r "$WINDIR\Application Data\SecondLife\cache"
360; 360;
361;FunctionEnd 361;FunctionEnd
362 362
363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
364;;; Delete the installed shader files 364;;; Delete the installed shader files
365;;; Since shaders are in active development, we'll likely need to shuffle them 365;;; Since shaders are in active development, we'll likely need to shuffle them
366;;; around a bit from build to build. This ensures that shaders that we move 366;;; around a bit from build to build. This ensures that shaders that we move
367;;; or rename in the dev tree don't get left behind in the install. 367;;; or rename in the dev tree don't get left behind in the install.
368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
369Function RemoveOldShaders 369Function RemoveOldShaders
370 370
371;; Remove old shader files first so fallbacks will work. see DEV-5663 371;; Remove old shader files first so fallbacks will work. see DEV-5663
372RMDir /r "$INSTDIR\app_settings\shaders\*" 372RMDir /r "$INSTDIR\app_settings\shaders\*"
373 373
374FunctionEnd 374FunctionEnd
375 375
376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
377;;; Delete the installed XUI files 377;;; Delete the installed XUI files
378;;; We've changed the directory hierarchy for skins, putting all XUI and texture 378;;; We've changed the directory hierarchy for skins, putting all XUI and texture
379;;; files under a specific skin directory, i.e. skins/default/xui/en-us as opposed 379;;; files under a specific skin directory, i.e. skins/default/xui/en-us as opposed
380;;; to skins/xui/en-us. Need to clean up the old path when upgrading 380;;; to skins/xui/en-us. Need to clean up the old path when upgrading
381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
382Function RemoveOldXUI 382Function RemoveOldXUI
383 383
384;; remove old XUI and texture files 384;; remove old XUI and texture files
385RmDir /r "$INSTDIR\skins\html" 385RmDir /r "$INSTDIR\skins\html"
386RmDir /r "$INSTDIR\skins\xui" 386RmDir /r "$INSTDIR\skins\xui"
387RmDir /r "$INSTDIR\skins\textures" 387RmDir /r "$INSTDIR\skins\textures"
388Delete "$INSTDIR\skins\*.txt" 388Delete "$INSTDIR\skins\*.txt"
389 389
390FunctionEnd 390FunctionEnd
391 391
392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
393;;; Remove any releasenotes files. 393;;; Remove any releasenotes files.
394;;; We are no longer including release notes with the viewer. This will delete 394;;; We are no longer including release notes with the viewer. This will delete
395;;; any that were left behind by an older installer. Delete will not fail if 395;;; any that were left behind by an older installer. Delete will not fail if
396;;; the files do not exist 396;;; the files do not exist
397;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 397;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
398Function RemoveOldReleaseNotes 398Function RemoveOldReleaseNotes
399 399
400;; remove releasenotes.txt file from application directory, and the shortcut 400;; remove releasenotes.txt file from application directory, and the shortcut
401;; from the start menu. 401;; from the start menu.
402Delete "$SMPROGRAMS\$INSTSHORTCUT\SL Release Notes.lnk" 402Delete "$SMPROGRAMS\$INSTSHORTCUT\SL Release Notes.lnk"
403Delete "$INSTDIR\releasenotes.txt" 403Delete "$INSTDIR\releasenotes.txt"
404 404
405FunctionEnd 405FunctionEnd
406 406
407 407
408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
409; Delete files in Documents and Settings\<user>\SecondLife 409; Delete files in Documents and Settings\<user>\SecondLife
410; Delete files in Documents and Settings\All Users\SecondLife 410; Delete files in Documents and Settings\All Users\SecondLife
411;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 411;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
412Function un.DocumentsAndSettingsFolder 412Function un.DocumentsAndSettingsFolder
413 413
414; Delete files in Documents and Settings\<user>\SecondLife 414; Delete files in Documents and Settings\<user>\SecondLife
415Push $0 415Push $0
416Push $1 416Push $1
417Push $2 417Push $2
418 418
419 DetailPrint "Deleting files in Documents and Settings folder" 419 DetailPrint "Deleting files in Documents and Settings folder"
420 420
421 StrCpy $0 0 ; Index number used to iterate via EnumRegKey 421 StrCpy $0 0 ; Index number used to iterate via EnumRegKey
422 422
423 LOOP: 423 LOOP:
424 EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 424 EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
425 StrCmp $1 "" DONE ; no more users 425 StrCmp $1 "" DONE ; no more users
426 426
427 ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 427 ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath"
428 StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing 428 StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing
429 429
430 ; Required since ProfileImagePath is of type REG_EXPAND_SZ 430 ; Required since ProfileImagePath is of type REG_EXPAND_SZ
431 ExpandEnvStrings $2 $2 431 ExpandEnvStrings $2 $2
432 432
433 ; If uninstalling a normal install remove everything 433 ; If uninstalling a normal install remove everything
434 ; Otherwise (preview/dmz etc) just remove cache 434 ; Otherwise (preview/dmz etc) just remove cache
435 StrCmp $INSTFLAGS "" RM_ALL RM_CACHE 435 StrCmp $INSTFLAGS "" RM_ALL RM_CACHE
436 RM_ALL: 436 RM_ALL:
437 RMDir /r "$2\Application Data\SecondLife" 437 RMDir /r "$2\Application Data\SecondLife"
438 GoTo CONTINUE 438 GoTo CONTINUE
439 RM_CACHE: 439 RM_CACHE:
440 RMDir /r "$2\Application Data\SecondLife\Cache" 440 RMDir /r "$2\Application Data\SecondLife\Cache"
441 Delete "$2\Application Data\SecondLife\user_settings\settings_windlight.xml" 441 Delete "$2\Application Data\SecondLife\user_settings\settings_windlight.xml"
442 442
443 CONTINUE: 443 CONTINUE:
444 IntOp $0 $0 + 1 444 IntOp $0 $0 + 1
445 Goto LOOP 445 Goto LOOP
446 DONE: 446 DONE:
447 447
448Pop $2 448Pop $2
449Pop $1 449Pop $1
450Pop $0 450Pop $0
451 451
452; Delete files in Documents and Settings\All Users\SecondLife 452; Delete files in Documents and Settings\All Users\SecondLife
453Push $0 453Push $0
454 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" 454 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
455 StrCmp $0 "" +2 455 StrCmp $0 "" +2
456 RMDir /r "$0\SecondLife" 456 RMDir /r "$0\SecondLife"
457Pop $0 457Pop $0
458 458
459; Delete filse in C:\Windows\Application Data\SecondLife 459; Delete filse in C:\Windows\Application Data\SecondLife
460; If the user is running on a pre-NT system, Application Data lives here instead of 460; If the user is running on a pre-NT system, Application Data lives here instead of
461; in Documents and Settings. 461; in Documents and Settings.
462RMDir /r "$WINDIR\Application Data\SecondLife" 462RMDir /r "$WINDIR\Application Data\SecondLife"
463 463
464FunctionEnd 464FunctionEnd
465 465
466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
467; Close the program, if running. Modifies no variables. 467; Close the program, if running. Modifies no variables.
468; Allows user to bail out of uninstall process. 468; Allows user to bail out of uninstall process.
469;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 469;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
470Function un.CloseSecondLife 470Function un.CloseSecondLife
471 Push $0 471 Push $0
472 FindWindow $0 "Imprudence" "" 472 FindWindow $0 "Imprudence" ""
473 IntCmp $0 0 DONE 473 IntCmp $0 0 DONE
474 MessageBox MB_OKCANCEL $(CloseSecondLifeUnInstMB) IDOK CLOSE IDCANCEL CANCEL_UNINSTALL 474 MessageBox MB_OKCANCEL $(CloseSecondLifeUnInstMB) IDOK CLOSE IDCANCEL CANCEL_UNINSTALL
475 475
476 CANCEL_UNINSTALL: 476 CANCEL_UNINSTALL:
477 Quit 477 Quit
478 478
479 CLOSE: 479 CLOSE:
480 DetailPrint $(CloseSecondLifeUnInstDP) 480 DetailPrint $(CloseSecondLifeUnInstDP)
481 SendMessage $0 16 0 0 481 SendMessage $0 16 0 0
482 482
483 LOOP: 483 LOOP:
484 FindWindow $0 "Imprudence" "" 484 FindWindow $0 "Imprudence" ""
485 IntCmp $0 0 DONE 485 IntCmp $0 0 DONE
486 Sleep 500 486 Sleep 500
487 Goto LOOP 487 Goto LOOP
488 488
489 DONE: 489 DONE:
490 Pop $0 490 Pop $0
491 Return 491 Return
492FunctionEnd 492FunctionEnd
493 493
494 494
495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
496; 496;
497; Delete the stored password for the current Windows user 497; Delete the stored password for the current Windows user
498; DEV-10821 -- Unauthorised user can gain access to an SL account after a real user has uninstalled 498; DEV-10821 -- Unauthorised user can gain access to an SL account after a real user has uninstalled
499; 499;
500Function un.RemovePassword 500Function un.RemovePassword
501 501
502DetailPrint "Removing Second Life password" 502DetailPrint "Removing Second Life password"
503 503
504SetShellVarContext current 504SetShellVarContext current
505Delete "$APPDATA\SecondLife\user_settings\password.dat" 505Delete "$APPDATA\SecondLife\user_settings\password.dat"
506SetShellVarContext all 506SetShellVarContext all
507 507
508FunctionEnd 508FunctionEnd
509 509
510;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 510;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
511;;; Delete the installed files 511;;; Delete the installed files
512;;; This deletes the uninstall executable, but it works 512;;; This deletes the uninstall executable, but it works
513;;; because it is copied to temp directory before running 513;;; because it is copied to temp directory before running
514;;; 514;;;
515;;; Note: You must list all files here, because we only 515;;; Note: You must list all files here, because we only
516;;; want to delete our files, not things users left in the 516;;; want to delete our files, not things users left in the
517;;; application directories. 517;;; application directories.
518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
519Function un.ProgramFiles 519Function un.ProgramFiles
520 520
521;; Remove mozilla file first so recursive directory deletion doesn't get hung up 521;; Remove mozilla file first so recursive directory deletion doesn't get hung up
522Delete "$INSTDIR\app_settings\mozilla\components" 522Delete "$INSTDIR\app_settings\mozilla\components"
523 523
524;; This placeholder is replaced by the complete list of files to uninstall by viewer_manifest.py 524;; This placeholder is replaced by the complete list of files to uninstall by viewer_manifest.py
525%%DELETE_FILES%% 525%%DELETE_FILES%%
526 526
527;; Optional/obsolete files. Delete won't fail if they don't exist. 527;; Optional/obsolete files. Delete won't fail if they don't exist.
528Delete "$INSTDIR\dronesettings.ini" 528Delete "$INSTDIR\dronesettings.ini"
529Delete "$INSTDIR\message_template.msg" 529Delete "$INSTDIR\message_template.msg"
530Delete "$INSTDIR\newview.pdb" 530Delete "$INSTDIR\newview.pdb"
531Delete "$INSTDIR\newview.map" 531Delete "$INSTDIR\newview.map"
532Delete "$INSTDIR\SecondLife.pdb" 532Delete "$INSTDIR\SecondLife.pdb"
533Delete "$INSTDIR\SecondLife.map" 533Delete "$INSTDIR\SecondLife.map"
534Delete "$INSTDIR\comm.dat" 534Delete "$INSTDIR\comm.dat"
535Delete "$INSTDIR\*.glsl" 535Delete "$INSTDIR\*.glsl"
536Delete "$INSTDIR\motions\*.lla" 536Delete "$INSTDIR\motions\*.lla"
537Delete "$INSTDIR\trial\*.html" 537Delete "$INSTDIR\trial\*.html"
538Delete "$INSTDIR\newview.exe" 538Delete "$INSTDIR\newview.exe"
539;; Remove entire help directory 539;; Remove entire help directory
540Delete "$INSTDIR\help\Advanced\*" 540Delete "$INSTDIR\help\Advanced\*"
541RMDir "$INSTDIR\help\Advanced" 541RMDir "$INSTDIR\help\Advanced"
542Delete "$INSTDIR\help\basics\*" 542Delete "$INSTDIR\help\basics\*"
543RMDir "$INSTDIR\help\basics" 543RMDir "$INSTDIR\help\basics"
544Delete "$INSTDIR\help\Concepts\*" 544Delete "$INSTDIR\help\Concepts\*"
545RMDir "$INSTDIR\help\Concepts" 545RMDir "$INSTDIR\help\Concepts"
546Delete "$INSTDIR\help\welcome\*" 546Delete "$INSTDIR\help\welcome\*"
547RMDir "$INSTDIR\help\welcome" 547RMDir "$INSTDIR\help\welcome"
548Delete "$INSTDIR\help\*" 548Delete "$INSTDIR\help\*"
549RMDir "$INSTDIR\help" 549RMDir "$INSTDIR\help"
550 550
551Delete "$INSTDIR\uninst.exe" 551Delete "$INSTDIR\uninst.exe"
552RMDir "$INSTDIR" 552RMDir "$INSTDIR"
553 553
554IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER 554IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER
555 555
556FOLDERFOUND: 556FOLDERFOUND:
557 MessageBox MB_YESNO $(DeleteProgramFilesMB) IDNO NOFOLDER 557 MessageBox MB_YESNO $(DeleteProgramFilesMB) IDNO NOFOLDER
558 RMDir /r "$INSTDIR" 558 RMDir /r "$INSTDIR"
559 559
560NOFOLDER: 560NOFOLDER:
561 561
562FunctionEnd 562FunctionEnd
563 563
564;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 564;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
565;;; Uninstall settings 565;;; Uninstall settings
566;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 566;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
567UninstallText $(UninstallTextMsg) 567UninstallText $(UninstallTextMsg)
568ShowUninstDetails show 568ShowUninstDetails show
569 569
570;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 570;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
571;;; Uninstall section 571;;; Uninstall section
572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
573Section Uninstall 573Section Uninstall
574 574
575; Start with some default values. 575; Start with some default values.
576StrCpy $INSTFLAGS "" 576StrCpy $INSTFLAGS ""
577StrCpy $INSTPROG "${INSTNAME}" 577StrCpy $INSTPROG "${INSTNAME}"
578StrCpy $INSTEXE "${INSTEXE}" 578StrCpy $INSTEXE "${INSTEXE}"
579StrCpy $INSTSHORTCUT "${SHORTCUT}" 579StrCpy $INSTSHORTCUT "${SHORTCUT}"
580Call un.CheckStartupParams ; Figure out where, what and how to uninstall. 580Call un.CheckStartupParams ; Figure out where, what and how to uninstall.
581Call un.CheckIfAdministrator ; Make sure the user can install/uninstall 581Call un.CheckIfAdministrator ; Make sure the user can install/uninstall
582 582
583; uninstall for all users (if you change this, change it in the install as well) 583; uninstall for all users (if you change this, change it in the install as well)
584SetShellVarContext all 584SetShellVarContext all
585 585
586; Make sure we're not running 586; Make sure we're not running
587Call un.CloseSecondLife 587Call un.CloseSecondLife
588 588
589; Clean up registry keys (these should all be !defines somewhere) 589; Clean up registry keys (these should all be !defines somewhere)
590DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" 590DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG"
591DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" 591DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG"
592DeleteRegKey HKEY_LOCAL_MACHINE "Software\Linden Research, Inc.\Installer Language" 592DeleteRegKey HKEY_LOCAL_MACHINE "Software\Linden Research, Inc.\Installer Language"
593 593
594; Clean up shortcuts 594; Clean up shortcuts
595Delete "$SMPROGRAMS\$INSTSHORTCUT\*.*" 595Delete "$SMPROGRAMS\$INSTSHORTCUT\*.*"
596RMDir "$SMPROGRAMS\$INSTSHORTCUT" 596RMDir "$SMPROGRAMS\$INSTSHORTCUT"
597 597
598Delete "$DESKTOP\$INSTSHORTCUT.lnk" 598Delete "$DESKTOP\$INSTSHORTCUT.lnk"
599Delete "$INSTDIR\$INSTSHORTCUT.lnk" 599Delete "$INSTDIR\$INSTSHORTCUT.lnk"
600Delete "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" 600Delete "$INSTDIR\Uninstall $INSTSHORTCUT.lnk"
601 601
602; Clean up cache and log files. 602; Clean up cache and log files.
603; Leave them in-place for non AGNI installs. 603; Leave them in-place for non AGNI installs.
604 604
605!ifdef UNINSTALL_SETTINGS 605!ifdef UNINSTALL_SETTINGS
606Call un.DocumentsAndSettingsFolder 606Call un.DocumentsAndSettingsFolder
607!endif 607!endif
608 608
609; remove stored password on uninstall 609; remove stored password on uninstall
610Call un.RemovePassword 610Call un.RemovePassword
611 611
612Call un.ProgramFiles 612Call un.ProgramFiles
613 613
614SectionEnd ; end of uninstall section 614SectionEnd ; end of uninstall section
615 615
616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
617; (From the NSIS wiki, DK) 617; (From the NSIS wiki, DK)
618; GetParameterValue 618; GetParameterValue
619; 619;
620; Usage: 620; Usage:
621; !insertmacro GetParameterValue "/L=" "1033" 621; !insertmacro GetParameterValue "/L=" "1033"
622; pop $R0 622; pop $R0
623; 623;
624; Returns on top of stack 624; Returns on top of stack
625; 625;
626; Example command lines: 626; Example command lines:
627; foo.exe /S /L=1033 /D=C:\Program Files\Foo 627; foo.exe /S /L=1033 /D=C:\Program Files\Foo
628; or: 628; or:
629; foo.exe /S "/L=1033" /D="C:\Program Files\Foo" 629; foo.exe /S "/L=1033" /D="C:\Program Files\Foo"
630; gpv "/L=" "1033" 630; gpv "/L=" "1033"
631;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 631;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
632 632
633 !macro GetParameterValue SWITCH DEFAULT 633 !macro GetParameterValue SWITCH DEFAULT
634 Push $0 634 Push $0
635 Push $1 635 Push $1
636 Push $2 636 Push $2
637 Push $3 637 Push $3
638 Push $4 638 Push $4
639 639
640 ;$CMDLINE='"My Setup\Setup.exe" /L=1033 /S' 640 ;$CMDLINE='"My Setup\Setup.exe" /L=1033 /S'
641 Push "$CMDLINE" 641 Push "$CMDLINE"
642 Push '${SWITCH}"' 642 Push '${SWITCH}"'
643 !insertmacro StrStr 643 !insertmacro StrStr
644 Pop $0 644 Pop $0
645 StrCmp "$0" "" gpv_notquoted 645 StrCmp "$0" "" gpv_notquoted
646 ;$0='/L="1033" /S' 646 ;$0='/L="1033" /S'
647 StrLen $2 "$0" 647 StrLen $2 "$0"
648 Strlen $1 "${SWITCH}" 648 Strlen $1 "${SWITCH}"
649 IntOp $1 $1 + 1 649 IntOp $1 $1 + 1
650 StrCpy $0 "$0" $2 $1 650 StrCpy $0 "$0" $2 $1
651 ;$0='1033" /S' 651 ;$0='1033" /S'
652 Push "$0" 652 Push "$0"
653 Push '"' 653 Push '"'
654 !insertmacro StrStr 654 !insertmacro StrStr
655 Pop $1 655 Pop $1
656 StrLen $2 "$0" 656 StrLen $2 "$0"
657 StrLen $3 "$1" 657 StrLen $3 "$1"
658 IntOp $4 $2 - $3 658 IntOp $4 $2 - $3
659 StrCpy $0 $0 $4 0 659 StrCpy $0 $0 $4 0
660 Goto gpv_done 660 Goto gpv_done
661 661
662 gpv_notquoted: 662 gpv_notquoted:
663 Push "$CMDLINE" 663 Push "$CMDLINE"
664 Push "${SWITCH}" 664 Push "${SWITCH}"
665 !insertmacro StrStr 665 !insertmacro StrStr
666 Pop $0 666 Pop $0
667 StrCmp "$0" "" gpv_done 667 StrCmp "$0" "" gpv_done
668 ;$0='/L="1033" /S' 668 ;$0='/L="1033" /S'
669 StrLen $2 "$0" 669 StrLen $2 "$0"
670 Strlen $1 "${SWITCH}" 670 Strlen $1 "${SWITCH}"
671 StrCpy $0 "$0" $2 $1 671 StrCpy $0 "$0" $2 $1
672 ;$0=1033 /S' 672 ;$0=1033 /S'
673 Push "$0" 673 Push "$0"
674 Push ' ' 674 Push ' '
675 !insertmacro StrStr 675 !insertmacro StrStr
676 Pop $1 676 Pop $1
677 StrLen $2 "$0" 677 StrLen $2 "$0"
678 StrLen $3 "$1" 678 StrLen $3 "$1"
679 IntOp $4 $2 - $3 679 IntOp $4 $2 - $3
680 StrCpy $0 $0 $4 0 680 StrCpy $0 $0 $4 0
681 Goto gpv_done 681 Goto gpv_done
682 682
683 gpv_done: 683 gpv_done:
684 StrCmp "$0" "" 0 +2 684 StrCmp "$0" "" 0 +2
685 StrCpy $0 "${DEFAULT}" 685 StrCpy $0 "${DEFAULT}"
686 686
687 Pop $4 687 Pop $4
688 Pop $3 688 Pop $3
689 Pop $2 689 Pop $2
690 Pop $1 690 Pop $1
691 Exch $0 691 Exch $0
692 !macroend 692 !macroend
693 693
694; And I had to modify StrStr a tiny bit. 694; And I had to modify StrStr a tiny bit.
695; Possible upgrade switch the goto's to use ${__LINE__} 695; Possible upgrade switch the goto's to use ${__LINE__}
696 696
697!macro STRSTR 697!macro STRSTR
698 Exch $R1 ; st=haystack,old$R1, $R1=needle 698 Exch $R1 ; st=haystack,old$R1, $R1=needle
699 Exch ; st=old$R1,haystack 699 Exch ; st=old$R1,haystack
700 Exch $R2 ; st=old$R1,old$R2, $R2=haystack 700 Exch $R2 ; st=old$R1,old$R2, $R2=haystack
701 Push $R3 701 Push $R3
702 Push $R4 702 Push $R4
703 Push $R5 703 Push $R5
704 StrLen $R3 $R1 704 StrLen $R3 $R1
705 StrCpy $R4 0 705 StrCpy $R4 0
706 ; $R1=needle 706 ; $R1=needle
707 ; $R2=haystack 707 ; $R2=haystack
708 ; $R3=len(needle) 708 ; $R3=len(needle)
709 ; $R4=cnt 709 ; $R4=cnt
710 ; $R5=tmp 710 ; $R5=tmp
711 ; loop; 711 ; loop;
712 StrCpy $R5 $R2 $R3 $R4 712 StrCpy $R5 $R2 $R3 $R4
713 StrCmp $R5 $R1 +4 713 StrCmp $R5 $R1 +4
714 StrCmp $R5 "" +3 714 StrCmp $R5 "" +3
715 IntOp $R4 $R4 + 1 715 IntOp $R4 $R4 + 1
716 Goto -4 716 Goto -4
717 ; done; 717 ; done;
718 StrCpy $R1 $R2 "" $R4 718 StrCpy $R1 $R2 "" $R4
719 Pop $R5 719 Pop $R5
720 Pop $R4 720 Pop $R4
721 Pop $R3 721 Pop $R3
722 Pop $R2 722 Pop $R2
723 Exch $R1 723 Exch $R1
724!macroend 724!macroend
725 725
726Function GetProgramName 726Function GetProgramName
727 !insertmacro GetParameterValue "/P=" "Imprudence" 727 !insertmacro GetParameterValue "/P=" "Imprudence"
728FunctionEnd 728FunctionEnd
729 729
730Function un.GetProgramName 730Function un.GetProgramName
731 !insertmacro GetParameterValue "/P=" "Imprudence" 731 !insertmacro GetParameterValue "/P=" "Imprudence"
732FunctionEnd 732FunctionEnd
733 733
734;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 734;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
735; (From the NSIS documentation, JC) 735; (From the NSIS documentation, JC)
736; GetWindowsVersion 736; GetWindowsVersion
737; 737;
738; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/ 738; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
739; Updated by Joost Verburg 739; Updated by Joost Verburg
740; 740;
741; Returns on top of stack 741; Returns on top of stack
742; 742;
743; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003) 743; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003)
744; or 744; or
745; '' (Unknown Windows Version) 745; '' (Unknown Windows Version)
746; 746;
747; Usage: 747; Usage:
748; Call GetWindowsVersion 748; Call GetWindowsVersion
749; Pop $R0 749; Pop $R0
750; ; at this point $R0 is "NT 4.0" or whatnot 750; ; at this point $R0 is "NT 4.0" or whatnot
751;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 751;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
752Function GetWindowsVersion 752Function GetWindowsVersion
753 753
754 Push $R0 754 Push $R0
755 Push $R1 755 Push $R1
756 756
757 ReadRegStr $R0 HKLM \ 757 ReadRegStr $R0 HKLM \
758 "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion 758 "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
759 759
760 IfErrors 0 lbl_winnt 760 IfErrors 0 lbl_winnt
761 761
762 ; we are not NT 762 ; we are not NT
763 ReadRegStr $R0 HKLM \ 763 ReadRegStr $R0 HKLM \
764 "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber 764 "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
765 765
766 StrCpy $R1 $R0 1 766 StrCpy $R1 $R0 1
767 StrCmp $R1 '4' 0 lbl_error 767 StrCmp $R1 '4' 0 lbl_error
768 768
769 StrCpy $R1 $R0 3 769 StrCpy $R1 $R0 3
770 770
771 StrCmp $R1 '4.0' lbl_win32_95 771 StrCmp $R1 '4.0' lbl_win32_95
772 StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98 772 StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
773 773
774 lbl_win32_95: 774 lbl_win32_95:
775 StrCpy $R0 '95' 775 StrCpy $R0 '95'
776 Goto lbl_done 776 Goto lbl_done
777 777
778 lbl_win32_98: 778 lbl_win32_98:
779 StrCpy $R0 '98' 779 StrCpy $R0 '98'
780 Goto lbl_done 780 Goto lbl_done
781 781
782 lbl_win32_ME: 782 lbl_win32_ME:
783 StrCpy $R0 'ME' 783 StrCpy $R0 'ME'
784 Goto lbl_done 784 Goto lbl_done
785 785
786 lbl_winnt: 786 lbl_winnt:
787 787
788 StrCpy $R1 $R0 1 788 StrCpy $R1 $R0 1
789 789
790 StrCmp $R1 '3' lbl_winnt_x 790 StrCmp $R1 '3' lbl_winnt_x
791 StrCmp $R1 '4' lbl_winnt_x 791 StrCmp $R1 '4' lbl_winnt_x
792 792
793 StrCpy $R1 $R0 3 793 StrCpy $R1 $R0 3
794 794
795 StrCmp $R1 '5.0' lbl_winnt_2000 795 StrCmp $R1 '5.0' lbl_winnt_2000
796 StrCmp $R1 '5.1' lbl_winnt_XP 796 StrCmp $R1 '5.1' lbl_winnt_XP
797 StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error 797 StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error
798 798
799 lbl_winnt_x: 799 lbl_winnt_x:
800 StrCpy $R0 "NT $R0" 6 800 StrCpy $R0 "NT $R0" 6
801 Goto lbl_done 801 Goto lbl_done
802 802
803 lbl_winnt_2000: 803 lbl_winnt_2000:
804 Strcpy $R0 '2000' 804 Strcpy $R0 '2000'
805 Goto lbl_done 805 Goto lbl_done
806 806
807 lbl_winnt_XP: 807 lbl_winnt_XP:
808 Strcpy $R0 'XP' 808 Strcpy $R0 'XP'
809 Goto lbl_done 809 Goto lbl_done
810 810
811 lbl_winnt_2003: 811 lbl_winnt_2003:
812 Strcpy $R0 '2003' 812 Strcpy $R0 '2003'
813 Goto lbl_done 813 Goto lbl_done
814 814
815 lbl_error: 815 lbl_error:
816 Strcpy $R0 '' 816 Strcpy $R0 ''
817 lbl_done: 817 lbl_done:
818 818
819 Pop $R1 819 Pop $R1
820 Exch $R0 820 Exch $R0
821 821
822FunctionEnd 822FunctionEnd
823 823
824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
825;; Note: to add new languages, add a language file include to the list 825;; Note: to add new languages, add a language file include to the list
826;; at the top of this file, add an entry to the menu and then add an 826;; at the top of this file, add an entry to the menu and then add an
827;; entry to the language ID selector below 827;; entry to the language ID selector below
828;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 828;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
829Function .onInit 829Function .onInit
830 830
831 ; read the language from registry (ok if not there) and set langauge menu 831 ; read the language from registry (ok if not there) and set langauge menu
832 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" 832 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage"
833 StrCpy $LANGUAGE $0 833 StrCpy $LANGUAGE $0
834 834
835 Push "" 835 Push ""
836 Push ${LANG_ENGLISH} 836 Push ${LANG_ENGLISH}
837 Push English 837 Push English
838 Push ${LANG_GERMAN} 838 Push ${LANG_GERMAN}
839 Push German 839 Push German
840 Push ${LANG_JAPANESE} 840 Push ${LANG_JAPANESE}
841 Push Japanese 841 Push Japanese
842 Push ${LANG_KOREAN} 842 Push ${LANG_KOREAN}
843 Push Korean 843 Push Korean
844 Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain 844 Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain
845 LangDLL::LangDialog "Installer Language" "Please select the language of the installer" 845 LangDLL::LangDialog "Installer Language" "Please select the language of the installer"
846 Pop $LANGUAGE 846 Pop $LANGUAGE
847 StrCmp $LANGUAGE "cancel" 0 +2 847 StrCmp $LANGUAGE "cancel" 0 +2
848 Abort 848 Abort
849 849
850 ; save language in registry 850 ; save language in registry
851 WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE 851 WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE
852FunctionEnd 852FunctionEnd
853 853
854;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 854;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
855Function un.onInit 855Function un.onInit
856 856
857 ; read language from registry and set for ininstaller 857 ; read language from registry and set for ininstaller
858 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" 858 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage"
859 StrCpy $LANGUAGE $0 859 StrCpy $LANGUAGE $0
860 860
861FunctionEnd 861FunctionEnd
862 862
863 863
864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
865;;; Sections 865;;; Sections
866;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 866;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
867Section "" ; (default section) 867Section "" ; (default section)
868 868
869SetShellVarContext all ; install for all users (if you change this, change it in the uninstall as well) 869SetShellVarContext all ; install for all users (if you change this, change it in the uninstall as well)
870 870
871; Start with some default values. 871; Start with some default values.
872StrCpy $INSTFLAGS "${INSTFLAGS}" 872StrCpy $INSTFLAGS "${INSTFLAGS}"
873StrCpy $INSTPROG "${INSTNAME}" 873StrCpy $INSTPROG "${INSTNAME}"
874StrCpy $INSTEXE "${INSTEXE}" 874StrCpy $INSTEXE "${INSTEXE}"
875StrCpy $INSTSHORTCUT "${SHORTCUT}" 875StrCpy $INSTSHORTCUT "${SHORTCUT}"
876 876
877IfSilent +2 877IfSilent +2
878Goto NOT_SILENT 878Goto NOT_SILENT
879 Call CheckStartupParams ; Figure out where, what and how to install. 879 Call CheckStartupParams ; Figure out where, what and how to install.
880NOT_SILENT: 880NOT_SILENT:
881Call CheckWindowsVersion ; warn if on Windows 98/ME 881Call CheckWindowsVersion ; warn if on Windows 98/ME
882Call CheckIfAdministrator ; Make sure the user can install/uninstall 882Call CheckIfAdministrator ; Make sure the user can install/uninstall
883Call CheckIfAlreadyCurrent ; Make sure that we haven't already installed this version 883Call CheckIfAlreadyCurrent ; Make sure that we haven't already installed this version
884Call CloseSecondLife ; Make sure we're not running 884Call CloseSecondLife ; Make sure we're not running
885Call RemoveNSIS ; Check for old NSIS install to remove 885Call RemoveNSIS ; Check for old NSIS install to remove
886 886
887;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 887;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
888;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers. 888;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers.
889;Call RemoveCacheFiles ; Installing over removes potentially corrupted 889;Call RemoveCacheFiles ; Installing over removes potentially corrupted
890 ; VFS and cache files. 890 ; VFS and cache files.
891 891
892;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 892;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
893;;; Need to clean out shader files from previous installs to fix DEV-5663 893;;; Need to clean out shader files from previous installs to fix DEV-5663
894Call RemoveOldShaders 894Call RemoveOldShaders
895 895
896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
897;;; Need to clean out old XUI files that predate skinning 897;;; Need to clean out old XUI files that predate skinning
898Call RemoveOldXUI 898Call RemoveOldXUI
899 899
900;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 900;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
901;;; Clear out old releasenotes.txt files. These are now on the public wiki. 901;;; Clear out old releasenotes.txt files. These are now on the public wiki.
902Call RemoveOldReleaseNotes 902Call RemoveOldReleaseNotes
903 903
904;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 904;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
905;;; Files 905;;; Files
906;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 906;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
907;; This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py 907;; This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py
908%%INSTALL_FILES%% 908%%INSTALL_FILES%%
909 909
910;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 910;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
911; If this is a silent update, we don't need to re-create these shortcuts or registry entries. 911; If this is a silent update, we don't need to re-create these shortcuts or registry entries.
912IfSilent POST_INSTALL 912IfSilent POST_INSTALL
913 913
914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
915; Shortcuts in start menu 915; Shortcuts in start menu
916CreateDirectory "$SMPROGRAMS\$INSTSHORTCUT" 916CreateDirectory "$SMPROGRAMS\$INSTSHORTCUT"
917SetOutPath "$INSTDIR" 917SetOutPath "$INSTDIR"
918CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT.lnk" \ 918CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT.lnk" \
919 "$INSTDIR\$INSTEXE" "$INSTFLAGS" 919 "$INSTDIR\$INSTEXE" "$INSTFLAGS"
920 920
921!ifdef MUSEUM 921!ifdef MUSEUM
922CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum.lnk" \ 922CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum.lnk" \
923 923
924 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple" 924 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple"
925CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum Spanish.lnk" \ 925CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum Spanish.lnk" \
926 926
927 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish" 927 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish"
928!endif 928!endif
929 929
930WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Create Trial Account.url" \ 930WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Create Trial Account.url" \
931 "InternetShortcut" "URL" \ 931 "InternetShortcut" "URL" \
932 "http://www.secondlife.com/registration/" 932 "http://www.secondlife.com/registration/"
933WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Your Account.url" \ 933WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Your Account.url" \
934 "InternetShortcut" "URL" \ 934 "InternetShortcut" "URL" \
935 "http://www.secondlife.com/account/" 935 "http://www.secondlife.com/account/"
936CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\SL Scripting Language Help.lnk" \ 936CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\SL Scripting Language Help.lnk" \
937 "$INSTDIR\lsl_guide.html" 937 "$INSTDIR\lsl_guide.html"
938CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \ 938CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \
939 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"' 939 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"'
940 940
941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
942; Other shortcuts 942; Other shortcuts
943SetOutPath "$INSTDIR" 943SetOutPath "$INSTDIR"
944CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS" 944CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS"
945CreateShortCut "$INSTDIR\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS" 945CreateShortCut "$INSTDIR\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS"
946CreateShortCut "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" \ 946CreateShortCut "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" \
947 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"' 947 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"'
948 948
949!ifdef MUSEUM 949!ifdef MUSEUM
950CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple" 950CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple"
951 951
952CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish" 952CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish"
953 953
954CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple" 954CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple"
955 955
956CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish" 956CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish"
957 957
958!endif 958!endif
959 959
960;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 960;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
961; Write registry 961; Write registry
962WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" "$INSTDIR" 962WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" "$INSTDIR"
963WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" "${VERSION_LONG}" 963WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" "${VERSION_LONG}"
964WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" "$INSTFLAGS" 964WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" "$INSTFLAGS"
965WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" "$INSTSHORTCUT" 965WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" "$INSTSHORTCUT"
966WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" "$INSTEXE" 966WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" "$INSTEXE"
967WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayName" "$INSTPROG (remove only)" 967WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayName" "$INSTPROG (remove only)"
968WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "UninstallString" '"$INSTDIR\uninst.exe" /P="$INSTPROG"' 968WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "UninstallString" '"$INSTDIR\uninst.exe" /P="$INSTPROG"'
969 969
970;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 970;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
971; Write URL registry info 971; Write URL registry info
972WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life" 972WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life"
973WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" "" 973WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" ""
974WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$INSTEXE"' 974WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$INSTEXE"'
975WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$INSTEXE" $INSTFLAGS -url "%1"' 975WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$INSTEXE" $INSTFLAGS -url "%1"'
976 976
977Goto WRITE_UNINST 977Goto WRITE_UNINST
978 978
979POST_INSTALL: 979POST_INSTALL:
980; Run a post-executable script if necessary. 980; Run a post-executable script if necessary.
981Call PostInstallExe 981Call PostInstallExe
982 982
983WRITE_UNINST: 983WRITE_UNINST:
984; write out uninstaller 984; write out uninstaller
985WriteUninstaller "$INSTDIR\uninst.exe" 985WriteUninstaller "$INSTDIR\uninst.exe"
986 986
987; end of default section 987; end of default section
988SectionEnd 988SectionEnd
989 989
990;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EOF ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 990;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EOF ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/linden/indra/newview/installers/windows/lang_de.nsi b/linden/indra/newview/installers/windows/lang_de.nsi
index 6be219e..e45b3b1 100644
--- a/linden/indra/newview/installers/windows/lang_de.nsi
+++ b/linden/indra/newview/installers/windows/lang_de.nsi
@@ -1,57 +1,57 @@
1; First is default 1; First is default
2LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf" 2LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf"
3 3
4; subtitle on license text caption (setup new version or update current one 4; subtitle on license text caption (setup new version or update current one
5LangString LicenseSubTitleUpdate ${LANG_GERMAN} " Update" 5LangString LicenseSubTitleUpdate ${LANG_GERMAN} " Update"
6LangString LicenseSubTitleSetup ${LANG_GERMAN} " Setup" 6LangString LicenseSubTitleSetup ${LANG_GERMAN} " Setup"
7 7
8; description on license page 8; description on license page
9LangString LicenseDescUpdate ${LANG_GERMAN} "Dieses Paket wird das bereits installierte Imprudence mit Version ${VERSION_LONG}. ersetzen." 9LangString LicenseDescUpdate ${LANG_GERMAN} "Dieses Paket wird das bereits installierte Imprudence mit Version ${VERSION_LONG}. ersetzen."
10LangString LicenseDescSetup ${LANG_GERMAN} "Dieses Paket wird Imprudence auf Ihrem Computer installieren." 10LangString LicenseDescSetup ${LANG_GERMAN} "Dieses Paket wird Imprudence auf Ihrem Computer installieren."
11LangString LicenseDescNext ${LANG_GERMAN} "Weiter" 11LangString LicenseDescNext ${LANG_GERMAN} "Weiter"
12 12
13; installation directory text 13; installation directory text
14LangString DirectoryChooseTitle ${LANG_GERMAN} "Installations-Ordner" 14LangString DirectoryChooseTitle ${LANG_GERMAN} "Installations-Ordner"
15LangString DirectoryChooseUpdate ${LANG_GERMAN} "Wählen Sie den Imprudence Ordner für dieses Update:" 15LangString DirectoryChooseUpdate ${LANG_GERMAN} "Wählen Sie den Imprudence Ordner für dieses Update:"
16LangString DirectoryChooseSetup ${LANG_GERMAN} "Pfad in dem Imprudence installieren werden soll:" 16LangString DirectoryChooseSetup ${LANG_GERMAN} "Pfad in dem Imprudence installieren werden soll:"
17 17
18; CheckStartupParams message box 18; CheckStartupParams message box
19LangString CheckStartupParamsMB ${LANG_GERMAN} "Konnte Programm '$INSTPROG' nicht finden. Stilles Update fehlgeschlagen." 19LangString CheckStartupParamsMB ${LANG_GERMAN} "Konnte Programm '$INSTPROG' nicht finden. Stilles Update fehlgeschlagen."
20 20
21; installation success dialog 21; installation success dialog
22LangString InstSuccesssQuestion ${LANG_GERMAN} "Imprudence starten?" 22LangString InstSuccesssQuestion ${LANG_GERMAN} "Imprudence starten?"
23 23
24; remove old NSIS version 24; remove old NSIS version
25LangString RemoveOldNSISVersion ${LANG_GERMAN} "Überprüfe alte Version ..." 25LangString RemoveOldNSISVersion ${LANG_GERMAN} "Überprüfe alte Version ..."
26 26
27; check windows version 27; check windows version
28LangString CheckWindowsVersionDP ${LANG_GERMAN} "Überprüfung der Windows Version ..." 28LangString CheckWindowsVersionDP ${LANG_GERMAN} "Überprüfung der Windows Version ..."
29LangString CheckWindowsVersionMB ${LANG_GERMAN} 'Imprudence unterstützt nur Windows XP, Windows 2000 und Mac OS X.$\n$\nDer Versuch es auf Windows $R0 zu installieren, könnte zu unvorhersehbaren Abstürzen und Datenverlust führen.$\n$\nTrotzdem installieren?' 29LangString CheckWindowsVersionMB ${LANG_GERMAN} 'Imprudence unterstützt nur Windows XP, Windows 2000 und Mac OS X.$\n$\nDer Versuch es auf Windows $R0 zu installieren, könnte zu unvorhersehbaren Abstürzen und Datenverlust führen.$\n$\nTrotzdem installieren?'
30 30
31; checkifadministrator function (install) 31; checkifadministrator function (install)
32LangString CheckAdministratorInstDP ${LANG_GERMAN} "Überprüfung der Installations-Berechtigungen ..." 32LangString CheckAdministratorInstDP ${LANG_GERMAN} "Überprüfung der Installations-Berechtigungen ..."
33LangString CheckAdministratorInstMB ${LANG_GERMAN} 'Sie besitzen ungenügende Berechtigungen.$\nSie müssen ein "administrator" sein, um Imprudence installieren zu können.' 33LangString CheckAdministratorInstMB ${LANG_GERMAN} 'Sie besitzen ungenügende Berechtigungen.$\nSie müssen ein "administrator" sein, um Imprudence installieren zu können.'
34 34
35; checkifadministrator function (uninstall) 35; checkifadministrator function (uninstall)
36LangString CheckAdministratorUnInstDP ${LANG_GERMAN} "Überprüfung der Entfernungs-Berechtigungen ..." 36LangString CheckAdministratorUnInstDP ${LANG_GERMAN} "Überprüfung der Entfernungs-Berechtigungen ..."
37LangString CheckAdministratorUnInstMB ${LANG_GERMAN} 'Sie besitzen ungenügende Berechtigungen.$\nSie müssen ein "administrator" sein, um Imprudence entfernen zu können..' 37LangString CheckAdministratorUnInstMB ${LANG_GERMAN} 'Sie besitzen ungenügende Berechtigungen.$\nSie müssen ein "administrator" sein, um Imprudence entfernen zu können..'
38 38
39; checkifalreadycurrent 39; checkifalreadycurrent
40LangString CheckIfCurrentMB ${LANG_GERMAN} "Anscheinend ist Imprudence ${VERSION_LONG} bereits installiert.$\n$\nWürden Sie es gerne erneut installieren?" 40LangString CheckIfCurrentMB ${LANG_GERMAN} "Anscheinend ist Imprudence ${VERSION_LONG} bereits installiert.$\n$\nWürden Sie es gerne erneut installieren?"
41 41
42; closeimprudence function (install) 42; closeimprudence function (install)
43LangString CloseSecondLifeInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Imprudence ..." 43LangString CloseSecondLifeInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Imprudence ..."
44LangString CloseSecondLifeInstMB ${LANG_GERMAN} "Imprudence kann nicht installiert oder ersetzt werden, wenn es bereits läuft.$\n$\nBeenden Sie, was Sie gerade tun und klicken Sie OK, um Imprudence zu beenden.$\nKlicken Sie CANCEL, um die Installation abzubrechen." 44LangString CloseSecondLifeInstMB ${LANG_GERMAN} "Imprudence kann nicht installiert oder ersetzt werden, wenn es bereits läuft.$\n$\nBeenden Sie, was Sie gerade tun und klicken Sie OK, um Imprudence zu beenden.$\nKlicken Sie CANCEL, um die Installation abzubrechen."
45 45
46; closeimprudence function (uninstall) 46; closeimprudence function (uninstall)
47LangString CloseSecondLifeUnInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Imprudence ..." 47LangString CloseSecondLifeUnInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Imprudence ..."
48LangString CloseSecondLifeUnInstMB ${LANG_GERMAN} "Imprudence kann nicht entfernt werden, wenn es bereits läuft.$\n$\nBeenden Sie, was Sie gerade tun und klicken Sie OK, um Imprudence zu beenden.$\nKlicken Sie CANCEL, um abzubrechen." 48LangString CloseSecondLifeUnInstMB ${LANG_GERMAN} "Imprudence kann nicht entfernt werden, wenn es bereits läuft.$\n$\nBeenden Sie, was Sie gerade tun und klicken Sie OK, um Imprudence zu beenden.$\nKlicken Sie CANCEL, um abzubrechen."
49 49
50; removecachefiles 50; removecachefiles
51LangString RemoveCacheFilesDP ${LANG_GERMAN} "Löschung aller Cache Dateien in Dokumente und Einstellungen." 51LangString RemoveCacheFilesDP ${LANG_GERMAN} "Löschung aller Cache Dateien in Dokumente und Einstellungen."
52 52
53; delete program files 53; delete program files
54LangString DeleteProgramFilesMB ${LANG_GERMAN} "Es existieren weiterhin Dateien in Ihrem Imprudence Programm Ordner.$\n$\nDies sind möglicherweise Dateien, die sie modifiziert oder bewegt haben:$\n$INSTDIR$\n$\nMöchten Sie diese ebenfalls löschen?" 54LangString DeleteProgramFilesMB ${LANG_GERMAN} "Es existieren weiterhin Dateien in Ihrem Imprudence Programm Ordner.$\n$\nDies sind möglicherweise Dateien, die sie modifiziert oder bewegt haben:$\n$INSTDIR$\n$\nMöchten Sie diese ebenfalls löschen?"
55 55
56; uninstall text 56; uninstall text
57LangString UninstallTextMsg ${LANG_GERMAN} "Dies wird Imprudence ${VERSION_LONG} von Ihrem System entfernen." 57LangString UninstallTextMsg ${LANG_GERMAN} "Dies wird Imprudence ${VERSION_LONG} von Ihrem System entfernen."
diff --git a/linden/indra/newview/installers/windows/lang_en-us.nsi b/linden/indra/newview/installers/windows/lang_en-us.nsi
index e203fb6..0d28c3f 100644
--- a/linden/indra/newview/installers/windows/lang_en-us.nsi
+++ b/linden/indra/newview/installers/windows/lang_en-us.nsi
@@ -1,52 +1,52 @@
1; First is default 1; First is default
2LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" 2LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"
3 3
4; subtitle on license text caption 4; subtitle on license text caption
5LangString LicenseSubTitleUpdate ${LANG_ENGLISH} " Update" 5LangString LicenseSubTitleUpdate ${LANG_ENGLISH} " Update"
6LangString LicenseSubTitleSetup ${LANG_ENGLISH} " Setup" 6LangString LicenseSubTitleSetup ${LANG_ENGLISH} " Setup"
7 7
8; installation directory text 8; installation directory text
9LangString DirectoryChooseTitle ${LANG_ENGLISH} "Installation Directory" 9LangString DirectoryChooseTitle ${LANG_ENGLISH} "Installation Directory"
10LangString DirectoryChooseUpdate ${LANG_ENGLISH} "Select the Imprudence directory to update to version ${VERSION_LONG}.(XXX):" 10LangString DirectoryChooseUpdate ${LANG_ENGLISH} "Select the Imprudence directory to update to version ${VERSION_LONG}.(XXX):"
11LangString DirectoryChooseSetup ${LANG_ENGLISH} "Select the directory to install Imprudence in:" 11LangString DirectoryChooseSetup ${LANG_ENGLISH} "Select the directory to install Imprudence in:"
12 12
13; CheckStartupParams message box 13; CheckStartupParams message box
14LangString CheckStartupParamsMB ${LANG_ENGLISH} "Could not find the program '$INSTPROG'. Silent update failed." 14LangString CheckStartupParamsMB ${LANG_ENGLISH} "Could not find the program '$INSTPROG'. Silent update failed."
15 15
16; installation success dialog 16; installation success dialog
17LangString InstSuccesssQuestion ${LANG_ENGLISH} "Start Imprudence now?" 17LangString InstSuccesssQuestion ${LANG_ENGLISH} "Start Imprudence now?"
18 18
19; remove old NSIS version 19; remove old NSIS version
20LangString RemoveOldNSISVersion ${LANG_ENGLISH} "Checking for old version..." 20LangString RemoveOldNSISVersion ${LANG_ENGLISH} "Checking for old version..."
21 21
22; check windows version 22; check windows version
23LangString CheckWindowsVersionDP ${LANG_ENGLISH} "Checking Windows version..." 23LangString CheckWindowsVersionDP ${LANG_ENGLISH} "Checking Windows version..."
24LangString CheckWindowsVersionMB ${LANG_ENGLISH} 'Imprudence only supports Windows XP, Windows 2000, and Mac OS X.$\n$\nAttempting to install on Windows $R0 can result in crashes and data loss.$\n$\nInstall anyway?' 24LangString CheckWindowsVersionMB ${LANG_ENGLISH} 'Imprudence only supports Windows XP, Windows 2000, and Mac OS X.$\n$\nAttempting to install on Windows $R0 can result in crashes and data loss.$\n$\nInstall anyway?'
25 25
26; checkifadministrator function (install) 26; checkifadministrator function (install)
27LangString CheckAdministratorInstDP ${LANG_ENGLISH} "Checking for permission to install..." 27LangString CheckAdministratorInstDP ${LANG_ENGLISH} "Checking for permission to install..."
28LangString CheckAdministratorInstMB ${LANG_ENGLISH} 'You appear to be using a "limited" account.$\nYou must be an "administrator" to install Imprudence.' 28LangString CheckAdministratorInstMB ${LANG_ENGLISH} 'You appear to be using a "limited" account.$\nYou must be an "administrator" to install Imprudence.'
29 29
30; checkifadministrator function (uninstall) 30; checkifadministrator function (uninstall)
31LangString CheckAdministratorUnInstDP ${LANG_ENGLISH} "Checking for permission to uninstall..." 31LangString CheckAdministratorUnInstDP ${LANG_ENGLISH} "Checking for permission to uninstall..."
32LangString CheckAdministratorUnInstMB ${LANG_ENGLISH} 'You appear to be using a "limited" account.$\nYou must be an "administrator" to uninstall Imprudence.' 32LangString CheckAdministratorUnInstMB ${LANG_ENGLISH} 'You appear to be using a "limited" account.$\nYou must be an "administrator" to uninstall Imprudence.'
33 33
34; checkifalreadycurrent 34; checkifalreadycurrent
35LangString CheckIfCurrentMB ${LANG_ENGLISH} "It appears that Imprudence ${VERSION_LONG} is already installed.$\n$\nWould you like to install it again?" 35LangString CheckIfCurrentMB ${LANG_ENGLISH} "It appears that Imprudence ${VERSION_LONG} is already installed.$\n$\nWould you like to install it again?"
36 36
37; closeimprudence function (install) 37; closeimprudence function (install)
38LangString CloseSecondLifeInstDP ${LANG_ENGLISH} "Waiting for Imprudence to shut down..." 38LangString CloseSecondLifeInstDP ${LANG_ENGLISH} "Waiting for Imprudence to shut down..."
39LangString CloseSecondLifeInstMB ${LANG_ENGLISH} "Imprudence can't be installed while it is already running.$\n$\nFinish what you're doing then select OK to close Imprudence and continue.$\nSelect CANCEL to cancel installation." 39LangString CloseSecondLifeInstMB ${LANG_ENGLISH} "Imprudence can't be installed while it is already running.$\n$\nFinish what you're doing then select OK to close Imprudence and continue.$\nSelect CANCEL to cancel installation."
40 40
41; closeimprudence function (uninstall) 41; closeimprudence function (uninstall)
42LangString CloseSecondLifeUnInstDP ${LANG_ENGLISH} "Waiting for Imprudence to shut down..." 42LangString CloseSecondLifeUnInstDP ${LANG_ENGLISH} "Waiting for Imprudence to shut down..."
43LangString CloseSecondLifeUnInstMB ${LANG_ENGLISH} "Imprudence can't be uninstalled while it is already running.$\n$\nFinish what you're doing then select OK to close Imprudence and continue.$\nSelect CANCEL to cancel." 43LangString CloseSecondLifeUnInstMB ${LANG_ENGLISH} "Imprudence can't be uninstalled while it is already running.$\n$\nFinish what you're doing then select OK to close Imprudence and continue.$\nSelect CANCEL to cancel."
44 44
45; removecachefiles 45; removecachefiles
46LangString RemoveCacheFilesDP ${LANG_ENGLISH} "Deleting cache files in Documents and Settings folder" 46LangString RemoveCacheFilesDP ${LANG_ENGLISH} "Deleting cache files in Documents and Settings folder"
47 47
48; delete program files 48; delete program files
49LangString DeleteProgramFilesMB ${LANG_ENGLISH} "There are still files in your Imprudence program directory.$\n$\nThese are possibly files you created or moved to:$\n$INSTDIR$\n$\nDo you want to remove them?" 49LangString DeleteProgramFilesMB ${LANG_ENGLISH} "There are still files in your Imprudence program directory.$\n$\nThese are possibly files you created or moved to:$\n$INSTDIR$\n$\nDo you want to remove them?"
50 50
51; uninstall text 51; uninstall text
52LangString UninstallTextMsg ${LANG_ENGLISH} "This will uninstall Imprudence ${VERSION_LONG} from your system." 52LangString UninstallTextMsg ${LANG_ENGLISH} "This will uninstall Imprudence ${VERSION_LONG} from your system."
diff --git a/linden/indra/newview/installers/windows/lang_es.nsi b/linden/indra/newview/installers/windows/lang_es.nsi
new file mode 100644
index 0000000..c6a7f38
--- /dev/null
+++ b/linden/indra/newview/installers/windows/lang_es.nsi
Binary files differ
diff --git a/linden/indra/newview/installers/windows/lang_fr.nsi b/linden/indra/newview/installers/windows/lang_fr.nsi
new file mode 100644
index 0000000..d23615d
--- /dev/null
+++ b/linden/indra/newview/installers/windows/lang_fr.nsi
Binary files differ
diff --git a/linden/indra/newview/installers/windows/lang_it.nsi b/linden/indra/newview/installers/windows/lang_it.nsi
new file mode 100644
index 0000000..1208ec4
--- /dev/null
+++ b/linden/indra/newview/installers/windows/lang_it.nsi
Binary files differ
diff --git a/linden/indra/newview/installers/windows/lang_ja.nsi b/linden/indra/newview/installers/windows/lang_ja.nsi
index f59957a..16bfd5c 100644
--- a/linden/indra/newview/installers/windows/lang_ja.nsi
+++ b/linden/indra/newview/installers/windows/lang_ja.nsi
@@ -1,57 +1,57 @@
1; First is default 1; First is default
2LoadLanguageFile "${NSISDIR}\Contrib\Language files\Japanese.nlf" 2LoadLanguageFile "${NSISDIR}\Contrib\Language files\Japanese.nlf"
3 3
4; subtitle on license text caption 4; subtitle on license text caption
5LangString LicenseSubTitleUpdate ${LANG_JAPANESE} " ƒAƒbƒvƒf[ƒg" 5LangString LicenseSubTitleUpdate ${LANG_JAPANESE} " ƒAƒbƒvƒf[ƒg"
6LangString LicenseSubTitleSetup ${LANG_JAPANESE} " ƒZƒbƒgƒAƒbƒv" 6LangString LicenseSubTitleSetup ${LANG_JAPANESE} " ƒZƒbƒgƒAƒbƒv"
7 7
8; description on license page 8; description on license page
9LangString LicenseDescUpdate ${LANG_JAPANESE} "‚±‚̃pƒbƒP[ƒW‚̓ZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒo[ƒWƒ‡ƒ“${VERSION_LONG}.‚ɃAƒbƒvƒf[ƒg‚µ‚Ü‚·B" 9LangString LicenseDescUpdate ${LANG_JAPANESE} "‚±‚̃pƒbƒP[ƒW‚̓ZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒo[ƒWƒ‡ƒ“${VERSION_LONG}.‚ɃAƒbƒvƒf[ƒg‚µ‚Ü‚·B"
10LangString LicenseDescSetup ${LANG_JAPANESE} "‚±‚̃pƒbƒP[ƒW‚Í‚ ‚È‚½‚̃Rƒ“ƒsƒ…[ƒ^‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B" 10LangString LicenseDescSetup ${LANG_JAPANESE} "‚±‚̃pƒbƒP[ƒW‚Í‚ ‚È‚½‚̃Rƒ“ƒsƒ…[ƒ^‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B"
11LangString LicenseDescNext ${LANG_JAPANESE} "ŽŸ" 11LangString LicenseDescNext ${LANG_JAPANESE} "ŽŸ"
12 12
13; installation directory text 13; installation directory text
14LangString DirectoryChooseTitle ${LANG_JAPANESE} "ƒCƒ“ƒXƒg[ƒ‹EƒfƒBƒŒƒNƒgƒŠ" 14LangString DirectoryChooseTitle ${LANG_JAPANESE} "ƒCƒ“ƒXƒg[ƒ‹EƒfƒBƒŒƒNƒgƒŠ"
15LangString DirectoryChooseUpdate ${LANG_JAPANESE} "ƒAƒbƒvƒf[ƒg‚·‚éƒZƒJƒ“ƒhƒ‰ƒCƒt‚̃fƒBƒŒƒNƒgƒŠ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B:" 15LangString DirectoryChooseUpdate ${LANG_JAPANESE} "ƒAƒbƒvƒf[ƒg‚·‚éƒZƒJƒ“ƒhƒ‰ƒCƒt‚̃fƒBƒŒƒNƒgƒŠ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B:"
16LangString DirectoryChooseSetup ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚éƒfƒBƒŒƒNƒgƒŠ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B: " 16LangString DirectoryChooseSetup ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚éƒfƒBƒŒƒNƒgƒŠ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B: "
17 17
18; CheckStartupParams message box 18; CheckStartupParams message box
19LangString CheckStartupParamsMB ${LANG_JAPANESE} "ƒvƒƒOƒ‰ƒ€–¼'$INSTPROG'‚ªŒ©‚‚©‚è‚Ü‚¹‚ñBƒTƒCƒŒƒ“ƒgEƒAƒbƒvƒf[ƒg‚ÉŽ¸”s‚µ‚Ü‚µ‚½B" 19LangString CheckStartupParamsMB ${LANG_JAPANESE} "ƒvƒƒOƒ‰ƒ€–¼'$INSTPROG'‚ªŒ©‚‚©‚è‚Ü‚¹‚ñBƒTƒCƒŒƒ“ƒgEƒAƒbƒvƒf[ƒg‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"
20 20
21; installation success dialog 21; installation success dialog
22LangString InstSuccesssQuestion ${LANG_JAPANESE} "’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðŠJŽn‚µ‚Ü‚·‚©H " 22LangString InstSuccesssQuestion ${LANG_JAPANESE} "’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðŠJŽn‚µ‚Ü‚·‚©H "
23 23
24; remove old NSIS version 24; remove old NSIS version
25LangString RemoveOldNSISVersion ${LANG_JAPANESE} "ŒÃ‚¢ƒo[ƒWƒ‡ƒ“î•ñ‚ðƒ`ƒFƒbƒN’†‚Å‚·c" 25LangString RemoveOldNSISVersion ${LANG_JAPANESE} "ŒÃ‚¢ƒo[ƒWƒ‡ƒ“î•ñ‚ðƒ`ƒFƒbƒN’†‚Å‚·c"
26 26
27; check windows version 27; check windows version
28LangString CheckWindowsVersionDP ${LANG_JAPANESE} "ƒEƒBƒ“ƒhƒEƒY‚̃o[ƒWƒ‡ƒ“î•ñ‚ðƒ`ƒFƒbƒN’†‚Å‚·..." 28LangString CheckWindowsVersionDP ${LANG_JAPANESE} "ƒEƒBƒ“ƒhƒEƒY‚̃o[ƒWƒ‡ƒ“î•ñ‚ðƒ`ƒFƒbƒN’†‚Å‚·..."
29LangString CheckWindowsVersionMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ÍWindows XPAWindows 2000AMac OS X‚Ì‚Ý‚ðƒTƒ|[ƒg‚µ‚Ä‚¢‚Ü‚·BWindows $R0‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚鎖‚ÍAƒf[ƒ^‚ÌÁŽ¸‚âƒNƒ‰ƒbƒVƒ…‚ÌŒ´ˆö‚É‚È‚é‰Â”\«‚ª‚ ‚è‚Ü‚·BƒCƒ“ƒXƒg[ƒ‹‚𑱂¯‚Ü‚·‚©H" 29LangString CheckWindowsVersionMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ÍWindows XPAWindows 2000AMac OS X‚Ì‚Ý‚ðƒTƒ|[ƒg‚µ‚Ä‚¢‚Ü‚·BWindows $R0‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚鎖‚ÍAƒf[ƒ^‚ÌÁŽ¸‚âƒNƒ‰ƒbƒVƒ…‚ÌŒ´ˆö‚É‚È‚é‰Â”\«‚ª‚ ‚è‚Ü‚·BƒCƒ“ƒXƒg[ƒ‹‚𑱂¯‚Ü‚·‚©H"
30 30
31; checkifadministrator function (install) 31; checkifadministrator function (install)
32LangString CheckAdministratorInstDP ${LANG_JAPANESE} "ƒCƒ“ƒXƒg[ƒ‹‚Ì‚½‚ß‚ÌŒ ŒÀ‚ðƒ`ƒFƒbƒN’†‚Å‚·..." 32LangString CheckAdministratorInstDP ${LANG_JAPANESE} "ƒCƒ“ƒXƒg[ƒ‹‚Ì‚½‚ß‚ÌŒ ŒÀ‚ðƒ`ƒFƒbƒN’†‚Å‚·..."
33LangString CheckAdministratorInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚é‚É‚ÍŠÇ—ŽÒŒ ŒÀ‚ª•K—v‚Å‚·B" 33LangString CheckAdministratorInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚é‚É‚ÍŠÇ—ŽÒŒ ŒÀ‚ª•K—v‚Å‚·B"
34 34
35; checkifadministrator function (uninstall) 35; checkifadministrator function (uninstall)
36LangString CheckAdministratorUnInstDP ${LANG_JAPANESE} "ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚Ì‚½‚ß‚ÌŒ ŒÀ‚ðƒ`ƒFƒbƒN’†‚Å‚·..." 36LangString CheckAdministratorUnInstDP ${LANG_JAPANESE} "ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚Ì‚½‚ß‚ÌŒ ŒÀ‚ðƒ`ƒFƒbƒN’†‚Å‚·..."
37LangString CheckAdministratorUnInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚·‚é‚É‚ÍŠÇ—ŽÒŒ ŒÀ‚ª•K—v‚Å‚·B" 37LangString CheckAdministratorUnInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚·‚é‚É‚ÍŠÇ—ŽÒŒ ŒÀ‚ª•K—v‚Å‚·B"
38 38
39; checkifalreadycurrent 39; checkifalreadycurrent
40LangString CheckIfCurrentMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt${VERSION_LONG} ‚̓Cƒ“ƒXƒg[ƒ‹Ï‚Ý‚Å‚·BÄ“xƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·‚©H " 40LangString CheckIfCurrentMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt${VERSION_LONG} ‚̓Cƒ“ƒXƒg[ƒ‹Ï‚Ý‚Å‚·BÄ“xƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·‚©H "
41 41
42; closeimprudence function (install) 42; closeimprudence function (install)
43LangString CloseSecondLifeInstDP ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹’†‚Å‚·..." 43LangString CloseSecondLifeInstDP ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹’†‚Å‚·..."
44LangString CloseSecondLifeInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚Ì‹N“®’†‚ɃCƒ“ƒXƒg[ƒ‹‚Ío—ˆ‚Ü‚¹‚ñB’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹‚µ‚ăCƒ“ƒXƒg[ƒ‹‚ðŠJŽn‚·‚éꇂÍOKƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢BCANCEL‚ð‰Ÿ‚·‚Æ’†Ž~‚µ‚Ü‚·B" 44LangString CloseSecondLifeInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚Ì‹N“®’†‚ɃCƒ“ƒXƒg[ƒ‹‚Ío—ˆ‚Ü‚¹‚ñB’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹‚µ‚ăCƒ“ƒXƒg[ƒ‹‚ðŠJŽn‚·‚éꇂÍOKƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢BCANCEL‚ð‰Ÿ‚·‚Æ’†Ž~‚µ‚Ü‚·B"
45 45
46; closeimprudence function (uninstall) 46; closeimprudence function (uninstall)
47LangString CloseSecondLifeUnInstDP ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹’†‚Å‚·..." 47LangString CloseSecondLifeUnInstDP ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹’†‚Å‚·..."
48LangString CloseSecondLifeUnInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚Ì‹N“®’†‚ɃAƒ“ƒCƒ“ƒXƒg[ƒ‹‚Ío—ˆ‚Ü‚¹‚ñB’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹‚µ‚ăAƒ“ƒCƒ“ƒXƒg[ƒ‹‚ðŠJŽn‚·‚éꇂÍOKƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢BCANCEL‚ð‰Ÿ‚·‚Æ’†Ž~‚µ‚Ü‚·B" 48LangString CloseSecondLifeUnInstMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚Ì‹N“®’†‚ɃAƒ“ƒCƒ“ƒXƒg[ƒ‹‚Ío—ˆ‚Ü‚¹‚ñB’¼‚¿‚ɃZƒJƒ“ƒhƒ‰ƒCƒt‚ðI—¹‚µ‚ăAƒ“ƒCƒ“ƒXƒg[ƒ‹‚ðŠJŽn‚·‚éꇂÍOKƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢BCANCEL‚ð‰Ÿ‚·‚Æ’†Ž~‚µ‚Ü‚·B"
49 49
50; removecachefiles 50; removecachefiles
51LangString RemoveCacheFilesDP ${LANG_JAPANESE} " Documents and Settings ƒtƒHƒ‹ƒ_‚̃LƒƒƒbƒVƒ…ƒtƒ@ƒCƒ‹‚ðƒfƒŠ[ƒg’†‚Å‚·B" 51LangString RemoveCacheFilesDP ${LANG_JAPANESE} " Documents and Settings ƒtƒHƒ‹ƒ_‚̃LƒƒƒbƒVƒ…ƒtƒ@ƒCƒ‹‚ðƒfƒŠ[ƒg’†‚Å‚·B"
52 52
53; delete program files 53; delete program files
54LangString DeleteProgramFilesMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚̃fƒBƒŒƒNƒgƒŠ‚É‚ÍA‚Ü‚¾ƒtƒ@ƒCƒ‹‚ªŽc‚³‚ê‚Ä‚¢‚Ü‚·B$\n$INSTDIR$\n‚É‚ ‚È‚½‚ªì¬A‚Ü‚½‚͈ړ®‚³‚¹‚½ƒtƒ@ƒCƒ‹‚ª‚ ‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B‘S‚Ä휂µ‚Ü‚·‚©H " 54LangString DeleteProgramFilesMB ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt‚̃fƒBƒŒƒNƒgƒŠ‚É‚ÍA‚Ü‚¾ƒtƒ@ƒCƒ‹‚ªŽc‚³‚ê‚Ä‚¢‚Ü‚·B$\n$INSTDIR$\n‚É‚ ‚È‚½‚ªì¬A‚Ü‚½‚͈ړ®‚³‚¹‚½ƒtƒ@ƒCƒ‹‚ª‚ ‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B‘S‚Ä휂µ‚Ü‚·‚©H "
55 55
56; uninstall text 56; uninstall text
57LangString UninstallTextMsg ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt${VERSION_LONG}‚ðƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B" 57LangString UninstallTextMsg ${LANG_JAPANESE} "ƒZƒJƒ“ƒhƒ‰ƒCƒt${VERSION_LONG}‚ðƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B"
diff --git a/linden/indra/newview/installers/windows/lang_ko.nsi b/linden/indra/newview/installers/windows/lang_ko.nsi
index 2530e4b..a50d998 100644
--- a/linden/indra/newview/installers/windows/lang_ko.nsi
+++ b/linden/indra/newview/installers/windows/lang_ko.nsi
@@ -1,57 +1,57 @@
1; First is default 1; First is default
2LoadLanguageFile "${NSISDIR}\Contrib\Language files\Korean.nlf" 2LoadLanguageFile "${NSISDIR}\Contrib\Language files\Korean.nlf"
3 3
4; subtitle on license text caption 4; subtitle on license text caption
5LangString LicenseSubTitleUpdate ${LANG_KOREAN} "¾÷µ¥ÀÌÆ®" 5LangString LicenseSubTitleUpdate ${LANG_KOREAN} "¾÷µ¥ÀÌÆ®"
6LangString LicenseSubTitleSetup ${LANG_KOREAN} " ¼³Ä¡Çϱâ" 6LangString LicenseSubTitleSetup ${LANG_KOREAN} " ¼³Ä¡Çϱâ"
7 7
8; description on license page 8; description on license page
9LangString LicenseDescUpdate ${LANG_KOREAN} "ÀÌ ÆÑÅ°Áö´Â ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¹öÀü${VERSION_LONG}.À¸·Î ¾÷µ¥ÀÌÆ® ÇÕ´Ï´Ù. " 9LangString LicenseDescUpdate ${LANG_KOREAN} "ÀÌ ÆÑÅ°Áö´Â ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¹öÀü${VERSION_LONG}.À¸·Î ¾÷µ¥ÀÌÆ® ÇÕ´Ï´Ù. "
10LangString LicenseDescSetup ${LANG_KOREAN} "ÀÌ ÆÑÅ°Áö´Â ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ÄÄÇ»ÅÍ¿¡ ¼³Ä¡ÇÕ´Ï´Ù." 10LangString LicenseDescSetup ${LANG_KOREAN} "ÀÌ ÆÑÅ°Áö´Â ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ÄÄÇ»ÅÍ¿¡ ¼³Ä¡ÇÕ´Ï´Ù."
11LangString LicenseDescNext ${LANG_KOREAN} "´ÙÀ½" 11LangString LicenseDescNext ${LANG_KOREAN} "´ÙÀ½"
12 12
13; installation directory text 13; installation directory text
14LangString DirectoryChooseTitle ${LANG_KOREAN} "¼³Ä¡ µð·ºÅ丮" 14LangString DirectoryChooseTitle ${LANG_KOREAN} "¼³Ä¡ µð·ºÅ丮"
15LangString DirectoryChooseUpdate ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¾÷µ¥ÀÌÆ®ÇÒ µð·ºÅ丮¸¦ ¼±ÅÃÇϼ¼¿ä. " 15LangString DirectoryChooseUpdate ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¾÷µ¥ÀÌÆ®ÇÒ µð·ºÅ丮¸¦ ¼±ÅÃÇϼ¼¿ä. "
16LangString DirectoryChooseSetup ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¼³Ä¡ÇÒ µð·ºÅ丮¸¦ ¼±ÅÃÇϼ¼¿ä:" 16LangString DirectoryChooseSetup ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¼³Ä¡ÇÒ µð·ºÅ丮¸¦ ¼±ÅÃÇϼ¼¿ä:"
17 17
18; CheckStartupParams message box 18; CheckStartupParams message box
19LangString CheckStartupParamsMB ${LANG_KOREAN} " ¡®$INSTPROG¡¯ ÇÁ·Î±×·¥À» ãÁö ¸øÇß½À´Ï´Ù. ÀÚµ¿ ¾÷µ¥ÀÌÆ®¿¡ ½ÇÆÐÇß½À´Ï´Ù." 19LangString CheckStartupParamsMB ${LANG_KOREAN} " ¡®$INSTPROG¡¯ ÇÁ·Î±×·¥À» ãÁö ¸øÇß½À´Ï´Ù. ÀÚµ¿ ¾÷µ¥ÀÌÆ®¿¡ ½ÇÆÐÇß½À´Ï´Ù."
20 20
21; installation success dialog 21; installation success dialog
22LangString InstSuccesssQuestion ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ½ÃÀÛÇÏ°Ú½À´Ï±î?" 22LangString InstSuccesssQuestion ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ ½ÃÀÛÇÏ°Ú½À´Ï±î?"
23 23
24; remove old NSIS version 24; remove old NSIS version
25LangString RemoveOldNSISVersion ${LANG_KOREAN} "ÀÌÀü ¹öÀüÀ» ã°í ÀÖ½À´Ï´Ù¡¦ " 25LangString RemoveOldNSISVersion ${LANG_KOREAN} "ÀÌÀü ¹öÀüÀ» ã°í ÀÖ½À´Ï´Ù¡¦ "
26 26
27; check windows version 27; check windows version
28LangString CheckWindowsVersionDP ${LANG_KOREAN} "À©µµ¿ì ¹öÀüÀ» È®ÀÎÇÏ°í ÀÖ½À´Ï´Ù." 28LangString CheckWindowsVersionDP ${LANG_KOREAN} "À©µµ¿ì ¹öÀüÀ» È®ÀÎÇÏ°í ÀÖ½À´Ï´Ù."
29LangString CheckWindowsVersionMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ´Â À©µµ¿ì XP, À©µµ¿ì 2000, ±×¸®°í ¸Æ OS X¸¦ Áö¿øÇÕ´Ï´Ù. À©µµ¿ì $R0¿¡ ¼³Ä¡¸¦ ½ÃµµÇÏ¸é ¿ÀÀÛµ¿°ú µ¥ÀÌÅÍ ºÐ½ÇÀÌ ÀϾ ¼ö ÀÖ½À´Ï´Ù. °è¼Ó ¼³Ä¡ÇÏ°Ú½À´Ï±î? " 29LangString CheckWindowsVersionMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ´Â À©µµ¿ì XP, À©µµ¿ì 2000, ±×¸®°í ¸Æ OS X¸¦ Áö¿øÇÕ´Ï´Ù. À©µµ¿ì $R0¿¡ ¼³Ä¡¸¦ ½ÃµµÇÏ¸é ¿ÀÀÛµ¿°ú µ¥ÀÌÅÍ ºÐ½ÇÀÌ ÀϾ ¼ö ÀÖ½À´Ï´Ù. °è¼Ó ¼³Ä¡ÇÏ°Ú½À´Ï±î? "
30 30
31; checkifadministrator function (install) 31; checkifadministrator function (install)
32LangString CheckAdministratorInstDP ${LANG_KOREAN} "¼³Ä¡ ±ÇÇÑÀ» È®ÀÎ ÁßÀÔ´Ï´Ù... " 32LangString CheckAdministratorInstDP ${LANG_KOREAN} "¼³Ä¡ ±ÇÇÑÀ» È®ÀÎ ÁßÀÔ´Ï´Ù... "
33LangString CheckAdministratorInstMB ${LANG_KOREAN} "ÇöÀç ¡®¼Õ´Ô¡¯°èÁ¤À» »ç¿ë ÁßÀÔ´Ï´Ù. ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¼³Ä¡Çϱâ À§Çؼ± ¡®¿î¿µÀÚ¡± °èÁ¤À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù." 33LangString CheckAdministratorInstMB ${LANG_KOREAN} "ÇöÀç ¡®¼Õ´Ô¡¯°èÁ¤À» »ç¿ë ÁßÀÔ´Ï´Ù. ¼¼ÄÁµå¶óÀÌÇÁ¸¦ ¼³Ä¡Çϱâ À§Çؼ± ¡®¿î¿µÀÚ¡± °èÁ¤À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù."
34 34
35; checkifadministrator function (uninstall) 35; checkifadministrator function (uninstall)
36LangString CheckAdministratorUnInstDP ${LANG_KOREAN} "Á¦°Å ±ÇÇÑÀ» È®ÀÎ ÁßÀÔ´Ï´Ù. " 36LangString CheckAdministratorUnInstDP ${LANG_KOREAN} "Á¦°Å ±ÇÇÑÀ» È®ÀÎ ÁßÀÔ´Ï´Ù. "
37LangString CheckAdministratorUnInstMB ${LANG_KOREAN} " ÇöÀç ¡®¼Õ´Ô¡¯°èÁ¤À» »ç¿ë ÁßÀÔ´Ï´Ù. ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¦°ÅÇϱâ À§Çؼ± ¡®¿î¿µÀÚ¡± °èÁ¤À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. " 37LangString CheckAdministratorUnInstMB ${LANG_KOREAN} " ÇöÀç ¡®¼Õ´Ô¡¯°èÁ¤À» »ç¿ë ÁßÀÔ´Ï´Ù. ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¦°ÅÇϱâ À§Çؼ± ¡®¿î¿µÀÚ¡± °èÁ¤À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. "
38 38
39; checkifalreadycurrent 39; checkifalreadycurrent
40LangString CheckIfCurrentMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ ¹öÀü ${VERSION_LONG}ÀÌ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ½À´Ï´Ù. ´Ù½Ã ¼³Ä¡ÇϽðڽÀ´Ï±î? " 40LangString CheckIfCurrentMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ ¹öÀü ${VERSION_LONG}ÀÌ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ½À´Ï´Ù. ´Ù½Ã ¼³Ä¡ÇϽðڽÀ´Ï±î? "
41 41
42; closeimprudence function (install) 42; closeimprudence function (install)
43LangString CloseSecondLifeInstDP ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÒ ¶§ ±îÁö ´ë±â Áß¡¦ " 43LangString CloseSecondLifeInstDP ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÒ ¶§ ±îÁö ´ë±â Áß¡¦ "
44LangString CloseSecondLifeInstMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ°¡ ÀÌ¹Ì ÀÛµ¿ ÁßÀÏ °æ¿ì ¼³Ä¡¸¦ °è¼Ó ÇÒ ¼ö ¾ø½À´Ï´Ù. ÇöÀç ÀÛ¾÷À» ¸ØÃß°í ¡®È®ÀΡ¯À» ´­·¯ ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÑ ´ÙÀ½ ÁøÇàÇϱ⠹ٶø´Ï´Ù. ¼³Ä¡¸¦ Ãë¼ÒÇÏ·Á¸é ¡®Ãë¼Ò¡¯¸¦ ´©¸£¼¼¿ä." 44LangString CloseSecondLifeInstMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ°¡ ÀÌ¹Ì ÀÛµ¿ ÁßÀÏ °æ¿ì ¼³Ä¡¸¦ °è¼Ó ÇÒ ¼ö ¾ø½À´Ï´Ù. ÇöÀç ÀÛ¾÷À» ¸ØÃß°í ¡®È®ÀΡ¯À» ´­·¯ ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÑ ´ÙÀ½ ÁøÇàÇϱ⠹ٶø´Ï´Ù. ¼³Ä¡¸¦ Ãë¼ÒÇÏ·Á¸é ¡®Ãë¼Ò¡¯¸¦ ´©¸£¼¼¿ä."
45 45
46; closeimprudence function (uninstall) 46; closeimprudence function (uninstall)
47LangString CloseSecondLifeUnInstDP ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÒ ¶§ ±îÁö ´ë±â Áß¡¦¡±" 47LangString CloseSecondLifeUnInstDP ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÒ ¶§ ±îÁö ´ë±â Áß¡¦¡±"
48LangString CloseSecondLifeUnInstMB ${LANG_KOREAN} " ¼¼ÄÁµå¶óÀÌÇÁ°¡ ÀÌ¹Ì ÀÛµ¿ ÁßÀÏ °æ¿ì Á¦°Å¸¦ °è¼Ó ÇÒ ¼ö ¾ø½À´Ï´Ù. ÇöÀç ÀÛ¾÷À» ¸ØÃß°í ¡®È®ÀΡ¯À» ´­·¯ ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÑ ´ÙÀ½ ÁøÇàÇϱ⠹ٶø´Ï´Ù. ¼³Ä¡¸¦ ÃëÇÏ·Á¸é ¡®Ãë¼Ò¡¯¸¦ ´©¸£¼¼¿ä. " 48LangString CloseSecondLifeUnInstMB ${LANG_KOREAN} " ¼¼ÄÁµå¶óÀÌÇÁ°¡ ÀÌ¹Ì ÀÛµ¿ ÁßÀÏ °æ¿ì Á¦°Å¸¦ °è¼Ó ÇÒ ¼ö ¾ø½À´Ï´Ù. ÇöÀç ÀÛ¾÷À» ¸ØÃß°í ¡®È®ÀΡ¯À» ´­·¯ ¼¼ÄÁµå¶óÀÌÇÁ¸¦ Á¾·áÇÑ ´ÙÀ½ ÁøÇàÇϱ⠹ٶø´Ï´Ù. ¼³Ä¡¸¦ ÃëÇÏ·Á¸é ¡®Ãë¼Ò¡¯¸¦ ´©¸£¼¼¿ä. "
49 49
50; removecachefiles 50; removecachefiles
51LangString RemoveCacheFilesDP ${LANG_KOREAN} " Documents and Settings Æú´õ ³»ÀÇ Ä³½Ã ÆÄÀϵéÀ» Áö¿ó´Ï´Ù." 51LangString RemoveCacheFilesDP ${LANG_KOREAN} " Documents and Settings Æú´õ ³»ÀÇ Ä³½Ã ÆÄÀϵéÀ» Áö¿ó´Ï´Ù."
52 52
53; delete program files 53; delete program files
54LangString DeleteProgramFilesMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ ÇÁ·Î±×·¥ µð·ºÅ丮¿¡ ¾ÆÁ÷ ÆÄÀϵéÀÌ ³²¾Æ ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀϵéÀº »ç¿ëÀÚ°¡ ¸¸µç °ÍµéÀ̰ųª$\n$INSTDIR$\n$\n·Î À̵¿ÇÑ ÆÄÀϵéÀÏ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀϵéÀ» Á¦°ÅÇÏ°Ú½À´Ï±î?" 54LangString DeleteProgramFilesMB ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ ÇÁ·Î±×·¥ µð·ºÅ丮¿¡ ¾ÆÁ÷ ÆÄÀϵéÀÌ ³²¾Æ ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀϵéÀº »ç¿ëÀÚ°¡ ¸¸µç °ÍµéÀ̰ųª$\n$INSTDIR$\n$\n·Î À̵¿ÇÑ ÆÄÀϵéÀÏ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀϵéÀ» Á¦°ÅÇÏ°Ú½À´Ï±î?"
55 55
56; uninstall text 56; uninstall text
57LangString UninstallTextMsg ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ${VERSION_LONG}À» ½Ã½ºÅÛ¿¡¼­ Á¦°ÅÇÕ´Ï´Ù." 57LangString UninstallTextMsg ${LANG_KOREAN} "¼¼ÄÁµå¶óÀÌÇÁ${VERSION_LONG}À» ½Ã½ºÅÛ¿¡¼­ Á¦°ÅÇÕ´Ï´Ù."
diff --git a/linden/indra/newview/installers/windows/lang_nl.nsi b/linden/indra/newview/installers/windows/lang_nl.nsi
new file mode 100644
index 0000000..c8ffa8b
--- /dev/null
+++ b/linden/indra/newview/installers/windows/lang_nl.nsi
Binary files differ
diff --git a/linden/indra/newview/installers/windows/lang_pt-br.nsi b/linden/indra/newview/installers/windows/lang_pt-br.nsi
new file mode 100644
index 0000000..da56a3c
--- /dev/null
+++ b/linden/indra/newview/installers/windows/lang_pt-br.nsi
Binary files differ
diff --git a/linden/indra/newview/installers/windows/lang_zh.nsi b/linden/indra/newview/installers/windows/lang_zh.nsi
new file mode 100644
index 0000000..d17e860
--- /dev/null
+++ b/linden/indra/newview/installers/windows/lang_zh.nsi
Binary files differ
diff --git a/linden/indra/newview/installers/windows/language_menu.nsi b/linden/indra/newview/installers/windows/language_menu.nsi
new file mode 100644
index 0000000..988f452
--- /dev/null
+++ b/linden/indra/newview/installers/windows/language_menu.nsi
Binary files differ
diff --git a/linden/indra/newview/linux_tools/client-readme.txt b/linden/indra/newview/linux_tools/client-readme.txt
index 179cb9e..a3ff6cb 100644
--- a/linden/indra/newview/linux_tools/client-readme.txt
+++ b/linden/indra/newview/linux_tools/client-readme.txt
@@ -15,7 +15,7 @@ Life itself - please see <http://www.secondlife.com/whatis/>.
15 5.3. Blank window after minimizing it 15 5.3. Blank window after minimizing it
16 5.4. Audio 16 5.4. Audio
17 5.5. 'Alt' key for camera controls doesn't work 17 5.5. 'Alt' key for camera controls doesn't work
18 5.6. In-world movie playback 18 5.6. In-world streaming movie/music playback
196. Advanced Troubleshooting 196. Advanced Troubleshooting
20 6.1. Audio 20 6.1. Audio
21 6.2. OpenGL 21 6.2. OpenGL
@@ -79,9 +79,9 @@ unpacked it into - no installation step is required.
79 79
80Run ./secondlife from the installation directory to start Second Life. 80Run ./secondlife from the installation directory to start Second Life.
81 81
82For in-world MOVIE PLAYBACK, you will need GStreamer 0.10 installed on your 82For in-world MOVIE and MUSIC PLAYBACK, you will need (32-bit) GStreamer 0.10
83system. This is optional - it is not required for general client 83installed on your system. This is optional - it is not required for general
84functionality. If you have GStreamer 0.10 installed, the selection of 84client functionality. If you have GStreamer 0.10 installed, the selection of
85in-world movies you can successfully play will depend on the GStreamer 85in-world movies you can successfully play will depend on the GStreamer
86plugins you have; if you cannot play a certain in-world movie then you are 86plugins you have; if you cannot play a certain in-world movie then you are
87probably missing the appropriate GStreamer plugin on your system - you may 87probably missing the appropriate GStreamer plugin on your system - you may
@@ -169,11 +169,11 @@ SOLUTION:- Some window managers eat the Alt key for their own purposes; you
169 example, the 'Windows' key!) which will allow the Alt key to function 169 example, the 'Windows' key!) which will allow the Alt key to function
170 properly with mouse actions in Second Life and other applications. 170 properly with mouse actions in Second Life and other applications.
171 171
172PROBLEM 6:- In-world movie playback doesn't work for me. 172PROBLEM 6:- In-world movie and/or music playback doesn't work for me.
173SOLUTION:- You need to have a working installation of GStreamer 0.10; this 173SOLUTION:- You need to have a working installation of GStreamer 0.10; this
174 is usually an optional package for most versions of Linux. If you have 174 is usually an optional package for most versions of Linux. If you have
175 installed GStreamer 0.10 and you can play some movies but not others then 175 installed GStreamer 0.10 and you can play some music/movies but not others
176 you need to install a wider selection of GStreamer plugins, either 176 then you need to install a wider selection of GStreamer plugins, either
177 from your vendor or an appropriate third party. 177 from your vendor or an appropriate third party.
178 178
179 179
@@ -183,11 +183,11 @@ SOLUTION:- You need to have a working installation of GStreamer 0.10; this
183The 'secondlife' script which launches Second Life contains some 183The 'secondlife' script which launches Second Life contains some
184configuration options for advanced troubleshooters. 184configuration options for advanced troubleshooters.
185 185
186* AUDIO - Edit the 'secondlife' script and you will see three audio 186* AUDIO - Edit the 'secondlife' script and you will see these audio
187 options: LL_BAD_ESD, LL_BAD_OSS, LL_BAD_ALSA. Second Life tries to 187 options: LL_BAD_OPENAL_DRIVER, LL_BAD_FMOD_ESD, LL_BAD_FMOD_OSS, and
188 use ESD, OSS, then ALSA audio drivers in this order; you may uncomment 188 LL_BAD_FMOD_ALSA. Second Life tries to use OpenAL, ESD, OSS, then ALSA
189 the corresponding LL_BAD_* option to skip an audio driver which you 189 audio drivers in this order; you may uncomment the corresponding LL_BAD_*
190 believe may be causing you trouble. 190 option to skip an audio driver which you believe may be causing you trouble.
191 191
192* OPENGL - For advanced troubleshooters, the LL_GL_BLACKLIST option lets 192* OPENGL - For advanced troubleshooters, the LL_GL_BLACKLIST option lets
193 you disable specific GL extensions, each of which is represented by a 193 you disable specific GL extensions, each of which is represented by a
diff --git a/linden/indra/newview/linux_tools/wrapper.sh b/linden/indra/newview/linux_tools/wrapper.sh
index 23053d3..2834947 100755
--- a/linden/indra/newview/linux_tools/wrapper.sh
+++ b/linden/indra/newview/linux_tools/wrapper.sh
@@ -4,14 +4,17 @@
4## These options are for self-assisted troubleshooting during this beta 4## These options are for self-assisted troubleshooting during this beta
5## testing phase; you should not usually need to touch them. 5## testing phase; you should not usually need to touch them.
6 6
7## - Avoids using the ESD audio driver. 7## - Avoids using any OpenAL audio driver.
8#export LL_BAD_ESD=x 8#export LL_BAD_OPENAL_DRIVER=x
9 9## - Avoids using any FMOD audio driver.
10## - Avoids using the OSS audio driver. 10#export LL_BAD_FMOD_DRIVER=x
11#export LL_BAD_OSS=x 11
12 12## - Avoids using the FMOD ESD audio driver.
13## - Avoids using the ALSA audio driver. 13#export LL_BAD_FMOD_ESD=x
14#export LL_BAD_ALSA=x 14## - Avoids using the FMOD OSS audio driver.
15#export LL_BAD_FMOD_OSS=x
16## - Avoids using the FMOD ALSA audio driver.
17#export LL_BAD_FMOD_ALSA=x
15 18
16## - Avoids the optional OpenGL extensions which have proven most problematic 19## - Avoids the optional OpenGL extensions which have proven most problematic
17## on some hardware. Disabling this option may cause BETTER PERFORMANCE but 20## on some hardware. Disabling this option may cause BETTER PERFORMANCE but
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp
index d268397..301f00b 100644
--- a/linden/indra/newview/llagent.cpp
+++ b/linden/indra/newview/llagent.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -80,6 +80,7 @@
80#include "llfloatertools.h" 80#include "llfloatertools.h"
81#include "llfloaterworldmap.h" 81#include "llfloaterworldmap.h"
82#include "llgroupmgr.h" 82#include "llgroupmgr.h"
83#include "llhomelocationresponder.h"
83#include "llhudeffectlookat.h" 84#include "llhudeffectlookat.h"
84#include "llhudmanager.h" 85#include "llhudmanager.h"
85#include "llinventorymodel.h" 86#include "llinventorymodel.h"
@@ -90,6 +91,7 @@
90#include "llmoveview.h" 91#include "llmoveview.h"
91#include "llnotify.h" 92#include "llnotify.h"
92#include "llquantize.h" 93#include "llquantize.h"
94#include "llsdutil.h"
93#include "llselectmgr.h" 95#include "llselectmgr.h"
94#include "llsky.h" 96#include "llsky.h"
95#include "llrendersphere.h" 97#include "llrendersphere.h"
@@ -445,7 +447,7 @@ void LLAgent::init()
445 mCameraFocusOffsetTarget = LLVector4(gSavedSettings.getVector3("CameraOffsetBuild")); 447 mCameraFocusOffsetTarget = LLVector4(gSavedSettings.getVector3("CameraOffsetBuild"));
446 mCameraOffsetDefault = gSavedSettings.getVector3("CameraOffsetDefault"); 448 mCameraOffsetDefault = gSavedSettings.getVector3("CameraOffsetDefault");
447// mCameraOffsetNorm = mCameraOffsetDefault; 449// mCameraOffsetNorm = mCameraOffsetDefault;
448// mCameraOffsetNorm.normVec(); 450// mCameraOffsetNorm.normalize();
449 mCameraCollidePlane.clearVec(); 451 mCameraCollidePlane.clearVec();
450 mCurrentCameraDistance = mCameraOffsetDefault.magVec(); 452 mCurrentCameraDistance = mCameraOffsetDefault.magVec();
451 mTargetCameraDistance = mCurrentCameraDistance; 453 mTargetCameraDistance = mCurrentCameraDistance;
@@ -490,7 +492,7 @@ LLAgent::~LLAgent()
490//----------------------------------------------------------------------------- 492//-----------------------------------------------------------------------------
491// resetView() 493// resetView()
492//----------------------------------------------------------------------------- 494//-----------------------------------------------------------------------------
493void LLAgent::resetView(BOOL reset_camera) 495void LLAgent::resetView(BOOL reset_camera, BOOL change_camera)
494{ 496{
495 if (mAutoPilot) 497 if (mAutoPilot)
496 { 498 {
@@ -515,6 +517,30 @@ void LLAgent::resetView(BOOL reset_camera)
515 gMenuHolder->hideMenus(); 517 gMenuHolder->hideMenus();
516 } 518 }
517 519
520 if (change_camera && !gSavedSettings.getBOOL("FreezeTime"))
521 {
522 changeCameraToDefault();
523
524 if (LLViewerJoystick::getInstance()->getOverrideCamera())
525 {
526 handle_toggle_flycam();
527 }
528
529 // reset avatar mode from eventual residual motion
530 if (LLToolMgr::getInstance()->inBuildMode())
531 {
532 LLViewerJoystick::getInstance()->moveAvatar(true);
533 }
534
535 gFloaterTools->close();
536
537 gViewerWindow->showCursor();
538
539 // Switch back to basic toolset
540 LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset);
541 }
542
543
518 if (reset_camera && !gSavedSettings.getBOOL("FreezeTime")) 544 if (reset_camera && !gSavedSettings.getBOOL("FreezeTime"))
519 { 545 {
520 if (!gViewerWindow->getLeftMouseDown() && cameraThirdPerson()) 546 if (!gViewerWindow->getLeftMouseDown() && cameraThirdPerson())
@@ -522,7 +548,7 @@ void LLAgent::resetView(BOOL reset_camera)
522 // leaving mouse-steer mode 548 // leaving mouse-steer mode
523 LLVector3 agent_at_axis = getAtAxis(); 549 LLVector3 agent_at_axis = getAtAxis();
524 agent_at_axis -= projected_vec(agent_at_axis, getReferenceUpVector()); 550 agent_at_axis -= projected_vec(agent_at_axis, getReferenceUpVector());
525 agent_at_axis.normVec(); 551 agent_at_axis.normalize();
526 gAgent.resetAxes(lerp(getAtAxis(), agent_at_axis, LLCriticalDamp::getInterpolant(0.3f))); 552 gAgent.resetAxes(lerp(getAtAxis(), agent_at_axis, LLCriticalDamp::getInterpolant(0.3f)));
527 } 553 }
528 554
@@ -1033,7 +1059,7 @@ void LLAgent::slamLookAt(const LLVector3 &look_at)
1033{ 1059{
1034 LLVector3 look_at_norm = look_at; 1060 LLVector3 look_at_norm = look_at;
1035 look_at_norm.mV[VZ] = 0.f; 1061 look_at_norm.mV[VZ] = 0.f;
1036 look_at_norm.normVec(); 1062 look_at_norm.normalize();
1037 resetAxes(look_at_norm); 1063 resetAxes(look_at_norm);
1038} 1064}
1039 1065
@@ -1294,7 +1320,7 @@ LLQuaternion LLAgent::getQuat() const
1294//----------------------------------------------------------------------------- 1320//-----------------------------------------------------------------------------
1295// calcFocusOffset() 1321// calcFocusOffset()
1296//----------------------------------------------------------------------------- 1322//-----------------------------------------------------------------------------
1297LLVector3 LLAgent::calcFocusOffset(LLViewerObject *object, S32 x, S32 y) 1323LLVector3 LLAgent::calcFocusOffset(LLViewerObject *object, LLVector3 pos_agent, S32 x, S32 y)
1298{ 1324{
1299 // calculate offset based on view direction 1325 // calculate offset based on view direction
1300 BOOL is_avatar = object->isAvatar(); 1326 BOOL is_avatar = object->isAvatar();
@@ -1305,7 +1331,7 @@ LLVector3 LLAgent::calcFocusOffset(LLViewerObject *object, S32 x, S32 y)
1305 1331
1306 LLVector3 obj_dir_abs = obj_pos - LLViewerCamera::getInstance()->getOrigin(); 1332 LLVector3 obj_dir_abs = obj_pos - LLViewerCamera::getInstance()->getOrigin();
1307 obj_dir_abs.rotVec(inv_obj_rot); 1333 obj_dir_abs.rotVec(inv_obj_rot);
1308 obj_dir_abs.normVec(); 1334 obj_dir_abs.normalize();
1309 obj_dir_abs.abs(); 1335 obj_dir_abs.abs();
1310 1336
1311 LLVector3 object_extents = object->getScale(); 1337 LLVector3 object_extents = object->getScale();
@@ -1330,7 +1356,7 @@ LLVector3 LLAgent::calcFocusOffset(LLViewerObject *object, S32 x, S32 y)
1330 { 1356 {
1331 normal.setVec(obj_matrix.getUpRow4()); 1357 normal.setVec(obj_matrix.getUpRow4());
1332 } 1358 }
1333 normal.normVec(); 1359 normal.normalize();
1334 1360
1335 LLVector3d focus_pt_global; 1361 LLVector3d focus_pt_global;
1336 // RN: should we check return value for valid pick? 1362 // RN: should we check return value for valid pick?
@@ -1397,7 +1423,7 @@ LLVector3 LLAgent::calcFocusOffset(LLViewerObject *object, S32 x, S32 y)
1397 if (!is_avatar) 1423 if (!is_avatar)
1398 { 1424 {
1399 //unproject relative clicked coordinate from window coordinate using GL 1425 //unproject relative clicked coordinate from window coordinate using GL
1400 GLint viewport[4]; 1426 /*GLint viewport[4];
1401 GLdouble modelview[16]; 1427 GLdouble modelview[16];
1402 GLdouble projection[16]; 1428 GLdouble projection[16];
1403 GLfloat winX, winY, winZ; 1429 GLfloat winX, winY, winZ;
@@ -1419,11 +1445,9 @@ LLVector3 LLAgent::calcFocusOffset(LLViewerObject *object, S32 x, S32 y)
1419 winY = ((F32)y) * gViewerWindow->getDisplayScale().mV[VY]; 1445 winY = ((F32)y) * gViewerWindow->getDisplayScale().mV[VY];
1420 glReadPixels( llfloor(winX), llfloor(winY), 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ ); 1446 glReadPixels( llfloor(winX), llfloor(winY), 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ );
1421 1447
1422 gluUnProject( winX, winY, winZ, modelview, projection, viewport, &posX, &posY, &posZ); 1448 gluUnProject( winX, winY, winZ, modelview, projection, viewport, &posX, &posY, &posZ);*/
1423 1449
1424 LLVector3 obj_rel((F32)posX, (F32)posY, (F32)posZ); 1450 LLVector3 obj_rel = pos_agent - object->getRenderPosition();
1425 obj_rel = obj_rel * object->getRenderMatrix();
1426 obj_rel -= object->getRenderPosition();
1427 1451
1428 LLVector3 obj_center = LLVector3(0, 0, 0) * object->getRenderMatrix(); 1452 LLVector3 obj_center = LLVector3(0, 0, 0) * object->getRenderMatrix();
1429 1453
@@ -1534,7 +1558,7 @@ BOOL LLAgent::calcCameraMinDistance(F32 &obj_min_distance)
1534 camera_offset_target_abs_norm.abs(); 1558 camera_offset_target_abs_norm.abs();
1535 // make sure offset is non-zero 1559 // make sure offset is non-zero
1536 camera_offset_target_abs_norm.clamp(0.001f, F32_MAX); 1560 camera_offset_target_abs_norm.clamp(0.001f, F32_MAX);
1537 camera_offset_target_abs_norm.normVec(); 1561 camera_offset_target_abs_norm.normalize();
1538 1562
1539 // find camera position relative to normalized object extents 1563 // find camera position relative to normalized object extents
1540 LLVector3 camera_offset_target_scaled = camera_offset_target_abs_norm; 1564 LLVector3 camera_offset_target_scaled = camera_offset_target_abs_norm;
@@ -1580,7 +1604,7 @@ BOOL LLAgent::calcCameraMinDistance(F32 &obj_min_distance)
1580 LLVector3 object_split_axis; 1604 LLVector3 object_split_axis;
1581 LLVector3 target_offset_scaled = target_offset_origin; 1605 LLVector3 target_offset_scaled = target_offset_origin;
1582 target_offset_scaled.abs(); 1606 target_offset_scaled.abs();
1583 target_offset_scaled.normVec(); 1607 target_offset_scaled.normalize();
1584 target_offset_scaled.mV[VX] /= object_extents.mV[VX]; 1608 target_offset_scaled.mV[VX] /= object_extents.mV[VX];
1585 target_offset_scaled.mV[VY] /= object_extents.mV[VY]; 1609 target_offset_scaled.mV[VY] /= object_extents.mV[VY];
1586 target_offset_scaled.mV[VZ] /= object_extents.mV[VZ]; 1610 target_offset_scaled.mV[VZ] /= object_extents.mV[VZ];
@@ -1703,7 +1727,7 @@ void LLAgent::setCameraZoomFraction(F32 fraction)
1703 else if (cameraCustomizeAvatar()) 1727 else if (cameraCustomizeAvatar())
1704 { 1728 {
1705 LLVector3d camera_offset_dir = mCameraFocusOffsetTarget; 1729 LLVector3d camera_offset_dir = mCameraFocusOffsetTarget;
1706 camera_offset_dir.normVec(); 1730 camera_offset_dir.normalize();
1707 mCameraFocusOffsetTarget = camera_offset_dir * rescale(fraction, 0.f, 1.f, APPEARANCE_MAX_ZOOM, APPEARANCE_MIN_ZOOM); 1731 mCameraFocusOffsetTarget = camera_offset_dir * rescale(fraction, 0.f, 1.f, APPEARANCE_MAX_ZOOM, APPEARANCE_MIN_ZOOM);
1708 } 1732 }
1709 else 1733 else
@@ -1730,7 +1754,7 @@ void LLAgent::setCameraZoomFraction(F32 fraction)
1730 } 1754 }
1731 1755
1732 LLVector3d camera_offset_dir = mCameraFocusOffsetTarget; 1756 LLVector3d camera_offset_dir = mCameraFocusOffsetTarget;
1733 camera_offset_dir.normVec(); 1757 camera_offset_dir.normalize();
1734 mCameraFocusOffsetTarget = camera_offset_dir * rescale(fraction, 0.f, 1.f, max_zoom, min_zoom); 1758 mCameraFocusOffsetTarget = camera_offset_dir * rescale(fraction, 0.f, 1.f, max_zoom, min_zoom);
1735 } 1759 }
1736 startCameraAnimation(); 1760 startCameraAnimation();
@@ -1777,7 +1801,7 @@ void LLAgent::cameraOrbitOver(const F32 angle)
1777 else 1801 else
1778 { 1802 {
1779 LLVector3 camera_offset_unit(mCameraFocusOffsetTarget); 1803 LLVector3 camera_offset_unit(mCameraFocusOffsetTarget);
1780 camera_offset_unit.normVec(); 1804 camera_offset_unit.normalize();
1781 1805
1782 F32 angle_from_up = acos( camera_offset_unit * getReferenceUpVector() ); 1806 F32 angle_from_up = acos( camera_offset_unit * getReferenceUpVector() );
1783 1807
@@ -1812,7 +1836,7 @@ void LLAgent::cameraZoomIn(const F32 fraction)
1812 LLVector3d camera_offset(mCameraFocusOffsetTarget); 1836 LLVector3d camera_offset(mCameraFocusOffsetTarget);
1813 LLVector3d camera_offset_unit(mCameraFocusOffsetTarget); 1837 LLVector3d camera_offset_unit(mCameraFocusOffsetTarget);
1814 F32 min_zoom = LAND_MIN_ZOOM; 1838 F32 min_zoom = LAND_MIN_ZOOM;
1815 F32 current_distance = (F32)camera_offset_unit.normVec(); 1839 F32 current_distance = (F32)camera_offset_unit.normalize();
1816 F32 new_distance = current_distance * fraction; 1840 F32 new_distance = current_distance * fraction;
1817 1841
1818 // Don't move through focus point 1842 // Don't move through focus point
@@ -1881,7 +1905,7 @@ void LLAgent::cameraOrbitIn(const F32 meters)
1881 { 1905 {
1882 LLVector3d camera_offset(mCameraFocusOffsetTarget); 1906 LLVector3d camera_offset(mCameraFocusOffsetTarget);
1883 LLVector3d camera_offset_unit(mCameraFocusOffsetTarget); 1907 LLVector3d camera_offset_unit(mCameraFocusOffsetTarget);
1884 F32 current_distance = (F32)camera_offset_unit.normVec(); 1908 F32 current_distance = (F32)camera_offset_unit.normalize();
1885 F32 new_distance = current_distance - meters; 1909 F32 new_distance = current_distance - meters;
1886 F32 min_zoom = LAND_MIN_ZOOM; 1910 F32 min_zoom = LAND_MIN_ZOOM;
1887 1911
@@ -1938,6 +1962,8 @@ void LLAgent::cameraPanIn(F32 meters)
1938 mFocusGlobal = mFocusTargetGlobal; 1962 mFocusGlobal = mFocusTargetGlobal;
1939 // don't enforce zoom constraints as this is the only way for users to get past them easily 1963 // don't enforce zoom constraints as this is the only way for users to get past them easily
1940 updateFocusOffset(); 1964 updateFocusOffset();
1965 // NOTE: panning movements expect the camera to move exactly with the focus target, not animated behind -Nyx
1966 mCameraSmoothingLastPositionGlobal = calcCameraPositionTargetGlobal();
1941} 1967}
1942 1968
1943//----------------------------------------------------------------------------- 1969//-----------------------------------------------------------------------------
@@ -1956,6 +1982,8 @@ void LLAgent::cameraPanLeft(F32 meters)
1956 1982
1957 cameraZoomIn(1.f); 1983 cameraZoomIn(1.f);
1958 updateFocusOffset(); 1984 updateFocusOffset();
1985 // NOTE: panning movements expect the camera to move exactly with the focus target, not animated behind - Nyx
1986 mCameraSmoothingLastPositionGlobal = calcCameraPositionTargetGlobal();
1959} 1987}
1960 1988
1961//----------------------------------------------------------------------------- 1989//-----------------------------------------------------------------------------
@@ -1974,6 +2002,8 @@ void LLAgent::cameraPanUp(F32 meters)
1974 2002
1975 cameraZoomIn(1.f); 2003 cameraZoomIn(1.f);
1976 updateFocusOffset(); 2004 updateFocusOffset();
2005 // NOTE: panning movements expect the camera to move exactly with the focus target, not animated behind -Nyx
2006 mCameraSmoothingLastPositionGlobal = calcCameraPositionTargetGlobal();
1977} 2007}
1978 2008
1979//----------------------------------------------------------------------------- 2009//-----------------------------------------------------------------------------
@@ -2246,7 +2276,7 @@ void LLAgent::startAutoPilotGlobal(const LLVector3d &target_global, const std::s
2246 mAutoPilotUseRotation = TRUE; 2276 mAutoPilotUseRotation = TRUE;
2247 mAutoPilotTargetFacing = LLVector3::x_axis * *target_rotation; 2277 mAutoPilotTargetFacing = LLVector3::x_axis * *target_rotation;
2248 mAutoPilotTargetFacing.mV[VZ] = 0.f; 2278 mAutoPilotTargetFacing.mV[VZ] = 0.f;
2249 mAutoPilotTargetFacing.normVec(); 2279 mAutoPilotTargetFacing.normalize();
2250 } 2280 }
2251 else 2281 else
2252 { 2282 {
@@ -2369,8 +2399,8 @@ void LLAgent::autoPilot(F32 *delta_yaw)
2369 at.mV[VZ] = 0.f; 2399 at.mV[VZ] = 0.f;
2370 direction.mV[VZ] = 0.f; 2400 direction.mV[VZ] = 0.f;
2371 2401
2372 at.normVec(); 2402 at.normalize();
2373 F32 xy_distance = direction.normVec(); 2403 F32 xy_distance = direction.normalize();
2374 2404
2375 F32 yaw = 0.f; 2405 F32 yaw = 0.f;
2376 if (mAutoPilotTargetDist > mAutoPilotStopDistance) 2406 if (mAutoPilotTargetDist > mAutoPilotStopDistance)
@@ -3529,7 +3559,7 @@ void LLAgent::setupSitCamera()
3529 // slam agent coordinate frame to proper parent local version 3559 // slam agent coordinate frame to proper parent local version
3530 LLVector3 at_axis = mFrameAgent.getAtAxis(); 3560 LLVector3 at_axis = mFrameAgent.getAtAxis();
3531 at_axis.mV[VZ] = 0.f; 3561 at_axis.mV[VZ] = 0.f;
3532 at_axis.normVec(); 3562 at_axis.normalize();
3533 resetAxes(at_axis * ~parent_rot); 3563 resetAxes(at_axis * ~parent_rot);
3534 } 3564 }
3535} 3565}
@@ -3665,7 +3695,7 @@ LLVector3d LLAgent::calcCameraPositionTargetGlobal(BOOL *hit_limit)
3665 // slam agent coordinate frame to proper parent local version 3695 // slam agent coordinate frame to proper parent local version
3666 LLVector3 at_axis = mFrameAgent.getAtAxis() * parent_rot; 3696 LLVector3 at_axis = mFrameAgent.getAtAxis() * parent_rot;
3667 at_axis.mV[VZ] = 0.f; 3697 at_axis.mV[VZ] = 0.f;
3668 at_axis.normVec(); 3698 at_axis.normalize();
3669 resetAxes(at_axis * ~parent_rot); 3699 resetAxes(at_axis * ~parent_rot);
3670 3700
3671 local_camera_offset = local_camera_offset * mFrameAgent.getQuaternion() * parent_rot; 3701 local_camera_offset = local_camera_offset * mFrameAgent.getQuaternion() * parent_rot;
@@ -3686,7 +3716,7 @@ LLVector3d LLAgent::calcCameraPositionTargetGlobal(BOOL *hit_limit)
3686 offset_dot_norm = 0.001f; 3716 offset_dot_norm = 0.001f;
3687 } 3717 }
3688 3718
3689 camera_distance = local_camera_offset.normVec(); 3719 camera_distance = local_camera_offset.normalize();
3690 3720
3691 F32 pos_dot_norm = getPosAgentFromGlobal(frame_center_global + head_offset) * plane_normal; 3721 F32 pos_dot_norm = getPosAgentFromGlobal(frame_center_global + head_offset) * plane_normal;
3692 3722
@@ -3710,7 +3740,7 @@ LLVector3d LLAgent::calcCameraPositionTargetGlobal(BOOL *hit_limit)
3710 } 3740 }
3711 else 3741 else
3712 { 3742 {
3713 camera_distance = local_camera_offset.normVec(); 3743 camera_distance = local_camera_offset.normalize();
3714 } 3744 }
3715 3745
3716 mTargetCameraDistance = llmax(camera_distance, MIN_CAMERA_DISTANCE); 3746 mTargetCameraDistance = llmax(camera_distance, MIN_CAMERA_DISTANCE);
@@ -3745,7 +3775,7 @@ LLVector3d LLAgent::calcCameraPositionTargetGlobal(BOOL *hit_limit)
3745 { 3775 {
3746 LLVector3 frame_at_axis = mFrameAgent.getAtAxis(); 3776 LLVector3 frame_at_axis = mFrameAgent.getAtAxis();
3747 frame_at_axis -= projected_vec(frame_at_axis, getReferenceUpVector()); 3777 frame_at_axis -= projected_vec(frame_at_axis, getReferenceUpVector());
3748 frame_at_axis.normVec(); 3778 frame_at_axis.normalize();
3749 3779
3750 //transition smoothly in air mode, to avoid camera pop 3780 //transition smoothly in air mode, to avoid camera pop
3751 F32 u = (time_in_air - GROUND_TO_AIR_CAMERA_TRANSITION_START_TIME) / GROUND_TO_AIR_CAMERA_TRANSITION_TIME; 3781 F32 u = (time_in_air - GROUND_TO_AIR_CAMERA_TRANSITION_START_TIME) / GROUND_TO_AIR_CAMERA_TRANSITION_TIME;
@@ -3932,7 +3962,7 @@ void LLAgent::resetCamera()
3932 // Remove any pitch from the avatar 3962 // Remove any pitch from the avatar
3933 LLVector3 at = mFrameAgent.getAtAxis(); 3963 LLVector3 at = mFrameAgent.getAtAxis();
3934 at.mV[VZ] = 0.f; 3964 at.mV[VZ] = 0.f;
3935 at.normVec(); 3965 at.normalize();
3936 gAgent.resetAxes(at); 3966 gAgent.resetAxes(at);
3937 // have to explicitly clear field of view zoom now 3967 // have to explicitly clear field of view zoom now
3938 mCameraFOVZoomFactor = 0.f; 3968 mCameraFOVZoomFactor = 0.f;
@@ -4101,7 +4131,10 @@ void LLAgent::changeCameraToThirdPerson(BOOL animate)
4101 4131
4102 if (mAvatarObject) 4132 if (mAvatarObject)
4103 { 4133 {
4104 mAvatarObject->mPelvisp->setPosition(LLVector3::zero); 4134 if (!mAvatarObject->mIsSitting)
4135 {
4136 mAvatarObject->mPelvisp->setPosition(LLVector3::zero);
4137 }
4105 mAvatarObject->startMotion( ANIM_AGENT_BODY_NOISE ); 4138 mAvatarObject->startMotion( ANIM_AGENT_BODY_NOISE );
4106 mAvatarObject->startMotion( ANIM_AGENT_BREATHE_ROT ); 4139 mAvatarObject->startMotion( ANIM_AGENT_BREATHE_ROT );
4107 } 4140 }
@@ -4147,14 +4180,14 @@ void LLAgent::changeCameraToThirdPerson(BOOL animate)
4147 LLQuaternion obj_rot = ((LLViewerObject*)mAvatarObject->getParent())->getRenderRotation(); 4180 LLQuaternion obj_rot = ((LLViewerObject*)mAvatarObject->getParent())->getRenderRotation();
4148 at_axis = LLViewerCamera::getInstance()->getAtAxis(); 4181 at_axis = LLViewerCamera::getInstance()->getAtAxis();
4149 at_axis.mV[VZ] = 0.f; 4182 at_axis.mV[VZ] = 0.f;
4150 at_axis.normVec(); 4183 at_axis.normalize();
4151 resetAxes(at_axis * ~obj_rot); 4184 resetAxes(at_axis * ~obj_rot);
4152 } 4185 }
4153 else 4186 else
4154 { 4187 {
4155 at_axis = mFrameAgent.getAtAxis(); 4188 at_axis = mFrameAgent.getAtAxis();
4156 at_axis.mV[VZ] = 0.f; 4189 at_axis.mV[VZ] = 0.f;
4157 at_axis.normVec(); 4190 at_axis.normalize();
4158 resetAxes(at_axis); 4191 resetAxes(at_axis);
4159 } 4192 }
4160 4193
@@ -4201,7 +4234,7 @@ void LLAgent::changeCameraToCustomizeAvatar(BOOL avatar_animate, BOOL camera_ani
4201 // Remove any pitch from the avatar 4234 // Remove any pitch from the avatar
4202 //LLVector3 at = mFrameAgent.getAtAxis(); 4235 //LLVector3 at = mFrameAgent.getAtAxis();
4203 //at.mV[VZ] = 0.f; 4236 //at.mV[VZ] = 0.f;
4204 //at.normVec(); 4237 //at.normalize();
4205 //gAgent.resetAxes(at); 4238 //gAgent.resetAxes(at);
4206 4239
4207 if( mCameraMode != CAMERA_MODE_CUSTOMIZE_AVATAR ) 4240 if( mCameraMode != CAMERA_MODE_CUSTOMIZE_AVATAR )
@@ -4228,7 +4261,7 @@ void LLAgent::changeCameraToCustomizeAvatar(BOOL avatar_animate, BOOL camera_ani
4228 // Remove any pitch from the avatar 4261 // Remove any pitch from the avatar
4229 LLVector3 at = mFrameAgent.getAtAxis(); 4262 LLVector3 at = mFrameAgent.getAtAxis();
4230 at.mV[VZ] = 0.f; 4263 at.mV[VZ] = 0.f;
4231 at.normVec(); 4264 at.normalize();
4232 gAgent.resetAxes(at); 4265 gAgent.resetAxes(at);
4233 4266
4234 sendAnimationRequest(ANIM_AGENT_CUSTOMIZE, ANIM_REQUEST_START); 4267 sendAnimationRequest(ANIM_AGENT_CUSTOMIZE, ANIM_REQUEST_START);
@@ -4508,14 +4541,14 @@ void LLAgent::setFocusOnAvatar(BOOL focus_on_avatar, BOOL animate)
4508 LLQuaternion obj_rot = ((LLViewerObject*)mAvatarObject->getParent())->getRenderRotation(); 4541 LLQuaternion obj_rot = ((LLViewerObject*)mAvatarObject->getParent())->getRenderRotation();
4509 at_axis = LLViewerCamera::getInstance()->getAtAxis(); 4542 at_axis = LLViewerCamera::getInstance()->getAtAxis();
4510 at_axis.mV[VZ] = 0.f; 4543 at_axis.mV[VZ] = 0.f;
4511 at_axis.normVec(); 4544 at_axis.normalize();
4512 resetAxes(at_axis * ~obj_rot); 4545 resetAxes(at_axis * ~obj_rot);
4513 } 4546 }
4514 else 4547 else
4515 { 4548 {
4516 at_axis = LLViewerCamera::getInstance()->getAtAxis(); 4549 at_axis = LLViewerCamera::getInstance()->getAtAxis();
4517 at_axis.mV[VZ] = 0.f; 4550 at_axis.mV[VZ] = 0.f;
4518 at_axis.normVec(); 4551 at_axis.normalize();
4519 resetAxes(at_axis); 4552 resetAxes(at_axis);
4520 } 4553 }
4521 } 4554 }
@@ -4578,7 +4611,7 @@ void LLAgent::lookAtLastChat()
4578 { 4611 {
4579 delta_pos = chatter->getPositionAgent() - getPositionAgent(); 4612 delta_pos = chatter->getPositionAgent() - getPositionAgent();
4580 } 4613 }
4581 delta_pos.normVec(); 4614 delta_pos.normalize();
4582 4615
4583 setControlFlags(AGENT_CONTROL_STOP); 4616 setControlFlags(AGENT_CONTROL_STOP);
4584 4617
@@ -4586,9 +4619,9 @@ void LLAgent::lookAtLastChat()
4586 4619
4587 LLVector3 new_camera_pos = mAvatarObject->mHeadp->getWorldPosition(); 4620 LLVector3 new_camera_pos = mAvatarObject->mHeadp->getWorldPosition();
4588 LLVector3 left = delta_pos % LLVector3::z_axis; 4621 LLVector3 left = delta_pos % LLVector3::z_axis;
4589 left.normVec(); 4622 left.normalize();
4590 LLVector3 up = left % delta_pos; 4623 LLVector3 up = left % delta_pos;
4591 up.normVec(); 4624 up.normalize();
4592 new_camera_pos -= delta_pos * 0.4f; 4625 new_camera_pos -= delta_pos * 0.4f;
4593 new_camera_pos += left * 0.3f; 4626 new_camera_pos += left * 0.3f;
4594 new_camera_pos += up * 0.2f; 4627 new_camera_pos += up * 0.2f;
@@ -4607,7 +4640,7 @@ void LLAgent::lookAtLastChat()
4607 else 4640 else
4608 { 4641 {
4609 delta_pos = chatter->getRenderPosition() - getPositionAgent(); 4642 delta_pos = chatter->getRenderPosition() - getPositionAgent();
4610 delta_pos.normVec(); 4643 delta_pos.normalize();
4611 4644
4612 setControlFlags(AGENT_CONTROL_STOP); 4645 setControlFlags(AGENT_CONTROL_STOP);
4613 4646
@@ -4615,9 +4648,9 @@ void LLAgent::lookAtLastChat()
4615 4648
4616 LLVector3 new_camera_pos = mAvatarObject->mHeadp->getWorldPosition(); 4649 LLVector3 new_camera_pos = mAvatarObject->mHeadp->getWorldPosition();
4617 LLVector3 left = delta_pos % LLVector3::z_axis; 4650 LLVector3 left = delta_pos % LLVector3::z_axis;
4618 left.normVec(); 4651 left.normalize();
4619 LLVector3 up = left % delta_pos; 4652 LLVector3 up = left % delta_pos;
4620 up.normVec(); 4653 up.normalize();
4621 new_camera_pos -= delta_pos * 0.4f; 4654 new_camera_pos -= delta_pos * 0.4f;
4622 new_camera_pos += left * 0.3f; 4655 new_camera_pos += left * 0.3f;
4623 new_camera_pos += up * 0.2f; 4656 new_camera_pos += up * 0.2f;
@@ -4631,68 +4664,107 @@ void LLAgent::lookAtLastChat()
4631 4664
4632const F32 SIT_POINT_EXTENTS = 0.2f; 4665const F32 SIT_POINT_EXTENTS = 0.2f;
4633 4666
4634// Grabs current position 4667void LLAgent::setStartPosition( U32 location_id )
4635void LLAgent::setStartPosition(U32 location_id) 4668{
4636{ 4669 LLViewerObject *object;
4637 LLViewerObject *object; 4670
4638 4671 if ( !(gAgentID == LLUUID::null) )
4639 if ( !(gAgentID == LLUUID::null) ) 4672 {
4640 { 4673 // we've got an ID for an agent viewerobject
4641 // we've got an ID for an agent viewerobject 4674 object = gObjectList.findObject(gAgentID);
4642 object = gObjectList.findObject(gAgentID); 4675 if (object)
4643 if (object) 4676 {
4644 { 4677 // we've got the viewer object
4645 // we've got the viewer object 4678 // Sometimes the agent can be velocity interpolated off of
4646 // Sometimes the agent can be velocity interpolated off of 4679 // this simulator. Clamp it to the region the agent is
4647 // this simulator. Clamp it to the region the agent is 4680 // in, a little bit in on each side.
4648 // in, a little bit in on each side. 4681 const F32 INSET = 0.5f; //meters
4649 const F32 INSET = 0.5f; //meters 4682 const F32 REGION_WIDTH = LLWorld::getInstance()->getRegionWidthInMeters();
4650 const F32 REGION_WIDTH = LLWorld::getInstance()->getRegionWidthInMeters(); 4683
4651 4684 LLVector3 agent_pos = getPositionAgent();
4652 LLVector3 agent_pos = getPositionAgent(); 4685 LLVector3 agent_look_at = mFrameAgent.getAtAxis();
4653 4686
4654 if (mAvatarObject) 4687 if (mAvatarObject)
4655 { 4688 {
4656 // the z height is at the agent's feet 4689 // the z height is at the agent's feet
4657 agent_pos.mV[VZ] -= 0.5f * mAvatarObject->mBodySize.mV[VZ]; 4690 agent_pos.mV[VZ] -= 0.5f * mAvatarObject->mBodySize.mV[VZ];
4658 } 4691 }
4659 4692
4660 agent_pos.mV[VX] = llclamp( agent_pos.mV[VX], INSET, REGION_WIDTH - INSET ); 4693 agent_pos.mV[VX] = llclamp( agent_pos.mV[VX], INSET, REGION_WIDTH - INSET );
4661 agent_pos.mV[VY] = llclamp( agent_pos.mV[VY], INSET, REGION_WIDTH - INSET ); 4694 agent_pos.mV[VY] = llclamp( agent_pos.mV[VY], INSET, REGION_WIDTH - INSET );
4662 4695
4663 // Don't let them go below ground, or too high. 4696 // Don't let them go below ground, or too high.
4664 agent_pos.mV[VZ] = llclamp( agent_pos.mV[VZ], 4697 agent_pos.mV[VZ] = llclamp( agent_pos.mV[VZ],
4665 mRegionp->getLandHeightRegion( agent_pos ), 4698 mRegionp->getLandHeightRegion( agent_pos ),
4666 LLWorld::getInstance()->getRegionMaxHeight() ); 4699 LLWorld::getInstance()->getRegionMaxHeight() );
4667 4700 // Send the CapReq
4668 LLMessageSystem* msg = gMessageSystem; 4701
4669 msg->newMessageFast(_PREHASH_SetStartLocationRequest); 4702 LLSD body;
4670 msg->nextBlockFast( _PREHASH_AgentData); 4703
4671 msg->addUUIDFast(_PREHASH_AgentID, getID()); 4704 std::string url = gAgent.getRegion()->getCapability("HomeLocation");
4672 msg->addUUIDFast(_PREHASH_SessionID, getSessionID()); 4705 std::ostringstream strBuffer;
4673 msg->nextBlockFast( _PREHASH_StartLocationData); 4706 if( url.empty() )
4674 // corrected by sim 4707 {
4675 msg->addStringFast(_PREHASH_SimName, ""); 4708 LLMessageSystem* msg = gMessageSystem;
4676 msg->addU32Fast(_PREHASH_LocationID, location_id); 4709 msg->newMessageFast(_PREHASH_SetStartLocationRequest);
4677 msg->addVector3Fast(_PREHASH_LocationPos, agent_pos); 4710 msg->nextBlockFast( _PREHASH_AgentData);
4678 msg->addVector3Fast(_PREHASH_LocationLookAt,mFrameAgent.getAtAxis()); 4711 msg->addUUIDFast(_PREHASH_AgentID, getID());
4679 4712 msg->addUUIDFast(_PREHASH_SessionID, getSessionID());
4680 // Reliable only helps when setting home location. Last 4713 msg->nextBlockFast( _PREHASH_StartLocationData);
4681 // location is sent on quit, and we don't have time to ack 4714 // corrected by sim
4682 // the packets. 4715 msg->addStringFast(_PREHASH_SimName, "");
4683 msg->sendReliable(mRegionp->getHost()); 4716 msg->addU32Fast(_PREHASH_LocationID, location_id);
4684 4717 msg->addVector3Fast(_PREHASH_LocationPos, agent_pos);
4685 const U32 HOME_INDEX = 1; 4718 msg->addVector3Fast(_PREHASH_LocationLookAt,mFrameAgent.getAtAxis());
4686 if( HOME_INDEX == location_id ) 4719
4687 { 4720 // Reliable only helps when setting home location. Last
4688 setHomePosRegion( mRegionp->getHandle(), getPositionAgent() ); 4721 // location is sent on quit, and we don't have time to ack
4689 } 4722 // the packets.
4690 } 4723 msg->sendReliable(mRegionp->getHost());
4691 else 4724
4692 { 4725 const U32 HOME_INDEX = 1;
4693 llinfos << "setStartPosition - Can't find agent viewerobject id " << gAgentID << llendl; 4726 if( HOME_INDEX == location_id )
4694 } 4727 {
4695 } 4728 setHomePosRegion( mRegionp->getHandle(), getPositionAgent() );
4729 }
4730 }
4731 else
4732 {
4733 strBuffer << location_id;
4734 body["HomeLocation"]["LocationId"] = strBuffer.str();
4735
4736 strBuffer.str("");
4737 strBuffer << agent_pos.mV[VX];
4738 body["HomeLocation"]["LocationPos"]["X"] = strBuffer.str();
4739
4740 strBuffer.str("");
4741 strBuffer << agent_pos.mV[VY];
4742 body["HomeLocation"]["LocationPos"]["Y"] = strBuffer.str();
4743
4744 strBuffer.str("");
4745 strBuffer << agent_pos.mV[VZ];
4746 body["HomeLocation"]["LocationPos"]["Z"] = strBuffer.str();
4747
4748 strBuffer.str("");
4749 strBuffer << agent_look_at.mV[VX];
4750 body["HomeLocation"]["LocationLookAt"]["X"] = strBuffer.str();
4751
4752 strBuffer.str("");
4753 strBuffer << agent_look_at.mV[VY];
4754 body["HomeLocation"]["LocationLookAt"]["Y"] = strBuffer.str();
4755
4756 strBuffer.str("");
4757 strBuffer << agent_look_at.mV[VZ];
4758 body["HomeLocation"]["LocationLookAt"]["Z"] = strBuffer.str();
4759
4760 LLHTTPClient::post( url, body, new LLHomeLocationResponder() );
4761 }
4762 }
4763 else
4764 {
4765 llinfos << "setStartPosition - Can't find agent viewerobject id " << gAgentID << llendl;
4766 }
4767 }
4696} 4768}
4697 4769
4698void LLAgent::requestStopMotion( LLMotion* motion ) 4770void LLAgent::requestStopMotion( LLMotion* motion )
diff --git a/linden/indra/newview/llagent.h b/linden/indra/newview/llagent.h
index 97f9aed..3d3a94b 100644
--- a/linden/indra/newview/llagent.h
+++ b/linden/indra/newview/llagent.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -139,7 +139,7 @@ public:
139 139
140 // Called whenever the agent moves. Puts camera back in default position, 140 // Called whenever the agent moves. Puts camera back in default position,
141 // deselects items, etc. 141 // deselects items, etc.
142 void resetView(BOOL reset_camera = TRUE); 142 void resetView(BOOL reset_camera = TRUE, BOOL change_camera = FALSE);
143 143
144 // Called on camera movement, to allow the camera to be unlocked from the 144 // Called on camera movement, to allow the camera to be unlocked from the
145 // default position behind the avatar. 145 // default position behind the avatar.
@@ -378,7 +378,7 @@ public:
378 void sendAnimationRequests(LLDynamicArray<LLUUID> &anim_ids, EAnimRequest request); 378 void sendAnimationRequests(LLDynamicArray<LLUUID> &anim_ids, EAnimRequest request);
379 void sendAnimationRequest(const LLUUID &anim_id, EAnimRequest request); 379 void sendAnimationRequest(const LLUUID &anim_id, EAnimRequest request);
380 380
381 LLVector3 calcFocusOffset(LLViewerObject *object, S32 x, S32 y); 381 LLVector3 calcFocusOffset(LLViewerObject *object, LLVector3 pos_agent, S32 x, S32 y);
382 BOOL calcCameraMinDistance(F32 &obj_min_distance); 382 BOOL calcCameraMinDistance(F32 &obj_min_distance);
383 383
384 void startCameraAnimation(); 384 void startCameraAnimation();
diff --git a/linden/indra/newview/llagentdata.cpp b/linden/indra/newview/llagentdata.cpp
index 031663a..d47074d 100644
--- a/linden/indra/newview/llagentdata.cpp
+++ b/linden/indra/newview/llagentdata.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llagentdata.h b/linden/indra/newview/llagentdata.h
index 3736bf1..2f49940 100644
--- a/linden/indra/newview/llagentdata.h
+++ b/linden/indra/newview/llagentdata.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llagentlanguage.cpp b/linden/indra/newview/llagentlanguage.cpp
index 5656f76..7f4322a 100644
--- a/linden/indra/newview/llagentlanguage.cpp
+++ b/linden/indra/newview/llagentlanguage.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -31,13 +31,17 @@
31 31
32#include "llviewerprecompiledheaders.h" 32#include "llviewerprecompiledheaders.h"
33#include "llagentlanguage.h" 33#include "llagentlanguage.h"
34// viewer includes
34#include "llagent.h" 35#include "llagent.h"
35#include "llviewercontrol.h" 36#include "llviewercontrol.h"
36#include "llviewerregion.h" 37#include "llviewerregion.h"
38// library includes
39#include "llui.h" // getLanguage()
37 40
38LLAgentLanguage::LLAgentLanguage() 41LLAgentLanguage::LLAgentLanguage()
39{ 42{
40 gSavedSettings.getControl("Language")->getSignal()->connect(boost::bind(&update)); 43 gSavedSettings.getControl("Language")->getSignal()->connect(boost::bind(&update));
44 gSavedSettings.getControl("InstallLanguage")->getSignal()->connect(boost::bind(&update));
41 gSavedSettings.getControl("SystemLanguage")->getSignal()->connect(boost::bind(&update)); 45 gSavedSettings.getControl("SystemLanguage")->getSignal()->connect(boost::bind(&update));
42 gSavedSettings.getControl("LanguageIsPublic")->getSignal()->connect(boost::bind(&update)); 46 gSavedSettings.getControl("LanguageIsPublic")->getSignal()->connect(boost::bind(&update));
43} 47}
@@ -51,9 +55,7 @@ bool LLAgentLanguage::update()
51 std::string url = gAgent.getRegion()->getCapability("UpdateAgentLanguage"); 55 std::string url = gAgent.getRegion()->getCapability("UpdateAgentLanguage");
52 if (!url.empty()) 56 if (!url.empty())
53 { 57 {
54 std::string language = gSavedSettings.getString("Language"); 58 std::string language = LLUI::getLanguage();
55 if (language == "default")
56 language = gSavedSettings.getString("SystemLanguage");
57 59
58 body["language"] = language; 60 body["language"] = language;
59 body["language_is_public"] = gSavedSettings.getBOOL("LanguageIsPublic"); 61 body["language_is_public"] = gSavedSettings.getBOOL("LanguageIsPublic");
@@ -62,4 +64,3 @@ bool LLAgentLanguage::update()
62 } 64 }
63 return true; 65 return true;
64} 66}
65
diff --git a/linden/indra/newview/llagentlanguage.h b/linden/indra/newview/llagentlanguage.h
index d86a8f1..d2be5f9 100644
--- a/linden/indra/newview/llagentlanguage.h
+++ b/linden/indra/newview/llagentlanguage.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -32,7 +32,7 @@
32#ifndef LL_LLAGENTLANGUAGE_H 32#ifndef LL_LLAGENTLANGUAGE_H
33#define LL_LLAGENTLANGUAGE_H 33#define LL_LLAGENTLANGUAGE_H
34 34
35#include "llmemory.h" 35#include "llmemory.h" // LLSingleton<>
36#include "llevent.h" 36#include "llevent.h"
37 37
38class LLAgentLanguage: public LLSingleton<LLAgentLanguage>, public LLSimpleListener 38class LLAgentLanguage: public LLSingleton<LLAgentLanguage>, public LLSimpleListener
diff --git a/linden/indra/newview/llagentpilot.cpp b/linden/indra/newview/llagentpilot.cpp
index f2a1903..8286c4d 100644
--- a/linden/indra/newview/llagentpilot.cpp
+++ b/linden/indra/newview/llagentpilot.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llagentpilot.h b/linden/indra/newview/llagentpilot.h
index a1da4c2..983d473 100644
--- a/linden/indra/newview/llagentpilot.h
+++ b/linden/indra/newview/llagentpilot.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llanimstatelabels.cpp b/linden/indra/newview/llanimstatelabels.cpp
index 3e78c33..199f203 100644
--- a/linden/indra/newview/llanimstatelabels.cpp
+++ b/linden/indra/newview/llanimstatelabels.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llanimstatelabels.h b/linden/indra/newview/llanimstatelabels.h
index db1c1d8..c1fe7fd 100644
--- a/linden/indra/newview/llanimstatelabels.h
+++ b/linden/indra/newview/llanimstatelabels.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2001&license=viewergpl$ 6 * $LicenseInfo:firstyear=2001&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2001-2008, Linden Research, Inc. 8 * Copyright (c) 2001-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llappearance.h b/linden/indra/newview/llappearance.h
index ee8c22c..994cc33 100644
--- a/linden/indra/newview/llappearance.h
+++ b/linden/indra/newview/llappearance.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp
index b2bfccf..4ab5d8d 100644
--- a/linden/indra/newview/llappviewer.cpp
+++ b/linden/indra/newview/llappviewer.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -192,35 +192,22 @@
192 192
193//---------------------------------------------------------------------------- 193//----------------------------------------------------------------------------
194// viewer.cpp - these are only used in viewer, should be easily moved. 194// viewer.cpp - these are only used in viewer, should be easily moved.
195extern void disable_win_error_reporting();
196 195
197#if LL_DARWIN 196#if LL_DARWIN
198#include <Carbon/Carbon.h>
199extern void init_apple_menu(const char* product); 197extern void init_apple_menu(const char* product);
200extern OSErr AEGURLHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn);
201extern OSErr AEQuitHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn);
202extern OSStatus simpleDialogHandler(EventHandlerCallRef handler, EventRef event, void *userdata);
203#include <boost/tokenizer.hpp>
204#endif // LL_DARWIN 198#endif // LL_DARWIN
205 199
206
207extern BOOL gRandomizeFramerate; 200extern BOOL gRandomizeFramerate;
208extern BOOL gPeriodicSlowFrame; 201extern BOOL gPeriodicSlowFrame;
209extern BOOL gDebugGL; 202extern BOOL gDebugGL;
210 203
211//////////////////////////////////////////////////////////// 204////////////////////////////////////////////////////////////
212// All from the last globals push... 205// All from the last globals push...
213BOOL gHandleKeysAsync = FALSE;
214
215const F32 DEFAULT_AFK_TIMEOUT = 5.f * 60.f; // time with no input before user flagged as Away From Keyboard 206const F32 DEFAULT_AFK_TIMEOUT = 5.f * 60.f; // time with no input before user flagged as Away From Keyboard
216 207
217F32 gSimLastTime; // Used in LLAppViewer::init and send_stats() 208F32 gSimLastTime; // Used in LLAppViewer::init and send_stats()
218F32 gSimFrames; 209F32 gSimFrames;
219 210
220std::string gDisabledMessage; // Set in LLAppViewer::initConfiguration used in idle_startup
221
222BOOL gHideLinks = FALSE; // Set in LLAppViewer::initConfiguration, used externally
223
224BOOL gAllowIdleAFK = TRUE; 211BOOL gAllowIdleAFK = TRUE;
225BOOL gAllowTapTapHoldRun = TRUE; 212BOOL gAllowTapTapHoldRun = TRUE;
226BOOL gShowObjectUpdates = FALSE; 213BOOL gShowObjectUpdates = FALSE;
@@ -246,7 +233,7 @@ F32 gFPSClamped = 10.f; // Pretend we start at target rate.
246F32 gFrameDTClamped = 0.f; // Time between adjacent checks to network for packets 233F32 gFrameDTClamped = 0.f; // Time between adjacent checks to network for packets
247U64 gStartTime = 0; // gStartTime is "private", used only to calculate gFrameTimeSeconds 234U64 gStartTime = 0; // gStartTime is "private", used only to calculate gFrameTimeSeconds
248U32 gFrameStalls = 0; 235U32 gFrameStalls = 0;
249const F64 FRAME_STALL_THRESHOLD = 5.0; 236const F64 FRAME_STALL_THRESHOLD = 1.0;
250 237
251LLTimer gRenderStartTime; 238LLTimer gRenderStartTime;
252LLFrameTimer gForegroundTime; 239LLFrameTimer gForegroundTime;
@@ -316,6 +303,7 @@ std::string gLoginPage;
316std::vector<std::string> gLoginURIs; 303std::vector<std::string> gLoginURIs;
317static std::string gHelperURI; 304static std::string gHelperURI;
318 305
306LLAppViewer::LLUpdaterInfo *LLAppViewer::sUpdaterInfo = NULL ;
319 307
320void idle_afk_check() 308void idle_afk_check()
321{ 309{
@@ -331,8 +319,7 @@ static void ui_audio_callback(const LLUUID& uuid)
331{ 319{
332 if (gAudiop) 320 if (gAudiop)
333 { 321 {
334 F32 volume = gSavedSettings.getBOOL("MuteUI") ? 0.f : gSavedSettings.getF32("AudioLevelUI"); 322 gAudiop->triggerSound(uuid, gAgent.getID(), 1.0f, LLAudioEngine::AUDIO_TYPE_UI);
335 gAudiop->triggerSound(uuid, gAgent.getID(), volume);
336 } 323 }
337} 324}
338 325
@@ -419,7 +406,6 @@ static void settings_to_globals()
419 gShowObjectUpdates = gSavedSettings.getBOOL("ShowObjectUpdates"); 406 gShowObjectUpdates = gSavedSettings.getBOOL("ShowObjectUpdates");
420 gMapScale = gSavedSettings.getF32("MapScale"); 407 gMapScale = gSavedSettings.getF32("MapScale");
421 gMiniMapScale = gSavedSettings.getF32("MiniMapScale"); 408 gMiniMapScale = gSavedSettings.getF32("MiniMapScale");
422 gHandleKeysAsync = gSavedSettings.getBOOL("AsyncKeyboard");
423 LLHoverView::sShowHoverTips = gSavedSettings.getBOOL("ShowHoverTips"); 409 LLHoverView::sShowHoverTips = gSavedSettings.getBOOL("ShowHoverTips");
424 410
425 LLCubeMap::sUseCubeMaps = LLFeatureManager::getInstance()->isFeatureAvailable("RenderCubeMap"); 411 LLCubeMap::sUseCubeMaps = LLFeatureManager::getInstance()->isFeatureAvailable("RenderCubeMap");
@@ -498,30 +484,17 @@ void LLAppViewer::initGridChoice()
498 } 484 }
499} 485}
500 486
501bool send_url_to_other_instance(const std::string& url) 487//virtual
488bool LLAppViewer::initSLURLHandler()
502{ 489{
503#if LL_WINDOWS 490 // does nothing unless subclassed
504 wchar_t window_class[256]; /* Flawfinder: ignore */ // Assume max length < 255 chars. 491 return false;
505 mbstowcs(window_class, sWindowClass, 255); 492}
506 window_class[255] = 0; 493
507 // Use the class instead of the window name. 494//virtual
508 HWND other_window = FindWindow(window_class, NULL); 495bool LLAppViewer::sendURLToOtherInstance(const std::string& url)
509 496{
510 if (other_window != NULL) 497 // does nothing unless subclassed
511 {
512 lldebugs << "Found other window with the name '" << gWindowTitle << "'" << llendl;
513 COPYDATASTRUCT cds;
514 const S32 SLURL_MESSAGE_TYPE = 0;
515 cds.dwData = SLURL_MESSAGE_TYPE;
516 cds.cbData = url.length() + 1;
517 cds.lpData = (void*)url.c_str();
518
519 LRESULT msg_result = SendMessage(other_window, WM_COPYDATA, NULL, (LPARAM)&cds);
520 lldebugs << "SendMessage(WM_COPYDATA) to other window '"
521 << gWindowTitle << "' returned " << msg_result << llendl;
522 return true;
523 }
524#endif
525 return false; 498 return false;
526} 499}
527 500
@@ -690,6 +663,7 @@ bool LLAppViewer::init()
690 ui_audio_callback, 663 ui_audio_callback,
691 &LLUI::sGLScaleFactor); 664 &LLUI::sGLScaleFactor);
692 LLWeb::initClass(); // do this after LLUI 665 LLWeb::initClass(); // do this after LLUI
666
693 LLTextEditor::setURLCallbacks(&LLWeb::loadURL, 667 LLTextEditor::setURLCallbacks(&LLWeb::loadURL,
694 &LLURLDispatcher::dispatchFromTextEditor, 668 &LLURLDispatcher::dispatchFromTextEditor,
695 &LLURLDispatcher::dispatchFromTextEditor); 669 &LLURLDispatcher::dispatchFromTextEditor);
@@ -710,7 +684,6 @@ bool LLAppViewer::init()
710 // load MIME type -> media impl mappings 684 // load MIME type -> media impl mappings
711 LLMIMETypes::parseMIMETypes( std::string("mime_types.xml") ); 685 LLMIMETypes::parseMIMETypes( std::string("mime_types.xml") );
712 686
713
714 // Copy settings to globals. *TODO: Remove or move to appropriage class initializers 687 // Copy settings to globals. *TODO: Remove or move to appropriage class initializers
715 settings_to_globals(); 688 settings_to_globals();
716 // Setup settings listeners 689 // Setup settings listeners
@@ -721,6 +694,9 @@ bool LLAppViewer::init()
721 // Find partition serial number (Windows) or hardware serial (Mac) 694 // Find partition serial number (Windows) or hardware serial (Mac)
722 mSerialNumber = generateSerialNumber(); 695 mSerialNumber = generateSerialNumber();
723 696
697 // do any necessary set-up for accepting incoming SLURLs from apps
698 initSLURLHandler();
699
724 if(false == initHardwareTest()) 700 if(false == initHardwareTest())
725 { 701 {
726 // Early out from user choice. 702 // Early out from user choice.
@@ -851,7 +827,10 @@ bool LLAppViewer::init()
851 } 827 }
852 828
853 } 829 }
854 830
831 // save the graphics card
832 gDebugInfo["GraphicsCard"] = LLFeatureManager::getInstance()->getGPUString();
833
855 // Save the current version to the prefs file 834 // Save the current version to the prefs file
856 gSavedSettings.setString("LastRunVersion", gCurrentVersion); 835 gSavedSettings.setString("LastRunVersion", gCurrentVersion);
857 836
@@ -896,16 +875,21 @@ bool LLAppViewer::mainLoop()
896 { 875 {
897 LLFastTimer t(LLFastTimer::FTM_FRAME); 876 LLFastTimer t(LLFastTimer::FTM_FRAME);
898 877
878 pingMainloopTimeout("Main:MiscNativeWindowEvents");
879
880 {
881 LLFastTimer t2(LLFastTimer::FTM_MESSAGES);
882 gViewerWindow->mWindow->processMiscNativeEvents();
883 }
884
899 pingMainloopTimeout("Main:GatherInput"); 885 pingMainloopTimeout("Main:GatherInput");
900 886
901 { 887 {
902 LLFastTimer t2(LLFastTimer::FTM_MESSAGES); 888 LLFastTimer t2(LLFastTimer::FTM_MESSAGES);
903 #if LL_WINDOWS 889 if (!restoreErrorTrap())
904 if (!LLWinDebug::checkExceptionHandler())
905 { 890 {
906 llwarns << " Someone took over my exception handler (post messagehandling)!" << llendl; 891 llwarns << " Someone took over my signal/exception handler (post messagehandling)!" << llendl;
907 } 892 }
908 #endif
909 893
910 gViewerWindow->mWindow->gatherInput(); 894 gViewerWindow->mWindow->gatherInput();
911 } 895 }
@@ -961,7 +945,7 @@ bool LLAppViewer::mainLoop()
961 945
962 resumeMainloopTimeout(); 946 resumeMainloopTimeout();
963 } 947 }
964 948
965 if (gDoDisconnect && (LLStartUp::getStartupState() == STATE_STARTED)) 949 if (gDoDisconnect && (LLStartUp::getStartupState() == STATE_STARTED))
966 { 950 {
967 pauseMainloopTimeout(); 951 pauseMainloopTimeout();
@@ -1183,17 +1167,24 @@ bool LLAppViewer::cleanup()
1183 1167
1184 llinfos << "Global stuff deleted" << llendflush; 1168 llinfos << "Global stuff deleted" << llendflush;
1185 1169
1186#if (!defined(LL_FMOD)) || (!LL_RELEASE_FOR_DOWNLOAD)
1187 // OpenAL likes to crash on exit if we *don't* explicitly shut it down.
1188 if (gAudiop) 1170 if (gAudiop)
1189 { 1171 {
1190 gAudiop->shutdown(); 1172 bool want_longname = false;
1173 if (gAudiop->getDriverName(want_longname) == "FMOD")
1174 {
1175 // This hack exists because fmod likes to occasionally
1176 // hang forever when shutting down, for no apparent
1177 // reason.
1178 llwarns << "Hack, skipping FMOD audio engine cleanup" << llendflush;
1179 }
1180 else
1181 {
1182 gAudiop->shutdown();
1183 }
1184
1185 delete gAudiop;
1186 gAudiop = NULL;
1191 } 1187 }
1192#else
1193 // This hack exists because fmod likes to occasionally hang forever
1194 // when shutting down for no apparent reason.
1195 llwarns << "Hack, skipping audio engine cleanup" << llendflush;
1196#endif
1197 1188
1198 // Note: this is where LLFeatureManager::getInstance()-> used to be deleted. 1189 // Note: this is where LLFeatureManager::getInstance()-> used to be deleted.
1199 1190
@@ -1204,9 +1195,6 @@ bool LLAppViewer::cleanup()
1204 cleanupSavedSettings(); 1195 cleanupSavedSettings();
1205 llinfos << "Settings patched up" << llendflush; 1196 llinfos << "Settings patched up" << llendflush;
1206 1197
1207 delete gAudiop;
1208 gAudiop = NULL;
1209
1210 // delete some of the files left around in the cache. 1198 // delete some of the files left around in the cache.
1211 removeCacheFiles("*.wav"); 1199 removeCacheFiles("*.wav");
1212 removeCacheFiles("*.tmp"); 1200 removeCacheFiles("*.tmp");
@@ -1375,12 +1363,15 @@ bool LLAppViewer::cleanup()
1375 delete sImageDecodeThread; 1363 delete sImageDecodeThread;
1376 sImageDecodeThread = NULL; 1364 sImageDecodeThread = NULL;
1377 1365
1366 //Note:
1367 //LLViewerMedia::cleanupClass() has to be put before gImageList.shutdown()
1368 //because some new image might be generated during cleaning up media. --bao
1369 LLViewerMedia::cleanupClass();
1378 gImageList.shutdown(); // shutdown again in case a callback added something 1370 gImageList.shutdown(); // shutdown again in case a callback added something
1379 LLUIImageList::getInstance()->cleanUp(); 1371 LLUIImageList::getInstance()->cleanUp();
1380 1372
1381 // This should eventually be done in LLAppViewer 1373 // This should eventually be done in LLAppViewer
1382 LLImageJ2C::closeDSO(); 1374 LLImage::cleanupClass();
1383 LLImageFormatted::cleanupClass();
1384 LLVFSThread::cleanupClass(); 1375 LLVFSThread::cleanupClass();
1385 LLLFSThread::cleanupClass(); 1376 LLLFSThread::cleanupClass();
1386 1377
@@ -1401,14 +1392,17 @@ bool LLAppViewer::cleanup()
1401 LLWatchdog::getInstance()->cleanup(); 1392 LLWatchdog::getInstance()->cleanup();
1402 1393
1403 end_messaging_system(); 1394 end_messaging_system();
1395 llinfos << "Message system deleted." << llendflush;
1404 1396
1405 // *NOTE:Mani - The following call is not thread safe. 1397 // *NOTE:Mani - The following call is not thread safe.
1406 LLCurl::cleanupClass(); 1398 LLCurl::cleanupClass();
1399 llinfos << "LLCurl cleaned up." << llendflush;
1407 1400
1408 // If we're exiting to launch an URL, do that here so the screen 1401 // If we're exiting to launch an URL, do that here so the screen
1409 // is at the right resolution before we launch IE. 1402 // is at the right resolution before we launch IE.
1410 if (!gLaunchFileOnQuit.empty()) 1403 if (!gLaunchFileOnQuit.empty())
1411 { 1404 {
1405 llinfos << "Launch file on quit." << llendflush;
1412#if LL_WINDOWS 1406#if LL_WINDOWS
1413 // Indicate an application is starting. 1407 // Indicate an application is starting.
1414 SetCursor(LoadCursor(NULL, IDC_WAIT)); 1408 SetCursor(LoadCursor(NULL, IDC_WAIT));
@@ -1418,9 +1412,8 @@ bool LLAppViewer::cleanup()
1418 ms_sleep(1000); 1412 ms_sleep(1000);
1419 1413
1420 LLWeb::loadURLExternal( gLaunchFileOnQuit ); 1414 LLWeb::loadURLExternal( gLaunchFileOnQuit );
1415 llinfos << "File launched." << llendflush;
1421 } 1416 }
1422
1423 LLViewerMedia::cleanupClass();
1424 1417
1425 llinfos << "Goodbye" << llendflush; 1418 llinfos << "Goodbye" << llendflush;
1426 1419
@@ -1428,6 +1421,25 @@ bool LLAppViewer::cleanup()
1428 return true; 1421 return true;
1429} 1422}
1430 1423
1424// A callback for llerrs to call during the watchdog error.
1425void watchdog_llerrs_callback(const std::string &error_string)
1426{
1427 gLLErrorActivated = true;
1428
1429#ifdef LL_WINDOWS
1430 RaiseException(0,0,0,0);
1431#else
1432 raise(SIGQUIT);
1433#endif
1434}
1435
1436// A callback for the watchdog to call.
1437void watchdog_killer_callback()
1438{
1439 LLError::setFatalFunction(watchdog_llerrs_callback);
1440 llerrs << "Watchdog killer event" << llendl;
1441}
1442
1431bool LLAppViewer::initThreads() 1443bool LLAppViewer::initThreads()
1432{ 1444{
1433#if MEM_TRACK_MEM 1445#if MEM_TRACK_MEM
@@ -1437,10 +1449,11 @@ bool LLAppViewer::initThreads()
1437#endif 1449#endif
1438 1450
1439 const S32 NEVER_SUBMIT_REPORT = 2; 1451 const S32 NEVER_SUBMIT_REPORT = 2;
1440 if(TRUE == gSavedSettings.getBOOL("WatchdogEnabled") 1452 bool use_watchdog = gSavedSettings.getBOOL("WatchdogEnabled");
1441 && (gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING) != NEVER_SUBMIT_REPORT)) 1453 bool send_reports = gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING) != NEVER_SUBMIT_REPORT;
1454 if(use_watchdog && send_reports)
1442 { 1455 {
1443 LLWatchdog::getInstance()->init(); 1456 LLWatchdog::getInstance()->init(watchdog_killer_callback);
1444 } 1457 }
1445 1458
1446 LLVFSThread::initClass(enable_threads && true); 1459 LLVFSThread::initClass(enable_threads && true);
@@ -1450,8 +1463,7 @@ bool LLAppViewer::initThreads()
1450 LLAppViewer::sImageDecodeThread = new LLWorkerThread("ImageDecode", enable_threads && true); 1463 LLAppViewer::sImageDecodeThread = new LLWorkerThread("ImageDecode", enable_threads && true);
1451 LLAppViewer::sTextureCache = new LLTextureCache(enable_threads && true); 1464 LLAppViewer::sTextureCache = new LLTextureCache(enable_threads && true);
1452 LLAppViewer::sTextureFetch = new LLTextureFetch(LLAppViewer::getTextureCache(), enable_threads && false); 1465 LLAppViewer::sTextureFetch = new LLTextureFetch(LLAppViewer::getTextureCache(), enable_threads && false);
1453 LLImageWorker::initClass(LLAppViewer::getImageDecodeThread()); 1466 LLImage::initClass(LLAppViewer::getImageDecodeThread());
1454 LLImageJ2C::openDSO();
1455 1467
1456 // *FIX: no error handling here! 1468 // *FIX: no error handling here!
1457 return true; 1469 return true;
@@ -1883,22 +1895,6 @@ bool LLAppViewer::initConfiguration()
1883 // llerrs << "Failed to parse skin definition." << llendl; 1895 // llerrs << "Failed to parse skin definition." << llendl;
1884 // } 1896 // }
1885 1897
1886 // LLXmlTreeNode* rootp = skin_def_tree.getRoot();
1887 // LLXmlTreeNode* disabled_message_node = rootp->getChildByName("disabled_message");
1888 // if (disabled_message_node)
1889 // {
1890 // gDisabledMessage = disabled_message_node->getContents();
1891 // }
1892
1893 // static LLStdStringHandle hide_links_string = LLXmlTree::addAttributeString("hide_links");
1894 // rootp->getFastAttributeBOOL(hide_links_string, gHideLinks);
1895
1896 // // Legacy string. This flag really meant we didn't want to expose references to "Second Life".
1897 // // Just set gHideLinks instead.
1898 // static LLStdStringHandle silent_string = LLXmlTree::addAttributeString("silent_update");
1899 // BOOL silent_update;
1900 // rootp->getFastAttributeBOOL(silent_string, silent_update);
1901 // gHideLinks = (gHideLinks || silent_update);
1902 //} 1898 //}
1903 1899
1904#if LL_DARWIN 1900#if LL_DARWIN
@@ -1951,7 +1947,7 @@ bool LLAppViewer::initConfiguration()
1951#endif 1947#endif
1952 LLStringUtil::truncate(gWindowTitle, 255); 1948 LLStringUtil::truncate(gWindowTitle, 255);
1953 1949
1954 //RN: if we received a URL, hand it off to the existing instance 1950 //RN: if we received a URL, hand it off to the existing instance.
1955 // don't call anotherInstanceRunning() when doing URL handoff, as 1951 // don't call anotherInstanceRunning() when doing URL handoff, as
1956 // it relies on checking a marker file which will not work when running 1952 // it relies on checking a marker file which will not work when running
1957 // out of different directories 1953 // out of different directories
@@ -1966,7 +1962,7 @@ bool LLAppViewer::initConfiguration()
1966 } 1962 }
1967 if (!slurl.empty()) 1963 if (!slurl.empty())
1968 { 1964 {
1969 if (send_url_to_other_instance(slurl)) 1965 if (sendURLToOtherInstance(slurl))
1970 { 1966 {
1971 // successfully handed off URL to existing instance, exit 1967 // successfully handed off URL to existing instance, exit
1972 return false; 1968 return false;
@@ -1997,7 +1993,7 @@ bool LLAppViewer::initConfiguration()
1997 } 1993 }
1998 1994
1999 initMarkerFile(); 1995 initMarkerFile();
2000 1996
2001#if LL_SEND_CRASH_REPORTS 1997#if LL_SEND_CRASH_REPORTS
2002 if (gLastExecEvent == LAST_EXEC_FROZE) 1998 if (gLastExecEvent == LAST_EXEC_FROZE)
2003 { 1999 {
@@ -2019,52 +2015,8 @@ bool LLAppViewer::initConfiguration()
2019 { 2015 {
2020 llinfos << "Sending crash report." << llendl; 2016 llinfos << "Sending crash report." << llendl;
2021 2017
2022#if LL_WINDOWS 2018 bool report_freeze = true;
2023 std::string exe_path = gDirUtilp->getAppRODataDir(); 2019 handleCrashReporting(report_freeze);
2024 exe_path += gDirUtilp->getDirDelimiter();
2025 exe_path += "win_crash_logger.exe";
2026
2027 std::string arg_string = "-previous ";
2028 // Spawn crash logger.
2029 // NEEDS to wait until completion, otherwise log files will get smashed.
2030 _spawnl(_P_WAIT, exe_path.c_str(), exe_path.c_str(), arg_string.c_str(), NULL);
2031#elif LL_DARWIN
2032 std::string command_str;
2033 command_str = "mac-crash-logger.app/Contents/MacOS/mac-crash-logger ";
2034 command_str += "-previous";
2035 // XXX -- We need to exit fullscreen mode for this to work.
2036 // XXX -- system() also doesn't wait for completion. Hmm...
2037 system(command_str.c_str()); /* Flawfinder: Ignore */
2038#elif LL_LINUX || LL_SOLARIS
2039 std::string cmd =gDirUtilp->getAppRODataDir();
2040 cmd += gDirUtilp->getDirDelimiter();
2041#if LL_LINUX
2042 cmd += "linux-crash-logger.bin";
2043#else // LL_SOLARIS
2044 cmd += "bin/solaris-crash-logger";
2045#endif // LL_LINUX
2046 char* const cmdargv[] =
2047 {(char*)cmd.c_str(),
2048 (char*)"-previous",
2049 NULL};
2050 fflush(NULL); // flush all buffers before the child inherits them
2051 pid_t pid = fork();
2052 if (pid == 0)
2053 { // child
2054 execv(cmd.c_str(), cmdargv); /* Flawfinder: Ignore */
2055 llwarns << "execv failure when trying to start " << cmd << llendl;
2056 _exit(1); // avoid atexit()
2057 } else {
2058 if (pid > 0)
2059 {
2060 // wait for child proc to die
2061 int childExitStatus;
2062 waitpid(pid, &childExitStatus, 0);
2063 } else {
2064 llwarns << "fork failure." << llendl;
2065 }
2066 }
2067#endif
2068 } 2020 }
2069 else 2021 else
2070 { 2022 {
@@ -2229,7 +2181,6 @@ void LLAppViewer::cleanupSavedSettings()
2229 2181
2230 gSavedSettings.setF32("MapScale", gMapScale ); 2182 gSavedSettings.setF32("MapScale", gMapScale );
2231 gSavedSettings.setF32("MiniMapScale", gMiniMapScale ); 2183 gSavedSettings.setF32("MiniMapScale", gMiniMapScale );
2232 gSavedSettings.setBOOL("AsyncKeyboard", gHandleKeysAsync);
2233 gSavedSettings.setBOOL("ShowHoverTips", LLHoverView::sShowHoverTips); 2184 gSavedSettings.setBOOL("ShowHoverTips", LLHoverView::sShowHoverTips);
2234 2185
2235 // Some things are cached in LLAgent. 2186 // Some things are cached in LLAgent.
@@ -2271,7 +2222,7 @@ void LLAppViewer::writeSystemInfo()
2271 gDebugInfo["RAMInfo"]["Physical"] = (LLSD::Integer)(gSysMemory.getPhysicalMemoryKB()); 2222 gDebugInfo["RAMInfo"]["Physical"] = (LLSD::Integer)(gSysMemory.getPhysicalMemoryKB());
2272 gDebugInfo["RAMInfo"]["Allocated"] = (LLSD::Integer)(gMemoryAllocated>>10); // MB -> KB 2223 gDebugInfo["RAMInfo"]["Allocated"] = (LLSD::Integer)(gMemoryAllocated>>10); // MB -> KB
2273 gDebugInfo["OSInfo"] = getOSInfo().getOSStringSimple(); 2224 gDebugInfo["OSInfo"] = getOSInfo().getOSStringSimple();
2274 2225
2275 // The user is not logged on yet, but record the current grid choice login url 2226 // The user is not logged on yet, but record the current grid choice login url
2276 // which may have been the intended grid. This can b 2227 // which may have been the intended grid. This can b
2277 gDebugInfo["GridName"] = LLViewerLogin::getInstance()->getGridLabel(); 2228 gDebugInfo["GridName"] = LLViewerLogin::getInstance()->getGridLabel();
@@ -2282,6 +2233,13 @@ void LLAppViewer::writeSystemInfo()
2282 gDebugInfo["MainloopThreadID"] = (S32)thread_id; 2233 gDebugInfo["MainloopThreadID"] = (S32)thread_id;
2283#endif 2234#endif
2284 2235
2236 // "CrashNotHandled" is set here, while things are running well,
2237 // in case of a freeze. If there is a freeze, the crash logger will be launched
2238 // and can read this value from the debug_info.log.
2239 // If the crash is handled by LLAppViewer::handleViewerCrash, ie not a freeze,
2240 // then the value of "CrashNotHandled" will be set to true.
2241 gDebugInfo["CrashNotHandled"] = (LLSD::Boolean)true;
2242
2285 // Dump some debugging info 2243 // Dump some debugging info
2286 LL_INFOS("SystemInfo") << gCurrentVersion << LL_ENDL; 2244 LL_INFOS("SystemInfo") << gCurrentVersion << LL_ENDL;
2287 2245
@@ -2358,6 +2316,10 @@ void LLAppViewer::handleViewerCrash()
2358 gDebugInfo["CAFilename"] = gDirUtilp->getCAFile(); 2316 gDebugInfo["CAFilename"] = gDirUtilp->getCAFile();
2359 gDebugInfo["ViewerExePath"] = gDirUtilp->getExecutablePathAndName(); 2317 gDebugInfo["ViewerExePath"] = gDirUtilp->getExecutablePathAndName();
2360 gDebugInfo["CurrentPath"] = gDirUtilp->getCurPath(); 2318 gDebugInfo["CurrentPath"] = gDirUtilp->getCurPath();
2319 gDebugInfo["SessionLength"] = F32(LLFrameTimer::getElapsedSeconds());
2320 gDebugInfo["StartupState"] = LLStartUp::getStartupStateString();
2321 gDebugInfo["RAMInfo"]["Allocated"] = (LLSD::Integer) getCurrentRSS() >> 10;
2322
2361 if(gLogoutInProgress) 2323 if(gLogoutInProgress)
2362 { 2324 {
2363 gDebugInfo["LastExecEvent"] = LAST_EXEC_LOGOUT_CRASH; 2325 gDebugInfo["LastExecEvent"] = LAST_EXEC_LOGOUT_CRASH;
@@ -2383,6 +2345,9 @@ void LLAppViewer::handleViewerCrash()
2383 gDebugInfo["MainloopTimeoutState"] = LLAppViewer::instance()->mMainloopTimeout->getState(); 2345 gDebugInfo["MainloopTimeoutState"] = LLAppViewer::instance()->mMainloopTimeout->getState();
2384 } 2346 }
2385 2347
2348 // The crash is being handled here so set this value to false.
2349 // Otherwise the crash logger will think this crash was a freeze.
2350 gDebugInfo["CrashNotHandled"] = (LLSD::Boolean)false;
2386 2351
2387 //Write out the crash status file 2352 //Write out the crash status file
2388 //Use marker file style setup, as that's the simplest, especially since 2353 //Use marker file style setup, as that's the simplest, especially since
@@ -2466,24 +2431,23 @@ bool LLAppViewer::anotherInstanceRunning()
2466 { 2431 {
2467 // Another instance is running. Skip the rest of these operations. 2432 // Another instance is running. Skip the rest of these operations.
2468 LL_INFOS("MarkerFile") << "Marker file is locked." << LL_ENDL; 2433 LL_INFOS("MarkerFile") << "Marker file is locked." << LL_ENDL;
2469 return TRUE; 2434 return true;
2470 } 2435 }
2471 if (apr_file_lock(fMarker, APR_FLOCK_NONBLOCK | APR_FLOCK_EXCLUSIVE) != APR_SUCCESS) //flock(fileno(fMarker), LOCK_EX | LOCK_NB) == -1) 2436 if (apr_file_lock(fMarker, APR_FLOCK_NONBLOCK | APR_FLOCK_EXCLUSIVE) != APR_SUCCESS) //flock(fileno(fMarker), LOCK_EX | LOCK_NB) == -1)
2472 { 2437 {
2473 apr_file_close(fMarker); 2438 apr_file_close(fMarker);
2474 LL_INFOS("MarkerFile") << "Marker file is locked." << LL_ENDL; 2439 LL_INFOS("MarkerFile") << "Marker file is locked." << LL_ENDL;
2475 return TRUE; 2440 return true;
2476 } 2441 }
2477 // No other instances; we'll lock this file now & delete on quit. 2442 // No other instances; we'll lock this file now & delete on quit.
2478 apr_file_close(fMarker); 2443 apr_file_close(fMarker);
2479 } 2444 }
2480 LL_DEBUGS("MarkerFile") << "Marker file isn't locked." << LL_ENDL; 2445 LL_DEBUGS("MarkerFile") << "Marker file isn't locked." << LL_ENDL;
2481 return FALSE; 2446 return false;
2482} 2447}
2483 2448
2484void LLAppViewer::initMarkerFile() 2449void LLAppViewer::initMarkerFile()
2485{ 2450{
2486
2487 //First, check for the existence of other files. 2451 //First, check for the existence of other files.
2488 //There are marker files for two different types of crashes 2452 //There are marker files for two different types of crashes
2489 2453
@@ -2738,7 +2702,7 @@ bool LLAppViewer::initCache()
2738 2702
2739 // Init the texture cache 2703 // Init the texture cache
2740 // Allocate 80% of the cache size for textures 2704 // Allocate 80% of the cache size for textures
2741 BOOL read_only = mSecondInstance ? true : false; 2705 BOOL read_only = mSecondInstance ? TRUE : FALSE;
2742 const S32 MB = 1024*1024; 2706 const S32 MB = 1024*1024;
2743 S64 cache_size = (S64)(gSavedSettings.getU32("CacheSize")) * MB; 2707 S64 cache_size = (S64)(gSavedSettings.getU32("CacheSize")) * MB;
2744 const S64 MAX_CACHE_SIZE = 1024*MB; 2708 const S64 MAX_CACHE_SIZE = 1024*MB;
@@ -3539,12 +3503,12 @@ void LLAppViewer::sendLogoutRequest()
3539 if (mLogoutMarkerFile) 3503 if (mLogoutMarkerFile)
3540 { 3504 {
3541 llinfos << "Created logout marker file " << mLogoutMarkerFileName << llendl; 3505 llinfos << "Created logout marker file " << mLogoutMarkerFileName << llendl;
3506 apr_file_close(mLogoutMarkerFile);
3542 } 3507 }
3543 else 3508 else
3544 { 3509 {
3545 llwarns << "Cannot create logout marker file " << mLogoutMarkerFileName << llendl; 3510 llwarns << "Cannot create logout marker file " << mLogoutMarkerFileName << llendl;
3546 } 3511 }
3547 apr_file_close(mLogoutMarkerFile);
3548 } 3512 }
3549} 3513}
3550 3514
@@ -3765,6 +3729,11 @@ void LLAppViewer::forceErrorSoftwareException()
3765 throw; 3729 throw;
3766} 3730}
3767 3731
3732void LLAppViewer::forceErrorDriverCrash()
3733{
3734 glDeleteTextures(1, NULL);
3735}
3736
3768void LLAppViewer::initMainloopTimeout(const std::string& state, F32 secs) 3737void LLAppViewer::initMainloopTimeout(const std::string& state, F32 secs)
3769{ 3738{
3770 if(!mMainloopTimeout) 3739 if(!mMainloopTimeout)
@@ -3807,6 +3776,11 @@ void LLAppViewer::pauseMainloopTimeout()
3807 3776
3808void LLAppViewer::pingMainloopTimeout(const std::string& state, F32 secs) 3777void LLAppViewer::pingMainloopTimeout(const std::string& state, F32 secs)
3809{ 3778{
3779// if(!restoreErrorTrap())
3780// {
3781// llwarns << "!!!!!!!!!!!!! Its an error trap!!!!" << state << llendl;
3782// }
3783
3810 if(mMainloopTimeout) 3784 if(mMainloopTimeout)
3811 { 3785 {
3812 if(secs < 0.0f) 3786 if(secs < 0.0f)
@@ -3819,3 +3793,42 @@ void LLAppViewer::pingMainloopTimeout(const std::string& state, F32 secs)
3819 } 3793 }
3820} 3794}
3821 3795
3796void LLAppViewer::handleLoginComplete()
3797{
3798 initMainloopTimeout("Mainloop Init");
3799
3800 // Store some data to DebugInfo in case of a freeze.
3801 gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName");
3802
3803 gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR;
3804 gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR;
3805 gDebugInfo["ClientInfo"]["PatchVersion"] = LL_VERSION_PATCH;
3806 gDebugInfo["ClientInfo"]["BuildVersion"] = LL_VERSION_BUILD;
3807
3808 LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
3809 if ( parcel && parcel->getMusicURL()[0])
3810 {
3811 gDebugInfo["ParcelMusicURL"] = parcel->getMusicURL();
3812 }
3813 if ( parcel && parcel->getMediaURL()[0])
3814 {
3815 gDebugInfo["ParcelMediaURL"] = parcel->getMediaURL();
3816 }
3817
3818 gDebugInfo["SettingsFilename"] = gSavedSettings.getString("ClientSettingsFile");
3819 gDebugInfo["CAFilename"] = gDirUtilp->getCAFile();
3820 gDebugInfo["ViewerExePath"] = gDirUtilp->getExecutablePathAndName();
3821 gDebugInfo["CurrentPath"] = gDirUtilp->getCurPath();
3822
3823 if(gAgent.getRegion())
3824 {
3825 gDebugInfo["CurrentSimHost"] = gAgent.getRegionHost().getHostName();
3826 gDebugInfo["CurrentRegion"] = gAgent.getRegion()->getName();
3827 }
3828
3829 if(LLAppViewer::instance()->mMainloopTimeout)
3830 {
3831 gDebugInfo["MainloopTimeoutState"] = LLAppViewer::instance()->mMainloopTimeout->getState();
3832 }
3833 writeDebugInfo();
3834}
diff --git a/linden/indra/newview/llappviewer.h b/linden/indra/newview/llappviewer.h
index 58dc835..9583982 100644
--- a/linden/indra/newview/llappviewer.h
+++ b/linden/indra/newview/llappviewer.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -77,7 +77,9 @@ public:
77 // Report true if under the control of a debugger. A null-op default. 77 // Report true if under the control of a debugger. A null-op default.
78 virtual bool beingDebugged() { return false; } 78 virtual bool beingDebugged() { return false; }
79 79
80 virtual void handleCrashReporting() = 0; // What to do with crash report? 80 virtual bool restoreErrorTrap() = 0; // Require platform specific override to reset error handling mechanism.
81 // return false if the error trap needed restoration.
82 virtual void handleCrashReporting(bool reportFreeze = false) = 0; // What to do with crash report?
81 virtual void handleSyncCrashTrace() = 0; // any low-level crash-prep that has to happen in the context of the crashing thread before the crash report is delivered. 83 virtual void handleSyncCrashTrace() = 0; // any low-level crash-prep that has to happen in the context of the crashing thread before the crash report is delivered.
82 static void handleViewerCrash(); // Hey! The viewer crashed. Do this, soon. 84 static void handleViewerCrash(); // Hey! The viewer crashed. Do this, soon.
83 static void handleSyncViewerCrash(); // Hey! The viewer crashed. Do this right NOW in the context of the crashing thread. 85 static void handleSyncViewerCrash(); // Hey! The viewer crashed. Do this right NOW in the context of the crashing thread.
@@ -112,6 +114,7 @@ public:
112 virtual void forceErrorBadMemoryAccess(); 114 virtual void forceErrorBadMemoryAccess();
113 virtual void forceErrorInifiniteLoop(); 115 virtual void forceErrorInifiniteLoop();
114 virtual void forceErrorSoftwareException(); 116 virtual void forceErrorSoftwareException();
117 virtual void forceErrorDriverCrash();
115 118
116 // *NOTE: There are currently 3 settings files: 119 // *NOTE: There are currently 3 settings files:
117 // "Global", "PerAccount" and "CrashSettings" 120 // "Global", "PerAccount" and "CrashSettings"
@@ -136,16 +139,22 @@ public:
136 void resumeMainloopTimeout(const std::string& state = "", F32 secs = -1.0f); 139 void resumeMainloopTimeout(const std::string& state = "", F32 secs = -1.0f);
137 void pingMainloopTimeout(const std::string& state, F32 secs = -1.0f); 140 void pingMainloopTimeout(const std::string& state, F32 secs = -1.0f);
138 141
142 // Handle the 'login completed' event.
143 // *NOTE:Mani Fix this for login abstraction!!
144 void handleLoginComplete();
145
139protected: 146protected:
140 147
141 virtual bool initWindow(); // Initialize the viewer's window. 148 virtual bool initWindow(); // Initialize the viewer's window.
142 virtual bool initLogging(); // Initialize log files, logging system, return false on failure. 149 virtual bool initLogging(); // Initialize log files, logging system, return false on failure.
143 virtual void initConsole() {}; // Initialize OS level debugging console. 150 virtual void initConsole() {}; // Initialize OS level debugging console.
144 virtual bool initHardwareTest() { return true; } // A false result indicates the app should quit. 151 virtual bool initHardwareTest() { return true; } // A false result indicates the app should quit.
152 virtual bool initSLURLHandler();
153 virtual bool sendURLToOtherInstance(const std::string& url);
145 154
146 virtual bool initParseCommandLine(LLCommandLineParser& clp) 155 virtual bool initParseCommandLine(LLCommandLineParser& clp)
147 { return true; } // Allow platforms to specify the command line args. 156 { return true; } // Allow platforms to specify the command line args.
148 157
149 virtual std::string generateSerialNumber() = 0; // Platforms specific classes generate this. 158 virtual std::string generateSerialNumber() = 0; // Platforms specific classes generate this.
150 159
151private: 160private:
@@ -211,6 +220,15 @@ private:
211 // for tracking viewer<->region circuit death 220 // for tracking viewer<->region circuit death
212 bool mAgentRegionLastAlive; 221 bool mAgentRegionLastAlive;
213 LLUUID mAgentRegionLastID; 222 LLUUID mAgentRegionLastID;
223
224public:
225 //some information for updater
226 typedef struct
227 {
228 std::string mUpdateExePath;
229 std::ostringstream mParams;
230 }LLUpdaterInfo ;
231 static LLUpdaterInfo *sUpdaterInfo ;
214}; 232};
215 233
216// consts from viewer.h 234// consts from viewer.h
@@ -221,9 +239,6 @@ const S32 AGENT_UPDATES_PER_SECOND = 10;
221// 239//
222// "// llstartup" indicates that llstartup is the only client for this global. 240// "// llstartup" indicates that llstartup is the only client for this global.
223 241
224extern BOOL gHandleKeysAsync; // gSavedSettings used by llviewerdisplay.cpp & llviewermenu.cpp
225extern std::string gDisabledMessage; // llstartup
226extern BOOL gHideLinks; // used by llpanellogin, lllfloaterbuycurrency, llstartup
227extern LLSD gDebugInfo; 242extern LLSD gDebugInfo;
228 243
229extern BOOL gAllowIdleAFK; 244extern BOOL gAllowIdleAFK;
diff --git a/linden/indra/newview/llappviewerlinux.cpp b/linden/indra/newview/llappviewerlinux.cpp
index 0a4a9cf..ad90b82 100644
--- a/linden/indra/newview/llappviewerlinux.cpp
+++ b/linden/indra/newview/llappviewerlinux.cpp
@@ -1,10 +1,10 @@
1/** 1/**
2 * @file llappviewerlinux.cpp 2 * @file llappviewerlinux.cpp
3 * @brief The LLAppViewerWin32 class definitions 3 * @brief The LLAppViewerLinux class definitions
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -36,8 +36,10 @@
36#include "llcommandlineparser.h" 36#include "llcommandlineparser.h"
37 37
38#include "llmemtype.h" 38#include "llmemtype.h"
39#include "llurldispatcher.h" // SLURL from other app instance
39#include "llviewernetwork.h" 40#include "llviewernetwork.h"
40#include "llviewercontrol.h" 41#include "llviewercontrol.h"
42#include "llwindowsdl.h"
41#include "llmd5.h" 43#include "llmd5.h"
42#include "llfindlocale.h" 44#include "llfindlocale.h"
43 45
@@ -60,6 +62,17 @@
60# include "ELFIO/ELFIO.h" // for better backtraces 62# include "ELFIO/ELFIO.h" // for better backtraces
61#endif 63#endif
62 64
65#if LL_DBUS_ENABLED
66# include "llappviewerlinux_api_dbus.h"
67
68// regrettable hacks to give us better runtime compatibility with older systems inside llappviewerlinux_api.h:
69#define llg_return_if_fail(COND) do{if (!(COND)) return;}while(0)
70#undef g_return_if_fail
71#define g_return_if_fail(COND) llg_return_if_fail(COND)
72// The generated API
73# include "llappviewerlinux_api.h"
74#endif
75
63namespace 76namespace
64{ 77{
65 int gArgC = 0; 78 int gArgC = 0;
@@ -321,6 +334,193 @@ bool LLAppViewerLinux::init()
321 return LLAppViewer::init(); 334 return LLAppViewer::init();
322} 335}
323 336
337bool LLAppViewerLinux::restoreErrorTrap()
338{
339 // *NOTE:Mani there is a case for implementing this or the mac.
340 // Linux doesn't need it to my knowledge.
341 return true;
342}
343
344/////////////////////////////////////////
345#if LL_DBUS_ENABLED
346
347typedef struct
348{
349 GObjectClass parent_class;
350} ViewerAppAPIClass;
351
352static void viewerappapi_init(ViewerAppAPI *server);
353static void viewerappapi_class_init(ViewerAppAPIClass *klass);
354
355///
356
357// regrettable hacks to give us better runtime compatibility with older systems in general
358static GType llg_type_register_static_simple_ONCE(GType parent_type,
359 const gchar *type_name,
360 guint class_size,
361 GClassInitFunc class_init,
362 guint instance_size,
363 GInstanceInitFunc instance_init,
364 GTypeFlags flags)
365{
366 static GTypeInfo type_info;
367 memset(&type_info, 0, sizeof(type_info));
368
369 type_info.class_size = class_size;
370 type_info.class_init = class_init;
371 type_info.instance_size = instance_size;
372 type_info.instance_init = instance_init;
373
374 return g_type_register_static(parent_type, type_name, &type_info, flags);
375}
376#define llg_intern_static_string(S) (S)
377#define g_intern_static_string(S) llg_intern_static_string(S)
378#define g_type_register_static_simple(parent_type, type_name, class_size, class_init, instance_size, instance_init, flags) llg_type_register_static_simple_ONCE(parent_type, type_name, class_size, class_init, instance_size, instance_init, flags)
379
380G_DEFINE_TYPE(ViewerAppAPI, viewerappapi, G_TYPE_OBJECT);
381
382void viewerappapi_class_init(ViewerAppAPIClass *klass)
383{
384}
385
386static bool dbus_server_init = false;
387
388void viewerappapi_init(ViewerAppAPI *server)
389{
390 // Connect to the default DBUS, register our service/API.
391
392 if (!dbus_server_init)
393 {
394 GError *error = NULL;
395
396 server->connection = lldbus_g_bus_get(DBUS_BUS_SESSION, &error);
397 if (server->connection)
398 {
399 lldbus_g_object_type_install_info(viewerappapi_get_type(), &dbus_glib_viewerapp_object_info);
400
401 lldbus_g_connection_register_g_object(server->connection, VIEWERAPI_PATH, G_OBJECT(server));
402
403 DBusGProxy *serverproxy = lldbus_g_proxy_new_for_name(server->connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS);
404
405 guint request_name_ret_unused;
406 // akin to org_freedesktop_DBus_request_name
407 if (lldbus_g_proxy_call(serverproxy, "RequestName", &error, G_TYPE_STRING, VIEWERAPI_SERVICE, G_TYPE_UINT, 0, G_TYPE_INVALID, G_TYPE_UINT, &request_name_ret_unused, G_TYPE_INVALID))
408 {
409 // total success.
410 dbus_server_init = true;
411 }
412 else
413 {
414 llwarns << "Unable to register service name: " << error->message << llendl;
415 }
416
417 g_object_unref(serverproxy);
418 }
419 else
420 {
421 g_warning("Unable to connect to dbus: %s", error->message);
422 }
423
424 if (error)
425 g_error_free(error);
426 }
427}
428
429gboolean viewer_app_api_GoSLURL(ViewerAppAPI *obj, gchar *slurl, gboolean **success_rtn, GError **error)
430{
431 bool success = false;
432
433 llinfos << "Was asked to go to slurl: " << slurl << llendl;
434
435 const bool from_external_browser = true;
436 if (LLURLDispatcher::dispatch(slurl, from_external_browser))
437 {
438 // bring window to foreground, as it has just been "launched" from a URL
439 // todo: hmm, how to get there from here?
440 //xxx->mWindow->bringToFront();
441 success = true;
442 }
443
444 *success_rtn = g_new (gboolean, 1);
445 (*success_rtn)[0] = (gboolean)success;
446
447 return TRUE; // the invokation succeeded, even if the actual dispatch didn't.
448}
449
450///
451
452//virtual
453bool LLAppViewerLinux::initSLURLHandler()
454{
455 if (!grab_dbus_syms(DBUSGLIB_DYLIB_DEFAULT_NAME))
456 {
457 return false; // failed
458 }
459
460 g_type_init();
461
462 //ViewerAppAPI *api_server = (ViewerAppAPI*)
463 g_object_new(viewerappapi_get_type(), NULL);
464
465 return true;
466}
467
468//virtual
469bool LLAppViewerLinux::sendURLToOtherInstance(const std::string& url)
470{
471 if (!grab_dbus_syms(DBUSGLIB_DYLIB_DEFAULT_NAME))
472 {
473 return false; // failed
474 }
475
476 bool success = false;
477 DBusGConnection *bus;
478 GError *error = NULL;
479
480 g_type_init();
481
482 bus = lldbus_g_bus_get (DBUS_BUS_SESSION, &error);
483 if (bus)
484 {
485 gboolean rtn = FALSE;
486 DBusGProxy *remote_object =
487 lldbus_g_proxy_new_for_name(bus, VIEWERAPI_SERVICE, VIEWERAPI_PATH, VIEWERAPI_INTERFACE);
488
489 if (lldbus_g_proxy_call(remote_object, "GoSLURL", &error,
490 G_TYPE_STRING, url.c_str(), G_TYPE_INVALID,
491 G_TYPE_BOOLEAN, &rtn, G_TYPE_INVALID))
492 {
493 success = rtn;
494 }
495 else
496 {
497 llinfos << "Call-out to other instance failed (perhaps not running): " << error->message << llendl;
498 }
499
500 g_object_unref(G_OBJECT(remote_object));
501 }
502 else
503 {
504 llwarns << "Couldn't connect to session bus: " << error->message << llendl;
505 }
506
507 if (error)
508 g_error_free(error);
509
510 return success;
511}
512
513#else // LL_DBUS_ENABLED
514bool LLAppViewerLinux::initSLURLHandler()
515{
516 return false; // not implemented without dbus
517}
518bool LLAppViewerLinux::sendURLToOtherInstance(const std::string& url)
519{
520 return false; // not implemented without dbus
521}
522#endif // LL_DBUS_ENABLED
523
324void LLAppViewerLinux::handleSyncCrashTrace() 524void LLAppViewerLinux::handleSyncCrashTrace()
325{ 525{
326 // This backtrace writes into stack_trace.log 526 // This backtrace writes into stack_trace.log
@@ -331,57 +531,90 @@ void LLAppViewerLinux::handleSyncCrashTrace()
331# endif // LL_ELFBIN 531# endif // LL_ELFBIN
332} 532}
333 533
334void LLAppViewerLinux::handleCrashReporting() 534void LLAppViewerLinux::handleCrashReporting(bool reportFreeze)
335{ 535{
336 const S32 cb = gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING); 536 std::string cmd =gDirUtilp->getAppRODataDir();
337 537 cmd += gDirUtilp->getDirDelimiter();
338 // Always generate the report, have the logger do the asking, and 538#if LL_LINUX
339 // don't wait for the logger before exiting (-> total cleanup). 539 cmd += "linux-crash-logger.bin";
340 if (CRASH_BEHAVIOR_NEVER_SEND != cb) 540#else // LL_SOLARIS
341 { 541 cmd += "bin/solaris-crash-logger";
342 // launch the actual crash logger 542#endif // LL_LINUX
343 const char* ask_dialog = "-dialog"; 543
344 if (CRASH_BEHAVIOR_ASK != cb) 544 if(reportFreeze)
345 ask_dialog = ""; // omit '-dialog' option 545 {
346 std::string cmd =gDirUtilp->getAppRODataDir(); 546 char* const cmdargv[] =
347 cmd += gDirUtilp->getDirDelimiter(); 547 {(char*)cmd.c_str(),
348 cmd += "linux-crash-logger.bin"; 548 (char*)"-previous",
349 const char * cmdargv[] =
350 {cmd.c_str(),
351 ask_dialog,
352 "-user",
353 (char*)LLViewerLogin::getInstance()->getGridLabel().c_str(),
354 "-name",
355 LLAppViewer::instance()->getSecondLifeTitle().c_str(),
356 NULL}; 549 NULL};
357 fflush(NULL); 550
551 fflush(NULL); // flush all buffers before the child inherits them
358 pid_t pid = fork(); 552 pid_t pid = fork();
359 if (pid == 0) 553 if (pid == 0)
360 { // child 554 { // child
361 execv(cmd.c_str(), (char* const*) cmdargv); /* Flawfinder: ignore */ 555 execv(cmd.c_str(), cmdargv); /* Flawfinder: Ignore */
362 llwarns << "execv failure when trying to start " << cmd << llendl; 556 llwarns << "execv failure when trying to start " << cmd << llendl;
363 _exit(1); // avoid atexit() 557 _exit(1); // avoid atexit()
364 } 558 } else {
365 else
366 {
367 if (pid > 0) 559 if (pid > 0)
368 { 560 {
369 // DO NOT wait for child proc to die; we want 561 // wait for child proc to die
370 // the logger to outlive us while we quit to 562 int childExitStatus;
371 // free up the screen/keyboard/etc. 563 waitpid(pid, &childExitStatus, 0);
372 ////int childExitStatus; 564 } else {
373 ////waitpid(pid, &childExitStatus, 0); 565 llwarns << "fork failure." << llendl;
566 }
567 }
568 }
569 else
570 {
571 const S32 cb = gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING);
572
573 // Always generate the report, have the logger do the asking, and
574 // don't wait for the logger before exiting (-> total cleanup).
575 if (CRASH_BEHAVIOR_NEVER_SEND != cb)
576 {
577 // launch the actual crash logger
578 const char* ask_dialog = "-dialog";
579 if (CRASH_BEHAVIOR_ASK != cb)
580 ask_dialog = ""; // omit '-dialog' option
581 const char * cmdargv[] =
582 {cmd.c_str(),
583 ask_dialog,
584 "-user",
585 (char*)LLViewerLogin::getInstance()->getGridLabel().c_str(),
586 "-name",
587 LLAppViewer::instance()->getSecondLifeTitle().c_str(),
588 NULL};
589 fflush(NULL);
590 pid_t pid = fork();
591 if (pid == 0)
592 { // child
593 execv(cmd.c_str(), (char* const*) cmdargv); /* Flawfinder: ignore */
594 llwarns << "execv failure when trying to start " << cmd << llendl;
595 _exit(1); // avoid atexit()
374 } 596 }
375 else 597 else
376 { 598 {
377 llwarns << "fork failure." << llendl; 599 if (pid > 0)
600 {
601 // DO NOT wait for child proc to die; we want
602 // the logger to outlive us while we quit to
603 // free up the screen/keyboard/etc.
604 ////int childExitStatus;
605 ////waitpid(pid, &childExitStatus, 0);
606 }
607 else
608 {
609 llwarns << "fork failure." << llendl;
610 }
378 } 611 }
379 } 612 }
613 // Sometimes signals don't seem to quit the viewer. Also, we may
614 // have been called explicitly instead of from a signal handler.
615 // Make sure we exit so as to not totally confuse the user.
616 _exit(1); // avoid atexit(), else we may re-crash in dtors.
380 } 617 }
381 // Sometimes signals don't seem to quit the viewer. Also, we may
382 // have been called explicitly instead of from a signal handler.
383 // Make sure we exit so as to not totally confuse the user.
384 _exit(1); // avoid atexit(), else we may re-crash in dtors.
385} 618}
386 619
387bool LLAppViewerLinux::beingDebugged() 620bool LLAppViewerLinux::beingDebugged()
diff --git a/linden/indra/newview/llappviewerlinux.h b/linden/indra/newview/llappviewerlinux.h
index a180b4d..b464e48 100644
--- a/linden/indra/newview/llappviewerlinux.h
+++ b/linden/indra/newview/llappviewerlinux.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -32,6 +32,14 @@
32#ifndef LL_LLAPPVIEWERLINUX_H 32#ifndef LL_LLAPPVIEWERLINUX_H
33#define LL_LLAPPVIEWERLINUX_H 33#define LL_LLAPPVIEWERLINUX_H
34 34
35#if LL_DBUS_ENABLED
36extern "C" {
37# include <glib.h>
38# include <glib-object.h>
39# include <dbus/dbus-glib.h>
40}
41#endif
42
35#ifndef LL_LLAPPVIEWER_H 43#ifndef LL_LLAPPVIEWER_H
36#include "llappviewer.h" 44#include "llappviewer.h"
37#endif 45#endif
@@ -49,15 +57,37 @@ public:
49 // 57 //
50 virtual bool init(); // Override to do application initialization 58 virtual bool init(); // Override to do application initialization
51 std::string generateSerialNumber(); 59 std::string generateSerialNumber();
60 bool setupSLURLHandler();
52 61
53protected: 62protected:
54 virtual bool beingDebugged(); 63 virtual bool beingDebugged();
55 64
56 virtual void handleCrashReporting(); 65 virtual bool restoreErrorTrap();
66 virtual void handleCrashReporting(bool reportFreeze);
57 virtual void handleSyncCrashTrace(); 67 virtual void handleSyncCrashTrace();
58 68
59 virtual bool initLogging(); 69 virtual bool initLogging();
60 virtual bool initParseCommandLine(LLCommandLineParser& clp); 70 virtual bool initParseCommandLine(LLCommandLineParser& clp);
71
72 virtual bool initSLURLHandler();
73 virtual bool sendURLToOtherInstance(const std::string& url);
61}; 74};
62 75
76#if LL_DBUS_ENABLED
77typedef struct
78{
79 GObject parent;
80 DBusGConnection *connection;
81} ViewerAppAPI;
82
83extern "C" {
84 gboolean viewer_app_api_GoSLURL(ViewerAppAPI *obj, gchar *slurl, gboolean **success_rtn, GError **error);
85}
86
87#define VIEWERAPI_SERVICE "com.secondlife.ViewerAppAPIService"
88#define VIEWERAPI_PATH "/com/secondlife/ViewerAppAPI"
89#define VIEWERAPI_INTERFACE "com.secondlife.ViewerAppAPI"
90
91#endif // LL_DBUS_ENABLED
92
63#endif // LL_LLAPPVIEWERLINUX_H 93#endif // LL_LLAPPVIEWERLINUX_H
diff --git a/linden/indra/newview/llappviewerlinux_api.h b/linden/indra/newview/llappviewerlinux_api.h
new file mode 100644
index 0000000..e05e1c7
--- /dev/null
+++ b/linden/indra/newview/llappviewerlinux_api.h
@@ -0,0 +1,148 @@
1/* Generated by dbus-binding-tool; do not edit! */
2/**
3 * $LicenseInfo:firstyear=2008&license=viewergpl$
4 *
5 * Copyright (c) 2008-2009, Linden Research, Inc.
6 *
7 * Second Life Viewer Source Code
8 * The source code in this file ("Source Code") is provided by Linden Lab
9 * to you under the terms of the GNU General Public License, version 2.0
10 * ("GPL"), unless you have obtained a separate licensing agreement
11 * ("Other License"), formally executed by you and Linden Lab. Terms of
12 * the GPL can be found in doc/GPL-license.txt in this distribution, or
13 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
14 *
15 * There are special exceptions to the terms and conditions of the GPL as
16 * it is applied to this Source Code. View the full text of the exception
17 * in the file doc/FLOSS-exception.txt in this software distribution, or
18 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
19 *
20 * By copying, modifying or distributing this software, you acknowledge
21 * that you have read and understood your obligations described above,
22 * and agree to abide by those obligations.
23 *
24 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
25 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
26 * COMPLETENESS OR PERFORMANCE.
27 * $/LicenseInfo$
28 */
29
30#ifndef __dbus_glib_marshal_viewerapp_MARSHAL_H__
31#define __dbus_glib_marshal_viewerapp_MARSHAL_H__
32
33#include <glib-object.h>
34
35G_BEGIN_DECLS
36
37#ifdef G_ENABLE_DEBUG
38#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
39#define g_marshal_value_peek_char(v) g_value_get_char (v)
40#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
41#define g_marshal_value_peek_int(v) g_value_get_int (v)
42#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
43#define g_marshal_value_peek_long(v) g_value_get_long (v)
44#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
45#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
46#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
47#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
48#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
49#define g_marshal_value_peek_float(v) g_value_get_float (v)
50#define g_marshal_value_peek_double(v) g_value_get_double (v)
51#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
52#define g_marshal_value_peek_param(v) g_value_get_param (v)
53#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
54#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
55#define g_marshal_value_peek_object(v) g_value_get_object (v)
56#else /* !G_ENABLE_DEBUG */
57/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
58 * Do not access GValues directly in your code. Instead, use the
59 * g_value_get_*() functions
60 */
61#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
62#define g_marshal_value_peek_char(v) (v)->data[0].v_int
63#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
64#define g_marshal_value_peek_int(v) (v)->data[0].v_int
65#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
66#define g_marshal_value_peek_long(v) (v)->data[0].v_long
67#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
68#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
69#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
70#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
71#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
72#define g_marshal_value_peek_float(v) (v)->data[0].v_float
73#define g_marshal_value_peek_double(v) (v)->data[0].v_double
74#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
75#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
76#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
77#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
78#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
79#endif /* !G_ENABLE_DEBUG */
80
81
82/* BOOLEAN:STRING,POINTER,POINTER (/tmp/dbus-binding-tool-c-marshallers.5XXD8T:1) */
83extern void dbus_glib_marshal_viewerapp_BOOLEAN__STRING_POINTER_POINTER (GClosure *closure,
84 GValue *return_value,
85 guint n_param_values,
86 const GValue *param_values,
87 gpointer invocation_hint,
88 gpointer marshal_data);
89void
90dbus_glib_marshal_viewerapp_BOOLEAN__STRING_POINTER_POINTER (GClosure *closure,
91 GValue *return_value,
92 guint n_param_values,
93 const GValue *param_values,
94 gpointer invocation_hint,
95 gpointer marshal_data)
96{
97 typedef gboolean (*GMarshalFunc_BOOLEAN__STRING_POINTER_POINTER) (gpointer data1,
98 gpointer arg_1,
99 gpointer arg_2,
100 gpointer arg_3,
101 gpointer data2);
102 register GMarshalFunc_BOOLEAN__STRING_POINTER_POINTER callback;
103 register GCClosure *cc = (GCClosure*) closure;
104 register gpointer data1, data2;
105 gboolean v_return;
106
107 g_return_if_fail (return_value != NULL);
108 g_return_if_fail (n_param_values == 4);
109
110 if (G_CCLOSURE_SWAP_DATA (closure))
111 {
112 data1 = closure->data;
113 data2 = g_value_peek_pointer (param_values + 0);
114 }
115 else
116 {
117 data1 = g_value_peek_pointer (param_values + 0);
118 data2 = closure->data;
119 }
120 callback = (GMarshalFunc_BOOLEAN__STRING_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
121
122 v_return = callback (data1,
123 g_marshal_value_peek_string (param_values + 1),
124 g_marshal_value_peek_pointer (param_values + 2),
125 g_marshal_value_peek_pointer (param_values + 3),
126 data2);
127
128 g_value_set_boolean (return_value, v_return);
129}
130
131G_END_DECLS
132
133#endif /* __dbus_glib_marshal_viewerapp_MARSHAL_H__ */
134
135#include <dbus/dbus-glib.h>
136static const DBusGMethodInfo dbus_glib_viewerapp_methods[] = {
137 { (GCallback) viewer_app_api_GoSLURL, dbus_glib_marshal_viewerapp_BOOLEAN__STRING_POINTER_POINTER, 0 },
138};
139
140const DBusGObjectInfo dbus_glib_viewerapp_object_info = {
141 0,
142 dbus_glib_viewerapp_methods,
143 1,
144"com.secondlife.ViewerAppAPI\0GoSLURL\0S\0slurl\0I\0s\0success_ret\0O\0F\0N\0b\0\0\0",
145"\0",
146"\0"
147};
148
diff --git a/linden/indra/newview/llappviewerlinux_api.xml b/linden/indra/newview/llappviewerlinux_api.xml
new file mode 100644
index 0000000..fac35b7
--- /dev/null
+++ b/linden/indra/newview/llappviewerlinux_api.xml
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="UTF-8" ?>
2
3<!-- dbus-binding-tool -mode=glib-server llappviewerlinux_api.xml -prefix=viewerapp -output=llappviewerlinux_api.h -->
4
5<node name="/com/secondlife/ViewerAppAPI">
6 <interface name="com.secondlife.ViewerAppAPI">
7 <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="viewer_app_api"/>
8 <method name="GoSLURL">
9 <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="viewer_app_api_GoSLURL"/>
10 <arg type="s" name="slurl" direction="in" />
11 <arg type="b" name="success_ret" direction="out" />
12 </method>
13 </interface>
14</node>
diff --git a/linden/indra/newview/llappviewerlinux_api_dbus.cpp b/linden/indra/newview/llappviewerlinux_api_dbus.cpp
new file mode 100644
index 0000000..623d048
--- /dev/null
+++ b/linden/indra/newview/llappviewerlinux_api_dbus.cpp
@@ -0,0 +1,131 @@
1/**
2 * @file llappviewerlinux_api_dbus.cpp
3 * @brief dynamic DBus symbol-grabbing code
4 *
5 * $LicenseInfo:firstyear=2008&license=viewergpl$
6 *
7 * Copyright (c) 2008-2009, Linden Research, Inc.
8 *
9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab
11 * to you under the terms of the GNU General Public License, version 2.0
12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 *
17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 *
22 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above,
24 * and agree to abide by those obligations.
25 *
26 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
27 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
28 * COMPLETENESS OR PERFORMANCE.
29 * $/LicenseInfo$
30 */
31
32#if LL_DBUS_ENABLED
33
34#include "linden_common.h"
35
36extern "C" {
37#include <dbus/dbus-glib.h>
38
39#include "apr_pools.h"
40#include "apr_dso.h"
41}
42
43#define DEBUGMSG(...) lldebugs << llformat(__VA_ARGS__) << llendl
44#define INFOMSG(...) llinfos << llformat(__VA_ARGS__) << llendl
45#define WARNMSG(...) llwarns << llformat(__VA_ARGS__) << llendl
46
47#define LL_DBUS_SYM(REQUIRED, DBUSSYM, RTN, ...) RTN (*ll##DBUSSYM)(__VA_ARGS__) = NULL
48#include "llappviewerlinux_api_dbus_syms_raw.inc"
49#undef LL_DBUS_SYM
50
51static bool sSymsGrabbed = false;
52static apr_pool_t *sSymDBUSDSOMemoryPool = NULL;
53static apr_dso_handle_t *sSymDBUSDSOHandleG = NULL;
54
55bool grab_dbus_syms(std::string dbus_dso_name)
56{
57 if (sSymsGrabbed)
58 {
59 // already have grabbed good syms
60 return TRUE;
61 }
62
63 bool sym_error = false;
64 bool rtn = false;
65 apr_status_t rv;
66 apr_dso_handle_t *sSymDBUSDSOHandle = NULL;
67
68#define LL_DBUS_SYM(REQUIRED, DBUSSYM, RTN, ...) do{rv = apr_dso_sym((apr_dso_handle_sym_t*)&ll##DBUSSYM, sSymDBUSDSOHandle, #DBUSSYM); if (rv != APR_SUCCESS) {INFOMSG("Failed to grab symbol: %s", #DBUSSYM); if (REQUIRED) sym_error = true;} else DEBUGMSG("grabbed symbol: %s from %p", #DBUSSYM, (void*)ll##DBUSSYM);}while(0)
69
70 //attempt to load the shared library
71 apr_pool_create(&sSymDBUSDSOMemoryPool, NULL);
72
73 if ( APR_SUCCESS == (rv = apr_dso_load(&sSymDBUSDSOHandle,
74 dbus_dso_name.c_str(),
75 sSymDBUSDSOMemoryPool) ))
76 {
77 INFOMSG("Found DSO: %s", dbus_dso_name.c_str());
78
79#include "llappviewerlinux_api_dbus_syms_raw.inc"
80
81 if ( sSymDBUSDSOHandle )
82 {
83 sSymDBUSDSOHandleG = sSymDBUSDSOHandle;
84 sSymDBUSDSOHandle = NULL;
85 }
86
87 rtn = !sym_error;
88 }
89 else
90 {
91 INFOMSG("Couldn't load DSO: %s", dbus_dso_name.c_str());
92 rtn = false; // failure
93 }
94
95 if (sym_error)
96 {
97 WARNMSG("Failed to find necessary symbols in DBUS-GLIB libraries.");
98 }
99#undef LL_DBUS_SYM
100
101 sSymsGrabbed = rtn;
102 return rtn;
103}
104
105
106void ungrab_dbus_syms()
107{
108 // should be safe to call regardless of whether we've
109 // actually grabbed syms.
110
111 if ( sSymDBUSDSOHandleG )
112 {
113 apr_dso_unload(sSymDBUSDSOHandleG);
114 sSymDBUSDSOHandleG = NULL;
115 }
116
117 if ( sSymDBUSDSOMemoryPool )
118 {
119 apr_pool_destroy(sSymDBUSDSOMemoryPool);
120 sSymDBUSDSOMemoryPool = NULL;
121 }
122
123 // NULL-out all of the symbols we'd grabbed
124#define LL_DBUS_SYM(REQUIRED, DBUSSYM, RTN, ...) do{ll##DBUSSYM = NULL;}while(0)
125#include "llappviewerlinux_api_dbus_syms_raw.inc"
126#undef LL_DBUS_SYM
127
128 sSymsGrabbed = false;
129}
130
131#endif // LL_DBUS_ENABLED
diff --git a/linden/indra/newview/llappviewerlinux_api_dbus.h b/linden/indra/newview/llappviewerlinux_api_dbus.h
new file mode 100644
index 0000000..920602b
--- /dev/null
+++ b/linden/indra/newview/llappviewerlinux_api_dbus.h
@@ -0,0 +1,49 @@
1/**
2 * @file llappviewerlinux_api_dbus.h
3 * @brief DBus-glib symbol handling
4 *
5 * $LicenseInfo:firstyear=2008&license=viewergpl$
6 *
7 * Copyright (c) 2008-2009, Linden Research, Inc.
8 *
9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab
11 * to you under the terms of the GNU General Public License, version 2.0
12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 *
17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 *
22 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above,
24 * and agree to abide by those obligations.
25 *
26 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
27 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
28 * COMPLETENESS OR PERFORMANCE.
29 * $/LicenseInfo$
30 */
31
32#include "linden_common.h"
33
34#if LL_DBUS_ENABLED
35
36extern "C" {
37#include <dbus/dbus-glib.h>
38}
39
40#define DBUSGLIB_DYLIB_DEFAULT_NAME "libdbus-glib-1.so.2"
41
42bool grab_dbus_syms(std::string dbus_dso_name);
43void ungrab_dbus_syms();
44
45#define LL_DBUS_SYM(REQUIRED, DBUSSYM, RTN, ...) extern RTN (*ll##DBUSSYM)(__VA_ARGS__)
46#include "llappviewerlinux_api_dbus_syms_raw.inc"
47#undef LL_DBUS_SYM
48
49#endif // LL_DBUS_ENABLED
diff --git a/linden/indra/newview/llappviewerlinux_api_dbus_syms_raw.inc b/linden/indra/newview/llappviewerlinux_api_dbus_syms_raw.inc
new file mode 100644
index 0000000..c0548e2
--- /dev/null
+++ b/linden/indra/newview/llappviewerlinux_api_dbus_syms_raw.inc
@@ -0,0 +1,9 @@
1
2// required symbols to grab
3LL_DBUS_SYM(true, dbus_g_bus_get, DBusGConnection*, DBusBusType, GError**);
4LL_DBUS_SYM(true, dbus_g_proxy_new_for_name, DBusGProxy*, DBusGConnection*, const char *, const char*, const char*);
5LL_DBUS_SYM(true, dbus_g_proxy_call, gboolean, DBusGProxy*, const char*, GError**, GType, ...);
6LL_DBUS_SYM(true, dbus_g_object_type_install_info, void, GType, const DBusGObjectInfo*);
7LL_DBUS_SYM(true, dbus_g_connection_register_g_object, void, DBusGConnection*, const char*, GObject*);
8
9// optional symbols to grab
diff --git a/linden/indra/newview/llappviewermacosx.cpp b/linden/indra/newview/llappviewermacosx.cpp
index 68c3a16..0e5062d 100644
--- a/linden/indra/newview/llappviewermacosx.cpp
+++ b/linden/indra/newview/llappviewermacosx.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -48,12 +48,25 @@
48#include "llurldispatcher.h" 48#include "llurldispatcher.h"
49#include <Carbon/Carbon.h> 49#include <Carbon/Carbon.h>
50#include "lldir.h" 50#include "lldir.h"
51#include <signal.h>
52
51namespace 53namespace
52{ 54{
53 // The command line args stored. 55 // The command line args stored.
54 // They are not used immediately by the app. 56 // They are not used immediately by the app.
55 int gArgC; 57 int gArgC;
56 char** gArgV; 58 char** gArgV;
59
60 bool sCrashReporterIsRunning = false;
61
62 OSErr AEQuitHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn)
63 {
64 OSErr result = noErr;
65
66 LLAppViewer::instance()->userQuit();
67
68 return(result);
69 }
57} 70}
58 71
59int main( int argc, char **argv ) 72int main( int argc, char **argv )
@@ -193,22 +206,189 @@ bool LLAppViewerMacOSX::initParseCommandLine(LLCommandLineParser& clp)
193 return true; 206 return true;
194} 207}
195 208
209// *FIX:Mani It would be nice to provide a clean interface to get the
210// default_unix_signal_handler for the LLApp class.
211extern void default_unix_signal_handler(int, siginfo_t *, void *);
212bool LLAppViewerMacOSX::restoreErrorTrap()
213{
214 // This method intends to reinstate signal handlers.
215 // *NOTE:Mani It was found that the first execution of a shader was overriding
216 // our initial signal handlers somehow.
217 // This method will be called (at least) once per mainloop execution.
218 // *NOTE:Mani The signals used below are copied over from the
219 // setup_signals() func in LLApp.cpp
220 // LLApp could use some way of overriding that func, but for this viewer
221 // fix I opt to avoid affecting the server code.
222
223 // Set up signal handlers that may result in program termination
224 //
225 struct sigaction act;
226 struct sigaction old_act;
227 act.sa_sigaction = default_unix_signal_handler;
228 sigemptyset( &act.sa_mask );
229 act.sa_flags = SA_SIGINFO;
230
231 unsigned int reset_count = 0;
232
233#define SET_SIG(S) sigaction(SIGABRT, &act, &old_act); \
234 if((unsigned int)act.sa_sigaction != (unsigned int) old_act.sa_sigaction) \
235 ++reset_count;
236 // Synchronous signals
237 SET_SIG(SIGABRT)
238 SET_SIG(SIGALRM)
239 SET_SIG(SIGBUS)
240 SET_SIG(SIGFPE)
241 SET_SIG(SIGHUP)
242 SET_SIG(SIGILL)
243 SET_SIG(SIGPIPE)
244 SET_SIG(SIGSEGV)
245 SET_SIG(SIGSYS)
246
247 SET_SIG(LL_HEARTBEAT_SIGNAL)
248 SET_SIG(LL_SMACKDOWN_SIGNAL)
249
250 // Asynchronous signals that are normally ignored
251 SET_SIG(SIGCHLD)
252 SET_SIG(SIGUSR2)
253
254 // Asynchronous signals that result in attempted graceful exit
255 SET_SIG(SIGHUP)
256 SET_SIG(SIGTERM)
257 SET_SIG(SIGINT)
258
259 // Asynchronous signals that result in core
260 SET_SIG(SIGQUIT)
261#undef SET_SIG
262
263 return reset_count == 0;
264}
265
196void LLAppViewerMacOSX::handleSyncCrashTrace() 266void LLAppViewerMacOSX::handleSyncCrashTrace()
197{ 267{
198 // do nothing 268 // do nothing
199} 269}
200 270
201void LLAppViewerMacOSX::handleCrashReporting() 271static OSStatus CarbonEventHandler(EventHandlerCallRef inHandlerCallRef,
272 EventRef inEvent,
273 void* inUserData)
274{
275 ProcessSerialNumber psn;
276
277 GetEventParameter(inEvent,
278 kEventParamProcessID,
279 typeProcessSerialNumber,
280 NULL,
281 sizeof(psn),
282 NULL,
283 &psn);
284
285 if( GetEventKind(inEvent) == kEventAppTerminated )
286 {
287 Boolean matching_psn = FALSE;
288 OSErr os_result = SameProcess(&psn, (ProcessSerialNumber*)inUserData, &matching_psn);
289 if(os_result >= 0 && matching_psn)
290 {
291 sCrashReporterIsRunning = false;
292 }
293 }
294 return noErr;
295}
296
297void LLAppViewerMacOSX::handleCrashReporting(bool reportFreeze)
202{ 298{
203 // Macintosh 299 // This used to use fork&exec, but is switched to LSOpenApplication to
300 // Make sure the crash reporter launches in front of the SL window.
301
204 std::string command_str; 302 std::string command_str;
205 command_str += "open mac-crash-logger.app"; 303 //command_str = "open Second Life.app/Contents/Resources/mac-crash-logger.app";
304 command_str = "mac-crash-logger.app/Contents/MacOS/mac-crash-logger";
206 305
207 clear_signals(); 306 FSRef appRef;
208 llinfos << "Launching crash reporter using: '" << command_str << "'" << llendl; 307 Boolean isDir = 0;
209 system(command_str.c_str()); /* Flawfinder: ignore */ 308 OSStatus os_result = FSPathMakeRef((UInt8*)command_str.c_str(),
210 llinfos << "returned from crash reporter... dying" << llendl; 309 &appRef,
211 _exit(1); 310 &isDir);
311 if(os_result >= 0)
312 {
313 LSApplicationParameters appParams;
314 memset(&appParams, 0, sizeof(appParams));
315 appParams.version = 0;
316 appParams.flags = kLSLaunchNoParams | kLSLaunchStartClassic;
317 appParams.application = &appRef;
318
319 if(reportFreeze)
320 {
321 // Make sure freeze reporting launches the crash logger synchronously, lest
322 // Log files get changed by SL while the logger is running.
323
324 // *NOTE:Mani A better way - make a copy of the data that the crash reporter will send
325 // and let SL go about its business. This way makes the mac work like windows and linux
326 // and is the smallest patch for the issue.
327 sCrashReporterIsRunning = true;
328 ProcessSerialNumber o_psn;
329
330 static EventHandlerRef sCarbonEventsRef = NULL;
331 static const EventTypeSpec kEvents[] =
332 {
333 { kEventClassApplication, kEventAppTerminated }
334 };
335
336 // Install the handler to detect crash logger termination
337 InstallEventHandler(GetApplicationEventTarget(),
338 (EventHandlerUPP) CarbonEventHandler,
339 GetEventTypeCount(kEvents),
340 kEvents,
341 &o_psn,
342 &sCarbonEventsRef
343 );
344
345 // Remove, temporarily the quit handler - which has *crash* behavior before
346 // the mainloop gets running!
347 AERemoveEventHandler(kCoreEventClass,
348 kAEQuitApplication,
349 NewAEEventHandlerUPP(AEQuitHandler),
350 false);
351
352 // Launch the crash reporter.
353 os_result = LSOpenApplication(&appParams, &o_psn);
354
355 if(os_result >= 0)
356 {
357 EventRecord evt;
358 while(sCrashReporterIsRunning)
359 {
360 while(WaitNextEvent(osMask, &evt, 0, NULL))
361 {
362 // null op!?!
363 }
364 }
365 }
366
367 // Re-install the apps quit handler.
368 AEInstallEventHandler(kCoreEventClass,
369 kAEQuitApplication,
370 NewAEEventHandlerUPP(AEQuitHandler),
371 0,
372 false);
373
374 // Remove the crash reporter quit handler.
375 RemoveEventHandler(sCarbonEventsRef);
376 }
377 else
378 {
379 appParams.flags |= kLSLaunchAsync;
380 clear_signals();
381
382 ProcessSerialNumber o_psn;
383 os_result = LSOpenApplication(&appParams, &o_psn);
384 }
385
386 }
387
388 if(!reportFreeze)
389 {
390 _exit(1);
391 }
212} 392}
213 393
214std::string LLAppViewerMacOSX::generateSerialNumber() 394std::string LLAppViewerMacOSX::generateSerialNumber()
@@ -267,15 +447,6 @@ OSErr AEGURLHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn)
267 return(result); 447 return(result);
268} 448}
269 449
270OSErr AEQuitHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn)
271{
272 OSErr result = noErr;
273
274 LLAppViewer::instance()->userQuit();
275
276 return(result);
277}
278
279OSStatus simpleDialogHandler(EventHandlerCallRef handler, EventRef event, void *userdata) 450OSStatus simpleDialogHandler(EventHandlerCallRef handler, EventRef event, void *userdata)
280{ 451{
281 OSStatus result = eventNotHandledErr; 452 OSStatus result = eventNotHandledErr;
diff --git a/linden/indra/newview/llappviewermacosx.h b/linden/indra/newview/llappviewermacosx.h
index 0d8c460..1cb2713 100644
--- a/linden/indra/newview/llappviewermacosx.h
+++ b/linden/indra/newview/llappviewermacosx.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -49,7 +49,8 @@ public:
49 49
50 50
51protected: 51protected:
52 virtual void handleCrashReporting(); 52 virtual bool restoreErrorTrap();
53 virtual void handleCrashReporting(bool reportFreeze);
53 virtual void handleSyncCrashTrace(); 54 virtual void handleSyncCrashTrace();
54 55
55 std::string generateSerialNumber(); 56 std::string generateSerialNumber();
diff --git a/linden/indra/newview/llappviewerwin32.cpp b/linden/indra/newview/llappviewerwin32.cpp
index 9f37534..b68cad6 100644
--- a/linden/indra/newview/llappviewerwin32.cpp
+++ b/linden/indra/newview/llappviewerwin32.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -64,7 +64,7 @@
64 64
65#include "llcommandlineparser.h" 65#include "llcommandlineparser.h"
66 66
67//*FIX:Mani - This hack is to fix a linker issue with libndofdev.lib 67// *FIX:Mani - This hack is to fix a linker issue with libndofdev.lib
68// The lib was compiled under VS2005 - in VS2003 we need to remap assert 68// The lib was compiled under VS2005 - in VS2003 we need to remap assert
69#ifdef LL_DEBUG 69#ifdef LL_DEBUG
70#ifdef LL_MSVC7 70#ifdef LL_MSVC7
@@ -77,12 +77,15 @@ extern "C" {
77#endif 77#endif
78#endif 78#endif
79 79
80const std::string LLAppViewerWin32::sWindowClass = "Second Life";
81
80LONG WINAPI viewer_windows_exception_handler(struct _EXCEPTION_POINTERS *exception_infop) 82LONG WINAPI viewer_windows_exception_handler(struct _EXCEPTION_POINTERS *exception_infop)
81{ 83{
82 // *NOTE:Mani - this code is stolen from LLApp, where its never actually used. 84 // *NOTE:Mani - this code is stolen from LLApp, where its never actually used.
83 85 //OSMessageBox("Attach Debugger Now", "Error", OSMB_OK);
84 // Translate the signals/exceptions into cross-platform stuff 86 // Translate the signals/exceptions into cross-platform stuff
85 // Windows implementation 87 // Windows implementation
88 _tprintf( _T("Entering Windows Exception Handler...\n") );
86 llinfos << "Entering Windows Exception Handler..." << llendl; 89 llinfos << "Entering Windows Exception Handler..." << llendl;
87 90
88 // Make sure the user sees something to indicate that the app crashed. 91 // Make sure the user sees something to indicate that the app crashed.
@@ -90,7 +93,9 @@ LONG WINAPI viewer_windows_exception_handler(struct _EXCEPTION_POINTERS *excepti
90 93
91 if (LLApp::isError()) 94 if (LLApp::isError())
92 { 95 {
96 _tprintf( _T("Got another fatal signal while in the error handler, die now!\n") );
93 llwarns << "Got another fatal signal while in the error handler, die now!" << llendl; 97 llwarns << "Got another fatal signal while in the error handler, die now!" << llendl;
98
94 retval = EXCEPTION_EXECUTE_HANDLER; 99 retval = EXCEPTION_EXECUTE_HANDLER;
95 return retval; 100 return retval;
96 } 101 }
@@ -119,7 +124,28 @@ LONG WINAPI viewer_windows_exception_handler(struct _EXCEPTION_POINTERS *excepti
119 return retval; 124 return retval;
120} 125}
121 126
127// Create app mutex creates a unique global windows object.
128// If the object can be created it returns true, otherwise
129// it returns false. The false result can be used to determine
130// if another instance of a second life app (this vers. or later)
131// is running.
132// *NOTE: Do not use this method to run a single instance of the app.
133// This is intended to help debug problems with the cross-platform
134// locked file method used for that purpose.
135bool create_app_mutex()
136{
137 bool result = true;
138 LPCWSTR unique_mutex_name = L"SecondLifeAppMutex";
139 HANDLE hMutex;
140 hMutex = CreateMutex(NULL, TRUE, unique_mutex_name);
141 if(GetLastError() == ERROR_ALREADY_EXISTS)
142 {
143 result = false;
144 }
145 return result;
146}
122 147
148//#define DEBUGGING_SEH_FILTER 1
123#if DEBUGGING_SEH_FILTER 149#if DEBUGGING_SEH_FILTER
124# define WINMAIN DebuggingWinMain 150# define WINMAIN DebuggingWinMain
125#else 151#else
@@ -146,6 +172,10 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
146 172
147 viewer_app_ptr->setErrorHandler(LLAppViewer::handleViewerCrash); 173 viewer_app_ptr->setErrorHandler(LLAppViewer::handleViewerCrash);
148 174
175 // Set a debug info flag to indicate if multiple instances are running.
176 bool found_other_instance = !create_app_mutex();
177 gDebugInfo["FoundOtherInstanceAtStartup"] = LLSD::Boolean(found_other_instance);
178
149 bool ok = viewer_app_ptr->init(); 179 bool ok = viewer_app_ptr->init();
150 if(!ok) 180 if(!ok)
151 { 181 {
@@ -195,6 +225,16 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
195 } 225 }
196 delete viewer_app_ptr; 226 delete viewer_app_ptr;
197 viewer_app_ptr = NULL; 227 viewer_app_ptr = NULL;
228
229 //start updater
230 if(LLAppViewer::sUpdaterInfo)
231 {
232 _spawnl(_P_NOWAIT, LLAppViewer::sUpdaterInfo->mUpdateExePath.c_str(), LLAppViewer::sUpdaterInfo->mUpdateExePath.c_str(), LLAppViewer::sUpdaterInfo->mParams.str().c_str(), NULL);
233
234 delete LLAppViewer::sUpdaterInfo ;
235 LLAppViewer::sUpdaterInfo = NULL ;
236 }
237
198 return 0; 238 return 0;
199} 239}
200 240
@@ -324,6 +364,17 @@ bool LLAppViewerWin32::cleanup()
324 return result; 364 return result;
325} 365}
326 366
367bool LLAppViewerWin32::initLogging()
368{
369 // Remove the crash stack log from previous executions.
370 // Since we've started logging a new instance of the app, we can assume
371 // *NOTE: This should happen before the we send a 'previous instance froze'
372 // crash report, but it must happen after we initialize the DirUtil.
373 LLWinDebug::clearCrashStacks();
374
375 return LLAppViewer::initLogging();
376}
377
327void LLAppViewerWin32::initConsole() 378void LLAppViewerWin32::initConsole()
328{ 379{
329 // pop up debug console 380 // pop up debug console
@@ -405,7 +456,7 @@ bool LLAppViewerWin32::initHardwareTest()
405 LLSplashScreen::update(splash_msg.str()); 456 LLSplashScreen::update(splash_msg.str());
406 } 457 }
407 458
408 if (!LLWinDebug::checkExceptionHandler()) 459 if (!restoreErrorTrap())
409 { 460 {
410 LL_WARNS("AppInit") << " Someone took over my exception handler (post hardware probe)!" << LL_ENDL; 461 LL_WARNS("AppInit") << " Someone took over my exception handler (post hardware probe)!" << LL_ENDL;
411 } 462 }
@@ -445,39 +496,69 @@ bool LLAppViewerWin32::initParseCommandLine(LLCommandLineParser& clp)
445 return true; 496 return true;
446} 497}
447 498
499bool LLAppViewerWin32::restoreErrorTrap()
500{
501 return LLWinDebug::checkExceptionHandler();
502}
503
448void LLAppViewerWin32::handleSyncCrashTrace() 504void LLAppViewerWin32::handleSyncCrashTrace()
449{ 505{
450 // do nothing 506 // do nothing
451} 507}
452 508
453void LLAppViewerWin32::handleCrashReporting() 509void LLAppViewerWin32::handleCrashReporting(bool reportFreeze)
454{ 510{
455 // Windows only behaivor. Spawn win crash reporter. 511 const char* logger_name = "win_crash_logger.exe";
456 std::string exe_path = gDirUtilp->getAppRODataDir(); 512 std::string exe_path = gDirUtilp->getExecutableDir();
457 exe_path += gDirUtilp->getDirDelimiter(); 513 exe_path += gDirUtilp->getDirDelimiter();
458 exe_path += "win_crash_logger.exe"; 514 exe_path += logger_name;
459 515
460 std::string arg_string = "-user "; 516 const char* arg_str = logger_name;
461 arg_string += LLViewerLogin::getInstance()->getGridLabel(); 517
462 518 // *NOTE:Mani - win_crash_logger.exe no longer parses command line options.
463 S32 cb = gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING); 519 if(reportFreeze)
464 switch(cb)
465 { 520 {
466 case CRASH_BEHAVIOR_ASK: 521 // Spawn crash logger.
467 default: 522 // NEEDS to wait until completion, otherwise log files will get smashed.
468 arg_string += " -dialog "; 523 _spawnl(_P_WAIT, exe_path.c_str(), arg_str, NULL);
469 _spawnl(_P_NOWAIT, exe_path.c_str(), exe_path.c_str(), arg_string.c_str(), NULL);
470 break;
471
472 case CRASH_BEHAVIOR_ALWAYS_SEND:
473 _spawnl(_P_NOWAIT, exe_path.c_str(), exe_path.c_str(), arg_string.c_str(), NULL);
474 break;
475
476 case CRASH_BEHAVIOR_NEVER_SEND:
477 break;
478 } 524 }
525 else
526 {
527 S32 cb = gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING);
528 if(cb != CRASH_BEHAVIOR_NEVER_SEND)
529 {
530 _spawnl(_P_NOWAIT, exe_path.c_str(), arg_str, NULL);
531 }
532 }
533}
534
535//virtual
536bool LLAppViewerWin32::sendURLToOtherInstance(const std::string& url)
537{
538 wchar_t window_class[256]; /* Flawfinder: ignore */ // Assume max length < 255 chars.
539 mbstowcs(window_class, sWindowClass.c_str(), 255);
540 window_class[255] = 0;
541 // Use the class instead of the window name.
542 HWND other_window = FindWindow(window_class, NULL);
543
544 if (other_window != NULL)
545 {
546 lldebugs << "Found other window with the name '" << getWindowTitle() << "'" << llendl;
547 COPYDATASTRUCT cds;
548 const S32 SLURL_MESSAGE_TYPE = 0;
549 cds.dwData = SLURL_MESSAGE_TYPE;
550 cds.cbData = url.length() + 1;
551 cds.lpData = (void*)url.c_str();
552
553 LRESULT msg_result = SendMessage(other_window, WM_COPYDATA, NULL, (LPARAM)&cds);
554 lldebugs << "SendMessage(WM_COPYDATA) to other window '"
555 << getWindowTitle() << "' returned " << msg_result << llendl;
556 return true;
557 }
558 return false;
479} 559}
480 560
561
481std::string LLAppViewerWin32::generateSerialNumber() 562std::string LLAppViewerWin32::generateSerialNumber()
482{ 563{
483 char serial_md5[MD5HEX_STR_SIZE]; // Flawfinder: ignore 564 char serial_md5[MD5HEX_STR_SIZE]; // Flawfinder: ignore
diff --git a/linden/indra/newview/llappviewerwin32.h b/linden/indra/newview/llappviewerwin32.h
index fe16ec4..3812c43 100644
--- a/linden/indra/newview/llappviewerwin32.h
+++ b/linden/indra/newview/llappviewerwin32.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -49,15 +49,21 @@ public:
49 virtual bool cleanup(); 49 virtual bool cleanup();
50 50
51protected: 51protected:
52 virtual bool initLogging(); // Override to clean stack_trace info.
52 virtual void initConsole(); // Initialize OS level debugging console. 53 virtual void initConsole(); // Initialize OS level debugging console.
53 virtual bool initHardwareTest(); // Win32 uses DX9 to test hardware. 54 virtual bool initHardwareTest(); // Win32 uses DX9 to test hardware.
54 virtual bool initParseCommandLine(LLCommandLineParser& clp); 55 virtual bool initParseCommandLine(LLCommandLineParser& clp);
55 56
56 virtual void handleCrashReporting(); 57 virtual bool restoreErrorTrap();
58 virtual void handleCrashReporting(bool reportFreeze);
57 virtual void handleSyncCrashTrace(); 59 virtual void handleSyncCrashTrace();
58 60
61 virtual bool sendURLToOtherInstance(const std::string& url);
62
59 std::string generateSerialNumber(); 63 std::string generateSerialNumber();
60 64
65 static const std::string sWindowClass;
66
61private: 67private:
62 void disableWinErrorReporting(); 68 void disableWinErrorReporting();
63 69
diff --git a/linden/indra/newview/llassetuploadqueue.cpp b/linden/indra/newview/llassetuploadqueue.cpp
index f645828..5bd0b63 100644
--- a/linden/indra/newview/llassetuploadqueue.cpp
+++ b/linden/indra/newview/llassetuploadqueue.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llassetuploadqueue.h b/linden/indra/newview/llassetuploadqueue.h
index 7c98a99..f375e49 100644
--- a/linden/indra/newview/llassetuploadqueue.h
+++ b/linden/indra/newview/llassetuploadqueue.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llassetuploadresponders.cpp b/linden/indra/newview/llassetuploadresponders.cpp
index 2d40e94..be3882e 100644
--- a/linden/indra/newview/llassetuploadresponders.cpp
+++ b/linden/indra/newview/llassetuploadresponders.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llassetuploadresponders.h b/linden/indra/newview/llassetuploadresponders.h
index dd74c13..92b3c88 100644
--- a/linden/indra/newview/llassetuploadresponders.h
+++ b/linden/indra/newview/llassetuploadresponders.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llaudiosourcevo.cpp b/linden/indra/newview/llaudiosourcevo.cpp
index 9c25d94..6e0caad 100644
--- a/linden/indra/newview/llaudiosourcevo.cpp
+++ b/linden/indra/newview/llaudiosourcevo.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -39,7 +39,7 @@
39#include "llviewerparcelmgr.h" 39#include "llviewerparcelmgr.h"
40 40
41LLAudioSourceVO::LLAudioSourceVO(const LLUUID &sound_id, const LLUUID& owner_id, const F32 gain, LLViewerObject *objectp) 41LLAudioSourceVO::LLAudioSourceVO(const LLUUID &sound_id, const LLUUID& owner_id, const F32 gain, LLViewerObject *objectp)
42: LLAudioSource(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX), 42 : LLAudioSource(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX),
43 mObjectp(objectp), 43 mObjectp(objectp),
44 mActualGain(gain) 44 mActualGain(gain)
45{ 45{
diff --git a/linden/indra/newview/llaudiosourcevo.h b/linden/indra/newview/llaudiosourcevo.h
index 7e07491..f5eba1f 100644
--- a/linden/indra/newview/llaudiosourcevo.h
+++ b/linden/indra/newview/llaudiosourcevo.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llbbox.cpp b/linden/indra/newview/llbbox.cpp
index 98db7b7..19cbe6d 100644
--- a/linden/indra/newview/llbbox.cpp
+++ b/linden/indra/newview/llbbox.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llbbox.h b/linden/indra/newview/llbbox.h
index 5242a9b..debf932 100644
--- a/linden/indra/newview/llbbox.h
+++ b/linden/indra/newview/llbbox.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llbox.cpp b/linden/indra/newview/llbox.cpp
index 1e6d282..2e9b022 100644
--- a/linden/indra/newview/llbox.cpp
+++ b/linden/indra/newview/llbox.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -81,7 +81,7 @@ void LLBox::renderface(S32 which_face)
81 {7, 4, 0, 3} 81 {7, 4, 0, 3}
82 }; 82 };
83 83
84 gGL.begin(LLVertexBuffer::QUADS); 84 gGL.begin(LLRender::QUADS);
85 //gGL.normal3fv(&normals[which_face][0]); 85 //gGL.normal3fv(&normals[which_face][0]);
86 gGL.texCoord2f(1,0); 86 gGL.texCoord2f(1,0);
87 gGL.vertex3fv(&mVertex[ faces[which_face][0] ][0]); 87 gGL.vertex3fv(&mVertex[ faces[which_face][0] ][0]);
diff --git a/linden/indra/newview/llbox.h b/linden/indra/newview/llbox.h
index b9fdc35..7ba7173 100644
--- a/linden/indra/newview/llbox.h
+++ b/linden/indra/newview/llbox.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcallbacklist.cpp b/linden/indra/newview/llcallbacklist.cpp
index 3f6fcce..e233ab7 100644
--- a/linden/indra/newview/llcallbacklist.cpp
+++ b/linden/indra/newview/llcallbacklist.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcallbacklist.h b/linden/indra/newview/llcallbacklist.h
index 5c03909..d1e1246 100644
--- a/linden/indra/newview/llcallbacklist.h
+++ b/linden/indra/newview/llcallbacklist.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcallingcard.cpp b/linden/indra/newview/llcallingcard.cpp
index 3252b30..b7fd3b0 100644
--- a/linden/indra/newview/llcallingcard.cpp
+++ b/linden/indra/newview/llcallingcard.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcallingcard.h b/linden/indra/newview/llcallingcard.h
index 13709cd..cbcb237 100644
--- a/linden/indra/newview/llcallingcard.h
+++ b/linden/indra/newview/llcallingcard.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcaphttpsender.cpp b/linden/indra/newview/llcaphttpsender.cpp
index a227931..e3eca6f 100644
--- a/linden/indra/newview/llcaphttpsender.cpp
+++ b/linden/indra/newview/llcaphttpsender.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcaphttpsender.h b/linden/indra/newview/llcaphttpsender.h
index d4b4747..0a05cd1 100644
--- a/linden/indra/newview/llcaphttpsender.h
+++ b/linden/indra/newview/llcaphttpsender.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llchatbar.cpp b/linden/indra/newview/llchatbar.cpp
index 31fa653..84ebf98 100644
--- a/linden/indra/newview/llchatbar.cpp
+++ b/linden/indra/newview/llchatbar.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -553,15 +553,17 @@ void LLChatBar::onInputEditorGainFocus( LLFocusableElement* caller, void* userda
553// static 553// static
554void LLChatBar::onClickSay( LLUICtrl* ctrl, void* userdata ) 554void LLChatBar::onClickSay( LLUICtrl* ctrl, void* userdata )
555{ 555{
556 LLChatBar* self = (LLChatBar*) userdata; 556 e_chat_type chat_type = CHAT_TYPE_NORMAL;
557 if (ctrl->getValue().asString() == "shout") 557 if (ctrl->getValue().asString() == "shout")
558 { 558 {
559 self->sendChat( CHAT_TYPE_SHOUT ); 559 chat_type = CHAT_TYPE_SHOUT;
560 } 560 }
561 else 561 else if (ctrl->getValue().asString() == "whisper")
562 { 562 {
563 self->sendChat( CHAT_TYPE_NORMAL ); 563 chat_type = CHAT_TYPE_WHISPER;
564 } 564 }
565 LLChatBar* self = (LLChatBar*) userdata;
566 self->sendChat(chat_type);
565} 567}
566 568
567void LLChatBar::sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate) 569void LLChatBar::sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate)
diff --git a/linden/indra/newview/llchatbar.h b/linden/indra/newview/llchatbar.h
index 93aaaa4..72c797a 100644
--- a/linden/indra/newview/llchatbar.h
+++ b/linden/indra/newview/llchatbar.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llclassifiedinfo.cpp b/linden/indra/newview/llclassifiedinfo.cpp
index 6a830cf..3ff2882 100644
--- a/linden/indra/newview/llclassifiedinfo.cpp
+++ b/linden/indra/newview/llclassifiedinfo.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llclassifiedinfo.h b/linden/indra/newview/llclassifiedinfo.h
index ce648f7..496d138 100644
--- a/linden/indra/newview/llclassifiedinfo.h
+++ b/linden/indra/newview/llclassifiedinfo.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llclassifiedstatsresponder.cpp b/linden/indra/newview/llclassifiedstatsresponder.cpp
index 48aef45..6e7ff89 100644
--- a/linden/indra/newview/llclassifiedstatsresponder.cpp
+++ b/linden/indra/newview/llclassifiedstatsresponder.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llclassifiedstatsresponder.h b/linden/indra/newview/llclassifiedstatsresponder.h
index cedd481..775daf4 100644
--- a/linden/indra/newview/llclassifiedstatsresponder.h
+++ b/linden/indra/newview/llclassifiedstatsresponder.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcloud.cpp b/linden/indra/newview/llcloud.cpp
index 92199a7..754a3a7 100644
--- a/linden/indra/newview/llcloud.cpp
+++ b/linden/indra/newview/llcloud.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcloud.h b/linden/indra/newview/llcloud.h
index a28119d..33e9685 100644
--- a/linden/indra/newview/llcloud.h
+++ b/linden/indra/newview/llcloud.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcolorscheme.cpp b/linden/indra/newview/llcolorscheme.cpp
index 460f1a2..3b12acf 100644
--- a/linden/indra/newview/llcolorscheme.cpp
+++ b/linden/indra/newview/llcolorscheme.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcolorscheme.h b/linden/indra/newview/llcolorscheme.h
index bf1e053..9660042 100644
--- a/linden/indra/newview/llcolorscheme.h
+++ b/linden/indra/newview/llcolorscheme.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcolorswatch.cpp b/linden/indra/newview/llcolorswatch.cpp
index d2a0aba..954bd9a 100644
--- a/linden/indra/newview/llcolorswatch.cpp
+++ b/linden/indra/newview/llcolorswatch.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcolorswatch.h b/linden/indra/newview/llcolorswatch.h
index 5db9ea5..159e7b2 100644
--- a/linden/indra/newview/llcolorswatch.h
+++ b/linden/indra/newview/llcolorswatch.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcommandhandler.cpp b/linden/indra/newview/llcommandhandler.cpp
index 6e7014c..154fc51 100644
--- a/linden/indra/newview/llcommandhandler.cpp
+++ b/linden/indra/newview/llcommandhandler.cpp
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2007&license=viewergpl$ 7 * $LicenseInfo:firstyear=2007&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2007-2008, Linden Research, Inc. 9 * Copyright (c) 2007-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcommandhandler.h b/linden/indra/newview/llcommandhandler.h
index 8bad6b4..d12fd19 100644
--- a/linden/indra/newview/llcommandhandler.h
+++ b/linden/indra/newview/llcommandhandler.h
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2007&license=viewergpl$ 7 * $LicenseInfo:firstyear=2007&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2007-2008, Linden Research, Inc. 9 * Copyright (c) 2007-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcommandlineparser.cpp b/linden/indra/newview/llcommandlineparser.cpp
index dc6a1e2..d1cf9a7 100644
--- a/linden/indra/newview/llcommandlineparser.cpp
+++ b/linden/indra/newview/llcommandlineparser.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -416,11 +416,6 @@ void setControlValueCB(const LLCommandLineParser::token_vector_t& value,
416 const std::string& opt_name, 416 const std::string& opt_name,
417 LLControlGroup* ctrlGroup) 417 LLControlGroup* ctrlGroup)
418{ 418{
419 if(value.size() > 1)
420 {
421 llwarns << "Ignoring extra tokens mapped to the setting: " << opt_name << "." << llendl;
422 }
423
424 // *FIX: Do sematic conversion here. 419 // *FIX: Do sematic conversion here.
425 // LLSD (ImplString) Is no good for doing string to type conversion for... 420 // LLSD (ImplString) Is no good for doing string to type conversion for...
426 // booleans 421 // booleans
@@ -457,7 +452,7 @@ void setControlValueCB(const LLCommandLineParser::token_vector_t& value,
457 default: 452 default:
458 { 453 {
459 // For the default types, let llsd do the conversion. 454 // For the default types, let llsd do the conversion.
460 if(value.size() > 1) 455 if(value.size() > 1 && ctrl->isType(TYPE_LLSD))
461 { 456 {
462 // Assume its an array... 457 // Assume its an array...
463 LLSD llsdArray; 458 LLSD llsdArray;
@@ -472,6 +467,11 @@ void setControlValueCB(const LLCommandLineParser::token_vector_t& value,
472 } 467 }
473 else if(value.size() > 0) 468 else if(value.size() > 0)
474 { 469 {
470 if(value.size() > 1)
471 {
472 llwarns << "Ignoring extra tokens mapped to the setting: " << opt_name << "." << llendl;
473 }
474
475 LLSD llsdValue; 475 LLSD llsdValue;
476 llsdValue.assign(LLSD::String(value[0])); 476 llsdValue.assign(LLSD::String(value[0]));
477 ctrl->setValue(llsdValue, false); 477 ctrl->setValue(llsdValue, false);
diff --git a/linden/indra/newview/llcommandlineparser.h b/linden/indra/newview/llcommandlineparser.h
index 601a255..be296b5 100644
--- a/linden/indra/newview/llcommandlineparser.h
+++ b/linden/indra/newview/llcommandlineparser.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcompass.cpp b/linden/indra/newview/llcompass.cpp
index f4dbbb8..03a431e 100644
--- a/linden/indra/newview/llcompass.cpp
+++ b/linden/indra/newview/llcompass.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcompass.h b/linden/indra/newview/llcompass.h
index 4f1498f..3d4139b 100644
--- a/linden/indra/newview/llcompass.h
+++ b/linden/indra/newview/llcompass.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcompilequeue.cpp b/linden/indra/newview/llcompilequeue.cpp
index b4f1a22..422c2a7 100644
--- a/linden/indra/newview/llcompilequeue.cpp
+++ b/linden/indra/newview/llcompilequeue.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -61,6 +61,8 @@
61#include "lluictrlfactory.h" 61#include "lluictrlfactory.h"
62#include "llselectmgr.h" 62#include "llselectmgr.h"
63 63
64#include "llselectmgr.h"
65
64///---------------------------------------------------------------------------- 66///----------------------------------------------------------------------------
65/// Local function declarations, constants, enums, and typedefs 67/// Local function declarations, constants, enums, and typedefs
66///---------------------------------------------------------------------------- 68///----------------------------------------------------------------------------
diff --git a/linden/indra/newview/llcompilequeue.h b/linden/indra/newview/llcompilequeue.h
index 6a3a10a..470ba96 100644
--- a/linden/indra/newview/llcompilequeue.h
+++ b/linden/indra/newview/llcompilequeue.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llconfirmationmanager.cpp b/linden/indra/newview/llconfirmationmanager.cpp
index 0e56452..18e73c6 100644
--- a/linden/indra/newview/llconfirmationmanager.cpp
+++ b/linden/indra/newview/llconfirmationmanager.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llconfirmationmanager.h b/linden/indra/newview/llconfirmationmanager.h
index 0b8dedb..bfbfdc1 100644
--- a/linden/indra/newview/llconfirmationmanager.h
+++ b/linden/indra/newview/llconfirmationmanager.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llconsole.cpp b/linden/indra/newview/llconsole.cpp
index 3ee11ff..941c9ca 100644
--- a/linden/indra/newview/llconsole.cpp
+++ b/linden/indra/newview/llconsole.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llconsole.h b/linden/indra/newview/llconsole.h
index ec5cd31..91fc821 100644
--- a/linden/indra/newview/llconsole.h
+++ b/linden/indra/newview/llconsole.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcontainerview.cpp b/linden/indra/newview/llcontainerview.cpp
index dbec409..c052f99 100644
--- a/linden/indra/newview/llcontainerview.cpp
+++ b/linden/indra/newview/llcontainerview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -88,7 +88,7 @@ BOOL LLContainerView::handleMouseUp(S32 x, S32 y, MASK mask)
88void LLContainerView::draw() 88void LLContainerView::draw()
89{ 89{
90 { 90 {
91 LLGLSNoTexture gls_no_texture; 91 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
92 92
93 gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4(0.f, 0.f, 0.f, 0.25f)); 93 gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4(0.f, 0.f, 0.f, 0.25f));
94 } 94 }
diff --git a/linden/indra/newview/llcontainerview.h b/linden/indra/newview/llcontainerview.h
index a65f7a7..93d2520 100644
--- a/linden/indra/newview/llcontainerview.h
+++ b/linden/indra/newview/llcontainerview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcurrencyuimanager.cpp b/linden/indra/newview/llcurrencyuimanager.cpp
index ddacd3b..e1880e8 100644
--- a/linden/indra/newview/llcurrencyuimanager.cpp
+++ b/linden/indra/newview/llcurrencyuimanager.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcurrencyuimanager.h b/linden/indra/newview/llcurrencyuimanager.h
index 858cc5c..8dde42e 100644
--- a/linden/indra/newview/llcurrencyuimanager.h
+++ b/linden/indra/newview/llcurrencyuimanager.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcylinder.cpp b/linden/indra/newview/llcylinder.cpp
index c05a380..f36781f 100644
--- a/linden/indra/newview/llcylinder.cpp
+++ b/linden/indra/newview/llcylinder.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llcylinder.h b/linden/indra/newview/llcylinder.h
index b4ec9c6..7ccd470 100644
--- a/linden/indra/newview/llcylinder.h
+++ b/linden/indra/newview/llcylinder.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldebugmessagebox.cpp b/linden/indra/newview/lldebugmessagebox.cpp
index c8596f0..dfd6955 100644
--- a/linden/indra/newview/lldebugmessagebox.cpp
+++ b/linden/indra/newview/lldebugmessagebox.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldebugmessagebox.h b/linden/indra/newview/lldebugmessagebox.h
index 6e333b5..ec70ff1 100644
--- a/linden/indra/newview/lldebugmessagebox.h
+++ b/linden/indra/newview/lldebugmessagebox.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldebugview.cpp b/linden/indra/newview/lldebugview.cpp
index 69d724e..b3c9c8a 100644
--- a/linden/indra/newview/lldebugview.cpp
+++ b/linden/indra/newview/lldebugview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldebugview.h b/linden/indra/newview/lldebugview.h
index aaa1f57..3a4f02b 100644
--- a/linden/indra/newview/lldebugview.h
+++ b/linden/indra/newview/lldebugview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldelayedgestureerror.cpp b/linden/indra/newview/lldelayedgestureerror.cpp
index 6c7f967..3924640 100644
--- a/linden/indra/newview/lldelayedgestureerror.cpp
+++ b/linden/indra/newview/lldelayedgestureerror.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2004&license=viewergpl$ 6 * $LicenseInfo:firstyear=2004&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2004-2008, Linden Research, Inc. 8 * Copyright (c) 2004-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldelayedgestureerror.h b/linden/indra/newview/lldelayedgestureerror.h
index e7e059f..26775e1 100644
--- a/linden/indra/newview/lldelayedgestureerror.h
+++ b/linden/indra/newview/lldelayedgestureerror.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2004&license=viewergpl$ 6 * $LicenseInfo:firstyear=2004&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2004-2008, Linden Research, Inc. 8 * Copyright (c) 2004-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldirpicker.cpp b/linden/indra/newview/lldirpicker.cpp
index b0868b5..e9044e3 100644
--- a/linden/indra/newview/lldirpicker.cpp
+++ b/linden/indra/newview/lldirpicker.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldirpicker.h b/linden/indra/newview/lldirpicker.h
index e9b2d0e..72e158b 100644
--- a/linden/indra/newview/lldirpicker.h
+++ b/linden/indra/newview/lldirpicker.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawable.cpp b/linden/indra/newview/lldrawable.cpp
index e058681..16b282b 100644
--- a/linden/indra/newview/lldrawable.cpp
+++ b/linden/indra/newview/lldrawable.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -362,6 +362,7 @@ void LLDrawable::makeActive()
362 if (pcode == LLViewerObject::LL_VO_WATER || 362 if (pcode == LLViewerObject::LL_VO_WATER ||
363 pcode == LLViewerObject::LL_VO_SURFACE_PATCH || 363 pcode == LLViewerObject::LL_VO_SURFACE_PATCH ||
364 pcode == LLViewerObject::LL_VO_PART_GROUP || 364 pcode == LLViewerObject::LL_VO_PART_GROUP ||
365 pcode == LLViewerObject::LL_VO_HUD_PART_GROUP ||
365 pcode == LLViewerObject::LL_VO_CLOUDS || 366 pcode == LLViewerObject::LL_VO_CLOUDS ||
366 pcode == LLViewerObject::LL_VO_GROUND || 367 pcode == LLViewerObject::LL_VO_GROUND ||
367 pcode == LLViewerObject::LL_VO_SKY) 368 pcode == LLViewerObject::LL_VO_SKY)
@@ -1392,7 +1393,10 @@ BOOL LLDrawable::isAnimating() const
1392 { 1393 {
1393 return TRUE; 1394 return TRUE;
1394 } 1395 }
1395 1396 if (mVObjp->getPCode() == LLViewerObject::LL_VO_HUD_PART_GROUP)
1397 {
1398 return TRUE;
1399 }
1396 if (mVObjp->getPCode() == LLViewerObject::LL_VO_CLOUDS) 1400 if (mVObjp->getPCode() == LLViewerObject::LL_VO_CLOUDS)
1397 { 1401 {
1398 return TRUE; 1402 return TRUE;
diff --git a/linden/indra/newview/lldrawable.h b/linden/indra/newview/lldrawable.h
index 76ba3f5..15ad2e1 100644
--- a/linden/indra/newview/lldrawable.h
+++ b/linden/indra/newview/lldrawable.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpool.cpp b/linden/indra/newview/lldrawpool.cpp
index 9d8bd0a..fe4a405 100644
--- a/linden/indra/newview/lldrawpool.cpp
+++ b/linden/indra/newview/lldrawpool.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -194,7 +194,8 @@ S32 LLFacePool::drawLoopSetTex(face_array_t& face_list, S32 stage)
194 iter != face_list.end(); iter++) 194 iter != face_list.end(); iter++)
195 { 195 {
196 LLFace *facep = *iter; 196 LLFace *facep = *iter;
197 facep->bindTexture(stage); 197 gGL.getTexUnit(stage)->bind(facep->getTexture());
198 gGL.getTexUnit(0)->activate();
198 res += facep->renderIndexed(); 199 res += facep->renderIndexed();
199 } 200 }
200 } 201 }
@@ -395,7 +396,7 @@ void LLRenderPass::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture)
395 { 396 {
396 if (params.mTexture.notNull()) 397 if (params.mTexture.notNull())
397 { 398 {
398 params.mTexture->bind(); 399 gGL.getTexUnit(0)->bind(params.mTexture.get());
399 if (params.mTextureMatrix) 400 if (params.mTextureMatrix)
400 { 401 {
401 glMatrixMode(GL_TEXTURE); 402 glMatrixMode(GL_TEXTURE);
@@ -406,14 +407,14 @@ void LLRenderPass::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture)
406 } 407 }
407 else 408 else
408 { 409 {
409 LLImageGL::unbindTexture(0); 410 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
410 } 411 }
411 } 412 }
412 413
413 if (params.mVertexBuffer.notNull()) 414 if (params.mVertexBuffer.notNull())
414 { 415 {
415 params.mVertexBuffer->setBuffer(mask); 416 params.mVertexBuffer->setBuffer(mask);
416 params.mVertexBuffer->drawRange(LLVertexBuffer::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset); 417 params.mVertexBuffer->drawRange(LLRender::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset);
417 gPipeline.addTrianglesDrawn(params.mCount/3); 418 gPipeline.addTrianglesDrawn(params.mCount/3);
418 } 419 }
419 420
diff --git a/linden/indra/newview/lldrawpool.h b/linden/indra/newview/lldrawpool.h
index 3c80aef..30049ec 100644
--- a/linden/indra/newview/lldrawpool.h
+++ b/linden/indra/newview/lldrawpool.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpoolalpha.cpp b/linden/indra/newview/lldrawpoolalpha.cpp
index 28263b2..2452ee8 100644
--- a/linden/indra/newview/lldrawpoolalpha.cpp
+++ b/linden/indra/newview/lldrawpoolalpha.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -129,7 +129,7 @@ void LLDrawPoolAlpha::render(S32 pass)
129 gPipeline.enableLightsFullbright(LLColor4(1,1,1,1)); 129 gPipeline.enableLightsFullbright(LLColor4(1,1,1,1));
130 glColor4f(1,0,0,1); 130 glColor4f(1,0,0,1);
131 LLViewerImage::sSmokeImagep->addTextureStats(1024.f*1024.f); 131 LLViewerImage::sSmokeImagep->addTextureStats(1024.f*1024.f);
132 LLViewerImage::sSmokeImagep->bind(); 132 gGL.getTexUnit(0)->bind(LLViewerImage::sSmokeImagep.get());
133 renderAlphaHighlight(LLVertexBuffer::MAP_VERTEX | 133 renderAlphaHighlight(LLVertexBuffer::MAP_VERTEX |
134 LLVertexBuffer::MAP_TEXCOORD); 134 LLVertexBuffer::MAP_TEXCOORD);
135 } 135 }
@@ -170,7 +170,7 @@ void LLDrawPoolAlpha::renderAlphaHighlight(U32 mask)
170 LLRenderPass::applyModelMatrix(params); 170 LLRenderPass::applyModelMatrix(params);
171 171
172 params.mVertexBuffer->setBuffer(mask); 172 params.mVertexBuffer->setBuffer(mask);
173 params.mVertexBuffer->drawRange(LLVertexBuffer::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset); 173 params.mVertexBuffer->drawRange(LLRender::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset);
174 gPipeline.addTrianglesDrawn(params.mCount/3); 174 gPipeline.addTrianglesDrawn(params.mCount/3);
175 } 175 }
176 } 176 }
@@ -231,7 +231,7 @@ void LLDrawPoolAlpha::renderGroupAlpha(LLSpatialGroup* group, U32 type, U32 mask
231 if (texture && params.mTexture.notNull()) 231 if (texture && params.mTexture.notNull())
232 { 232 {
233 gGL.getTexUnit(0)->activate(); 233 gGL.getTexUnit(0)->activate();
234 params.mTexture->bind(); 234 gGL.getTexUnit(0)->bind(params.mTexture.get());
235 params.mTexture->addTextureStats(params.mVSize); 235 params.mTexture->addTextureStats(params.mVSize);
236 if (params.mTextureMatrix) 236 if (params.mTextureMatrix)
237 { 237 {
@@ -288,7 +288,7 @@ void LLDrawPoolAlpha::renderGroupAlpha(LLSpatialGroup* group, U32 type, U32 mask
288 } 288 }
289 289
290 params.mVertexBuffer->setBuffer(mask); 290 params.mVertexBuffer->setBuffer(mask);
291 params.mVertexBuffer->drawRange(LLVertexBuffer::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset); 291 params.mVertexBuffer->drawRange(LLRender::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset);
292 gPipeline.addTrianglesDrawn(params.mCount/3); 292 gPipeline.addTrianglesDrawn(params.mCount/3);
293 293
294 if (params.mTextureMatrix && texture && params.mTexture.notNull()) 294 if (params.mTextureMatrix && texture && params.mTexture.notNull())
diff --git a/linden/indra/newview/lldrawpoolalpha.h b/linden/indra/newview/lldrawpoolalpha.h
index b717398..a7a5730 100644
--- a/linden/indra/newview/lldrawpoolalpha.h
+++ b/linden/indra/newview/lldrawpoolalpha.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpoolavatar.cpp b/linden/indra/newview/lldrawpoolavatar.cpp
index 97ff072..7ab6428 100644
--- a/linden/indra/newview/lldrawpoolavatar.cpp
+++ b/linden/indra/newview/lldrawpoolavatar.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -396,7 +396,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)
396 { 396 {
397 397
398 /* // debug code to draw a cube in place of avatar 398 /* // debug code to draw a cube in place of avatar
399 LLGLSNoTexture gls_no_texture; 399 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
400 LLVector3 pos = avatarp->getPositionAgent(); 400 LLVector3 pos = avatarp->getPositionAgent();
401 401
402 gGL.color4f(1.0f, 0.0f, 0.0f, 0.8f); 402 gGL.color4f(1.0f, 0.0f, 0.0f, 0.8f);
@@ -495,17 +495,17 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)
495 { 495 {
496 if (LLVOAvatar::sShowCollisionVolumes) 496 if (LLVOAvatar::sShowCollisionVolumes)
497 { 497 {
498 LLGLSNoTexture no_texture; 498 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
499 avatarp->renderCollisionVolumes(); 499 avatarp->renderCollisionVolumes();
500 } 500 }
501 501
502 if (avatarp->mIsSelf && LLAgent::sDebugDisplayTarget) 502 if (avatarp->mIsSelf && LLAgent::sDebugDisplayTarget)
503 { 503 {
504 LLGLSNoTexture gls_no_texture; 504 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
505 LLVector3 pos = avatarp->getPositionAgent(); 505 LLVector3 pos = avatarp->getPositionAgent();
506 506
507 gGL.color4f(1.0f, 0.0f, 0.0f, 0.8f); 507 gGL.color4f(1.0f, 0.0f, 0.0f, 0.8f);
508 gGL.begin(LLVertexBuffer::LINES); 508 gGL.begin(LLRender::LINES);
509 { 509 {
510 gGL.vertex3fv((pos - LLVector3(0.2f, 0.f, 0.f)).mV); 510 gGL.vertex3fv((pos - LLVector3(0.2f, 0.f, 0.f)).mV);
511 gGL.vertex3fv((pos + LLVector3(0.2f, 0.f, 0.f)).mV); 511 gGL.vertex3fv((pos + LLVector3(0.2f, 0.f, 0.f)).mV);
@@ -517,7 +517,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)
517 517
518 pos = avatarp->mDrawable->getPositionAgent(); 518 pos = avatarp->mDrawable->getPositionAgent();
519 gGL.color4f(1.0f, 0.0f, 0.0f, 0.8f); 519 gGL.color4f(1.0f, 0.0f, 0.0f, 0.8f);
520 gGL.begin(LLVertexBuffer::LINES); 520 gGL.begin(LLRender::LINES);
521 { 521 {
522 gGL.vertex3fv((pos - LLVector3(0.2f, 0.f, 0.f)).mV); 522 gGL.vertex3fv((pos - LLVector3(0.2f, 0.f, 0.f)).mV);
523 gGL.vertex3fv((pos + LLVector3(0.2f, 0.f, 0.f)).mV); 523 gGL.vertex3fv((pos + LLVector3(0.2f, 0.f, 0.f)).mV);
@@ -529,7 +529,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)
529 529
530 pos = avatarp->mRoot.getWorldPosition(); 530 pos = avatarp->mRoot.getWorldPosition();
531 gGL.color4f(1.0f, 1.0f, 1.0f, 0.8f); 531 gGL.color4f(1.0f, 1.0f, 1.0f, 0.8f);
532 gGL.begin(LLVertexBuffer::LINES); 532 gGL.begin(LLRender::LINES);
533 { 533 {
534 gGL.vertex3fv((pos - LLVector3(0.2f, 0.f, 0.f)).mV); 534 gGL.vertex3fv((pos - LLVector3(0.2f, 0.f, 0.f)).mV);
535 gGL.vertex3fv((pos + LLVector3(0.2f, 0.f, 0.f)).mV); 535 gGL.vertex3fv((pos + LLVector3(0.2f, 0.f, 0.f)).mV);
@@ -541,7 +541,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)
541 541
542 pos = avatarp->mPelvisp->getWorldPosition(); 542 pos = avatarp->mPelvisp->getWorldPosition();
543 gGL.color4f(0.0f, 0.0f, 1.0f, 0.8f); 543 gGL.color4f(0.0f, 0.0f, 1.0f, 0.8f);
544 gGL.begin(LLVertexBuffer::LINES); 544 gGL.begin(LLRender::LINES);
545 { 545 {
546 gGL.vertex3fv((pos - LLVector3(0.2f, 0.f, 0.f)).mV); 546 gGL.vertex3fv((pos - LLVector3(0.2f, 0.f, 0.f)).mV);
547 gGL.vertex3fv((pos + LLVector3(0.2f, 0.f, 0.f)).mV); 547 gGL.vertex3fv((pos + LLVector3(0.2f, 0.f, 0.f)).mV);
diff --git a/linden/indra/newview/lldrawpoolavatar.h b/linden/indra/newview/lldrawpoolavatar.h
index 077764a..e14ba86 100644
--- a/linden/indra/newview/lldrawpoolavatar.h
+++ b/linden/indra/newview/lldrawpoolavatar.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpoolbump.cpp b/linden/indra/newview/lldrawpoolbump.cpp
index 73d88f7..f345282 100644
--- a/linden/indra/newview/lldrawpoolbump.cpp
+++ b/linden/indra/newview/lldrawpoolbump.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -73,7 +73,6 @@ const U32 VERTEX_MASK_SHINY = LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_N
73const U32 VERTEX_MASK_BUMP = LLVertexBuffer::MAP_VERTEX |LLVertexBuffer::MAP_TEXCOORD | LLVertexBuffer::MAP_TEXCOORD2; 73const U32 VERTEX_MASK_BUMP = LLVertexBuffer::MAP_VERTEX |LLVertexBuffer::MAP_TEXCOORD | LLVertexBuffer::MAP_TEXCOORD2;
74 74
75U32 LLDrawPoolBump::sVertexMask = VERTEX_MASK_SHINY; 75U32 LLDrawPoolBump::sVertexMask = VERTEX_MASK_SHINY;
76static LLPointer<LLCubeMap> sCubeMap;
77 76
78static LLGLSLShader* shader = NULL; 77static LLGLSLShader* shader = NULL;
79static S32 cube_channel = -1; 78static S32 cube_channel = -1;
@@ -349,27 +348,29 @@ void LLDrawPoolBump::beginShiny(bool invisible)
349 cube_map->setMatrix(1); 348 cube_map->setMatrix(1);
350 // Make sure that texture coord generation happens for tex unit 1, as that's the one we use for 349 // Make sure that texture coord generation happens for tex unit 1, as that's the one we use for
351 // the cube map in the one pass shiny shaders 350 // the cube map in the one pass shiny shaders
352 cube_channel = shader->enableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, GL_TEXTURE_CUBE_MAP_ARB); 351 cube_channel = shader->enableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, LLTexUnit::TT_CUBE_MAP);
353 cube_map->enableTexture(cube_channel); 352 cube_map->enableTexture(cube_channel);
354 cube_map->enableTextureCoords(1); 353 cube_map->enableTextureCoords(1);
355 diffuse_channel = shader->enableTexture(LLViewerShaderMgr::DIFFUSE_MAP); 354 diffuse_channel = shader->enableTexture(LLViewerShaderMgr::DIFFUSE_MAP);
356 } 355 }
357 else 356 else
358 { 357 {
359 cube_channel = 0; 358 cube_channel = shader->enableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, LLTexUnit::TT_CUBE_MAP);
360 diffuse_channel = -1; 359 diffuse_channel = -1;
361 cube_map->setMatrix(0); 360 cube_map->setMatrix(0);
362 cube_map->enable(shader->enableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, GL_TEXTURE_CUBE_MAP_ARB)); 361 cube_map->enable(cube_channel);
363 } 362 }
364 cube_map->bind(); 363 gGL.getTexUnit(cube_channel)->bind(cube_map);
364 gGL.getTexUnit(0)->activate();
365 } 365 }
366 else 366 else
367 { 367 {
368 cube_channel = 0; 368 cube_channel = 0;
369 diffuse_channel = -1; 369 diffuse_channel = -1;
370 gGL.getTexUnit(0)->disable();
370 cube_map->enable(0); 371 cube_map->enable(0);
371 cube_map->setMatrix(0); 372 cube_map->setMatrix(0);
372 cube_map->bind(); 373 gGL.getTexUnit(0)->bind(cube_map);
373 374
374 gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_COLOR); 375 gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_COLOR);
375 gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_VERT_ALPHA); 376 gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_VERT_ALPHA);
@@ -386,8 +387,6 @@ void LLDrawPoolBump::renderShiny(bool invisible)
386 return; 387 return;
387 } 388 }
388 389
389 sCubeMap = NULL;
390
391 if( gSky.mVOSkyp->getCubeMap() ) 390 if( gSky.mVOSkyp->getCubeMap() )
392 { 391 {
393 LLGLEnable blend_enable(GL_BLEND); 392 LLGLEnable blend_enable(GL_BLEND);
@@ -423,7 +422,7 @@ void LLDrawPoolBump::endShiny(bool invisible)
423 422
424 if (!invisible && mVertexShaderLevel > 1) 423 if (!invisible && mVertexShaderLevel > 1)
425 { 424 {
426 shader->disableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, GL_TEXTURE_CUBE_MAP_ARB); 425 shader->disableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, LLTexUnit::TT_CUBE_MAP);
427 426
428 if (LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_OBJECT) > 0) 427 if (LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_OBJECT) > 0)
429 { 428 {
@@ -435,18 +434,20 @@ void LLDrawPoolBump::endShiny(bool invisible)
435 434
436 shader->unbind(); 435 shader->unbind();
437 gGL.getTexUnit(0)->activate(); 436 gGL.getTexUnit(0)->activate();
438 glEnable(GL_TEXTURE_2D); 437 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
439 } 438 }
440 if (cube_channel >= 0) 439 if (cube_channel >= 0)
441 { 440 {
441 gGL.getTexUnit(cube_channel)->enable(LLTexUnit::TT_TEXTURE);
442 gGL.getTexUnit(cube_channel)->setTextureBlendType(LLTexUnit::TB_MULT); 442 gGL.getTexUnit(cube_channel)->setTextureBlendType(LLTexUnit::TB_MULT);
443 } 443 }
444 } 444 }
445 445 gGL.getTexUnit(diffuse_channel)->disable();
446 gGL.getTexUnit(0)->activate(); 446 gGL.getTexUnit(cube_channel)->disable();
447 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 447
448 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
448 gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); 449 gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT);
449 450
450 diffuse_channel = -1; 451 diffuse_channel = -1;
451 cube_channel = 0; 452 cube_channel = 0;
452 mShiny = FALSE; 453 mShiny = FALSE;
@@ -489,12 +490,14 @@ void LLDrawPoolBump::beginFullbrightShiny()
489 cube_map->setMatrix(1); 490 cube_map->setMatrix(1);
490 // Make sure that texture coord generation happens for tex unit 1, as that's the one we use for 491 // Make sure that texture coord generation happens for tex unit 1, as that's the one we use for
491 // the cube map in the one pass shiny shaders 492 // the cube map in the one pass shiny shaders
492 cube_channel = shader->enableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, GL_TEXTURE_CUBE_MAP_ARB); 493 gGL.getTexUnit(1)->disable();
494 cube_channel = shader->enableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, LLTexUnit::TT_CUBE_MAP);
493 cube_map->enableTexture(cube_channel); 495 cube_map->enableTexture(cube_channel);
494 cube_map->enableTextureCoords(1); 496 cube_map->enableTextureCoords(1);
495 diffuse_channel = shader->enableTexture(LLViewerShaderMgr::DIFFUSE_MAP); 497 diffuse_channel = shader->enableTexture(LLViewerShaderMgr::DIFFUSE_MAP);
496 498
497 cube_map->bind(); 499 gGL.getTexUnit(cube_channel)->bind(cube_map);
500 gGL.getTexUnit(0)->activate();
498 } 501 }
499 mShiny = TRUE; 502 mShiny = TRUE;
500} 503}
@@ -507,8 +510,6 @@ void LLDrawPoolBump::renderFullbrightShiny()
507 return; 510 return;
508 } 511 }
509 512
510 sCubeMap = NULL;
511
512 if( gSky.mVOSkyp->getCubeMap() ) 513 if( gSky.mVOSkyp->getCubeMap() )
513 { 514 {
514 LLGLEnable blend_enable(GL_BLEND); 515 LLGLEnable blend_enable(GL_BLEND);
@@ -535,14 +536,13 @@ void LLDrawPoolBump::endFullbrightShiny()
535 shader->disableTexture(LLViewerShaderMgr::DIFFUSE_MAP); 536 shader->disableTexture(LLViewerShaderMgr::DIFFUSE_MAP);
536 } 537 }
537 gGL.getTexUnit(0)->activate(); 538 gGL.getTexUnit(0)->activate();
538 glEnable(GL_TEXTURE_2D); 539 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
539 540
540 shader->unbind(); 541 shader->unbind();
541
542 gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); 542 gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT);
543 } 543 }
544 544
545 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 545 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
546 gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT); 546 gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT);
547 547
548 diffuse_channel = -1; 548 diffuse_channel = -1;
@@ -561,7 +561,7 @@ void LLDrawPoolBump::renderGroup(LLSpatialGroup* group, U32 type, U32 mask, BOOL
561 applyModelMatrix(params); 561 applyModelMatrix(params);
562 562
563 params.mVertexBuffer->setBuffer(mask); 563 params.mVertexBuffer->setBuffer(mask);
564 params.mVertexBuffer->drawRange(LLVertexBuffer::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset); 564 params.mVertexBuffer->drawRange(LLRender::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset);
565 gPipeline.addTrianglesDrawn(params.mCount/3); 565 gPipeline.addTrianglesDrawn(params.mCount/3);
566 } 566 }
567} 567}
@@ -592,15 +592,15 @@ BOOL LLDrawPoolBump::bindBumpMap(LLDrawInfo& params)
592 if( bump_code < LLStandardBumpmap::sStandardBumpmapCount ) 592 if( bump_code < LLStandardBumpmap::sStandardBumpmapCount )
593 { 593 {
594 bump = gStandardBumpmapList[bump_code].mImage; 594 bump = gStandardBumpmapList[bump_code].mImage;
595 gBumpImageList.addTextureStats(bump_code, tex->getID(), params.mVSize, 1, 1); 595 gBumpImageList.addTextureStats(bump_code, tex->getID(), params.mVSize);
596 } 596 }
597 break; 597 break;
598 } 598 }
599 599
600 if (bump) 600 if (bump)
601 { 601 {
602 bump->bind(1); 602 gGL.getTexUnit(1)->bind(bump);
603 bump->bind(0); 603 gGL.getTexUnit(0)->bind(bump);
604 return TRUE; 604 return TRUE;
605 } 605 }
606 return FALSE; 606 return FALSE;
@@ -629,7 +629,7 @@ void LLDrawPoolBump::beginBump()
629 // TEXTURE UNIT 1 629 // TEXTURE UNIT 1
630 gGL.getTexUnit(1)->activate(); 630 gGL.getTexUnit(1)->activate();
631 631
632 glEnable(GL_TEXTURE_2D); // Texture unit 1 632 gGL.getTexUnit(1)->enable(LLTexUnit::TT_TEXTURE);
633 633
634 gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_ADD_SIGNED, LLTexUnit::TBS_PREV_COLOR, LLTexUnit::TBS_ONE_MINUS_TEX_ALPHA); 634 gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_ADD_SIGNED, LLTexUnit::TBS_PREV_COLOR, LLTexUnit::TBS_ONE_MINUS_TEX_ALPHA);
635 gGL.getTexUnit(1)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA); 635 gGL.getTexUnit(1)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA);
@@ -648,7 +648,7 @@ void LLDrawPoolBump::beginBump()
648 gGL.getTexUnit(0)->activate(); 648 gGL.getTexUnit(0)->activate();
649 stop_glerror(); 649 stop_glerror();
650 650
651 LLViewerImage::unbindTexture(1, GL_TEXTURE_2D); 651 gGL.getTexUnit(1)->unbind(LLTexUnit::TT_TEXTURE);
652} 652}
653 653
654//static 654//static
@@ -680,7 +680,7 @@ void LLDrawPoolBump::endBump()
680 680
681 // Disable texture unit 1 681 // Disable texture unit 1
682 gGL.getTexUnit(1)->activate(); 682 gGL.getTexUnit(1)->activate();
683 glDisable(GL_TEXTURE_2D); // Texture unit 1 683 gGL.getTexUnit(1)->disable();
684 gGL.getTexUnit(1)->setTextureBlendType(LLTexUnit::TB_MULT); 684 gGL.getTexUnit(1)->setTextureBlendType(LLTexUnit::TB_MULT);
685 685
686 // Disable texture unit 0 686 // Disable texture unit 0
@@ -734,14 +734,13 @@ LLBumpImageList::~LLBumpImageList()
734 734
735 735
736// Note: Does nothing for entries in gStandardBumpmapList that are not actually standard bump images (e.g. none, brightness, and darkness) 736// Note: Does nothing for entries in gStandardBumpmapList that are not actually standard bump images (e.g. none, brightness, and darkness)
737void LLBumpImageList::addTextureStats(U8 bump, const LLUUID& base_image_id, 737void LLBumpImageList::addTextureStats(U8 bump, const LLUUID& base_image_id, F32 virtual_size)
738 F32 pixel_area, F32 texel_area_ratio, F32 cos_center_angle)
739{ 738{
740 bump &= TEM_BUMP_MASK; 739 bump &= TEM_BUMP_MASK;
741 LLViewerImage* bump_image = gStandardBumpmapList[bump].mImage; 740 LLViewerImage* bump_image = gStandardBumpmapList[bump].mImage;
742 if( bump_image ) 741 if( bump_image )
743 { 742 {
744 bump_image->addTextureStats(pixel_area, texel_area_ratio, cos_center_angle); 743 bump_image->addTextureStats(virtual_size);
745 } 744 }
746} 745}
747 746
@@ -1083,17 +1082,17 @@ void LLDrawPoolBump::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture)
1083 { 1082 {
1084 if (params.mTexture.notNull()) 1083 if (params.mTexture.notNull())
1085 { 1084 {
1086 params.mTexture->bind(diffuse_channel); 1085 gGL.getTexUnit(diffuse_channel)->bind(params.mTexture.get());
1087 params.mTexture->addTextureStats(params.mVSize); 1086 params.mTexture->addTextureStats(params.mVSize);
1088 } 1087 }
1089 else 1088 else
1090 { 1089 {
1091 LLImageGL::unbindTexture(0); 1090 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1092 } 1091 }
1093 } 1092 }
1094 1093
1095 params.mVertexBuffer->setBuffer(mask); 1094 params.mVertexBuffer->setBuffer(mask);
1096 params.mVertexBuffer->drawRange(LLVertexBuffer::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset); 1095 params.mVertexBuffer->drawRange(LLRender::TRIANGLES, params.mStart, params.mEnd, params.mCount, params.mOffset);
1097 gPipeline.addTrianglesDrawn(params.mCount/3); 1096 gPipeline.addTrianglesDrawn(params.mCount/3);
1098 if (params.mTextureMatrix) 1097 if (params.mTextureMatrix)
1099 { 1098 {
diff --git a/linden/indra/newview/lldrawpoolbump.h b/linden/indra/newview/lldrawpoolbump.h
index fd6e22c..7e82f7f 100644
--- a/linden/indra/newview/lldrawpoolbump.h
+++ b/linden/indra/newview/lldrawpoolbump.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -131,8 +131,7 @@ public:
131 131
132 LLImageGL* getBrightnessDarknessImage(LLViewerImage* src_image, U8 bump_code); 132 LLImageGL* getBrightnessDarknessImage(LLViewerImage* src_image, U8 bump_code);
133// LLImageGL* getTestImage(); 133// LLImageGL* getTestImage();
134 void addTextureStats(U8 bump, const LLUUID& base_image_id, 134 void addTextureStats(U8 bump, const LLUUID& base_image_id, F32 virtual_size);
135 F32 pixel_area, F32 texel_area_ratio, F32 cos_center_angle);
136 135
137 static void onSourceBrightnessLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata ); 136 static void onSourceBrightnessLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata );
138 static void onSourceDarknessLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata ); 137 static void onSourceDarknessLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata );
diff --git a/linden/indra/newview/lldrawpoolclouds.cpp b/linden/indra/newview/lldrawpoolclouds.cpp
index a7d0b8e..fd28ec6 100644
--- a/linden/indra/newview/lldrawpoolclouds.cpp
+++ b/linden/indra/newview/lldrawpoolclouds.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpoolclouds.h b/linden/indra/newview/lldrawpoolclouds.h
index f7e4dda..6803aba 100644
--- a/linden/indra/newview/lldrawpoolclouds.h
+++ b/linden/indra/newview/lldrawpoolclouds.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpoolground.cpp b/linden/indra/newview/lldrawpoolground.cpp
index 5698027..4053e1d 100644
--- a/linden/indra/newview/lldrawpoolground.cpp
+++ b/linden/indra/newview/lldrawpoolground.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -63,13 +63,14 @@ void LLDrawPoolGround::prerender()
63 63
64void LLDrawPoolGround::render(S32 pass) 64void LLDrawPoolGround::render(S32 pass)
65{ 65{
66 if (mDrawFace.empty()) 66 if (mDrawFace.empty() || !gSavedSettings.getBOOL("RenderGround"))
67 { 67 {
68 return; 68 return;
69 } 69 }
70 70
71 LLGLSPipelineSkyBox gls_skybox; 71 LLGLSPipelineSkyBox gls_skybox;
72 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 72 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
73
73 LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); 74 LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE);
74 75
75 LLGLClampToFarClip far_clip(glh_get_current_projection()); 76 LLGLClampToFarClip far_clip(glh_get_current_projection());
diff --git a/linden/indra/newview/lldrawpoolground.h b/linden/indra/newview/lldrawpoolground.h
index 3bfdc14..8c8c073 100644
--- a/linden/indra/newview/lldrawpoolground.h
+++ b/linden/indra/newview/lldrawpoolground.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpoolsimple.cpp b/linden/indra/newview/lldrawpoolsimple.cpp
index 97efb80..a2f8675 100644
--- a/linden/indra/newview/lldrawpoolsimple.cpp
+++ b/linden/indra/newview/lldrawpoolsimple.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpoolsimple.h b/linden/indra/newview/lldrawpoolsimple.h
index bb14703..6b81022 100644
--- a/linden/indra/newview/lldrawpoolsimple.h
+++ b/linden/indra/newview/lldrawpoolsimple.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpoolsky.cpp b/linden/indra/newview/lldrawpoolsky.cpp
index e1dbf95..6aa6142 100644
--- a/linden/indra/newview/lldrawpoolsky.cpp
+++ b/linden/indra/newview/lldrawpoolsky.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -186,7 +186,7 @@ void LLDrawPoolSky::renderHeavenlyBody(U8 hb, LLFace* face)
186 if (! face->getGeomCount()) return; 186 if (! face->getGeomCount()) return;
187 187
188 LLImageGL* tex = face->getTexture(); 188 LLImageGL* tex = face->getTexture();
189 tex->bind(); 189 gGL.getTexUnit(0)->bind(tex);
190 LLColor4 color(mHB[hb]->getInterpColor()); 190 LLColor4 color(mHB[hb]->getInterpColor());
191 LLOverrideFaceColor override(this, color); 191 LLOverrideFaceColor override(this, color);
192 face->renderIndexed(); 192 face->renderIndexed();
@@ -200,7 +200,7 @@ void LLDrawPoolSky::renderSunHalo(LLFace* face)
200 if (! face->getGeomCount()) return; 200 if (! face->getGeomCount()) return;
201 201
202 LLImageGL* tex = face->getTexture(); 202 LLImageGL* tex = face->getTexture();
203 tex->bind(); 203 gGL.getTexUnit(0)->bind(tex);
204 LLColor4 color(mHB[0]->getInterpColor()); 204 LLColor4 color(mHB[0]->getInterpColor());
205 color.mV[3] = llclamp(mHB[0]->getHaloBrighness(), 0.f, 1.f); 205 color.mV[3] = llclamp(mHB[0]->getHaloBrighness(), 0.f, 1.f);
206 206
diff --git a/linden/indra/newview/lldrawpoolsky.h b/linden/indra/newview/lldrawpoolsky.h
index 282ec1d..2b22060 100644
--- a/linden/indra/newview/lldrawpoolsky.h
+++ b/linden/indra/newview/lldrawpoolsky.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpoolterrain.cpp b/linden/indra/newview/lldrawpoolterrain.cpp
index ccfbd2d..6067ac8 100644
--- a/linden/indra/newview/lldrawpoolterrain.cpp
+++ b/linden/indra/newview/lldrawpoolterrain.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -72,19 +72,19 @@ LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerImage *texturep) :
72 TRUE, TRUE, GL_ALPHA8, GL_ALPHA, 72 TRUE, TRUE, GL_ALPHA8, GL_ALPHA,
73 LLUUID("e97cf410-8e61-7005-ec06-629eba4cd1fb")); 73 LLUUID("e97cf410-8e61-7005-ec06-629eba4cd1fb"));
74 74
75 mAlphaRampImagep->bind(0); 75 gGL.getTexUnit(0)->bind(mAlphaRampImagep.get());
76 mAlphaRampImagep->setClamp(TRUE, TRUE); 76 mAlphaRampImagep->setClamp(TRUE, TRUE);
77 77
78 m2DAlphaRampImagep = gImageList.getImageFromFile("alpha_gradient_2d.j2c", 78 m2DAlphaRampImagep = gImageList.getImageFromFile("alpha_gradient_2d.j2c",
79 TRUE, TRUE, GL_ALPHA8, GL_ALPHA, 79 TRUE, TRUE, GL_ALPHA8, GL_ALPHA,
80 LLUUID("38b86f85-2575-52a9-a531-23108d8da837")); 80 LLUUID("38b86f85-2575-52a9-a531-23108d8da837"));
81 81
82 m2DAlphaRampImagep->bind(0); 82 gGL.getTexUnit(0)->bind(m2DAlphaRampImagep.get());
83 m2DAlphaRampImagep->setClamp(TRUE, TRUE); 83 m2DAlphaRampImagep->setClamp(TRUE, TRUE);
84 84
85 mTexturep->setBoostLevel(LLViewerImage::BOOST_TERRAIN); 85 mTexturep->setBoostLevel(LLViewerImage::BOOST_TERRAIN);
86 86
87 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 87 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
88} 88}
89 89
90LLDrawPoolTerrain::~LLDrawPoolTerrain() 90LLDrawPoolTerrain::~LLDrawPoolTerrain()
@@ -240,7 +240,7 @@ void LLDrawPoolTerrain::renderFullShader()
240 // detail texture 0 240 // detail texture 0
241 // 241 //
242 S32 detail0 = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_DETAIL0); 242 S32 detail0 = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_DETAIL0);
243 LLViewerImage::bindTexture(detail_texture0p,detail0); 243 gGL.getTexUnit(detail0)->bind(detail_texture0p);
244 gGL.getTexUnit(0)->activate(); 244 gGL.getTexUnit(0)->activate();
245 245
246 glEnable(GL_TEXTURE_GEN_S); 246 glEnable(GL_TEXTURE_GEN_S);
@@ -258,7 +258,7 @@ void LLDrawPoolTerrain::renderFullShader()
258 // detail texture 1 258 // detail texture 1
259 // 259 //
260 S32 detail1 = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_DETAIL1); 260 S32 detail1 = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_DETAIL1);
261 LLViewerImage::bindTexture(detail_texture1p,detail1); 261 gGL.getTexUnit(detail1)->bind(detail_texture1p);
262 262
263 /// ALPHA TEXTURE COORDS 0: 263 /// ALPHA TEXTURE COORDS 0:
264 gGL.getTexUnit(1)->activate(); 264 gGL.getTexUnit(1)->activate();
@@ -269,11 +269,11 @@ void LLDrawPoolTerrain::renderFullShader()
269 // detail texture 2 269 // detail texture 2
270 // 270 //
271 S32 detail2 = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_DETAIL2); 271 S32 detail2 = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_DETAIL2);
272 LLViewerImage::bindTexture(detail_texture2p,detail2); 272 gGL.getTexUnit(detail2)->bind(detail_texture2p);
273 glEnable(GL_TEXTURE_2D); 273
274 gGL.getTexUnit(2)->activate();
274 275
275 /// ALPHA TEXTURE COORDS 1: 276 /// ALPHA TEXTURE COORDS 1:
276 gGL.getTexUnit(2)->activate();
277 glMatrixMode(GL_TEXTURE); 277 glMatrixMode(GL_TEXTURE);
278 glLoadIdentity(); 278 glLoadIdentity();
279 glTranslatef(-2.f, 0.f, 0.f); 279 glTranslatef(-2.f, 0.f, 0.f);
@@ -283,7 +283,7 @@ void LLDrawPoolTerrain::renderFullShader()
283 // detail texture 3 283 // detail texture 3
284 // 284 //
285 S32 detail3 = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_DETAIL3); 285 S32 detail3 = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_DETAIL3);
286 LLViewerImage::bindTexture(detail_texture3p,detail3); 286 gGL.getTexUnit(detail3)->bind(detail_texture3p);
287 287
288 /// ALPHA TEXTURE COORDS 2: 288 /// ALPHA TEXTURE COORDS 2:
289 gGL.getTexUnit(3)->activate(); 289 gGL.getTexUnit(3)->activate();
@@ -296,7 +296,7 @@ void LLDrawPoolTerrain::renderFullShader()
296 // Alpha Ramp 296 // Alpha Ramp
297 // 297 //
298 S32 alpha_ramp = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_ALPHARAMP); 298 S32 alpha_ramp = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_ALPHARAMP);
299 LLViewerImage::bindTexture(m2DAlphaRampImagep,alpha_ramp); 299 gGL.getTexUnit(alpha_ramp)->bind(m2DAlphaRampImagep.get());
300 300
301 // GL_BLEND disabled by default 301 // GL_BLEND disabled by default
302 drawLoop(); 302 drawLoop();
@@ -308,36 +308,36 @@ void LLDrawPoolTerrain::renderFullShader()
308 sShader->disableTexture(LLViewerShaderMgr::TERRAIN_DETAIL2); 308 sShader->disableTexture(LLViewerShaderMgr::TERRAIN_DETAIL2);
309 sShader->disableTexture(LLViewerShaderMgr::TERRAIN_DETAIL3); 309 sShader->disableTexture(LLViewerShaderMgr::TERRAIN_DETAIL3);
310 310
311 LLImageGL::unbindTexture(alpha_ramp, GL_TEXTURE_2D); 311 gGL.getTexUnit(alpha_ramp)->unbind(LLTexUnit::TT_TEXTURE);
312 gGL.getTexUnit(4)->disable();
312 gGL.getTexUnit(4)->activate(); 313 gGL.getTexUnit(4)->activate();
313 glDisable(GL_TEXTURE_2D); // Texture unit 4
314 glDisable(GL_TEXTURE_GEN_S); 314 glDisable(GL_TEXTURE_GEN_S);
315 glDisable(GL_TEXTURE_GEN_T); 315 glDisable(GL_TEXTURE_GEN_T);
316 glMatrixMode(GL_TEXTURE); 316 glMatrixMode(GL_TEXTURE);
317 glLoadIdentity(); 317 glLoadIdentity();
318 glMatrixMode(GL_MODELVIEW); 318 glMatrixMode(GL_MODELVIEW);
319 319
320 LLImageGL::unbindTexture(detail3, GL_TEXTURE_2D); 320 gGL.getTexUnit(detail3)->unbind(LLTexUnit::TT_TEXTURE);
321 gGL.getTexUnit(3)->disable();
321 gGL.getTexUnit(3)->activate(); 322 gGL.getTexUnit(3)->activate();
322 glDisable(GL_TEXTURE_2D);
323 glDisable(GL_TEXTURE_GEN_S); 323 glDisable(GL_TEXTURE_GEN_S);
324 glDisable(GL_TEXTURE_GEN_T); 324 glDisable(GL_TEXTURE_GEN_T);
325 glMatrixMode(GL_TEXTURE); 325 glMatrixMode(GL_TEXTURE);
326 glLoadIdentity(); 326 glLoadIdentity();
327 glMatrixMode(GL_MODELVIEW); 327 glMatrixMode(GL_MODELVIEW);
328 328
329 LLImageGL::unbindTexture(detail2, GL_TEXTURE_2D); 329 gGL.getTexUnit(detail2)->unbind(LLTexUnit::TT_TEXTURE);
330 gGL.getTexUnit(2)->disable();
330 gGL.getTexUnit(2)->activate(); 331 gGL.getTexUnit(2)->activate();
331 glDisable(GL_TEXTURE_2D);
332 glDisable(GL_TEXTURE_GEN_S); 332 glDisable(GL_TEXTURE_GEN_S);
333 glDisable(GL_TEXTURE_GEN_T); 333 glDisable(GL_TEXTURE_GEN_T);
334 glMatrixMode(GL_TEXTURE); 334 glMatrixMode(GL_TEXTURE);
335 glLoadIdentity(); 335 glLoadIdentity();
336 glMatrixMode(GL_MODELVIEW); 336 glMatrixMode(GL_MODELVIEW);
337 337
338 LLImageGL::unbindTexture(detail1, GL_TEXTURE_2D); 338 gGL.getTexUnit(detail1)->unbind(LLTexUnit::TT_TEXTURE);
339 gGL.getTexUnit(1)->disable();
339 gGL.getTexUnit(1)->activate(); 340 gGL.getTexUnit(1)->activate();
340 glDisable(GL_TEXTURE_2D);
341 glDisable(GL_TEXTURE_GEN_S); 341 glDisable(GL_TEXTURE_GEN_S);
342 glDisable(GL_TEXTURE_GEN_T); 342 glDisable(GL_TEXTURE_GEN_T);
343 glMatrixMode(GL_TEXTURE); 343 glMatrixMode(GL_TEXTURE);
@@ -347,9 +347,9 @@ void LLDrawPoolTerrain::renderFullShader()
347 //---------------------------------------------------------------------------- 347 //----------------------------------------------------------------------------
348 // Restore Texture Unit 0 defaults 348 // Restore Texture Unit 0 defaults
349 349
350 LLImageGL::unbindTexture(detail0, GL_TEXTURE_2D); 350 gGL.getTexUnit(detail0)->unbind(LLTexUnit::TT_TEXTURE);
351 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
351 gGL.getTexUnit(0)->activate(); 352 gGL.getTexUnit(0)->activate();
352 glEnable(GL_TEXTURE_2D);
353 glDisable(GL_TEXTURE_GEN_S); 353 glDisable(GL_TEXTURE_GEN_S);
354 glDisable(GL_TEXTURE_GEN_T); 354 glDisable(GL_TEXTURE_GEN_T);
355 glMatrixMode(GL_TEXTURE); 355 glMatrixMode(GL_TEXTURE);
@@ -388,7 +388,7 @@ void LLDrawPoolTerrain::renderFull4TU()
388 // Stage 0: detail texture 0 388 // Stage 0: detail texture 0
389 // 389 //
390 gGL.getTexUnit(0)->activate(); 390 gGL.getTexUnit(0)->activate();
391 LLViewerImage::bindTexture(detail_texture0p,0); 391 gGL.getTexUnit(0)->bind(detail_texture0p);
392 glClientActiveTextureARB(GL_TEXTURE0_ARB); 392 glClientActiveTextureARB(GL_TEXTURE0_ARB);
393 393
394 glEnable(GL_TEXTURE_GEN_S); 394 glEnable(GL_TEXTURE_GEN_S);
@@ -405,9 +405,9 @@ void LLDrawPoolTerrain::renderFull4TU()
405 // Stage 1: Generate alpha ramp for detail0/detail1 transition 405 // Stage 1: Generate alpha ramp for detail0/detail1 transition
406 // 406 //
407 407
408 LLViewerImage::bindTexture(m2DAlphaRampImagep,1); 408 gGL.getTexUnit(1)->bind(m2DAlphaRampImagep.get());
409 gGL.getTexUnit(1)->enable(LLTexUnit::TT_TEXTURE);
409 gGL.getTexUnit(1)->activate(); 410 gGL.getTexUnit(1)->activate();
410 glEnable(GL_TEXTURE_2D); // Texture unit 1
411 glClientActiveTextureARB(GL_TEXTURE1_ARB); 411 glClientActiveTextureARB(GL_TEXTURE1_ARB);
412 glEnableClientState(GL_TEXTURE_COORD_ARRAY); 412 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
413 413
@@ -418,12 +418,13 @@ void LLDrawPoolTerrain::renderFull4TU()
418 // 418 //
419 // Stage 2: Interpolate detail1 with existing based on ramp 419 // Stage 2: Interpolate detail1 with existing based on ramp
420 // 420 //
421 LLViewerImage::bindTexture(detail_texture1p,2); 421 gGL.getTexUnit(2)->bind(detail_texture1p);
422 gGL.getTexUnit(2)->enable(LLTexUnit::TT_TEXTURE);
422 gGL.getTexUnit(2)->activate(); 423 gGL.getTexUnit(2)->activate();
423 glEnable(GL_TEXTURE_2D); // Texture unit 2
424 glClientActiveTextureARB(GL_TEXTURE2_ARB);
425 424
425 glClientActiveTextureARB(GL_TEXTURE2_ARB);
426 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 426 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
427
427 glEnable(GL_TEXTURE_GEN_S); 428 glEnable(GL_TEXTURE_GEN_S);
428 glEnable(GL_TEXTURE_GEN_T); 429 glEnable(GL_TEXTURE_GEN_T);
429 glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); 430 glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
@@ -436,9 +437,9 @@ void LLDrawPoolTerrain::renderFull4TU()
436 // 437 //
437 // Stage 3: Modulate with primary (vertex) color for lighting 438 // Stage 3: Modulate with primary (vertex) color for lighting
438 // 439 //
439 LLViewerImage::bindTexture(detail_texture1p,3); // bind any texture 440 gGL.getTexUnit(3)->bind(detail_texture1p);
441 gGL.getTexUnit(3)->enable(LLTexUnit::TT_TEXTURE);
440 gGL.getTexUnit(3)->activate(); 442 gGL.getTexUnit(3)->activate();
441 glEnable(GL_TEXTURE_2D); // Texture unit 3
442 glClientActiveTextureARB(GL_TEXTURE3_ARB); 443 glClientActiveTextureARB(GL_TEXTURE3_ARB);
443 444
444 // Set alpha texture and do lighting modulation 445 // Set alpha texture and do lighting modulation
@@ -456,7 +457,7 @@ void LLDrawPoolTerrain::renderFull4TU()
456 // Stage 0: Write detail3 into base 457 // Stage 0: Write detail3 into base
457 // 458 //
458 gGL.getTexUnit(0)->activate(); 459 gGL.getTexUnit(0)->activate();
459 LLViewerImage::bindTexture(detail_texture3p,0); 460 gGL.getTexUnit(0)->bind(detail_texture3p);
460 glClientActiveTextureARB(GL_TEXTURE0_ARB); 461 glClientActiveTextureARB(GL_TEXTURE0_ARB);
461 462
462 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 463 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -472,9 +473,9 @@ void LLDrawPoolTerrain::renderFull4TU()
472 // 473 //
473 // Stage 1: Generate alpha ramp for detail2/detail3 transition 474 // Stage 1: Generate alpha ramp for detail2/detail3 transition
474 // 475 //
475 LLViewerImage::bindTexture(m2DAlphaRampImagep,1); 476 gGL.getTexUnit(1)->bind(m2DAlphaRampImagep.get());
477 gGL.getTexUnit(1)->enable(LLTexUnit::TT_TEXTURE);
476 gGL.getTexUnit(1)->activate(); 478 gGL.getTexUnit(1)->activate();
477 glEnable(GL_TEXTURE_2D); // Texture unit 1
478 glClientActiveTextureARB(GL_TEXTURE1_ARB); 479 glClientActiveTextureARB(GL_TEXTURE1_ARB);
479 480
480 glEnableClientState(GL_TEXTURE_COORD_ARRAY); 481 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -492,9 +493,9 @@ void LLDrawPoolTerrain::renderFull4TU()
492 // 493 //
493 // Stage 2: Interpolate detail2 with existing based on ramp 494 // Stage 2: Interpolate detail2 with existing based on ramp
494 // 495 //
495 LLViewerImage::bindTexture(detail_texture2p,2); 496 gGL.getTexUnit(2)->bind(detail_texture2p);
497 gGL.getTexUnit(2)->enable(LLTexUnit::TT_TEXTURE);
496 gGL.getTexUnit(2)->activate(); 498 gGL.getTexUnit(2)->activate();
497 glEnable(GL_TEXTURE_2D); // Texture unit 2
498 499
499 glClientActiveTextureARB(GL_TEXTURE2_ARB); 500 glClientActiveTextureARB(GL_TEXTURE2_ARB);
500 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 501 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -511,9 +512,9 @@ void LLDrawPoolTerrain::renderFull4TU()
511 // 512 //
512 // Stage 3: Generate alpha ramp for detail1/detail2 transition 513 // Stage 3: Generate alpha ramp for detail1/detail2 transition
513 // 514 //
514 LLViewerImage::bindTexture(m2DAlphaRampImagep,3); 515 gGL.getTexUnit(3)->bind(m2DAlphaRampImagep.get());
516 gGL.getTexUnit(3)->enable(LLTexUnit::TT_TEXTURE);
515 gGL.getTexUnit(3)->activate(); 517 gGL.getTexUnit(3)->activate();
516 glEnable(GL_TEXTURE_2D); // Texture unit 3
517 518
518 glClientActiveTextureARB(GL_TEXTURE3_ARB); 519 glClientActiveTextureARB(GL_TEXTURE3_ARB);
519 glEnableClientState(GL_TEXTURE_COORD_ARRAY); 520 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -536,21 +537,21 @@ void LLDrawPoolTerrain::renderFull4TU()
536 537
537 LLVertexBuffer::unbind(); 538 LLVertexBuffer::unbind();
538 // Disable multitexture 539 // Disable multitexture
539 LLImageGL::unbindTexture(3, GL_TEXTURE_2D); 540 gGL.getTexUnit(3)->unbind(LLTexUnit::TT_TEXTURE);
541 gGL.getTexUnit(3)->disable();
540 gGL.getTexUnit(3)->activate(); 542 gGL.getTexUnit(3)->activate();
541 glClientActiveTextureARB(GL_TEXTURE3_ARB); 543 glClientActiveTextureARB(GL_TEXTURE3_ARB);
542 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 544 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
543 glDisable(GL_TEXTURE_2D); // Texture unit 3
544 545
545 glMatrixMode(GL_TEXTURE); 546 glMatrixMode(GL_TEXTURE);
546 glLoadIdentity(); 547 glLoadIdentity();
547 glMatrixMode(GL_MODELVIEW); 548 glMatrixMode(GL_MODELVIEW);
548 549
549 LLImageGL::unbindTexture(2, GL_TEXTURE_2D); 550 gGL.getTexUnit(2)->unbind(LLTexUnit::TT_TEXTURE);
551 gGL.getTexUnit(2)->disable();
550 gGL.getTexUnit(2)->activate(); 552 gGL.getTexUnit(2)->activate();
551 glClientActiveTextureARB(GL_TEXTURE2_ARB); 553 glClientActiveTextureARB(GL_TEXTURE2_ARB);
552 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 554 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
553 glDisable(GL_TEXTURE_2D); // Texture unit 2
554 555
555 glDisable(GL_TEXTURE_GEN_S); 556 glDisable(GL_TEXTURE_GEN_S);
556 glDisable(GL_TEXTURE_GEN_T); 557 glDisable(GL_TEXTURE_GEN_T);
@@ -558,11 +559,11 @@ void LLDrawPoolTerrain::renderFull4TU()
558 glLoadIdentity(); 559 glLoadIdentity();
559 glMatrixMode(GL_MODELVIEW); 560 glMatrixMode(GL_MODELVIEW);
560 561
561 LLImageGL::unbindTexture(1, GL_TEXTURE_2D); 562 gGL.getTexUnit(1)->unbind(LLTexUnit::TT_TEXTURE);
563 gGL.getTexUnit(1)->disable();
562 gGL.getTexUnit(1)->activate(); 564 gGL.getTexUnit(1)->activate();
563 glClientActiveTextureARB(GL_TEXTURE1_ARB); 565 glClientActiveTextureARB(GL_TEXTURE1_ARB);
564 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 566 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
565 glDisable(GL_TEXTURE_2D); // Texture unit 1
566 567
567 glMatrixMode(GL_TEXTURE); 568 glMatrixMode(GL_TEXTURE);
568 glLoadIdentity(); 569 glLoadIdentity();
@@ -575,9 +576,9 @@ void LLDrawPoolTerrain::renderFull4TU()
575 // Restore Texture Unit 0 defaults 576 // Restore Texture Unit 0 defaults
576 577
577 gGL.getTexUnit(0)->activate(); 578 gGL.getTexUnit(0)->activate();
578 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 579 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
580
579 glClientActiveTextureARB(GL_TEXTURE0_ARB); 581 glClientActiveTextureARB(GL_TEXTURE0_ARB);
580 gGL.getTexUnit(0)->activate();
581 glDisableClientState(GL_NORMAL_ARRAY); 582 glDisableClientState(GL_NORMAL_ARRAY);
582 583
583 glDisable(GL_TEXTURE_GEN_S); 584 glDisable(GL_TEXTURE_GEN_S);
@@ -616,7 +617,7 @@ void LLDrawPoolTerrain::renderFull2TU()
616 // 617 //
617 // Stage 0: Render detail 0 into base 618 // Stage 0: Render detail 0 into base
618 // 619 //
619 LLViewerImage::bindTexture(detail_texture0p,0); 620 gGL.getTexUnit(0)->bind(detail_texture0p);
620 glEnable(GL_TEXTURE_GEN_S); 621 glEnable(GL_TEXTURE_GEN_S);
621 glEnable(GL_TEXTURE_GEN_T); 622 glEnable(GL_TEXTURE_GEN_T);
622 glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); 623 glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
@@ -635,7 +636,7 @@ void LLDrawPoolTerrain::renderFull2TU()
635 // 636 //
636 // Stage 0: Generate alpha ramp for detail0/detail1 transition 637 // Stage 0: Generate alpha ramp for detail0/detail1 transition
637 // 638 //
638 LLViewerImage::bindTexture(m2DAlphaRampImagep,0); 639 gGL.getTexUnit(0)->bind(m2DAlphaRampImagep.get());
639 640
640 glDisable(GL_TEXTURE_GEN_S); 641 glDisable(GL_TEXTURE_GEN_S);
641 glDisable(GL_TEXTURE_GEN_T); 642 glDisable(GL_TEXTURE_GEN_T);
@@ -648,9 +649,9 @@ void LLDrawPoolTerrain::renderFull2TU()
648 // 649 //
649 // Stage 1: Write detail1 650 // Stage 1: Write detail1
650 // 651 //
651 LLViewerImage::bindTexture(detail_texture1p,1); // Texture unit 1 652 gGL.getTexUnit(1)->bind(detail_texture1p);
653 gGL.getTexUnit(1)->enable(LLTexUnit::TT_TEXTURE);
652 gGL.getTexUnit(1)->activate(); 654 gGL.getTexUnit(1)->activate();
653 glEnable(GL_TEXTURE_2D); // Texture unit 1
654 655
655 glEnable(GL_TEXTURE_GEN_S); 656 glEnable(GL_TEXTURE_GEN_S);
656 glEnable(GL_TEXTURE_GEN_T); 657 glEnable(GL_TEXTURE_GEN_T);
@@ -673,7 +674,7 @@ void LLDrawPoolTerrain::renderFull2TU()
673 // 674 //
674 // Stage 0: Generate alpha ramp for detail1/detail2 transition 675 // Stage 0: Generate alpha ramp for detail1/detail2 transition
675 // 676 //
676 LLViewerImage::bindTexture(m2DAlphaRampImagep,0); 677 gGL.getTexUnit(0)->bind(m2DAlphaRampImagep.get());
677 678
678 // Set the texture matrix 679 // Set the texture matrix
679 glMatrixMode(GL_TEXTURE); 680 glMatrixMode(GL_TEXTURE);
@@ -687,9 +688,9 @@ void LLDrawPoolTerrain::renderFull2TU()
687 // 688 //
688 // Stage 1: Write detail2 689 // Stage 1: Write detail2
689 // 690 //
690 LLViewerImage::bindTexture(detail_texture2p,1); 691 gGL.getTexUnit(1)->bind(detail_texture2p);
692 gGL.getTexUnit(1)->enable(LLTexUnit::TT_TEXTURE);
691 gGL.getTexUnit(1)->activate(); 693 gGL.getTexUnit(1)->activate();
692 glEnable(GL_TEXTURE_2D); // Texture unit 1
693 694
694 glEnable(GL_TEXTURE_GEN_S); 695 glEnable(GL_TEXTURE_GEN_S);
695 glEnable(GL_TEXTURE_GEN_T); 696 glEnable(GL_TEXTURE_GEN_T);
@@ -713,7 +714,7 @@ void LLDrawPoolTerrain::renderFull2TU()
713 // Stage 0: Generate alpha ramp for detail2/detail3 transition 714 // Stage 0: Generate alpha ramp for detail2/detail3 transition
714 // 715 //
715 gGL.getTexUnit(0)->activate(); 716 gGL.getTexUnit(0)->activate();
716 LLViewerImage::bindTexture(m2DAlphaRampImagep,0); 717 gGL.getTexUnit(0)->bind(m2DAlphaRampImagep.get());
717 // Set the texture matrix 718 // Set the texture matrix
718 glMatrixMode(GL_TEXTURE); 719 glMatrixMode(GL_TEXTURE);
719 glLoadIdentity(); 720 glLoadIdentity();
@@ -724,9 +725,9 @@ void LLDrawPoolTerrain::renderFull2TU()
724 gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA); 725 gGL.getTexUnit(0)->setTextureAlphaBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_ALPHA);
725 726
726 // Stage 1: Write detail3 727 // Stage 1: Write detail3
727 LLViewerImage::bindTexture(detail_texture3p,1); 728 gGL.getTexUnit(1)->bind(detail_texture3p);
729 gGL.getTexUnit(1)->enable(LLTexUnit::TT_TEXTURE);
728 gGL.getTexUnit(1)->activate(); 730 gGL.getTexUnit(1)->activate();
729 glEnable(GL_TEXTURE_2D); // Texture unit 1
730 731
731 glEnable(GL_TEXTURE_GEN_S); 732 glEnable(GL_TEXTURE_GEN_S);
732 glEnable(GL_TEXTURE_GEN_T); 733 glEnable(GL_TEXTURE_GEN_T);
@@ -749,9 +750,9 @@ void LLDrawPoolTerrain::renderFull2TU()
749 750
750 // Disable multitexture 751 // Disable multitexture
751 752
752 LLImageGL::unbindTexture(1, GL_TEXTURE_2D); 753 gGL.getTexUnit(1)->unbind(LLTexUnit::TT_TEXTURE);
754 gGL.getTexUnit(1)->disable();
753 gGL.getTexUnit(1)->activate(); 755 gGL.getTexUnit(1)->activate();
754 glDisable(GL_TEXTURE_2D); // Texture unit 1
755 756
756 glDisable(GL_TEXTURE_GEN_S); 757 glDisable(GL_TEXTURE_GEN_S);
757 glDisable(GL_TEXTURE_GEN_T); 758 glDisable(GL_TEXTURE_GEN_T);
@@ -763,9 +764,8 @@ void LLDrawPoolTerrain::renderFull2TU()
763 // Restore Texture Unit 0 defaults 764 // Restore Texture Unit 0 defaults
764 765
765 gGL.getTexUnit(0)->activate(); 766 gGL.getTexUnit(0)->activate();
766 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 767 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
767 768
768 gGL.getTexUnit(0)->activate();
769 glDisable(GL_TEXTURE_GEN_S); 769 glDisable(GL_TEXTURE_GEN_S);
770 glDisable(GL_TEXTURE_GEN_T); 770 glDisable(GL_TEXTURE_GEN_T);
771 glMatrixMode(GL_TEXTURE); 771 glMatrixMode(GL_TEXTURE);
@@ -784,10 +784,10 @@ void LLDrawPoolTerrain::renderSimple()
784 784
785 // Stage 0: Base terrain texture pass 785 // Stage 0: Base terrain texture pass
786 mTexturep->addTextureStats(1024.f*1024.f); 786 mTexturep->addTextureStats(1024.f*1024.f);
787 mTexturep->bind(0);
788 787
789 gGL.getTexUnit(0)->activate(); 788 gGL.getTexUnit(0)->activate();
790 glEnable(GL_TEXTURE_2D); // Texture unit 2 789 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
790 gGL.getTexUnit(0)->bind(mTexturep.get());
791 791
792 LLVector3 origin_agent = mDrawFace[0]->getDrawable()->getVObj()->getRegion()->getOriginAgent(); 792 LLVector3 origin_agent = mDrawFace[0]->getDrawable()->getVObj()->getRegion()->getOriginAgent();
793 F32 tscale = 1.f/256.f; 793 F32 tscale = 1.f/256.f;
@@ -808,8 +808,8 @@ void LLDrawPoolTerrain::renderSimple()
808 //---------------------------------------------------------------------------- 808 //----------------------------------------------------------------------------
809 // Restore Texture Unit 0 defaults 809 // Restore Texture Unit 0 defaults
810 810
811 LLImageGL::unbindTexture(0, GL_TEXTURE_2D);
812 gGL.getTexUnit(0)->activate(); 811 gGL.getTexUnit(0)->activate();
812 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
813 glDisable(GL_TEXTURE_GEN_S); 813 glDisable(GL_TEXTURE_GEN_S);
814 glDisable(GL_TEXTURE_GEN_T); 814 glDisable(GL_TEXTURE_GEN_T);
815 glMatrixMode(GL_TEXTURE); 815 glMatrixMode(GL_TEXTURE);
@@ -839,7 +839,7 @@ void LLDrawPoolTerrain::renderOwnership()
839 LLViewerParcelOverlay *overlayp = regionp->getParcelOverlay(); 839 LLViewerParcelOverlay *overlayp = regionp->getParcelOverlay();
840 LLImageGL *texturep = overlayp->getTexture(); 840 LLImageGL *texturep = overlayp->getTexture();
841 841
842 LLViewerImage::bindTexture(texturep); 842 gGL.getTexUnit(0)->bind(texturep);
843 843
844 // *NOTE: Because the region is 256 meters wide, but has 257 pixels, the 844 // *NOTE: Because the region is 256 meters wide, but has 257 pixels, the
845 // texture coordinates for pixel 256x256 is not 1,1. This makes the 845 // texture coordinates for pixel 256x256 is not 1,1. This makes the
@@ -872,7 +872,7 @@ void LLDrawPoolTerrain::renderForSelect()
872 } 872 }
873 873
874 874
875 LLImageGL::unbindTexture(0); 875 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
876 876
877 for (std::vector<LLFace*>::iterator iter = mDrawFace.begin(); 877 for (std::vector<LLFace*>::iterator iter = mDrawFace.begin();
878 iter != mDrawFace.end(); iter++) 878 iter != mDrawFace.end(); iter++)
diff --git a/linden/indra/newview/lldrawpoolterrain.h b/linden/indra/newview/lldrawpoolterrain.h
index 53a5cd0..b1185a5 100644
--- a/linden/indra/newview/lldrawpoolterrain.h
+++ b/linden/indra/newview/lldrawpoolterrain.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpooltree.cpp b/linden/indra/newview/lldrawpooltree.cpp
index fd178dc..312c61c 100644
--- a/linden/indra/newview/lldrawpooltree.cpp
+++ b/linden/indra/newview/lldrawpooltree.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -50,7 +50,7 @@ LLDrawPoolTree::LLDrawPoolTree(LLViewerImage *texturep) :
50 LLFacePool(POOL_TREE), 50 LLFacePool(POOL_TREE),
51 mTexturep(texturep) 51 mTexturep(texturep)
52{ 52{
53 mTexturep->bind(0); 53 gGL.getTexUnit(0)->bind(mTexturep.get());
54 mTexturep->setClamp(FALSE, FALSE); 54 mTexturep->setClamp(FALSE, FALSE);
55} 55}
56 56
@@ -124,6 +124,7 @@ void LLDrawPoolTree::renderForSelect()
124 LLOverrideFaceColor color(this, 1.f, 1.f, 1.f, 1.f); 124 LLOverrideFaceColor color(this, 1.f, 1.f, 1.f, 1.f);
125 125
126 LLGLSObjectSelectAlpha gls_alpha; 126 LLGLSObjectSelectAlpha gls_alpha;
127 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
127 128
128 gGL.setSceneBlendType(LLRender::BT_REPLACE); 129 gGL.setSceneBlendType(LLRender::BT_REPLACE);
129 gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); 130 gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f);
@@ -144,7 +145,7 @@ void LLDrawPoolTree::renderTree(BOOL selecting)
144 LLGLState normalize(GL_NORMALIZE, TRUE); 145 LLGLState normalize(GL_NORMALIZE, TRUE);
145 146
146 // Bind the texture for this tree. 147 // Bind the texture for this tree.
147 LLViewerImage::bindTexture(mTexturep,sDiffTex); 148 gGL.getTexUnit(sDiffTex)->bind(mTexturep.get());
148 149
149 U32 indices_drawn = 0; 150 U32 indices_drawn = 0;
150 151
diff --git a/linden/indra/newview/lldrawpooltree.h b/linden/indra/newview/lldrawpooltree.h
index 151e4ab..2d5bf25 100644
--- a/linden/indra/newview/lldrawpooltree.h
+++ b/linden/indra/newview/lldrawpooltree.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpoolwater.cpp b/linden/indra/newview/lldrawpoolwater.cpp
index d8303bd..5914ffc 100644
--- a/linden/indra/newview/lldrawpoolwater.cpp
+++ b/linden/indra/newview/lldrawpoolwater.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -68,11 +68,11 @@ LLDrawPoolWater::LLDrawPoolWater() :
68 LLFacePool(POOL_WATER) 68 LLFacePool(POOL_WATER)
69{ 69{
70 mHBTex[0] = gImageList.getImage(gSunTextureID, TRUE, TRUE); 70 mHBTex[0] = gImageList.getImage(gSunTextureID, TRUE, TRUE);
71 mHBTex[0]->bind(); 71 gGL.getTexUnit(0)->bind(mHBTex[0].get());
72 mHBTex[0]->setClamp(TRUE, TRUE); 72 mHBTex[0]->setClamp(TRUE, TRUE);
73 73
74 mHBTex[1] = gImageList.getImage(gMoonTextureID, TRUE, TRUE); 74 mHBTex[1] = gImageList.getImage(gMoonTextureID, TRUE, TRUE);
75 mHBTex[1]->bind(); 75 gGL.getTexUnit(0)->bind(mHBTex[1].get());
76 mHBTex[1]->setClamp(TRUE, TRUE); 76 mHBTex[1]->setClamp(TRUE, TRUE);
77 77
78 mWaterImagep = gImageList.getImage(WATER_TEST); 78 mWaterImagep = gImageList.getImage(WATER_TEST);
@@ -166,10 +166,9 @@ void LLDrawPoolWater::render(S32 pass)
166 166
167 // Set up second pass first 167 // Set up second pass first
168 mWaterImagep->addTextureStats(1024.f*1024.f); 168 mWaterImagep->addTextureStats(1024.f*1024.f);
169 mWaterImagep->bind(1);
170 gGL.getTexUnit(1)->activate(); 169 gGL.getTexUnit(1)->activate();
171 170 gGL.getTexUnit(1)->enable(LLTexUnit::TT_TEXTURE);
172 glEnable(GL_TEXTURE_2D); // Texture unit 1 171 gGL.getTexUnit(1)->bind(mWaterImagep.get());
173 172
174 LLVector3 camera_up = LLViewerCamera::getInstance()->getUpAxis(); 173 LLVector3 camera_up = LLViewerCamera::getInstance()->getUpAxis();
175 F32 up_dot = camera_up * LLVector3::z_axis; 174 F32 up_dot = camera_up * LLVector3::z_axis;
@@ -218,20 +217,20 @@ void LLDrawPoolWater::render(S32 pass)
218 { 217 {
219 continue; 218 continue;
220 } 219 }
221 face->bindTexture(); 220 gGL.getTexUnit(0)->bind(face->getTexture());
222 face->renderIndexed(); 221 face->renderIndexed();
223 } 222 }
224 223
225 // Now, disable texture coord generation on texture state 1 224 // Now, disable texture coord generation on texture state 1
226 gGL.getTexUnit(1)->activate(); 225 gGL.getTexUnit(1)->activate();
227 glDisable(GL_TEXTURE_2D); // Texture unit 1 226 gGL.getTexUnit(1)->unbind(LLTexUnit::TT_TEXTURE);
227 gGL.getTexUnit(1)->disable();
228 glDisable(GL_TEXTURE_GEN_S); //texture unit 1 228 glDisable(GL_TEXTURE_GEN_S); //texture unit 1
229 glDisable(GL_TEXTURE_GEN_T); //texture unit 1 229 glDisable(GL_TEXTURE_GEN_T); //texture unit 1
230 LLImageGL::unbindTexture(1, GL_TEXTURE_2D);
231 230
232 // Disable texture coordinate and color arrays 231 // Disable texture coordinate and color arrays
233 gGL.getTexUnit(0)->activate(); 232 gGL.getTexUnit(0)->activate();
234 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 233 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
235 234
236 stop_glerror(); 235 stop_glerror();
237 236
@@ -275,8 +274,9 @@ void LLDrawPoolWater::render(S32 pass)
275 { 274 {
276 gSky.mVOSkyp->getCubeMap()->disable(); 275 gSky.mVOSkyp->getCubeMap()->disable();
277 } 276 }
278 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 277
279 glEnable(GL_TEXTURE_2D); 278 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
279 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
280 glMatrixMode(GL_TEXTURE); 280 glMatrixMode(GL_TEXTURE);
281 glLoadIdentity(); 281 glLoadIdentity();
282 glMatrixMode(GL_MODELVIEW); 282 glMatrixMode(GL_MODELVIEW);
@@ -316,7 +316,7 @@ void LLDrawPoolWater::renderReflection(LLFace* face)
316 316
317 LLGLSNoFog noFog; 317 LLGLSNoFog noFog;
318 318
319 LLViewerImage::bindTexture(mHBTex[dr]); 319 gGL.getTexUnit(0)->bind(mHBTex[dr].get());
320 320
321 LLOverrideFaceColor override(this, face->getFaceColor().mV); 321 LLOverrideFaceColor override(this, face->getFaceColor().mV);
322 face->renderIndexed(); 322 face->renderIndexed();
@@ -390,7 +390,7 @@ void LLDrawPoolWater::shade()
390 if (reftex > -1) 390 if (reftex > -1)
391 { 391 {
392 gGL.getTexUnit(reftex)->activate(); 392 gGL.getTexUnit(reftex)->activate();
393 gPipeline.mWaterRef.bindTexture(); 393 gGL.getTexUnit(reftex)->bind(&gPipeline.mWaterRef);
394 gGL.getTexUnit(0)->activate(); 394 gGL.getTexUnit(0)->activate();
395 } 395 }
396 396
@@ -406,7 +406,7 @@ void LLDrawPoolWater::shade()
406 } 406 }
407 407
408 mWaterNormp->addTextureStats(1024.f*1024.f); 408 mWaterNormp->addTextureStats(1024.f*1024.f);
409 mWaterNormp->bind(bumpTex); 409 gGL.getTexUnit(bumpTex)->bind(mWaterNormp.get());
410 mWaterNormp->setMipFilterNearest (mWaterNormp->getMipFilterNearest(), 410 mWaterNormp->setMipFilterNearest (mWaterNormp->getMipFilterNearest(),
411 !gSavedSettings.getBOOL("RenderWaterMipNormal")); 411 !gSavedSettings.getBOOL("RenderWaterMipNormal"));
412 412
@@ -421,8 +421,8 @@ void LLDrawPoolWater::shade()
421 shader->uniform1f(LLViewerShaderMgr::WATER_FOGDENSITY, 421 shader->uniform1f(LLViewerShaderMgr::WATER_FOGDENSITY,
422 param_mgr->getFogDensity()); 422 param_mgr->getFogDensity());
423 } 423 }
424 424
425 gPipeline.mWaterDis.bindTexture(); 425 gGL.getTexUnit(screentex)->bind(&gPipeline.mWaterDis);
426 426
427 if (mVertexShaderLevel == 1) 427 if (mVertexShaderLevel == 1)
428 { 428 {
@@ -502,7 +502,7 @@ void LLDrawPoolWater::shade()
502 } 502 }
503 503
504 LLVOWater* water = (LLVOWater*) face->getViewerObject(); 504 LLVOWater* water = (LLVOWater*) face->getViewerObject();
505 face->bindTexture(diffTex); 505 gGL.getTexUnit(diffTex)->bind(face->getTexture());
506 506
507 sNeedsReflectionUpdate = TRUE; 507 sNeedsReflectionUpdate = TRUE;
508 508
@@ -527,7 +527,7 @@ void LLDrawPoolWater::shade()
527 } 527 }
528 } 528 }
529 529
530 shader->disableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, GL_TEXTURE_CUBE_MAP_ARB); 530 shader->disableTexture(LLViewerShaderMgr::ENVIRONMENT_MAP, LLTexUnit::TT_CUBE_MAP);
531 shader->disableTexture(LLViewerShaderMgr::WATER_SCREENTEX); 531 shader->disableTexture(LLViewerShaderMgr::WATER_SCREENTEX);
532 shader->disableTexture(LLViewerShaderMgr::BUMP_MAP); 532 shader->disableTexture(LLViewerShaderMgr::BUMP_MAP);
533 shader->disableTexture(LLViewerShaderMgr::DIFFUSE_MAP); 533 shader->disableTexture(LLViewerShaderMgr::DIFFUSE_MAP);
@@ -536,7 +536,7 @@ void LLDrawPoolWater::shade()
536 shader->unbind(); 536 shader->unbind();
537 537
538 gGL.getTexUnit(0)->activate(); 538 gGL.getTexUnit(0)->activate();
539 glEnable(GL_TEXTURE_2D); 539 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
540 gGL.setColorMask(true, false); 540 gGL.setColorMask(true, false);
541 541
542} 542}
diff --git a/linden/indra/newview/lldrawpoolwater.h b/linden/indra/newview/lldrawpoolwater.h
index b0ea542..80cc903 100644
--- a/linden/indra/newview/lldrawpoolwater.h
+++ b/linden/indra/newview/lldrawpoolwater.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldrawpoolwlsky.cpp b/linden/indra/newview/lldrawpoolwlsky.cpp
index 8802c1f..4d0be98 100644
--- a/linden/indra/newview/lldrawpoolwlsky.cpp
+++ b/linden/indra/newview/lldrawpoolwlsky.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -159,7 +159,7 @@ void LLDrawPoolWLSky::renderStars(void) const
159 // *NOTE: have to have bound the cloud noise texture already since register 159 // *NOTE: have to have bound the cloud noise texture already since register
160 // combiners blending below requires something to be bound 160 // combiners blending below requires something to be bound
161 // and we might as well only bind once. 161 // and we might as well only bind once.
162 //LLGLEnable gl_texture_2d(GL_TEXTURE_2D); 162 //gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
163 163
164 gPipeline.disableLights(); 164 gPipeline.disableLights();
165 165
@@ -202,7 +202,8 @@ void LLDrawPoolWLSky::renderSkyClouds(F32 camHeightLocal) const
202 LLGLSBlendFunc blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 202 LLGLSBlendFunc blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
203 gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); 203 gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
204 204
205 sCloudNoiseTexture->bind(); 205 gGL.getTexUnit(0)->bind(sCloudNoiseTexture);
206
206 shader->bind(); 207 shader->bind();
207 208
208 /// Render the skydome 209 /// Render the skydome
@@ -223,7 +224,7 @@ void LLDrawPoolWLSky::renderHeavenlyBodies()
223 if (gSky.mVOSkyp->getSun().getDraw() && face->getGeomCount()) 224 if (gSky.mVOSkyp->getSun().getDraw() && face->getGeomCount())
224 { 225 {
225 LLImageGL * tex = face->getTexture(); 226 LLImageGL * tex = face->getTexture();
226 tex->bind(); 227 gGL.getTexUnit(0)->bind(tex);
227 LLColor4 color(gSky.mVOSkyp->getSun().getInterpColor()); 228 LLColor4 color(gSky.mVOSkyp->getSun().getInterpColor());
228 LLFacePool::LLOverrideFaceColor color_override(this, color); 229 LLFacePool::LLOverrideFaceColor color_override(this, color);
229 face->renderIndexed(); 230 face->renderIndexed();
@@ -238,7 +239,7 @@ void LLDrawPoolWLSky::renderHeavenlyBodies()
238 // stars register combiners, we bind again here for defensive reasons, 239 // stars register combiners, we bind again here for defensive reasons,
239 // since LLImageGL::bind detects that it's a noop, and optimizes it out. 240 // since LLImageGL::bind detects that it's a noop, and optimizes it out.
240 LLImageGL * tex = face->getTexture(); 241 LLImageGL * tex = face->getTexture();
241 tex->bind(); 242 gGL.getTexUnit(0)->bind(tex);
242 LLColor4 color(gSky.mVOSkyp->getMoon().getInterpColor()); 243 LLColor4 color(gSky.mVOSkyp->getMoon().getInterpColor());
243 F32 a = gSky.mVOSkyp->getMoon().getDirection().mV[2]; 244 F32 a = gSky.mVOSkyp->getMoon().getDirection().mV[2];
244 if (a > 0.f) 245 if (a > 0.f)
@@ -280,7 +281,7 @@ void LLDrawPoolWLSky::render(S32 pass)
280 // renderStars() requires something to be bound and we might as well only 281 // renderStars() requires something to be bound and we might as well only
281 // bind the moon's texture once. 282 // bind the moon's texture once.
282 LLImageGL * tex = gSky.mVOSkyp->mFace[LLVOSky::FACE_MOON]->getTexture(); 283 LLImageGL * tex = gSky.mVOSkyp->mFace[LLVOSky::FACE_MOON]->getTexture();
283 tex->bind(); 284 gGL.getTexUnit(0)->bind(tex);
284 285
285 renderHeavenlyBodies(); 286 renderHeavenlyBodies();
286 287
@@ -291,7 +292,7 @@ void LLDrawPoolWLSky::render(S32 pass)
291 292
292 renderSkyClouds(camHeightLocal); 293 renderSkyClouds(camHeightLocal);
293 294
294 LLImageGL::unbindTexture(0); 295 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
295} 296}
296 297
297void LLDrawPoolWLSky::prerender() 298void LLDrawPoolWLSky::prerender()
diff --git a/linden/indra/newview/lldrawpoolwlsky.h b/linden/indra/newview/lldrawpoolwlsky.h
index 0f6bcc3..89453c4 100644
--- a/linden/indra/newview/lldrawpoolwlsky.h
+++ b/linden/indra/newview/lldrawpoolwlsky.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldriverparam.cpp b/linden/indra/newview/lldriverparam.cpp
index 4809182..46fe42a 100644
--- a/linden/indra/newview/lldriverparam.cpp
+++ b/linden/indra/newview/lldriverparam.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldriverparam.h b/linden/indra/newview/lldriverparam.h
index afcda9c..b3d8631 100644
--- a/linden/indra/newview/lldriverparam.h
+++ b/linden/indra/newview/lldriverparam.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lldynamictexture.cpp b/linden/indra/newview/lldynamictexture.cpp
index ad0cdec..8801d72 100644
--- a/linden/indra/newview/lldynamictexture.cpp
+++ b/linden/indra/newview/lldynamictexture.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -32,7 +32,6 @@
32#include "llviewerprecompiledheaders.h" 32#include "llviewerprecompiledheaders.h"
33 33
34#include "lldynamictexture.h" 34#include "lldynamictexture.h"
35#include "llimagegl.h"
36#include "llglheaders.h" 35#include "llglheaders.h"
37#include "llviewerwindow.h" 36#include "llviewerwindow.h"
38#include "llviewercamera.h" 37#include "llviewercamera.h"
@@ -105,7 +104,7 @@ void LLDynamicTexture::generateGLTexture(LLGLint internal_format, LLGLenum prima
105 } 104 }
106 releaseGLTexture(); 105 releaseGLTexture();
107 LLPointer<LLImageRaw> raw_image = new LLImageRaw(mWidth, mHeight, mComponents); 106 LLPointer<LLImageRaw> raw_image = new LLImageRaw(mWidth, mHeight, mComponents);
108 mTexture = new LLImageGL(mWidth, mHeight, mComponents, FALSE); 107 mTexture = new LLViewerImage(mWidth, mHeight, mComponents, FALSE);
109 if (internal_format >= 0) 108 if (internal_format >= 0)
110 { 109 {
111 mTexture->setExplicitFormat(internal_format, primary_format, type_format, swap_bytes); 110 mTexture->setExplicitFormat(internal_format, primary_format, type_format, swap_bytes);
@@ -113,6 +112,7 @@ void LLDynamicTexture::generateGLTexture(LLGLint internal_format, LLGLenum prima
113// llinfos << "ALLOCATING " << (mWidth*mHeight*mComponents)/1024 << "K" << llendl; 112// llinfos << "ALLOCATING " << (mWidth*mHeight*mComponents)/1024 << "K" << llendl;
114 mTexture->createGLTexture(0, raw_image); 113 mTexture->createGLTexture(0, raw_image);
115 mTexture->setClamp(mClamp, mClamp); 114 mTexture->setClamp(mClamp, mClamp);
115 mTexture->setGLTextureCreated(false);
116} 116}
117 117
118//----------------------------------------------------------------------------- 118//-----------------------------------------------------------------------------
@@ -144,7 +144,7 @@ void LLDynamicTexture::preRender(BOOL clear_depth)
144 mOrigin.mY = llmax(mOrigin.mY, 0) ; 144 mOrigin.mY = llmax(mOrigin.mY, 0) ;
145 } 145 }
146 146
147 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 147 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
148 } 148 }
149 // Set up camera 149 // Set up camera
150 mCamera.setOrigin(*LLViewerCamera::getInstance()); 150 mCamera.setOrigin(*LLViewerCamera::getInstance());
@@ -184,19 +184,6 @@ void LLDynamicTexture::postRender(BOOL success)
184} 184}
185 185
186//----------------------------------------------------------------------------- 186//-----------------------------------------------------------------------------
187// bindTexture()
188//-----------------------------------------------------------------------------
189void LLDynamicTexture::bindTexture()
190{
191 LLViewerImage::bindTexture(mTexture,0);
192}
193
194void LLDynamicTexture::unbindTexture()
195{
196 LLImageGL::unbindTexture(0, GL_TEXTURE_2D);
197}
198
199//-----------------------------------------------------------------------------
200// static 187// static
201// updateDynamicTextures() 188// updateDynamicTextures()
202// Calls update on each dynamic texture. Calls each group in order: "first," then "middle," then "last." 189// Calls update on each dynamic texture. Calls each group in order: "first," then "middle," then "last."
@@ -210,6 +197,7 @@ BOOL LLDynamicTexture::updateAllInstances()
210 } 197 }
211 198
212 BOOL result = FALSE; 199 BOOL result = FALSE;
200 BOOL ret = FALSE ;
213 for( S32 order = 0; order < ORDER_COUNT; order++ ) 201 for( S32 order = 0; order < ORDER_COUNT; order++ )
214 { 202 {
215 for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin(); 203 for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
@@ -224,9 +212,10 @@ BOOL LLDynamicTexture::updateAllInstances()
224 212
225 gGL.color4f(1,1,1,1); 213 gGL.color4f(1,1,1,1);
226 dynamicTexture->preRender(); // Must be called outside of startRender() 214 dynamicTexture->preRender(); // Must be called outside of startRender()
227 215 result = FALSE;
228 if (dynamicTexture->render()) 216 if (dynamicTexture->render())
229 { 217 {
218 ret = TRUE ;
230 result = TRUE; 219 result = TRUE;
231 sNumRenders++; 220 sNumRenders++;
232 } 221 }
@@ -238,7 +227,19 @@ BOOL LLDynamicTexture::updateAllInstances()
238 } 227 }
239 } 228 }
240 229
241 return result; 230 return ret;
231}
232
233//virtual
234void LLDynamicTexture::restoreGLTexture()
235{
236 generateGLTexture() ;
237}
238
239//virtual
240void LLDynamicTexture::destroyGLTexture()
241{
242 releaseGLTexture() ;
242} 243}
243 244
244//----------------------------------------------------------------------------- 245//-----------------------------------------------------------------------------
@@ -247,6 +248,15 @@ BOOL LLDynamicTexture::updateAllInstances()
247//----------------------------------------------------------------------------- 248//-----------------------------------------------------------------------------
248void LLDynamicTexture::destroyGL() 249void LLDynamicTexture::destroyGL()
249{ 250{
251 for( S32 order = 0; order < ORDER_COUNT; order++ )
252 {
253 for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
254 iter != LLDynamicTexture::sInstances[order].end(); ++iter)
255 {
256 LLDynamicTexture *dynamicTexture = *iter;
257 dynamicTexture->destroyGLTexture() ;
258 }
259 }
250} 260}
251 261
252//----------------------------------------------------------------------------- 262//-----------------------------------------------------------------------------
@@ -255,4 +265,18 @@ void LLDynamicTexture::destroyGL()
255//----------------------------------------------------------------------------- 265//-----------------------------------------------------------------------------
256void LLDynamicTexture::restoreGL() 266void LLDynamicTexture::restoreGL()
257{ 267{
268 if (gGLManager.mIsDisabled)
269 {
270 return ;
271 }
272
273 for( S32 order = 0; order < ORDER_COUNT; order++ )
274 {
275 for (instance_list_t::iterator iter = LLDynamicTexture::sInstances[order].begin();
276 iter != LLDynamicTexture::sInstances[order].end(); ++iter)
277 {
278 LLDynamicTexture *dynamicTexture = *iter;
279 dynamicTexture->restoreGLTexture() ;
280 }
281 }
258} 282}
diff --git a/linden/indra/newview/lldynamictexture.h b/linden/indra/newview/lldynamictexture.h
index 6069940..bd4d22b 100644
--- a/linden/indra/newview/lldynamictexture.h
+++ b/linden/indra/newview/lldynamictexture.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -60,8 +60,11 @@ public:
60 virtual void preRender(BOOL clear_depth = TRUE); 60 virtual void preRender(BOOL clear_depth = TRUE);
61 virtual BOOL render(); 61 virtual BOOL render();
62 virtual void postRender(BOOL success); 62 virtual void postRender(BOOL success);
63 virtual void bindTexture(); 63
64 virtual void unbindTexture(); 64 virtual void restoreGLTexture() ;
65 virtual void destroyGLTexture() ;
66
67 LLImageGL* getTexture(void) const { return mTexture; }
65 68
66 static BOOL updateAllInstances(); 69 static BOOL updateAllInstances();
67 70
diff --git a/linden/indra/newview/llemote.cpp b/linden/indra/newview/llemote.cpp
index 0a65e1e..74dbb42 100644
--- a/linden/indra/newview/llemote.cpp
+++ b/linden/indra/newview/llemote.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llemote.h b/linden/indra/newview/llemote.h
index 553c0c8..2738ec7 100644
--- a/linden/indra/newview/llemote.h
+++ b/linden/indra/newview/llemote.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lleventinfo.cpp b/linden/indra/newview/lleventinfo.cpp
index 5a416ea..b808896 100644
--- a/linden/indra/newview/lleventinfo.cpp
+++ b/linden/indra/newview/lleventinfo.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lleventinfo.h b/linden/indra/newview/lleventinfo.h
index ef2bd33..f5fabcb 100644
--- a/linden/indra/newview/lleventinfo.h
+++ b/linden/indra/newview/lleventinfo.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lleventnotifier.cpp b/linden/indra/newview/lleventnotifier.cpp
index e289a2b..2c378a1 100644
--- a/linden/indra/newview/lleventnotifier.cpp
+++ b/linden/indra/newview/lleventnotifier.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lleventnotifier.h b/linden/indra/newview/lleventnotifier.h
index f9b7309..ed20e6d 100644
--- a/linden/indra/newview/lleventnotifier.h
+++ b/linden/indra/newview/lleventnotifier.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lleventpoll.cpp b/linden/indra/newview/lleventpoll.cpp
index 6b95102..995c4e4 100644
--- a/linden/indra/newview/lleventpoll.cpp
+++ b/linden/indra/newview/lleventpoll.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -31,9 +31,9 @@
31 31
32#include "llviewerprecompiledheaders.h" 32#include "llviewerprecompiledheaders.h"
33 33
34#include "lleventpoll.h"
34#include "llappviewer.h" 35#include "llappviewer.h"
35#include "llagent.h" 36#include "llagent.h"
36#include "lleventpoll.h"
37 37
38#include "llhttpclient.h" 38#include "llhttpclient.h"
39#include "llhttpstatuscodes.h" 39#include "llhttpstatuscodes.h"
@@ -41,6 +41,7 @@
41#include "lltimer.h" 41#include "lltimer.h"
42#include "llviewerregion.h" 42#include "llviewerregion.h"
43#include "message.h" 43#include "message.h"
44#include "lltrans.h"
44 45
45namespace 46namespace
46{ 47{
@@ -225,11 +226,15 @@ namespace
225 // They are essentially disconnected from the region even though some things may still work. 226 // They are essentially disconnected from the region even though some things may still work.
226 // Since things won't get better until they relog we force a disconnect now. 227 // Since things won't get better until they relog we force a disconnect now.
227 228
228 // *NOTE:Mani - This force disconnect was causing logouts even when disconnected 229 // *NOTE:Mani - The following condition check to see if this failing event poll
229 // from neighboring regions. 230 // is attached to the Agent's main region. If so we disconnect the viewer.
230 // *FIX:Mani We may want to re enable forceDisconnect for the agents main region. 231 // Else... its a child region and we just leave the dead event poll stopped and
231 // *FIX:Mani If reimplemting Translate!!!! 232 // continue running.
232 // LLAppViewer::instance()->forceDisconnect("You have been disconnected from the region you were in."); 233 if(gAgent.getRegion() && gAgent.getRegion()->getHost().getIPandPort() == mSender)
234 {
235 llwarns << "Forcing disconnect due to stalled main region event poll." << llendl;
236 LLAppViewer::instance()->forceDisconnect(LLTrans::getString("AgentLostConnection"));
237 }
233 } 238 }
234 } 239 }
235 240
diff --git a/linden/indra/newview/lleventpoll.h b/linden/indra/newview/lleventpoll.h
index a726ede..37d07f5 100644
--- a/linden/indra/newview/lleventpoll.h
+++ b/linden/indra/newview/lleventpoll.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llface.cpp b/linden/indra/newview/llface.cpp
index 5b43fcd..5095f38 100644
--- a/linden/indra/newview/llface.cpp
+++ b/linden/indra/newview/llface.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -362,10 +362,10 @@ void LLFace::renderForSelect(U32 data_mask)
362 switch (getPoolType()) 362 switch (getPoolType())
363 { 363 {
364 case LLDrawPool::POOL_ALPHA: 364 case LLDrawPool::POOL_ALPHA:
365 getTexture()->bind(); 365 gGL.getTexUnit(0)->bind(getTexture());
366 break; 366 break;
367 default: 367 default:
368 LLImageGL::unbindTexture(0); 368 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
369 break; 369 break;
370 } 370 }
371 } 371 }
@@ -390,19 +390,19 @@ void LLFace::renderForSelect(U32 data_mask)
390 { 390 {
391 glPushMatrix(); 391 glPushMatrix();
392 glMultMatrixf((float*) mDrawablep->getRegion()->mRenderMatrix.mMatrix); 392 glMultMatrixf((float*) mDrawablep->getRegion()->mRenderMatrix.mMatrix);
393 mVertexBuffer->draw(LLVertexBuffer::TRIANGLES, mIndicesCount, mIndicesIndex); 393 mVertexBuffer->draw(LLRender::TRIANGLES, mIndicesCount, mIndicesIndex);
394 glPopMatrix(); 394 glPopMatrix();
395 } 395 }
396 else 396 else
397 { 397 {
398 mVertexBuffer->draw(LLVertexBuffer::TRIANGLES, mIndicesCount, mIndicesIndex); 398 mVertexBuffer->draw(LLRender::TRIANGLES, mIndicesCount, mIndicesIndex);
399 } 399 }
400 } 400 }
401 else 401 else
402 { 402 {
403 glPushMatrix(); 403 glPushMatrix();
404 glMultMatrixf((float*)getRenderMatrix().mMatrix); 404 glMultMatrixf((float*)getRenderMatrix().mMatrix);
405 mVertexBuffer->draw(LLVertexBuffer::TRIANGLES, mIndicesCount, mIndicesIndex); 405 mVertexBuffer->draw(LLRender::TRIANGLES, mIndicesCount, mIndicesIndex);
406 glPopMatrix(); 406 glPopMatrix();
407 } 407 }
408 } 408 }
@@ -419,7 +419,7 @@ void LLFace::renderSelected(LLImageGL *imagep, const LLColor4& color)
419 419
420 if (mGeomCount > 0 && mIndicesCount > 0) 420 if (mGeomCount > 0 && mIndicesCount > 0)
421 { 421 {
422 LLViewerImage::bindTexture(imagep); 422 gGL.getTexUnit(0)->bind(imagep);
423 423
424 gGL.pushMatrix(); 424 gGL.pushMatrix();
425 if (mDrawablep->isActive()) 425 if (mDrawablep->isActive())
@@ -438,7 +438,7 @@ void LLFace::renderSelected(LLImageGL *imagep, const LLColor4& color)
438#if !LL_RELEASE_FOR_DOWNLOAD 438#if !LL_RELEASE_FOR_DOWNLOAD
439 LLGLState::checkClientArrays("", LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD); 439 LLGLState::checkClientArrays("", LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD);
440#endif 440#endif
441 mVertexBuffer->draw(LLVertexBuffer::TRIANGLES, mIndicesCount, mIndicesIndex); 441 mVertexBuffer->draw(LLRender::TRIANGLES, mIndicesCount, mIndicesIndex);
442 442
443 unsetFaceColor(); 443 unsetFaceColor();
444 gGL.popMatrix(); 444 gGL.popMatrix();
@@ -1203,7 +1203,7 @@ S32 LLFace::pushVertices(const U16* index_array) const
1203{ 1203{
1204 if (mIndicesCount) 1204 if (mIndicesCount)
1205 { 1205 {
1206 mVertexBuffer->drawRange(LLVertexBuffer::TRIANGLES, mGeomIndex, mGeomIndex+mGeomCount-1, mIndicesCount, mIndicesIndex); 1206 mVertexBuffer->drawRange(LLRender::TRIANGLES, mGeomIndex, mGeomIndex+mGeomCount-1, mIndicesCount, mIndicesIndex);
1207 gPipeline.addTrianglesDrawn(mIndicesCount/3); 1207 gPipeline.addTrianglesDrawn(mIndicesCount/3);
1208 } 1208 }
1209 1209
diff --git a/linden/indra/newview/llface.h b/linden/indra/newview/llface.h
index 0501dcc..e4ff28f 100644
--- a/linden/indra/newview/llface.h
+++ b/linden/indra/newview/llface.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -101,7 +101,6 @@ public:
101 void setPixelArea(F32 area) { mPixelArea = area; } 101 void setPixelArea(F32 area) { mPixelArea = area; }
102 F32 getVirtualSize() const { return mVSize; } 102 F32 getVirtualSize() const { return mVSize; }
103 F32 getPixelArea() const { return mPixelArea; } 103 F32 getPixelArea() const { return mPixelArea; }
104 void bindTexture(S32 stage = 0) const { LLViewerImage::bindTexture(mTexture, stage); }
105 104
106 void renderSetColor() const; 105 void renderSetColor() const;
107 S32 renderElements(const U16 *index_array) const; 106 S32 renderElements(const U16 *index_array) const;
@@ -120,6 +119,7 @@ public:
120 LLVertexBuffer* getVertexBuffer() const { return mVertexBuffer; } 119 LLVertexBuffer* getVertexBuffer() const { return mVertexBuffer; }
121 void setPoolType(U32 type) { mPoolType = type; } 120 void setPoolType(U32 type) { mPoolType = type; }
122 S32 getTEOffset() { return mTEOffset; } 121 S32 getTEOffset() { return mTEOffset; }
122 LLViewerImage* getTexture() { return mTexture; }
123 123
124 void setViewerObject(LLViewerObject* object); 124 void setViewerObject(LLViewerObject* object);
125 void setPool(LLFacePool *pool, LLViewerImage *texturep); 125 void setPool(LLFacePool *pool, LLViewerImage *texturep);
diff --git a/linden/indra/newview/llface.inl b/linden/indra/newview/llface.inl
index 8f8cfaf..1092c8a 100644
--- a/linden/indra/newview/llface.inl
+++ b/linden/indra/newview/llface.inl
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -33,6 +33,7 @@
33#define LL_LLFACE_INL 33#define LL_LLFACE_INL
34 34
35#include "llglheaders.h" 35#include "llglheaders.h"
36#include "llrender.h"
36 37
37inline BOOL LLFace::getDirty() const 38inline BOOL LLFace::getDirty() const
38{ 39{
diff --git a/linden/indra/newview/llfasttimerview.cpp b/linden/indra/newview/llfasttimerview.cpp
index f1ca99f..16abbe3 100644
--- a/linden/indra/newview/llfasttimerview.cpp
+++ b/linden/indra/newview/llfasttimerview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -116,6 +116,7 @@ static struct ft_display_info ft_display_table[] =
116 { LLFastTimer::FTM_VFILE_WAIT, " VFile Wait", &LLColor4::cyan6, 0 }, 116 { LLFastTimer::FTM_VFILE_WAIT, " VFile Wait", &LLColor4::cyan6, 0 },
117// { LLFastTimer::FTM_IDLE_CB, " Callbacks", &LLColor4::pink1, 0 }, 117// { LLFastTimer::FTM_IDLE_CB, " Callbacks", &LLColor4::pink1, 0 },
118 { LLFastTimer::FTM_RENDER, " Render", &green0, 1 }, 118 { LLFastTimer::FTM_RENDER, " Render", &green0, 1 },
119 { LLFastTimer::FTM_PICK, " Pick", &LLColor4::purple, 1 },
119 { LLFastTimer::FTM_HUD_EFFECTS, " HUD Effects", &LLColor4::orange1, 0 }, 120 { LLFastTimer::FTM_HUD_EFFECTS, " HUD Effects", &LLColor4::orange1, 0 },
120 { LLFastTimer::FTM_HUD_UPDATE, " HUD Update", &LLColor4::orange2, 0 }, 121 { LLFastTimer::FTM_HUD_UPDATE, " HUD Update", &LLColor4::orange2, 0 },
121 { LLFastTimer::FTM_UPDATE_SKY, " Sky Update", &LLColor4::cyan1, 0 }, 122 { LLFastTimer::FTM_UPDATE_SKY, " Sky Update", &LLColor4::cyan1, 0 },
@@ -463,7 +464,7 @@ void LLFastTimerView::draw()
463 464
464 // Draw the window background 465 // Draw the window background
465 { 466 {
466 LLGLSNoTexture gls_ui_no_texture; 467 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
467 gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4(0.f, 0.f, 0.f, 0.25f)); 468 gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4(0.f, 0.f, 0.f, 0.25f));
468 } 469 }
469 470
@@ -755,7 +756,7 @@ void LLFastTimerView::draw()
755 LLRect graph_rect; 756 LLRect graph_rect;
756 // Draw borders 757 // Draw borders
757 { 758 {
758 LLGLSNoTexture gls_ui_no_texture; 759 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
759 gGL.color4f(0.5f,0.5f,0.5f,0.5f); 760 gGL.color4f(0.5f,0.5f,0.5f,0.5f);
760 761
761 S32 by = y + 2; 762 S32 by = y + 2;
@@ -792,7 +793,7 @@ void LLFastTimerView::draw()
792 793
793 // Draw bars for each history entry 794 // Draw bars for each history entry
794 // Special: -1 = show running average 795 // Special: -1 = show running average
795 LLViewerImage::bindTexture(box_imagep->getImage()); 796 gGL.getTexUnit(0)->bind(box_imagep->getImage());
796 for (S32 j=-1; j<histmax && y > LINE_GRAPH_HEIGHT; j++) 797 for (S32 j=-1; j<histmax && y > LINE_GRAPH_HEIGHT; j++)
797 { 798 {
798 int sublevel_dx[FTV_DISPLAY_NUM+1]; 799 int sublevel_dx[FTV_DISPLAY_NUM+1];
@@ -936,7 +937,7 @@ void LLFastTimerView::draw()
936 937
937 //draw line graph history 938 //draw line graph history
938 { 939 {
939 LLGLSNoTexture no_texture; 940 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
940 LLLocalClipRect clip(graph_rect); 941 LLLocalClipRect clip(graph_rect);
941 942
942 //normalize based on last frame's maximum 943 //normalize based on last frame's maximum
@@ -980,7 +981,7 @@ void LLFastTimerView::draw()
980 981
981 gGL.color4f(0.5f,0.5f,0.5f,1); 982 gGL.color4f(0.5f,0.5f,0.5f,1);
982 983
983 gGL.begin(LLVertexBuffer::LINES); 984 gGL.begin(LLRender::LINES);
984 gGL.vertex2i((S32)bar, graph_rect.mBottom); 985 gGL.vertex2i((S32)bar, graph_rect.mBottom);
985 gGL.vertex2i((S32)bar, graph_rect.mTop); 986 gGL.vertex2i((S32)bar, graph_rect.mTop);
986 gGL.end(); 987 gGL.end();
@@ -1016,7 +1017,7 @@ void LLFastTimerView::draw()
1016 } 1017 }
1017 1018
1018 gGL.color4f(col[0], col[1], col[2], alpha); 1019 gGL.color4f(col[0], col[1], col[2], alpha);
1019 gGL.begin(LLVertexBuffer::LINE_STRIP); 1020 gGL.begin(LLRender::LINE_STRIP);
1020 for (U32 j = 0; j < LLFastTimer::FTM_HISTORY_NUM; j++) 1021 for (U32 j = 0; j < LLFastTimer::FTM_HISTORY_NUM; j++)
1021 { 1022 {
1022 U64 ticks = ticks_sum[j+1][idx]; 1023 U64 ticks = ticks_sum[j+1][idx];
diff --git a/linden/indra/newview/llfasttimerview.h b/linden/indra/newview/llfasttimerview.h
index 75eb165..c8189be 100644
--- a/linden/indra/newview/llfasttimerview.h
+++ b/linden/indra/newview/llfasttimerview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfeaturemanager.cpp b/linden/indra/newview/llfeaturemanager.cpp
index a3da4f5..b847a53 100644
--- a/linden/indra/newview/llfeaturemanager.cpp
+++ b/linden/indra/newview/llfeaturemanager.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -29,11 +29,11 @@
29 * $/LicenseInfo$ 29 * $/LicenseInfo$
30 */ 30 */
31 31
32#include "llviewerprecompiledheaders.h"
33
32#include <iostream> 34#include <iostream>
33#include <fstream> 35#include <fstream>
34 36
35#include "llviewerprecompiledheaders.h"
36
37#include <boost/regex.hpp> 37#include <boost/regex.hpp>
38 38
39#include "llfeaturemanager.h" 39#include "llfeaturemanager.h"
@@ -447,8 +447,6 @@ void LLFeatureManager::applyRecommendedSettings()
447 { 447 {
448 gSavedSettings.setF32("RenderFarClip", 128.0f); 448 gSavedSettings.setF32("RenderFarClip", 128.0f);
449 } 449 }
450
451
452} 450}
453 451
454void LLFeatureManager::applyFeatures(bool skipFeatures) 452void LLFeatureManager::applyFeatures(bool skipFeatures)
diff --git a/linden/indra/newview/llfeaturemanager.h b/linden/indra/newview/llfeaturemanager.h
index 1eeddfa..8cfcc7c 100644
--- a/linden/indra/newview/llfeaturemanager.h
+++ b/linden/indra/newview/llfeaturemanager.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfilepicker.cpp b/linden/indra/newview/llfilepicker.cpp
index 1edfbe6..caf79eb 100644
--- a/linden/indra/newview/llfilepicker.cpp
+++ b/linden/indra/newview/llfilepicker.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -962,7 +962,7 @@ void LLFilePicker::chooser_responder(GtkWidget *widget, gint response, gpointer
962 962
963GtkWindow* LLFilePicker::buildFilePicker(bool is_save, bool is_folder, std::string context) 963GtkWindow* LLFilePicker::buildFilePicker(bool is_save, bool is_folder, std::string context)
964{ 964{
965 if (ll_try_gtk_init() && 965 if (LLWindowSDL::ll_try_gtk_init() &&
966 ! gViewerWindow->getWindow()->getFullscreen()) 966 ! gViewerWindow->getWindow()->getFullscreen())
967 { 967 {
968 GtkWidget *win = NULL; 968 GtkWidget *win = NULL;
@@ -1003,7 +1003,7 @@ GtkWindow* LLFilePicker::buildFilePicker(bool is_save, bool is_folder, std::stri
1003 // Make GTK tell the window manager to associate this 1003 // Make GTK tell the window manager to associate this
1004 // dialog with our non-GTK raw X11 window, which should try 1004 // dialog with our non-GTK raw X11 window, which should try
1005 // to keep it on top etc. 1005 // to keep it on top etc.
1006 Window XWindowID = get_SDL_XWindowID(); 1006 Window XWindowID = LLWindowSDL::get_SDL_XWindowID();
1007 if (None != XWindowID) 1007 if (None != XWindowID)
1008 { 1008 {
1009 gtk_widget_realize(GTK_WIDGET(win)); // so we can get its gdkwin 1009 gtk_widget_realize(GTK_WIDGET(win)); // so we can get its gdkwin
diff --git a/linden/indra/newview/llfilepicker.h b/linden/indra/newview/llfilepicker.h
index 1f7239e..aea414a 100644
--- a/linden/indra/newview/llfilepicker.h
+++ b/linden/indra/newview/llfilepicker.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfirstuse.cpp b/linden/indra/newview/llfirstuse.cpp
index fc469f1..ee7053d 100644
--- a/linden/indra/newview/llfirstuse.cpp
+++ b/linden/indra/newview/llfirstuse.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfirstuse.h b/linden/indra/newview/llfirstuse.h
index cde6b59..eef0537 100644
--- a/linden/indra/newview/llfirstuse.h
+++ b/linden/indra/newview/llfirstuse.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llflexibleobject.cpp b/linden/indra/newview/llflexibleobject.cpp
index 95e6d17..6f28917 100644
--- a/linden/indra/newview/llflexibleobject.cpp
+++ b/linden/indra/newview/llflexibleobject.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llflexibleobject.h b/linden/indra/newview/llflexibleobject.h
index 843a8f8..078cd42 100644
--- a/linden/indra/newview/llflexibleobject.h
+++ b/linden/indra/newview/llflexibleobject.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterabout.cpp b/linden/indra/newview/llfloaterabout.cpp
index be1c254..37e9c54 100644
--- a/linden/indra/newview/llfloaterabout.cpp
+++ b/linden/indra/newview/llfloaterabout.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2001&license=viewergpl$ 6 * $LicenseInfo:firstyear=2001&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2001-2008, Linden Research, Inc. 8 * Copyright (c) 2001-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -202,7 +202,9 @@ LLFloaterAbout::LLFloaterAbout()
202 support.append("\n"); 202 support.append("\n");
203 203
204 support.append("Audio Driver Version: "); 204 support.append("Audio Driver Version: ");
205 support.append( gAudiop ? gAudiop->getDriverName(true) : "(none)" ); 205 bool want_fullname = true;
206 support.append( gAudiop ? gAudiop->getDriverName(want_fullname) : "(none)" );
207
206 support.append("\n"); 208 support.append("\n");
207 209
208 LLMediaManager *mgr = LLMediaManager::getInstance(); 210 LLMediaManager *mgr = LLMediaManager::getInstance();
diff --git a/linden/indra/newview/llfloaterabout.h b/linden/indra/newview/llfloaterabout.h
index b58f8cc..b8e8f3e 100644
--- a/linden/indra/newview/llfloaterabout.h
+++ b/linden/indra/newview/llfloaterabout.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloateractivespeakers.cpp b/linden/indra/newview/llfloateractivespeakers.cpp
index 4561110..a8f3f91 100644
--- a/linden/indra/newview/llfloateractivespeakers.cpp
+++ b/linden/indra/newview/llfloateractivespeakers.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -47,6 +47,7 @@
47#include "llsdutil.h" 47#include "llsdutil.h"
48#include "llimview.h" 48#include "llimview.h"
49#include "llviewerwindow.h" 49#include "llviewerwindow.h"
50#include "llappviewer.h"
50 51
51const F32 SPEAKER_TIMEOUT = 10.f; // seconds of not being on voice channel before removed from list of active speakers 52const F32 SPEAKER_TIMEOUT = 10.f; // seconds of not being on voice channel before removed from list of active speakers
52const F32 RESORT_TIMEOUT = 5.f; // seconds of mouse inactivity before it's ok to sort regardless of mouse-in-view. 53const F32 RESORT_TIMEOUT = 5.f; // seconds of mouse inactivity before it's ok to sort regardless of mouse-in-view.
@@ -546,7 +547,8 @@ void LLPanelActiveSpeakers::refreshSpeakers()
546 && gVoiceClient->getVoiceEnabled(selected_id) 547 && gVoiceClient->getVoiceEnabled(selected_id)
547 && selected_id.notNull() 548 && selected_id.notNull()
548 && selected_id != gAgent.getID() 549 && selected_id != gAgent.getID()
549 && (selected_speakerp.notNull() && selected_speakerp->mType == LLSpeaker::SPEAKER_AGENT)); 550 && (selected_speakerp.notNull() && (selected_speakerp->mType == LLSpeaker::SPEAKER_AGENT || selected_speakerp->mType == LLSpeaker::SPEAKER_EXTERNAL)));
551
550 } 552 }
551 if (mMuteTextCtrl) 553 if (mMuteTextCtrl)
552 { 554 {
@@ -554,6 +556,7 @@ void LLPanelActiveSpeakers::refreshSpeakers()
554 mMuteTextCtrl->setEnabled(selected_id.notNull() 556 mMuteTextCtrl->setEnabled(selected_id.notNull()
555 && selected_id != gAgent.getID() 557 && selected_id != gAgent.getID()
556 && selected_speakerp.notNull() 558 && selected_speakerp.notNull()
559 && selected_speakerp->mType != LLSpeaker::SPEAKER_EXTERNAL
557 && !LLMuteList::getInstance()->isLinden(selected_speakerp->mDisplayName)); 560 && !LLMuteList::getInstance()->isLinden(selected_speakerp->mDisplayName));
558 } 561 }
559 childSetValue("speaker_volume", gVoiceClient->getUserVolume(selected_id)); 562 childSetValue("speaker_volume", gVoiceClient->getUserVolume(selected_id));
@@ -561,7 +564,7 @@ void LLPanelActiveSpeakers::refreshSpeakers()
561 && gVoiceClient->getVoiceEnabled(selected_id) 564 && gVoiceClient->getVoiceEnabled(selected_id)
562 && selected_id.notNull() 565 && selected_id.notNull()
563 && selected_id != gAgent.getID() 566 && selected_id != gAgent.getID()
564 && (selected_speakerp.notNull() && selected_speakerp->mType == LLSpeaker::SPEAKER_AGENT)); 567 && (selected_speakerp.notNull() && (selected_speakerp->mType == LLSpeaker::SPEAKER_AGENT || selected_speakerp->mType == LLSpeaker::SPEAKER_EXTERNAL)));
565 568
566 childSetEnabled( 569 childSetEnabled(
567 "moderator_controls_label", 570 "moderator_controls_label",
@@ -579,7 +582,7 @@ void LLPanelActiveSpeakers::refreshSpeakers()
579 582
580 if (mProfileBtn) 583 if (mProfileBtn)
581 { 584 {
582 mProfileBtn->setEnabled(selected_id.notNull()); 585 mProfileBtn->setEnabled(selected_id.notNull() && (selected_speakerp.notNull() && selected_speakerp->mType != LLSpeaker::SPEAKER_EXTERNAL) );
583 } 586 }
584 587
585 // show selected user name in large font 588 // show selected user name in large font
@@ -1033,9 +1036,17 @@ void LLSpeakerMgr::update(BOOL resort_ok)
1033 // speaker no longer registered in voice channel, demote to text only 1036 // speaker no longer registered in voice channel, demote to text only
1034 else if (speakerp->mStatus != LLSpeaker::STATUS_NOT_IN_CHANNEL) 1037 else if (speakerp->mStatus != LLSpeaker::STATUS_NOT_IN_CHANNEL)
1035 { 1038 {
1036 speakerp->mStatus = LLSpeaker::STATUS_TEXT_ONLY; 1039 if(speakerp->mType == LLSpeaker::SPEAKER_EXTERNAL)
1037 speakerp->mSpeechVolume = 0.f; 1040 {
1038 speakerp->mDotColor = ACTIVE_COLOR; 1041 // external speakers should be timed out when they leave the voice channel (since they only exist via SLVoice)
1042 speakerp->mStatus = LLSpeaker::STATUS_NOT_IN_CHANNEL;
1043 }
1044 else
1045 {
1046 speakerp->mStatus = LLSpeaker::STATUS_TEXT_ONLY;
1047 speakerp->mSpeechVolume = 0.f;
1048 speakerp->mDotColor = ACTIVE_COLOR;
1049 }
1039 } 1050 }
1040 } 1051 }
1041 1052
@@ -1087,13 +1098,16 @@ void LLSpeakerMgr::updateSpeakerList()
1087 if ((!mVoiceChannel && gVoiceClient->inProximalChannel()) || (mVoiceChannel && mVoiceChannel->isActive())) 1098 if ((!mVoiceChannel && gVoiceClient->inProximalChannel()) || (mVoiceChannel && mVoiceChannel->isActive()))
1088 { 1099 {
1089 LLVoiceClient::participantMap* participants = gVoiceClient->getParticipantList(); 1100 LLVoiceClient::participantMap* participants = gVoiceClient->getParticipantList();
1090 LLVoiceClient::participantMap::iterator participant_it; 1101 if(participants)
1091
1092 // add new participants to our list of known speakers
1093 for (participant_it = participants->begin(); participant_it != participants->end(); ++participant_it)
1094 { 1102 {
1095 LLVoiceClient::participantState* participantp = participant_it->second; 1103 LLVoiceClient::participantMap::iterator participant_it;
1096 setSpeaker(participantp->mAvatarID, LLStringUtil::null, LLSpeaker::STATUS_VOICE_ACTIVE); 1104
1105 // add new participants to our list of known speakers
1106 for (participant_it = participants->begin(); participant_it != participants->end(); ++participant_it)
1107 {
1108 LLVoiceClient::participantState* participantp = participant_it->second;
1109 setSpeaker(participantp->mAvatarID, participantp->mDisplayName, LLSpeaker::STATUS_VOICE_ACTIVE, (participantp->mAvatarIDValid?LLSpeaker::SPEAKER_AGENT:LLSpeaker::SPEAKER_EXTERNAL));
1110 }
1097 } 1111 }
1098 } 1112 }
1099} 1113}
@@ -1166,6 +1180,10 @@ void LLIMSpeakerMgr::updateSpeakerList()
1166{ 1180{
1167 // don't do normal updates which are pulled from voice channel 1181 // don't do normal updates which are pulled from voice channel
1168 // rely on user list reported by sim 1182 // rely on user list reported by sim
1183
1184 // We need to do this to allow PSTN callers into group chats to show in the list.
1185 LLSpeakerMgr::updateSpeakerList();
1186
1169 return; 1187 return;
1170} 1188}
1171 1189
@@ -1358,6 +1376,11 @@ void LLLocalSpeakerMgr::updateSpeakerList()
1358 // pull speakers from voice channel 1376 // pull speakers from voice channel
1359 LLSpeakerMgr::updateSpeakerList(); 1377 LLSpeakerMgr::updateSpeakerList();
1360 1378
1379 if (gDisconnected)//the world is cleared.
1380 {
1381 return ;
1382 }
1383
1361 // add non-voice speakers in chat range 1384 // add non-voice speakers in chat range
1362 std::vector< LLCharacter* >::iterator avatar_it; 1385 std::vector< LLCharacter* >::iterator avatar_it;
1363 for(avatar_it = LLCharacter::sInstances.begin(); avatar_it != LLCharacter::sInstances.end(); ++avatar_it) 1386 for(avatar_it = LLCharacter::sInstances.begin(); avatar_it != LLCharacter::sInstances.end(); ++avatar_it)
diff --git a/linden/indra/newview/llfloateractivespeakers.h b/linden/indra/newview/llfloateractivespeakers.h
index 550b48c..0fb0267 100644
--- a/linden/indra/newview/llfloateractivespeakers.h
+++ b/linden/indra/newview/llfloateractivespeakers.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -53,7 +53,8 @@ public:
53 typedef enum e_speaker_type 53 typedef enum e_speaker_type
54 { 54 {
55 SPEAKER_AGENT, 55 SPEAKER_AGENT,
56 SPEAKER_OBJECT 56 SPEAKER_OBJECT,
57 SPEAKER_EXTERNAL // Speaker that doesn't map to an avatar or object (i.e. PSTN caller in a group)
57 } ESpeakerType; 58 } ESpeakerType;
58 59
59 typedef enum e_speaker_status 60 typedef enum e_speaker_status
diff --git a/linden/indra/newview/llfloateranimpreview.cpp b/linden/indra/newview/llfloateranimpreview.cpp
index 66b7a56..c75f9e3 100644
--- a/linden/indra/newview/llfloateranimpreview.cpp
+++ b/linden/indra/newview/llfloateranimpreview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -384,9 +384,10 @@ void LLFloaterAnimPreview::draw()
384 if (mMotionID.notNull() && mAnimPreview) 384 if (mMotionID.notNull() && mAnimPreview)
385 { 385 {
386 gGL.color3f(1.f, 1.f, 1.f); 386 gGL.color3f(1.f, 1.f, 1.f);
387 mAnimPreview->bindTexture();
388 387
389 gGL.begin( LLVertexBuffer::QUADS ); 388 gGL.getTexUnit(0)->bind(mAnimPreview->getTexture());
389
390 gGL.begin( LLRender::QUADS );
390 { 391 {
391 gGL.texCoord2f(0.f, 1.f); 392 gGL.texCoord2f(0.f, 1.f);
392 gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT); 393 gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT);
@@ -399,7 +400,7 @@ void LLFloaterAnimPreview::draw()
399 } 400 }
400 gGL.end(); 401 gGL.end();
401 402
402 mAnimPreview->unbindTexture(); 403 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
403 404
404 LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar(); 405 LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
405 if (!avatarp->areAnimationsPaused()) 406 if (!avatarp->areAnimationsPaused())
@@ -1068,7 +1069,7 @@ BOOL LLPreviewAnimation::render()
1068 glLoadIdentity(); 1069 glLoadIdentity();
1069 1070
1070 LLGLSUIDefault def; 1071 LLGLSUIDefault def;
1071 LLGLSNoTexture gls_no_texture; 1072 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1072 gGL.color4f(0.15f, 0.2f, 0.3f, 1.f); 1073 gGL.color4f(0.15f, 0.2f, 0.3f, 1.f);
1073 1074
1074 gl_rect_2d_simple( mWidth, mHeight ); 1075 gl_rect_2d_simple( mWidth, mHeight );
diff --git a/linden/indra/newview/llfloateranimpreview.h b/linden/indra/newview/llfloateranimpreview.h
index b7bb521..cc4cca3 100644
--- a/linden/indra/newview/llfloateranimpreview.h
+++ b/linden/indra/newview/llfloateranimpreview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterauction.cpp b/linden/indra/newview/llfloaterauction.cpp
index 80c43ab..0813430 100644
--- a/linden/indra/newview/llfloaterauction.cpp
+++ b/linden/indra/newview/llfloaterauction.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2004&license=viewergpl$ 6 * $LicenseInfo:firstyear=2004&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2004-2008, Linden Research, Inc. 8 * Copyright (c) 2004-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -148,7 +148,7 @@ void LLFloaterAuction::draw()
148 if (childGetRect("snapshot_icon", rect)) 148 if (childGetRect("snapshot_icon", rect))
149 { 149 {
150 { 150 {
151 LLGLSNoTexture gls_no_texture; 151 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
152 gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f)); 152 gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f));
153 rect.stretch(-1); 153 rect.stretch(-1);
154 } 154 }
@@ -205,7 +205,7 @@ void LLFloaterAuction::onClickSnapshot(void* data)
205 LLVFile::writeFile(j2c->getData(), j2c->getDataSize(), gVFS, self->mImageID, LLAssetType::AT_TEXTURE); 205 LLVFile::writeFile(j2c->getData(), j2c->getDataSize(), gVFS, self->mImageID, LLAssetType::AT_TEXTURE);
206 206
207 self->mImage = new LLImageGL((LLImageRaw*)raw, FALSE); 207 self->mImage = new LLImageGL((LLImageRaw*)raw, FALSE);
208 self->mImage->bind(); 208 gGL.getTexUnit(0)->bind(self->mImage);
209 self->mImage->setClamp(TRUE, TRUE); 209 self->mImage->setClamp(TRUE, TRUE);
210 } 210 }
211 else 211 else
diff --git a/linden/indra/newview/llfloaterauction.h b/linden/indra/newview/llfloaterauction.h
index cd18158..673f65c 100644
--- a/linden/indra/newview/llfloaterauction.h
+++ b/linden/indra/newview/llfloaterauction.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2004&license=viewergpl$ 6 * $LicenseInfo:firstyear=2004&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2004-2008, Linden Research, Inc. 8 * Copyright (c) 2004-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloateravatarinfo.cpp b/linden/indra/newview/llfloateravatarinfo.cpp
index 4abf493..f543038 100644
--- a/linden/indra/newview/llfloateravatarinfo.cpp
+++ b/linden/indra/newview/llfloateravatarinfo.cpp
@@ -7,7 +7,7 @@
7 * 7 *
8 * $LicenseInfo:firstyear=2002&license=viewergpl$ 8 * $LicenseInfo:firstyear=2002&license=viewergpl$
9 * 9 *
10 * Copyright (c) 2002-2008, Linden Research, Inc. 10 * Copyright (c) 2002-2009, Linden Research, Inc.
11 * 11 *
12 * Second Life Viewer Source Code 12 * Second Life Viewer Source Code
13 * The source code in this file ("Source Code") is provided by Linden Lab 13 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloateravatarinfo.h b/linden/indra/newview/llfloateravatarinfo.h
index 9ee92e9..4b0b681 100644
--- a/linden/indra/newview/llfloateravatarinfo.h
+++ b/linden/indra/newview/llfloateravatarinfo.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloateravatarpicker.cpp b/linden/indra/newview/llfloateravatarpicker.cpp
index 216eea7..97d2de9 100644
--- a/linden/indra/newview/llfloateravatarpicker.cpp
+++ b/linden/indra/newview/llfloateravatarpicker.cpp
@@ -3,7 +3,7 @@
3 * 3 *
4 * $LicenseInfo:firstyear=2003&license=viewergpl$ 4 * $LicenseInfo:firstyear=2003&license=viewergpl$
5 * 5 *
6 * Copyright (c) 2003-2008, Linden Research, Inc. 6 * Copyright (c) 2003-2009, Linden Research, Inc.
7 * 7 *
8 * Second Life Viewer Source Code 8 * Second Life Viewer Source Code
9 * The source code in this file ("Source Code") is provided by Linden Lab 9 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloateravatarpicker.h b/linden/indra/newview/llfloateravatarpicker.h
index 7fcb5c0..005eff0 100644
--- a/linden/indra/newview/llfloateravatarpicker.h
+++ b/linden/indra/newview/llfloateravatarpicker.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloateravatartextures.cpp b/linden/indra/newview/llfloateravatartextures.cpp
index a5df51b..f6d985e 100644
--- a/linden/indra/newview/llfloateravatartextures.cpp
+++ b/linden/indra/newview/llfloateravatartextures.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloateravatartextures.h b/linden/indra/newview/llfloateravatartextures.h
index 3bddf9b..102d24a 100644
--- a/linden/indra/newview/llfloateravatartextures.h
+++ b/linden/indra/newview/llfloateravatartextures.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterbeacons.cpp b/linden/indra/newview/llfloaterbeacons.cpp
new file mode 100644
index 0000000..2dee000
--- /dev/null
+++ b/linden/indra/newview/llfloaterbeacons.cpp
@@ -0,0 +1,150 @@
1/**
2 * @file llfloaterbeacons.cpp
3 * @brief Front-end to LLPipeline controls for highlighting various kinds of objects.
4 * @author Coco
5 *
6 * $LicenseInfo:firstyear=2001&license=viewergpl$
7 *
8 * Copyright (c) 2001-2009, Linden Research, Inc.
9 *
10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab
12 * to you under the terms of the GNU General Public License, version 2.0
13 * ("GPL"), unless you have obtained a separate licensing agreement
14 * ("Other License"), formally executed by you and Linden Lab. Terms of
15 * the GPL can be found in doc/GPL-license.txt in this distribution, or
16 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
17 *
18 * There are special exceptions to the terms and conditions of the GPL as
19 * it is applied to this Source Code. View the full text of the exception
20 * in the file doc/FLOSS-exception.txt in this software distribution, or
21 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
22 *
23 * By copying, modifying or distributing this software, you acknowledge
24 * that you have read and understood your obligations described above,
25 * and agree to abide by those obligations.
26 *
27 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
28 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
29 * COMPLETENESS OR PERFORMANCE.
30 * $/LicenseInfo$
31 */
32
33#include "llviewerprecompiledheaders.h"
34#include "llfloaterbeacons.h"
35#include "llviewercontrol.h"
36#include "lluictrlfactory.h"
37#include "llcheckboxctrl.h"
38#include "pipeline.h"
39
40
41LLFloaterBeacons::LLFloaterBeacons(const LLSD& seed)
42{
43 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_beacons.xml");
44
45 // Initialize pipeline states from saved settings.
46 // OK to do at floater constructor time because beacons do not display unless the floater is open
47 // therefore it is OK to not initialize the pipeline state before needed.
48 // Note also that we should replace those pipeline statics with direct lookup of the saved settings
49 // eliminating the need to keep these states in sync.
50 LLPipeline::setRenderScriptedTouchBeacons(gSavedSettings.getBOOL("scripttouchbeacon"));
51 LLPipeline::setRenderScriptedBeacons( gSavedSettings.getBOOL("scriptsbeacon"));
52 LLPipeline::setRenderPhysicalBeacons( gSavedSettings.getBOOL("physicalbeacon"));
53 LLPipeline::setRenderSoundBeacons( gSavedSettings.getBOOL("soundsbeacon"));
54 LLPipeline::setRenderParticleBeacons( gSavedSettings.getBOOL("particlesbeacon"));
55 LLPipeline::setRenderHighlights( gSavedSettings.getBOOL("renderhighlights"));
56 LLPipeline::setRenderBeacons( gSavedSettings.getBOOL("renderbeacons"));
57}
58
59BOOL LLFloaterBeacons::postBuild()
60{
61 childSetCommitCallback("touch_only", onClickUICheck, this);
62 childSetCommitCallback("scripted", onClickUICheck, this);
63 childSetCommitCallback("physical", onClickUICheck, this);
64 childSetCommitCallback("sounds", onClickUICheck, this);
65 childSetCommitCallback("particles", onClickUICheck, this);
66 childSetCommitCallback("highlights", onClickUICheck, this);
67 childSetCommitCallback("beacons", onClickUICheck, this);
68 return TRUE;
69}
70
71// Needed to make the floater visibility toggle the beacons.
72// Too bad we can't just add control_name="BeaconAlwaysOn" to the XML.
73void LLFloaterBeacons::open()
74{
75 LLFloater::open();
76 gSavedSettings.setBOOL( "BeaconAlwaysOn", TRUE);
77}
78void LLFloaterBeacons::close(bool app_quitting)
79{
80 LLFloater::close(app_quitting);
81 if(!app_quitting)
82 {
83 gSavedSettings.setBOOL( "BeaconAlwaysOn", FALSE);
84 }
85}
86
87// Callback attached to each check box control to both affect their main purpose
88// and to implement the couple screwy interdependency rules that some have.
89//static
90void LLFloaterBeacons::onClickUICheck(LLUICtrl *ctrl, void* data)
91{
92 LLCheckBoxCtrl *check = (LLCheckBoxCtrl *)ctrl;
93 std::string name = check->getName();
94 LLFloaterBeacons* view = (LLFloaterBeacons*)data;
95 if( name == "touch_only")
96 {
97 LLPipeline::toggleRenderScriptedTouchBeacons(NULL);
98 // Don't allow both to be ON at the same time. Toggle the other one off if both now on.
99 if (
100 LLPipeline::getRenderScriptedTouchBeacons(NULL) &&
101 LLPipeline::getRenderScriptedBeacons(NULL) )
102 {
103 LLPipeline::setRenderScriptedBeacons(FALSE);
104 view->getChild<LLCheckBoxCtrl>("scripted")->setControlValue(LLSD(FALSE));
105 view->getChild<LLCheckBoxCtrl>("touch_only")->setControlValue(LLSD(TRUE)); // just to be sure it's in sync with llpipeline
106 }
107 }
108 else if(name == "scripted")
109 {
110 LLPipeline::toggleRenderScriptedBeacons(NULL);
111 // Don't allow both to be ON at the same time. Toggle the other one off if both now on.
112 if (
113 LLPipeline::getRenderScriptedTouchBeacons(NULL) &&
114 LLPipeline::getRenderScriptedBeacons(NULL) )
115 {
116 LLPipeline::setRenderScriptedTouchBeacons(FALSE);
117 view->getChild<LLCheckBoxCtrl>("touch_only")->setControlValue(LLSD(FALSE));
118 view->getChild<LLCheckBoxCtrl>("scripted")->setControlValue(LLSD(TRUE)); // just to be sure it's in sync with llpipeline
119 }
120 }
121 else if(name == "physical") LLPipeline::setRenderPhysicalBeacons(check->get());
122 else if(name == "sounds") LLPipeline::setRenderSoundBeacons(check->get());
123 else if(name == "particles") LLPipeline::setRenderParticleBeacons(check->get());
124 else if(name == "highlights")
125 {
126 LLPipeline::toggleRenderHighlights(NULL);
127 // Don't allow both to be OFF at the same time. Toggle the other one on if both now off.
128 if (
129 !LLPipeline::getRenderBeacons(NULL) &&
130 !LLPipeline::getRenderHighlights(NULL) )
131 {
132 LLPipeline::setRenderBeacons(TRUE);
133 view->getChild<LLCheckBoxCtrl>("beacons")->setControlValue(LLSD(TRUE));
134 view->getChild<LLCheckBoxCtrl>("highlights")->setControlValue(LLSD(FALSE)); // just to be sure it's in sync with llpipeline
135 }
136 }
137 else if(name == "beacons")
138 {
139 LLPipeline::toggleRenderBeacons(NULL);
140 // Don't allow both to be OFF at the same time. Toggle the other one on if both now off.
141 if (
142 !LLPipeline::getRenderBeacons(NULL) &&
143 !LLPipeline::getRenderHighlights(NULL) )
144 {
145 LLPipeline::setRenderHighlights(TRUE);
146 view->getChild<LLCheckBoxCtrl>("highlights")->setControlValue(LLSD(TRUE));
147 view->getChild<LLCheckBoxCtrl>("beacons")->setControlValue(LLSD(FALSE)); // just to be sure it's in sync with llpipeline
148 }
149 }
150}
diff --git a/linden/indra/newview/llfloaterbeacons.h b/linden/indra/newview/llfloaterbeacons.h
new file mode 100644
index 0000000..29aac17
--- /dev/null
+++ b/linden/indra/newview/llfloaterbeacons.h
@@ -0,0 +1,56 @@
1/**
2 * @file llfloaterbeacons.h
3 * @brief Front-end to LLPipeline controls for highlighting various kinds of objects.
4 * @author Coco
5 *
6 * $LicenseInfo:firstyear=2002&license=viewergpl$
7 *
8 * Copyright (c) 2002-2009, Linden Research, Inc.
9 *
10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab
12 * to you under the terms of the GNU General Public License, version 2.0
13 * ("GPL"), unless you have obtained a separate licensing agreement
14 * ("Other License"), formally executed by you and Linden Lab. Terms of
15 * the GPL can be found in doc/GPL-license.txt in this distribution, or
16 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
17 *
18 * There are special exceptions to the terms and conditions of the GPL as
19 * it is applied to this Source Code. View the full text of the exception
20 * in the file doc/FLOSS-exception.txt in this software distribution, or
21 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
22 *
23 * By copying, modifying or distributing this software, you acknowledge
24 * that you have read and understood your obligations described above,
25 * and agree to abide by those obligations.
26 *
27 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
28 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
29 * COMPLETENESS OR PERFORMANCE.
30 * $/LicenseInfo$
31 */
32
33#ifndef LL_LLFLOATERBEACONS_H
34#define LL_LLFLOATERBEACONS_H
35
36#include "llfloater.h"
37
38class LLFloaterBeacons : public LLFloater, public LLFloaterSingleton<LLFloaterBeacons>
39{
40 friend class LLUISingleton<LLFloaterBeacons, VisibilityPolicy<LLFloater> >;
41
42public:
43 /*virtual*/ BOOL postBuild();
44
45 // Needed to make the floater visibility toggle the beacons.
46 // Too bad we can't just add control_name="BeaconAlwaysOn" to the XML.
47 /*virtual*/ void open();
48 /*virtual*/ void close(bool app_quitting);
49
50private:
51 LLFloaterBeacons(const LLSD& seed);
52
53 static void onClickUICheck(LLUICtrl *ctrl, void* data);
54};
55
56#endif
diff --git a/linden/indra/newview/llfloaterbuildoptions.cpp b/linden/indra/newview/llfloaterbuildoptions.cpp
index 9080acb..3bef302 100644
--- a/linden/indra/newview/llfloaterbuildoptions.cpp
+++ b/linden/indra/newview/llfloaterbuildoptions.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterbuildoptions.h b/linden/indra/newview/llfloaterbuildoptions.h
index 82386ee..9af33d6 100644
--- a/linden/indra/newview/llfloaterbuildoptions.h
+++ b/linden/indra/newview/llfloaterbuildoptions.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterbulkpermission.cpp b/linden/indra/newview/llfloaterbulkpermission.cpp
index 29d94bc..e66d1af 100644
--- a/linden/indra/newview/llfloaterbulkpermission.cpp
+++ b/linden/indra/newview/llfloaterbulkpermission.cpp
@@ -208,8 +208,7 @@ void LLFloaterBulkPermission::doApply()
208 q=(LLFloaterBulkPermission*)this; 208 q=(LLFloaterBulkPermission*)this;
209 209
210 BulkQueueObjects func(q); 210 BulkQueueObjects func(q);
211 const bool firstonly = false; 211 bool fail = LLSelectMgr::getInstance()->getSelection()->applyToObjects(&func);
212 bool fail = LLSelectMgr::getInstance()->getSelection()->applyToObjects(&func, firstonly);
213 if(fail) 212 if(fail)
214 { 213 {
215 if ( !func.modifiable ) 214 if ( !func.modifiable )
diff --git a/linden/indra/newview/llfloaterbump.cpp b/linden/indra/newview/llfloaterbump.cpp
index 58b4ede..c116292 100644
--- a/linden/indra/newview/llfloaterbump.cpp
+++ b/linden/indra/newview/llfloaterbump.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2003&license=viewergpl$ 6 * $LicenseInfo:firstyear=2003&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2003-2008, Linden Research, Inc. 8 * Copyright (c) 2003-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterbump.h b/linden/indra/newview/llfloaterbump.h
index ac63bdf..2ca11d2 100644
--- a/linden/indra/newview/llfloaterbump.h
+++ b/linden/indra/newview/llfloaterbump.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2003&license=viewergpl$ 6 * $LicenseInfo:firstyear=2003&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2003-2008, Linden Research, Inc. 8 * Copyright (c) 2003-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterbuy.cpp b/linden/indra/newview/llfloaterbuy.cpp
index 5d815fa..dbb0157 100644
--- a/linden/indra/newview/llfloaterbuy.cpp
+++ b/linden/indra/newview/llfloaterbuy.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2004&license=viewergpl$ 6 * $LicenseInfo:firstyear=2004&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2004-2008, Linden Research, Inc. 8 * Copyright (c) 2004-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -289,11 +289,6 @@ void LLFloaterBuy::inventoryChanged(LLViewerObject* obj,
289 removeVOInventoryListener(); 289 removeVOInventoryListener();
290} 290}
291 291
292void LLFloaterBuy::close(bool app_quitting)
293{
294 LLSelectMgr::getInstance()->deselectAll();
295 LLFloater::close(app_quitting);
296}
297 292
298// static 293// static
299void LLFloaterBuy::onClickBuy(void*) 294void LLFloaterBuy::onClickBuy(void*)
@@ -325,3 +320,10 @@ void LLFloaterBuy::onClickCancel(void*)
325 sInstance->close(); 320 sInstance->close();
326 } 321 }
327} 322}
323
324void LLFloaterBuy::onClose(bool app_quitting)
325{
326 // drop reference to current selection so selection goes away
327 mObjectSelection = NULL;
328 LLFloater::onClose(app_quitting);
329}
diff --git a/linden/indra/newview/llfloaterbuy.h b/linden/indra/newview/llfloaterbuy.h
index 0eef41b..06cf41e 100644
--- a/linden/indra/newview/llfloaterbuy.h
+++ b/linden/indra/newview/llfloaterbuy.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2004&license=viewergpl$ 6 * $LicenseInfo:firstyear=2004&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2004-2008, Linden Research, Inc. 8 * Copyright (c) 2004-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -57,6 +57,7 @@ protected:
57 LLFloaterBuy(); 57 LLFloaterBuy();
58 ~LLFloaterBuy(); 58 ~LLFloaterBuy();
59 59
60 /*virtual*/ void onClose(bool app_quitting);
60 void reset(); 61 void reset();
61 62
62 void requestObjectInventories(); 63 void requestObjectInventories();
@@ -65,8 +66,6 @@ protected:
65 S32 serial_num, 66 S32 serial_num,
66 void* data); 67 void* data);
67 68
68 /*virtual*/ void close(bool app_quitting = false);
69
70 static void onClickBuy(void*); 69 static void onClickBuy(void*);
71 static void onClickCancel(void*); 70 static void onClickCancel(void*);
72 71
diff --git a/linden/indra/newview/llfloaterbuycontents.cpp b/linden/indra/newview/llfloaterbuycontents.cpp
index e3b6b9f..6acb38d 100644
--- a/linden/indra/newview/llfloaterbuycontents.cpp
+++ b/linden/indra/newview/llfloaterbuycontents.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2004&license=viewergpl$ 6 * $LicenseInfo:firstyear=2004&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2004-2008, Linden Research, Inc. 8 * Copyright (c) 2004-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterbuycontents.h b/linden/indra/newview/llfloaterbuycontents.h
index bef789c..265809f 100644
--- a/linden/indra/newview/llfloaterbuycontents.h
+++ b/linden/indra/newview/llfloaterbuycontents.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2004&license=viewergpl$ 6 * $LicenseInfo:firstyear=2004&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2004-2008, Linden Research, Inc. 8 * Copyright (c) 2004-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterbuycurrency.cpp b/linden/indra/newview/llfloaterbuycurrency.cpp
index cbd41f4..1fe6737 100644
--- a/linden/indra/newview/llfloaterbuycurrency.cpp
+++ b/linden/indra/newview/llfloaterbuycurrency.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -358,11 +358,6 @@ void LLFloaterBuyCurrencyUI::onClickErrorWeb(void* data)
358// static 358// static
359void LLFloaterBuyCurrency::buyCurrency() 359void LLFloaterBuyCurrency::buyCurrency()
360{ 360{
361 if (gHideLinks)
362 {
363 return;
364 }
365
366 LLFloaterBuyCurrencyUI* ui = LLFloaterBuyCurrencyUI::soleInstance(true); 361 LLFloaterBuyCurrencyUI* ui = LLFloaterBuyCurrencyUI::soleInstance(true);
367 ui->noTarget(); 362 ui->noTarget();
368 ui->updateUI(); 363 ui->updateUI();
@@ -371,15 +366,6 @@ void LLFloaterBuyCurrency::buyCurrency()
371 366
372void LLFloaterBuyCurrency::buyCurrency(const std::string& name, S32 price) 367void LLFloaterBuyCurrency::buyCurrency(const std::string& name, S32 price)
373{ 368{
374 if (gHideLinks)
375 {
376 LLStringUtil::format_map_t args;
377 args["[NAME]"] = name;
378 args["[PRICE]"] = llformat("%d", price);
379 gViewerWindow->alertXml("NotEnoughCurrency", args);
380 return;
381 }
382
383 LLFloaterBuyCurrencyUI* ui = LLFloaterBuyCurrencyUI::soleInstance(true); 369 LLFloaterBuyCurrencyUI* ui = LLFloaterBuyCurrencyUI::soleInstance(true);
384 ui->target(name, price); 370 ui->target(name, price);
385 ui->updateUI(); 371 ui->updateUI();
diff --git a/linden/indra/newview/llfloaterbuycurrency.h b/linden/indra/newview/llfloaterbuycurrency.h
index 883e67f..a6c0e01 100644
--- a/linden/indra/newview/llfloaterbuycurrency.h
+++ b/linden/indra/newview/llfloaterbuycurrency.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterbuyland.cpp b/linden/indra/newview/llfloaterbuyland.cpp
index de14129..1ad45e1 100644
--- a/linden/indra/newview/llfloaterbuyland.cpp
+++ b/linden/indra/newview/llfloaterbuyland.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterbuyland.h b/linden/indra/newview/llfloaterbuyland.h
index 84ea909..49f92f8 100644
--- a/linden/indra/newview/llfloaterbuyland.h
+++ b/linden/indra/newview/llfloaterbuyland.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatercamera.cpp b/linden/indra/newview/llfloatercamera.cpp
index ca8ab6c..7679f81 100644
--- a/linden/indra/newview/llfloatercamera.cpp
+++ b/linden/indra/newview/llfloatercamera.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatercamera.h b/linden/indra/newview/llfloatercamera.h
index df90e77..338c2a3 100644
--- a/linden/indra/newview/llfloatercamera.h
+++ b/linden/indra/newview/llfloatercamera.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp
index 14f9a10..8e9d489 100644
--- a/linden/indra/newview/llfloaterchat.cpp
+++ b/linden/indra/newview/llfloaterchat.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterchat.h b/linden/indra/newview/llfloaterchat.h
index 44c706e..923fd9a 100644
--- a/linden/indra/newview/llfloaterchat.h
+++ b/linden/indra/newview/llfloaterchat.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterchatterbox.cpp b/linden/indra/newview/llfloaterchatterbox.cpp
index 1114635..036c7c4 100644
--- a/linden/indra/newview/llfloaterchatterbox.cpp
+++ b/linden/indra/newview/llfloaterchatterbox.cpp
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2007&license=viewergpl$ 7 * $LicenseInfo:firstyear=2007&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2007-2008, Linden Research, Inc. 9 * Copyright (c) 2007-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterchatterbox.h b/linden/indra/newview/llfloaterchatterbox.h
index ac494d1..57f07a0 100644
--- a/linden/indra/newview/llfloaterchatterbox.h
+++ b/linden/indra/newview/llfloaterchatterbox.h
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2007&license=viewergpl$ 7 * $LicenseInfo:firstyear=2007&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2007-2008, Linden Research, Inc. 9 * Copyright (c) 2007-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterclassified.cpp b/linden/indra/newview/llfloaterclassified.cpp
index b374f43..35be1b2 100644
--- a/linden/indra/newview/llfloaterclassified.cpp
+++ b/linden/indra/newview/llfloaterclassified.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2002&license=viewergpl$ 6 * $LicenseInfo:firstyear=2002&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2002-2008, Linden Research, Inc. 8 * Copyright (c) 2002-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterclassified.h b/linden/indra/newview/llfloaterclassified.h
index ccd29ac..9c53be6 100644
--- a/linden/indra/newview/llfloaterclassified.h
+++ b/linden/indra/newview/llfloaterclassified.h
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2002&license=viewergpl$ 7 * $LicenseInfo:firstyear=2002&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2002-2008, Linden Research, Inc. 9 * Copyright (c) 2002-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterclothing.cpp b/linden/indra/newview/llfloaterclothing.cpp
index 9d4ac6f..b86acba 100644
--- a/linden/indra/newview/llfloaterclothing.cpp
+++ b/linden/indra/newview/llfloaterclothing.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2004&license=viewergpl$ 6 * $LicenseInfo:firstyear=2004&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2004-2008, Linden Research, Inc. 8 * Copyright (c) 2004-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterclothing.h b/linden/indra/newview/llfloaterclothing.h
index b4b8abe..a4e9648 100644
--- a/linden/indra/newview/llfloaterclothing.h
+++ b/linden/indra/newview/llfloaterclothing.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatercolorpicker.cpp b/linden/indra/newview/llfloatercolorpicker.cpp
index 1ffbeb3..06dc447 100644
--- a/linden/indra/newview/llfloatercolorpicker.cpp
+++ b/linden/indra/newview/llfloatercolorpicker.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -165,7 +165,7 @@ createUI ()
165 } 165 }
166 } 166 }
167 mRGBImage = new LLImageGL ( (LLImageRaw*)raw, FALSE ); 167 mRGBImage = new LLImageGL ( (LLImageRaw*)raw, FALSE );
168 mRGBImage->bind(); 168 gGL.getTexUnit(0)->bind(mRGBImage);
169 mRGBImage->setClamp(TRUE, TRUE); 169 mRGBImage->setClamp(TRUE, TRUE);
170 170
171 // create palette 171 // create palette
@@ -543,9 +543,9 @@ void LLFloaterColorPicker::draw()
543 LLRect local_rect = getLocalRect(); 543 LLRect local_rect = getLocalRect();
544 if (gFocusMgr.childHasKeyboardFocus(this) && mSwatch->isInVisibleChain() && mContextConeOpacity > 0.001f) 544 if (gFocusMgr.childHasKeyboardFocus(this) && mSwatch->isInVisibleChain() && mContextConeOpacity > 0.001f)
545 { 545 {
546 LLGLSNoTexture no_texture; 546 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
547 LLGLEnable(GL_CULL_FACE); 547 LLGLEnable(GL_CULL_FACE);
548 gGL.begin(LLVertexBuffer::QUADS); 548 gGL.begin(LLRender::QUADS);
549 { 549 {
550 gGL.color4f(0.f, 0.f, 0.f, CONTEXT_CONE_IN_ALPHA * mContextConeOpacity); 550 gGL.color4f(0.f, 0.f, 0.f, CONTEXT_CONE_IN_ALPHA * mContextConeOpacity);
551 gGL.vertex2i(swatch_rect.mLeft, swatch_rect.mTop); 551 gGL.vertex2i(swatch_rect.mLeft, swatch_rect.mTop);
diff --git a/linden/indra/newview/llfloatercolorpicker.h b/linden/indra/newview/llfloatercolorpicker.h
index 601bc83..b39b042 100644
--- a/linden/indra/newview/llfloatercolorpicker.h
+++ b/linden/indra/newview/llfloatercolorpicker.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatercustomize.cpp b/linden/indra/newview/llfloatercustomize.cpp
index 7db075a..b9deb6c 100644
--- a/linden/indra/newview/llfloatercustomize.cpp
+++ b/linden/indra/newview/llfloatercustomize.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatercustomize.h b/linden/indra/newview/llfloatercustomize.h
index 60fdd4b..15fc8f1 100644
--- a/linden/indra/newview/llfloatercustomize.h
+++ b/linden/indra/newview/llfloatercustomize.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterdaycycle.cpp b/linden/indra/newview/llfloaterdaycycle.cpp
index 6a6a430..07e3738 100644
--- a/linden/indra/newview/llfloaterdaycycle.cpp
+++ b/linden/indra/newview/llfloaterdaycycle.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterdaycycle.h b/linden/indra/newview/llfloaterdaycycle.h
index 4c6abab..f355ff2 100644
--- a/linden/indra/newview/llfloaterdaycycle.h
+++ b/linden/indra/newview/llfloaterdaycycle.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterdirectory.cpp b/linden/indra/newview/llfloaterdirectory.cpp
index 9a0c2fc..5fc479e 100644
--- a/linden/indra/newview/llfloaterdirectory.cpp
+++ b/linden/indra/newview/llfloaterdirectory.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterdirectory.h b/linden/indra/newview/llfloaterdirectory.h
index 6915aea..7f0202a 100644
--- a/linden/indra/newview/llfloaterdirectory.h
+++ b/linden/indra/newview/llfloaterdirectory.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatereditui.cpp b/linden/indra/newview/llfloatereditui.cpp
index a95126c..35897ec 100644
--- a/linden/indra/newview/llfloatereditui.cpp
+++ b/linden/indra/newview/llfloatereditui.cpp
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2005&license=viewergpl$ 7 * $LicenseInfo:firstyear=2005&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2005-2008, Linden Research, Inc. 9 * Copyright (c) 2005-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatereditui.h b/linden/indra/newview/llfloatereditui.h
index 610824d..24d68fc 100644
--- a/linden/indra/newview/llfloatereditui.h
+++ b/linden/indra/newview/llfloatereditui.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2005&license=viewergpl$ 6 * $LicenseInfo:firstyear=2005&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2005-2008, Linden Research, Inc. 8 * Copyright (c) 2005-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterenvsettings.cpp b/linden/indra/newview/llfloaterenvsettings.cpp
index d7f2ed0..4162165 100644
--- a/linden/indra/newview/llfloaterenvsettings.cpp
+++ b/linden/indra/newview/llfloaterenvsettings.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterenvsettings.h b/linden/indra/newview/llfloaterenvsettings.h
index 8f70993..2e02ce7 100644
--- a/linden/indra/newview/llfloaterenvsettings.h
+++ b/linden/indra/newview/llfloaterenvsettings.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterevent.cpp b/linden/indra/newview/llfloaterevent.cpp
index 778a3d5..0646e86 100644
--- a/linden/indra/newview/llfloaterevent.cpp
+++ b/linden/indra/newview/llfloaterevent.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterevent.h b/linden/indra/newview/llfloaterevent.h
index 1fc2fc6..572a849 100644
--- a/linden/indra/newview/llfloaterevent.h
+++ b/linden/indra/newview/llfloaterevent.h
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2007&license=viewergpl$ 7 * $LicenseInfo:firstyear=2007&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2007-2008, Linden Research, Inc. 9 * Copyright (c) 2007-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterfriends.cpp b/linden/indra/newview/llfloaterfriends.cpp
index acdd5ce..bf1f678 100644
--- a/linden/indra/newview/llfloaterfriends.cpp
+++ b/linden/indra/newview/llfloaterfriends.cpp
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2005&license=viewergpl$ 7 * $LicenseInfo:firstyear=2005&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2005-2008, Linden Research, Inc. 9 * Copyright (c) 2005-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -57,6 +57,7 @@
57#include "llviewermessage.h" 57#include "llviewermessage.h"
58#include "lltimer.h" 58#include "lltimer.h"
59#include "lltextbox.h" 59#include "lltextbox.h"
60#include "llvoiceclient.h"
60 61
61//Maximum number of people you can select to do an operation on at once. 62//Maximum number of people you can select to do an operation on at once.
62#define MAX_FRIEND_SELECT 20 63#define MAX_FRIEND_SELECT 20
@@ -64,6 +65,8 @@
64#define RIGHTS_CHANGE_TIMEOUT 5.0 65#define RIGHTS_CHANGE_TIMEOUT 5.0
65#define OBSERVER_TIMEOUT 0.5 66#define OBSERVER_TIMEOUT 0.5
66 67
68#define ONLINE_SIP_ICON_NAME "slim_icon_16_viewer.tga"
69
67// simple class to observe the calling cards. 70// simple class to observe the calling cards.
68class LLLocalFriendsObserver : public LLFriendObserver, public LLEventTimer 71class LLLocalFriendsObserver : public LLFriendObserver, public LLEventTimer
69{ 72{
@@ -111,10 +114,14 @@ LLPanelFriends::LLPanelFriends() :
111 mEventTimer.stop(); 114 mEventTimer.stop();
112 mObserver = new LLLocalFriendsObserver(this); 115 mObserver = new LLLocalFriendsObserver(this);
113 LLAvatarTracker::instance().addObserver(mObserver); 116 LLAvatarTracker::instance().addObserver(mObserver);
117 // For notification when SIP online status changes.
118 LLVoiceClient::getInstance()->addObserver(mObserver);
114} 119}
115 120
116LLPanelFriends::~LLPanelFriends() 121LLPanelFriends::~LLPanelFriends()
117{ 122{
123 // For notification when SIP online status changes.
124 LLVoiceClient::getInstance()->removeObserver(mObserver);
118 LLAvatarTracker::instance().removeObserver(mObserver); 125 LLAvatarTracker::instance().removeObserver(mObserver);
119 delete mObserver; 126 delete mObserver;
120} 127}
@@ -212,7 +219,9 @@ BOOL LLPanelFriends::addFriend(const LLUUID& agent_id)
212 LLAvatarTracker& at = LLAvatarTracker::instance(); 219 LLAvatarTracker& at = LLAvatarTracker::instance();
213 const LLRelationship* relationInfo = at.getBuddyInfo(agent_id); 220 const LLRelationship* relationInfo = at.getBuddyInfo(agent_id);
214 if(!relationInfo) return FALSE; 221 if(!relationInfo) return FALSE;
215 BOOL online = relationInfo->isOnline(); 222
223 bool isOnlineSIP = LLVoiceClient::getInstance()->isOnlineSIP(agent_id);
224 bool isOnline = relationInfo->isOnline();
216 225
217 std::string fullname; 226 std::string fullname;
218 BOOL have_name = gCacheName->getFullName(agent_id, fullname); 227 BOOL have_name = gCacheName->getFullName(agent_id, fullname);
@@ -228,12 +237,17 @@ BOOL LLPanelFriends::addFriend(const LLUUID& agent_id)
228 LLSD& online_status_column = element["columns"][LIST_ONLINE_STATUS]; 237 LLSD& online_status_column = element["columns"][LIST_ONLINE_STATUS];
229 online_status_column["column"] = "icon_online_status"; 238 online_status_column["column"] = "icon_online_status";
230 online_status_column["type"] = "icon"; 239 online_status_column["type"] = "icon";
231 240
232 if (online) 241 if (isOnline)
233 { 242 {
234 friend_column["font-style"] = "BOLD"; 243 friend_column["font-style"] = "BOLD";
235 online_status_column["value"] = "icon_avatar_online.tga"; 244 online_status_column["value"] = "icon_avatar_online.tga";
236 } 245 }
246 else if(isOnlineSIP)
247 {
248 friend_column["font-style"] = "BOLD";
249 online_status_column["value"] = ONLINE_SIP_ICON_NAME;
250 }
237 251
238 LLSD& online_column = element["columns"][LIST_VISIBLE_ONLINE]; 252 LLSD& online_column = element["columns"][LIST_VISIBLE_ONLINE];
239 online_column["column"] = "icon_visible_online"; 253 online_column["column"] = "icon_visible_online";
@@ -271,14 +285,30 @@ BOOL LLPanelFriends::updateFriendItem(const LLUUID& agent_id, const LLRelationsh
271 if (!info) return FALSE; 285 if (!info) return FALSE;
272 LLScrollListItem* itemp = mFriendsList->getItem(agent_id); 286 LLScrollListItem* itemp = mFriendsList->getItem(agent_id);
273 if (!itemp) return FALSE; 287 if (!itemp) return FALSE;
288
289 bool isOnlineSIP = LLVoiceClient::getInstance()->isOnlineSIP(itemp->getUUID());
290 bool isOnline = info->isOnline();
274 291
275 std::string fullname; 292 std::string fullname;
276 BOOL have_name = gCacheName->getFullName(agent_id, fullname); 293 BOOL have_name = gCacheName->getFullName(agent_id, fullname);
294
295 // Name of the status icon to use
296 std::string statusIcon;
297
298 if(isOnline)
299 {
300 statusIcon = "icon_avatar_online.tga";
301 }
302 else if(isOnlineSIP)
303 {
304 statusIcon = ONLINE_SIP_ICON_NAME;
305 }
277 306
278 itemp->getColumn(LIST_ONLINE_STATUS)->setValue(info->isOnline() ? std::string("icon_avatar_online.tga") : LLStringUtil::null); 307 itemp->getColumn(LIST_ONLINE_STATUS)->setValue(statusIcon);
308
279 itemp->getColumn(LIST_FRIEND_NAME)->setValue(fullname); 309 itemp->getColumn(LIST_FRIEND_NAME)->setValue(fullname);
280 // render name of online friends in bold text 310 // render name of online friends in bold text
281 ((LLScrollListText*)itemp->getColumn(LIST_FRIEND_NAME))->setFontStyle(info->isOnline() ? LLFontGL::BOLD : LLFontGL::NORMAL); 311 ((LLScrollListText*)itemp->getColumn(LIST_FRIEND_NAME))->setFontStyle((isOnline || isOnlineSIP) ? LLFontGL::BOLD : LLFontGL::NORMAL);
282 itemp->getColumn(LIST_VISIBLE_ONLINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS)); 312 itemp->getColumn(LIST_VISIBLE_ONLINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS));
283 itemp->getColumn(LIST_VISIBLE_MAP)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION)); 313 itemp->getColumn(LIST_VISIBLE_MAP)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION));
284 itemp->getColumn(LIST_EDIT_MINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS)); 314 itemp->getColumn(LIST_EDIT_MINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS));
diff --git a/linden/indra/newview/llfloaterfriends.h b/linden/indra/newview/llfloaterfriends.h
index afb206e..64f39bf 100644
--- a/linden/indra/newview/llfloaterfriends.h
+++ b/linden/indra/newview/llfloaterfriends.h
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2005&license=viewergpl$ 7 * $LicenseInfo:firstyear=2005&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2005-2008, Linden Research, Inc. 9 * Copyright (c) 2005-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatergesture.cpp b/linden/indra/newview/llfloatergesture.cpp
index 5383813..5dc0c45 100644
--- a/linden/indra/newview/llfloatergesture.cpp
+++ b/linden/indra/newview/llfloatergesture.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatergesture.h b/linden/indra/newview/llfloatergesture.h
index 82c8c27..339f54a 100644
--- a/linden/indra/newview/llfloatergesture.h
+++ b/linden/indra/newview/llfloatergesture.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatergodtools.cpp b/linden/indra/newview/llfloatergodtools.cpp
index 9a78fff..7d54ecf 100644
--- a/linden/indra/newview/llfloatergodtools.cpp
+++ b/linden/indra/newview/llfloatergodtools.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatergodtools.h b/linden/indra/newview/llfloatergodtools.h
index 4fd9fc1..31ba18e 100644
--- a/linden/indra/newview/llfloatergodtools.h
+++ b/linden/indra/newview/llfloatergodtools.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatergroupinfo.cpp b/linden/indra/newview/llfloatergroupinfo.cpp
index a095a64..0f54f02 100644
--- a/linden/indra/newview/llfloatergroupinfo.cpp
+++ b/linden/indra/newview/llfloatergroupinfo.cpp
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2002&license=viewergpl$ 7 * $LicenseInfo:firstyear=2002&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2002-2008, Linden Research, Inc. 9 * Copyright (c) 2002-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatergroupinfo.h b/linden/indra/newview/llfloatergroupinfo.h
index 2ce7102..937d8a2 100644
--- a/linden/indra/newview/llfloatergroupinfo.h
+++ b/linden/indra/newview/llfloatergroupinfo.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatergroupinvite.cpp b/linden/indra/newview/llfloatergroupinvite.cpp
index 1644050..ba8def0 100644
--- a/linden/indra/newview/llfloatergroupinvite.cpp
+++ b/linden/indra/newview/llfloatergroupinvite.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatergroupinvite.h b/linden/indra/newview/llfloatergroupinvite.h
index 96b9161..0e6788c 100644
--- a/linden/indra/newview/llfloatergroupinvite.h
+++ b/linden/indra/newview/llfloatergroupinvite.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatergroups.cpp b/linden/indra/newview/llfloatergroups.cpp
index 39f6b7a..23e2f4d 100644
--- a/linden/indra/newview/llfloatergroups.cpp
+++ b/linden/indra/newview/llfloatergroups.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatergroups.h b/linden/indra/newview/llfloatergroups.h
index ad3ecac..70ed3e4 100644
--- a/linden/indra/newview/llfloatergroups.h
+++ b/linden/indra/newview/llfloatergroups.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterhardwaresettings.cpp b/linden/indra/newview/llfloaterhardwaresettings.cpp
index ec29469..df23672 100644
--- a/linden/indra/newview/llfloaterhardwaresettings.cpp
+++ b/linden/indra/newview/llfloaterhardwaresettings.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterhardwaresettings.h b/linden/indra/newview/llfloaterhardwaresettings.h
index be78d81..d8a8901 100644
--- a/linden/indra/newview/llfloaterhardwaresettings.h
+++ b/linden/indra/newview/llfloaterhardwaresettings.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterhtml.cpp b/linden/indra/newview/llfloaterhtml.cpp
new file mode 100644
index 0000000..21f34de
--- /dev/null
+++ b/linden/indra/newview/llfloaterhtml.cpp
@@ -0,0 +1,253 @@
1/**
2 * @file llfloaterhtml.cpp
3 * @brief In-world HTML dialog
4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 *
7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 *
9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab
11 * to you under the terms of the GNU General Public License, version 2.0
12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 *
17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 *
22 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above,
24 * and agree to abide by those obligations.
25 *
26 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
27 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
28 * COMPLETENESS OR PERFORMANCE.
29 * $/LicenseInfo$
30 */
31
32#include "llviewerprecompiledheaders.h"
33
34#include "llfloaterhtml.h"
35
36// viewer includes
37#include "lluictrlfactory.h"
38#include "llviewercontrol.h"
39#include "lllineeditor.h"
40#include "llviewerwindow.h"
41#include "llweb.h"
42
43#include "llwebbrowserctrl.h"
44
45LLFloaterHtml* LLFloaterHtml::sInstance = 0;
46
47////////////////////////////////////////////////////////////////////////////////
48//
49LLFloaterHtml* LLFloaterHtml::getInstance()
50{
51 if ( ! sInstance )
52 sInstance = new LLFloaterHtml();
53
54 return sInstance;
55}
56
57////////////////////////////////////////////////////////////////////////////////
58//
59LLFloaterHtml::LLFloaterHtml()
60: LLFloater( std::string("HTML Floater") )
61
62 ,
63 mWebBrowser( 0 )
64{
65 LLUICtrlFactory::getInstance()->buildFloater( this, "floater_html.xml" );
66
67 childSetAction("back_btn", onClickBack, this);
68 childSetAction("home_btn", onClickHome, this);
69 childSetAction("forward_btn", onClickForward, this);
70 childSetAction("close_btn", onClickClose, this);
71 childSetCommitCallback("url_edit", onCommitUrlEdit, this );
72 childSetAction("go_btn", onClickGo, this );
73
74 // reposition floater from saved settings
75 LLRect rect = gSavedSettings.getRect( "FloaterHtmlRect" );
76 reshape( rect.getWidth(), rect.getHeight(), FALSE );
77 setRect( rect );
78
79 mWebBrowser = getChild<LLWebBrowserCtrl>("html_floater_browser" );
80 if ( mWebBrowser )
81 {
82 // open links in internal browser
83 mWebBrowser->setOpenInExternalBrowser( false );
84 }
85}
86
87////////////////////////////////////////////////////////////////////////////////
88//
89LLFloaterHtml::~LLFloaterHtml()
90{
91 // save position of floater
92 gSavedSettings.setRect( "FloaterHtmlRect", getRect() );
93
94 sInstance = 0;
95}
96
97////////////////////////////////////////////////////////////////////////////////
98// virtual
99void LLFloaterHtml::draw()
100{
101 // enable/disable buttons depending on state
102 if ( mWebBrowser )
103 {
104 bool enable_back = mWebBrowser->canNavigateBack();
105 childSetEnabled( "back_btn", enable_back );
106
107 bool enable_forward = mWebBrowser->canNavigateForward();
108 childSetEnabled( "forward_btn", enable_forward );
109 };
110
111 LLFloater::draw();
112}
113
114////////////////////////////////////////////////////////////////////////////////
115//
116void LLFloaterHtml::show( std::string content_id, bool open_link_external, bool open_app_slurls )
117{
118 // calculate the XML labels we'll need (if only XML folders worked)
119 std::string title_str = content_id + "_title";
120 std::string url_str = content_id + "_url";
121
122 std::string title = getString( title_str );
123 std::string url = getString( url_str );
124
125 show( url, title, open_link_external, open_app_slurls );
126}
127
128////////////////////////////////////////////////////////////////////////////////
129//
130void LLFloaterHtml::show( std::string start_url, std::string title, bool open_link_external, bool open_app_slurls )
131{
132 // set the title
133 setTitle( title );
134
135 // navigate to the URL
136 if ( mWebBrowser )
137 {
138 mWebBrowser->setOpenAppSLURLs( open_app_slurls );
139 mWebBrowser->setOpenInExternalBrowser( open_link_external );
140 mWebBrowser->navigateTo( start_url );
141 }
142
143 // make floater appear
144 setVisibleAndFrontmost();
145}
146
147////////////////////////////////////////////////////////////////////////////////
148//
149std::string LLFloaterHtml::getSupportUrl()
150{
151 return getString("support_page_url");
152}
153
154////////////////////////////////////////////////////////////////////////////////
155//
156void LLFloaterHtml::onClose( bool app_quitting )
157{
158 setVisible( false );
159 // HACK for fast XML iteration replace with:
160 // destroy();
161}
162
163////////////////////////////////////////////////////////////////////////////////
164//
165void LLFloaterHtml::onClickClose( void* data )
166{
167 LLFloaterHtml* self = ( LLFloaterHtml* )data;
168 self->close();
169}
170
171////////////////////////////////////////////////////////////////////////////////
172// static
173void LLFloaterHtml::onClickBack( void* data )
174{
175 LLFloaterHtml* self = ( LLFloaterHtml* )data;
176 if ( self )
177 {
178 if ( self->mWebBrowser )
179 {
180 self->mWebBrowser->navigateBack();
181 };
182 };
183}
184
185////////////////////////////////////////////////////////////////////////////////
186//
187void LLFloaterHtml::onClickHome( void* data )
188{
189 LLFloaterHtml* self = ( LLFloaterHtml* )data;
190 if ( self )
191 {
192 if ( self->mWebBrowser )
193 {
194 std::string home_url = self->getString("home_page_url");
195 if ( home_url.length() > 4 )
196 {
197 self->mWebBrowser->navigateTo( home_url );
198 }
199 else
200 {
201 llwarns << "Invalid home page specified for HTML floater - navigating to default" << llendl;
202 self->mWebBrowser->navigateTo( "http://secondlife.com" );
203 }
204 };
205 };
206}
207
208////////////////////////////////////////////////////////////////////////////////
209// static
210void LLFloaterHtml::onClickForward( void* data )
211{
212 LLFloaterHtml* self = ( LLFloaterHtml* )data;
213 if ( self )
214 {
215 if ( self->mWebBrowser )
216 {
217 self->mWebBrowser->navigateForward();
218 };
219 };
220}
221
222////////////////////////////////////////////////////////////////////////////////
223// static
224void LLFloaterHtml::onCommitUrlEdit(LLUICtrl* ctrl, void* user_data)
225{
226 LLFloaterHtml* self = (LLFloaterHtml*)user_data;
227
228 LLLineEditor* editor = (LLLineEditor*)ctrl;
229 std::string url = editor->getText();
230
231 if ( self->mWebBrowser )
232 {
233 self->mWebBrowser->navigateTo( url );
234 };
235}
236
237////////////////////////////////////////////////////////////////////////////////
238// static
239void LLFloaterHtml::onClickGo( void* data )
240{
241 LLFloaterHtml* self = ( LLFloaterHtml* )data;
242 if ( self )
243 {
244 std::string url = self->childGetValue( "url_edit" ).asString();
245 if ( url.length() )
246 {
247 if ( self->mWebBrowser )
248 {
249 self->mWebBrowser->navigateTo( url );
250 }
251 }
252 }
253}
diff --git a/linden/indra/newview/llfloaterhtml.h b/linden/indra/newview/llfloaterhtml.h
new file mode 100644
index 0000000..0151727
--- /dev/null
+++ b/linden/indra/newview/llfloaterhtml.h
@@ -0,0 +1,76 @@
1 /**
2 * @file llfloaterhtml.h
3 * @author James Cook
4 * @brief In-world HTML dialog
5 *
6 * $LicenseInfo:firstyear=2005&license=viewergpl$
7 *
8 * Copyright (c) 2005-2009, Linden Research, Inc.
9 *
10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab
12 * to you under the terms of the GNU General Public License, version 2.0
13 * ("GPL"), unless you have obtained a separate licensing agreement
14 * ("Other License"), formally executed by you and Linden Lab. Terms of
15 * the GPL can be found in doc/GPL-license.txt in this distribution, or
16 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
17 *
18 * There are special exceptions to the terms and conditions of the GPL as
19 * it is applied to this Source Code. View the full text of the exception
20 * in the file doc/FLOSS-exception.txt in this software distribution, or
21 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
22 *
23 * By copying, modifying or distributing this software, you acknowledge
24 * that you have read and understood your obligations described above,
25 * and agree to abide by those obligations.
26 *
27 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
28 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
29 * COMPLETENESS OR PERFORMANCE.
30 * $/LicenseInfo$
31 */
32
33#ifndef LL_LLFLOATERHTML_H
34#define LL_LLFLOATERHTML_H
35
36#include "llfloater.h"
37#include "llhtmlhelp.h"
38
39class LLWebBrowserCtrl;
40
41class LLFloaterHtml :
42 public LLFloater
43{
44 public:
45 static LLFloaterHtml* getInstance();
46 virtual ~LLFloaterHtml();
47
48 virtual void draw();
49 virtual void onClose( bool app_quitting );
50
51 // Pass string like "in-world_help" or "additional help"
52 void show( std::string content_id, bool open_link_external, bool open_app_slurls );
53
54 // Pass raw URL and window title
55 // Can be set to handle secondlife:///app/ URLs, but this should
56 // usually be false.
57 void show( std::string start_url, std::string title, bool open_link_external, bool open_app_slurls );
58
59 std::string getSupportUrl();
60
61 static void onClickClose( void* data );
62 static void onClickBack( void* data );
63 static void onClickHome( void* data );
64 static void onClickForward( void* data );
65 static void onCommitUrlEdit(LLUICtrl* ctrl, void* user_data);
66 static void onClickGo( void* data );
67
68 private:
69 LLFloaterHtml();
70
71 LLWebBrowserCtrl* mWebBrowser;
72 static LLFloaterHtml* sInstance;
73 LLButton* mCloseButton;
74};
75
76#endif
diff --git a/linden/indra/newview/llfloaterhtmlhelp.cpp b/linden/indra/newview/llfloaterhtmlhelp.cpp
index 85122c7..4a00a48 100644
--- a/linden/indra/newview/llfloaterhtmlhelp.cpp
+++ b/linden/indra/newview/llfloaterhtmlhelp.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterhtmlhelp.h b/linden/indra/newview/llfloaterhtmlhelp.h
index d52d8d3..7722fbd 100644
--- a/linden/indra/newview/llfloaterhtmlhelp.h
+++ b/linden/indra/newview/llfloaterhtmlhelp.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterhud.cpp b/linden/indra/newview/llfloaterhud.cpp
index cfdaba5..58e370c 100644
--- a/linden/indra/newview/llfloaterhud.cpp
+++ b/linden/indra/newview/llfloaterhud.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2008&license=viewergpl$ 5 * $LicenseInfo:firstyear=2008&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2008, Linden Research, Inc. 7 * Copyright (c) 2008-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -84,12 +84,7 @@ LLFloaterHUD::LLFloaterHUD()
84 // arrow keys during tutorial). 84 // arrow keys during tutorial).
85 mWebBrowser->setTakeFocusOnClick(false); 85 mWebBrowser->setTakeFocusOnClick(false);
86 86
87 std::string language(gSavedSettings.getString("Language")); 87 std::string language = LLUI::getLanguage();
88 if(language == "default")
89 {
90 language = gSavedSettings.getString("SystemLanguage");
91 }
92
93 std::string base_url = gSavedSettings.getString("TutorialURL"); 88 std::string base_url = gSavedSettings.getString("TutorialURL");
94 89
95 std::string url = base_url + language + "/"; 90 std::string url = base_url + language + "/";
diff --git a/linden/indra/newview/llfloaterhud.h b/linden/indra/newview/llfloaterhud.h
index 35221ef..e0712cd 100644
--- a/linden/indra/newview/llfloaterhud.h
+++ b/linden/indra/newview/llfloaterhud.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2008&license=viewergpl$ 5 * $LicenseInfo:firstyear=2008&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2008, Linden Research, Inc. 7 * Copyright (c) 2008-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterimagepreview.cpp b/linden/indra/newview/llfloaterimagepreview.cpp
index 912a4fc..4a8c66e 100644
--- a/linden/indra/newview/llfloaterimagepreview.cpp
+++ b/linden/indra/newview/llfloaterimagepreview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -75,7 +75,7 @@ LLFloaterImagePreview::LLFloaterImagePreview(const std::string& filename) :
75{ 75{
76 mLastMouseX = 0; 76 mLastMouseX = 0;
77 mLastMouseY = 0; 77 mLastMouseY = 0;
78 mGLName = 0; 78 mImagep = NULL ;
79 loadImage(mFilenameAndPath); 79 loadImage(mFilenameAndPath);
80} 80}
81 81
@@ -138,10 +138,7 @@ LLFloaterImagePreview::~LLFloaterImagePreview()
138 delete mAvatarPreview; 138 delete mAvatarPreview;
139 delete mSculptedPreview; 139 delete mSculptedPreview;
140 140
141 if (mGLName) 141 mImagep = NULL ;
142 {
143 glDeleteTextures(1, &mGLName );
144 }
145} 142}
146 143
147//static 144//static
@@ -224,44 +221,31 @@ void LLFloaterImagePreview::draw()
224 gl_rect_2d_checkerboard(mPreviewRect); 221 gl_rect_2d_checkerboard(mPreviewRect);
225 LLGLDisable gls_alpha(GL_ALPHA_TEST); 222 LLGLDisable gls_alpha(GL_ALPHA_TEST);
226 223
227 GLenum format_options[4] = { GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA }; 224 if(mImagep.notNull())
228 GLenum format = format_options[mRawImagep->getComponents()-1];
229
230 GLenum internal_format_options[4] = { GL_LUMINANCE8, GL_LUMINANCE8_ALPHA8, GL_RGB8, GL_RGBA8 };
231 GLenum internal_format = internal_format_options[mRawImagep->getComponents()-1];
232
233 if (mGLName)
234 { 225 {
235 LLImageGL::bindExternalTexture( mGLName, 0, GL_TEXTURE_2D ); 226 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mImagep->getTexName());
236 } 227 }
237 else 228 else
238 { 229 {
239 glGenTextures(1, &mGLName ); 230 mImagep = new LLImageGL(mRawImagep, FALSE) ;
240 stop_glerror(); 231
241 232 gGL.getTexUnit(0)->unbind(mImagep->getTarget()) ;
242 LLImageGL::bindExternalTexture( mGLName, 0, GL_TEXTURE_2D ); 233 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mImagep->getTexName());
243 stop_glerror();
244
245 glTexImage2D(
246 GL_TEXTURE_2D, 0, internal_format,
247 mRawImagep->getWidth(), mRawImagep->getHeight(),
248 0, format, GL_UNSIGNED_BYTE, mRawImagep->getData());
249 stop_glerror(); 234 stop_glerror();
250 235
251 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 236 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
252 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 237 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
253 238
254 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 239 gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
255 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
256 if (mAvatarPreview) 240 if (mAvatarPreview)
257 { 241 {
258 mAvatarPreview->setTexture(mGLName); 242 mAvatarPreview->setTexture(mImagep->getTexName());
259 mSculptedPreview->setTexture(mGLName); 243 mSculptedPreview->setTexture(mImagep->getTexName());
260 } 244 }
261 } 245 }
262 246
263 gGL.color3f(1.f, 1.f, 1.f); 247 gGL.color3f(1.f, 1.f, 1.f);
264 gGL.begin( LLVertexBuffer::QUADS ); 248 gGL.begin( LLRender::QUADS );
265 { 249 {
266 gGL.texCoord2f(mPreviewImageRect.mLeft, mPreviewImageRect.mTop); 250 gGL.texCoord2f(mPreviewImageRect.mLeft, mPreviewImageRect.mTop);
267 gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT); 251 gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT);
@@ -274,7 +258,7 @@ void LLFloaterImagePreview::draw()
274 } 258 }
275 gGL.end(); 259 gGL.end();
276 260
277 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 261 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
278 262
279 stop_glerror(); 263 stop_glerror();
280 } 264 }
@@ -285,11 +269,15 @@ void LLFloaterImagePreview::draw()
285 gGL.color3f(1.f, 1.f, 1.f); 269 gGL.color3f(1.f, 1.f, 1.f);
286 270
287 if (selected == 9) 271 if (selected == 9)
288 mSculptedPreview->bindTexture(); 272 {
273 gGL.getTexUnit(0)->bind(mSculptedPreview->getTexture());
274 }
289 else 275 else
290 mAvatarPreview->bindTexture(); 276 {
277 gGL.getTexUnit(0)->bind(mAvatarPreview->getTexture());
278 }
291 279
292 gGL.begin( LLVertexBuffer::QUADS ); 280 gGL.begin( LLRender::QUADS );
293 { 281 {
294 gGL.texCoord2f(0.f, 1.f); 282 gGL.texCoord2f(0.f, 1.f);
295 gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT); 283 gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT);
@@ -302,10 +290,7 @@ void LLFloaterImagePreview::draw()
302 } 290 }
303 gGL.end(); 291 gGL.end();
304 292
305 if (selected == 9) 293 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
306 mSculptedPreview->unbindTexture();
307 else
308 mAvatarPreview->unbindTexture();
309 } 294 }
310 } 295 }
311 } 296 }
@@ -774,7 +759,9 @@ LLImagePreviewSculpted::LLImagePreviewSculpted(S32 width, S32 height) : LLDynami
774 LLVolumeParams volume_params; 759 LLVolumeParams volume_params;
775 volume_params.setType(LL_PCODE_PROFILE_CIRCLE, LL_PCODE_PATH_CIRCLE); 760 volume_params.setType(LL_PCODE_PROFILE_CIRCLE, LL_PCODE_PATH_CIRCLE);
776 volume_params.setSculptID(LLUUID::null, LL_SCULPT_TYPE_SPHERE); 761 volume_params.setSculptID(LLUUID::null, LL_SCULPT_TYPE_SPHERE);
777 mVolume = new LLVolume(volume_params, (F32) MAX_LOD); 762
763 F32 const HIGHEST_LOD = 4.0f;
764 mVolume = new LLVolume(volume_params, HIGHEST_LOD);
778 765
779 /* 766 /*
780 mDummyAvatar = new LLVOAvatar(LLUUID::null, LL_PCODE_LEGACY_AVATAR, gAgent.getRegion()); 767 mDummyAvatar = new LLVOAvatar(LLUUID::null, LL_PCODE_LEGACY_AVATAR, gAgent.getRegion());
@@ -811,7 +798,36 @@ void LLImagePreviewSculpted::setPreviewTarget(LLImageRaw* imagep, F32 distance)
811 { 798 {
812 mVolume->sculpt(imagep->getWidth(), imagep->getHeight(), imagep->getComponents(), imagep->getData(), 0); 799 mVolume->sculpt(imagep->getWidth(), imagep->getHeight(), imagep->getComponents(), imagep->getData(), 0);
813 } 800 }
814 801
802 const LLVolumeFace &vf = mVolume->getVolumeFace(0);
803 U32 num_indices = vf.mIndices.size();
804 U32 num_vertices = vf.mVertices.size();
805
806 mVertexBuffer = new LLVertexBuffer(LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_NORMAL, 0);
807 mVertexBuffer->allocateBuffer(num_vertices, num_indices, TRUE);
808
809 LLStrider<LLVector3> vertex_strider;
810 LLStrider<LLVector3> normal_strider;
811 LLStrider<U16> index_strider;
812
813 mVertexBuffer->getVertexStrider(vertex_strider);
814 mVertexBuffer->getNormalStrider(normal_strider);
815 mVertexBuffer->getIndexStrider(index_strider);
816
817 // build vertices and normals
818 for (U32 i = 0; (S32)i < num_vertices; i++)
819 {
820 *(vertex_strider++) = vf.mVertices[i].mPosition;
821 LLVector3 normal = vf.mVertices[i].mNormal;
822 normal.normalize();
823 *(normal_strider++) = normal;
824 }
825
826 // build indices
827 for (U16 i = 0; i < num_indices; i++)
828 {
829 *(index_strider++) = vf.mIndices[i];
830 }
815} 831}
816 832
817 833
@@ -846,7 +862,7 @@ BOOL LLImagePreviewSculpted::render()
846 glMatrixMode(GL_MODELVIEW); 862 glMatrixMode(GL_MODELVIEW);
847 gGL.popMatrix(); 863 gGL.popMatrix();
848 864
849 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 865 glClear(GL_DEPTH_BUFFER_BIT);
850 866
851 LLVector3 target_pos(0, 0, 0); 867 LLVector3 target_pos(0, 0, 0);
852 868
@@ -865,55 +881,21 @@ BOOL LLImagePreviewSculpted::render()
865 LLViewerCamera::getInstance()->setView(LLViewerCamera::getInstance()->getDefaultFOV() / mCameraZoom); 881 LLViewerCamera::getInstance()->setView(LLViewerCamera::getInstance()->getDefaultFOV() / mCameraZoom);
866 LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mWidth, mHeight, FALSE); 882 LLViewerCamera::getInstance()->setPerspective(FALSE, mOrigin.mX, mOrigin.mY, mWidth, mHeight, FALSE);
867 883
868 gPipeline.enableLightsAvatar();
869
870 gGL.pushMatrix();
871 glScalef(0.5, 0.5, 0.5);
872
873 const LLVolumeFace &vf = mVolume->getVolumeFace(0); 884 const LLVolumeFace &vf = mVolume->getVolumeFace(0);
874 U32 num_indices = vf.mIndices.size(); 885 U32 num_indices = vf.mIndices.size();
875 U32 num_vertices = vf.mVertices.size(); 886
876 887 mVertexBuffer->setBuffer(LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_NORMAL);
877 if (num_vertices > 0 && num_indices > 0)
878 {
879 glEnableClientState(GL_NORMAL_ARRAY);
880 // build vertices and normals
881 F32* vertices = new F32[num_vertices * 3];
882 F32* normals = new F32[num_vertices * 3];
883
884 for (U32 i = 0; (S32)i < num_vertices; i++)
885 {
886 LLVector3 position = vf.mVertices[i].mPosition;
887 vertices[i*3] = position.mV[VX];
888 vertices[i*3+1] = position.mV[VY];
889 vertices[i*3+2] = position.mV[VZ];
890
891 LLVector3 normal = vf.mVertices[i].mNormal;
892 normals[i*3] = normal.mV[VX];
893 normals[i*3+1] = normal.mV[VY];
894 normals[i*3+2] = normal.mV[VZ];
895 }
896 888
897 // build indices 889 gPipeline.enableLightsAvatar();
898 U16* indices = new U16[num_indices]; 890 gGL.pushMatrix();
899 for (U16 i = 0; i < num_indices; i++) 891 const F32 SCALE = 1.25f;
900 { 892 gGL.scalef(SCALE, SCALE, SCALE);
901 indices[i] = vf.mIndices[i]; 893 const F32 BRIGHTNESS = 0.9f;
902 } 894 gGL.color3f(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS);
895 mVertexBuffer->draw(LLRender::TRIANGLES, num_indices, 0);
903 896
904 gGL.color3f(0.4f, 0.4f, 0.4f); 897 gGL.popMatrix();
905 glVertexPointer(3, GL_FLOAT, 0, (void *)vertices);
906 glNormalPointer(GL_FLOAT, 0, (void *)normals);
907 glDrawRangeElements(GL_TRIANGLES, 0, num_vertices-1, num_indices, GL_UNSIGNED_SHORT, (void *)indices);
908 898
909 gGL.popMatrix();
910 glDisableClientState(GL_NORMAL_ARRAY);
911
912 delete [] indices;
913 delete [] vertices;
914 delete [] normals;
915 }
916
917 return TRUE; 899 return TRUE;
918} 900}
919 901
diff --git a/linden/indra/newview/llfloaterimagepreview.h b/linden/indra/newview/llfloaterimagepreview.h
index 9d80f09..d511caa 100644
--- a/linden/indra/newview/llfloaterimagepreview.h
+++ b/linden/indra/newview/llfloaterimagepreview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -41,6 +41,7 @@ class LLJoint;
41class LLViewerJointMesh; 41class LLViewerJointMesh;
42class LLVOAvatar; 42class LLVOAvatar;
43class LLTextBox; 43class LLTextBox;
44class LLVertexBuffer;
44 45
45class LLImagePreviewSculpted : public LLDynamicTexture 46class LLImagePreviewSculpted : public LLDynamicTexture
46{ 47{
@@ -67,6 +68,7 @@ class LLImagePreviewSculpted : public LLDynamicTexture
67 F32 mCameraZoom; 68 F32 mCameraZoom;
68 LLVector3 mCameraOffset; 69 LLVector3 mCameraOffset;
69 LLPointer<LLVolume> mVolume; 70 LLPointer<LLVolume> mVolume;
71 LLPointer<LLVertexBuffer> mVertexBuffer;
70}; 72};
71 73
72 74
@@ -127,7 +129,7 @@ protected:
127 S32 mLastMouseY; 129 S32 mLastMouseY;
128 LLRect mPreviewRect; 130 LLRect mPreviewRect;
129 LLRectf mPreviewImageRect; 131 LLRectf mPreviewImageRect;
130 GLuint mGLName; 132 LLPointer<LLImageGL> mImagep ;
131 133
132 static S32 sUploadAmount; 134 static S32 sUploadAmount;
133}; 135};
diff --git a/linden/indra/newview/llfloaterinspect.cpp b/linden/indra/newview/llfloaterinspect.cpp
index 8a665b5..e1d3c4a 100644
--- a/linden/indra/newview/llfloaterinspect.cpp
+++ b/linden/indra/newview/llfloaterinspect.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -206,14 +206,19 @@ void LLFloaterInspect::refresh()
206 mObjectList->operateOnAll(LLScrollListCtrl::OP_DELETE); 206 mObjectList->operateOnAll(LLScrollListCtrl::OP_DELETE);
207 //List all transient objects, then all linked objects 207 //List all transient objects, then all linked objects
208 208
209 //Crash fix for VWR-10823 209 for (LLObjectSelection::valid_iterator iter = mObjectSelection->valid_begin();
210 for (LLObjectSelection::valid_iterator iter = mObjectSelection->valid_begin(); 210 iter != mObjectSelection->valid_end(); iter++)
211 iter != mObjectSelection->valid_end(); iter++)
212 { 211 {
213 LLSelectNode* obj = *iter; 212 LLSelectNode* obj = *iter;
214 LLSD row; 213 LLSD row;
215 char time[MAX_STRING]; 214 char time[MAX_STRING];
216 std::string owner_name, creator_name; 215 std::string owner_name, creator_name;
216
217 if (obj->mCreationDate == 0)
218 { // Don't have valid information from the server, so skip this one
219 continue;
220 }
221
217 time_t timestamp = (time_t) (obj->mCreationDate/1000000); 222 time_t timestamp = (time_t) (obj->mCreationDate/1000000);
218 LLStringUtil::copy(time, ctime(&timestamp), MAX_STRING); 223 LLStringUtil::copy(time, ctime(&timestamp), MAX_STRING);
219 time[24] = '\0'; 224 time[24] = '\0';
diff --git a/linden/indra/newview/llfloaterinspect.h b/linden/indra/newview/llfloaterinspect.h
index 5db1dae..87473b9 100644
--- a/linden/indra/newview/llfloaterinspect.h
+++ b/linden/indra/newview/llfloaterinspect.h
@@ -6,7 +6,7 @@
6* 6*
7* $LicenseInfo:firstyear=2006&license=viewergpl$ 7* $LicenseInfo:firstyear=2006&license=viewergpl$
8* 8*
9* Copyright (c) 2006-2008, Linden Research, Inc. 9* Copyright (c) 2006-2009, Linden Research, Inc.
10* 10*
11* Second Life Viewer Source Code 11* Second Life Viewer Source Code
12* The source code in this file ("Source Code") is provided by Linden Lab 12* The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterjoystick.cpp b/linden/indra/newview/llfloaterjoystick.cpp
index 172da1d..f46e46d 100644
--- a/linden/indra/newview/llfloaterjoystick.cpp
+++ b/linden/indra/newview/llfloaterjoystick.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -46,7 +46,7 @@
46#include "llviewerjoystick.h" 46#include "llviewerjoystick.h"
47 47
48LLFloaterJoystick::LLFloaterJoystick(const LLSD& data) 48LLFloaterJoystick::LLFloaterJoystick(const LLSD& data)
49 : LLFloater(std::string("floater_joystick")) 49 : LLFloater("floater_joystick")
50{ 50{
51 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_joystick.xml"); 51 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_joystick.xml");
52 center(); 52 center();
diff --git a/linden/indra/newview/llfloaterjoystick.h b/linden/indra/newview/llfloaterjoystick.h
index b35b39f..8d729a2 100644
--- a/linden/indra/newview/llfloaterjoystick.h
+++ b/linden/indra/newview/llfloaterjoystick.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterlagmeter.cpp b/linden/indra/newview/llfloaterlagmeter.cpp
index 35e679d..2367c4d 100644
--- a/linden/indra/newview/llfloaterlagmeter.cpp
+++ b/linden/indra/newview/llfloaterlagmeter.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -183,7 +183,7 @@ void LLFloaterLagMeter::determineClient()
183 { 183 {
184 mClientCause->setText( getString("client_texture_loading_cause_msg", mStringArgs) ); 184 mClientCause->setText( getString("client_texture_loading_cause_msg", mStringArgs) );
185 } 185 }
186 else if(LLViewerImage::sBoundTextureMemory > LLViewerImage::sMaxBoundTextureMem) 186 else if((LLViewerImage::sBoundTextureMemory >> 20) > LLViewerImage::sMaxBoundTextureMem)
187 { 187 {
188 mClientCause->setText( getString("client_texture_memory_cause_msg", mStringArgs) ); 188 mClientCause->setText( getString("client_texture_memory_cause_msg", mStringArgs) );
189 } 189 }
diff --git a/linden/indra/newview/llfloaterlagmeter.h b/linden/indra/newview/llfloaterlagmeter.h
index ae6c19f..21967ec 100644
--- a/linden/indra/newview/llfloaterlagmeter.h
+++ b/linden/indra/newview/llfloaterlagmeter.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterland.cpp b/linden/indra/newview/llfloaterland.cpp
index 891cde7..e1d08da 100644
--- a/linden/indra/newview/llfloaterland.cpp
+++ b/linden/indra/newview/llfloaterland.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -1448,7 +1448,7 @@ void LLPanelLandObjects::processParcelObjectOwnersReply(LLMessageSystem *msg, vo
1448 msg->getBOOLFast(_PREHASH_Data, _PREHASH_IsGroupOwned, is_group_owned, i); 1448 msg->getBOOLFast(_PREHASH_Data, _PREHASH_IsGroupOwned, is_group_owned, i);
1449 msg->getS32Fast (_PREHASH_Data, _PREHASH_Count, object_count, i); 1449 msg->getS32Fast (_PREHASH_Data, _PREHASH_Count, object_count, i);
1450 msg->getBOOLFast(_PREHASH_Data, _PREHASH_OnlineStatus, is_online, i); 1450 msg->getBOOLFast(_PREHASH_Data, _PREHASH_OnlineStatus, is_online, i);
1451 if(msg->getNumberOfBlocks("DataExtended")) 1451 if(msg->has("DataExtended"))
1452 { 1452 {
1453 msg->getU32("DataExtended", "TimeStamp", most_recent_time, i); 1453 msg->getU32("DataExtended", "TimeStamp", most_recent_time, i);
1454 } 1454 }
diff --git a/linden/indra/newview/llfloaterland.h b/linden/indra/newview/llfloaterland.h
index 79f2f2c..5f2b970 100644
--- a/linden/indra/newview/llfloaterland.h
+++ b/linden/indra/newview/llfloaterland.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2002&license=viewergpl$ 6 * $LicenseInfo:firstyear=2002&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2002-2008, Linden Research, Inc. 8 * Copyright (c) 2002-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterlandholdings.cpp b/linden/indra/newview/llfloaterlandholdings.cpp
index 3694671..149accb 100644
--- a/linden/indra/newview/llfloaterlandholdings.cpp
+++ b/linden/indra/newview/llfloaterlandholdings.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterlandholdings.h b/linden/indra/newview/llfloaterlandholdings.h
index 6922739..3d5e9a4 100644
--- a/linden/indra/newview/llfloaterlandholdings.h
+++ b/linden/indra/newview/llfloaterlandholdings.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterlandmark.cpp b/linden/indra/newview/llfloaterlandmark.cpp
index 71e35e8..e9979de 100644
--- a/linden/indra/newview/llfloaterlandmark.cpp
+++ b/linden/indra/newview/llfloaterlandmark.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -34,73 +34,28 @@
34#include "llfloaterlandmark.h" 34#include "llfloaterlandmark.h"
35 35
36#include "llagent.h" 36#include "llagent.h"
37#include "llviewerimagelist.h"
38#include "llcheckboxctrl.h" 37#include "llcheckboxctrl.h"
39#include "llcombobox.h"
40#include "llbutton.h"
41#include "lldraghandle.h"
42#include "llfocusmgr.h"
43#include "llviewerimage.h"
44#include "llviewerparcelmgr.h" 38#include "llviewerparcelmgr.h"
45#include "llfolderview.h" 39#include "llfolderview.h"
46#include "llinventory.h" 40#include "llinventory.h"
47#include "llinventorymodel.h" 41#include "llinventorymodel.h"
48#include "llinventoryview.h" 42#include "llinventoryview.h"
49#include "lllineeditor.h"
50#include "llui.h"
51#include "llviewerinventory.h" 43#include "llviewerinventory.h"
52#include "llpermissions.h" 44#include "llpermissions.h"
53#include "llsaleinfo.h" 45#include "llsaleinfo.h"
54#include "llassetstorage.h"
55#include "lltextbox.h"
56#include "llparcel.h" 46#include "llparcel.h"
57#include "llresizehandle.h" 47
58#include "llscrollcontainer.h" 48#include "llviewerwindow.h" // alertXml
59#include "lltoolmgr.h"
60#include "lltoolpipette.h"
61
62#include "lltool.h"
63#include "llviewerwindow.h"
64#include "llviewerobject.h"
65#include "llviewercontrol.h" 49#include "llviewercontrol.h"
66#include "llglheaders.h"
67#include "lluictrlfactory.h" 50#include "lluictrlfactory.h"
68 51
69#include "roles_constants.h" 52#include "roles_constants.h" // GP_LAND_ALLOW_LANDMARK
70 53
71 54
72
73static const S32 CLOSE_BTN_WIDTH = 100;
74const S32 PIPETTE_BTN_WIDTH = 32;
75static const S32 HPAD = 4;
76static const S32 VPAD = 4;
77static const S32 LINE = 16;
78static const S32 SMALL_BTN_WIDTH = 64;
79static const S32 TEX_PICKER_MIN_WIDTH =
80 (HPAD +
81 CLOSE_BTN_WIDTH +
82 HPAD +
83 CLOSE_BTN_WIDTH +
84 HPAD +
85 SMALL_BTN_WIDTH +
86 HPAD +
87 SMALL_BTN_WIDTH +
88 HPAD +
89 30 +
90 RESIZE_HANDLE_WIDTH * 2);
91static const S32 CLEAR_BTN_WIDTH = 50;
92static const S32 TEX_PICKER_MIN_HEIGHT = 290;
93static const S32 FOOTER_HEIGHT = 100;
94static const S32 BORDER_PAD = HPAD;
95static const S32 TEXTURE_INVENTORY_PADDING = 30;
96static const F32 CONTEXT_CONE_IN_ALPHA = 0.0f; 55static const F32 CONTEXT_CONE_IN_ALPHA = 0.0f;
97static const F32 CONTEXT_CONE_OUT_ALPHA = 1.f; 56static const F32 CONTEXT_CONE_OUT_ALPHA = 1.f;
98static const F32 CONTEXT_FADE_TIME = 0.08f; 57static const F32 CONTEXT_FADE_TIME = 0.08f;
99 58
100//static const char CURRENT_IMAGE_NAME[] = "Current Landmark";
101//static const char WHITE_IMAGE_NAME[] = "Blank Landmark";
102//static const char NO_IMAGE_NAME[] = "None";
103
104 59
105LLFloaterLandmark::LLFloaterLandmark(const LLSD& data) 60LLFloaterLandmark::LLFloaterLandmark(const LLSD& data)
106 : 61 :
@@ -167,6 +122,7 @@ LLFloaterLandmark::LLFloaterLandmark(const LLSD& data)
167LLFloaterLandmark::~LLFloaterLandmark() 122LLFloaterLandmark::~LLFloaterLandmark()
168{ 123{
169 delete mSavedFolderState; 124 delete mSavedFolderState;
125 mSavedFolderState = NULL;
170} 126}
171 127
172void LLFloaterLandmark::setActive( BOOL active ) 128void LLFloaterLandmark::setActive( BOOL active )
diff --git a/linden/indra/newview/llfloaterlandmark.h b/linden/indra/newview/llfloaterlandmark.h
index cf71138..3e7d994 100644
--- a/linden/indra/newview/llfloaterlandmark.h
+++ b/linden/indra/newview/llfloaterlandmark.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -32,9 +32,7 @@
32#ifndef LL_LLFLOATERLANDMARK_H 32#ifndef LL_LLFLOATERLANDMARK_H
33#define LL_LLFLOATERLANDMARK_H 33#define LL_LLFLOATERLANDMARK_H
34 34
35#include "llcoord.h"
36#include "llfloater.h" 35#include "llfloater.h"
37#include "llstring.h"
38#include "lluictrl.h" 36#include "lluictrl.h"
39#include "llpermissionsflags.h" 37#include "llpermissionsflags.h"
40 38
diff --git a/linden/indra/newview/llfloatermap.cpp b/linden/indra/newview/llfloatermap.cpp
index b333ff2..b1aa6c7 100644
--- a/linden/indra/newview/llfloatermap.cpp
+++ b/linden/indra/newview/llfloatermap.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatermap.h b/linden/indra/newview/llfloatermap.h
index 525ce0e..91226dd 100644
--- a/linden/indra/newview/llfloatermap.h
+++ b/linden/indra/newview/llfloatermap.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatermemleak.cpp b/linden/indra/newview/llfloatermemleak.cpp
index 16be9df..80775e7 100644
--- a/linden/indra/newview/llfloatermemleak.cpp
+++ b/linden/indra/newview/llfloatermemleak.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatermemleak.h b/linden/indra/newview/llfloatermemleak.h
index 6a7b157..906afa1 100644
--- a/linden/indra/newview/llfloatermemleak.h
+++ b/linden/indra/newview/llfloatermemleak.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatermute.cpp b/linden/indra/newview/llfloatermute.cpp
index f77b8c2..0bcb102 100644
--- a/linden/indra/newview/llfloatermute.cpp
+++ b/linden/indra/newview/llfloatermute.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatermute.h b/linden/indra/newview/llfloatermute.h
index 0228251..7e0c8d0 100644
--- a/linden/indra/newview/llfloatermute.h
+++ b/linden/indra/newview/llfloatermute.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaternamedesc.cpp b/linden/indra/newview/llfloaternamedesc.cpp
index 3cafdd1..ec0fc6e 100644
--- a/linden/indra/newview/llfloaternamedesc.cpp
+++ b/linden/indra/newview/llfloaternamedesc.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaternamedesc.h b/linden/indra/newview/llfloaternamedesc.h
index 9cb0488..0467491 100644
--- a/linden/indra/newview/llfloaternamedesc.h
+++ b/linden/indra/newview/llfloaternamedesc.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaternewim.cpp b/linden/indra/newview/llfloaternewim.cpp
index eda9660..202f53c 100644
--- a/linden/indra/newview/llfloaternewim.cpp
+++ b/linden/indra/newview/llfloaternewim.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaternewim.h b/linden/indra/newview/llfloaternewim.h
index e4a7717..39c3525 100644
--- a/linden/indra/newview/llfloaternewim.h
+++ b/linden/indra/newview/llfloaternewim.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloateropenobject.cpp b/linden/indra/newview/llfloateropenobject.cpp
index 753c254..a83b0c9 100644
--- a/linden/indra/newview/llfloateropenobject.cpp
+++ b/linden/indra/newview/llfloateropenobject.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloateropenobject.h b/linden/indra/newview/llfloateropenobject.h
index b431f2c..5989460 100644
--- a/linden/indra/newview/llfloateropenobject.h
+++ b/linden/indra/newview/llfloateropenobject.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterparcel.cpp b/linden/indra/newview/llfloaterparcel.cpp
index 6288782..f12467a 100644
--- a/linden/indra/newview/llfloaterparcel.cpp
+++ b/linden/indra/newview/llfloaterparcel.cpp
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2007&license=viewergpl$ 7 * $LicenseInfo:firstyear=2007&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2007-2008, Linden Research, Inc. 9 * Copyright (c) 2007-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterparcel.h b/linden/indra/newview/llfloaterparcel.h
index 24a7ee8..8dfaf7b 100644
--- a/linden/indra/newview/llfloaterparcel.h
+++ b/linden/indra/newview/llfloaterparcel.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterpermissionsmgr.cpp b/linden/indra/newview/llfloaterpermissionsmgr.cpp
index 14ec7cd..cb576f1 100644
--- a/linden/indra/newview/llfloaterpermissionsmgr.cpp
+++ b/linden/indra/newview/llfloaterpermissionsmgr.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterpermissionsmgr.h b/linden/indra/newview/llfloaterpermissionsmgr.h
index cc89f97..50306b4 100644
--- a/linden/indra/newview/llfloaterpermissionsmgr.h
+++ b/linden/indra/newview/llfloaterpermissionsmgr.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterpostcard.cpp b/linden/indra/newview/llfloaterpostcard.cpp
index b4bcdb7..0eb150b 100644
--- a/linden/indra/newview/llfloaterpostcard.cpp
+++ b/linden/indra/newview/llfloaterpostcard.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -63,6 +63,8 @@
63 63
64#include "llassetuploadresponders.h" 64#include "llassetuploadresponders.h"
65 65
66#include <boost/regex.hpp> //boost.regex lib
67
66///---------------------------------------------------------------------------- 68///----------------------------------------------------------------------------
67/// Local function declarations, constants, enums, and typedefs 69/// Local function declarations, constants, enums, and typedefs
68///---------------------------------------------------------------------------- 70///----------------------------------------------------------------------------
@@ -180,7 +182,7 @@ void LLFloaterPostcard::draw()
180 rect.mBottom = (S32)((F32)rect.mTop - ((F32)rect.getWidth() / ratio)); 182 rect.mBottom = (S32)((F32)rect.mTop - ((F32)rect.getWidth() / ratio));
181 } 183 }
182 { 184 {
183 LLGLSNoTexture gls_no_texture; 185 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
184 gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f)); 186 gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f));
185 rect.stretch(-1); 187 rect.stretch(-1);
186 } 188 }
@@ -242,14 +244,16 @@ void LLFloaterPostcard::onClickSend(void* data)
242 244
243 std::string from(self->childGetValue("from_form").asString()); 245 std::string from(self->childGetValue("from_form").asString());
244 std::string to(self->childGetValue("to_form").asString()); 246 std::string to(self->childGetValue("to_form").asString());
245 247
246 if (to.empty() || to.find('@') == std::string::npos) 248 boost::regex emailFormat("[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}(,[ \t]*[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,})*");
249
250 if (to.empty() || !boost::regex_match(to, emailFormat))
247 { 251 {
248 gViewerWindow->alertXml("PromptRecipientEmail"); 252 gViewerWindow->alertXml("PromptRecipientEmail");
249 return; 253 return;
250 } 254 }
251 255
252 if (from.empty() || from.find('@') == std::string::npos) 256 if (from.empty() || !boost::regex_match(from, emailFormat))
253 { 257 {
254 gViewerWindow->alertXml("PromptSelfEmail"); 258 gViewerWindow->alertXml("PromptSelfEmail");
255 return; 259 return;
diff --git a/linden/indra/newview/llfloaterpostcard.h b/linden/indra/newview/llfloaterpostcard.h
index 94e40aa..094b9be 100644
--- a/linden/indra/newview/llfloaterpostcard.h
+++ b/linden/indra/newview/llfloaterpostcard.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterpostprocess.cpp b/linden/indra/newview/llfloaterpostprocess.cpp
index a804a84..569a74c 100644
--- a/linden/indra/newview/llfloaterpostprocess.cpp
+++ b/linden/indra/newview/llfloaterpostprocess.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterpostprocess.h b/linden/indra/newview/llfloaterpostprocess.h
index 03de20f..da55ccc 100644
--- a/linden/indra/newview/llfloaterpostprocess.h
+++ b/linden/indra/newview/llfloaterpostprocess.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterpreference.cpp b/linden/indra/newview/llfloaterpreference.cpp
index 82d8cc9..5451ca0 100644
--- a/linden/indra/newview/llfloaterpreference.cpp
+++ b/linden/indra/newview/llfloaterpreference.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -424,8 +424,6 @@ void LLFloaterPreference::onClickAbout(void*)
424// static 424// static
425void LLFloaterPreference::onBtnOK( void* userdata ) 425void LLFloaterPreference::onBtnOK( void* userdata )
426{ 426{
427 LLPanelLogin::refreshLocation( false );
428
429 LLFloaterPreference *fp =(LLFloaterPreference *)userdata; 427 LLFloaterPreference *fp =(LLFloaterPreference *)userdata;
430 // commit any outstanding text entry 428 // commit any outstanding text entry
431 if (fp->hasFocus()) 429 if (fp->hasFocus())
@@ -453,6 +451,8 @@ void LLFloaterPreference::onBtnOK( void* userdata )
453 // Show beep, pop up dialog, etc. 451 // Show beep, pop up dialog, etc.
454 llinfos << "Can't close preferences!" << llendl; 452 llinfos << "Can't close preferences!" << llendl;
455 } 453 }
454
455 LLPanelLogin::refreshLocation( false );
456} 456}
457 457
458 458
diff --git a/linden/indra/newview/llfloaterpreference.h b/linden/indra/newview/llfloaterpreference.h
index 2a19f26..bfa2499 100644
--- a/linden/indra/newview/llfloaterpreference.h
+++ b/linden/indra/newview/llfloaterpreference.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterproperties.cpp b/linden/indra/newview/llfloaterproperties.cpp
index e15d4db..eddd56a 100644
--- a/linden/indra/newview/llfloaterproperties.cpp
+++ b/linden/indra/newview/llfloaterproperties.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterproperties.h b/linden/indra/newview/llfloaterproperties.h
index a459616..ca6ba24 100644
--- a/linden/indra/newview/llfloaterproperties.h
+++ b/linden/indra/newview/llfloaterproperties.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterregioninfo.cpp b/linden/indra/newview/llfloaterregioninfo.cpp
index 8a4f621..6e0dba1 100644
--- a/linden/indra/newview/llfloaterregioninfo.cpp
+++ b/linden/indra/newview/llfloaterregioninfo.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2004&license=viewergpl$ 6 * $LicenseInfo:firstyear=2004&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2004-2008, Linden Research, Inc. 8 * Copyright (c) 2004-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterregioninfo.h b/linden/indra/newview/llfloaterregioninfo.h
index 7002b2c..41a94ce 100644
--- a/linden/indra/newview/llfloaterregioninfo.h
+++ b/linden/indra/newview/llfloaterregioninfo.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2004&license=viewergpl$ 6 * $LicenseInfo:firstyear=2004&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2004-2008, Linden Research, Inc. 8 * Copyright (c) 2004-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterreporter.cpp b/linden/indra/newview/llfloaterreporter.cpp
index e8643c0..7e9632d 100644
--- a/linden/indra/newview/llfloaterreporter.cpp
+++ b/linden/indra/newview/llfloaterreporter.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterreporter.h b/linden/indra/newview/llfloaterreporter.h
index 921f9a1..ff7f112 100644
--- a/linden/indra/newview/llfloaterreporter.h
+++ b/linden/indra/newview/llfloaterreporter.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterscriptdebug.cpp b/linden/indra/newview/llfloaterscriptdebug.cpp
index b83463c..efb1da6 100644
--- a/linden/indra/newview/llfloaterscriptdebug.cpp
+++ b/linden/indra/newview/llfloaterscriptdebug.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterscriptdebug.h b/linden/indra/newview/llfloaterscriptdebug.h
index c9951c9..6ae6a7d 100644
--- a/linden/indra/newview/llfloaterscriptdebug.h
+++ b/linden/indra/newview/llfloaterscriptdebug.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatersellland.cpp b/linden/indra/newview/llfloatersellland.cpp
index c24818e..4d91770 100644
--- a/linden/indra/newview/llfloatersellland.cpp
+++ b/linden/indra/newview/llfloatersellland.cpp
@@ -3,7 +3,7 @@
3 * 3 *
4 * $LicenseInfo:firstyear=2006&license=viewergpl$ 4 * $LicenseInfo:firstyear=2006&license=viewergpl$
5 * 5 *
6 * Copyright (c) 2006-2008, Linden Research, Inc. 6 * Copyright (c) 2006-2009, Linden Research, Inc.
7 * 7 *
8 * Second Life Viewer Source Code 8 * Second Life Viewer Source Code
9 * The source code in this file ("Source Code") is provided by Linden Lab 9 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatersellland.h b/linden/indra/newview/llfloatersellland.h
index 0b5a480..c238f20 100644
--- a/linden/indra/newview/llfloatersellland.h
+++ b/linden/indra/newview/llfloatersellland.h
@@ -3,7 +3,7 @@
3 * 3 *
4 * $LicenseInfo:firstyear=2006&license=viewergpl$ 4 * $LicenseInfo:firstyear=2006&license=viewergpl$
5 * 5 *
6 * Copyright (c) 2006-2008, Linden Research, Inc. 6 * Copyright (c) 2006-2009, Linden Research, Inc.
7 * 7 *
8 * Second Life Viewer Source Code 8 * Second Life Viewer Source Code
9 * The source code in this file ("Source Code") is provided by Linden Lab 9 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatersettingsdebug.cpp b/linden/indra/newview/llfloatersettingsdebug.cpp
index cb22875..e440c4a 100644
--- a/linden/indra/newview/llfloatersettingsdebug.cpp
+++ b/linden/indra/newview/llfloatersettingsdebug.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatersettingsdebug.h b/linden/indra/newview/llfloatersettingsdebug.h
index 7aba482..eb0b89f 100644
--- a/linden/indra/newview/llfloatersettingsdebug.h
+++ b/linden/indra/newview/llfloatersettingsdebug.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatersnapshot.cpp b/linden/indra/newview/llfloatersnapshot.cpp
index accbcb4..e07f436 100644
--- a/linden/indra/newview/llfloatersnapshot.cpp
+++ b/linden/indra/newview/llfloatersnapshot.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -152,7 +152,8 @@ public:
152 void resetThumbnailImage() { mThumbnailImage = NULL ; } 152 void resetThumbnailImage() { mThumbnailImage = NULL ; }
153 void drawPreviewRect(S32 offset_x, S32 offset_y) ; 153 void drawPreviewRect(S32 offset_x, S32 offset_y) ;
154 154
155 static void onIdle( void* snapshot_preview ); 155 // Returns TRUE when snapshot generated, FALSE otherwise.
156 static BOOL onIdle( void* snapshot_preview );
156 157
157private: 158private:
158 LLColor4 mColor; 159 LLColor4 mColor;
@@ -204,6 +205,8 @@ LLSnapshotLivePreview::LLSnapshotLivePreview (const LLRect& rect) :
204 mCurImageIndex(0), 205 mCurImageIndex(0),
205 mPreviewImage(NULL), 206 mPreviewImage(NULL),
206 mThumbnailImage(NULL) , 207 mThumbnailImage(NULL) ,
208 mThumbnailWidth(0),
209 mThumbnailHeight(0),
207 mPreviewImageEncoded(NULL), 210 mPreviewImageEncoded(NULL),
208 mFormattedImage(NULL), 211 mFormattedImage(NULL),
209 mShineCountdown(0), 212 mShineCountdown(0),
@@ -343,14 +346,11 @@ void LLSnapshotLivePreview::updateSnapshot(BOOL new_snapshot, BOOL new_thumbnail
343 mSnapshotDelayTimer.start(); 346 mSnapshotDelayTimer.start();
344 mSnapshotDelayTimer.setTimerExpirySec(delay); 347 mSnapshotDelayTimer.setTimerExpirySec(delay);
345 } 348 }
346 else if(new_thumbnail) 349 if(new_thumbnail)
347 { 350 {
348 mThumbnailUpToDate = FALSE ; 351 mThumbnailUpToDate = FALSE ;
349 } 352 }
350 else 353 setThumbnailImageSize();
351 {
352 setThumbnailImageSize() ;
353 }
354} 354}
355 355
356void LLSnapshotLivePreview::setSnapshotQuality(S32 quality) 356void LLSnapshotLivePreview::setSnapshotQuality(S32 quality)
@@ -418,14 +418,14 @@ void LLSnapshotLivePreview::draw()
418 418
419 LLColor4 image_color(1.f, 1.f, 1.f, 1.f); 419 LLColor4 image_color(1.f, 1.f, 1.f, 1.f);
420 gGL.color4fv(image_color.mV); 420 gGL.color4fv(image_color.mV);
421 LLViewerImage::bindTexture(mViewerImage[mCurImageIndex]); 421 gGL.getTexUnit(0)->bind(mViewerImage[mCurImageIndex]);
422 // calculate UV scale 422 // calculate UV scale
423 F32 uv_width = mImageScaled[mCurImageIndex] ? 1.f : llmin((F32)mWidth[mCurImageIndex] / (F32)mViewerImage[mCurImageIndex]->getWidth(), 1.f); 423 F32 uv_width = mImageScaled[mCurImageIndex] ? 1.f : llmin((F32)mWidth[mCurImageIndex] / (F32)mViewerImage[mCurImageIndex]->getWidth(), 1.f);
424 F32 uv_height = mImageScaled[mCurImageIndex] ? 1.f : llmin((F32)mHeight[mCurImageIndex] / (F32)mViewerImage[mCurImageIndex]->getHeight(), 1.f); 424 F32 uv_height = mImageScaled[mCurImageIndex] ? 1.f : llmin((F32)mHeight[mCurImageIndex] / (F32)mViewerImage[mCurImageIndex]->getHeight(), 1.f);
425 glPushMatrix(); 425 glPushMatrix();
426 { 426 {
427 glTranslatef((F32)rect.mLeft, (F32)rect.mBottom, 0.f); 427 glTranslatef((F32)rect.mLeft, (F32)rect.mBottom, 0.f);
428 gGL.begin(LLVertexBuffer::QUADS); 428 gGL.begin(LLRender::QUADS);
429 { 429 {
430 gGL.texCoord2f(uv_width, uv_height); 430 gGL.texCoord2f(uv_width, uv_height);
431 gGL.vertex2i(rect.getWidth(), rect.getHeight() ); 431 gGL.vertex2i(rect.getWidth(), rect.getHeight() );
@@ -487,8 +487,8 @@ void LLSnapshotLivePreview::draw()
487 S32 y1 = 0; 487 S32 y1 = 0;
488 S32 y2 = gViewerWindow->getWindowHeight(); 488 S32 y2 = gViewerWindow->getWindowHeight();
489 489
490 LLGLSNoTexture no_texture; 490 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
491 gGL.begin(LLVertexBuffer::QUADS); 491 gGL.begin(LLRender::QUADS);
492 { 492 {
493 gGL.color4f(1.f, 1.f, 1.f, 0.f); 493 gGL.color4f(1.f, 1.f, 1.f, 0.f);
494 gGL.vertex2i(x1, y1); 494 gGL.vertex2i(x1, y1);
@@ -516,10 +516,10 @@ void LLSnapshotLivePreview::draw()
516 516
517 // draw framing rectangle 517 // draw framing rectangle
518 { 518 {
519 LLGLSNoTexture no_texture; 519 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
520 gGL.color4f(1.f, 1.f, 1.f, 1.f); 520 gGL.color4f(1.f, 1.f, 1.f, 1.f);
521 LLRect outline_rect = mImageRect[mCurImageIndex]; 521 LLRect outline_rect = mImageRect[mCurImageIndex];
522 gGL.begin(LLVertexBuffer::QUADS); 522 gGL.begin(LLRender::QUADS);
523 { 523 {
524 gGL.vertex2i(outline_rect.mLeft - BORDER_WIDTH, outline_rect.mTop + BORDER_WIDTH); 524 gGL.vertex2i(outline_rect.mLeft - BORDER_WIDTH, outline_rect.mTop + BORDER_WIDTH);
525 gGL.vertex2i(outline_rect.mRight + BORDER_WIDTH, outline_rect.mTop + BORDER_WIDTH); 525 gGL.vertex2i(outline_rect.mRight + BORDER_WIDTH, outline_rect.mTop + BORDER_WIDTH);
@@ -554,7 +554,7 @@ void LLSnapshotLivePreview::draw()
554 F32 alpha = clamp_rescale(fall_interp, 0.f, 1.f, 0.8f, 0.4f); 554 F32 alpha = clamp_rescale(fall_interp, 0.f, 1.f, 0.8f, 0.4f);
555 LLColor4 image_color(1.f, 1.f, 1.f, alpha); 555 LLColor4 image_color(1.f, 1.f, 1.f, alpha);
556 gGL.color4fv(image_color.mV); 556 gGL.color4fv(image_color.mV);
557 LLViewerImage::bindTexture(mViewerImage[old_image_index]); 557 gGL.getTexUnit(0)->bind(mViewerImage[old_image_index]);
558 // calculate UV scale 558 // calculate UV scale
559 // *FIX get this to work with old image 559 // *FIX get this to work with old image
560 BOOL rescale = !mImageScaled[old_image_index] && mViewerImage[mCurImageIndex].notNull(); 560 BOOL rescale = !mImageScaled[old_image_index] && mViewerImage[mCurImageIndex].notNull();
@@ -565,7 +565,7 @@ void LLSnapshotLivePreview::draw()
565 LLRect& rect = mImageRect[old_image_index]; 565 LLRect& rect = mImageRect[old_image_index];
566 glTranslatef((F32)rect.mLeft, (F32)rect.mBottom - llround(getRect().getHeight() * 2.f * (fall_interp * fall_interp)), 0.f); 566 glTranslatef((F32)rect.mLeft, (F32)rect.mBottom - llround(getRect().getHeight() * 2.f * (fall_interp * fall_interp)), 0.f);
567 glRotatef(-45.f * fall_interp, 0.f, 0.f, 1.f); 567 glRotatef(-45.f * fall_interp, 0.f, 0.f, 1.f);
568 gGL.begin(LLVertexBuffer::QUADS); 568 gGL.begin(LLRender::QUADS);
569 { 569 {
570 gGL.texCoord2f(uv_width, uv_height); 570 gGL.texCoord2f(uv_width, uv_height);
571 gGL.vertex2i(rect.getWidth(), rect.getHeight() ); 571 gGL.vertex2i(rect.getWidth(), rect.getHeight() );
@@ -720,8 +720,11 @@ void LLSnapshotLivePreview::generateThumbnailImage(BOOL force_update)
720 mThumbnailUpdateLock = FALSE ; 720 mThumbnailUpdateLock = FALSE ;
721} 721}
722 722
723
724// Called often. Checks whether it's time to grab a new snapshot and if so, does it.
725// Returns TRUE if new snapshot generated, FALSE otherwise.
723//static 726//static
724void LLSnapshotLivePreview::onIdle( void* snapshot_preview ) 727BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview )
725{ 728{
726 LLSnapshotLivePreview* previewp = (LLSnapshotLivePreview*)snapshot_preview; 729 LLSnapshotLivePreview* previewp = (LLSnapshotLivePreview*)snapshot_preview;
727 730
@@ -734,7 +737,10 @@ void LLSnapshotLivePreview::onIdle( void* snapshot_preview )
734 previewp->mCameraRot = new_camera_rot; 737 previewp->mCameraRot = new_camera_rot;
735 // request a new snapshot whenever the camera moves, with a time delay 738 // request a new snapshot whenever the camera moves, with a time delay
736 BOOL autosnap = gSavedSettings.getBOOL("AutoSnapshot"); 739 BOOL autosnap = gSavedSettings.getBOOL("AutoSnapshot");
737 previewp->updateSnapshot(autosnap, FALSE, autosnap ? AUTO_SNAPSHOT_TIME_DELAY : 0.f); 740 previewp->updateSnapshot(
741 autosnap, // whether a new snapshot is needed or merely invalidate the existing one
742 FALSE, // or if 1st arg is false, whether to produce a new thumbnail image.
743 autosnap ? AUTO_SNAPSHOT_TIME_DELAY : 0.f); // shutter delay if 1st arg is true.
738 } 744 }
739 745
740 // see if it's time yet to snap the shot and bomb out otherwise. 746 // see if it's time yet to snap the shot and bomb out otherwise.
@@ -743,7 +749,7 @@ void LLSnapshotLivePreview::onIdle( void* snapshot_preview )
743 && !LLToolCamera::getInstance()->hasMouseCapture(); // don't take snapshots while ALT-zoom active 749 && !LLToolCamera::getInstance()->hasMouseCapture(); // don't take snapshots while ALT-zoom active
744 if ( ! previewp->mSnapshotActive) 750 if ( ! previewp->mSnapshotActive)
745 { 751 {
746 return; 752 return FALSE;
747 } 753 }
748 754
749 // time to produce a snapshot 755 // time to produce a snapshot
@@ -835,6 +841,7 @@ void LLSnapshotLivePreview::onIdle( void* snapshot_preview )
835 } 841 }
836 if (previewp->mFormattedImage->encode(previewp->mPreviewImage, 0)) 842 if (previewp->mFormattedImage->encode(previewp->mPreviewImage, 0))
837 { 843 {
844 previewp->mDataSize = previewp->mFormattedImage->getDataSize();
838 // special case BMP to copy instead of decode otherwise decode will crash. 845 // special case BMP to copy instead of decode otherwise decode will crash.
839 if(format == LLFloaterSnapshot::SNAPSHOT_FORMAT_BMP) 846 if(format == LLFloaterSnapshot::SNAPSHOT_FORMAT_BMP)
840 { 847 {
@@ -842,7 +849,6 @@ void LLSnapshotLivePreview::onIdle( void* snapshot_preview )
842 } 849 }
843 else 850 else
844 { 851 {
845 previewp->mDataSize = previewp->mFormattedImage->getDataSize();
846 previewp->mFormattedImage->decode(previewp->mPreviewImageEncoded, 0); 852 previewp->mFormattedImage->decode(previewp->mPreviewImageEncoded, 0);
847 } 853 }
848 } 854 }
@@ -871,7 +877,7 @@ void LLSnapshotLivePreview::onIdle( void* snapshot_preview )
871 877
872 previewp->mViewerImage[previewp->mCurImageIndex] = new LLImageGL(scaled, FALSE); 878 previewp->mViewerImage[previewp->mCurImageIndex] = new LLImageGL(scaled, FALSE);
873 previewp->mViewerImage[previewp->mCurImageIndex]->setMipFilterNearest(previewp->getSnapshotType() != SNAPSHOT_TEXTURE); 879 previewp->mViewerImage[previewp->mCurImageIndex]->setMipFilterNearest(previewp->getSnapshotType() != SNAPSHOT_TEXTURE);
874 LLViewerImage::bindTexture(previewp->mViewerImage[previewp->mCurImageIndex]); 880 gGL.getTexUnit(0)->bind(previewp->mViewerImage[previewp->mCurImageIndex]);
875 previewp->mViewerImage[previewp->mCurImageIndex]->setClamp(TRUE, TRUE); 881 previewp->mViewerImage[previewp->mCurImageIndex]->setClamp(TRUE, TRUE);
876 882
877 previewp->mSnapshotUpToDate = TRUE; 883 previewp->mSnapshotUpToDate = TRUE;
@@ -891,6 +897,8 @@ void LLSnapshotLivePreview::onIdle( void* snapshot_preview )
891 previewp->generateThumbnailImage() ; 897 previewp->generateThumbnailImage() ;
892 } 898 }
893 } 899 }
900
901 return TRUE;
894} 902}
895 903
896void LLSnapshotLivePreview::setSize(S32 w, S32 h) 904void LLSnapshotLivePreview::setSize(S32 w, S32 h)
@@ -907,6 +915,13 @@ void LLSnapshotLivePreview::getSize(S32& w, S32& h) const
907 915
908LLFloaterPostcard* LLSnapshotLivePreview::savePostcard() 916LLFloaterPostcard* LLSnapshotLivePreview::savePostcard()
909{ 917{
918 if(mViewerImage[mCurImageIndex].isNull())
919 {
920 //this should never happen!!
921 llwarns << "The snapshot image has not been generated!" << llendl ;
922 return NULL ;
923 }
924
910 // calculate and pass in image scale in case image data only use portion 925 // calculate and pass in image scale in case image data only use portion
911 // of viewerimage buffer 926 // of viewerimage buffer
912 LLVector2 image_scale(1.f, 1.f); 927 LLVector2 image_scale(1.f, 1.f);
@@ -922,9 +937,10 @@ LLFloaterPostcard* LLSnapshotLivePreview::savePostcard()
922 return NULL; 937 return NULL;
923 } 938 }
924 LLFloaterPostcard* floater = LLFloaterPostcard::showFromSnapshot(jpg, mViewerImage[mCurImageIndex], image_scale, mPosTakenGlobal); 939 LLFloaterPostcard* floater = LLFloaterPostcard::showFromSnapshot(jpg, mViewerImage[mCurImageIndex], image_scale, mPosTakenGlobal);
925 // relinquish lifetime of viewerimage and jpeg image to postcard floater 940 // relinquish lifetime of jpeg image to postcard floater
926 mViewerImage[mCurImageIndex] = NULL;
927 mFormattedImage = NULL; 941 mFormattedImage = NULL;
942 mDataSize = 0;
943 updateSnapshot(FALSE, FALSE);
928 944
929 return floater; 945 return floater;
930} 946}
@@ -968,12 +984,20 @@ void LLSnapshotLivePreview::saveTexture()
968 llwarns << "Error encoding snapshot" << llendl; 984 llwarns << "Error encoding snapshot" << llendl;
969 } 985 }
970 986
971 LLViewerStats::getInstance()->incStat(LLViewerStats::ST_SNAPSHOT_COUNT ); 987 LLViewerStats::getInstance()->incStat(LLViewerStats::ST_SNAPSHOT_COUNT );
988
989 mDataSize = 0;
972} 990}
973 991
974BOOL LLSnapshotLivePreview::saveLocal() 992BOOL LLSnapshotLivePreview::saveLocal()
975{ 993{
976 BOOL success = gViewerWindow->saveImageNumbered(mFormattedImage); 994 BOOL success = gViewerWindow->saveImageNumbered(mFormattedImage);
995
996 // Relinquish image memory. Save button will be disabled as a side-effect.
997 mFormattedImage = NULL;
998 mDataSize = 0;
999 updateSnapshot(FALSE, FALSE);
1000
977 if(success) 1001 if(success)
978 { 1002 {
979 gViewerWindow->playSnapshotAnimAndSound(); 1003 gViewerWindow->playSnapshotAnimAndSound();
@@ -1013,7 +1037,8 @@ public:
1013 static void onClickKeepOpenCheck(LLUICtrl *ctrl, void* data); 1037 static void onClickKeepOpenCheck(LLUICtrl *ctrl, void* data);
1014 static void onClickKeepAspectCheck(LLUICtrl *ctrl, void* data); 1038 static void onClickKeepAspectCheck(LLUICtrl *ctrl, void* data);
1015 static void onCommitQuality(LLUICtrl* ctrl, void* data); 1039 static void onCommitQuality(LLUICtrl* ctrl, void* data);
1016 static void onCommitResolution(LLUICtrl* ctrl, void* data); 1040 static void onCommitResolution(LLUICtrl* ctrl, void* data) { updateResolution(ctrl, data); }
1041 static void updateResolution(LLUICtrl* ctrl, void* data, BOOL do_update = TRUE);
1017 static void onCommitFreezeFrame(LLUICtrl* ctrl, void* data); 1042 static void onCommitFreezeFrame(LLUICtrl* ctrl, void* data);
1018 static void onCommitLayerTypes(LLUICtrl* ctrl, void*data); 1043 static void onCommitLayerTypes(LLUICtrl* ctrl, void*data);
1019 static void onCommitSnapshotType(LLUICtrl* ctrl, void* data); 1044 static void onCommitSnapshotType(LLUICtrl* ctrl, void* data);
@@ -1112,11 +1137,8 @@ LLViewerWindow::ESnapshotType LLFloaterSnapshot::Impl::getLayerType(LLFloaterSna
1112void LLFloaterSnapshot::Impl::setResolution(LLFloaterSnapshot* floater, const std::string& comboname) 1137void LLFloaterSnapshot::Impl::setResolution(LLFloaterSnapshot* floater, const std::string& comboname)
1113{ 1138{
1114 LLComboBox* combo = floater->getChild<LLComboBox>(comboname); 1139 LLComboBox* combo = floater->getChild<LLComboBox>(comboname);
1115 if (combo)
1116 {
1117 combo->setVisible(TRUE); 1140 combo->setVisible(TRUE);
1118 onCommitResolution(combo, floater); 1141 updateResolution(combo, floater, FALSE); // to sync spinners with combo
1119 }
1120} 1142}
1121 1143
1122//static 1144//static
@@ -1126,22 +1148,18 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp)
1126 1148
1127 S32 delta_height = gSavedSettings.getBOOL("AdvanceSnapshot") ? 0 : floaterp->getUIWinHeightShort() - floaterp->getUIWinHeightLong() ; 1149 S32 delta_height = gSavedSettings.getBOOL("AdvanceSnapshot") ? 0 : floaterp->getUIWinHeightShort() - floaterp->getUIWinHeightLong() ;
1128 1150
1129 LLComboBox* combo;
1130 if(!gSavedSettings.getBOOL("AdvanceSnapshot")) //set to original window resolution 1151 if(!gSavedSettings.getBOOL("AdvanceSnapshot")) //set to original window resolution
1131 { 1152 {
1132 previewp->mKeepAspectRatio = TRUE ; 1153 previewp->mKeepAspectRatio = TRUE;
1133 1154
1134 combo = floaterp->getChild<LLComboBox>("postcard_size_combo"); 1155 floaterp->getChild<LLComboBox>("postcard_size_combo")->setCurrentByIndex(0);
1135 combo->setCurrentByIndex(0) ; 1156 gSavedSettings.setS32("SnapshotPostcardLastResolution", 0);
1136 gSavedSettings.setS32("SnapshotPostcardLastResolution", 0) ;
1137 1157
1138 combo = floaterp->getChild<LLComboBox>("texture_size_combo"); 1158 floaterp->getChild<LLComboBox>("texture_size_combo")->setCurrentByIndex(0);
1139 combo->setCurrentByIndex(0) ; 1159 gSavedSettings.setS32("SnapshotTextureLastResolution", 0);
1140 gSavedSettings.setS32("SnapshotTextureLastResolution", 0) ;
1141 1160
1142 combo = floaterp->getChild<LLComboBox>("local_size_combo"); 1161 floaterp->getChild<LLComboBox>("local_size_combo")->setCurrentByIndex(0);
1143 combo->setCurrentByIndex(0) ; 1162 gSavedSettings.setS32("SnapshotLocalLastResolution", 0);
1144 gSavedSettings.setS32("SnapshotLocalLastResolution", 0) ;
1145 1163
1146 LLSnapshotLivePreview* previewp = getPreviewView(floaterp); 1164 LLSnapshotLivePreview* previewp = getPreviewView(floaterp);
1147 previewp->setSize(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight()); 1165 previewp->setSize(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight());
@@ -1206,7 +1224,11 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp)
1206 } 1224 }
1207} 1225}
1208 1226
1209 1227// This is the main function that keeps all the GUI controls in sync with the saved settings.
1228// It should be called anytime a setting is changed that could affect the controls.
1229// No other methods should be changing any of the controls directly except for helpers called by this method.
1230// The basic pattern for programmatically changing the GUI settings is to first set the
1231// appropriate saved settings and then call this method to sync the GUI with them.
1210// static 1232// static
1211void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater) 1233void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater)
1212{ 1234{
@@ -1220,15 +1242,10 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater)
1220 floater->childSetVisible("texture_size_combo", FALSE); 1242 floater->childSetVisible("texture_size_combo", FALSE);
1221 floater->childSetVisible("local_size_combo", FALSE); 1243 floater->childSetVisible("local_size_combo", FALSE);
1222 1244
1223 LLComboBox* combo; 1245 floater->getChild<LLComboBox>("postcard_size_combo")->selectNthItem(gSavedSettings.getS32("SnapshotPostcardLastResolution"));
1224 combo = floater->getChild<LLComboBox>("postcard_size_combo"); 1246 floater->getChild<LLComboBox>("texture_size_combo")->selectNthItem(gSavedSettings.getS32("SnapshotTextureLastResolution"));
1225 if (combo) combo->selectNthItem(gSavedSettings.getS32("SnapshotPostcardLastResolution")); 1247 floater->getChild<LLComboBox>("local_size_combo")->selectNthItem(gSavedSettings.getS32("SnapshotLocalLastResolution"));
1226 combo = floater->getChild<LLComboBox>("texture_size_combo"); 1248 floater->getChild<LLComboBox>("local_format_combo")->selectNthItem(gSavedSettings.getS32("SnapshotFormat"));
1227 if (combo) combo->selectNthItem(gSavedSettings.getS32("SnapshotTextureLastResolution"));
1228 combo = floater->getChild<LLComboBox>("local_size_combo");
1229 if (combo) combo->selectNthItem(gSavedSettings.getS32("SnapshotLocalLastResolution"));
1230 combo = floater->getChild<LLComboBox>("local_format_combo");
1231 if (combo) combo->selectNthItem(gSavedSettings.getS32("SnapshotFormat"));
1232 1249
1233 floater->childSetVisible("upload_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_TEXTURE); 1250 floater->childSetVisible("upload_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_TEXTURE);
1234 floater->childSetVisible("send_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD); 1251 floater->childSetVisible("send_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD);
@@ -1260,6 +1277,23 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater)
1260 floater->childSetVisible("auto_snapshot_check", is_advance); 1277 floater->childSetVisible("auto_snapshot_check", is_advance);
1261 floater->childSetVisible("image_quality_slider", is_advance && show_slider); 1278 floater->childSetVisible("image_quality_slider", is_advance && show_slider);
1262 1279
1280 LLSnapshotLivePreview* previewp = getPreviewView(floater);
1281 BOOL got_bytes = previewp && previewp->getDataSize() > 0;
1282 BOOL got_snap = previewp->getSnapshotUpToDate();
1283
1284 floater->childSetEnabled("send_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD && got_snap && previewp->getDataSize() <= MAX_POSTCARD_DATASIZE);
1285 floater->childSetEnabled("upload_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_TEXTURE && got_snap);
1286 floater->childSetEnabled("save_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_LOCAL && got_snap);
1287
1288 LLLocale locale(LLLocale::USER_LOCALE);
1289 std::string bytes_string;
1290 LLResMgr::getInstance()->getIntegerString(bytes_string, (previewp->getDataSize()) >> 10 );
1291 floater->childSetTextArg("file_size_label", "[SIZE]", got_snap ? bytes_string : floater->getString("unknown"));
1292 floater->childSetColor("file_size_label",
1293 shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD
1294 && got_bytes
1295 && previewp->getDataSize() > MAX_POSTCARD_DATASIZE ? LLColor4::red : gColors.getColor( "LabelTextColor" ));
1296
1263 switch(shot_type) 1297 switch(shot_type)
1264 { 1298 {
1265 case LLSnapshotLivePreview::SNAPSHOT_POSTCARD: 1299 case LLSnapshotLivePreview::SNAPSHOT_POSTCARD:
@@ -1290,7 +1324,6 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater)
1290 1324
1291 updateResolutionTextEntry(floater); 1325 updateResolutionTextEntry(floater);
1292 1326
1293 LLSnapshotLivePreview* previewp = getPreviewView(floater);
1294 if (previewp) 1327 if (previewp)
1295 { 1328 {
1296 previewp->setSnapshotType(shot_type); 1329 previewp->setSnapshotType(shot_type);
@@ -1385,6 +1418,8 @@ void LLFloaterSnapshot::Impl::onClickKeep(void* data)
1385 { 1418 {
1386 checkAutoSnapshot(previewp); 1419 checkAutoSnapshot(previewp);
1387 } 1420 }
1421
1422 updateControls(view);
1388 } 1423 }
1389} 1424}
1390 1425
@@ -1409,6 +1444,7 @@ void LLFloaterSnapshot::Impl::onClickAutoSnap(LLUICtrl *ctrl, void* data)
1409 if (view) 1444 if (view)
1410 { 1445 {
1411 checkAutoSnapshot(getPreviewView(view)); 1446 checkAutoSnapshot(getPreviewView(view));
1447 updateControls(view);
1412 } 1448 }
1413} 1449}
1414 1450
@@ -1421,9 +1457,12 @@ void LLFloaterSnapshot::Impl::onClickMore(void* data)
1421 { 1457 {
1422 view->translate( 0, view->getUIWinHeightShort() - view->getUIWinHeightLong() ); 1458 view->translate( 0, view->getUIWinHeightShort() - view->getUIWinHeightLong() );
1423 view->reshape(view->getRect().getWidth(), view->getUIWinHeightLong()); 1459 view->reshape(view->getRect().getWidth(), view->getUIWinHeightLong());
1424
1425 updateControls(view) ; 1460 updateControls(view) ;
1426 updateLayout(view) ; 1461 updateLayout(view) ;
1462 if(getPreviewView(view))
1463 {
1464 getPreviewView(view)->setThumbnailImageSize() ;
1465 }
1427 } 1466 }
1428} 1467}
1429void LLFloaterSnapshot::Impl::onClickLess(void* data) 1468void LLFloaterSnapshot::Impl::onClickLess(void* data)
@@ -1435,10 +1474,8 @@ void LLFloaterSnapshot::Impl::onClickLess(void* data)
1435 { 1474 {
1436 view->translate( 0, view->getUIWinHeightLong() - view->getUIWinHeightShort() ); 1475 view->translate( 0, view->getUIWinHeightLong() - view->getUIWinHeightShort() );
1437 view->reshape(view->getRect().getWidth(), view->getUIWinHeightShort()); 1476 view->reshape(view->getRect().getWidth(), view->getUIWinHeightShort());
1438
1439 updateControls(view) ; 1477 updateControls(view) ;
1440 updateLayout(view) ; 1478 updateLayout(view) ;
1441
1442 if(getPreviewView(view)) 1479 if(getPreviewView(view))
1443 { 1480 {
1444 getPreviewView(view)->setThumbnailImageSize() ; 1481 getPreviewView(view)->setThumbnailImageSize() ;
@@ -1478,6 +1515,7 @@ void LLFloaterSnapshot::Impl::onClickHighResCheck(LLUICtrl *ctrl, void* data)
1478 } 1515 }
1479 view->childSetEnabled("ui_check", !check->get()); 1516 view->childSetEnabled("ui_check", !check->get());
1480 checkAutoSnapshot(getPreviewView(view), TRUE); 1517 checkAutoSnapshot(getPreviewView(view), TRUE);
1518 updateControls(view);
1481 } 1519 }
1482} 1520}
1483 1521
@@ -1491,6 +1529,7 @@ void LLFloaterSnapshot::Impl::onClickHUDCheck(LLUICtrl *ctrl, void* data)
1491 if (view) 1529 if (view)
1492 { 1530 {
1493 checkAutoSnapshot(getPreviewView(view), TRUE); 1531 checkAutoSnapshot(getPreviewView(view), TRUE);
1532 updateControls(view);
1494 } 1533 }
1495} 1534}
1496 1535
@@ -1524,6 +1563,7 @@ void LLFloaterSnapshot::Impl::onClickKeepAspectCheck(LLUICtrl* ctrl, void* data)
1524 } 1563 }
1525 1564
1526 previewp->setSize(w, h) ; 1565 previewp->setSize(w, h) ;
1566 previewp->updateSnapshot(FALSE, TRUE);
1527 checkAutoSnapshot(previewp, TRUE); 1567 checkAutoSnapshot(previewp, TRUE);
1528 } 1568 }
1529 } 1569 }
@@ -1573,7 +1613,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
1573 } 1613 }
1574#endif 1614#endif
1575 1615
1576 if(!index) //current window size 1616 if(0 == index) //current window size
1577 { 1617 {
1578 sAspectRatioCheckOff = TRUE ; 1618 sAspectRatioCheckOff = TRUE ;
1579 view->childSetEnabled("keep_aspect_check", FALSE) ; 1619 view->childSetEnabled("keep_aspect_check", FALSE) ;
@@ -1610,8 +1650,27 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
1610 return ; 1650 return ;
1611} 1651}
1612 1652
1653static std::string lastSnapshotWidthName()
1654{
1655 switch(gSavedSettings.getS32("LastSnapshotType"))
1656 {
1657 case LLSnapshotLivePreview::SNAPSHOT_POSTCARD: return "LastSnapshotToEmailWidth";
1658 case LLSnapshotLivePreview::SNAPSHOT_TEXTURE: return "LastSnapshotToInventoryWidth";
1659 default: return "LastSnapshotToDiskWidth";
1660 }
1661}
1662static std::string lastSnapshotHeightName()
1663{
1664 switch(gSavedSettings.getS32("LastSnapshotType"))
1665 {
1666 case LLSnapshotLivePreview::SNAPSHOT_POSTCARD: return "LastSnapshotToEmailHeight";
1667 case LLSnapshotLivePreview::SNAPSHOT_TEXTURE: return "LastSnapshotToInventoryHeight";
1668 default: return "LastSnapshotToDiskHeight";
1669 }
1670}
1671
1613// static 1672// static
1614void LLFloaterSnapshot::Impl::onCommitResolution(LLUICtrl* ctrl, void* data) 1673void LLFloaterSnapshot::Impl::updateResolution(LLUICtrl* ctrl, void* data, BOOL do_update)
1615{ 1674{
1616 LLComboBox* combobox = (LLComboBox*)ctrl; 1675 LLComboBox* combobox = (LLComboBox*)ctrl;
1617 LLFloaterSnapshot *view = (LLFloaterSnapshot *)data; 1676 LLFloaterSnapshot *view = (LLFloaterSnapshot *)data;
@@ -1622,13 +1681,9 @@ void LLFloaterSnapshot::Impl::onCommitResolution(LLUICtrl* ctrl, void* data)
1622 } 1681 }
1623 1682
1624 // save off all selected resolution values 1683 // save off all selected resolution values
1625 LLComboBox* combo; 1684 gSavedSettings.setS32("SnapshotPostcardLastResolution", view->getChild<LLComboBox>("postcard_size_combo")->getCurrentIndex());
1626 combo = view->getChild<LLComboBox>("postcard_size_combo"); 1685 gSavedSettings.setS32("SnapshotTextureLastResolution", view->getChild<LLComboBox>("texture_size_combo")->getCurrentIndex());
1627 gSavedSettings.setS32("SnapshotPostcardLastResolution", combo->getCurrentIndex()); 1686 gSavedSettings.setS32("SnapshotLocalLastResolution", view->getChild<LLComboBox>("local_size_combo")->getCurrentIndex());
1628 combo = view->getChild<LLComboBox>("texture_size_combo");
1629 gSavedSettings.setS32("SnapshotTextureLastResolution", combo->getCurrentIndex());
1630 combo = view->getChild<LLComboBox>("local_size_combo");
1631 gSavedSettings.setS32("SnapshotLocalLastResolution", combo->getCurrentIndex());
1632 1687
1633 std::string sdstring = combobox->getSelectedValue(); 1688 std::string sdstring = combobox->getSelectedValue();
1634 LLSD sdres; 1689 LLSD sdres;
@@ -1641,17 +1696,22 @@ void LLFloaterSnapshot::Impl::onCommitResolution(LLUICtrl* ctrl, void* data)
1641 LLSnapshotLivePreview* previewp = getPreviewView(view); 1696 LLSnapshotLivePreview* previewp = getPreviewView(view);
1642 if (previewp && combobox->getCurrentIndex() >= 0) 1697 if (previewp && combobox->getCurrentIndex() >= 0)
1643 { 1698 {
1699 S32 original_width = 0 , original_height = 0 ;
1700 previewp->getSize(original_width, original_height) ;
1701
1644 if (width == 0 || height == 0) 1702 if (width == 0 || height == 0)
1645 { 1703 {
1704 // take resolution from current window size
1646 previewp->setSize(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight()); 1705 previewp->setSize(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight());
1647 } 1706 }
1648 else if (width == -1 || height == -1) 1707 else if (width == -1 || height == -1)
1649 { 1708 {
1650 // load last custom value 1709 // load last custom value
1651 previewp->setSize(gSavedSettings.getS32("LastSnapshotWidth"), gSavedSettings.getS32("LastSnapshotHeight")); 1710 previewp->setSize(gSavedSettings.getS32(lastSnapshotWidthName()), gSavedSettings.getS32(lastSnapshotHeightName()));
1652 } 1711 }
1653 else 1712 else
1654 { 1713 {
1714 // use the resolution from the selected pre-canned drop-down choice
1655 previewp->setSize(width, height); 1715 previewp->setSize(width, height);
1656 } 1716 }
1657 1717
@@ -1663,12 +1723,25 @@ void LLFloaterSnapshot::Impl::onCommitResolution(LLUICtrl* ctrl, void* data)
1663 { 1723 {
1664 resetSnapshotSizeOnUI(view, width, height) ; 1724 resetSnapshotSizeOnUI(view, width, height) ;
1665 } 1725 }
1666 previewp->setSize(width, height); 1726
1727 if(view->childGetValue("snapshot_width").asInteger() != width || view->childGetValue("snapshot_height").asInteger() != height)
1728 {
1729 view->childSetValue("snapshot_width", width);
1730 view->childSetValue("snapshot_height", height);
1731 }
1732
1733 if(original_width != width || original_height != height)
1734 {
1735 previewp->setSize(width, height);
1667 1736
1668 view->childSetValue("snapshot_width", width); 1737 // hide old preview as the aspect ratio could be wrong
1669 view->childSetValue("snapshot_height", height); 1738 checkAutoSnapshot(previewp, FALSE);
1670 // hide old preview as the aspect ratio could be wrong 1739 getPreviewView(view)->updateSnapshot(FALSE, TRUE);
1671 checkAutoSnapshot(previewp, FALSE); 1740 if(do_update)
1741 {
1742 updateControls(view);
1743 }
1744 }
1672 } 1745 }
1673} 1746}
1674 1747
@@ -1717,17 +1790,28 @@ void LLFloaterSnapshot::Impl::onCommitSnapshotFormat(LLUICtrl* ctrl, void* data)
1717 1790
1718 1791
1719 1792
1720 1793// Sets the named size combo to "custom" mode.
1721// static 1794// static
1722void LLFloaterSnapshot::Impl::comboSetCustom(LLFloaterSnapshot* floater, const std::string& comboname) 1795void LLFloaterSnapshot::Impl::comboSetCustom(LLFloaterSnapshot* floater, const std::string& comboname)
1723{ 1796{
1724 LLComboBox* combo = floater->getChild<LLComboBox>(comboname); 1797 LLComboBox* combo = floater->getChild<LLComboBox>(comboname);
1725 if (combo)
1726 {
1727 combo->setCurrentByIndex(combo->getItemCount() - 1);
1728 1798
1729 checkAspectRatio(floater, -1);//combo->getCurrentIndex()) ; 1799 combo->setCurrentByIndex(combo->getItemCount() - 1); // "custom" is always the last index
1800
1801 if(comboname == "postcard_size_combo")
1802 {
1803 gSavedSettings.setS32("SnapshotPostcardLastResolution", combo->getCurrentIndex());
1730 } 1804 }
1805 else if(comboname == "texture_size_combo")
1806 {
1807 gSavedSettings.setS32("SnapshotTextureLastResolution", combo->getCurrentIndex());
1808 }
1809 else if(comboname == "local_size_combo")
1810 {
1811 gSavedSettings.setS32("SnapshotLocalLastResolution", combo->getCurrentIndex());
1812 }
1813
1814 checkAspectRatio(floater, -1); // -1 means custom
1731} 1815}
1732 1816
1733 1817
@@ -1753,8 +1837,8 @@ BOOL LLFloaterSnapshot::Impl::checkImageSize(LLSnapshotLivePreview* previewp, S3
1753 1837
1754 //round to nearest power of 2 based on the direction of movement 1838 //round to nearest power of 2 based on the direction of movement
1755 // i.e. higher power of two if increasing texture resolution 1839 // i.e. higher power of two if increasing texture resolution
1756 if(gSavedSettings.getS32("LastSnapshotWidth") < width || 1840 if(gSavedSettings.getS32("LastSnapshotToInventoryWidth") < width ||
1757 gSavedSettings.getS32("LastSnapshotHeight") < height) 1841 gSavedSettings.getS32("LastSnapshotToInventoryHeight") < height)
1758 { 1842 {
1759 // Up arrow pressed 1843 // Up arrow pressed
1760 width = get_next_power_two(width, MAX_TEXTURE_SIZE) ; 1844 width = get_next_power_two(width, MAX_TEXTURE_SIZE) ;
@@ -1814,20 +1898,10 @@ BOOL LLFloaterSnapshot::Impl::checkImageSize(LLSnapshotLivePreview* previewp, S3
1814//static 1898//static
1815void LLFloaterSnapshot::Impl::resetSnapshotSizeOnUI(LLFloaterSnapshot *view, S32 width, S32 height) 1899void LLFloaterSnapshot::Impl::resetSnapshotSizeOnUI(LLFloaterSnapshot *view, S32 width, S32 height)
1816{ 1900{
1817 LLSpinCtrl *sctrl = view->getChild<LLSpinCtrl>("snapshot_width") ; 1901 view->getChild<LLSpinCtrl>("snapshot_width")->forceSetValue(width);
1818 if(sctrl) 1902 view->getChild<LLSpinCtrl>("snapshot_height")->forceSetValue(height);
1819 { 1903 gSavedSettings.setS32(lastSnapshotWidthName(), width);
1820 sctrl->forceSetValue(width) ; 1904 gSavedSettings.setS32(lastSnapshotHeightName(), height);
1821 }
1822
1823 sctrl = view->getChild<LLSpinCtrl>("snapshot_height") ;
1824 if(sctrl)
1825 {
1826 sctrl->forceSetValue(height) ;
1827 }
1828
1829 gSavedSettings.setS32("LastSnapshotWidth", width);
1830 gSavedSettings.setS32("LastSnapshotHeight", height);
1831} 1905}
1832 1906
1833//static 1907//static
@@ -1881,15 +1955,17 @@ void LLFloaterSnapshot::Impl::onCommitCustomResolution(LLUICtrl *ctrl, void* dat
1881 1955
1882 previewp->setSize(w,h); 1956 previewp->setSize(w,h);
1883 checkAutoSnapshot(previewp, FALSE); 1957 checkAutoSnapshot(previewp, FALSE);
1958 previewp->updateSnapshot(FALSE, TRUE);
1884 comboSetCustom(view, "postcard_size_combo"); 1959 comboSetCustom(view, "postcard_size_combo");
1885 comboSetCustom(view, "texture_size_combo"); 1960 comboSetCustom(view, "texture_size_combo");
1886 comboSetCustom(view, "local_size_combo"); 1961 comboSetCustom(view, "local_size_combo");
1887 } 1962 }
1888 } 1963 }
1889 1964
1890 gSavedSettings.setS32("LastSnapshotWidth", w); 1965 gSavedSettings.setS32(lastSnapshotWidthName(), w);
1891 gSavedSettings.setS32("LastSnapshotHeight", h); 1966 gSavedSettings.setS32(lastSnapshotHeightName(), h);
1892 1967
1968 updateControls(view);
1893 } 1969 }
1894} 1970}
1895 1971
@@ -1925,6 +2001,7 @@ LLFloaterSnapshot::~LLFloaterSnapshot()
1925 delete &impl; 2001 delete &impl;
1926} 2002}
1927 2003
2004
1928BOOL LLFloaterSnapshot::postBuild() 2005BOOL LLFloaterSnapshot::postBuild()
1929{ 2006{
1930 childSetCommitCallback("snapshot_type_radio", Impl::onCommitSnapshotType, this); 2007 childSetCommitCallback("snapshot_type_radio", Impl::onCommitSnapshotType, this);
@@ -1932,11 +2009,6 @@ BOOL LLFloaterSnapshot::postBuild()
1932 2009
1933 childSetAction("new_snapshot_btn", Impl::onClickNewSnapshot, this); 2010 childSetAction("new_snapshot_btn", Impl::onClickNewSnapshot, this);
1934 2011
1935 childSetValue("auto_snapshot_check", gSavedSettings.getBOOL("AutoSnapshot"));
1936 childSetCommitCallback("auto_snapshot_check", Impl::onClickAutoSnap, this);
1937
1938 //childSetValue("advance_snapshot_check", gSavedSettings.getBOOL("AdvanceSnapshot"));
1939 //childSetCommitCallback("advance_snapshot_check", Impl::onClickAdvanceSnap, this);
1940 childSetAction("more_btn", Impl::onClickMore, this); 2012 childSetAction("more_btn", Impl::onClickMore, this);
1941 childSetAction("less_btn", Impl::onClickLess, this); 2013 childSetAction("less_btn", Impl::onClickLess, this);
1942 2014
@@ -1949,10 +2021,10 @@ BOOL LLFloaterSnapshot::postBuild()
1949 childSetValue("image_quality_slider", gSavedSettings.getS32("SnapshotQuality")); 2021 childSetValue("image_quality_slider", gSavedSettings.getS32("SnapshotQuality"));
1950 2022
1951 childSetCommitCallback("snapshot_width", Impl::onCommitCustomResolution, this); 2023 childSetCommitCallback("snapshot_width", Impl::onCommitCustomResolution, this);
1952
1953 childSetCommitCallback("snapshot_height", Impl::onCommitCustomResolution, this); 2024 childSetCommitCallback("snapshot_height", Impl::onCommitCustomResolution, this);
1954 2025
1955 childSetCommitCallback("ui_check", Impl::onClickUICheck, this); 2026 childSetCommitCallback("ui_check", Impl::onClickUICheck, this);
2027 childSetValue("ui_check", gSavedSettings.getBOOL("RenderUIInSnapshot"));
1956 2028
1957 childSetCommitCallback("high_res_check", Impl::onClickHighResCheck, this); 2029 childSetCommitCallback("high_res_check", Impl::onClickHighResCheck, this);
1958 childSetValue("high_res_check", gSavedSettings.getBOOL("HighResSnapshot")); 2030 childSetValue("high_res_check", gSavedSettings.getBOOL("HighResSnapshot"));
@@ -1970,12 +2042,15 @@ BOOL LLFloaterSnapshot::postBuild()
1970 childSetValue("layer_types", "colors"); 2042 childSetValue("layer_types", "colors");
1971 childSetEnabled("layer_types", FALSE); 2043 childSetEnabled("layer_types", FALSE);
1972 2044
1973 childSetValue("snapshot_width", gSavedSettings.getS32("LastSnapshotWidth")); 2045 childSetValue("snapshot_width", gSavedSettings.getS32(lastSnapshotWidthName()));
1974 childSetValue("snapshot_height", gSavedSettings.getS32("LastSnapshotHeight")); 2046 childSetValue("snapshot_height", gSavedSettings.getS32(lastSnapshotHeightName()));
1975 2047
1976 childSetValue("freeze_frame_check", gSavedSettings.getBOOL("UseFreezeFrame")); 2048 childSetValue("freeze_frame_check", gSavedSettings.getBOOL("UseFreezeFrame"));
1977 childSetCommitCallback("freeze_frame_check", Impl::onCommitFreezeFrame, this); 2049 childSetCommitCallback("freeze_frame_check", Impl::onCommitFreezeFrame, this);
1978 2050
2051 childSetValue("auto_snapshot_check", gSavedSettings.getBOOL("AutoSnapshot"));
2052 childSetCommitCallback("auto_snapshot_check", Impl::onClickAutoSnap, this);
2053
1979 childSetCommitCallback("postcard_size_combo", Impl::onCommitResolution, this); 2054 childSetCommitCallback("postcard_size_combo", Impl::onCommitResolution, this);
1980 childSetCommitCallback("texture_size_combo", Impl::onCommitResolution, this); 2055 childSetCommitCallback("texture_size_combo", Impl::onCommitResolution, this);
1981 childSetCommitCallback("local_size_combo", Impl::onCommitResolution, this); 2056 childSetCommitCallback("local_size_combo", Impl::onCommitResolution, this);
@@ -2005,6 +2080,7 @@ void LLFloaterSnapshot::draw()
2005 return; 2080 return;
2006 } 2081 }
2007 2082
2083 // TODO*: Do we need all this? - Jacek
2008 if(!isMinimized()) 2084 if(!isMinimized())
2009 { 2085 {
2010 if (previewp && previewp->getDataSize() > 0) 2086 if (previewp && previewp->getDataSize() > 0)
@@ -2162,10 +2238,15 @@ void LLFloaterSnapshot::hide(void*)
2162//static 2238//static
2163void LLFloaterSnapshot::update() 2239void LLFloaterSnapshot::update()
2164{ 2240{
2241 BOOL changed = FALSE;
2165 for (std::set<LLSnapshotLivePreview*>::iterator iter = LLSnapshotLivePreview::sList.begin(); 2242 for (std::set<LLSnapshotLivePreview*>::iterator iter = LLSnapshotLivePreview::sList.begin();
2166 iter != LLSnapshotLivePreview::sList.end(); ++iter) 2243 iter != LLSnapshotLivePreview::sList.end(); ++iter)
2167 { 2244 {
2168 LLSnapshotLivePreview::onIdle(*iter); 2245 changed |= LLSnapshotLivePreview::onIdle(*iter);
2246 }
2247 if(changed)
2248 {
2249 sInstance->impl.updateControls(sInstance);
2169 } 2250 }
2170} 2251}
2171 2252
diff --git a/linden/indra/newview/llfloatersnapshot.h b/linden/indra/newview/llfloatersnapshot.h
index f894c27..c87879c 100644
--- a/linden/indra/newview/llfloatersnapshot.h
+++ b/linden/indra/newview/llfloatersnapshot.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterstats.cpp b/linden/indra/newview/llfloaterstats.cpp
index 745cb27..22cc596 100644
--- a/linden/indra/newview/llfloaterstats.cpp
+++ b/linden/indra/newview/llfloaterstats.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterstats.h b/linden/indra/newview/llfloaterstats.h
index 15a8362..ef2a1eb 100644
--- a/linden/indra/newview/llfloaterstats.h
+++ b/linden/indra/newview/llfloaterstats.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatertelehub.cpp b/linden/indra/newview/llfloatertelehub.cpp
index 3d84135..943bc36 100644
--- a/linden/indra/newview/llfloatertelehub.cpp
+++ b/linden/indra/newview/llfloatertelehub.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2005&license=viewergpl$ 6 * $LicenseInfo:firstyear=2005&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2005-2008, Linden Research, Inc. 8 * Copyright (c) 2005-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatertelehub.h b/linden/indra/newview/llfloatertelehub.h
index 05080ee..c0092e2 100644
--- a/linden/indra/newview/llfloatertelehub.h
+++ b/linden/indra/newview/llfloatertelehub.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2005&license=viewergpl$ 6 * $LicenseInfo:firstyear=2005&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2005-2008, Linden Research, Inc. 8 * Copyright (c) 2005-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatertest.cpp b/linden/indra/newview/llfloatertest.cpp
index ceba079..9789d10 100644
--- a/linden/indra/newview/llfloatertest.cpp
+++ b/linden/indra/newview/llfloatertest.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatertest.h b/linden/indra/newview/llfloatertest.h
index 96af960..2747a06 100644
--- a/linden/indra/newview/llfloatertest.h
+++ b/linden/indra/newview/llfloatertest.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatertools.cpp b/linden/indra/newview/llfloatertools.cpp
index 1498d4a..e723ba1 100644
--- a/linden/indra/newview/llfloatertools.cpp
+++ b/linden/indra/newview/llfloatertools.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatertools.h b/linden/indra/newview/llfloatertools.h
index c4d6337..9d555d1 100644
--- a/linden/indra/newview/llfloatertools.h
+++ b/linden/indra/newview/llfloatertools.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatertopobjects.cpp b/linden/indra/newview/llfloatertopobjects.cpp
index e4c90f0..9da968e 100644
--- a/linden/indra/newview/llfloatertopobjects.cpp
+++ b/linden/indra/newview/llfloatertopobjects.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatertopobjects.h b/linden/indra/newview/llfloatertopobjects.h
index fcc91f2..ebec0d3 100644
--- a/linden/indra/newview/llfloatertopobjects.h
+++ b/linden/indra/newview/llfloatertopobjects.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatertos.cpp b/linden/indra/newview/llfloatertos.cpp
index f37388a..ee5beb8 100644
--- a/linden/indra/newview/llfloatertos.cpp
+++ b/linden/indra/newview/llfloatertos.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatertos.h b/linden/indra/newview/llfloatertos.h
index 3832877..726bd2e 100644
--- a/linden/indra/newview/llfloatertos.h
+++ b/linden/indra/newview/llfloatertos.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterurldisplay.cpp b/linden/indra/newview/llfloaterurldisplay.cpp
index 563eaf6..376ebb1 100644
--- a/linden/indra/newview/llfloaterurldisplay.cpp
+++ b/linden/indra/newview/llfloaterurldisplay.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterurldisplay.h b/linden/indra/newview/llfloaterurldisplay.h
index dce9c75..0bf06af 100644
--- a/linden/indra/newview/llfloaterurldisplay.h
+++ b/linden/indra/newview/llfloaterurldisplay.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterurlentry.cpp b/linden/indra/newview/llfloaterurlentry.cpp
index bddef85..50dc51c 100644
--- a/linden/indra/newview/llfloaterurlentry.cpp
+++ b/linden/indra/newview/llfloaterurlentry.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterurlentry.h b/linden/indra/newview/llfloaterurlentry.h
index 069b69f..fb5c35a 100644
--- a/linden/indra/newview/llfloaterurlentry.h
+++ b/linden/indra/newview/llfloaterurlentry.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloatervoicedevicesettings.cpp b/linden/indra/newview/llfloatervoicedevicesettings.cpp
index 7ffaa73..ad9d776 100644
--- a/linden/indra/newview/llfloatervoicedevicesettings.cpp
+++ b/linden/indra/newview/llfloatervoicedevicesettings.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -85,14 +85,15 @@ BOOL LLPanelVoiceDeviceSettings::postBuild()
85void LLPanelVoiceDeviceSettings::draw() 85void LLPanelVoiceDeviceSettings::draw()
86{ 86{
87 // let user know that volume indicator is not yet available 87 // let user know that volume indicator is not yet available
88 childSetVisible("wait_text", !gVoiceClient->inTuningMode()); 88 bool is_in_tuning_mode = gVoiceClient->inTuningMode();
89 childSetVisible("wait_text", !is_in_tuning_mode);
89 90
90 LLPanel::draw(); 91 LLPanel::draw();
91 92
92 F32 voice_power = gVoiceClient->tuningGetEnergy(); 93 F32 voice_power = gVoiceClient->tuningGetEnergy();
93 S32 discrete_power = 0; 94 S32 discrete_power = 0;
94 95
95 if (!gVoiceClient->inTuningMode()) 96 if (!is_in_tuning_mode)
96 { 97 {
97 discrete_power = 0; 98 discrete_power = 0;
98 } 99 }
@@ -101,7 +102,7 @@ void LLPanelVoiceDeviceSettings::draw()
101 discrete_power = llmin(4, llfloor((voice_power / LLVoiceClient::OVERDRIVEN_POWER_LEVEL) * 4.f)); 102 discrete_power = llmin(4, llfloor((voice_power / LLVoiceClient::OVERDRIVEN_POWER_LEVEL) * 4.f));
102 } 103 }
103 104
104 if (gVoiceClient->inTuningMode()) 105 if (is_in_tuning_mode)
105 { 106 {
106 for(S32 power_bar_idx = 0; power_bar_idx < 5; power_bar_idx++) 107 for(S32 power_bar_idx = 0; power_bar_idx < 5; power_bar_idx++)
107 { 108 {
@@ -136,7 +137,11 @@ void LLPanelVoiceDeviceSettings::apply()
136 } 137 }
137 138
138 // assume we are being destroyed by closing our embedding window 139 // assume we are being destroyed by closing our embedding window
139 gSavedSettings.setF32("AudioLevelMic", mMicVolume); 140 LLSlider* volume_slider = getChild<LLSlider>("mic_volume_slider");
141 if(volume_slider)
142 {
143 gSavedSettings.setF32("AudioLevelMic", (F32)volume_slider->getValue().asReal());
144 }
140} 145}
141 146
142void LLPanelVoiceDeviceSettings::cancel() 147void LLPanelVoiceDeviceSettings::cancel()
@@ -149,6 +154,13 @@ void LLPanelVoiceDeviceSettings::cancel()
149 154
150 if(mCtrlOutputDevices) 155 if(mCtrlOutputDevices)
151 mCtrlOutputDevices->setSimple(mOutputDevice); 156 mCtrlOutputDevices->setSimple(mOutputDevice);
157
158 gSavedSettings.setF32("AudioLevelMic", mMicVolume);
159 LLSlider* volume_slider = getChild<LLSlider>("mic_volume_slider");
160 if(volume_slider)
161 {
162 volume_slider->setValue(mMicVolume);
163 }
152} 164}
153 165
154void LLPanelVoiceDeviceSettings::refresh() 166void LLPanelVoiceDeviceSettings::refresh()
@@ -156,8 +168,8 @@ void LLPanelVoiceDeviceSettings::refresh()
156 //grab current volume 168 //grab current volume
157 LLSlider* volume_slider = getChild<LLSlider>("mic_volume_slider"); 169 LLSlider* volume_slider = getChild<LLSlider>("mic_volume_slider");
158 // set mic volume tuning slider based on last mic volume setting 170 // set mic volume tuning slider based on last mic volume setting
159 mMicVolume = (F32)volume_slider->getValue().asReal(); 171 F32 current_volume = (F32)volume_slider->getValue().asReal();
160 gVoiceClient->tuningSetMicVolume(mMicVolume); 172 gVoiceClient->tuningSetMicVolume(current_volume);
161 173
162 // Fill in popup menus 174 // Fill in popup menus
163 mCtrlInputDevices = getChild<LLComboBox>("voice_input_device"); 175 mCtrlInputDevices = getChild<LLComboBox>("voice_input_device");
@@ -247,13 +259,19 @@ void LLPanelVoiceDeviceSettings::onClose(bool app_quitting)
247// static 259// static
248void LLPanelVoiceDeviceSettings::onCommitInputDevice(LLUICtrl* ctrl, void* user_data) 260void LLPanelVoiceDeviceSettings::onCommitInputDevice(LLUICtrl* ctrl, void* user_data)
249{ 261{
250 gSavedSettings.setString("VoiceInputAudioDevice", ctrl->getValue().asString()); 262 if(gVoiceClient)
263 {
264 gVoiceClient->setCaptureDevice(ctrl->getValue().asString());
265 }
251} 266}
252 267
253// static 268// static
254void LLPanelVoiceDeviceSettings::onCommitOutputDevice(LLUICtrl* ctrl, void* user_data) 269void LLPanelVoiceDeviceSettings::onCommitOutputDevice(LLUICtrl* ctrl, void* user_data)
255{ 270{
256 gSavedSettings.setString("VoiceOutputAudioDevice", ctrl->getValue().asString()); 271 if(gVoiceClient)
272 {
273 gVoiceClient->setRenderDevice(ctrl->getValue().asString());
274 }
257} 275}
258 276
259// 277//
diff --git a/linden/indra/newview/llfloatervoicedevicesettings.h b/linden/indra/newview/llfloatervoicedevicesettings.h
index eba5c3c..8e316f0 100644
--- a/linden/indra/newview/llfloatervoicedevicesettings.h
+++ b/linden/indra/newview/llfloatervoicedevicesettings.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2001&license=viewergpl$ 6 * $LicenseInfo:firstyear=2001&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2001-2008, Linden Research, Inc. 8 * Copyright (c) 2001-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterwater.cpp b/linden/indra/newview/llfloaterwater.cpp
index 025562a..c42b12b 100644
--- a/linden/indra/newview/llfloaterwater.cpp
+++ b/linden/indra/newview/llfloaterwater.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterwater.h b/linden/indra/newview/llfloaterwater.h
index 3fa4c09..5c1fced 100644
--- a/linden/indra/newview/llfloaterwater.h
+++ b/linden/indra/newview/llfloaterwater.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterwindlight.cpp b/linden/indra/newview/llfloaterwindlight.cpp
index f0d5480..37cd4ef 100644
--- a/linden/indra/newview/llfloaterwindlight.cpp
+++ b/linden/indra/newview/llfloaterwindlight.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterwindlight.h b/linden/indra/newview/llfloaterwindlight.h
index 94373ca..3e5556b 100644
--- a/linden/indra/newview/llfloaterwindlight.h
+++ b/linden/indra/newview/llfloaterwindlight.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterworldmap.cpp b/linden/indra/newview/llfloaterworldmap.cpp
index 8396454..3e35151 100644
--- a/linden/indra/newview/llfloaterworldmap.cpp
+++ b/linden/indra/newview/llfloaterworldmap.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2003&license=viewergpl$ 6 * $LicenseInfo:firstyear=2003&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2003-2008, Linden Research, Inc. 8 * Copyright (c) 2003-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfloaterworldmap.h b/linden/indra/newview/llfloaterworldmap.h
index e2f2479..568d3cc 100644
--- a/linden/indra/newview/llfloaterworldmap.h
+++ b/linden/indra/newview/llfloaterworldmap.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfolderview.cpp b/linden/indra/newview/llfolderview.cpp
index 4ef52f0..70c4ead 100644
--- a/linden/indra/newview/llfolderview.cpp
+++ b/linden/indra/newview/llfolderview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -821,7 +821,7 @@ void LLFolderViewItem::draw()
821 // mShowSingleSelection is FALSE 821 // mShowSingleSelection is FALSE
822 if( mIsSelected ) 822 if( mIsSelected )
823 { 823 {
824 LLGLSNoTexture gls_no_texture; 824 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
825 LLColor4 bg_color = sHighlightBgColor; 825 LLColor4 bg_color = sHighlightBgColor;
826 //const S32 TRAILING_PAD = 5; // It just looks better with this. 826 //const S32 TRAILING_PAD = 5; // It just looks better with this.
827 if (!mIsCurSelection) 827 if (!mIsCurSelection)
@@ -876,7 +876,7 @@ void LLFolderViewItem::draw()
876 } 876 }
877 if (mDragAndDropTarget) 877 if (mDragAndDropTarget)
878 { 878 {
879 LLGLSNoTexture gls_no_texture; 879 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
880 gl_rect_2d( 880 gl_rect_2d(
881 0, 881 0,
882 getRect().getHeight(), 882 getRect().getHeight(),
diff --git a/linden/indra/newview/llfolderview.h b/linden/indra/newview/llfolderview.h
index b668015..3c350d4 100644
--- a/linden/indra/newview/llfolderview.h
+++ b/linden/indra/newview/llfolderview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfollowcam.cpp b/linden/indra/newview/llfollowcam.cpp
index 4943e08..40094dc 100644
--- a/linden/indra/newview/llfollowcam.cpp
+++ b/linden/indra/newview/llfollowcam.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2005&license=viewergpl$ 6 * $LicenseInfo:firstyear=2005&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2005-2008, Linden Research, Inc. 8 * Copyright (c) 2005-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llfollowcam.h b/linden/indra/newview/llfollowcam.h
index fe68cd9..92f56f6 100644
--- a/linden/indra/newview/llfollowcam.h
+++ b/linden/indra/newview/llfollowcam.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2005&license=viewergpl$ 6 * $LicenseInfo:firstyear=2005&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2005-2008, Linden Research, Inc. 8 * Copyright (c) 2005-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llframestats.cpp b/linden/indra/newview/llframestats.cpp
index 537753e..9735a17 100644
--- a/linden/indra/newview/llframestats.cpp
+++ b/linden/indra/newview/llframestats.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llframestats.h b/linden/indra/newview/llframestats.h
index dde443f..5c982d3 100644
--- a/linden/indra/newview/llframestats.h
+++ b/linden/indra/newview/llframestats.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llframestatview.cpp b/linden/indra/newview/llframestatview.cpp
index 752c6c4..7271faf 100644
--- a/linden/indra/newview/llframestatview.cpp
+++ b/linden/indra/newview/llframestatview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -98,7 +98,7 @@ void LLFrameStatView::draw()
98 S32 j; 98 S32 j;
99 LLStat *statp; 99 LLStat *statp;
100 100
101 LLGLSNoTexture gls_no_texture; 101 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
102 102
103 statp = mStats[0]; 103 statp = mStats[0];
104 if (!statp) 104 if (!statp)
@@ -159,7 +159,7 @@ void LLFrameStatView::draw()
159 for (i = 0; i < mNumStats; i++) 159 for (i = 0; i < mNumStats; i++)
160 { 160 {
161 // Draw the color key. 161 // Draw the color key.
162 LLGLSNoTexture gls_no_texture; 162 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
163 gl_rect_2d(left, top - 2, left + 10, top - 12, mColors[i]); 163 gl_rect_2d(left, top - 2, left + 10, top - 12, mColors[i]);
164 164
165 left = left + 15; 165 left = left + 15;
@@ -203,7 +203,7 @@ void LLFrameStatView::draw()
203 bottom = bottom - 4; 203 bottom = bottom - 4;
204 for (tick_value = 0; tick_value <= 100; tick_value += 20) 204 for (tick_value = 0; tick_value <= 100; tick_value += 20)
205 { 205 {
206 LLGLSNoTexture gls_no_texture; 206 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
207 left = 10 + llfloor(tick_value*(total_width/100.f)); 207 left = 10 + llfloor(tick_value*(total_width/100.f));
208 right = left + 1; 208 right = left + 1;
209 gl_rect_2d(left, top, right, bottom, LLColor4(1.f, 1.f, 1.f, 0.2f)); 209 gl_rect_2d(left, top, right, bottom, LLColor4(1.f, 1.f, 1.f, 0.2f));
@@ -253,7 +253,7 @@ void LLFrameStatView::draw()
253 bottom = top - graph_height - 4; 253 bottom = top - graph_height - 4;
254 for (tick_value = 0; tick_value <= 100; tick_value += 20) 254 for (tick_value = 0; tick_value <= 100; tick_value += 20)
255 { 255 {
256 LLGLSNoTexture gls_no_texture; 256 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
257 left = 10 + llfloor(tick_value*(total_width/100.f)); 257 left = 10 + llfloor(tick_value*(total_width/100.f));
258 right = left + 1; 258 right = left + 1;
259 gl_rect_2d(left, top, right, bottom, LLColor4(1.f, 1.f, 1.f, 0.25f)); 259 gl_rect_2d(left, top, right, bottom, LLColor4(1.f, 1.f, 1.f, 0.25f));
@@ -278,7 +278,7 @@ void LLFrameStatView::draw()
278 bottom = top - graph_height - 4; 278 bottom = top - graph_height - 4;
279 for (tick_value = 0; tick_value <= mTotalTime; tick_value += mLabelSpacing) 279 for (tick_value = 0; tick_value <= mTotalTime; tick_value += mLabelSpacing)
280 { 280 {
281 LLGLSNoTexture gls_no_texture; 281 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
282 left = 10 + llfloor(tick_value*time_scale); 282 left = 10 + llfloor(tick_value*time_scale);
283 right = left + 1; 283 right = left + 1;
284 gl_rect_2d(left, top, right, bottom, LLColor4(1.f, 1.f, 1.f, 0.25f)); 284 gl_rect_2d(left, top, right, bottom, LLColor4(1.f, 1.f, 1.f, 0.25f));
diff --git a/linden/indra/newview/llframestatview.h b/linden/indra/newview/llframestatview.h
index 2491a83..95cf4cc 100644
--- a/linden/indra/newview/llframestatview.h
+++ b/linden/indra/newview/llframestatview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llgenepool.cpp b/linden/indra/newview/llgenepool.cpp
index a427af6..588a383 100644
--- a/linden/indra/newview/llgenepool.cpp
+++ b/linden/indra/newview/llgenepool.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llgenepool.h b/linden/indra/newview/llgenepool.h
index 53d969e..e4200eb 100644
--- a/linden/indra/newview/llgenepool.h
+++ b/linden/indra/newview/llgenepool.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llgesturemgr.cpp b/linden/indra/newview/llgesturemgr.cpp
index 06c8a66..a8e152c 100644
--- a/linden/indra/newview/llgesturemgr.cpp
+++ b/linden/indra/newview/llgesturemgr.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llgesturemgr.h b/linden/indra/newview/llgesturemgr.h
index b1e6555..05ed4f1 100644
--- a/linden/indra/newview/llgesturemgr.h
+++ b/linden/indra/newview/llgesturemgr.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llgivemoney.cpp b/linden/indra/newview/llgivemoney.cpp
index 82fead1..85ff295 100644
--- a/linden/indra/newview/llgivemoney.cpp
+++ b/linden/indra/newview/llgivemoney.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2002&license=viewergpl$ 6 * $LicenseInfo:firstyear=2002&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2002-2008, Linden Research, Inc. 8 * Copyright (c) 2002-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llgivemoney.h b/linden/indra/newview/llgivemoney.h
index b3cf556..ad06075 100644
--- a/linden/indra/newview/llgivemoney.h
+++ b/linden/indra/newview/llgivemoney.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llglsandbox.cpp b/linden/indra/newview/llglsandbox.cpp
index 45f674d..7506004 100644
--- a/linden/indra/newview/llglsandbox.cpp
+++ b/linden/indra/newview/llglsandbox.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -142,7 +142,7 @@ void LLAgent::renderAutoPilotTarget()
142 gGL.pushMatrix(); 142 gGL.pushMatrix();
143 143
144 // not textured 144 // not textured
145 LLGLSNoTexture no_texture; 145 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
146 146
147 // lovely green 147 // lovely green
148 glColor4f(0.f, 1.f, 1.f, 1.f); 148 glColor4f(0.f, 1.f, 1.f, 1.f);
@@ -355,10 +355,11 @@ void LLCompass::draw()
355 355
356 if (mBkgndTexture) 356 if (mBkgndTexture)
357 { 357 {
358 mBkgndTexture->bind(); 358 gGL.getTexUnit(0)->bind(mBkgndTexture.get());
359
359 gGL.color4f(1.0f, 1.0f, 1.0f, 1.0f); 360 gGL.color4f(1.0f, 1.0f, 1.0f, 1.0f);
360 361
361 gGL.begin(LLVertexBuffer::QUADS); 362 gGL.begin(LLRender::QUADS);
362 363
363 gGL.texCoord2f(1.f, 1.f); 364 gGL.texCoord2f(1.f, 1.f);
364 gGL.vertex2i(width, height); 365 gGL.vertex2i(width, height);
@@ -381,10 +382,10 @@ void LLCompass::draw()
381 382
382 if (mTexture) 383 if (mTexture)
383 { 384 {
384 mTexture->bind(); 385 gGL.getTexUnit(0)->bind(mTexture.get());
385 gGL.color4f(1.0f, 1.0f, 1.0f, 1.0f); 386 gGL.color4f(1.0f, 1.0f, 1.0f, 1.0f);
386 387
387 gGL.begin(LLVertexBuffer::QUADS); 388 gGL.begin(LLRender::QUADS);
388 389
389 gGL.texCoord2f(1.f, 1.f); 390 gGL.texCoord2f(1.f, 1.f);
390 gGL.vertex2i(width, height); 391 gGL.vertex2i(width, height);
@@ -426,9 +427,9 @@ void LLHorizontalCompass::draw()
426 F32 left = center - COMPASS_RANGE; 427 F32 left = center - COMPASS_RANGE;
427 F32 right = center + COMPASS_RANGE; 428 F32 right = center + COMPASS_RANGE;
428 429
429 mTexture->bind(); 430 gGL.getTexUnit(0)->bind(mTexture.get());
430 gGL.color4f(1.0f, 1.0f, 1.0f, 1.0f ); 431 gGL.color4f(1.0f, 1.0f, 1.0f, 1.0f );
431 gGL.begin( LLVertexBuffer::QUADS ); 432 gGL.begin( LLRender::QUADS );
432 433
433 gGL.texCoord2f(right, 1.f); 434 gGL.texCoord2f(right, 1.f);
434 gGL.vertex2i(width, height); 435 gGL.vertex2i(width, height);
@@ -447,7 +448,7 @@ void LLHorizontalCompass::draw()
447 448
448 // Draw the focus line 449 // Draw the focus line
449 { 450 {
450 LLGLSNoTexture gls_no_texture; 451 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
451 gGL.color4fv( mFocusColor.mV ); 452 gGL.color4fv( mFocusColor.mV );
452 gl_line_2d( half_width, 0, half_width, height ); 453 gl_line_2d( half_width, 0, half_width, height );
453 } 454 }
@@ -465,7 +466,7 @@ void LLWind::renderVectors()
465 466
466 F32 region_width_meters = LLWorld::getInstance()->getRegionWidthInMeters(); 467 F32 region_width_meters = LLWorld::getInstance()->getRegionWidthInMeters();
467 468
468 LLGLSNoTexture gls_no_texture; 469 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
469 gGL.pushMatrix(); 470 gGL.pushMatrix();
470 LLVector3 origin_agent; 471 LLVector3 origin_agent;
471 origin_agent = gAgent.getPosAgentFromGlobal(mOriginGlobal); 472 origin_agent = gAgent.getPosAgentFromGlobal(mOriginGlobal);
@@ -479,11 +480,11 @@ void LLWind::renderVectors()
479 gGL.pushMatrix(); 480 gGL.pushMatrix();
480 gGL.translatef((F32)i * region_width_meters/mSize, (F32)j * region_width_meters/mSize, 0.0); 481 gGL.translatef((F32)i * region_width_meters/mSize, (F32)j * region_width_meters/mSize, 0.0);
481 gGL.color3f(0,1,0); 482 gGL.color3f(0,1,0);
482 gGL.begin(LLVertexBuffer::POINTS); 483 gGL.begin(LLRender::POINTS);
483 gGL.vertex3f(0,0,0); 484 gGL.vertex3f(0,0,0);
484 gGL.end(); 485 gGL.end();
485 gGL.color3f(1,0,0); 486 gGL.color3f(1,0,0);
486 gGL.begin(LLVertexBuffer::LINES); 487 gGL.begin(LLRender::LINES);
487 gGL.vertex3f(x * 0.1f, y * 0.1f ,0.f); 488 gGL.vertex3f(x * 0.1f, y * 0.1f ,0.f);
488 gGL.vertex3f(x, y, 0.f); 489 gGL.vertex3f(x, y, 0.f);
489 gGL.end(); 490 gGL.end();
@@ -501,7 +502,7 @@ void LLViewerParcelMgr::renderRect(const LLVector3d &west_south_bottom_global,
501 const LLVector3d &east_north_top_global ) 502 const LLVector3d &east_north_top_global )
502{ 503{
503 LLGLSUIDefault gls_ui; 504 LLGLSUIDefault gls_ui;
504 LLGLSNoTexture gls_no_texture; 505 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
505 LLGLDepthTest gls_depth(GL_TRUE); 506 LLGLDepthTest gls_depth(GL_TRUE);
506 507
507 LLVector3 west_south_bottom_agent = gAgent.getPosAgentFromGlobal(west_south_bottom_global); 508 LLVector3 west_south_bottom_agent = gAgent.getPosAgentFromGlobal(west_south_bottom_global);
@@ -532,7 +533,7 @@ void LLViewerParcelMgr::renderRect(const LLVector3d &west_south_bottom_global,
532 gGL.color4f(1.f, 1.f, 0.f, 1.f); 533 gGL.color4f(1.f, 1.f, 0.f, 1.f);
533 534
534 // Cheat and give this the same pick-name as land 535 // Cheat and give this the same pick-name as land
535 gGL.begin(LLVertexBuffer::LINES); 536 gGL.begin(LLRender::LINES);
536 537
537 gGL.vertex3f(west, north, nw_bottom); 538 gGL.vertex3f(west, north, nw_bottom);
538 gGL.vertex3f(west, north, nw_top); 539 gGL.vertex3f(west, north, nw_top);
@@ -549,7 +550,7 @@ void LLViewerParcelMgr::renderRect(const LLVector3d &west_south_bottom_global,
549 gGL.end(); 550 gGL.end();
550 551
551 gGL.color4f(1.f, 1.f, 0.f, 0.2f); 552 gGL.color4f(1.f, 1.f, 0.f, 0.2f);
552 gGL.begin(LLVertexBuffer::QUADS); 553 gGL.begin(LLRender::QUADS);
553 554
554 gGL.vertex3f(west, north, nw_bottom); 555 gGL.vertex3f(west, north, nw_bottom);
555 gGL.vertex3f(west, north, nw_top); 556 gGL.vertex3f(west, north, nw_top);
@@ -609,14 +610,14 @@ void LLViewerParcelMgr::renderParcel(LLParcel* parcel )
609 F32 ne_top = ne_bottom + POST_HEIGHT; 610 F32 ne_top = ne_bottom + POST_HEIGHT;
610 F32 nw_top = nw_bottom + POST_HEIGHT; 611 F32 nw_top = nw_bottom + POST_HEIGHT;
611 612
612 LLGLSNoTexture gls_no_texture; 613 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
613 LLGLDepthTest gls_depth(GL_TRUE); 614 LLGLDepthTest gls_depth(GL_TRUE);
614 615
615 LLUI::setLineWidth(2.f); 616 LLUI::setLineWidth(2.f);
616 gGL.color4f(0.f, 1.f, 1.f, 1.f); 617 gGL.color4f(0.f, 1.f, 1.f, 1.f);
617 618
618 // Cheat and give this the same pick-name as land 619 // Cheat and give this the same pick-name as land
619 gGL.begin(LLVertexBuffer::LINES); 620 gGL.begin(LLRender::LINES);
620 621
621 gGL.vertex3f(west, north, nw_bottom); 622 gGL.vertex3f(west, north, nw_bottom);
622 gGL.vertex3f(west, north, nw_top); 623 gGL.vertex3f(west, north, nw_top);
@@ -633,7 +634,7 @@ void LLViewerParcelMgr::renderParcel(LLParcel* parcel )
633 gGL.end(); 634 gGL.end();
634 635
635 gGL.color4f(0.f, 1.f, 1.f, 0.2f); 636 gGL.color4f(0.f, 1.f, 1.f, 0.2f);
636 gGL.begin(LLVertexBuffer::QUADS); 637 gGL.begin(LLRender::QUADS);
637 638
638 gGL.vertex3f(west, north, nw_bottom); 639 gGL.vertex3f(west, north, nw_bottom);
639 gGL.vertex3f(west, north, nw_top); 640 gGL.vertex3f(west, north, nw_top);
@@ -759,7 +760,7 @@ void LLViewerParcelMgr::renderHighlightSegments(const U8* segments, LLViewerRegi
759 bool has_segments = false; 760 bool has_segments = false;
760 761
761 LLGLSUIDefault gls_ui; 762 LLGLSUIDefault gls_ui;
762 LLGLSNoTexture gls_no_texture; 763 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
763 LLGLDepthTest gls_depth(GL_TRUE); 764 LLGLDepthTest gls_depth(GL_TRUE);
764 765
765 gGL.color4f(1.f, 1.f, 0.f, 0.2f); 766 gGL.color4f(1.f, 1.f, 0.f, 0.2f);
@@ -786,7 +787,7 @@ void LLViewerParcelMgr::renderHighlightSegments(const U8* segments, LLViewerRegi
786 if (!has_segments) 787 if (!has_segments)
787 { 788 {
788 has_segments = true; 789 has_segments = true;
789 gGL.begin(LLVertexBuffer::QUADS); 790 gGL.begin(LLRender::QUADS);
790 } 791 }
791 renderOneSegment(x1, y1, x2, y2, PARCEL_POST_HEIGHT, SOUTH_MASK, regionp); 792 renderOneSegment(x1, y1, x2, y2, PARCEL_POST_HEIGHT, SOUTH_MASK, regionp);
792 } 793 }
@@ -802,7 +803,7 @@ void LLViewerParcelMgr::renderHighlightSegments(const U8* segments, LLViewerRegi
802 if (!has_segments) 803 if (!has_segments)
803 { 804 {
804 has_segments = true; 805 has_segments = true;
805 gGL.begin(LLVertexBuffer::QUADS); 806 gGL.begin(LLRender::QUADS);
806 } 807 }
807 renderOneSegment(x1, y1, x2, y2, PARCEL_POST_HEIGHT, WEST_MASK, regionp); 808 renderOneSegment(x1, y1, x2, y2, PARCEL_POST_HEIGHT, WEST_MASK, regionp);
808 } 809 }
@@ -850,14 +851,14 @@ void LLViewerParcelMgr::renderCollisionSegments(U8* segments, BOOL use_pass, LLV
850 851
851 if (use_pass && (mCollisionBanned == BA_NOT_ON_LIST)) 852 if (use_pass && (mCollisionBanned == BA_NOT_ON_LIST))
852 { 853 {
853 LLViewerImage::bindTexture(mPassImage); 854 gGL.getTexUnit(0)->bind(mPassImage);
854 } 855 }
855 else 856 else
856 { 857 {
857 LLViewerImage::bindTexture(mBlockedImage); 858 gGL.getTexUnit(0)->bind(mBlockedImage);
858 } 859 }
859 860
860 gGL.begin(LLVertexBuffer::QUADS); 861 gGL.begin(LLRender::QUADS);
861 862
862 for (y = 0; y < STRIDE; y++) 863 for (y = 0; y < STRIDE; y++)
863 { 864 {
@@ -1011,10 +1012,10 @@ void LLViewerObjectList::renderObjectBeacons()
1011 LLGLSUIDefault gls_ui; 1012 LLGLSUIDefault gls_ui;
1012 1013
1013 { 1014 {
1014 LLGLSNoTexture gls_ui_no_texture; 1015 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1015 1016
1016 S32 last_line_width = -1; 1017 S32 last_line_width = -1;
1017 // gGL.begin(LLVertexBuffer::LINES); // Always happens in (line_width != last_line_width) 1018 // gGL.begin(LLRender::LINES); // Always happens in (line_width != last_line_width)
1018 1019
1019 for (S32 i = 0; i < mDebugBeacons.count(); i++) 1020 for (S32 i = 0; i < mDebugBeacons.count(); i++)
1020 { 1021 {
@@ -1031,7 +1032,7 @@ void LLViewerObjectList::renderObjectBeacons()
1031 } 1032 }
1032 glLineWidth( (F32)line_width ); 1033 glLineWidth( (F32)line_width );
1033 last_line_width = line_width; 1034 last_line_width = line_width;
1034 gGL.begin(LLVertexBuffer::LINES); 1035 gGL.begin(LLRender::LINES);
1035 } 1036 }
1036 1037
1037 const LLVector3 &thisline = debug_beacon.mPositionAgent; 1038 const LLVector3 &thisline = debug_beacon.mPositionAgent;
@@ -1049,11 +1050,11 @@ void LLViewerObjectList::renderObjectBeacons()
1049 } 1050 }
1050 1051
1051 { 1052 {
1052 LLGLSNoTexture gls_ui_no_texture; 1053 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1053 LLGLDepthTest gls_depth(GL_TRUE); 1054 LLGLDepthTest gls_depth(GL_TRUE);
1054 1055
1055 S32 last_line_width = -1; 1056 S32 last_line_width = -1;
1056 // gGL.begin(LLVertexBuffer::LINES); // Always happens in (line_width != last_line_width) 1057 // gGL.begin(LLRender::LINES); // Always happens in (line_width != last_line_width)
1057 1058
1058 for (S32 i = 0; i < mDebugBeacons.count(); i++) 1059 for (S32 i = 0; i < mDebugBeacons.count(); i++)
1059 { 1060 {
@@ -1069,7 +1070,7 @@ void LLViewerObjectList::renderObjectBeacons()
1069 } 1070 }
1070 glLineWidth( (F32)line_width ); 1071 glLineWidth( (F32)line_width );
1071 last_line_width = line_width; 1072 last_line_width = line_width;
1072 gGL.begin(LLVertexBuffer::LINES); 1073 gGL.begin(LLRender::LINES);
1073 } 1074 }
1074 1075
1075 const LLVector3 &thisline = debug_beacon.mPositionAgent; 1076 const LLVector3 &thisline = debug_beacon.mPositionAgent;
diff --git a/linden/indra/newview/llgroupmgr.cpp b/linden/indra/newview/llgroupmgr.cpp
index 30b7cbd..1a04ae5 100644
--- a/linden/indra/newview/llgroupmgr.cpp
+++ b/linden/indra/newview/llgroupmgr.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -52,6 +52,7 @@
52#include "llfloaterdirectory.h" 52#include "llfloaterdirectory.h"
53#include "llfloatergroupinfo.h" 53#include "llfloatergroupinfo.h"
54#include "lluictrlfactory.h" 54#include "lluictrlfactory.h"
55#include <boost/regex.hpp>
55 56
56 57
57const U32 MAX_CACHED_GROUPS = 10; 58const U32 MAX_CACHED_GROUPS = 10;
@@ -791,6 +792,20 @@ LLGroupMgrGroupData* LLGroupMgr::getGroupData(const LLUUID& id)
791 return NULL; 792 return NULL;
792} 793}
793 794
795// Helper function for LLGroupMgr::processGroupMembersReply
796// This reformats date strings from MM/DD/YYYY to YYYY/MM/DD ( e.g. 1/27/2008 -> 2008/1/27 )
797// so that the sorter can sort by year before month before day.
798static void formatDateString(std::string &date_string)
799{
800 using namespace boost;
801 cmatch result;
802 const regex expression("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})");
803 if (regex_match(date_string.c_str(), result, expression))
804 {
805 date_string = result[3]+"/"+result[1]+"/"+result[2];
806 }
807}
808
794// static 809// static
795void LLGroupMgr::processGroupMembersReply(LLMessageSystem* msg, void** data) 810void LLGroupMgr::processGroupMembersReply(LLMessageSystem* msg, void** data)
796{ 811{
@@ -840,6 +855,8 @@ void LLGroupMgr::processGroupMembersReply(LLMessageSystem* msg, void** data)
840 855
841 if (member_id.notNull()) 856 if (member_id.notNull())
842 { 857 {
858 formatDateString(online_status); // reformat for sorting, e.g. 12/25/2008 -> 2008/12/25
859
843 //llinfos << "Member " << member_id << " has powers " << std::hex << agent_powers << std::dec << llendl; 860 //llinfos << "Member " << member_id << " has powers " << std::hex << agent_powers << std::dec << llendl;
844 LLGroupMemberData* newdata = new LLGroupMemberData(member_id, 861 LLGroupMemberData* newdata = new LLGroupMemberData(member_id,
845 contribution, 862 contribution,
diff --git a/linden/indra/newview/llgroupmgr.h b/linden/indra/newview/llgroupmgr.h
index 4950b66..4eb4033 100644
--- a/linden/indra/newview/llgroupmgr.h
+++ b/linden/indra/newview/llgroupmgr.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llgroupnotify.cpp b/linden/indra/newview/llgroupnotify.cpp
index eafa06c..37897eb 100644
--- a/linden/indra/newview/llgroupnotify.cpp
+++ b/linden/indra/newview/llgroupnotify.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llgroupnotify.h b/linden/indra/newview/llgroupnotify.h
index 7befdf4..82f8a07 100644
--- a/linden/indra/newview/llgroupnotify.h
+++ b/linden/indra/newview/llgroupnotify.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhomelocationresponder.cpp b/linden/indra/newview/llhomelocationresponder.cpp
new file mode 100644
index 0000000..58ea684
--- /dev/null
+++ b/linden/indra/newview/llhomelocationresponder.cpp
@@ -0,0 +1,108 @@
1/**
2 * @file llhomelocationresponder.cpp
3 * @author Meadhbh Hamrick
4 * @brief Processes responses to the HomeLocation CapReq
5 *
6 * $LicenseInfo:firstyear=2008&license=viewergpl$
7 *
8 * Copyright (c) 2008-2009, Linden Research, Inc.
9 *
10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab
12 * to you under the terms of the GNU General Public License, version 2.0
13 * ("GPL"), unless you have obtained a separate licensing agreement
14 * ("Other License"), formally executed by you and Linden Lab. Terms of
15 * the GPL can be found in doc/GPL-license.txt in this distribution, or
16 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
17 *
18 * There are special exceptions to the terms and conditions of the GPL as
19 * it is applied to this Source Code. View the full text of the exception
20 * in the file doc/FLOSS-exception.txt in this software distribution, or
21 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
22 *
23 * By copying, modifying or distributing this software, you acknowledge
24 * that you have read and understood your obligations described above,
25 * and agree to abide by those obligations.
26 *
27 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
28 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
29 * COMPLETENESS OR PERFORMANCE.
30 * $/LicenseInfo$
31 */
32
33/* File Inclusions */
34#include "llviewerprecompiledheaders.h"
35
36#include "llhomelocationresponder.h"
37#include "llsdutil.h"
38#include "llagent.h"
39#include "llviewerregion.h"
40
41void LLHomeLocationResponder::result( const LLSD& content )
42{
43 LLVector3 agent_pos;
44 bool error = true;
45
46 do {
47
48 // was the call to /agent/<agent-id>/home-location successful?
49 // If not, we keep error set to true
50 if( ! content.has("success") )
51 {
52 break;
53 }
54
55 if( 0 != strncmp("true", content["success"].asString().c_str(), 4 ) )
56 {
57 break;
58 }
59
60 // did the simulator return a "justified" home location?
61 // If no, we keep error set to true
62 if( ! content.has( "HomeLocation" ) )
63 {
64 break;
65 }
66
67 if( ! content["HomeLocation"].has("LocationPos") )
68 {
69 break;
70 }
71
72 if( ! content["HomeLocation"]["LocationPos"].has("X") )
73 {
74 break;
75 }
76
77 agent_pos.mV[VX] = content["HomeLocation"]["LocationPos"]["X"].asInteger();
78
79 if( ! content["HomeLocation"]["LocationPos"].has("Y") )
80 {
81 break;
82 }
83
84 agent_pos.mV[VY] = content["HomeLocation"]["LocationPos"]["Y"].asInteger();
85
86 if( ! content["HomeLocation"]["LocationPos"].has("Z") )
87 {
88 break;
89 }
90
91 agent_pos.mV[VZ] = content["HomeLocation"]["LocationPos"]["Z"].asInteger();
92
93 error = false;
94 } while( 0 );
95
96 if( ! error )
97 {
98 llinfos << "setting home position" << llendl;
99
100 LLViewerRegion *viewer_region = gAgent.getRegion();
101 gAgent.setHomePosRegion( viewer_region->getHandle(), agent_pos );
102 }
103}
104
105void LLHomeLocationResponder::error( const LLSD& content )
106{
107 llinfos << "received error(" << ll_pretty_print_sd( content ) << ")" << llendl;
108}
diff --git a/linden/indra/newview/llhomelocationresponder.h b/linden/indra/newview/llhomelocationresponder.h
new file mode 100644
index 0000000..3990730
--- /dev/null
+++ b/linden/indra/newview/llhomelocationresponder.h
@@ -0,0 +1,47 @@
1/**
2 * @file llhomelocationresponder.h
3 * @author Meadhbh Hamrick
4 * @brief Processes responses to the HomeLocation CapReq
5 *
6 * $LicenseInfo:firstyear=2008&license=viewergpl$
7 *
8 * Copyright (c) 2008-2009, Linden Research, Inc.
9 *
10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab
12 * to you under the terms of the GNU General Public License, version 2.0
13 * ("GPL"), unless you have obtained a separate licensing agreement
14 * ("Other License"), formally executed by you and Linden Lab. Terms of
15 * the GPL can be found in doc/GPL-license.txt in this distribution, or
16 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
17 *
18 * There are special exceptions to the terms and conditions of the GPL as
19 * it is applied to this Source Code. View the full text of the exception
20 * in the file doc/FLOSS-exception.txt in this software distribution, or
21 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
22 *
23 * By copying, modifying or distributing this software, you acknowledge
24 * that you have read and understood your obligations described above,
25 * and agree to abide by those obligations.
26 *
27 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
28 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
29 * COMPLETENESS OR PERFORMANCE.
30 * $/LicenseInfo$
31 */
32
33 /* Macro Definitions */
34#ifndef LL_LLHOMELOCATIONRESPONDER_H
35#define LL_LLHOMELOCATIONRESPONDER_H
36
37/* File Inclusions */
38#include "llhttpclient.h"
39
40/* Typedef, Enum, Class, Struct, etc. */
41class LLHomeLocationResponder : public LLHTTPClient::Responder
42{
43 virtual void result( const LLSD& content );
44 virtual void error( const LLSD& content );
45};
46
47#endif
diff --git a/linden/indra/newview/llhoverview.cpp b/linden/indra/newview/llhoverview.cpp
index 6d0dd72..8d033b2 100644
--- a/linden/indra/newview/llhoverview.cpp
+++ b/linden/indra/newview/llhoverview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhoverview.h b/linden/indra/newview/llhoverview.h
index ff39790..c4a1857 100644
--- a/linden/indra/newview/llhoverview.h
+++ b/linden/indra/newview/llhoverview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudeffect.cpp b/linden/indra/newview/llhudeffect.cpp
index 5cc35af..340c22a 100644
--- a/linden/indra/newview/llhudeffect.cpp
+++ b/linden/indra/newview/llhudeffect.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudeffect.h b/linden/indra/newview/llhudeffect.h
index ff857cc..0bf349f 100644
--- a/linden/indra/newview/llhudeffect.h
+++ b/linden/indra/newview/llhudeffect.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudeffectbeam.cpp b/linden/indra/newview/llhudeffectbeam.cpp
index d6c38d3..4df656b 100644
--- a/linden/indra/newview/llhudeffectbeam.cpp
+++ b/linden/indra/newview/llhudeffectbeam.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -251,7 +251,7 @@ void LLHUDEffectBeam::render()
251 } 251 }
252 252
253 LLGLSPipelineAlpha gls_pipeline_alpha; 253 LLGLSPipelineAlpha gls_pipeline_alpha;
254 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 254 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
255 255
256 256
257 // Interpolate the global fade alpha 257 // Interpolate the global fade alpha
diff --git a/linden/indra/newview/llhudeffectbeam.h b/linden/indra/newview/llhudeffectbeam.h
index 8595439..f89d178 100644
--- a/linden/indra/newview/llhudeffectbeam.h
+++ b/linden/indra/newview/llhudeffectbeam.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudeffectlookat.cpp b/linden/indra/newview/llhudeffectlookat.cpp
index b5f6ec7..3a12dad 100644
--- a/linden/indra/newview/llhudeffectlookat.cpp
+++ b/linden/indra/newview/llhudeffectlookat.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -499,14 +499,14 @@ void LLHUDEffectLookAt::render()
499{ 499{
500 if (sDebugLookAt && mSourceObject.notNull()) 500 if (sDebugLookAt && mSourceObject.notNull())
501 { 501 {
502 LLGLSNoTexture gls_no_texture; 502 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
503 503
504 LLVector3 target = mTargetPos + ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->mHeadp->getWorldPosition(); 504 LLVector3 target = mTargetPos + ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->mHeadp->getWorldPosition();
505 glMatrixMode(GL_MODELVIEW); 505 glMatrixMode(GL_MODELVIEW);
506 gGL.pushMatrix(); 506 gGL.pushMatrix();
507 gGL.translatef(target.mV[VX], target.mV[VY], target.mV[VZ]); 507 gGL.translatef(target.mV[VX], target.mV[VY], target.mV[VZ]);
508 glScalef(0.3f, 0.3f, 0.3f); 508 glScalef(0.3f, 0.3f, 0.3f);
509 gGL.begin(LLVertexBuffer::LINES); 509 gGL.begin(LLRender::LINES);
510 { 510 {
511 LLColor3 color = (*mAttentions)[mTargetType].mColor; 511 LLColor3 color = (*mAttentions)[mTargetType].mColor;
512 gGL.color3f(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE]); 512 gGL.color3f(color.mV[VRED], color.mV[VGREEN], color.mV[VBLUE]);
diff --git a/linden/indra/newview/llhudeffectlookat.h b/linden/indra/newview/llhudeffectlookat.h
index 918805d..231e44f 100644
--- a/linden/indra/newview/llhudeffectlookat.h
+++ b/linden/indra/newview/llhudeffectlookat.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudeffectpointat.cpp b/linden/indra/newview/llhudeffectpointat.cpp
index 7ab03f2..35131cc 100644
--- a/linden/indra/newview/llhudeffectpointat.cpp
+++ b/linden/indra/newview/llhudeffectpointat.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -328,13 +328,13 @@ void LLHUDEffectPointAt::render()
328 update(); 328 update();
329 if (sDebugPointAt && mTargetType != POINTAT_TARGET_NONE) 329 if (sDebugPointAt && mTargetType != POINTAT_TARGET_NONE)
330 { 330 {
331 LLGLSNoTexture gls_no_texture; 331 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
332 332
333 LLVector3 target = mTargetPos + mSourceObject->getRenderPosition(); 333 LLVector3 target = mTargetPos + mSourceObject->getRenderPosition();
334 gGL.pushMatrix(); 334 gGL.pushMatrix();
335 gGL.translatef(target.mV[VX], target.mV[VY], target.mV[VZ]); 335 gGL.translatef(target.mV[VX], target.mV[VY], target.mV[VZ]);
336 glScalef(0.3f, 0.3f, 0.3f); 336 glScalef(0.3f, 0.3f, 0.3f);
337 gGL.begin(LLVertexBuffer::LINES); 337 gGL.begin(LLRender::LINES);
338 { 338 {
339 gGL.color3f(1.f, 0.f, 0.f); 339 gGL.color3f(1.f, 0.f, 0.f);
340 gGL.vertex3f(-1.f, 0.f, 0.f); 340 gGL.vertex3f(-1.f, 0.f, 0.f);
@@ -441,8 +441,10 @@ bool LLHUDEffectPointAt::calcTargetPosition()
441 441
442 mTargetPos -= mSourceObject->getRenderPosition(); 442 mTargetPos -= mSourceObject->getRenderPosition();
443 443
444 if (!mTargetPos.isFinite()) 444 if (!llfinite(mTargetPos.lengthSquared()))
445 {
445 return false; 446 return false;
447 }
446 448
447 if (mSourceObject->isAvatar()) 449 if (mSourceObject->isAvatar())
448 { 450 {
diff --git a/linden/indra/newview/llhudeffectpointat.h b/linden/indra/newview/llhudeffectpointat.h
index 8df796c..c3b72fa 100644
--- a/linden/indra/newview/llhudeffectpointat.h
+++ b/linden/indra/newview/llhudeffectpointat.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudeffecttrail.cpp b/linden/indra/newview/llhudeffecttrail.cpp
index c0ed148..3b91ee9 100644
--- a/linden/indra/newview/llhudeffecttrail.cpp
+++ b/linden/indra/newview/llhudeffecttrail.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudeffecttrail.h b/linden/indra/newview/llhudeffecttrail.h
index 3bb0f92..28707a2 100644
--- a/linden/indra/newview/llhudeffecttrail.h
+++ b/linden/indra/newview/llhudeffecttrail.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudicon.cpp b/linden/indra/newview/llhudicon.cpp
index 85cc996..bfc88de 100644
--- a/linden/indra/newview/llhudicon.cpp
+++ b/linden/indra/newview/llhudicon.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -86,7 +86,7 @@ void LLHUDIcon::renderIcon(BOOL for_select)
86 LLGLDepthTest gls_depth(GL_TRUE); 86 LLGLDepthTest gls_depth(GL_TRUE);
87 if (for_select) 87 if (for_select)
88 { 88 {
89 LLViewerImage::unbindTexture(0); 89 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
90 } 90 }
91 91
92 if (mHidden) 92 if (mHidden)
@@ -163,10 +163,10 @@ void LLHUDIcon::renderIcon(BOOL for_select)
163 LLColor4 icon_color = LLColor4::white; 163 LLColor4 icon_color = LLColor4::white;
164 icon_color.mV[VALPHA] = alpha_factor; 164 icon_color.mV[VALPHA] = alpha_factor;
165 gGL.color4fv(icon_color.mV); 165 gGL.color4fv(icon_color.mV);
166 LLViewerImage::bindTexture(mImagep); 166 gGL.getTexUnit(0)->bind(mImagep.get());
167 } 167 }
168 168
169 gGL.begin(LLVertexBuffer::QUADS); 169 gGL.begin(LLRender::QUADS);
170 { 170 {
171 gGL.texCoord2f(0.f, 1.f); 171 gGL.texCoord2f(0.f, 1.f);
172 gGL.vertex3fv(upper_left.mV); 172 gGL.vertex3fv(upper_left.mV);
@@ -210,6 +210,80 @@ void LLHUDIcon::renderForSelect()
210 renderIcon(TRUE); 210 renderIcon(TRUE);
211} 211}
212 212
213BOOL LLHUDIcon::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, LLVector3* intersection)
214{
215 if (mHidden)
216 return FALSE;
217
218 if (mSourceObject.isNull() || mImagep.isNull())
219 {
220 markDead();
221 return FALSE;
222 }
223
224 LLVector3 obj_position = mSourceObject->getRenderPosition();
225
226 // put icon above object, and in front
227 // RN: don't use drawable radius, it's fricking HUGE
228 LLVector3 icon_relative_pos = (LLViewerCamera::getInstance()->getUpAxis() * ~mSourceObject->getRenderRotation());
229 icon_relative_pos.abs();
230
231 F32 distance_scale = llmin(mSourceObject->getScale().mV[VX] / icon_relative_pos.mV[VX],
232 mSourceObject->getScale().mV[VY] / icon_relative_pos.mV[VY],
233 mSourceObject->getScale().mV[VZ] / icon_relative_pos.mV[VZ]);
234 F32 up_distance = 0.5f * distance_scale;
235 LLVector3 icon_position = obj_position + (up_distance * LLViewerCamera::getInstance()->getUpAxis()) * 1.2f;
236
237 LLVector3 icon_to_cam = LLViewerCamera::getInstance()->getOrigin() - icon_position;
238 icon_to_cam.normVec();
239
240 icon_position += icon_to_cam * mSourceObject->mDrawable->getRadius() * 1.1f;
241
242 mDistance = dist_vec(icon_position, LLViewerCamera::getInstance()->getOrigin());
243
244 LLVector3 x_pixel_vec;
245 LLVector3 y_pixel_vec;
246
247 LLViewerCamera::getInstance()->getPixelVectors(icon_position, y_pixel_vec, x_pixel_vec);
248
249 F32 scale_factor = 1.f;
250 if (mAnimTimer.getElapsedTimeF32() < ANIM_TIME)
251 {
252 scale_factor = llmax(0.f, calc_bouncy_animation(mAnimTimer.getElapsedTimeF32() / ANIM_TIME));
253 }
254
255 F32 time_elapsed = mLifeTimer.getElapsedTimeF32();
256 if (time_elapsed > MAX_VISIBLE_TIME)
257 {
258 markDead();
259 return FALSE;
260 }
261
262 F32 image_aspect = (F32)mImagep->mFullWidth / (F32)mImagep->mFullHeight;
263 LLVector3 x_scale = image_aspect * (F32)gViewerWindow->getWindowHeight() * mScale * scale_factor * x_pixel_vec;
264 LLVector3 y_scale = (F32)gViewerWindow->getWindowHeight() * mScale * scale_factor * y_pixel_vec;
265
266 LLVector3 lower_left = icon_position - (x_scale * 0.5f);
267 LLVector3 lower_right = icon_position + (x_scale * 0.5f);
268 LLVector3 upper_left = icon_position - (x_scale * 0.5f) + y_scale;
269 LLVector3 upper_right = icon_position + (x_scale * 0.5f) + y_scale;
270
271
272 F32 t = 0.f;
273 LLVector3 dir = end-start;
274
275 if (LLTriangleRayIntersect(upper_right, upper_left, lower_right, start, dir, NULL, NULL, &t, FALSE) ||
276 LLTriangleRayIntersect(upper_left, lower_left, lower_right, start, dir, NULL, NULL, &t, FALSE))
277 {
278 if (intersection)
279 {
280 *intersection = start + dir*t;
281 }
282 return TRUE;
283 }
284
285 return FALSE;
286}
213 287
214//static 288//static
215S32 LLHUDIcon::generatePickIDs(S32 start_id, S32 step_size) 289S32 LLHUDIcon::generatePickIDs(S32 start_id, S32 step_size)
@@ -242,6 +316,33 @@ LLHUDIcon* LLHUDIcon::handlePick(S32 pick_id)
242 return NULL; 316 return NULL;
243} 317}
244 318
319//static
320LLHUDIcon* LLHUDIcon::lineSegmentIntersectAll(const LLVector3& start, const LLVector3& end, LLVector3* intersection)
321{
322 icon_instance_t::iterator icon_it;
323
324 LLVector3 local_end = end;
325 LLVector3 position;
326
327 LLHUDIcon* ret = NULL;
328 for(icon_it = sIconInstances.begin(); icon_it != sIconInstances.end(); ++icon_it)
329 {
330 LLHUDIcon* icon = *icon_it;
331 if (icon->lineSegmentIntersect(start, local_end, &position))
332 {
333 ret = icon;
334 if (intersection)
335 {
336 *intersection = position;
337 }
338 local_end = position;
339 }
340 }
341
342 return ret;
343}
344
345
245 //static 346 //static
246void LLHUDIcon::updateAll() 347void LLHUDIcon::updateAll()
247{ 348{
diff --git a/linden/indra/newview/llhudicon.h b/linden/indra/newview/llhudicon.h
index b879776..8cd7937 100644
--- a/linden/indra/newview/llhudicon.h
+++ b/linden/indra/newview/llhudicon.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -67,6 +67,7 @@ public:
67 67
68 static S32 generatePickIDs(S32 start_id, S32 step_size); 68 static S32 generatePickIDs(S32 start_id, S32 step_size);
69 static LLHUDIcon* handlePick(S32 pick_id); 69 static LLHUDIcon* handlePick(S32 pick_id);
70 static LLHUDIcon* lineSegmentIntersectAll(const LLVector3& start, const LLVector3& end, LLVector3* intersection);
70 71
71 static void updateAll(); 72 static void updateAll();
72 static void cleanupDeadIcons(); 73 static void cleanupDeadIcons();
@@ -77,6 +78,8 @@ public:
77 BOOL getHidden() const { return mHidden; } 78 BOOL getHidden() const { return mHidden; }
78 void setHidden( BOOL hide ) { mHidden = hide; } 79 void setHidden( BOOL hide ) { mHidden = hide; }
79 80
81 BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end, LLVector3* intersection);
82
80protected: 83protected:
81 LLHUDIcon(const U8 type); 84 LLHUDIcon(const U8 type);
82 ~LLHUDIcon(); 85 ~LLHUDIcon();
diff --git a/linden/indra/newview/llhudmanager.cpp b/linden/indra/newview/llhudmanager.cpp
index 5217893..4625802 100644
--- a/linden/indra/newview/llhudmanager.cpp
+++ b/linden/indra/newview/llhudmanager.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudmanager.h b/linden/indra/newview/llhudmanager.h
index cfe9cad..1a8d5fd 100644
--- a/linden/indra/newview/llhudmanager.h
+++ b/linden/indra/newview/llhudmanager.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudobject.cpp b/linden/indra/newview/llhudobject.cpp
index f66501c..01bfa77 100644
--- a/linden/indra/newview/llhudobject.cpp
+++ b/linden/indra/newview/llhudobject.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudobject.h b/linden/indra/newview/llhudobject.h
index 5521451..c6292fb 100644
--- a/linden/indra/newview/llhudobject.h
+++ b/linden/indra/newview/llhudobject.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudrender.cpp b/linden/indra/newview/llhudrender.cpp
index e0d47f8..299ffa4 100644
--- a/linden/indra/newview/llhudrender.cpp
+++ b/linden/indra/newview/llhudrender.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudrender.h b/linden/indra/newview/llhudrender.h
index 6e6fae2..eb52447 100644
--- a/linden/indra/newview/llhudrender.h
+++ b/linden/indra/newview/llhudrender.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudtext.cpp b/linden/indra/newview/llhudtext.cpp
index c45c284..32323dc 100644
--- a/linden/indra/newview/llhudtext.cpp
+++ b/linden/indra/newview/llhudtext.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2002&license=viewergpl$ 6 * $LicenseInfo:firstyear=2002&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2002-2008, Linden Research, Inc. 8 * Copyright (c) 2002-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -120,6 +120,111 @@ LLHUDText::~LLHUDText()
120} 120}
121 121
122 122
123BOOL LLHUDText::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, LLVector3& intersection, BOOL debug_render)
124{
125 if (!mVisible || mHidden)
126 {
127 return FALSE;
128 }
129
130 // don't pick text that isn't bound to a viewerobject or isn't in a bubble
131 if (!mSourceObject || mSourceObject->mDrawable.isNull() || !mUseBubble)
132 {
133 return FALSE;
134 }
135
136 F32 alpha_factor = 1.f;
137 LLColor4 text_color = mColor;
138 if (mDoFade)
139 {
140 if (mLastDistance > mFadeDistance)
141 {
142 alpha_factor = llmax(0.f, 1.f - (mLastDistance - mFadeDistance)/mFadeRange);
143 text_color.mV[3] = text_color.mV[3]*alpha_factor;
144 }
145 }
146 if (text_color.mV[3] < 0.01f)
147 {
148 return FALSE;
149 }
150
151 mOffsetY = lltrunc(mHeight * ((mVertAlignment == ALIGN_VERT_CENTER) ? 0.5f : 1.f));
152
153 // scale screen size of borders down
154 //RN: for now, text on hud objects is never occluded
155
156 LLVector3 x_pixel_vec;
157 LLVector3 y_pixel_vec;
158
159 if (mOnHUDAttachment)
160 {
161 x_pixel_vec = LLVector3::y_axis / (F32)gViewerWindow->getWindowWidth();
162 y_pixel_vec = LLVector3::z_axis / (F32)gViewerWindow->getWindowHeight();
163 }
164 else
165 {
166 LLViewerCamera::getInstance()->getPixelVectors(mPositionAgent, y_pixel_vec, x_pixel_vec);
167 }
168
169 LLVector3 width_vec = mWidth * x_pixel_vec;
170 LLVector3 height_vec = mHeight * y_pixel_vec;
171
172 LLCoordGL screen_pos;
173 LLViewerCamera::getInstance()->projectPosAgentToScreen(mPositionAgent, screen_pos, FALSE);
174
175 LLVector2 screen_offset;
176 screen_offset = updateScreenPos(mPositionOffset);
177
178 LLVector3 render_position = mPositionAgent
179 + (x_pixel_vec * screen_offset.mV[VX])
180 + (y_pixel_vec * screen_offset.mV[VY]);
181
182
183 if (mUseBubble)
184 {
185 LLVector3 bg_pos = render_position
186 + (F32)mOffsetY * y_pixel_vec
187 - (width_vec / 2.f)
188 - (height_vec);
189 //LLUI::translate(bg_pos.mV[VX], bg_pos.mV[VY], bg_pos.mV[VZ]);
190
191 LLVector3 v[] =
192 {
193 bg_pos,
194 bg_pos + width_vec,
195 bg_pos + width_vec + height_vec,
196 bg_pos + height_vec,
197 };
198
199 if (debug_render)
200 {
201 gGL.begin(LLRender::LINE_STRIP);
202 gGL.vertex3fv(v[0].mV);
203 gGL.vertex3fv(v[1].mV);
204 gGL.vertex3fv(v[2].mV);
205 gGL.vertex3fv(v[3].mV);
206 gGL.vertex3fv(v[0].mV);
207 gGL.vertex3fv(v[2].mV);
208 gGL.end();
209 }
210
211 LLVector3 dir = end-start;
212 F32 t = 0.f;
213
214 if (LLTriangleRayIntersect(v[0], v[1], v[2], start, dir, NULL, NULL, &t, FALSE) ||
215 LLTriangleRayIntersect(v[2], v[3], v[0], start, dir, NULL, NULL, &t, FALSE) )
216 {
217 if (t <= 1.f)
218 {
219 intersection = start + dir*t;
220 return TRUE;
221 }
222 }
223 }
224
225 return FALSE;
226}
227
123void LLHUDText::render() 228void LLHUDText::render()
124{ 229{
125 if (!mOnHUDAttachment && sDisplayText) 230 if (!mOnHUDAttachment && sDisplayText)
@@ -152,7 +257,15 @@ void LLHUDText::renderText(BOOL for_select)
152 return; 257 return;
153 } 258 }
154 259
155 LLGLState gls_tex(GL_TEXTURE_2D, for_select ? FALSE : TRUE); 260 if (for_select)
261 {
262 gGL.getTexUnit(0)->disable();
263 }
264 else
265 {
266 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
267 }
268
156 LLGLState gls_blend(GL_BLEND, for_select ? FALSE : TRUE); 269 LLGLState gls_blend(GL_BLEND, for_select ? FALSE : TRUE);
157 LLGLState gls_alpha(GL_ALPHA_TEST, for_select ? FALSE : TRUE); 270 LLGLState gls_alpha(GL_ALPHA_TEST, for_select ? FALSE : TRUE);
158 271
@@ -261,7 +374,7 @@ void LLHUDText::renderText(BOOL for_select)
261 374
262 if (for_select) 375 if (for_select)
263 { 376 {
264 LLGLSNoTexture no_texture_state; 377 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
265 S32 name = mSourceObject->mGLName; 378 S32 name = mSourceObject->mGLName;
266 LLColor4U coloru((U8)(name >> 16), (U8)(name >> 8), (U8)name); 379 LLColor4U coloru((U8)(name >> 16), (U8)(name >> 8), (U8)name);
267 gGL.color4ubv(coloru.mV); 380 gGL.color4ubv(coloru.mV);
@@ -271,7 +384,7 @@ void LLHUDText::renderText(BOOL for_select)
271 } 384 }
272 else 385 else
273 { 386 {
274 LLViewerImage::bindTexture(imagep->getImage()); 387 gGL.getTexUnit(0)->bind(imagep->getImage());
275 388
276 gGL.color4fv(bg_color.mV); 389 gGL.color4fv(bg_color.mV);
277 gl_segmented_rect_3d_tex(border_scale_vec, scaled_border_width, scaled_border_height, width_vec, height_vec); 390 gl_segmented_rect_3d_tex(border_scale_vec, scaled_border_width, scaled_border_height, width_vec, height_vec);
@@ -309,7 +422,7 @@ void LLHUDText::renderText(BOOL for_select)
309 } 422 }
310 LLUI::popMatrix(); 423 LLUI::popMatrix();
311 424
312 LLImageGL::unbindTexture(0); 425 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
313 LLGLDepthTest gls_depth(mZCompare ? GL_TRUE : GL_FALSE, GL_FALSE); 426 LLGLDepthTest gls_depth(mZCompare ? GL_TRUE : GL_FALSE, GL_FALSE);
314 427
315 LLVector3 box_center_offset; 428 LLVector3 box_center_offset;
@@ -317,7 +430,7 @@ void LLHUDText::renderText(BOOL for_select)
317 LLUI::translate(box_center_offset.mV[VX], box_center_offset.mV[VY], box_center_offset.mV[VZ]); 430 LLUI::translate(box_center_offset.mV[VX], box_center_offset.mV[VY], box_center_offset.mV[VZ]);
318 gGL.color4fv(bg_color.mV); 431 gGL.color4fv(bg_color.mV);
319 LLUI::setLineWidth(2.0); 432 LLUI::setLineWidth(2.0);
320 gGL.begin(LLVertexBuffer::LINES); 433 gGL.begin(LLRender::LINES);
321 { 434 {
322 if (outside_width) 435 if (outside_width)
323 { 436 {
@@ -444,6 +557,10 @@ void LLHUDText::renderText(BOOL for_select)
444 } 557 }
445 /// Reset the default color to white. The renderer expects this to be the default. 558 /// Reset the default color to white. The renderer expects this to be the default.
446 glColor4f(1.0f, 1.0f, 1.0f, 1.0f); 559 glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
560 if (for_select)
561 {
562 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
563 }
447} 564}
448 565
449void LLHUDText::setStringUTF8(const std::string &wtext) 566void LLHUDText::setStringUTF8(const std::string &wtext)
diff --git a/linden/indra/newview/llhudtext.h b/linden/indra/newview/llhudtext.h
index 5719a19..6e29d9d 100644
--- a/linden/indra/newview/llhudtext.h
+++ b/linden/indra/newview/llhudtext.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -123,6 +123,8 @@ public:
123 void setOnHUDAttachment(BOOL on_hud) { mOnHUDAttachment = on_hud; } 123 void setOnHUDAttachment(BOOL on_hud) { mOnHUDAttachment = on_hud; }
124 void shift(const LLVector3& offset); 124 void shift(const LLVector3& offset);
125 125
126 BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end, LLVector3& intersection, BOOL debug_render = FALSE);
127
126 static void shiftAll(const LLVector3& offset); 128 static void shiftAll(const LLVector3& offset);
127 static void renderAllHUD(); 129 static void renderAllHUD();
128 static void addPickable(std::set<LLViewerObject*> &pick_list); 130 static void addPickable(std::set<LLViewerObject*> &pick_list);
diff --git a/linden/indra/newview/llhudview.cpp b/linden/indra/newview/llhudview.cpp
index 5867285..9584a2a 100644
--- a/linden/indra/newview/llhudview.cpp
+++ b/linden/indra/newview/llhudview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llhudview.h b/linden/indra/newview/llhudview.h
index ae32ddd..277eb49 100644
--- a/linden/indra/newview/llhudview.h
+++ b/linden/indra/newview/llhudview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llimpanel.cpp b/linden/indra/newview/llimpanel.cpp
index dede746..16d64ac 100644
--- a/linden/indra/newview/llimpanel.cpp
+++ b/linden/indra/newview/llimpanel.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -356,7 +356,7 @@ LLVoiceChannel::LLVoiceChannel(const LLUUID& session_id, const std::string& sess
356 llwarns << "Duplicate voice channels registered for session_id " << session_id << llendl; 356 llwarns << "Duplicate voice channels registered for session_id " << session_id << llendl;
357 } 357 }
358 358
359 LLVoiceClient::getInstance()->addStatusObserver(this); 359 LLVoiceClient::getInstance()->addObserver(this);
360} 360}
361 361
362LLVoiceChannel::~LLVoiceChannel() 362LLVoiceChannel::~LLVoiceChannel()
@@ -364,7 +364,7 @@ LLVoiceChannel::~LLVoiceChannel()
364 // Don't use LLVoiceClient::getInstance() here -- this can get called during atexit() time and that singleton MAY have already been destroyed. 364 // Don't use LLVoiceClient::getInstance() here -- this can get called during atexit() time and that singleton MAY have already been destroyed.
365 if(gVoiceClient) 365 if(gVoiceClient)
366 { 366 {
367 gVoiceClient->removeStatusObserver(this); 367 gVoiceClient->removeObserver(this);
368 } 368 }
369 369
370 sVoiceChannelMap.erase(mSessionID); 370 sVoiceChannelMap.erase(mSessionID);
@@ -982,7 +982,8 @@ void LLVoiceChannelP2P::activate()
982 // otherwise answering the call 982 // otherwise answering the call
983 else 983 else
984 { 984 {
985 LLVoiceClient::getInstance()->answerInvite(mSessionHandle, mOtherUserID); 985 LLVoiceClient::getInstance()->answerInvite(mSessionHandle);
986
986 // using the session handle invalidates it. Clear it out here so we can't reuse it by accident. 987 // using the session handle invalidates it. Clear it out here so we can't reuse it by accident.
987 mSessionHandle.clear(); 988 mSessionHandle.clear();
988 } 989 }
@@ -999,7 +1000,7 @@ void LLVoiceChannelP2P::getChannelInfo()
999} 1000}
1000 1001
1001// receiving session from other user who initiated call 1002// receiving session from other user who initiated call
1002void LLVoiceChannelP2P::setSessionHandle(const std::string& handle) 1003void LLVoiceChannelP2P::setSessionHandle(const std::string& handle, const std::string &inURI)
1003{ 1004{
1004 BOOL needs_activate = FALSE; 1005 BOOL needs_activate = FALSE;
1005 if (callStarted()) 1006 if (callStarted())
@@ -1022,8 +1023,17 @@ void LLVoiceChannelP2P::setSessionHandle(const std::string& handle)
1022 } 1023 }
1023 1024
1024 mSessionHandle = handle; 1025 mSessionHandle = handle;
1026
1025 // The URI of a p2p session should always be the other end's SIP URI. 1027 // The URI of a p2p session should always be the other end's SIP URI.
1026 setURI(LLVoiceClient::getInstance()->sipURIFromID(mOtherUserID)); 1028 if(!inURI.empty())
1029 {
1030 setURI(inURI);
1031 }
1032 else
1033 {
1034 setURI(LLVoiceClient::getInstance()->sipURIFromID(mOtherUserID));
1035 }
1036
1027 mReceivedCall = TRUE; 1037 mReceivedCall = TRUE;
1028 1038
1029 if (needs_activate) 1039 if (needs_activate)
@@ -1206,7 +1216,23 @@ LLFloaterIMPanel::~LLFloaterIMPanel()
1206{ 1216{
1207 delete mSpeakers; 1217 delete mSpeakers;
1208 mSpeakers = NULL; 1218 mSpeakers = NULL;
1209 1219
1220 // End the text IM session if necessary
1221 if(gVoiceClient && mOtherParticipantUUID.notNull())
1222 {
1223 switch(mDialog)
1224 {
1225 case IM_NOTHING_SPECIAL:
1226 case IM_SESSION_P2P_INVITE:
1227 gVoiceClient->endUserIMSession(mOtherParticipantUUID);
1228 break;
1229
1230 default:
1231 // Appease the compiler
1232 break;
1233 }
1234 }
1235
1210 //kicks you out of the voice channel if it is currently active 1236 //kicks you out of the voice channel if it is currently active
1211 1237
1212 // HAVE to do this here -- if it happens in the LLVoiceChannel destructor it will call the wrong version (since the object's partially deconstructed at that point). 1238 // HAVE to do this here -- if it happens in the LLVoiceChannel destructor it will call the wrong version (since the object's partially deconstructed at that point).
@@ -1880,33 +1906,45 @@ void deliver_message(const std::string& utf8_text,
1880 EInstantMessage dialog) 1906 EInstantMessage dialog)
1881{ 1907{
1882 std::string name; 1908 std::string name;
1909 bool sent = false;
1883 gAgent.buildFullname(name); 1910 gAgent.buildFullname(name);
1884 1911
1885 const LLRelationship* info = NULL; 1912 const LLRelationship* info = NULL;
1886 info = LLAvatarTracker::instance().getBuddyInfo(other_participant_id); 1913 info = LLAvatarTracker::instance().getBuddyInfo(other_participant_id);
1914
1887 U8 offline = (!info || info->isOnline()) ? IM_ONLINE : IM_OFFLINE; 1915 U8 offline = (!info || info->isOnline()) ? IM_ONLINE : IM_OFFLINE;
1888 1916
1889 // default to IM_SESSION_SEND unless it's nothing special - in 1917 if((offline == IM_OFFLINE) && (LLVoiceClient::getInstance()->isOnlineSIP(other_participant_id)))
1890 // which case it's probably an IM to everyone.
1891 U8 new_dialog = dialog;
1892
1893 if ( dialog != IM_NOTHING_SPECIAL )
1894 { 1918 {
1895 new_dialog = IM_SESSION_SEND; 1919 // User is online through the OOW connector, but not with a regular viewer. Try to send the message via SLVoice.
1920 sent = gVoiceClient->sendTextMessage(other_participant_id, utf8_text);
1896 } 1921 }
1922
1923 if(!sent)
1924 {
1925 // Send message normally.
1897 1926
1898 pack_instant_message( 1927 // default to IM_SESSION_SEND unless it's nothing special - in
1899 gMessageSystem, 1928 // which case it's probably an IM to everyone.
1900 gAgent.getID(), 1929 U8 new_dialog = dialog;
1901 FALSE, 1930
1902 gAgent.getSessionID(), 1931 if ( dialog != IM_NOTHING_SPECIAL )
1903 other_participant_id, 1932 {
1904 name, 1933 new_dialog = IM_SESSION_SEND;
1905 utf8_text, 1934 }
1906 offline, 1935 pack_instant_message(
1907 (EInstantMessage)new_dialog, 1936 gMessageSystem,
1908 im_session_id); 1937 gAgent.getID(),
1909 gAgent.sendReliableMessage(); 1938 FALSE,
1939 gAgent.getSessionID(),
1940 other_participant_id,
1941 name.c_str(),
1942 utf8_text.c_str(),
1943 offline,
1944 (EInstantMessage)new_dialog,
1945 im_session_id);
1946 gAgent.sendReliableMessage();
1947 }
1910 1948
1911 // If there is a mute list and this is not a group chat... 1949 // If there is a mute list and this is not a group chat...
1912 if ( LLMuteList::getInstance() ) 1950 if ( LLMuteList::getInstance() )
diff --git a/linden/indra/newview/llimpanel.h b/linden/indra/newview/llimpanel.h
index 5bac0bd..0f9c0f3 100644
--- a/linden/indra/newview/llimpanel.h
+++ b/linden/indra/newview/llimpanel.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -161,7 +161,7 @@ public:
161 /*virtual*/ void activate(); 161 /*virtual*/ void activate();
162 /*virtual*/ void getChannelInfo(); 162 /*virtual*/ void getChannelInfo();
163 163
164 void setSessionHandle(const std::string& handle); 164 void setSessionHandle(const std::string& handle, const std::string &inURI);
165 165
166protected: 166protected:
167 virtual void setState(EState state); 167 virtual void setState(EState state);
@@ -295,8 +295,6 @@ private:
295 295
296 void sendTypingState(BOOL typing); 296 void sendTypingState(BOOL typing);
297 297
298 static LLFloaterIMPanel* sInstance;
299
300private: 298private:
301 LLLineEditor* mInputEditor; 299 LLLineEditor* mInputEditor;
302 LLViewerTextEditor* mHistoryEditor; 300 LLViewerTextEditor* mHistoryEditor;
diff --git a/linden/indra/newview/llimview.cpp b/linden/indra/newview/llimview.cpp
index 21d8e1f..10e8ff8 100644
--- a/linden/indra/newview/llimview.cpp
+++ b/linden/indra/newview/llimview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -267,7 +267,8 @@ public:
267 EInstantMessage type, 267 EInstantMessage type,
268 EInvitationType inv_type, 268 EInvitationType inv_type,
269 const std::string& session_handle, 269 const std::string& session_handle,
270 const std::string& notify_box) : 270 const std::string& notify_box,
271 const std::string& session_uri) :
271 mSessionID(session_id), 272 mSessionID(session_id),
272 mSessionName(session_name), 273 mSessionName(session_name),
273 mCallerID(caller_id), 274 mCallerID(caller_id),
@@ -275,7 +276,8 @@ public:
275 mType(type), 276 mType(type),
276 mInvType(inv_type), 277 mInvType(inv_type),
277 mSessionHandle(session_handle), 278 mSessionHandle(session_handle),
278 mNotifyBox(notify_box) 279 mNotifyBox(notify_box),
280 mSessionURI(session_uri)
279 {}; 281 {};
280 282
281 LLUUID mSessionID; 283 LLUUID mSessionID;
@@ -286,6 +288,7 @@ public:
286 EInvitationType mInvType; 288 EInvitationType mInvType;
287 std::string mSessionHandle; 289 std::string mSessionHandle;
288 std::string mNotifyBox; 290 std::string mNotifyBox;
291 std::string mSessionURI;
289}; 292};
290 293
291 294
@@ -568,7 +571,8 @@ BOOL LLIMMgr::isIMSessionOpen(const LLUUID& uuid)
568 571
569LLUUID LLIMMgr::addP2PSession(const std::string& name, 572LLUUID LLIMMgr::addP2PSession(const std::string& name,
570 const LLUUID& other_participant_id, 573 const LLUUID& other_participant_id,
571 const std::string& voice_session_handle) 574 const std::string& voice_session_handle,
575 const std::string& caller_uri)
572{ 576{
573 LLUUID session_id = addSession(name, IM_NOTHING_SPECIAL, other_participant_id); 577 LLUUID session_id = addSession(name, IM_NOTHING_SPECIAL, other_participant_id);
574 578
@@ -576,7 +580,7 @@ LLUUID LLIMMgr::addP2PSession(const std::string& name,
576 if(floater) 580 if(floater)
577 { 581 {
578 LLVoiceChannelP2P* voice_channelp = (LLVoiceChannelP2P*)floater->getVoiceChannel(); 582 LLVoiceChannelP2P* voice_channelp = (LLVoiceChannelP2P*)floater->getVoiceChannel();
579 voice_channelp->setSessionHandle(voice_session_handle); 583 voice_channelp->setSessionHandle(voice_session_handle, caller_uri);
580 } 584 }
581 585
582 return session_id; 586 return session_id;
@@ -699,7 +703,8 @@ void LLIMMgr::inviteToSession(
699 const std::string& caller_name, 703 const std::string& caller_name,
700 EInstantMessage type, 704 EInstantMessage type,
701 EInvitationType inv_type, 705 EInvitationType inv_type,
702 const std::string& session_handle) 706 const std::string& session_handle,
707 const std::string& session_uri)
703{ 708{
704 //ignore invites from muted residents 709 //ignore invites from muted residents
705 if (LLMuteList::getInstance()->isMuted(caller_id)) 710 if (LLMuteList::getInstance()->isMuted(caller_id))
@@ -741,7 +746,8 @@ void LLIMMgr::inviteToSession(
741 type, 746 type,
742 inv_type, 747 inv_type,
743 session_handle, 748 session_handle,
744 notify_box_type); 749 notify_box_type,
750 session_uri);
745 751
746 LLVoiceChannel* channelp = LLVoiceChannel::getChannelByID(session_id); 752 LLVoiceChannel* channelp = LLVoiceChannel::getChannelByID(session_id);
747 if (channelp && channelp->callStarted()) 753 if (channelp && channelp->callStarted())
@@ -916,7 +922,8 @@ void LLIMMgr::inviteUserResponse(S32 option, void* user_data)
916 invitep->mSessionID = gIMMgr->addP2PSession( 922 invitep->mSessionID = gIMMgr->addP2PSession(
917 invitep->mSessionName, 923 invitep->mSessionName,
918 invitep->mCallerID, 924 invitep->mCallerID,
919 invitep->mSessionHandle); 925 invitep->mSessionHandle,
926 invitep->mSessionURI );
920 927
921 LLFloaterIMPanel* im_floater = 928 LLFloaterIMPanel* im_floater =
922 gIMMgr->findFloaterBySession( 929 gIMMgr->findFloaterBySession(
diff --git a/linden/indra/newview/llimview.h b/linden/indra/newview/llimview.h
index 9046a2e..6b82c2e 100644
--- a/linden/indra/newview/llimview.h
+++ b/linden/indra/newview/llimview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -97,7 +97,8 @@ public:
97 // Creates a P2P session with the requisite handle for responding to voice calls 97 // Creates a P2P session with the requisite handle for responding to voice calls
98 LLUUID addP2PSession(const std::string& name, 98 LLUUID addP2PSession(const std::string& name,
99 const LLUUID& other_participant_id, 99 const LLUUID& other_participant_id,
100 const std::string& voice_session_handle); 100 const std::string& voice_session_handle,
101 const std::string& caller_uri = LLStringUtil::null);
101 102
102 // This removes the panel referenced by the uuid, and then 103 // This removes the panel referenced by the uuid, and then
103 // restores internal consistency. The internal pointer is not 104 // restores internal consistency. The internal pointer is not
@@ -111,7 +112,8 @@ public:
111 const std::string& caller_name, 112 const std::string& caller_name,
112 EInstantMessage type, 113 EInstantMessage type,
113 EInvitationType inv_type, 114 EInvitationType inv_type,
114 const std::string& session_handle = LLStringUtil::null); 115 const std::string& session_handle = LLStringUtil::null,
116 const std::string& session_uri = LLStringUtil::null);
115 117
116 //Updates a given session's session IDs. Does not open, 118 //Updates a given session's session IDs. Does not open,
117 //create or do anything new. If the old session doesn't 119 //create or do anything new. If the old session doesn't
diff --git a/linden/indra/newview/llinventoryactions.cpp b/linden/indra/newview/llinventoryactions.cpp
index cf95eef..0bf3ab2 100644
--- a/linden/indra/newview/llinventoryactions.cpp
+++ b/linden/indra/newview/llinventoryactions.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llinventorybridge.cpp b/linden/indra/newview/llinventorybridge.cpp
index 34277f7..7118d46 100644
--- a/linden/indra/newview/llinventorybridge.cpp
+++ b/linden/indra/newview/llinventorybridge.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llinventorybridge.h b/linden/indra/newview/llinventorybridge.h
index eb17432..b076f77 100644
--- a/linden/indra/newview/llinventorybridge.h
+++ b/linden/indra/newview/llinventorybridge.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llinventoryclipboard.cpp b/linden/indra/newview/llinventoryclipboard.cpp
index ea84fa5..5b9a24e 100644
--- a/linden/indra/newview/llinventoryclipboard.cpp
+++ b/linden/indra/newview/llinventoryclipboard.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llinventoryclipboard.h b/linden/indra/newview/llinventoryclipboard.h
index 233c84e..6518bd2 100644
--- a/linden/indra/newview/llinventoryclipboard.h
+++ b/linden/indra/newview/llinventoryclipboard.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llinventorymodel.cpp b/linden/indra/newview/llinventorymodel.cpp
index 73f0fb3..1029a3c 100644
--- a/linden/indra/newview/llinventorymodel.cpp
+++ b/linden/indra/newview/llinventorymodel.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -1348,9 +1348,6 @@ void LLInventoryModel::bulkFetch(std::string url)
1348 return; // just bail if we are disconnected. 1348 return; // just bail if we are disconnected.
1349 } 1349 }
1350 1350
1351 //HACK. This is inelegant. We're shuffling a dequeue to a map to get rid of
1352 //redundant requests. When we get rid of the old code entirely, we can change
1353 //the dequeue to a map. In the new model, there is no benefit to queue order.
1354 U32 folder_count=0; 1351 U32 folder_count=0;
1355 U32 max_batch_size=5; 1352 U32 max_batch_size=5;
1356 1353
@@ -1502,7 +1499,7 @@ void LLInventoryModel::stopBackgroundFetch()
1502//static 1499//static
1503void LLInventoryModel::backgroundFetch(void*) 1500void LLInventoryModel::backgroundFetch(void*)
1504{ 1501{
1505 if (sBackgroundFetchActive) 1502 if (sBackgroundFetchActive && gAgent.getRegion())
1506 { 1503 {
1507 //If we'll be using the capability, we'll be sending batches and the background thing isn't as important. 1504 //If we'll be using the capability, we'll be sending batches and the background thing isn't as important.
1508 std::string url = gAgent.getRegion()->getCapability("WebFetchInventoryDescendents"); 1505 std::string url = gAgent.getRegion()->getCapability("WebFetchInventoryDescendents");
diff --git a/linden/indra/newview/llinventorymodel.h b/linden/indra/newview/llinventorymodel.h
index d2be761..7c7d231 100644
--- a/linden/indra/newview/llinventorymodel.h
+++ b/linden/indra/newview/llinventorymodel.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llinventoryview.cpp b/linden/indra/newview/llinventoryview.cpp
index a318f5d..0f1eb2b 100644
--- a/linden/indra/newview/llinventoryview.cpp
+++ b/linden/indra/newview/llinventoryview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -1657,6 +1657,16 @@ LLView* LLInventoryPanel::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac
1657 return panel; 1657 return panel;
1658} 1658}
1659 1659
1660void LLInventoryPanel::draw()
1661{
1662 // select the desired item (in case it wasn't loaded when the selection was requested)
1663 if (mSelectThisID.notNull())
1664 {
1665 setSelection(mSelectThisID, false);
1666 }
1667 LLPanel::draw();
1668}
1669
1660void LLInventoryPanel::setFilterTypes(U32 filter_types) 1670void LLInventoryPanel::setFilterTypes(U32 filter_types)
1661{ 1671{
1662 mFolders->getFilter()->setFilterTypes(filter_types); 1672 mFolders->getFilter()->setFilterTypes(filter_types);
@@ -2034,15 +2044,21 @@ void LLInventoryPanel::setSelection(const LLUUID& obj_id, BOOL take_keyboard_foc
2034 LLFolderViewItem* itemp = mFolders->getItemByID(obj_id); 2044 LLFolderViewItem* itemp = mFolders->getItemByID(obj_id);
2035 if(itemp && itemp->getListener()) 2045 if(itemp && itemp->getListener())
2036 { 2046 {
2037 itemp->getListener()->arrangeAndSet(itemp, 2047 itemp->getListener()->arrangeAndSet(itemp, TRUE, take_keyboard_focus);
2038 TRUE, 2048 mSelectThisID.setNull();
2039 take_keyboard_focus); 2049 return;
2050 }
2051 else
2052 {
2053 // save the desired item to be selected later (if/when ready)
2054 mSelectThisID = obj_id;
2040 } 2055 }
2041} 2056}
2042 2057
2043void LLInventoryPanel::clearSelection() 2058void LLInventoryPanel::clearSelection()
2044{ 2059{
2045 mFolders->clearSelection(); 2060 mFolders->clearSelection();
2061 mSelectThisID.setNull();
2046} 2062}
2047 2063
2048void LLInventoryPanel::createNewItem(const std::string& name, 2064void LLInventoryPanel::createNewItem(const std::string& name,
diff --git a/linden/indra/newview/llinventoryview.h b/linden/indra/newview/llinventoryview.h
index dd6756a..bdc24e0 100644
--- a/linden/indra/newview/llinventoryview.h
+++ b/linden/indra/newview/llinventoryview.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2001&license=viewergpl$ 6 * $LicenseInfo:firstyear=2001&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2001-2008, Linden Research, Inc. 8 * Copyright (c) 2001-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -87,6 +87,7 @@ public:
87 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 87 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
88 88
89 // LLView methods 89 // LLView methods
90 void draw();
90 BOOL handleHover(S32 x, S32 y, MASK mask); 91 BOOL handleHover(S32 x, S32 y, MASK mask);
91 BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, 92 BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
92 EDragAndDropType cargo_type, 93 EDragAndDropType cargo_type,
@@ -154,7 +155,8 @@ protected:
154 LLFolderView* mFolders; 155 LLFolderView* mFolders;
155 LLScrollableContainerView* mScroller; 156 LLScrollableContainerView* mScroller;
156 BOOL mAllowMultiSelect; 157 BOOL mAllowMultiSelect;
157 const std::string mSortOrderSetting; 158 const std::string mSortOrderSetting;
159 LLUUID mSelectThisID; // if non null, select this item
158}; 160};
159 161
160class LLInventoryView; 162class LLInventoryView;
diff --git a/linden/indra/newview/lljoystickbutton.cpp b/linden/indra/newview/lljoystickbutton.cpp
index 773c57e..0d40a4e 100644
--- a/linden/indra/newview/lljoystickbutton.cpp
+++ b/linden/indra/newview/lljoystickbutton.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -651,11 +651,11 @@ void LLJoystickCameraRotate::drawRotatedImage( const LLImageGL* image, S32 rotat
651 { 1.f, 0.f } 651 { 1.f, 0.f }
652 }; 652 };
653 653
654 image->bind(); 654 gGL.getTexUnit(0)->bind(image);
655 655
656 gGL.color4fv(UI_VERTEX_COLOR.mV); 656 gGL.color4fv(UI_VERTEX_COLOR.mV);
657 657
658 gGL.begin(LLVertexBuffer::QUADS); 658 gGL.begin(LLRender::QUADS);
659 { 659 {
660 gGL.texCoord2fv( uv[ (rotations + 0) % 4]); 660 gGL.texCoord2fv( uv[ (rotations + 0) % 4]);
661 gGL.vertex2i(width, height ); 661 gGL.vertex2i(width, height );
diff --git a/linden/indra/newview/lljoystickbutton.h b/linden/indra/newview/lljoystickbutton.h
index 806f8fb..a8e3ab6 100644
--- a/linden/indra/newview/lljoystickbutton.h
+++ b/linden/indra/newview/lljoystickbutton.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lllandmarklist.cpp b/linden/indra/newview/lllandmarklist.cpp
index ee5819b..9a3d529 100644
--- a/linden/indra/newview/lllandmarklist.cpp
+++ b/linden/indra/newview/lllandmarklist.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lllandmarklist.h b/linden/indra/newview/lllandmarklist.h
index 879ffec..3a2eb63 100644
--- a/linden/indra/newview/lllandmarklist.h
+++ b/linden/indra/newview/lllandmarklist.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lllightconstants.h b/linden/indra/newview/lllightconstants.h
index cce014a..ce3e404 100644
--- a/linden/indra/newview/lllightconstants.h
+++ b/linden/indra/newview/lllightconstants.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lllogchat.cpp b/linden/indra/newview/lllogchat.cpp
index ea686af..95b626b 100644
--- a/linden/indra/newview/lllogchat.cpp
+++ b/linden/indra/newview/lllogchat.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -106,7 +106,8 @@ void LLLogChat::loadHistory(std::string filename , void (*callback)(ELogLineType
106{ 106{
107 if(!filename.size()) 107 if(!filename.size())
108 { 108 {
109 llerrs << "Filename is Empty!" << llendl; 109 llwarns << "Filename is Empty!" << llendl;
110 return ;
110 } 111 }
111 112
112 LLFILE* fptr = LLFile::fopen(makeLogFileName(filename), "r"); /*Flawfinder: ignore*/ 113 LLFILE* fptr = LLFile::fopen(makeLogFileName(filename), "r"); /*Flawfinder: ignore*/
diff --git a/linden/indra/newview/lllogchat.h b/linden/indra/newview/lllogchat.h
index 694cec6..6d92c17 100644
--- a/linden/indra/newview/lllogchat.h
+++ b/linden/indra/newview/lllogchat.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmanip.cpp b/linden/indra/newview/llmanip.cpp
index 89f13fe..d70a4b4 100644
--- a/linden/indra/newview/llmanip.cpp
+++ b/linden/indra/newview/llmanip.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -388,13 +388,13 @@ void LLManip::renderGuidelines(BOOL draw_x, BOOL draw_y, BOOL draw_z)
388 388
389 const F32 LINE_ALPHA = 0.33f; 389 const F32 LINE_ALPHA = 0.33f;
390 390
391 LLGLSNoTexture gls_no_texture; 391 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
392 LLUI::setLineWidth(1.5f); 392 LLUI::setLineWidth(1.5f);
393 393
394 if (draw_x) 394 if (draw_x)
395 { 395 {
396 gGL.color4f(1.f, 0.f, 0.f, LINE_ALPHA); 396 gGL.color4f(1.f, 0.f, 0.f, LINE_ALPHA);
397 gGL.begin(LLVertexBuffer::LINES); 397 gGL.begin(LLRender::LINES);
398 gGL.vertex3f( -region_size, 0.f, 0.f ); 398 gGL.vertex3f( -region_size, 0.f, 0.f );
399 gGL.vertex3f( region_size, 0.f, 0.f ); 399 gGL.vertex3f( region_size, 0.f, 0.f );
400 gGL.end(); 400 gGL.end();
@@ -403,7 +403,7 @@ void LLManip::renderGuidelines(BOOL draw_x, BOOL draw_y, BOOL draw_z)
403 if (draw_y) 403 if (draw_y)
404 { 404 {
405 gGL.color4f(0.f, 1.f, 0.f, LINE_ALPHA); 405 gGL.color4f(0.f, 1.f, 0.f, LINE_ALPHA);
406 gGL.begin(LLVertexBuffer::LINES); 406 gGL.begin(LLRender::LINES);
407 gGL.vertex3f( 0.f, -region_size, 0.f ); 407 gGL.vertex3f( 0.f, -region_size, 0.f );
408 gGL.vertex3f( 0.f, region_size, 0.f ); 408 gGL.vertex3f( 0.f, region_size, 0.f );
409 gGL.end(); 409 gGL.end();
@@ -412,7 +412,7 @@ void LLManip::renderGuidelines(BOOL draw_x, BOOL draw_y, BOOL draw_z)
412 if (draw_z) 412 if (draw_z)
413 { 413 {
414 gGL.color4f(0.f, 0.f, 1.f, LINE_ALPHA); 414 gGL.color4f(0.f, 0.f, 1.f, LINE_ALPHA);
415 gGL.begin(LLVertexBuffer::LINES); 415 gGL.begin(LLRender::LINES);
416 gGL.vertex3f( 0.f, 0.f, -region_size ); 416 gGL.vertex3f( 0.f, 0.f, -region_size );
417 gGL.vertex3f( 0.f, 0.f, region_size ); 417 gGL.vertex3f( 0.f, 0.f, region_size );
418 gGL.end(); 418 gGL.end();
diff --git a/linden/indra/newview/llmanip.h b/linden/indra/newview/llmanip.h
index 24cd35a..391a8d9 100644
--- a/linden/indra/newview/llmanip.h
+++ b/linden/indra/newview/llmanip.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmaniprotate.cpp b/linden/indra/newview/llmaniprotate.cpp
index 11b5e8c..3ed4685 100644
--- a/linden/indra/newview/llmaniprotate.cpp
+++ b/linden/indra/newview/llmaniprotate.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -115,7 +115,7 @@ void LLManipRotate::handleSelect()
115void LLManipRotate::render() 115void LLManipRotate::render()
116{ 116{
117 LLGLSUIDefault gls_ui; 117 LLGLSUIDefault gls_ui;
118 LLGLSNoTexture gls_no_texture; 118 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
119 LLGLDepthTest gls_depth(GL_TRUE); 119 LLGLDepthTest gls_depth(GL_TRUE);
120 LLGLEnable gl_blend(GL_BLEND); 120 LLGLEnable gl_blend(GL_BLEND);
121 LLGLEnable gls_alpha_test(GL_ALPHA_TEST); 121 LLGLEnable gls_alpha_test(GL_ALPHA_TEST);
@@ -838,7 +838,7 @@ void LLManipRotate::renderSnapGuides()
838 LLVector3 outer_point; 838 LLVector3 outer_point;
839 LLVector3 text_point; 839 LLVector3 text_point;
840 LLQuaternion rot(deg * DEG_TO_RAD, constraint_axis); 840 LLQuaternion rot(deg * DEG_TO_RAD, constraint_axis);
841 gGL.begin(LLVertexBuffer::LINES); 841 gGL.begin(LLRender::LINES);
842 { 842 {
843 inner_point = (projected_snap_axis * mRadiusMeters * SNAP_GUIDE_INNER_RADIUS * rot) + center; 843 inner_point = (projected_snap_axis * mRadiusMeters * SNAP_GUIDE_INNER_RADIUS * rot) + center;
844 F32 tick_length = 0.f; 844 F32 tick_length = 0.f;
@@ -1017,7 +1017,7 @@ void LLManipRotate::renderSnapGuides()
1017 object_axis = object_axis * SNAP_GUIDE_INNER_RADIUS * mRadiusMeters + center; 1017 object_axis = object_axis * SNAP_GUIDE_INNER_RADIUS * mRadiusMeters + center;
1018 LLVector3 line_start = center; 1018 LLVector3 line_start = center;
1019 1019
1020 gGL.begin(LLVertexBuffer::LINES); 1020 gGL.begin(LLRender::LINES);
1021 { 1021 {
1022 gGL.vertex3fv(line_start.mV); 1022 gGL.vertex3fv(line_start.mV);
1023 gGL.vertex3fv(object_axis.mV); 1023 gGL.vertex3fv(object_axis.mV);
@@ -1025,7 +1025,7 @@ void LLManipRotate::renderSnapGuides()
1025 gGL.end(); 1025 gGL.end();
1026 1026
1027 // draw snap guide arrow 1027 // draw snap guide arrow
1028 gGL.begin(LLVertexBuffer::TRIANGLES); 1028 gGL.begin(LLRender::TRIANGLES);
1029 { 1029 {
1030 LLVector3 arrow_dir; 1030 LLVector3 arrow_dir;
1031 LLVector3 arrow_span = (object_axis - line_start) % getConstraintAxis(); 1031 LLVector3 arrow_span = (object_axis - line_start) % getConstraintAxis();
@@ -1045,7 +1045,7 @@ void LLManipRotate::renderSnapGuides()
1045 1045
1046 { 1046 {
1047 LLGLDepthTest gls_depth(GL_TRUE); 1047 LLGLDepthTest gls_depth(GL_TRUE);
1048 gGL.begin(LLVertexBuffer::LINES); 1048 gGL.begin(LLRender::LINES);
1049 { 1049 {
1050 gGL.vertex3fv(line_start.mV); 1050 gGL.vertex3fv(line_start.mV);
1051 gGL.vertex3fv(object_axis.mV); 1051 gGL.vertex3fv(object_axis.mV);
@@ -1053,7 +1053,7 @@ void LLManipRotate::renderSnapGuides()
1053 gGL.end(); 1053 gGL.end();
1054 1054
1055 // draw snap guide arrow 1055 // draw snap guide arrow
1056 gGL.begin(LLVertexBuffer::TRIANGLES); 1056 gGL.begin(LLRender::TRIANGLES);
1057 { 1057 {
1058 LLVector3 arrow_dir; 1058 LLVector3 arrow_dir;
1059 LLVector3 arrow_span = (object_axis - line_start) % getConstraintAxis(); 1059 LLVector3 arrow_span = (object_axis - line_start) % getConstraintAxis();
diff --git a/linden/indra/newview/llmaniprotate.h b/linden/indra/newview/llmaniprotate.h
index b17e030..8929e9d 100644
--- a/linden/indra/newview/llmaniprotate.h
+++ b/linden/indra/newview/llmaniprotate.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmanipscale.cpp b/linden/indra/newview/llmanipscale.cpp
index 0fa5fa5..10cb0c3 100644
--- a/linden/indra/newview/llmanipscale.cpp
+++ b/linden/indra/newview/llmanipscale.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -197,7 +197,7 @@ LLManipScale::~LLManipScale()
197void LLManipScale::render() 197void LLManipScale::render()
198{ 198{
199 LLGLSUIDefault gls_ui; 199 LLGLSUIDefault gls_ui;
200 LLGLSNoTexture gls_no_texture; 200 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
201 LLGLDepthTest gls_depth(GL_TRUE); 201 LLGLDepthTest gls_depth(GL_TRUE);
202 LLGLEnable gl_blend(GL_BLEND); 202 LLGLEnable gl_blend(GL_BLEND);
203 LLGLEnable gls_alpha_test(GL_ALPHA_TEST); 203 LLGLEnable gls_alpha_test(GL_ALPHA_TEST);
@@ -590,7 +590,7 @@ void LLManipScale::renderFaces( const LLBBox& bbox )
590 { 590 {
591 gGL.color4fv( default_normal_color.mV ); 591 gGL.color4fv( default_normal_color.mV );
592 LLGLDepthTest gls_depth(GL_FALSE); 592 LLGLDepthTest gls_depth(GL_FALSE);
593 gGL.begin(LLVertexBuffer::QUADS); 593 gGL.begin(LLRender::QUADS);
594 { 594 {
595 // Face 0 595 // Face 0
596 gGL.vertex3f(min.mV[VX], max.mV[VY], max.mV[VZ]); 596 gGL.vertex3f(min.mV[VX], max.mV[VY], max.mV[VZ]);
@@ -751,7 +751,7 @@ void LLManipScale::renderCorners( const LLBBox& bbox )
751 751
752void LLManipScale::renderBoxHandle( F32 x, F32 y, F32 z ) 752void LLManipScale::renderBoxHandle( F32 x, F32 y, F32 z )
753{ 753{
754 LLImageGL::unbindTexture(0); 754 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
755 LLGLDepthTest gls_depth(GL_FALSE); 755 LLGLDepthTest gls_depth(GL_FALSE);
756 756
757 glPushMatrix(); 757 glPushMatrix();
@@ -1528,7 +1528,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
1528 { 1528 {
1529 LLColor4 tick_color = setupSnapGuideRenderPass(pass); 1529 LLColor4 tick_color = setupSnapGuideRenderPass(pass);
1530 1530
1531 gGL.begin(LLVertexBuffer::LINES); 1531 gGL.begin(LLRender::LINES);
1532 LLVector3 line_mid = mScaleCenter + (mScaleSnapValue * mScaleDir) + (mSnapGuideDir1 * mSnapRegimeOffset); 1532 LLVector3 line_mid = mScaleCenter + (mScaleSnapValue * mScaleDir) + (mSnapGuideDir1 * mSnapRegimeOffset);
1533 LLVector3 line_start = line_mid - (mScaleDir * (llmin(mScaleSnapValue, mSnapGuideLength * 0.5f))); 1533 LLVector3 line_start = line_mid - (mScaleDir * (llmin(mScaleSnapValue, mSnapGuideLength * 0.5f)));
1534 LLVector3 line_end = line_mid + (mScaleDir * llmin(max_point_on_scale_line - mScaleSnapValue, mSnapGuideLength * 0.5f)); 1534 LLVector3 line_end = line_mid + (mScaleDir * llmin(max_point_on_scale_line - mScaleSnapValue, mSnapGuideLength * 0.5f));
@@ -1579,7 +1579,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
1579 if (mInSnapRegime) 1579 if (mInSnapRegime)
1580 { 1580 {
1581 // draw snap guide line 1581 // draw snap guide line
1582 gGL.begin(LLVertexBuffer::LINES); 1582 gGL.begin(LLRender::LINES);
1583 LLVector3 snap_line_center = mScaleCenter + (mScaleSnapValue * mScaleDir); 1583 LLVector3 snap_line_center = mScaleCenter + (mScaleSnapValue * mScaleDir);
1584 1584
1585 LLVector3 snap_line_start = snap_line_center + (mSnapGuideDir1 * mSnapRegimeOffset); 1585 LLVector3 snap_line_start = snap_line_center + (mSnapGuideDir1 * mSnapRegimeOffset);
@@ -1593,7 +1593,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
1593 gGL.end(); 1593 gGL.end();
1594 1594
1595 // draw snap guide arrow 1595 // draw snap guide arrow
1596 gGL.begin(LLVertexBuffer::TRIANGLES); 1596 gGL.begin(LLRender::TRIANGLES);
1597 { 1597 {
1598 //gGLSNoCullFaces.set(); 1598 //gGLSNoCullFaces.set();
1599 gGL.color4f(1.f, 1.f, 1.f, grid_alpha); 1599 gGL.color4f(1.f, 1.f, 1.f, grid_alpha);
@@ -1628,7 +1628,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
1628 start_tick = -(llmin(ticks_from_scale_center_1, num_ticks_per_side1)); 1628 start_tick = -(llmin(ticks_from_scale_center_1, num_ticks_per_side1));
1629 stop_tick = llmin(max_ticks1, num_ticks_per_side1); 1629 stop_tick = llmin(max_ticks1, num_ticks_per_side1);
1630 1630
1631 gGL.begin(LLVertexBuffer::LINES); 1631 gGL.begin(LLRender::LINES);
1632 // draw first row of ticks 1632 // draw first row of ticks
1633 for (S32 i = start_tick; i <= stop_tick; i++) 1633 for (S32 i = start_tick; i <= stop_tick; i++)
1634 { 1634 {
diff --git a/linden/indra/newview/llmanipscale.h b/linden/indra/newview/llmanipscale.h
index 333cbd2..98d8c63 100644
--- a/linden/indra/newview/llmanipscale.h
+++ b/linden/indra/newview/llmanipscale.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmaniptranslate.cpp b/linden/indra/newview/llmaniptranslate.cpp
index 2278453..fd02be6 100644
--- a/linden/indra/newview/llmaniptranslate.cpp
+++ b/linden/indra/newview/llmaniptranslate.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -77,7 +77,7 @@ const F32 PLANE_TICK_SIZE = 0.4f;
77const F32 MANIPULATOR_SCALE_HALF_LIFE = 0.07f; 77const F32 MANIPULATOR_SCALE_HALF_LIFE = 0.07f;
78const F32 SNAP_ARROW_SCALE = 0.7f; 78const F32 SNAP_ARROW_SCALE = 0.7f;
79 79
80static GLuint sGridTex = 0; 80static LLPointer<LLImageGL> sGridTex = NULL ;
81 81
82const LLManip::EManipPart MANIPULATOR_IDS[9] = 82const LLManip::EManipPart MANIPULATOR_IDS[9] =
83{ 83{
@@ -119,22 +119,50 @@ LLManipTranslate::LLManipTranslate( LLToolComposite* composite )
119 mPlaneScales(1.f, 1.f, 1.f), 119 mPlaneScales(1.f, 1.f, 1.f),
120 mPlaneManipPositions(1.f, 1.f, 1.f, 1.f) 120 mPlaneManipPositions(1.f, 1.f, 1.f, 1.f)
121{ 121{
122 if (sGridTex == 0) 122 if (sGridTex.isNull())
123 { 123 {
124 restoreGL(); 124 restoreGL();
125 } 125 }
126} 126}
127 127
128//static 128//static
129U32 LLManipTranslate::getGridTexName()
130{
131 if(sGridTex.isNull())
132 {
133 restoreGL() ;
134 }
135
136 return sGridTex.isNull() ? 0 : sGridTex->getTexName() ;
137}
138
139//static
140void LLManipTranslate::destroyGL()
141{
142 if (sGridTex)
143 {
144 sGridTex = NULL ;
145 }
146}
147
148//static
129void LLManipTranslate::restoreGL() 149void LLManipTranslate::restoreGL()
130{ 150{
131 //generate grid texture 151 //generate grid texture
132 U32 rez = 512; 152 U32 rez = 512;
133 U32 mip = 0; 153 U32 mip = 0;
134 154
135 GLuint* d = new GLuint[rez*rez]; 155 destroyGL() ;
136 glGenTextures(1, &sGridTex); 156 sGridTex = new LLImageGL() ;
137 glBindTexture(GL_TEXTURE_2D, sGridTex); 157 if(!sGridTex->createGLTexture())
158 {
159 sGridTex = NULL ;
160 return ;
161 }
162
163 GLuint* d = new GLuint[rez*rez];
164
165 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, sGridTex->getTexName());
138 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); 166 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
139 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 167 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
140 168
@@ -1052,7 +1080,7 @@ void LLManipTranslate::renderSnapGuides()
1052 F32 max_subdivisions = sGridMaxSubdivisionLevel;//(F32)gSavedSettings.getS32("GridSubdivision"); 1080 F32 max_subdivisions = sGridMaxSubdivisionLevel;//(F32)gSavedSettings.getS32("GridSubdivision");
1053 F32 line_alpha = gSavedSettings.getF32("GridOpacity"); 1081 F32 line_alpha = gSavedSettings.getF32("GridOpacity");
1054 1082
1055 LLGLSNoTexture gls_no_texture; 1083 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1056 LLGLDepthTest gls_depth(GL_TRUE); 1084 LLGLDepthTest gls_depth(GL_TRUE);
1057 LLGLDisable gls_cull(GL_CULL_FACE); 1085 LLGLDisable gls_cull(GL_CULL_FACE);
1058 LLVector3 translate_axis; 1086 LLVector3 translate_axis;
@@ -1223,7 +1251,7 @@ void LLManipTranslate::renderSnapGuides()
1223 { 1251 {
1224 LLColor4 line_color = setupSnapGuideRenderPass(pass); 1252 LLColor4 line_color = setupSnapGuideRenderPass(pass);
1225 1253
1226 gGL.begin(LLVertexBuffer::LINES); 1254 gGL.begin(LLRender::LINES);
1227 { 1255 {
1228 LLVector3 line_start = selection_center + (mSnapOffsetMeters * mSnapOffsetAxis) + (translate_axis * (guide_size_meters * 0.5f + offset_nearest_grid_unit)); 1256 LLVector3 line_start = selection_center + (mSnapOffsetMeters * mSnapOffsetAxis) + (translate_axis * (guide_size_meters * 0.5f + offset_nearest_grid_unit));
1229 LLVector3 line_end = selection_center + (mSnapOffsetMeters * mSnapOffsetAxis) - (translate_axis * (guide_size_meters * 0.5f + offset_nearest_grid_unit)); 1257 LLVector3 line_end = selection_center + (mSnapOffsetMeters * mSnapOffsetAxis) - (translate_axis * (guide_size_meters * 0.5f + offset_nearest_grid_unit));
@@ -1299,7 +1327,7 @@ void LLManipTranslate::renderSnapGuides()
1299 LLVector3 line_start = selection_center - mSnapOffsetAxis * mSnapOffsetMeters; 1327 LLVector3 line_start = selection_center - mSnapOffsetAxis * mSnapOffsetMeters;
1300 LLVector3 line_end = selection_center + mSnapOffsetAxis * mSnapOffsetMeters; 1328 LLVector3 line_end = selection_center + mSnapOffsetAxis * mSnapOffsetMeters;
1301 1329
1302 gGL.begin(LLVertexBuffer::LINES); 1330 gGL.begin(LLRender::LINES);
1303 { 1331 {
1304 gGL.color4f(line_color.mV[VX], line_color.mV[VY], line_color.mV[VZ], line_color.mV[VW]); 1332 gGL.color4f(line_color.mV[VX], line_color.mV[VY], line_color.mV[VZ], line_color.mV[VW]);
1305 1333
@@ -1309,7 +1337,7 @@ void LLManipTranslate::renderSnapGuides()
1309 gGL.end(); 1337 gGL.end();
1310 1338
1311 // draw snap guide arrow 1339 // draw snap guide arrow
1312 gGL.begin(LLVertexBuffer::TRIANGLES); 1340 gGL.begin(LLRender::TRIANGLES);
1313 { 1341 {
1314 gGL.color4f(line_color.mV[VX], line_color.mV[VY], line_color.mV[VZ], line_color.mV[VW]); 1342 gGL.color4f(line_color.mV[VX], line_color.mV[VY], line_color.mV[VZ], line_color.mV[VW]);
1315 1343
@@ -1463,7 +1491,7 @@ void LLManipTranslate::renderSnapGuides()
1463 break; 1491 break;
1464 } 1492 }
1465 1493
1466 LLImageGL::unbindTexture(0); 1494 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1467 highlightIntersection(normal, selection_center, grid_rotation, inner_color); 1495 highlightIntersection(normal, selection_center, grid_rotation, inner_color);
1468 1496
1469 gGL.pushMatrix(); 1497 gGL.pushMatrix();
@@ -1503,7 +1531,7 @@ void LLManipTranslate::renderSnapGuides()
1503 LLGLDisable stencil(GL_STENCIL_TEST); 1531 LLGLDisable stencil(GL_STENCIL_TEST);
1504 { 1532 {
1505 LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GREATER); 1533 LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GREATER);
1506 glBindTexture(GL_TEXTURE_2D, sGridTex); 1534 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, getGridTexName());
1507 gGL.flush(); 1535 gGL.flush();
1508 gGL.blendFunc(LLRender::BF_ZERO, LLRender::BF_ONE_MINUS_SOURCE_ALPHA); 1536 gGL.blendFunc(LLRender::BF_ZERO, LLRender::BF_ONE_MINUS_SOURCE_ALPHA);
1509 renderGrid(u,v,tiles,0.9f, 0.9f, 0.9f,a*0.15f); 1537 renderGrid(u,v,tiles,0.9f, 0.9f, 0.9f,a*0.15f);
@@ -1514,11 +1542,11 @@ void LLManipTranslate::renderSnapGuides()
1514 { 1542 {
1515 LLGLDisable alpha_test(GL_ALPHA_TEST); 1543 LLGLDisable alpha_test(GL_ALPHA_TEST);
1516 //draw black overlay 1544 //draw black overlay
1517 LLImageGL::unbindTexture(0); 1545 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1518 renderGrid(u,v,tiles,0.0f, 0.0f, 0.0f,a*0.16f); 1546 renderGrid(u,v,tiles,0.0f, 0.0f, 0.0f,a*0.16f);
1519 1547
1520 //draw grid top 1548 //draw grid top
1521 glBindTexture(GL_TEXTURE_2D, sGridTex); 1549 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, getGridTexName());
1522 renderGrid(u,v,tiles,1,1,1,a); 1550 renderGrid(u,v,tiles,1,1,1,a);
1523 1551
1524 gGL.popMatrix(); 1552 gGL.popMatrix();
@@ -1564,7 +1592,7 @@ void LLManipTranslate::renderGrid(F32 x, F32 y, F32 size, F32 r, F32 g, F32 b, F
1564 1592
1565 for (F32 xx = -size-d; xx < size+d; xx += d) 1593 for (F32 xx = -size-d; xx < size+d; xx += d)
1566 { 1594 {
1567 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); 1595 gGL.begin(LLRender::TRIANGLE_STRIP);
1568 for (F32 yy = -size-d; yy < size+d; yy += d) 1596 for (F32 yy = -size-d; yy < size+d; yy += d)
1569 { 1597 {
1570 float dx, dy, da; 1598 float dx, dy, da;
@@ -1620,7 +1648,7 @@ void LLManipTranslate::highlightIntersection(LLVector3 normal,
1620 LLGLDepthTest depth (GL_TRUE, GL_FALSE, GL_ALWAYS); 1648 LLGLDepthTest depth (GL_TRUE, GL_FALSE, GL_ALWAYS);
1621 glStencilFunc(GL_ALWAYS, 0, stencil_mask); 1649 glStencilFunc(GL_ALWAYS, 0, stencil_mask);
1622 gGL.setColorMask(false, false); 1650 gGL.setColorMask(false, false);
1623 LLImageGL::unbindTexture(0); 1651 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1624 glColor4f(1,1,1,1); 1652 glColor4f(1,1,1,1);
1625 1653
1626 //setup clip plane 1654 //setup clip plane
@@ -1686,7 +1714,7 @@ void LLManipTranslate::highlightIntersection(LLVector3 normal,
1686 1714
1687 //draw volume/plane intersections 1715 //draw volume/plane intersections
1688 { 1716 {
1689 LLImageGL::unbindTexture(0); 1717 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1690 LLGLDepthTest depth(GL_FALSE); 1718 LLGLDepthTest depth(GL_FALSE);
1691 LLGLEnable stencil(GL_STENCIL_TEST); 1719 LLGLEnable stencil(GL_STENCIL_TEST);
1692 glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); 1720 glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
@@ -1834,7 +1862,7 @@ void LLManipTranslate::renderTranslationHandles()
1834 relative_camera_dir.normVec(); 1862 relative_camera_dir.normVec();
1835 1863
1836 { 1864 {
1837 LLGLSNoTexture gls_ui_no_texture; 1865 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1838 LLGLDisable cull_face(GL_CULL_FACE); 1866 LLGLDisable cull_face(GL_CULL_FACE);
1839 1867
1840 LLColor4 color1; 1868 LLColor4 color1;
@@ -1877,7 +1905,7 @@ void LLManipTranslate::renderTranslationHandles()
1877 color1.setVec(0.f, 1.f, 0.f, 0.6f); 1905 color1.setVec(0.f, 1.f, 0.f, 0.6f);
1878 color2.setVec(0.f, 0.f, 1.f, 0.6f); 1906 color2.setVec(0.f, 0.f, 1.f, 0.6f);
1879 } 1907 }
1880 gGL.begin(LLVertexBuffer::TRIANGLES); 1908 gGL.begin(LLRender::TRIANGLES);
1881 { 1909 {
1882 gGL.color4fv(color1.mV); 1910 gGL.color4fv(color1.mV);
1883 gGL.vertex3f(0.f, mPlaneManipOffsetMeters * (-PLANE_TICK_SIZE * 0.25f), mPlaneManipOffsetMeters * (-PLANE_TICK_SIZE * 0.25f)); 1911 gGL.vertex3f(0.f, mPlaneManipOffsetMeters * (-PLANE_TICK_SIZE * 0.25f), mPlaneManipOffsetMeters * (-PLANE_TICK_SIZE * 0.25f));
@@ -1892,7 +1920,7 @@ void LLManipTranslate::renderTranslationHandles()
1892 gGL.end(); 1920 gGL.end();
1893 1921
1894 LLUI::setLineWidth(3.0f); 1922 LLUI::setLineWidth(3.0f);
1895 gGL.begin(LLVertexBuffer::LINES); 1923 gGL.begin(LLRender::LINES);
1896 { 1924 {
1897 gGL.color4f(0.f, 0.f, 0.f, 0.3f); 1925 gGL.color4f(0.f, 0.f, 0.f, 0.3f);
1898 gGL.vertex3f(0.f, mPlaneManipOffsetMeters * -PLANE_TICK_SIZE * 0.25f, mPlaneManipOffsetMeters * -PLANE_TICK_SIZE * 0.25f); 1926 gGL.vertex3f(0.f, mPlaneManipOffsetMeters * -PLANE_TICK_SIZE * 0.25f, mPlaneManipOffsetMeters * -PLANE_TICK_SIZE * 0.25f);
@@ -1932,7 +1960,7 @@ void LLManipTranslate::renderTranslationHandles()
1932 color2.setVec(1.f, 0.f, 0.f, 0.6f); 1960 color2.setVec(1.f, 0.f, 0.f, 0.6f);
1933 } 1961 }
1934 1962
1935 gGL.begin(LLVertexBuffer::TRIANGLES); 1963 gGL.begin(LLRender::TRIANGLES);
1936 { 1964 {
1937 gGL.color4fv(color1.mV); 1965 gGL.color4fv(color1.mV);
1938 gGL.vertex3f(mPlaneManipOffsetMeters * (PLANE_TICK_SIZE * 0.25f), 0.f, mPlaneManipOffsetMeters * (PLANE_TICK_SIZE * 0.25f)); 1966 gGL.vertex3f(mPlaneManipOffsetMeters * (PLANE_TICK_SIZE * 0.25f), 0.f, mPlaneManipOffsetMeters * (PLANE_TICK_SIZE * 0.25f));
@@ -1947,7 +1975,7 @@ void LLManipTranslate::renderTranslationHandles()
1947 gGL.end(); 1975 gGL.end();
1948 1976
1949 LLUI::setLineWidth(3.0f); 1977 LLUI::setLineWidth(3.0f);
1950 gGL.begin(LLVertexBuffer::LINES); 1978 gGL.begin(LLRender::LINES);
1951 { 1979 {
1952 gGL.color4f(0.f, 0.f, 0.f, 0.3f); 1980 gGL.color4f(0.f, 0.f, 0.f, 0.3f);
1953 gGL.vertex3f(mPlaneManipOffsetMeters * -PLANE_TICK_SIZE * 0.25f, 0.f, mPlaneManipOffsetMeters * -PLANE_TICK_SIZE * 0.25f); 1981 gGL.vertex3f(mPlaneManipOffsetMeters * -PLANE_TICK_SIZE * 0.25f, 0.f, mPlaneManipOffsetMeters * -PLANE_TICK_SIZE * 0.25f);
@@ -2011,7 +2039,7 @@ void LLManipTranslate::renderTranslationHandles()
2011 color2.setVec(0.f, 0.8f, 0.f, 0.6f); 2039 color2.setVec(0.f, 0.8f, 0.f, 0.6f);
2012 } 2040 }
2013 2041
2014 gGL.begin(LLVertexBuffer::TRIANGLES); 2042 gGL.begin(LLRender::TRIANGLES);
2015 { 2043 {
2016 gGL.color4fv(color1.mV); 2044 gGL.color4fv(color1.mV);
2017 gGL.vertex3fv(v0.mV); 2045 gGL.vertex3fv(v0.mV);
@@ -2026,7 +2054,7 @@ void LLManipTranslate::renderTranslationHandles()
2026 gGL.end(); 2054 gGL.end();
2027 2055
2028 LLUI::setLineWidth(3.0f); 2056 LLUI::setLineWidth(3.0f);
2029 gGL.begin(LLVertexBuffer::LINES); 2057 gGL.begin(LLRender::LINES);
2030 { 2058 {
2031 gGL.color4f(0.f, 0.f, 0.f, 0.3f); 2059 gGL.color4f(0.f, 0.f, 0.f, 0.3f);
2032 LLVector3 v12 = (v1 + v2) * .5f; 2060 LLVector3 v12 = (v1 + v2) * .5f;
@@ -2052,7 +2080,7 @@ void LLManipTranslate::renderTranslationHandles()
2052 } 2080 }
2053 } 2081 }
2054 { 2082 {
2055 LLGLSNoTexture gls_ui_no_texture; 2083 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
2056 2084
2057 // Since we draw handles with depth testing off, we need to draw them in the 2085 // Since we draw handles with depth testing off, we need to draw them in the
2058 // proper depth order. 2086 // proper depth order.
@@ -2126,7 +2154,7 @@ void LLManipTranslate::renderTranslationHandles()
2126 2154
2127void LLManipTranslate::renderArrow(S32 which_arrow, S32 selected_arrow, F32 box_size, F32 arrow_size, F32 handle_size, BOOL reverse_direction) 2155void LLManipTranslate::renderArrow(S32 which_arrow, S32 selected_arrow, F32 box_size, F32 arrow_size, F32 handle_size, BOOL reverse_direction)
2128{ 2156{
2129 LLGLSNoTexture gls_ui_no_texture; 2157 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
2130 LLGLEnable gls_blend(GL_BLEND); 2158 LLGLEnable gls_blend(GL_BLEND);
2131 LLGLEnable gls_color_material(GL_COLOR_MATERIAL); 2159 LLGLEnable gls_color_material(GL_COLOR_MATERIAL);
2132 2160
@@ -2160,7 +2188,7 @@ void LLManipTranslate::renderArrow(S32 which_arrow, S32 selected_arrow, F32 box_
2160 2188
2161 { 2189 {
2162 LLUI::setLineWidth(2.0f); 2190 LLUI::setLineWidth(2.0f);
2163 gGL.begin(LLVertexBuffer::LINES); 2191 gGL.begin(LLRender::LINES);
2164 vec.mV[index] = box_size; 2192 vec.mV[index] = box_size;
2165 gGL.vertex3f(vec.mV[0], vec.mV[1], vec.mV[2]); 2193 gGL.vertex3f(vec.mV[0], vec.mV[1], vec.mV[2]);
2166 2194
diff --git a/linden/indra/newview/llmaniptranslate.h b/linden/indra/newview/llmaniptranslate.h
index 383f4da..5b1c048 100644
--- a/linden/indra/newview/llmaniptranslate.h
+++ b/linden/indra/newview/llmaniptranslate.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -55,6 +55,8 @@ public:
55 LLManipTranslate( LLToolComposite* composite ); 55 LLManipTranslate( LLToolComposite* composite );
56 virtual ~LLManipTranslate(); 56 virtual ~LLManipTranslate();
57 57
58 static U32 getGridTexName() ;
59 static void destroyGL();
58 static void restoreGL(); 60 static void restoreGL();
59 virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); 61 virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
60 virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); 62 virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
diff --git a/linden/indra/newview/llmapresponders.cpp b/linden/indra/newview/llmapresponders.cpp
index d16bc78..7654e9b 100644
--- a/linden/indra/newview/llmapresponders.cpp
+++ b/linden/indra/newview/llmapresponders.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -66,7 +66,7 @@ void LLMapLayerResponder::result(const LLSD& result)
66 new_layer.LayerDefined = TRUE; 66 new_layer.LayerDefined = TRUE;
67 new_layer.LayerImageID = layer_data["ImageID"]; 67 new_layer.LayerImageID = layer_data["ImageID"];
68 new_layer.LayerImage = gImageList.getImage(new_layer.LayerImageID, MIPMAP_TRUE, FALSE); 68 new_layer.LayerImage = gImageList.getImage(new_layer.LayerImageID, MIPMAP_TRUE, FALSE);
69 new_layer.LayerImage->bindTexture(0); 69 gGL.getTexUnit(0)->bind(new_layer.LayerImage.get());
70 new_layer.LayerImage->setClamp(TRUE, TRUE); 70 new_layer.LayerImage->setClamp(TRUE, TRUE);
71 71
72 new_layer.LayerExtents.mLeft = layer_data["Left"]; 72 new_layer.LayerExtents.mLeft = layer_data["Left"];
@@ -163,7 +163,7 @@ void LLMapLayerResponder::result(const LLSD& result)
163 siminfo->mWaterHeight = (F32) water_height; 163 siminfo->mWaterHeight = (F32) water_height;
164 siminfo->mMapImageID[agent_flags] = image_id; 164 siminfo->mMapImageID[agent_flags] = image_id;
165 siminfo->mCurrentImage = gImageList.getImage(siminfo->mMapImageID[LLWorldMap::getInstance()->mCurrentMap], MIPMAP_TRUE, FALSE); 165 siminfo->mCurrentImage = gImageList.getImage(siminfo->mMapImageID[LLWorldMap::getInstance()->mCurrentMap], MIPMAP_TRUE, FALSE);
166 siminfo->mCurrentImage->bindTexture(0); 166 gGL.getTexUnit(0)->bind(siminfo->mCurrentImage.get());
167 siminfo->mCurrentImage->setClamp(TRUE, TRUE); 167 siminfo->mCurrentImage->setClamp(TRUE, TRUE);
168 168
169 if (siminfo->mMapImageID[2].notNull()) 169 if (siminfo->mMapImageID[2].notNull())
diff --git a/linden/indra/newview/llmapresponders.h b/linden/indra/newview/llmapresponders.h
index a9d8dcd..b72d8e4 100644
--- a/linden/indra/newview/llmapresponders.h
+++ b/linden/indra/newview/llmapresponders.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmediaremotectrl.cpp b/linden/indra/newview/llmediaremotectrl.cpp
index 06978d7..eae5a24 100644
--- a/linden/indra/newview/llmediaremotectrl.cpp
+++ b/linden/indra/newview/llmediaremotectrl.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmediaremotectrl.h b/linden/indra/newview/llmediaremotectrl.h
index cb1cbbe..2537585 100644
--- a/linden/indra/newview/llmediaremotectrl.h
+++ b/linden/indra/newview/llmediaremotectrl.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmemoryview.cpp b/linden/indra/newview/llmemoryview.cpp
index c814e2b..0c5df1f 100644
--- a/linden/indra/newview/llmemoryview.cpp
+++ b/linden/indra/newview/llmemoryview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -146,7 +146,7 @@ void LLMemoryView::draw()
146 S32 height = getRect().getHeight(); 146 S32 height = getRect().getHeight();
147 147
148 LLGLSUIDefault gls_ui; 148 LLGLSUIDefault gls_ui;
149 LLGLSNoTexture gls_no_tex; 149 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
150 gl_rect_2d(0, height, width, 0, LLColor4(0.f, 0.f, 0.f, 0.25f)); 150 gl_rect_2d(0, height, width, 0, LLColor4(0.f, 0.f, 0.f, 0.25f));
151 151
152#if MEM_TRACK_TYPE 152#if MEM_TRACK_TYPE
diff --git a/linden/indra/newview/llmemoryview.h b/linden/indra/newview/llmemoryview.h
index 3fd61a1..fe07be1 100644
--- a/linden/indra/newview/llmemoryview.h
+++ b/linden/indra/newview/llmemoryview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmenucommands.cpp b/linden/indra/newview/llmenucommands.cpp
index 14db323..2275047 100644
--- a/linden/indra/newview/llmenucommands.cpp
+++ b/linden/indra/newview/llmenucommands.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmenucommands.h b/linden/indra/newview/llmenucommands.h
index c08167d..5b17b2e 100644
--- a/linden/indra/newview/llmenucommands.h
+++ b/linden/indra/newview/llmenucommands.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmimetypes.cpp b/linden/indra/newview/llmimetypes.cpp
index 355dc33..acb8809 100644
--- a/linden/indra/newview/llmimetypes.cpp
+++ b/linden/indra/newview/llmimetypes.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmimetypes.h b/linden/indra/newview/llmimetypes.h
index 56aba9b..0b03570 100644
--- a/linden/indra/newview/llmimetypes.h
+++ b/linden/indra/newview/llmimetypes.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmorphview.cpp b/linden/indra/newview/llmorphview.cpp
index 6a592e6..4de4e75 100644
--- a/linden/indra/newview/llmorphview.cpp
+++ b/linden/indra/newview/llmorphview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmorphview.h b/linden/indra/newview/llmorphview.h
index 1ea09ac..a417c6a 100644
--- a/linden/indra/newview/llmorphview.h
+++ b/linden/indra/newview/llmorphview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmoveview.cpp b/linden/indra/newview/llmoveview.cpp
index 0427072..9f11afb 100644
--- a/linden/indra/newview/llmoveview.cpp
+++ b/linden/indra/newview/llmoveview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmoveview.h b/linden/indra/newview/llmoveview.h
index a3a4ad1..760253e 100644
--- a/linden/indra/newview/llmoveview.h
+++ b/linden/indra/newview/llmoveview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llmutelist.cpp b/linden/indra/newview/llmutelist.cpp
index 0cdfe83..a9bf4b3 100644
--- a/linden/indra/newview/llmutelist.cpp
+++ b/linden/indra/newview/llmutelist.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2003&license=viewergpl$ 6 * $LicenseInfo:firstyear=2003&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2003-2008, Linden Research, Inc. 8 * Copyright (c) 2003-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -71,6 +71,24 @@
71#include "llviewerobject.h" 71#include "llviewerobject.h"
72#include "llviewerobjectlist.h" 72#include "llviewerobjectlist.h"
73 73
74namespace
75{
76 // This method is used to return an object to mute given an object id.
77 // Its used by the LLMute constructor and LLMuteList::isMuted.
78 LLViewerObject* get_object_to_mute_from_id(LLUUID object_id)
79 {
80 LLViewerObject *objectp = gObjectList.findObject(object_id);
81 if ((objectp) && (!objectp->isAvatar()))
82 {
83 LLViewerObject *parentp = (LLViewerObject *)objectp->getParent();
84 if (parentp && parentp->getID() != gAgent.getID())
85 {
86 objectp = parentp;
87 }
88 }
89 return objectp;
90 }
91}
74 92
75// "emptymutelist" 93// "emptymutelist"
76class LLDispatchEmptyMuteList : public LLDispatchHandler 94class LLDispatchEmptyMuteList : public LLDispatchHandler
@@ -97,6 +115,32 @@ const char AGENT_SUFFIX[] = " (resident)";
97const char OBJECT_SUFFIX[] = " (object)"; 115const char OBJECT_SUFFIX[] = " (object)";
98const char GROUP_SUFFIX[] = " (group)"; 116const char GROUP_SUFFIX[] = " (group)";
99 117
118
119LLMute::LLMute(const LLUUID& id, const std::string& name, EType type, U32 flags)
120 : mID(id),
121 mName(name),
122 mType(type),
123 mFlags(flags)
124{
125 // muting is done by root objects only - try to find this objects root
126 LLViewerObject* mute_object = get_object_to_mute_from_id(id);
127 if(mute_object && mute_object->getID() != id)
128 {
129 mID = mute_object->getID();
130 LLNameValue* firstname = mute_object->getNVPair("FirstName");
131 LLNameValue* lastname = mute_object->getNVPair("LastName");
132 if (firstname && lastname)
133 {
134 mName.assign( firstname->getString() );
135 mName.append(" ");
136 mName.append( lastname->getString() );
137 }
138 mType = mute_object->isAvatar() ? AGENT : OBJECT;
139 }
140
141}
142
143
100std::string LLMute::getDisplayName() const 144std::string LLMute::getDisplayName() const
101{ 145{
102 std::string name_with_suffix = mName; 146 std::string name_with_suffix = mName;
@@ -216,17 +260,24 @@ void LLMuteList::loadUserVolumes()
216//----------------------------------------------------------------------------- 260//-----------------------------------------------------------------------------
217LLMuteList::~LLMuteList() 261LLMuteList::~LLMuteList()
218{ 262{
219 std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml"); 263 // If we quit from the login screen we will not have an SL account
220 LLSD settings_llsd; 264 // name. Don't try to save, otherwise we'll dump a file in
221 265 // C:\Program Files\SecondLife\ JC
222 for(user_volume_map_t::iterator iter = mUserVolumeSettings.begin(); iter != mUserVolumeSettings.end(); ++iter) 266 std::string user_dir = gDirUtilp->getLindenUserDir();
267 if (!user_dir.empty())
223 { 268 {
224 settings_llsd[iter->first.asString()] = iter->second; 269 std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml");
225 } 270 LLSD settings_llsd;
226 271
227 llofstream file; 272 for(user_volume_map_t::iterator iter = mUserVolumeSettings.begin(); iter != mUserVolumeSettings.end(); ++iter)
228 file.open(filename); 273 {
229 LLSDSerialize::toPrettyXML(settings_llsd, file); 274 settings_llsd[iter->first.asString()] = iter->second;
275 }
276
277 llofstream file;
278 file.open(filename);
279 LLSDSerialize::toPrettyXML(settings_llsd, file);
280 }
230} 281}
231 282
232BOOL LLMuteList::isLinden(const std::string& name) const 283BOOL LLMuteList::isLinden(const std::string& name) const
@@ -635,19 +686,10 @@ BOOL LLMuteList::saveToFile(const std::string& filename)
635 686
636BOOL LLMuteList::isMuted(const LLUUID& id, const std::string& name, U32 flags) const 687BOOL LLMuteList::isMuted(const LLUUID& id, const std::string& name, U32 flags) const
637{ 688{
638 LLUUID id_to_check = id;
639
640 // for objects, check for muting on their parent prim 689 // for objects, check for muting on their parent prim
641 LLViewerObject *objectp = gObjectList.findObject(id); 690 LLViewerObject* mute_object = get_object_to_mute_from_id(id);
642 if ((objectp) && (!objectp->isAvatar())) 691 LLUUID id_to_check = (mute_object) ? mute_object->getID() : id;
643 { 692
644 LLViewerObject *parentp = (LLViewerObject *)objectp->getParent();
645 if (parentp)
646 {
647 id_to_check = parentp->getID();
648 }
649 }
650
651 // don't need name or type for lookup 693 // don't need name or type for lookup
652 LLMute mute(id_to_check); 694 LLMute mute(id_to_check);
653 mute_set_t::const_iterator mute_it = mMutes.find(mute); 695 mute_set_t::const_iterator mute_it = mMutes.find(mute);
diff --git a/linden/indra/newview/llmutelist.h b/linden/indra/newview/llmutelist.h
index 400f13e..6b3cfcb 100644
--- a/linden/indra/newview/llmutelist.h
+++ b/linden/indra/newview/llmutelist.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -60,8 +60,7 @@ public:
60 flagAll = 0x0000000F // Mask of all currently defined flags 60 flagAll = 0x0000000F // Mask of all currently defined flags
61 }; 61 };
62 62
63 LLMute(const LLUUID& id, const std::string& name = std::string(), EType type = BY_NAME, U32 flags = 0) 63 LLMute(const LLUUID& id, const std::string& name = std::string(), EType type = BY_NAME, U32 flags = 0);
64 : mID(id), mName(name), mType(type),mFlags(flags) { }
65 64
66 // Returns name + suffix based on type 65 // Returns name + suffix based on type
67 // For example: "James Tester (resident)" 66 // For example: "James Tester (resident)"
diff --git a/linden/indra/newview/llnamebox.cpp b/linden/indra/newview/llnamebox.cpp
index d178c5a..26759bc 100644
--- a/linden/indra/newview/llnamebox.cpp
+++ b/linden/indra/newview/llnamebox.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llnamebox.h b/linden/indra/newview/llnamebox.h
index 09770e3..e77db88 100644
--- a/linden/indra/newview/llnamebox.h
+++ b/linden/indra/newview/llnamebox.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llnameeditor.cpp b/linden/indra/newview/llnameeditor.cpp
index 5557f84..ef4d7f7 100644
--- a/linden/indra/newview/llnameeditor.cpp
+++ b/linden/indra/newview/llnameeditor.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llnameeditor.h b/linden/indra/newview/llnameeditor.h
index 84ae219..b1a9467 100644
--- a/linden/indra/newview/llnameeditor.h
+++ b/linden/indra/newview/llnameeditor.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llnamelistctrl.cpp b/linden/indra/newview/llnamelistctrl.cpp
index b8bda78..1617a66 100644
--- a/linden/indra/newview/llnamelistctrl.cpp
+++ b/linden/indra/newview/llnamelistctrl.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llnamelistctrl.h b/linden/indra/newview/llnamelistctrl.h
index c4bf12b..85a214c 100644
--- a/linden/indra/newview/llnamelistctrl.h
+++ b/linden/indra/newview/llnamelistctrl.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llnetmap.cpp b/linden/indra/newview/llnetmap.cpp
index ee853fe..9d92576 100644
--- a/linden/indra/newview/llnetmap.cpp
+++ b/linden/indra/newview/llnetmap.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2001&license=viewergpl$ 6 * $LicenseInfo:firstyear=2001&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2001-2008, Linden Research, Inc. 8 * Copyright (c) 2001-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -229,7 +229,7 @@ void LLNetMap::draw()
229 LLGLEnable scissor(GL_SCISSOR_TEST); 229 LLGLEnable scissor(GL_SCISSOR_TEST);
230 230
231 { 231 {
232 LLGLSNoTexture no_texture; 232 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
233 LLLocalClipRect clip(getLocalRect()); 233 LLLocalClipRect clip(getLocalRect());
234 234
235 glMatrixMode(GL_MODELVIEW); 235 glMatrixMode(GL_MODELVIEW);
@@ -289,8 +289,8 @@ void LLNetMap::draw()
289 289
290 290
291 // Draw using texture. 291 // Draw using texture.
292 LLViewerImage::bindTexture(regionp->getLand().getSTexture()); 292 gGL.getTexUnit(0)->bind(regionp->getLand().getSTexture());
293 gGL.begin(LLVertexBuffer::QUADS); 293 gGL.begin(LLRender::QUADS);
294 gGL.texCoord2f(0.f, 1.f); 294 gGL.texCoord2f(0.f, 1.f);
295 gGL.vertex2f(left, top); 295 gGL.vertex2f(left, top);
296 gGL.texCoord2f(0.f, 0.f); 296 gGL.texCoord2f(0.f, 0.f);
@@ -306,8 +306,8 @@ void LLNetMap::draw()
306 { 306 {
307 if (regionp->getLand().getWaterTexture()) 307 if (regionp->getLand().getWaterTexture())
308 { 308 {
309 LLViewerImage::bindTexture(regionp->getLand().getWaterTexture()); 309 gGL.getTexUnit(0)->bind(regionp->getLand().getWaterTexture());
310 gGL.begin(LLVertexBuffer::QUADS); 310 gGL.begin(LLRender::QUADS);
311 gGL.texCoord2f(0.f, 1.f); 311 gGL.texCoord2f(0.f, 1.f);
312 gGL.vertex2f(left, top); 312 gGL.vertex2f(left, top);
313 gGL.texCoord2f(0.f, 0.f); 313 gGL.texCoord2f(0.f, 0.f);
@@ -353,11 +353,11 @@ void LLNetMap::draw()
353 map_center_agent.mV[VX] *= gMiniMapScale/region_width; 353 map_center_agent.mV[VX] *= gMiniMapScale/region_width;
354 map_center_agent.mV[VY] *= gMiniMapScale/region_width; 354 map_center_agent.mV[VY] *= gMiniMapScale/region_width;
355 355
356 LLViewerImage::bindTexture(mObjectImagep); 356 gGL.getTexUnit(0)->bind(mObjectImagep);
357 F32 image_half_width = 0.5f*mObjectMapPixels; 357 F32 image_half_width = 0.5f*mObjectMapPixels;
358 F32 image_half_height = 0.5f*mObjectMapPixels; 358 F32 image_half_height = 0.5f*mObjectMapPixels;
359 359
360 gGL.begin(LLVertexBuffer::QUADS); 360 gGL.begin(LLRender::QUADS);
361 gGL.texCoord2f(0.f, 1.f); 361 gGL.texCoord2f(0.f, 1.f);
362 gGL.vertex2f(map_center_agent.mV[VX] - image_half_width, image_half_height + map_center_agent.mV[VY]); 362 gGL.vertex2f(map_center_agent.mV[VX] - image_half_width, image_half_height + map_center_agent.mV[VY]);
363 gGL.texCoord2f(0.f, 0.f); 363 gGL.texCoord2f(0.f, 0.f);
@@ -460,13 +460,13 @@ void LLNetMap::draw()
460 F32 ctr_y = (F32)center_sw_bottom; 460 F32 ctr_y = (F32)center_sw_bottom;
461 461
462 462
463 LLGLSNoTexture no_texture; 463 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
464 464
465 if( LLNetMap::sRotateMap ) 465 if( LLNetMap::sRotateMap )
466 { 466 {
467 gGL.color4fv(gFrustumMapColor.mV); 467 gGL.color4fv(gFrustumMapColor.mV);
468 468
469 gGL.begin( LLVertexBuffer::TRIANGLES ); 469 gGL.begin( LLRender::TRIANGLES );
470 gGL.vertex2f( ctr_x, ctr_y ); 470 gGL.vertex2f( ctr_x, ctr_y );
471 gGL.vertex2f( ctr_x - half_width_pixels, ctr_y + far_clip_pixels ); 471 gGL.vertex2f( ctr_x - half_width_pixels, ctr_y + far_clip_pixels );
472 gGL.vertex2f( ctr_x + half_width_pixels, ctr_y + far_clip_pixels ); 472 gGL.vertex2f( ctr_x + half_width_pixels, ctr_y + far_clip_pixels );
@@ -480,7 +480,7 @@ void LLNetMap::draw()
480 gGL.pushMatrix(); 480 gGL.pushMatrix();
481 gGL.translatef( ctr_x, ctr_y, 0 ); 481 gGL.translatef( ctr_x, ctr_y, 0 );
482 glRotatef( atan2( LLViewerCamera::getInstance()->getAtAxis().mV[VX], LLViewerCamera::getInstance()->getAtAxis().mV[VY] ) * RAD_TO_DEG, 0.f, 0.f, -1.f); 482 glRotatef( atan2( LLViewerCamera::getInstance()->getAtAxis().mV[VX], LLViewerCamera::getInstance()->getAtAxis().mV[VY] ) * RAD_TO_DEG, 0.f, 0.f, -1.f);
483 gGL.begin( LLVertexBuffer::TRIANGLES ); 483 gGL.begin( LLRender::TRIANGLES );
484 gGL.vertex2f( 0, 0 ); 484 gGL.vertex2f( 0, 0 );
485 gGL.vertex2f( -half_width_pixels, far_clip_pixels ); 485 gGL.vertex2f( -half_width_pixels, far_clip_pixels );
486 gGL.vertex2f( half_width_pixels, far_clip_pixels ); 486 gGL.vertex2f( half_width_pixels, far_clip_pixels );
@@ -649,7 +649,11 @@ void LLNetMap::renderScaledPointGlobal( const LLVector3d& pos, const LLColor4U &
649 LLVector3 local_pos; 649 LLVector3 local_pos;
650 local_pos.setVec( pos - mObjectImageCenterGlobal ); 650 local_pos.setVec( pos - mObjectImageCenterGlobal );
651 651
652 S32 diameter_pixels = llround(2 * radius_meters * mObjectMapTPM); 652 // DEV-17370 - megaprims of size > 4096 cause lag. (go figger.)
653 const F32 MAX_RADIUS = 256.0f;
654 F32 radius_clamped = llmin(radius_meters, MAX_RADIUS);
655
656 S32 diameter_pixels = llround(2 * radius_clamped * mObjectMapTPM);
653 renderPoint( local_pos, color, diameter_pixels ); 657 renderPoint( local_pos, color, diameter_pixels );
654} 658}
655 659
diff --git a/linden/indra/newview/llnetmap.h b/linden/indra/newview/llnetmap.h
index 91027c5..65d4a4c 100644
--- a/linden/indra/newview/llnetmap.h
+++ b/linden/indra/newview/llnetmap.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llnotify.cpp b/linden/indra/newview/llnotify.cpp
index f703736..9e837a6 100644
--- a/linden/indra/newview/llnotify.cpp
+++ b/linden/indra/newview/llnotify.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -509,7 +509,7 @@ void LLNotifyBox::drawBackground() const
509 LLUIImagePtr imagep = LLUI::getUIImage("rounded_square.tga"); 509 LLUIImagePtr imagep = LLUI::getUIImage("rounded_square.tga");
510 if (imagep) 510 if (imagep)
511 { 511 {
512 LLViewerImage::bindTexture(imagep->getImage()); 512 gGL.getTexUnit(0)->bind(imagep->getImage());
513 // set proper background color depending on whether notify box is a caution or not 513 // set proper background color depending on whether notify box is a caution or not
514 LLColor4 color = mIsCaution? gColors.getColor("NotifyCautionBoxColor") : gColors.getColor("NotifyBoxColor"); 514 LLColor4 color = mIsCaution? gColors.getColor("NotifyCautionBoxColor") : gColors.getColor("NotifyBoxColor");
515 if(gFocusMgr.childHasKeyboardFocus( this )) 515 if(gFocusMgr.childHasKeyboardFocus( this ))
@@ -971,10 +971,12 @@ LLNotifyBox * LLNotifyBoxView::getFirstNontipBox() const
971 iter++) 971 iter++)
972 { 972 {
973 // hack! *TODO: Integrate llnotify and llgroupnotify 973 // hack! *TODO: Integrate llnotify and llgroupnotify
974 LLView* view = *iter; 974 if(isGroupNotifyBox(*iter))
975 if (view->getName() == "groupnotify") 975 {
976 continue; 976 continue;
977 LLNotifyBox* box = static_cast<LLNotifyBox*>(view); 977 }
978
979 LLNotifyBox* box = (LLNotifyBox*)(*iter);
978 if(!box->isTip() && !box->isDead()) 980 if(!box->isTip() && !box->isDead())
979 { 981 {
980 return box; 982 return box;
@@ -988,13 +990,23 @@ void LLNotifyBoxView::showOnly(LLView * view)
988 if(view) 990 if(view)
989 { 991 {
990 // assumes that the argument is actually a child 992 // assumes that the argument is actually a child
991 LLNotifyBox * shown = static_cast<LLNotifyBox*>(view); 993 LLNotifyBox * shown = dynamic_cast<LLNotifyBox*>(view);
994 if(!shown)
995 {
996 return ;
997 }
998
992 // make every other notification invisible 999 // make every other notification invisible
993 for(child_list_const_iter_t iter = getChildList()->begin(); 1000 for(child_list_const_iter_t iter = getChildList()->begin();
994 iter != getChildList()->end(); 1001 iter != getChildList()->end();
995 iter++) 1002 iter++)
996 { 1003 {
997 LLNotifyBox * box = static_cast<LLNotifyBox*>(*iter); 1004 if(isGroupNotifyBox(*iter))
1005 {
1006 continue;
1007 }
1008
1009 LLNotifyBox * box = (LLNotifyBox*)(*iter);
998 if(box != view && box->getVisible() && !box->isTip()) 1010 if(box != view && box->getVisible() && !box->isTip())
999 { 1011 {
1000 box->setVisible(FALSE); 1012 box->setVisible(FALSE);
@@ -1014,6 +1026,11 @@ void LLNotifyBoxView::purgeMessagesMatching(const Matcher& matcher)
1014 iter != notification_queue.end(); 1026 iter != notification_queue.end();
1015 iter++) 1027 iter++)
1016 { 1028 {
1029 if(isGroupNotifyBox(*iter))
1030 {
1031 continue;
1032 }
1033
1017 LLNotifyBox* notification = (LLNotifyBox*)*iter; 1034 LLNotifyBox* notification = (LLNotifyBox*)*iter;
1018 if(matcher.matches(notification->getNotifyCallback(), notification->getUserData())) 1035 if(matcher.matches(notification->getNotifyCallback(), notification->getUserData()))
1019 { 1036 {
@@ -1021,3 +1038,14 @@ void LLNotifyBoxView::purgeMessagesMatching(const Matcher& matcher)
1021 } 1038 }
1022 } 1039 }
1023} 1040}
1041
1042bool LLNotifyBoxView::isGroupNotifyBox(const LLView* view) const
1043{
1044 if (view->getName() == "groupnotify")
1045 {
1046 return TRUE ;
1047 }
1048
1049 return FALSE ;
1050}
1051
diff --git a/linden/indra/newview/llnotify.h b/linden/indra/newview/llnotify.h
index 95d61eb..a653d19 100644
--- a/linden/indra/newview/llnotify.h
+++ b/linden/indra/newview/llnotify.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -179,6 +179,9 @@ public:
179 // Walks the list and removes any stacked messages for which the given matcher returns TRUE. 179 // Walks the list and removes any stacked messages for which the given matcher returns TRUE.
180 // Useful when muting people and things in order to clear out any similar previously queued messages. 180 // Useful when muting people and things in order to clear out any similar previously queued messages.
181 void purgeMessagesMatching(const Matcher& matcher); 181 void purgeMessagesMatching(const Matcher& matcher);
182
183private:
184 bool isGroupNotifyBox(const LLView* view) const ;
182}; 185};
183 186
184// This view contains the stack of notification windows. 187// This view contains the stack of notification windows.
diff --git a/linden/indra/newview/lloverlaybar.cpp b/linden/indra/newview/lloverlaybar.cpp
index a4eedbb..5dd5d39 100644
--- a/linden/indra/newview/lloverlaybar.cpp
+++ b/linden/indra/newview/lloverlaybar.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lloverlaybar.h b/linden/indra/newview/lloverlaybar.h
index 73d0a43..8b9b6bc 100644
--- a/linden/indra/newview/lloverlaybar.h
+++ b/linden/indra/newview/lloverlaybar.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelLCD.cpp b/linden/indra/newview/llpanelLCD.cpp
index cd6626c..f3e1bb5 100644
--- a/linden/indra/newview/llpanelLCD.cpp
+++ b/linden/indra/newview/llpanelLCD.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelLCD.h b/linden/indra/newview/llpanelLCD.h
index ede1b38..bdba23a 100644
--- a/linden/indra/newview/llpanelLCD.h
+++ b/linden/indra/newview/llpanelLCD.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelaudioprefs.cpp b/linden/indra/newview/llpanelaudioprefs.cpp
index 6dc1e73..69f39fa 100644
--- a/linden/indra/newview/llpanelaudioprefs.cpp
+++ b/linden/indra/newview/llpanelaudioprefs.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelaudioprefs.h b/linden/indra/newview/llpanelaudioprefs.h
index 01483ca..21ed385 100644
--- a/linden/indra/newview/llpanelaudioprefs.h
+++ b/linden/indra/newview/llpanelaudioprefs.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelaudiovolume.cpp b/linden/indra/newview/llpanelaudiovolume.cpp
index 9a66366..fa39f3e 100644
--- a/linden/indra/newview/llpanelaudiovolume.cpp
+++ b/linden/indra/newview/llpanelaudiovolume.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelaudiovolume.h b/linden/indra/newview/llpanelaudiovolume.h
index 0a2dbca..2227747 100644
--- a/linden/indra/newview/llpanelaudiovolume.h
+++ b/linden/indra/newview/llpanelaudiovolume.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelavatar.cpp b/linden/indra/newview/llpanelavatar.cpp
index 76dbd1f..e4a9c9e 100644
--- a/linden/indra/newview/llpanelavatar.cpp
+++ b/linden/indra/newview/llpanelavatar.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelavatar.h b/linden/indra/newview/llpanelavatar.h
index c0ef260..4570145 100644
--- a/linden/indra/newview/llpanelavatar.h
+++ b/linden/indra/newview/llpanelavatar.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelclassified.cpp b/linden/indra/newview/llpanelclassified.cpp
index 8228a97..4d28be5 100644
--- a/linden/indra/newview/llpanelclassified.cpp
+++ b/linden/indra/newview/llpanelclassified.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelclassified.h b/linden/indra/newview/llpanelclassified.h
index 93bb726..ff5a253 100644
--- a/linden/indra/newview/llpanelclassified.h
+++ b/linden/indra/newview/llpanelclassified.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelcontents.cpp b/linden/indra/newview/llpanelcontents.cpp
index 4d6508a..d91790e 100644
--- a/linden/indra/newview/llpanelcontents.cpp
+++ b/linden/indra/newview/llpanelcontents.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelcontents.h b/linden/indra/newview/llpanelcontents.h
index c53db90..a1c5ac2 100644
--- a/linden/indra/newview/llpanelcontents.h
+++ b/linden/indra/newview/llpanelcontents.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldebug.cpp b/linden/indra/newview/llpaneldebug.cpp
index 9d3b865..fb3c4cc 100644
--- a/linden/indra/newview/llpaneldebug.cpp
+++ b/linden/indra/newview/llpaneldebug.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldebug.h b/linden/indra/newview/llpaneldebug.h
index c849027..f2ffcfe 100644
--- a/linden/indra/newview/llpaneldebug.h
+++ b/linden/indra/newview/llpaneldebug.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirbrowser.cpp b/linden/indra/newview/llpaneldirbrowser.cpp
index 732a919..753f0f0 100644
--- a/linden/indra/newview/llpaneldirbrowser.cpp
+++ b/linden/indra/newview/llpaneldirbrowser.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirbrowser.h b/linden/indra/newview/llpaneldirbrowser.h
index aa7b0f5..c814786 100644
--- a/linden/indra/newview/llpaneldirbrowser.h
+++ b/linden/indra/newview/llpaneldirbrowser.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirclassified.cpp b/linden/indra/newview/llpaneldirclassified.cpp
index 1114707..c58b887 100644
--- a/linden/indra/newview/llpaneldirclassified.cpp
+++ b/linden/indra/newview/llpaneldirclassified.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirclassified.h b/linden/indra/newview/llpaneldirclassified.h
index 58bcb9c..1507b25 100644
--- a/linden/indra/newview/llpaneldirclassified.h
+++ b/linden/indra/newview/llpaneldirclassified.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirevents.cpp b/linden/indra/newview/llpaneldirevents.cpp
index 81e5a38..7bf439a 100644
--- a/linden/indra/newview/llpaneldirevents.cpp
+++ b/linden/indra/newview/llpaneldirevents.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirevents.h b/linden/indra/newview/llpaneldirevents.h
index ac981d3..3ef7951 100644
--- a/linden/indra/newview/llpaneldirevents.h
+++ b/linden/indra/newview/llpaneldirevents.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirfind.cpp b/linden/indra/newview/llpaneldirfind.cpp
index cc0a700..ff4286b 100644
--- a/linden/indra/newview/llpaneldirfind.cpp
+++ b/linden/indra/newview/llpaneldirfind.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -321,15 +321,8 @@ std::string LLPanelDirFind::getSearchURLSuffix(bool mature_in)
321 substring = "[SESSION]"; 321 substring = "[SESSION]";
322 url.replace(url.find(substring), substring.length(), session_string); 322 url.replace(url.find(substring), substring.length(), session_string);
323 323
324 // set the currently selected lanaguage by asking the pref setting 324 // set the currently selected language by asking the pref setting
325 std::string language_string = LLUI::sConfigGroup->getString( "Language" ); 325 std::string language_string = LLUI::getLanguage();
326 if ( language_string == "default" )
327 {
328 // if "default system language" setting used, ask again
329 // (we can't do this directly since it can vary if you install
330 // under one language and select a different one using prefs)
331 language_string = gSavedSettings.getString( "SystemLanguage" );
332 }
333 std::string language_tag = "[LANG]"; 326 std::string language_tag = "[LANG]";
334 url.replace( url.find( language_tag ), language_tag.length(), language_string ); 327 url.replace( url.find( language_tag ), language_tag.length(), language_string );
335 328
diff --git a/linden/indra/newview/llpaneldirfind.h b/linden/indra/newview/llpaneldirfind.h
index 2359d62..60d645b 100644
--- a/linden/indra/newview/llpaneldirfind.h
+++ b/linden/indra/newview/llpaneldirfind.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirgroups.cpp b/linden/indra/newview/llpaneldirgroups.cpp
index b765e99..5dac8ca 100644
--- a/linden/indra/newview/llpaneldirgroups.cpp
+++ b/linden/indra/newview/llpaneldirgroups.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirgroups.h b/linden/indra/newview/llpaneldirgroups.h
index 03608e2..38a8f2d 100644
--- a/linden/indra/newview/llpaneldirgroups.h
+++ b/linden/indra/newview/llpaneldirgroups.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirland.cpp b/linden/indra/newview/llpaneldirland.cpp
index 6e8af5f..52dace0 100644
--- a/linden/indra/newview/llpaneldirland.cpp
+++ b/linden/indra/newview/llpaneldirland.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirland.h b/linden/indra/newview/llpaneldirland.h
index 0ccfa51..2def0c4 100644
--- a/linden/indra/newview/llpaneldirland.h
+++ b/linden/indra/newview/llpaneldirland.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirpeople.cpp b/linden/indra/newview/llpaneldirpeople.cpp
index 4ecf3da..c111d40 100644
--- a/linden/indra/newview/llpaneldirpeople.cpp
+++ b/linden/indra/newview/llpaneldirpeople.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirpeople.h b/linden/indra/newview/llpaneldirpeople.h
index 14c4639..776af25 100644
--- a/linden/indra/newview/llpaneldirpeople.h
+++ b/linden/indra/newview/llpaneldirpeople.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirplaces.cpp b/linden/indra/newview/llpaneldirplaces.cpp
index a795845..d97b2df 100644
--- a/linden/indra/newview/llpaneldirplaces.cpp
+++ b/linden/indra/newview/llpaneldirplaces.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirplaces.h b/linden/indra/newview/llpaneldirplaces.h
index bd86235..f1eebe0 100644
--- a/linden/indra/newview/llpaneldirplaces.h
+++ b/linden/indra/newview/llpaneldirplaces.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirpopular.cpp b/linden/indra/newview/llpaneldirpopular.cpp
index 7cfc5b5..dc2cc46 100644
--- a/linden/indra/newview/llpaneldirpopular.cpp
+++ b/linden/indra/newview/llpaneldirpopular.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldirpopular.h b/linden/indra/newview/llpaneldirpopular.h
index 5f28ba0..b8a8bd6 100644
--- a/linden/indra/newview/llpaneldirpopular.h
+++ b/linden/indra/newview/llpaneldirpopular.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpaneldisplay.cpp b/linden/indra/newview/llpaneldisplay.cpp
index 3e60745..d510775 100644
--- a/linden/indra/newview/llpaneldisplay.cpp
+++ b/linden/indra/newview/llpaneldisplay.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -753,6 +753,8 @@ void LLPanelDisplay::onApplyResolution(LLUICtrl* src, void* user_data)
753 753
754void LLPanelDisplay::applyResolution() 754void LLPanelDisplay::applyResolution()
755{ 755{
756
757 gGL.flush();
756 char aspect_ratio_text[ASPECT_RATIO_STR_LEN]; /*Flawfinder: ignore*/ 758 char aspect_ratio_text[ASPECT_RATIO_STR_LEN]; /*Flawfinder: ignore*/
757 if (mCtrlAspectRatio->getCurrentIndex() == -1) 759 if (mCtrlAspectRatio->getCurrentIndex() == -1)
758 { 760 {
@@ -787,75 +789,23 @@ void LLPanelDisplay::applyResolution()
787 { 789 {
788 mAspectRatio = (F32)mCtrlAspectRatio->getValue().asReal(); 790 mAspectRatio = (F32)mCtrlAspectRatio->getValue().asReal();
789 } 791 }
790 792
791 // presumably, user entered a non-numeric value if aspect_ratio == 0.f 793 // presumably, user entered a non-numeric value if aspect_ratio == 0.f
792 if (mAspectRatio != 0.f) 794 if (mAspectRatio != 0.f)
793 { 795 {
794 mAspectRatio = llclamp(mAspectRatio, 0.2f, 5.f); 796 mAspectRatio = llclamp(mAspectRatio, 0.2f, 5.f);
795 gSavedSettings.setF32("FullScreenAspectRatio", mAspectRatio); 797 gSavedSettings.setF32("FullScreenAspectRatio", mAspectRatio);
796 if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio"))
797 {
798 gViewerWindow->getWindow()->setNativeAspectRatio(0.f);
799 }
800 else
801 {
802 gViewerWindow->getWindow()->setNativeAspectRatio(mAspectRatio);
803 }
804 } 798 }
805 gViewerWindow->reshape(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight()); 799
806
807 // Screen resolution 800 // Screen resolution
808 S32 num_resolutions; 801 S32 num_resolutions;
809 LLWindow::LLWindowResolution* supported_resolutions = gViewerWindow->getWindow()->getSupportedResolutions(num_resolutions); 802 LLWindow::LLWindowResolution* supported_resolutions =
810 803 gViewerWindow->getWindow()->getSupportedResolutions(num_resolutions);
811 // switching to windowed 804 U32 resIndex = mCtrlFullScreen->getCurrentIndex();
812 BOOL fullscreen = !mCtrlWindowed->get(); 805 gSavedSettings.setS32("FullScreenWidth", supported_resolutions[resIndex].mWidth);
813 806 gSavedSettings.setS32("FullScreenHeight", supported_resolutions[resIndex].mHeight);
814 // check if resolution has changed
815 BOOL targetFullscreen;
816 S32 targetWidth;
817 S32 targetHeight;
818
819 gViewerWindow->getTargetWindow(targetFullscreen, targetWidth, targetHeight);
820 807
821 if ((fullscreen != targetFullscreen) || 808 gViewerWindow->requestResolutionUpdate(!mCtrlWindowed->get());
822 (fullscreen &&
823 (supported_resolutions[mCtrlFullScreen->getCurrentIndex()].mWidth != targetWidth ||
824 supported_resolutions[mCtrlFullScreen->getCurrentIndex()].mHeight != targetHeight)
825 ))
826 {
827 // change fullscreen resolution or switch in/out of windowed mode
828 BOOL result;
829
830 BOOL logged_in = (LLStartUp::getStartupState() >= STATE_STARTED);
831 if (fullscreen)
832 {
833 result = gViewerWindow->changeDisplaySettings(TRUE,
834 LLCoordScreen( supported_resolutions[mCtrlFullScreen->getCurrentIndex()].mWidth,
835 supported_resolutions[mCtrlFullScreen->getCurrentIndex()].mHeight),
836 gSavedSettings.getBOOL("DisableVerticalSync"),
837 logged_in);
838 }
839 else
840 {
841 result = gViewerWindow->changeDisplaySettings(FALSE,
842 LLCoordScreen(gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight")),
843 TRUE,
844 logged_in);
845 }
846 if (!result)
847 {
848
849 // GL is non-existent at this point, so we can't continue.
850 llerrs << "LLPanelDisplay::apply() failed" << llendl;
851 }
852 }
853
854 // force aspect ratio
855 if (fullscreen)
856 {
857 LLViewerCamera::getInstance()->setAspect( gViewerWindow->getDisplayAspectRatio() );
858 }
859 809
860 send_agent_update(TRUE); 810 send_agent_update(TRUE);
861 811
diff --git a/linden/indra/newview/llpaneldisplay.h b/linden/indra/newview/llpaneldisplay.h
index 4b0d9d7..f98e94e 100644
--- a/linden/indra/newview/llpaneldisplay.h
+++ b/linden/indra/newview/llpaneldisplay.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelevent.cpp b/linden/indra/newview/llpanelevent.cpp
index f205e94..830cb1d 100644
--- a/linden/indra/newview/llpanelevent.cpp
+++ b/linden/indra/newview/llpanelevent.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelevent.h b/linden/indra/newview/llpanelevent.h
index a75ee28..7e91416 100644
--- a/linden/indra/newview/llpanelevent.h
+++ b/linden/indra/newview/llpanelevent.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelface.cpp b/linden/indra/newview/llpanelface.cpp
index 0c642bc..1e4258a 100644
--- a/linden/indra/newview/llpanelface.cpp
+++ b/linden/indra/newview/llpanelface.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelface.h b/linden/indra/newview/llpanelface.h
index b977583..5cdfe88 100644
--- a/linden/indra/newview/llpanelface.h
+++ b/linden/indra/newview/llpanelface.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgeneral.cpp b/linden/indra/newview/llpanelgeneral.cpp
index 6166ba5..f370116 100644
--- a/linden/indra/newview/llpanelgeneral.cpp
+++ b/linden/indra/newview/llpanelgeneral.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -31,75 +31,15 @@
31 31
32#include "llviewerprecompiledheaders.h" 32#include "llviewerprecompiledheaders.h"
33 33
34//file include
34#include "llpanelgeneral.h" 35#include "llpanelgeneral.h"
35 36
36// linden library includes
37#include "llerror.h"
38#include "llrect.h"
39#include "llfontgl.h"
40#include "message.h"
41#include "lluictrlfactory.h"
42
43// project includes 37// project includes
44#include "llagent.h"
45#include "llviewerwindow.h"
46#include "llcolorswatch.h" 38#include "llcolorswatch.h"
47#include "llcombobox.h" 39#include "llcombobox.h"
48#include "llconsole.h" 40#include "lluictrlfactory.h"
49#include "lllineeditor.h"
50#include "llpanellogin.h"
51#include "llnetmap.h"
52#include "llresmgr.h"
53#include "llspinctrl.h"
54#include "lltextbox.h"
55#include "llui.h"
56#include "llurlsimstring.h" 41#include "llurlsimstring.h"
57#include "llviewercontrol.h" 42#include "llviewercontrol.h"
58#include "llurlsimstring.h"
59
60#include "llcheckboxctrl.h"
61#include "llradiogroup.h"
62//
63// Imported globals
64//
65
66void set_crash_behavior(LLUICtrl* ctrl, void* data);
67void set_start_location(LLUICtrl* ctrl, void* data);
68
69
70//
71// Globals
72//
73
74//
75// Static functions
76//
77static void set_render_name_fade_out(LLUICtrl* ctrl, void* data)
78{
79 LLComboBox* combo = (LLComboBox*)ctrl;
80 if (!combo) return;
81 gSavedSettings.setS32("RenderName", combo->getCurrentIndex() );
82}
83
84void set_crash_behavior(LLUICtrl* ctrl, void* data)
85{
86 gCrashSettings.setS32(CRASH_BEHAVIOR_SETTING, ((LLComboBox*) ctrl)->getCurrentIndex());
87}
88
89void set_language(LLUICtrl* ctrl, void* data)
90{
91 gSavedSettings.setString("Language", ctrl->getValue().asString());
92}
93
94void LLPanelGeneral::set_start_location(LLUICtrl* ctrl, void* data)
95{
96 LLURLSimString::setString(ctrl->getValue().asString());
97}
98
99void LLPanelGeneral::set_specific_start_location(LLLineEditor* line_editor, void* data)
100{
101 LLURLSimString::setString(line_editor->getValue().asString());
102}
103 43
104LLPanelGeneral::LLPanelGeneral() 44LLPanelGeneral::LLPanelGeneral()
105{ 45{
@@ -108,51 +48,33 @@ LLPanelGeneral::LLPanelGeneral()
108 48
109BOOL LLPanelGeneral::postBuild() 49BOOL LLPanelGeneral::postBuild()
110{ 50{
111 childSetCommitCallback("fade_out_combobox", set_render_name_fade_out); 51 LLComboBox* fade_out_combobox = getChild<LLComboBox>("fade_out_combobox");
112 childSetAction("reset_ui_size", onClickResetUISize, this); 52 fade_out_combobox->setCurrentByIndex(gSavedSettings.getS32("RenderName"));
113 53
114 std::string region_name_prompt = getString("region_name_prompt"); 54 childSetValue("default_start_location", gSavedSettings.getBOOL("LoginLastLocation") ? "MyLastLocation" : "MyHome");
115 55 childSetValue("show_location_checkbox", gSavedSettings.getBOOL("ShowStartLocation"));
116 56 childSetValue("show_all_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitleAll"));
117 // location combobox 57 childSetValue("language_is_public", gSavedSettings.getBOOL("LanguageIsPublic"));
118 LLComboBox* combo = getChild<LLComboBox>( "location_combobox"); 58
119 if (combo) 59 childSetValue("show_my_name_checkbox", gSavedSettings.getBOOL("RenderNameHideSelf"));
120 { 60 childSetValue("small_avatar_names_checkbox", gSavedSettings.getBOOL("SmallAvatarNames"));
121 if (!LLURLSimString::sInstance.mSimString.empty()) 61 childSetValue("show_my_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitle"));
122 { 62 childSetValue("afk_timeout_spinner", gSavedSettings.getF32("AFKTimeout"));
123 combo->setTextEntry(LLURLSimString::sInstance.mSimString); 63 childSetValue("rotate_mini_map_checkbox", gSavedSettings.getBOOL("MiniMapRotate"));
124 } 64 childSetValue("notify_money_change_checkbox", gSavedSettings.getBOOL("NotifyMoneyChange"));
125 65 childSetValue("use_system_color_picker_checkbox", gSavedSettings.getBOOL("UseDefaultColorPicker"));
126 BOOL login_last = gSavedSettings.getBOOL("LoginLastLocation"); 66 childSetValue("show_search_panel", gSavedSettings.getBOOL("ShowSearchBar"));
127 if (!LLURLSimString::sInstance.mSimString.empty()) 67
128 { 68 getChild<LLColorSwatchCtrl>("effect_color_swatch")->set(gSavedSettings.getColor4("EffectColor"));
129 combo->add( LLURLSimString::sInstance.mSimString ); 69
130 combo->setCurrentByIndex( 2 ); 70 childSetValue("ui_scale_slider", gSavedSettings.getF32("UIScaleFactor"));
131 } 71 childSetValue("ui_auto_scale", gSavedSettings.getBOOL("UIAutoScale"));
132 else 72
133 { 73 LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox");
134 combo->add( region_name_prompt ); 74 crash_behavior_combobox->setCurrentByIndex(gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING));
135 combo->setCurrentByIndex( login_last ? 1 : 0 );
136 }
137 combo->setCommitCallback( &set_start_location );
138 combo->setTextEntryCallback( &set_specific_start_location );
139 }
140
141 // Show location on login screen
142 childSetCommitCallback("show_location_checkbox", &LLPanelGeneral::clickShowStartLocation);
143
144 combo = getChild<LLComboBox>( "crash_behavior_combobox");
145 if (combo)
146 {
147 combo->setCurrentByIndex( gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING) );
148 combo->setCommitCallback( &set_crash_behavior );
149 }
150 75
151 childSetCommitCallback("language_combobox", set_language );
152 childSetValue("language_combobox", gSavedSettings.getString("Language")); 76 childSetValue("language_combobox", gSavedSettings.getString("Language"));
153 77
154 refresh();
155
156 return TRUE; 78 return TRUE;
157} 79}
158 80
@@ -161,92 +83,34 @@ LLPanelGeneral::~LLPanelGeneral()
161 // Children all cleaned up by default view destructor. 83 // Children all cleaned up by default view destructor.
162} 84}
163 85
164void LLPanelGeneral::refresh()
165{
166 LLPanel::refresh();
167 BOOL login_last = gSavedSettings.getBOOL("LoginLastLocation");
168 LLComboBox* combo = getChild<LLComboBox>( "location_combobox");
169 if (combo)
170 {
171 if (!LLURLSimString::sInstance.mSimString.empty())
172 {
173 combo->setCurrentByIndex( 2 );
174 }
175 else
176 {
177 combo->setCurrentByIndex( login_last ? 1 : 0 );
178 }
179 //save current settings in case cancel is clicked
180 mLoginLocation = combo->getValue().asString();
181 }
182
183 mOldCrashBehavior = gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING);
184 combo = getChild<LLComboBox>( "crash_behavior_combobox");
185 if (combo)
186 {
187 combo->setCurrentByIndex( mOldCrashBehavior );
188 }
189
190 mRenderName = gSavedSettings.getS32("RenderName");
191 combo = getChild<LLComboBox>("fade_out_combobox");
192 if (combo)
193 {
194 combo->setCurrentByIndex( mRenderName );
195 }
196
197 mRenderNameHideSelf = gSavedSettings.getBOOL("RenderNameHideSelf");
198 mSmallAvatarNames = gSavedSettings.getBOOL("SmallAvatarNames");
199 mRenderHideGroupTitle = gSavedSettings.getBOOL("RenderHideGroupTitle");
200 mChatOnlineNotification = gSavedSettings.getBOOL("ChatOnlineNotification");
201 mAFKTimeout = gSavedSettings.getF32("AFKTimeout");
202 mMiniMapRotate = gSavedSettings.getBOOL("MiniMapRotate");
203 mMiniMapTeleport = gSavedSettings.getBOOL("MiniMapTeleport");
204 mNotifyMoney = gSavedSettings.getBOOL("NotifyMoneyChange");
205 mUseDefaultColor = gSavedSettings.getBOOL("UseDefaultColorPicker");
206 mEffectColor = gSavedSettings.getColor4("EffectColor");
207 mShowSearch = gSavedSettings.getBOOL("ShowSearchBar");
208
209 mUIScaleFactor = gSavedSettings.getF32("UIScaleFactor");
210 mUIAutoScale = gSavedSettings.getBOOL("UIAutoScale");
211
212 mLanguage = gSavedSettings.getString("Language");
213}
214
215void LLPanelGeneral::apply() 86void LLPanelGeneral::apply()
216{ 87{
217} 88 LLComboBox* fade_out_combobox = getChild<LLComboBox>("fade_out_combobox");
218 89 gSavedSettings.setS32("RenderName", fade_out_combobox->getCurrentIndex());
219void LLPanelGeneral::cancel()
220{
221 gSavedSettings.setS32("RenderName", mRenderName);
222 gSavedSettings.setBOOL("RenderNameHideSelf", mRenderNameHideSelf );
223 gSavedSettings.setBOOL("SmallAvatarNames", mSmallAvatarNames );
224 gSavedSettings.setBOOL("RenderHideGroupTitle", mRenderHideGroupTitle );
225 gSavedSettings.setBOOL("ChatOnlineNotification", mChatOnlineNotification );
226 gSavedSettings.setF32("AFKTimeout", mAFKTimeout );
227 gSavedSettings.setBOOL("MiniMapRotate", mMiniMapRotate );
228 gSavedSettings.setBOOL("MiniMapTeleport", mMiniMapTeleport);
229 gSavedSettings.setBOOL("NotifyMoneyChange", mNotifyMoney );
230 gSavedSettings.setBOOL("UseDefaultColorPicker", mUseDefaultColor );
231 gSavedSettings.setBOOL("ShowSearchBar", mShowSearch);
232 gSavedSettings.setColor4("EffectColor", mEffectColor );
233 gSavedSettings.setF32("UIScaleFactor", mUIScaleFactor);
234 gSavedSettings.setBOOL("UIAutoScale", mUIAutoScale);
235 gSavedSettings.setString("Language", mLanguage);
236 90
237 LLURLSimString::setString(mLoginLocation); 91 gSavedSettings.setBOOL("LoginLastLocation", childGetValue("default_start_location").asString() == "MyLastLocation");
238 92 gSavedSettings.setBOOL("ShowStartLocation", childGetValue("show_location_checkbox"));
239 gCrashSettings.setS32(CRASH_BEHAVIOR_SETTING, mOldCrashBehavior); 93 gSavedSettings.setBOOL("RenderHideGroupTitleAll", childGetValue("show_all_title_checkbox"));
94 gSavedSettings.setBOOL("LanguageIsPublic", childGetValue("language_is_public"));
95 gSavedSettings.setBOOL("RenderNameHideSelf", childGetValue("show_my_name_checkbox"));
96 gSavedSettings.setBOOL("SmallAvatarNames", childGetValue("small_avatar_names_checkbox"));
97 gSavedSettings.setBOOL("RenderHideGroupTitle", childGetValue("show_my_title_checkbox"));
98 gSavedSettings.setF32("AFKTimeout", childGetValue("afk_timeout_spinner").asReal());
99 gSavedSettings.setBOOL("MiniMapRotate", childGetValue("rotate_mini_map_checkbox"));
100 gSavedSettings.setBOOL("NotifyMoneyChange", childGetValue("notify_money_change_checkbox"));
101 gSavedSettings.setBOOL("UseDefaultColorPicker", childGetValue("use_system_color_picker_checkbox"));
102 gSavedSettings.setBOOL("ShowSearchBar", childGetValue("show_search_panel"));
103 gSavedSettings.setColor4("EffectColor", childGetValue("effect_color_swatch"));
104 gSavedSettings.setF32("UIScaleFactor", childGetValue("ui_scale_slider").asReal());
105 gSavedSettings.setBOOL("UIAutoScale", childGetValue("ui_auto_scale"));
106 gSavedSettings.setString("Language", childGetValue("language_combobox"));
107
108 LLURLSimString::setString(childGetValue("location_combobox"));
109
110 LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox");
111 gCrashSettings.setS32(CRASH_BEHAVIOR_SETTING, crash_behavior_combobox->getCurrentIndex());
240} 112}
241 113
242void LLPanelGeneral::clickShowStartLocation(LLUICtrl*, void* user_data) 114void LLPanelGeneral::cancel()
243{
244 LLPanelLogin::refreshLocation( false ); // in case LLPanelLogin is visible
245}
246
247// static
248void LLPanelGeneral::onClickResetUISize(void* user_data)
249{ 115{
250 gSavedSettings.setF32("UIScaleFactor", 1.0f);
251 gViewerWindow->reshape(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight());
252} 116}
diff --git a/linden/indra/newview/llpanelgeneral.h b/linden/indra/newview/llpanelgeneral.h
index 00dc874..6fd10ff 100644
--- a/linden/indra/newview/llpanelgeneral.h
+++ b/linden/indra/newview/llpanelgeneral.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2001&license=viewergpl$ 6 * $LicenseInfo:firstyear=2001&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2001-2008, Linden Research, Inc. 8 * Copyright (c) 2001-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -35,47 +35,16 @@
35 35
36#include "llpanel.h" 36#include "llpanel.h"
37 37
38class LLCheckBoxCtrl;
39class LLRadioGroup;
40class LLColorSwatchCtrl;
41class LLSpinCtrl;
42class LLTextBox;
43class LLComboBox;
44
45class LLPanelGeneral : public LLPanel 38class LLPanelGeneral : public LLPanel
46{ 39{
47public: 40public:
48 LLPanelGeneral(); 41 LLPanelGeneral();
49 virtual ~LLPanelGeneral(); 42 /*virtual*/ ~LLPanelGeneral();
43
44 BOOL postBuild();
50 45
51 virtual BOOL postBuild();
52 void refresh();
53 void apply(); 46 void apply();
54 void cancel(); 47 void cancel();
55
56 static void clickShowStartLocation(LLUICtrl*, void* user_data);
57 static void set_start_location(LLUICtrl* ctrl, void* data);
58 static void set_specific_start_location(LLLineEditor* line_editor, void* data);
59 static void onClickResetUISize(void*);
60
61protected:
62 S32 mRenderName;
63 BOOL mRenderNameHideSelf;
64 BOOL mSmallAvatarNames;
65 BOOL mRenderHideGroupTitle;
66 BOOL mChatOnlineNotification;
67 BOOL mShowSearch;
68 F32 mAFKTimeout;
69 BOOL mNotifyMoney;
70 BOOL mUseDefaultColor;
71 LLColor4 mEffectColor;
72 F32 mUIScaleFactor;
73 BOOL mUIAutoScale;
74 BOOL mMiniMapRotate;
75 BOOL mMiniMapTeleport;
76 S32 mOldCrashBehavior;
77 std::string mLoginLocation;
78 std::string mLanguage;
79}; 48};
80 49
81#endif 50#endif
diff --git a/linden/indra/newview/llpanelgroup.cpp b/linden/indra/newview/llpanelgroup.cpp
index 9ced1bb..beccb2d 100644
--- a/linden/indra/newview/llpanelgroup.cpp
+++ b/linden/indra/newview/llpanelgroup.cpp
@@ -3,7 +3,7 @@
3 * 3 *
4 * $LicenseInfo:firstyear=2006&license=viewergpl$ 4 * $LicenseInfo:firstyear=2006&license=viewergpl$
5 * 5 *
6 * Copyright (c) 2006-2008, Linden Research, Inc. 6 * Copyright (c) 2006-2009, Linden Research, Inc.
7 * 7 *
8 * Second Life Viewer Source Code 8 * Second Life Viewer Source Code
9 * The source code in this file ("Source Code") is provided by Linden Lab 9 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgroup.h b/linden/indra/newview/llpanelgroup.h
index 90ce8fc..57b7d46 100644
--- a/linden/indra/newview/llpanelgroup.h
+++ b/linden/indra/newview/llpanelgroup.h
@@ -3,7 +3,7 @@
3 * 3 *
4 * $LicenseInfo:firstyear=2006&license=viewergpl$ 4 * $LicenseInfo:firstyear=2006&license=viewergpl$
5 * 5 *
6 * Copyright (c) 2006-2008, Linden Research, Inc. 6 * Copyright (c) 2006-2009, Linden Research, Inc.
7 * 7 *
8 * Second Life Viewer Source Code 8 * Second Life Viewer Source Code
9 * The source code in this file ("Source Code") is provided by Linden Lab 9 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgroupgeneral.cpp b/linden/indra/newview/llpanelgroupgeneral.cpp
index 166cc04..86cce51 100644
--- a/linden/indra/newview/llpanelgroupgeneral.cpp
+++ b/linden/indra/newview/llpanelgroupgeneral.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgroupgeneral.h b/linden/indra/newview/llpanelgroupgeneral.h
index 407057c..f06a46e 100644
--- a/linden/indra/newview/llpanelgroupgeneral.h
+++ b/linden/indra/newview/llpanelgroupgeneral.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgroupinvite.cpp b/linden/indra/newview/llpanelgroupinvite.cpp
index 17312ef..26d39d7 100644
--- a/linden/indra/newview/llpanelgroupinvite.cpp
+++ b/linden/indra/newview/llpanelgroupinvite.cpp
@@ -3,7 +3,7 @@
3 * 3 *
4 * $LicenseInfo:firstyear=2006&license=viewergpl$ 4 * $LicenseInfo:firstyear=2006&license=viewergpl$
5 * 5 *
6 * Copyright (c) 2006-2008, Linden Research, Inc. 6 * Copyright (c) 2006-2009, Linden Research, Inc.
7 * 7 *
8 * Second Life Viewer Source Code 8 * Second Life Viewer Source Code
9 * The source code in this file ("Source Code") is provided by Linden Lab 9 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgroupinvite.h b/linden/indra/newview/llpanelgroupinvite.h
index 497f97a..48833ff 100644
--- a/linden/indra/newview/llpanelgroupinvite.h
+++ b/linden/indra/newview/llpanelgroupinvite.h
@@ -3,7 +3,7 @@
3 * 3 *
4 * $LicenseInfo:firstyear=2006&license=viewergpl$ 4 * $LicenseInfo:firstyear=2006&license=viewergpl$
5 * 5 *
6 * Copyright (c) 2006-2008, Linden Research, Inc. 6 * Copyright (c) 2006-2009, Linden Research, Inc.
7 * 7 *
8 * Second Life Viewer Source Code 8 * Second Life Viewer Source Code
9 * The source code in this file ("Source Code") is provided by Linden Lab 9 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgrouplandmoney.cpp b/linden/indra/newview/llpanelgrouplandmoney.cpp
index b8c9e69..51bdbdc 100644
--- a/linden/indra/newview/llpanelgrouplandmoney.cpp
+++ b/linden/indra/newview/llpanelgrouplandmoney.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -705,12 +705,13 @@ BOOL LLPanelGroupLandMoney::postBuild()
705 textp = getChild<LLTextEditor>("group_money_planning_text", true); 705 textp = getChild<LLTextEditor>("group_money_planning_text", true);
706 panelp = getChild<LLPanel>("group_money_planning_tab", true); 706 panelp = getChild<LLPanel>("group_money_planning_tab", true);
707 707
708 if ( !can_view ) 708 if ( 1 ) //!can_view
709 { 709 {
710 textp->setText(mImplementationp->mCantViewAccountsText); 710 textp->setText(mImplementationp->mCantViewAccountsText);
711 } 711 }
712 else 712 else
713 { 713 {
714 //Temporally disabled for DEV-11287.
714 mImplementationp->mMoneyPlanningTabEHp = 715 mImplementationp->mMoneyPlanningTabEHp =
715 new LLGroupMoneyPlanningTabEventHandler(textp, 716 new LLGroupMoneyPlanningTabEventHandler(textp,
716 tabcp, 717 tabcp,
diff --git a/linden/indra/newview/llpanelgrouplandmoney.h b/linden/indra/newview/llpanelgrouplandmoney.h
index 3a4236c..4fc5204 100644
--- a/linden/indra/newview/llpanelgrouplandmoney.h
+++ b/linden/indra/newview/llpanelgrouplandmoney.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgroupnotices.cpp b/linden/indra/newview/llpanelgroupnotices.cpp
index 30a9c5b..3eab2c3 100644
--- a/linden/indra/newview/llpanelgroupnotices.cpp
+++ b/linden/indra/newview/llpanelgroupnotices.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgroupnotices.h b/linden/indra/newview/llpanelgroupnotices.h
index 8064c6a..a00ef12 100644
--- a/linden/indra/newview/llpanelgroupnotices.h
+++ b/linden/indra/newview/llpanelgroupnotices.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgrouproles.cpp b/linden/indra/newview/llpanelgrouproles.cpp
index e956dff..f63c975 100644
--- a/linden/indra/newview/llpanelgrouproles.cpp
+++ b/linden/indra/newview/llpanelgrouproles.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgrouproles.h b/linden/indra/newview/llpanelgrouproles.h
index d510260..818a719 100644
--- a/linden/indra/newview/llpanelgrouproles.h
+++ b/linden/indra/newview/llpanelgrouproles.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgroupvoting.cpp b/linden/indra/newview/llpanelgroupvoting.cpp
index b1e3e15..41650ad 100644
--- a/linden/indra/newview/llpanelgroupvoting.cpp
+++ b/linden/indra/newview/llpanelgroupvoting.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelgroupvoting.h b/linden/indra/newview/llpanelgroupvoting.h
index c7721d7..2f65a20 100644
--- a/linden/indra/newview/llpanelgroupvoting.h
+++ b/linden/indra/newview/llpanelgroupvoting.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelinput.cpp b/linden/indra/newview/llpanelinput.cpp
index 7034b1c..7ab261b 100644
--- a/linden/indra/newview/llpanelinput.cpp
+++ b/linden/indra/newview/llpanelinput.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -30,46 +30,10 @@
30 */ 30 */
31 31
32#include "llviewerprecompiledheaders.h" 32#include "llviewerprecompiledheaders.h"
33
34#include "llpanelinput.h" 33#include "llpanelinput.h"
35
36// linden library includes
37#include "llerror.h"
38#include "llrect.h"
39#include "llfontgl.h"
40#include "message.h"
41#include "lluictrlfactory.h" 34#include "lluictrlfactory.h"
42
43// project includes
44#include "llviewerwindow.h"
45#include "llcheckboxctrl.h"
46#include "llfloaterjoystick.h"
47#include "llradiogroup.h"
48#include "llresmgr.h"
49#include "llspinctrl.h"
50#include "llslider.h"
51#include "llsliderctrl.h"
52#include "lltextbox.h"
53#include "llui.h"
54#include "llappviewer.h"
55#include "llviewercontrol.h" 35#include "llviewercontrol.h"
56 36#include "llfloaterjoystick.h"
57//Ventrella
58#include "llagent.h"
59//end Ventrella
60
61
62//
63// Imported globals
64//
65
66//
67// Globals
68//
69
70//
71// Static functions
72//
73 37
74 38
75LLPanelInput::LLPanelInput() 39LLPanelInput::LLPanelInput()
@@ -79,50 +43,41 @@ LLPanelInput::LLPanelInput()
79 43
80BOOL LLPanelInput::postBuild() 44BOOL LLPanelInput::postBuild()
81{ 45{
82 childSetAction("joystic_setup_button", onClickJoystickSetup, (void*)this); 46 childSetAction("joystick_setup_button", onClickJoystickSetup, (void*)this);
83 47
84 refresh(); 48 childSetValue("mouse_sensitivity", gSavedSettings.getF32("MouseSensitivity"));
49 childSetValue("automatic_fly", gSavedSettings.getBOOL("AutomaticFly"));
50 childSetValue("invert_mouse", gSavedSettings.getBOOL("InvertMouse"));
51 childSetValue("edit_camera_movement", gSavedSettings.getBOOL("EditCameraMovement"));
52 childSetValue("appearance_camera_movement", gSavedSettings.getBOOL("AppearanceCameraMovement"));
53 childSetValue("dynamic_camera_strength", gSavedSettings.getF32("DynamicCameraStrength"));
54 childSetValue("zoom_time", gSavedSettings.getF32("ZoomTime"));
55 childSetValue("camera_position_smoothing", gSavedSettings.getF32("CameraPositionSmoothing"));
56 childSetValue("first_person_avatar_visible", gSavedSettings.getBOOL("FirstPersonAvatarVisible"));
85 57
86 return TRUE; 58 return TRUE;
87} 59}
88 60
89
90LLPanelInput::~LLPanelInput() 61LLPanelInput::~LLPanelInput()
91{ 62{
92 // Children all cleaned up by default view destructor. 63 // Children all cleaned up by default view destructor.
93} 64}
94 65
95void LLPanelInput::refresh()
96{
97 LLPanel::refresh();
98
99 mMouseSensitivityVal = gSavedSettings.getF32("MouseSensitivity");
100 mAutomaticFly =gSavedSettings.getBOOL("AutomaticFly");
101 mInvertMouse = gSavedSettings.getBOOL("InvertMouse");
102 mEditCameraMovement = gSavedSettings.getBOOL("EditCameraMovement");
103 mAppearanceCameraMovement = gSavedSettings.getBOOL("AppearanceCameraMovement");
104 mDynamicCameraStrengthVal = gSavedSettings.getF32("DynamicCameraStrength");
105 mNumpadControlVal = gSavedSettings.getS32("NumpadControl");
106
107 // First Person Visibility
108 mFirstPersonAvatarVisible = gSavedSettings.getBOOL("FirstPersonAvatarVisible");
109}
110
111void LLPanelInput::apply() 66void LLPanelInput::apply()
112{ 67{
113 68 gSavedSettings.setF32("MouseSensitivity", childGetValue("mouse_sensitivity").asReal());
69 gSavedSettings.setBOOL("AutomaticFly", childGetValue("automatic_fly"));
70 gSavedSettings.setBOOL("InvertMouse", childGetValue("invert_mouse"));
71 gSavedSettings.setBOOL("EditCameraMovement", childGetValue("edit_camera_movement"));
72 gSavedSettings.setBOOL("AppearanceCameraMovement", childGetValue("appearance_camera_movement"));
73 gSavedSettings.setF32("DynamicCameraStrength", childGetValue("dynamic_camera_strength").asReal());
74 gSavedSettings.setF32("ZoomTime", childGetValue("zoom_time").asReal());
75 gSavedSettings.setF32("CameraPositionSmoothing", childGetValue("camera_position_smoothing").asReal());
76 gSavedSettings.setBOOL("FirstPersonAvatarVisible", childGetValue("first_person_avatar_visible"));
114} 77}
115 78
116void LLPanelInput::cancel() 79void LLPanelInput::cancel()
117{ 80{
118 gSavedSettings.setF32("MouseSensitivity", mMouseSensitivityVal);
119 gSavedSettings.setBOOL("AutomaticFly", mAutomaticFly);
120 gSavedSettings.setBOOL("InvertMouse", mInvertMouse);
121 gSavedSettings.setBOOL("EditCameraMovement", mEditCameraMovement);
122 gSavedSettings.setBOOL("AppearanceCameraMovement", mAppearanceCameraMovement);
123 gSavedSettings.setF32("DynamicCameraStrength", mDynamicCameraStrengthVal);
124 gSavedSettings.setS32("NumpadControl", mNumpadControlVal);
125 gSavedSettings.setBOOL("FirstPersonAvatarVisible", mFirstPersonAvatarVisible);
126} 81}
127 82
128//static 83//static
diff --git a/linden/indra/newview/llpanelinput.h b/linden/indra/newview/llpanelinput.h
index e73e0ed..5d84203 100644
--- a/linden/indra/newview/llpanelinput.h
+++ b/linden/indra/newview/llpanelinput.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -34,11 +34,6 @@
34 34
35#include "llpanel.h" 35#include "llpanel.h"
36 36
37class LLCheckBoxCtrl;
38class LLSlider;
39class LLSliderCtrl;
40class LLSpinCtrl;
41
42class LLPanelInput : public LLPanel 37class LLPanelInput : public LLPanel
43{ 38{
44public: 39public:
@@ -46,23 +41,11 @@ public:
46 virtual ~LLPanelInput(); 41 virtual ~LLPanelInput();
47 42
48 virtual BOOL postBuild(); 43 virtual BOOL postBuild();
49 virtual void refresh();
50 void apply(); 44 void apply();
51 void cancel(); 45 void cancel();
52 46
53private: 47private:
54 static void onClickJoystickSetup(void* user_data); 48 static void onClickJoystickSetup(void* user_data);
55
56protected:
57 F32 mMouseSensitivityVal;
58 BOOL mAutomaticFly;
59 BOOL mInvertMouse;
60 BOOL mEditCameraMovement;
61 BOOL mAppearanceCameraMovement;
62 BOOL mFirstPersonAvatarVisible;
63 F32 mDynamicCameraStrengthVal;
64 S32 mNumpadControlVal;
65
66}; 49};
67 50
68#endif 51#endif
diff --git a/linden/indra/newview/llpanelinventory.cpp b/linden/indra/newview/llpanelinventory.cpp
index 7277f05..c53395d 100644
--- a/linden/indra/newview/llpanelinventory.cpp
+++ b/linden/indra/newview/llpanelinventory.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelinventory.h b/linden/indra/newview/llpanelinventory.h
index d848300..8aa28e8 100644
--- a/linden/indra/newview/llpanelinventory.h
+++ b/linden/indra/newview/llpanelinventory.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelland.cpp b/linden/indra/newview/llpanelland.cpp
index 0b3ba52..b40450c 100644
--- a/linden/indra/newview/llpanelland.cpp
+++ b/linden/indra/newview/llpanelland.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelland.h b/linden/indra/newview/llpanelland.h
index c44cb9d..d2f51c0 100644
--- a/linden/indra/newview/llpanelland.h
+++ b/linden/indra/newview/llpanelland.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanellandmedia.cpp b/linden/indra/newview/llpanellandmedia.cpp
index e4cdfaf..d6787f8 100644
--- a/linden/indra/newview/llpanellandmedia.cpp
+++ b/linden/indra/newview/llpanellandmedia.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanellandmedia.h b/linden/indra/newview/llpanellandmedia.h
index 7320f56..0a67e57 100644
--- a/linden/indra/newview/llpanellandmedia.h
+++ b/linden/indra/newview/llpanellandmedia.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanellandobjects.cpp b/linden/indra/newview/llpanellandobjects.cpp
index db7273b..b61eab6 100644
--- a/linden/indra/newview/llpanellandobjects.cpp
+++ b/linden/indra/newview/llpanellandobjects.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanellandobjects.h b/linden/indra/newview/llpanellandobjects.h
index 68f5c17..90cd46c 100644
--- a/linden/indra/newview/llpanellandobjects.h
+++ b/linden/indra/newview/llpanellandobjects.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanellandoptions.cpp b/linden/indra/newview/llpanellandoptions.cpp
index bd88a21..eb1edbd 100644
--- a/linden/indra/newview/llpanellandoptions.cpp
+++ b/linden/indra/newview/llpanellandoptions.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanellandoptions.h b/linden/indra/newview/llpanellandoptions.h
index 1c0d058..12983d1 100644
--- a/linden/indra/newview/llpanellandoptions.h
+++ b/linden/indra/newview/llpanellandoptions.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanellogin.cpp b/linden/indra/newview/llpanellogin.cpp
index aeb3b2d..4af0f1b 100644
--- a/linden/indra/newview/llpanellogin.cpp
+++ b/linden/indra/newview/llpanellogin.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -63,7 +63,6 @@
63#include "llviewernetwork.h" 63#include "llviewernetwork.h"
64#include "llviewerwindow.h" // to link into child list 64#include "llviewerwindow.h" // to link into child list
65#include "llnotify.h" 65#include "llnotify.h"
66#include "llappviewer.h" // for gHideLinks
67#include "llurlsimstring.h" 66#include "llurlsimstring.h"
68#include "lluictrlfactory.h" 67#include "lluictrlfactory.h"
69#include "llhttpclient.h" 68#include "llhttpclient.h"
@@ -259,6 +258,11 @@ namespace {
259 boost::intrusive_ptr< LLIamHereLogin > gResponsePtr = 0; 258 boost::intrusive_ptr< LLIamHereLogin > gResponsePtr = 0;
260}; 259};
261 260
261void set_start_location(LLUICtrl* ctrl, void* data)
262{
263 LLURLSimString::setString(ctrl->getValue().asString());
264}
265
262//--------------------------------------------------------------------------- 266//---------------------------------------------------------------------------
263// Public methods 267// Public methods
264//--------------------------------------------------------------------------- 268//---------------------------------------------------------------------------
@@ -345,7 +349,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
345 combo->setCurrentByIndex( 0 ); 349 combo->setCurrentByIndex( 0 );
346 } 350 }
347 351
348 combo->setCommitCallback( &LLPanelGeneral::set_start_location ); 352 combo->setCommitCallback( &set_start_location );
349 353
350 LLComboBox* server_choice_combo = sInstance->getChild<LLComboBox>("server_combo"); 354 LLComboBox* server_choice_combo = sInstance->getChild<LLComboBox>("server_combo");
351 server_choice_combo->setCommitCallback(onSelectServer); 355 server_choice_combo->setCommitCallback(onSelectServer);
@@ -852,11 +856,7 @@ void LLPanelLogin::loadLoginPage()
852 } 856 }
853 857
854 // Language 858 // Language
855 std::string language(gSavedSettings.getString("Language")); 859 std::string language = LLUI::getLanguage();
856 if(language == "default")
857 {
858 language = gSavedSettings.getString("SystemLanguage");
859 }
860 oStr << first_query_delimiter<<"lang=" << language; 860 oStr << first_query_delimiter<<"lang=" << language;
861 861
862 // First Login? 862 // First Login?
@@ -1017,15 +1017,8 @@ void LLPanelLogin::onClickConnect(void *)
1017 } 1017 }
1018 else 1018 else
1019 { 1019 {
1020 if (gHideLinks) 1020 gViewerWindow->alertXml("MustHaveAccountToLogIn",
1021 { 1021 LLPanelLogin::newAccountAlertCallback);
1022 gViewerWindow->alertXml("MustHaveAccountToLogInNoLinks");
1023 }
1024 else
1025 {
1026 gViewerWindow->alertXml("MustHaveAccountToLogIn",
1027 LLPanelLogin::newAccountAlertCallback);
1028 }
1029 } 1022 }
1030 } 1023 }
1031} 1024}
diff --git a/linden/indra/newview/llpanellogin.h b/linden/indra/newview/llpanellogin.h
index 78b0a22..a303e32 100644
--- a/linden/indra/newview/llpanellogin.h
+++ b/linden/indra/newview/llpanellogin.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelmorph.cpp b/linden/indra/newview/llpanelmorph.cpp
index a8da26d..7b1b5f1 100644
--- a/linden/indra/newview/llpanelmorph.cpp
+++ b/linden/indra/newview/llpanelmorph.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelmorph.h b/linden/indra/newview/llpanelmorph.h
index d868181..99934ab 100644
--- a/linden/indra/newview/llpanelmorph.h
+++ b/linden/indra/newview/llpanelmorph.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelmsgs.cpp b/linden/indra/newview/llpanelmsgs.cpp
index cc3579e..065bbdd 100644
--- a/linden/indra/newview/llpanelmsgs.cpp
+++ b/linden/indra/newview/llpanelmsgs.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -39,17 +39,6 @@
39#include "lluictrlfactory.h" 39#include "lluictrlfactory.h"
40#include "llfirstuse.h" 40#include "llfirstuse.h"
41 41
42class LLPopupData
43{
44public:
45 LLPopupData() : mShowNewInventory(FALSE), mAutoAcceptNewInventory(FALSE) { }
46
47 BOOL mShowNewInventory;
48 BOOL mAutoAcceptNewInventory;
49};
50
51LLPopupData sPopupData;
52
53//----------------------------------------------------------------------------- 42//-----------------------------------------------------------------------------
54LLPanelMsgs::LLPanelMsgs() : 43LLPanelMsgs::LLPanelMsgs() :
55 LLPanel(std::string("Messages Panel")), 44 LLPanel(std::string("Messages Panel")),
@@ -75,8 +64,9 @@ BOOL LLPanelMsgs::postBuild()
75 childSetAction("skip_dialogs_btn", onClickSkipDialogs, this); 64 childSetAction("skip_dialogs_btn", onClickSkipDialogs, this);
76 buildLists(); 65 buildLists();
77 66
78 sPopupData.mAutoAcceptNewInventory = gSavedSettings.getBOOL("AutoAcceptNewInventory"); 67 childSetValue("accept_new_inventory", gSavedSettings.getBOOL("AutoAcceptNewInventory"));
79 sPopupData.mShowNewInventory = gSavedSettings.getBOOL("ShowNewInventory"); 68 childSetValue("show_new_inventory", gSavedSettings.getBOOL("ShowNewInventory"));
69 childSetValue("show_in_inventory", gSavedSettings.getBOOL("ShowInInventory"));
80 70
81 return TRUE; 71 return TRUE;
82} 72}
@@ -159,13 +149,13 @@ void LLPanelMsgs::draw()
159 149
160void LLPanelMsgs::apply() 150void LLPanelMsgs::apply()
161{ 151{
152 gSavedSettings.setBOOL("AutoAcceptNewInventory", childGetValue("accept_new_inventory"));
153 gSavedSettings.setBOOL("ShowNewInventory", childGetValue("show_new_inventory"));
154 gSavedSettings.setBOOL("ShowInInventory", childGetValue("show_in_inventory"));
162} 155}
163 156
164
165void LLPanelMsgs::cancel() 157void LLPanelMsgs::cancel()
166{ 158{
167 gSavedSettings.setBOOL("ShowNewInventory", sPopupData.mShowNewInventory);
168 gSavedSettings.setBOOL("AutoAcceptNewInventory", sPopupData.mAutoAcceptNewInventory);
169} 159}
170 160
171void LLPanelMsgs::resetAllIgnored() 161void LLPanelMsgs::resetAllIgnored()
diff --git a/linden/indra/newview/llpanelmsgs.h b/linden/indra/newview/llpanelmsgs.h
index c9f9ce1..ac86c59 100644
--- a/linden/indra/newview/llpanelmsgs.h
+++ b/linden/indra/newview/llpanelmsgs.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelnetwork.cpp b/linden/indra/newview/llpanelnetwork.cpp
index e324c3b..6ba8906 100644
--- a/linden/indra/newview/llpanelnetwork.cpp
+++ b/linden/indra/newview/llpanelnetwork.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -31,29 +31,14 @@
31 31
32#include "llviewerprecompiledheaders.h" 32#include "llviewerprecompiledheaders.h"
33 33
34// file include 34//file include
35#include "llpanelnetwork.h" 35#include "llpanelnetwork.h"
36 36
37// linden library includes
38#include "llerror.h"
39#include "llrect.h"
40#include "llstring.h"
41
42// project includes 37// project includes
43#include "llbutton.h" 38#include "llcheckboxctrl.h"
44#include "lldirpicker.h" 39#include "lldirpicker.h"
45#include "llui.h"
46#include "lluictrlfactory.h" 40#include "lluictrlfactory.h"
47#include "llresmgr.h"
48#include "llsliderctrl.h"
49#include "llspinctrl.h"
50#include "llcheckboxctrl.h"
51#include "lltextbox.h"
52#include "llviewerregion.h"
53#include "llviewerthrottle.h"
54#include "llworld.h"
55#include "llviewercontrol.h" 41#include "llviewercontrol.h"
56#include "lluictrlfactory.h"
57#include "llviewerwindow.h" 42#include "llviewerwindow.h"
58 43
59LLPanelNetwork::LLPanelNetwork() 44LLPanelNetwork::LLPanelNetwork()
@@ -70,12 +55,13 @@ BOOL LLPanelNetwork::postBuild()
70 childSetAction("set_cache", onClickSetCache, this); 55 childSetAction("set_cache", onClickSetCache, this);
71 childSetAction("reset_cache", onClickResetCache, this); 56 childSetAction("reset_cache", onClickResetCache, this);
72 57
73 childSetEnabled("connection_port", 58 childSetEnabled("connection_port", gSavedSettings.getBOOL("ConnectionPortEnabled"));
74 gSavedSettings.getBOOL("ConnectionPortEnabled"));
75 childSetCommitCallback("connection_port_enabled", onCommitPort, this); 59 childSetCommitCallback("connection_port_enabled", onCommitPort, this);
76 60
77 61 childSetValue("cache_size", (F32)gSavedSettings.getU32("CacheSize"));
78 refresh(); 62 childSetValue("max_bandwidth", gSavedSettings.getF32("ThrottleBandwidthKBPS"));
63 childSetValue("connection_port_enabled", gSavedSettings.getBOOL("ConnectionPortEnabled"));
64 childSetValue("connection_port", (F32)gSavedSettings.getU32("ConnectionPort"));
79 65
80 return TRUE; 66 return TRUE;
81} 67}
@@ -88,24 +74,14 @@ LLPanelNetwork::~LLPanelNetwork()
88 74
89void LLPanelNetwork::apply() 75void LLPanelNetwork::apply()
90{ 76{
91} 77 gSavedSettings.setU32("CacheSize", childGetValue("cache_size").asInteger());
92 78 gSavedSettings.setF32("ThrottleBandwidthKBPS", childGetValue("max_bandwidth").asReal());
93void LLPanelNetwork::refresh() 79 gSavedSettings.setBOOL("ConnectionPortEnabled", childGetValue("connection_port_enabled"));
94{ 80 gSavedSettings.setU32("ConnectionPort", childGetValue("connection_port").asInteger());
95 LLPanel::refresh();
96
97 mCacheSetting = gSavedSettings.getU32("CacheSize");
98 mBandwidthBPS = gSavedSettings.getF32("ThrottleBandwidthKBPS")*1024;
99 mConnectionPortEnabled = gSavedSettings.getBOOL("ConnectionPortEnabled");
100 mConnectionPort = gSavedSettings.getU32("ConnectionPort");
101} 81}
102 82
103void LLPanelNetwork::cancel() 83void LLPanelNetwork::cancel()
104{ 84{
105 gSavedSettings.setU32("CacheSize", mCacheSetting);
106 gSavedSettings.setF32("ThrottleBandwidthKBPS", mBandwidthBPS/1024);
107 gSavedSettings.setBOOL("ConnectionPortEnabled", mConnectionPortEnabled);
108 gSavedSettings.setU32("ConnectionPort", mConnectionPort);
109} 85}
110 86
111// static 87// static
diff --git a/linden/indra/newview/llpanelnetwork.h b/linden/indra/newview/llpanelnetwork.h
index 9848461..1c9eb4f 100644
--- a/linden/indra/newview/llpanelnetwork.h
+++ b/linden/indra/newview/llpanelnetwork.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -33,37 +33,23 @@
33#define LL_LLPANELNETWORK_H 33#define LL_LLPANELNETWORK_H
34 34
35#include "llpanel.h" 35#include "llpanel.h"
36#include "llviewerthrottle.h"
37
38class LLSliderCtrl;
39class LLCheckBoxCtrl;
40class LLLineEditor;
41class LLTextBox;
42class LLRadioGroup;
43class LLButton;
44 36
45class LLPanelNetwork : public LLPanel 37class LLPanelNetwork : public LLPanel
46{ 38{
47public: 39public:
48 LLPanelNetwork(); 40 LLPanelNetwork();
49 virtual ~LLPanelNetwork(); 41 ~LLPanelNetwork();
42
43 BOOL postBuild();
50 44
51 virtual BOOL postBuild(); 45 void apply();
52 virtual void refresh(); 46 void cancel();
53 virtual void apply(); // Apply the changed values.
54 virtual void cancel(); // Cancel the changed values.
55 47
56private: 48private:
57 static void onClickClearCache(void*); 49 static void onClickClearCache(void*);
58 static void onClickSetCache(void*); 50 static void onClickSetCache(void*);
59 static void onClickResetCache(void*); 51 static void onClickResetCache(void*);
60 static void onCommitPort(LLUICtrl* ctrl, void*); 52 static void onCommitPort(LLUICtrl* ctrl, void*);
61
62private:
63 U32 mCacheSetting;
64 F32 mBandwidthBPS;
65 BOOL mConnectionPortEnabled;
66 U32 mConnectionPort;
67}; 53};
68 54
69#endif 55#endif
diff --git a/linden/indra/newview/llpanelobject.cpp b/linden/indra/newview/llpanelobject.cpp
index 584ecb8..5c70590 100644
--- a/linden/indra/newview/llpanelobject.cpp
+++ b/linden/indra/newview/llpanelobject.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -373,6 +373,18 @@ void LLPanelObject::getState( )
373 BOOL enable_rotate = objectp->permMove() && ( (objectp->permModify() && !objectp->isAttachment()) || !gSavedSettings.getBOOL("EditLinkedParts")); 373 BOOL enable_rotate = objectp->permMove() && ( (objectp->permModify() && !objectp->isAttachment()) || !gSavedSettings.getBOOL("EditLinkedParts"));
374 374
375 childSetEnabled("build_math_constants",true); 375 childSetEnabled("build_math_constants",true);
376
377 S32 selected_count = LLSelectMgr::getInstance()->getSelection()->getObjectCount();
378 BOOL single_volume = (LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME ))
379 && (selected_count == 1);
380
381 if (LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() > 1)
382 {
383 enable_move = FALSE;
384 enable_scale = FALSE;
385 enable_rotate = FALSE;
386 }
387
376 LLVector3 vec; 388 LLVector3 vec;
377 if (enable_move) 389 if (enable_move)
378 { 390 {
@@ -464,9 +476,6 @@ void LLPanelObject::getState( )
464 // BUG? Check for all objects being editable? 476 // BUG? Check for all objects being editable?
465 S32 roots_selected = LLSelectMgr::getInstance()->getSelection()->getRootObjectCount(); 477 S32 roots_selected = LLSelectMgr::getInstance()->getSelection()->getRootObjectCount();
466 BOOL editable = root_objectp->permModify(); 478 BOOL editable = root_objectp->permModify();
467 S32 selected_count = LLSelectMgr::getInstance()->getSelection()->getObjectCount();
468 BOOL single_volume = (LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME ))
469 && (selected_count == 1);
470 479
471 // Select Single Message 480 // Select Single Message
472 childSetVisible("select_single", FALSE); 481 childSetVisible("select_single", FALSE);
diff --git a/linden/indra/newview/llpanelobject.h b/linden/indra/newview/llpanelobject.h
index b72289c..d3bb7b3 100644
--- a/linden/indra/newview/llpanelobject.h
+++ b/linden/indra/newview/llpanelobject.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelpermissions.cpp b/linden/indra/newview/llpanelpermissions.cpp
index 4867980..c430922 100644
--- a/linden/indra/newview/llpanelpermissions.cpp
+++ b/linden/indra/newview/llpanelpermissions.cpp
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2002&license=viewergpl$ 7 * $LicenseInfo:firstyear=2002&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2002-2008, Linden Research, Inc. 9 * Copyright (c) 2002-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelpermissions.h b/linden/indra/newview/llpanelpermissions.h
index 283cbc1..3b73254 100644
--- a/linden/indra/newview/llpanelpermissions.h
+++ b/linden/indra/newview/llpanelpermissions.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelpick.cpp b/linden/indra/newview/llpanelpick.cpp
index 8c2b175..480f703 100644
--- a/linden/indra/newview/llpanelpick.cpp
+++ b/linden/indra/newview/llpanelpick.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelpick.h b/linden/indra/newview/llpanelpick.h
index 57483dc..b7a02ae 100644
--- a/linden/indra/newview/llpanelpick.h
+++ b/linden/indra/newview/llpanelpick.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelplace.cpp b/linden/indra/newview/llpanelplace.cpp
index d8813b3..78477d7 100644
--- a/linden/indra/newview/llpanelplace.cpp
+++ b/linden/indra/newview/llpanelplace.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelplace.h b/linden/indra/newview/llpanelplace.h
index df53013..64fc877 100644
--- a/linden/indra/newview/llpanelplace.h
+++ b/linden/indra/newview/llpanelplace.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelskins.cpp b/linden/indra/newview/llpanelskins.cpp
index 56c0694..db6ad13 100644
--- a/linden/indra/newview/llpanelskins.cpp
+++ b/linden/indra/newview/llpanelskins.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelskins.h b/linden/indra/newview/llpanelskins.h
index 88d5da2..d629474 100644
--- a/linden/indra/newview/llpanelskins.h
+++ b/linden/indra/newview/llpanelskins.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2001&license=viewergpl$ 6 * $LicenseInfo:firstyear=2001&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2001-2008, Linden Research, Inc. 8 * Copyright (c) 2001-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelvolume.cpp b/linden/indra/newview/llpanelvolume.cpp
index 43c80f1..038ba99 100644
--- a/linden/indra/newview/llpanelvolume.cpp
+++ b/linden/indra/newview/llpanelvolume.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelvolume.h b/linden/indra/newview/llpanelvolume.h
index 637894c..6259d1b 100644
--- a/linden/indra/newview/llpanelvolume.h
+++ b/linden/indra/newview/llpanelvolume.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpanelweb.cpp b/linden/indra/newview/llpanelweb.cpp
index 13ed9bf..85ddc71 100644
--- a/linden/indra/newview/llpanelweb.cpp
+++ b/linden/indra/newview/llpanelweb.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -34,22 +34,12 @@
34// file include 34// file include
35#include "llpanelweb.h" 35#include "llpanelweb.h"
36 36
37// linden library includes
38#include "llerror.h"
39#include "llrect.h"
40#include "llstring.h"
41
42// project includes 37// project includes
43#include "llbutton.h"
44#include "llcheckboxctrl.h" 38#include "llcheckboxctrl.h"
45#include "lllineeditor.h" 39#include "llmediamanager.h"
46#include "llui.h"
47#include "lluictrlfactory.h" 40#include "lluictrlfactory.h"
48#include "llviewercontrol.h" 41#include "llviewercontrol.h"
49#include "lluictrlfactory.h"
50#include "llviewerwindow.h" 42#include "llviewerwindow.h"
51#include "llmediamanager.h"
52
53 43
54// helper functions for getting/freeing the web browser media 44// helper functions for getting/freeing the web browser media
55// if creating/destroying these is too slow, we'll need to create 45// if creating/destroying these is too slow, we'll need to create
@@ -97,23 +87,21 @@ LLPanelWeb::LLPanelWeb()
97 87
98BOOL LLPanelWeb::postBuild() 88BOOL LLPanelWeb::postBuild()
99{ 89{
100 childSetAction( "clear_cache", onClickClearCache, this ); 90 childSetAction("clear_cache", onClickClearCache, this);
101 childSetAction( "clear_cookies", onClickClearCookies, this );
102 childSetCommitCallback("use_external_browser", onSelectBrowser, this );
103// childSetEnabled( "connection_port", gSavedSettings.getBOOL( "CookiesEnabled" ) );
104 childSetCommitCallback( "cookies_enabled", onCommitCookies, this );
105 childSetCommitCallback( "web_proxy_editor", onCommitWebProxyAddress, this);
106 childSetCommitCallback( "web_proxy_port", onCommitWebProxyPort, this);
107
108 childSetEnabled("web_proxy_editor",
109 gSavedSettings.getBOOL("BrowserProxyEnabled"));
110 childSetEnabled("web_proxy_port",
111 gSavedSettings.getBOOL("BrowserProxyEnabled"));
112 childSetEnabled("proxy_text_label",
113 gSavedSettings.getBOOL("BrowserProxyEnabled"));
114 childSetCommitCallback("web_proxy_enabled", onCommitWebProxyEnabled, this); 91 childSetCommitCallback("web_proxy_enabled", onCommitWebProxyEnabled, this);
115 92
116 refresh(); 93 std::string value = gSavedSettings.getBOOL("UseExternalBrowser") ? "external" : "internal";
94 childSetValue("use_external_browser", value);
95
96 childSetValue("cookies_enabled", gSavedSettings.getBOOL("CookiesEnabled"));
97
98 childSetValue("web_proxy_enabled", gSavedSettings.getBOOL("BrowserProxyEnabled"));
99 childSetValue("web_proxy_editor", gSavedSettings.getString("BrowserProxyAddress"));
100 childSetValue("web_proxy_port", gSavedSettings.getS32("BrowserProxyPort"));
101
102 childSetEnabled("proxy_text_label", gSavedSettings.getBOOL("BrowserProxyEnabled"));
103 childSetEnabled("web_proxy_editor", gSavedSettings.getBOOL("BrowserProxyEnabled"));
104 childSetEnabled("web_proxy_port", gSavedSettings.getBOOL("BrowserProxyEnabled"));
117 105
118 return TRUE; 106 return TRUE;
119} 107}
@@ -127,50 +115,29 @@ LLPanelWeb::~LLPanelWeb()
127 115
128void LLPanelWeb::apply() 116void LLPanelWeb::apply()
129{ 117{
130} 118 gSavedSettings.setBOOL("CookiesEnabled", childGetValue("cookies_enabled"));
131 119 gSavedSettings.setBOOL("BrowserProxyEnabled", childGetValue("web_proxy_enabled"));
132void LLPanelWeb::refresh() 120 gSavedSettings.setString("BrowserProxyAddress", childGetValue("web_proxy_editor"));
133{ 121 gSavedSettings.setS32("BrowserProxyPort", childGetValue("web_proxy_port"));
134 LLPanel::refresh();
135 122
136 mCookiesEnabled = gSavedSettings.getBOOL("CookiesEnabled"); 123 bool value = childGetValue("use_external_browser").asString() == "external" ? true : false;
137 mWebProxyEnabled = gSavedSettings.getBOOL("BrowserProxyEnabled"); 124 gSavedSettings.setBOOL("UseExternalBrowser", value);
138 mWebProxyAddress = gSavedSettings.getString("BrowserProxyAddress");
139 mWebProxyPort = gSavedSettings.getS32("BrowserProxyPort");
140 125
141 LLLineEditor* web_proxy_editor = getChild<LLLineEditor>("web_proxy_editor");
142 if (web_proxy_editor)
143 {
144 web_proxy_editor->setText( gSavedSettings.getString("BrowserProxyAddress") );
145 }
146 mExternalBrowser = gSavedSettings.getBOOL("UseExternalBrowser");
147
148 childSetValue("use_external_browser", mExternalBrowser ? "external" : "internal");
149
150 LLMediaBase *media_source = get_web_media(); 126 LLMediaBase *media_source = get_web_media();
151 if (media_source) 127 if (media_source)
152 media_source->enableCookies(mCookiesEnabled); 128 {
153 free_web_media(media_source); 129 media_source->enableCookies(childGetValue("cookies_enabled"));
154 130
131 bool proxy_enable = childGetValue("web_proxy_enabled");
132 std::string proxy_address = childGetValue("web_proxy_editor");
133 int proxy_port = childGetValue("web_proxy_port");
134 media_source->enableProxy(proxy_enable, proxy_address, proxy_port);
135 }
136 free_web_media(media_source);
155} 137}
156 138
157void LLPanelWeb::cancel() 139void LLPanelWeb::cancel()
158{ 140{
159
160 gSavedSettings.setBOOL( "CookiesEnabled", mCookiesEnabled );
161 gSavedSettings.setBOOL( "BrowserProxyEnabled", mWebProxyEnabled );
162 gSavedSettings.setString( "BrowserProxyAddress", mWebProxyAddress );
163 gSavedSettings.setS32( "BrowserProxyPort", mWebProxyPort );
164
165 gSavedSettings.setBOOL("UseExternalBrowser", mExternalBrowser);
166 LLMediaBase *media_source = get_web_media();
167 if (media_source)
168 {
169 media_source->enableCookies(mCookiesEnabled);
170 media_source->enableProxy( mWebProxyEnabled, mWebProxyAddress, mWebProxyPort );
171 }
172 free_web_media(media_source);
173
174} 141}
175 142
176// static 143// static
@@ -192,94 +159,15 @@ void LLPanelWeb::callback_clear_browser_cache(S32 option, void* userdata)
192} 159}
193 160
194// static 161// static
195void LLPanelWeb::onClickClearCookies(void*)
196{
197 gViewerWindow->alertXml("ConfirmClearCookies", callback_clear_cookies, 0);
198}
199
200//static
201void LLPanelWeb::callback_clear_cookies(S32 option, void* userdata)
202{
203 if ( option == 0 ) // YES
204 {
205 LLMediaBase *media_source = get_web_media();
206 if (media_source)
207 media_source->clearCookies();
208 free_web_media(media_source);
209 }
210}
211
212// static
213void LLPanelWeb::onCommitCookies(LLUICtrl* ctrl, void* data)
214{
215 LLPanelWeb* self = (LLPanelWeb*)data;
216 LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl;
217
218 if (!self || !check) return;
219
220 LLMediaBase *media_source = get_web_media();
221 if (media_source)
222 media_source->enableCookies(check->get());
223 free_web_media(media_source);
224}
225// static
226void LLPanelWeb::onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data) 162void LLPanelWeb::onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data)
227{ 163{
228 LLPanelWeb* self = (LLPanelWeb*)data; 164 LLPanelWeb* self = (LLPanelWeb*)data;
229 LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; 165 LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl;
230 166
231 if (!self || !check) return; 167 if (!self || !check) return;
232 self->childSetEnabled("web_proxy_editor", 168 self->childSetEnabled("web_proxy_editor", check->get());
233 check->get()); 169 self->childSetEnabled("web_proxy_port", check->get());
234 self->childSetEnabled("web_proxy_port", 170 self->childSetEnabled("proxy_text_label", check->get());
235 check->get());
236 self->childSetEnabled("proxy_text_label",
237 check->get());
238
239 LLMediaBase *media_source = get_web_media();
240 if (media_source)
241 {
242 media_source->enableProxy( gSavedSettings.getBOOL("BrowserProxyEnabled"),
243 gSavedSettings.getString("BrowserProxyAddress"),
244 gSavedSettings.getS32("BrowserProxyPort") );
245 }
246 free_web_media(media_source);
247
248}
249
250void LLPanelWeb::onCommitWebProxyAddress(LLUICtrl *ctrl, void *userdata)
251{
252 LLLineEditor* web_proxy = (LLLineEditor*)ctrl;
253
254 if (web_proxy)
255 {
256 gSavedSettings.setString("BrowserProxyAddress", web_proxy->getText());
257 }
258 LLMediaBase *media_source = get_web_media();
259 if (media_source)
260 {
261 media_source->enableProxy( gSavedSettings.getBOOL("BrowserProxyEnabled"),
262 gSavedSettings.getString("BrowserProxyAddress"),
263 gSavedSettings.getS32("BrowserProxyPort") );
264 }
265 free_web_media(media_source);
266}
267 171
268void LLPanelWeb::onCommitWebProxyPort(LLUICtrl *ctrl, void *userdata)
269{
270 LLMediaBase *media_source = get_web_media();
271 if (media_source)
272 {
273 media_source->enableProxy( gSavedSettings.getBOOL("BrowserProxyEnabled"),
274 gSavedSettings.getString("BrowserProxyAddress"),
275 gSavedSettings.getS32("BrowserProxyPort") );
276 }
277 free_web_media(media_source);
278}
279 172
280// static
281void LLPanelWeb::onSelectBrowser(LLUICtrl* ctrl, void* data)
282{
283 // "external" or "internal"
284 gSavedSettings.setBOOL("UseExternalBrowser", ctrl->getValue().asString() == "external");
285} 173}
diff --git a/linden/indra/newview/llpanelweb.h b/linden/indra/newview/llpanelweb.h
index 34d7b3d..9d58e0a 100644
--- a/linden/indra/newview/llpanelweb.h
+++ b/linden/indra/newview/llpanelweb.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -33,39 +33,22 @@
33#define LL_LLPANELWEB_H 33#define LL_LLPANELWEB_H
34 34
35#include "llpanel.h" 35#include "llpanel.h"
36#include "llviewerthrottle.h"
37
38class LLCheckBoxCtrl;
39class LLButton;
40 36
41class LLPanelWeb : public LLPanel 37class LLPanelWeb : public LLPanel
42{ 38{
43public: 39public:
44 LLPanelWeb(); 40 LLPanelWeb();
45 virtual ~LLPanelWeb(); 41 ~LLPanelWeb();
42
43 BOOL postBuild();
46 44
47 virtual BOOL postBuild(); 45 void apply();
48 virtual void refresh(); 46 void cancel();
49 virtual void apply(); // Apply the changed values.
50 virtual void cancel(); // Cancel the changed values.
51 47
52private: 48private:
53 static void onClickClearCache(void*); 49 static void onClickClearCache(void* data);
54 static void onClickClearCookies(void*);
55 static void callback_clear_browser_cache(S32 option, void* userdata); 50 static void callback_clear_browser_cache(S32 option, void* userdata);
56 static void callback_clear_cookies(S32 option, void* userdata);
57 static void onCommitCookies(LLUICtrl* ctrl, void* data);
58 static void onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data); 51 static void onCommitWebProxyEnabled(LLUICtrl* ctrl, void* data);
59 static void onCommitWebProxyAddress(LLUICtrl *ctrl, void *userdata);
60 static void onCommitWebProxyPort(LLUICtrl *ctrl, void *userdata);
61 static void onSelectBrowser(LLUICtrl* ctrl, void* data);
62
63private:
64 BOOL mCookiesEnabled;
65 BOOL mWebProxyEnabled;
66 std::string mWebProxyAddress;
67 S32 mWebProxyPort;
68 BOOL mExternalBrowser;
69}; 52};
70 53
71#endif 54#endif
diff --git a/linden/indra/newview/llparcelselection.cpp b/linden/indra/newview/llparcelselection.cpp
index cec2c48..38505a2 100644
--- a/linden/indra/newview/llparcelselection.cpp
+++ b/linden/indra/newview/llparcelselection.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llparcelselection.h b/linden/indra/newview/llparcelselection.h
index 1a41bcf..c0312ce 100644
--- a/linden/indra/newview/llparcelselection.h
+++ b/linden/indra/newview/llparcelselection.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpatchvertexarray.cpp b/linden/indra/newview/llpatchvertexarray.cpp
index 60e6391..74861ac 100644
--- a/linden/indra/newview/llpatchvertexarray.cpp
+++ b/linden/indra/newview/llpatchvertexarray.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpatchvertexarray.h b/linden/indra/newview/llpatchvertexarray.h
index 2f2057f..a4fe5f2 100644
--- a/linden/indra/newview/llpatchvertexarray.h
+++ b/linden/indra/newview/llpatchvertexarray.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpolymesh.cpp b/linden/indra/newview/llpolymesh.cpp
index 0a1e2ce..ac53834 100644
--- a/linden/indra/newview/llpolymesh.cpp
+++ b/linden/indra/newview/llpolymesh.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpolymesh.h b/linden/indra/newview/llpolymesh.h
index 7f4f087..e7c387b 100644
--- a/linden/indra/newview/llpolymesh.h
+++ b/linden/indra/newview/llpolymesh.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -150,7 +150,7 @@ public:
150class LLJointRenderData 150class LLJointRenderData
151{ 151{
152public: 152public:
153 LLJointRenderData(const LLMatrix4* world_matrix, LLSkinJoint* skin_joint) : mWorldMatrix(world_matrix), mSkinJoint(skin_joint){} 153 LLJointRenderData(const LLMatrix4* world_matrix, LLSkinJoint* skin_joint) : mWorldMatrix(world_matrix), mSkinJoint(skin_joint) {}
154 ~LLJointRenderData(){} 154 ~LLJointRenderData(){}
155 155
156 const LLMatrix4* mWorldMatrix; 156 const LLMatrix4* mWorldMatrix;
diff --git a/linden/indra/newview/llpolymorph.cpp b/linden/indra/newview/llpolymorph.cpp
index 34a9b71..e88d757 100644
--- a/linden/indra/newview/llpolymorph.cpp
+++ b/linden/indra/newview/llpolymorph.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpolymorph.h b/linden/indra/newview/llpolymorph.h
index aea30e6..008fdc2 100644
--- a/linden/indra/newview/llpolymorph.h
+++ b/linden/indra/newview/llpolymorph.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llprefschat.cpp b/linden/indra/newview/llprefschat.cpp
index e045e61..4453751 100644
--- a/linden/indra/newview/llprefschat.cpp
+++ b/linden/indra/newview/llprefschat.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2003&license=viewergpl$ 6 * $LicenseInfo:firstyear=2003&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2003-2008, Linden Research, Inc. 8 * Copyright (c) 2003-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -36,6 +36,8 @@
36#include "lltexteditor.h" 36#include "lltexteditor.h"
37#include "llviewercontrol.h" 37#include "llviewercontrol.h"
38#include "lluictrlfactory.h" 38#include "lluictrlfactory.h"
39#include "llcolorswatch.h"
40#include "llradiogroup.h"
39#include "llstylemap.h" 41#include "llstylemap.h"
40 42
41class LLPrefsChatImpl : public LLPanel 43class LLPrefsChatImpl : public LLPanel
@@ -43,8 +45,6 @@ class LLPrefsChatImpl : public LLPanel
43public: 45public:
44 LLPrefsChatImpl(); 46 LLPrefsChatImpl();
45 /*virtual*/ ~LLPrefsChatImpl(){}; 47 /*virtual*/ ~LLPrefsChatImpl(){};
46
47 virtual void refresh();
48 48
49 void apply(); 49 void apply();
50 void cancel(); 50 void cancel();
@@ -79,12 +79,30 @@ LLPrefsChatImpl::LLPrefsChatImpl()
79{ 79{
80 LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_chat.xml"); 80 LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_chat.xml");
81 81
82 refresh(); 82 getChild<LLRadioGroup>("chat_font_size")->setSelectedIndex(gSavedSettings.getS32("ChatFontSize"));
83} 83 childSetValue("fade_chat_time", gSavedSettings.getF32("ChatPersistTime"));
84 childSetValue("max_chat_count", gSavedSettings.getS32("ConsoleMaxLines"));
85
86 getChild<LLColorSwatchCtrl>("system")->set(gSavedSettings.getColor4("SystemChatColor"));
87 getChild<LLColorSwatchCtrl>("user")->set(gSavedSettings.getColor4("UserChatColor"));
88 getChild<LLColorSwatchCtrl>("agent")->set(gSavedSettings.getColor4("AgentChatColor"));
89 getChild<LLColorSwatchCtrl>("im")->set(gSavedSettings.getColor4("IMChatColor"));
90 getChild<LLColorSwatchCtrl>("script_error")->set(gSavedSettings.getColor4("ScriptErrorColor"));
91 getChild<LLColorSwatchCtrl>("objects")->set(gSavedSettings.getColor4("ObjectChatColor"));
92 getChild<LLColorSwatchCtrl>("owner")->set(gSavedSettings.getColor4("llOwnerSayChatColor"));
93 getChild<LLColorSwatchCtrl>("background")->set(gSavedSettings.getColor4("BackgroundChatColor"));
94 getChild<LLColorSwatchCtrl>("links")->set(gSavedSettings.getColor4("HTMLLinkColor"));
95
96 childSetValue("arrow_keys_move_avatar_check", gSavedSettings.getBOOL("ArrowKeysMoveAvatar"));
97 childSetValue("show_timestamps_check", gSavedSettings.getBOOL("ChatShowTimestamps"));
98 childSetValue("script_errors_as_chat", gSavedSettings.getBOOL("ScriptErrorsAsChat"));
84 99
85void LLPrefsChatImpl::refresh() 100 childSetValue("bubble_text_chat", gSavedSettings.getBOOL("UseChatBubbles"));
86{ 101 childSetValue("chat_full_width_check", gSavedSettings.getBOOL("ChatFullWidth"));
87 LLPanel::refresh(); 102 childSetValue("close_chat_on_return_check", gSavedSettings.getBOOL("CloseChatOnReturn"));
103 childSetValue("play_typing_animation", gSavedSettings.getBOOL("PlayTypingAnim"));
104 childSetValue("console_opacity", gSavedSettings.getF32("ConsoleBackgroundOpacity"));
105 childSetValue("bubble_chat_opacity", gSavedSettings.getF32("ChatBubbleOpacity"));
88 106
89 //set values 107 //set values
90 mChatSize = gSavedSettings.getS32("ChatFontSize"); 108 mChatSize = gSavedSettings.getS32("ChatFontSize");
@@ -137,7 +155,32 @@ void LLPrefsChatImpl::cancel()
137 155
138void LLPrefsChatImpl::apply() 156void LLPrefsChatImpl::apply()
139{ 157{
140 158 gSavedSettings.setS32("ChatFontSize", getChild<LLRadioGroup>("chat_font_size")->getSelectedIndex());
159 gSavedSettings.setF32("ChatPersistTime", childGetValue("fade_chat_time").asReal());
160 gSavedSettings.setS32("ConsoleMaxLines", childGetValue("max_chat_count"));
161
162 gSavedSettings.setColor4("SystemChatColor", childGetValue("system"));
163 gSavedSettings.setColor4("UserChatColor", childGetValue("user"));
164 gSavedSettings.setColor4("AgentChatColor", childGetValue("agent"));
165 gSavedSettings.setColor4("IMChatColor", childGetValue("im"));
166 gSavedSettings.setColor4("ScriptErrorColor", childGetValue("script_error"));
167 gSavedSettings.setColor4("ObjectChatColor", childGetValue("objects"));
168 gSavedSettings.setColor4("llOwnerSayChatColor", childGetValue("owner"));
169 gSavedSettings.setColor4("BackgroundChatColor", childGetValue("background"));
170
171 gSavedSettings.setColor4("HTMLLinkColor", childGetValue("links"));
172 LLTextEditor::setLinkColor(childGetValue("links"));
173
174 gSavedSettings.setBOOL("ArrowKeysMoveAvatar", childGetValue("arrow_keys_move_avatar_check"));
175 gSavedSettings.setBOOL("ChatShowTimestamps", childGetValue("show_timestamps_check"));
176 gSavedSettings.setBOOL("ScriptErrorsAsChat", childGetValue("script_errors_as_chat"));
177 gSavedSettings.setBOOL("UseChatBubbles", childGetValue("bubble_text_chat"));
178 gSavedSettings.setBOOL("ChatFullWidth", childGetValue("chat_full_width_check"));
179 gSavedSettings.setBOOL("CloseChatOnReturn", childGetValue("close_chat_on_return_check"));
180 gSavedSettings.setBOOL("PlayTypingAnim", childGetValue("play_typing_animation"));
181
182 gSavedSettings.setF32("ConsoleBackgroundOpacity", childGetValue("console_opacity").asReal());
183 gSavedSettings.setF32("ChatBubbleOpacity", childGetValue("bubble_chat_opacity").asReal());
141} 184}
142 185
143//--------------------------------------------------------------------------- 186//---------------------------------------------------------------------------
@@ -154,7 +197,6 @@ LLPrefsChat::~LLPrefsChat()
154void LLPrefsChat::apply() 197void LLPrefsChat::apply()
155{ 198{
156 impl.apply(); 199 impl.apply();
157 LLTextEditor::setLinkColor( gSavedSettings.getColor4("HTMLLinkColor") );
158 LLStyleMap::instance().update(); 200 LLStyleMap::instance().update();
159} 201}
160 202
diff --git a/linden/indra/newview/llprefschat.h b/linden/indra/newview/llprefschat.h
index 016c433..f090042 100644
--- a/linden/indra/newview/llprefschat.h
+++ b/linden/indra/newview/llprefschat.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llprefsim.cpp b/linden/indra/newview/llprefsim.cpp
index 5333df8..1af6e86 100644
--- a/linden/indra/newview/llprefsim.cpp
+++ b/linden/indra/newview/llprefsim.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2003&license=viewergpl$ 6 * $LicenseInfo:firstyear=2003&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2003-2008, Linden Research, Inc. 8 * Copyright (c) 2003-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -55,73 +55,33 @@ public:
55 /*virtual*/ BOOL postBuild(); 55 /*virtual*/ BOOL postBuild();
56 56
57 void apply(); 57 void apply();
58 void refresh();
59 void cancel(); 58 void cancel();
60 void setPersonalInfo( 59 void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email);
61 const std::string& visibility,
62 bool im_via_email,
63 const std::string& email);
64 void enableHistory(); 60 void enableHistory();
61
65 static void onClickLogPath(void* user_data); 62 static void onClickLogPath(void* user_data);
66 static void onCommitLogging( LLUICtrl* ctrl, void* user_data); 63 static void onCommitLogging(LLUICtrl* ctrl, void* user_data);
67 64
68protected: 65protected:
69 BOOL mIMInChatHistory; 66
70 BOOL mLogInstantMessages;
71 BOOL mLogChat;
72 BOOL mLogShowHistory;
73 BOOL mShowTimestamps;
74 BOOL mIMLogTimestamp;
75 BOOL mLogChatTimestamp;
76 BOOL mLogIMChat;
77 BOOL mLogTimestampDate;
78
79 std::string mIMBusyResponse;
80 std::string mLogPath;
81
82 bool mGotPersonalInfo; 67 bool mGotPersonalInfo;
83 bool mOriginalIMViaEmail; 68 bool mOriginalIMViaEmail;
84 69
85 // online status info
86 bool mOriginalHideOnlineStatus; 70 bool mOriginalHideOnlineStatus;
87 std::string mDirectoryVisibility; 71 std::string mDirectoryVisibility;
88}; 72};
89 73
90 74
91LLPrefsIMImpl::LLPrefsIMImpl() 75LLPrefsIMImpl::LLPrefsIMImpl()
92 : LLPanel(std::string("IM Prefs Panel")) 76 : LLPanel(std::string("IM Prefs Panel")),
77 mGotPersonalInfo(false),
78 mOriginalIMViaEmail(false)
93{ 79{
94 LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_im.xml"); 80 LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_im.xml");
95} 81}
96 82
97void LLPrefsIMImpl::refresh()
98{
99 mIMInChatHistory = gSavedSettings.getBOOL("IMInChatHistory");
100 mShowTimestamps = gSavedSettings.getBOOL("IMShowTimestamps");
101 mIMBusyResponse = gSavedPerAccountSettings.getString("BusyModeResponse");
102 mLogPath = gSavedPerAccountSettings.getString("InstantMessageLogPath");
103 mLogInstantMessages= gSavedPerAccountSettings.getBOOL("LogInstantMessages");
104 mLogChat = gSavedPerAccountSettings.getBOOL("LogChat");
105 mLogShowHistory = gSavedPerAccountSettings.getBOOL("LogShowHistory");
106 mIMLogTimestamp = gSavedPerAccountSettings.getBOOL("IMLogTimestamp");
107 mLogChatTimestamp = gSavedPerAccountSettings.getBOOL("LogChatTimestamp");
108 mLogIMChat = gSavedPerAccountSettings.getBOOL("LogChatIM");
109 mLogTimestampDate = gSavedPerAccountSettings.getBOOL("LogTimestampDate");
110}
111
112void LLPrefsIMImpl::cancel() 83void LLPrefsIMImpl::cancel()
113{ 84{
114 gSavedSettings.setBOOL("IMInChatHistory", mIMInChatHistory);
115 gSavedSettings.setBOOL("IMShowTimestamps", mShowTimestamps);
116 gSavedPerAccountSettings.setString("BusyModeResponse", mIMBusyResponse);
117 gSavedPerAccountSettings.setString("InstantMessageLogPath",mLogPath);
118 gSavedPerAccountSettings.setBOOL("LogInstantMessages",mLogInstantMessages);
119 gSavedPerAccountSettings.setBOOL("LogChat",mLogChat);
120 gSavedPerAccountSettings.setBOOL("LogShowHistory",mLogShowHistory);
121 gSavedPerAccountSettings.setBOOL("IMLogTimestamp",mIMLogTimestamp);
122 gSavedPerAccountSettings.setBOOL("LogChatTimestamp",mLogChatTimestamp);
123 gSavedPerAccountSettings.setBOOL("LogChatIM",mLogIMChat);
124 gSavedPerAccountSettings.setBOOL("LogTimestampDate",mLogTimestampDate);
125} 85}
126 86
127BOOL LLPrefsIMImpl::postBuild() 87BOOL LLPrefsIMImpl::postBuild()
@@ -133,12 +93,13 @@ BOOL LLPrefsIMImpl::postBuild()
133 return FALSE; 93 return FALSE;
134 } 94 }
135 95
136 mGotPersonalInfo = false;
137 mOriginalIMViaEmail = false;
138 mOriginalHideOnlineStatus = true;
139 childSetLabelArg("send_im_to_email", "[EMAIL]", getString("log_in_to_change")); 96 childSetLabelArg("send_im_to_email", "[EMAIL]", getString("log_in_to_change"));
140 97
141 // Don't enable this until we get personal data 98 // Don't enable this until we get personal data
99 childDisable("include_im_in_chat_history");
100 childDisable("show_timestamps_check");
101 childDisable("friends_online_notify_checkbox");
102
142 childDisable("online_visibility"); 103 childDisable("online_visibility");
143 childDisable("send_im_to_email"); 104 childDisable("send_im_to_email");
144 childDisable("log_instant_messages"); 105 childDisable("log_instant_messages");
@@ -152,17 +113,20 @@ BOOL LLPrefsIMImpl::postBuild()
152 childDisable("log_date_timestamp"); 113 childDisable("log_date_timestamp");
153 114
154 childSetText("busy_response", getString("log_in_to_change")); 115 childSetText("busy_response", getString("log_in_to_change"));
155 116
156 refresh(); 117 childSetValue("include_im_in_chat_history", gSavedSettings.getBOOL("IMInChatHistory"));
157 118 childSetValue("show_timestamps_check", gSavedSettings.getBOOL("IMShowTimestamps"));
158 childSetText("log_path_string", mLogPath); 119 childSetValue("friends_online_notify_checkbox", gSavedSettings.getBOOL("ChatOnlineNotification"));
159 childSetValue("log_instant_messages", mLogInstantMessages); 120
160 childSetValue("log_chat", mLogChat); 121 childSetText("log_path_string", gSavedPerAccountSettings.getString("InstantMessageLogPath"));
161 childSetValue("log_show_history", mLogShowHistory); 122 childSetValue("log_instant_messages", gSavedPerAccountSettings.getBOOL("LogInstantMessages"));
162 childSetValue("log_instant_messages_timestamp", mIMLogTimestamp); 123 childSetValue("log_chat", gSavedPerAccountSettings.getBOOL("LogChat"));
163 childSetValue("log_chat_timestamp", mLogChatTimestamp); 124 childSetValue("log_show_history", gSavedPerAccountSettings.getBOOL("LogShowHistory"));
164 childSetValue("log_chat_IM", mLogIMChat); 125 childSetValue("log_instant_messages_timestamp", gSavedPerAccountSettings.getBOOL("IMLogTimestamp"));
165 childSetValue("log_date_timestamp",mLogTimestampDate); 126 childSetValue("log_chat_timestamp", gSavedPerAccountSettings.getBOOL("LogChatTimestamp"));
127 childSetValue("log_chat_IM", gSavedPerAccountSettings.getBOOL("LogChatIM"));
128 childSetValue("log_date_timestamp", gSavedPerAccountSettings.getBOOL("LogTimestampDate"));
129
166 childSetAction("log_path_button", onClickLogPath, this); 130 childSetAction("log_path_button", onClickLogPath, this);
167 childSetCommitCallback("log_chat",onCommitLogging,this); 131 childSetCommitCallback("log_chat",onCommitLogging,this);
168 childSetCommitCallback("log_instant_messages",onCommitLogging,this); 132 childSetCommitCallback("log_instant_messages",onCommitLogging,this);
@@ -199,6 +163,10 @@ void LLPrefsIMImpl::apply()
199 163
200 gSavedPerAccountSettings.setString("BusyModeResponse", std::string(wstring_to_utf8str(busy_response))); 164 gSavedPerAccountSettings.setString("BusyModeResponse", std::string(wstring_to_utf8str(busy_response)));
201 165
166 gSavedSettings.setBOOL("IMInChatHistory", childGetValue("include_im_in_chat_history").asBoolean());
167 gSavedSettings.setBOOL("IMShowTimestamps", childGetValue("show_timestamps_check").asBoolean());
168 gSavedSettings.setBOOL("ChatOnlineNotification", childGetValue("friends_online_notify_checkbox").asBoolean());
169
202 gSavedPerAccountSettings.setString("InstantMessageLogPath", childGetText("log_path_string")); 170 gSavedPerAccountSettings.setString("InstantMessageLogPath", childGetText("log_path_string"));
203 gSavedPerAccountSettings.setBOOL("LogInstantMessages",childGetValue("log_instant_messages").asBoolean()); 171 gSavedPerAccountSettings.setBOOL("LogInstantMessages",childGetValue("log_instant_messages").asBoolean());
204 gSavedPerAccountSettings.setBOOL("LogChat",childGetValue("log_chat").asBoolean()); 172 gSavedPerAccountSettings.setBOOL("LogChat",childGetValue("log_chat").asBoolean());
@@ -245,14 +213,12 @@ void LLPrefsIMImpl::apply()
245 } 213 }
246} 214}
247 215
248void LLPrefsIMImpl::setPersonalInfo( 216void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email)
249 const std::string& visibility,
250 bool im_via_email,
251 const std::string& email)
252{ 217{
253 mGotPersonalInfo = true; 218 mGotPersonalInfo = true;
254 mOriginalIMViaEmail = im_via_email; 219 mOriginalIMViaEmail = im_via_email;
255 mDirectoryVisibility = visibility; 220 mDirectoryVisibility = visibility;
221
256 if(visibility == VISIBILITY_DEFAULT) 222 if(visibility == VISIBILITY_DEFAULT)
257 { 223 {
258 mOriginalHideOnlineStatus = false; 224 mOriginalHideOnlineStatus = false;
@@ -267,6 +233,11 @@ void LLPrefsIMImpl::setPersonalInfo(
267 { 233 {
268 mOriginalHideOnlineStatus = true; 234 mOriginalHideOnlineStatus = true;
269 } 235 }
236
237 childEnable("include_im_in_chat_history");
238 childEnable("show_timestamps_check");
239 childEnable("friends_online_notify_checkbox");
240
270 childSetValue("online_visibility", mOriginalHideOnlineStatus); 241 childSetValue("online_visibility", mOriginalHideOnlineStatus);
271 childSetLabelArg("online_visibility", "[DIR_VIS]", mDirectoryVisibility); 242 childSetLabelArg("online_visibility", "[DIR_VIS]", mDirectoryVisibility);
272 childEnable("send_im_to_email"); 243 childEnable("send_im_to_email");
@@ -308,7 +279,7 @@ void LLPrefsIMImpl::onClickLogPath(void* user_data)
308 std::string proposed_name(self->childGetText("log_path_string")); 279 std::string proposed_name(self->childGetText("log_path_string"));
309 280
310 LLDirPicker& picker = LLDirPicker::instance(); 281 LLDirPicker& picker = LLDirPicker::instance();
311 if (! picker.getDir(&proposed_name ) ) 282 if (!picker.getDir(&proposed_name ) )
312 { 283 {
313 return; //Canceled! 284 return; //Canceled!
314 } 285 }
diff --git a/linden/indra/newview/llprefsim.h b/linden/indra/newview/llprefsim.h
index 839501f..1423832 100644
--- a/linden/indra/newview/llprefsim.h
+++ b/linden/indra/newview/llprefsim.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2003&license=viewergpl$ 6 * $LicenseInfo:firstyear=2003&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2003-2008, Linden Research, Inc. 8 * Copyright (c) 2003-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llprefsvoice.cpp b/linden/indra/newview/llprefsvoice.cpp
index 6661f08..ae7c921 100644
--- a/linden/indra/newview/llprefsvoice.cpp
+++ b/linden/indra/newview/llprefsvoice.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2003&license=viewergpl$ 6 * $LicenseInfo:firstyear=2003&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2003-2008, Linden Research, Inc. 8 * Copyright (c) 2003-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -35,245 +35,175 @@
35#include "llprefsvoice.h" 35#include "llprefsvoice.h"
36 36
37#include "llcheckboxctrl.h" 37#include "llcheckboxctrl.h"
38#include "llcombobox.h" 38#include "llfloatervoicedevicesettings.h"
39 39#include "llfocusmgr.h"
40#include "llkeyboard.h"
41#include "llmodaldialog.h"
40#include "llviewercontrol.h" 42#include "llviewercontrol.h"
41#include "lluictrlfactory.h" 43#include "lluictrlfactory.h"
42 44
43#include "llmodaldialog.h"
44#include "llkeyboard.h"
45#include "llfocusmgr.h"
46#include "llfloatervoicedevicesettings.h"
47
48#include "llappviewer.h"
49
50#include "llvoiceclient.h"
51 45
52class LLVoiceHotkeySelectDialog : public LLModalDialog 46class LLVoiceSetKeyDialog : public LLModalDialog
53{ 47{
54private:
55 LLPrefsVoiceLogic *mParent;
56 LLFloater *mOldFrontmost;
57
58public: 48public:
59 LLVoiceHotkeySelectDialog( LLPrefsVoiceLogic *parent ) 49 LLVoiceSetKeyDialog(LLPrefsVoice* parent);
60 : LLModalDialog( LLStringUtil::null, 240, 100 ), 50 ~LLVoiceSetKeyDialog();
61 mParent( parent )
62 {
63 mOldFrontmost = gFloaterView->getFrontmost();
64
65 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_select_key.xml");
66
67 childSetAction("Cancel", LLVoiceHotkeySelectDialog::onCancel, this );
68 childSetFocus("Cancel");
69 }
70
71 /*virtual*/ void setFocus( BOOL b )
72 {
73 LLFloater::setFocus(b);
74
75 // This forces keyboard processing to happen at the raw key level instead of going through handleUnicodeChar.
76 if (b)
77 {
78 gFocusMgr.setKeystrokesOnly(TRUE);
79 }
80 }
81
82 static void onCancel( void* userdata );
83 51
84 BOOL handleKeyHere(KEY key, MASK mask); 52 BOOL handleKeyHere(KEY key, MASK mask);
85 53
54 static void onCancel(void* user_data);
55
56private:
57 LLPrefsVoice* mParent;
86}; 58};
87 59
88LLPrefsVoiceLogic::LLPrefsVoiceLogic(LLPanel* panelp) : 60LLVoiceSetKeyDialog::LLVoiceSetKeyDialog(LLPrefsVoice* parent)
89 mPanel(panelp) 61 : LLModalDialog(LLStringUtil::null, 240, 100), mParent(parent)
90{ 62{
91 init(); 63 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_select_key.xml");
64 childSetAction("Cancel", onCancel, this);
65 childSetFocus("Cancel");
66
67 gFocusMgr.setKeystrokesOnly(TRUE);
92} 68}
93
94void LLPrefsVoiceLogic::init()
95{
96 mEnableVoice = gSavedSettings.getBOOL("EnableVoiceChat");
97 69
98 mVoiceCallsFriendsOnly = gSavedSettings.getBOOL("VoiceCallsFriendsOnly"); 70LLVoiceSetKeyDialog::~LLVoiceSetKeyDialog()
99 mModifier = gSavedSettings.getString("PushToTalkButton"); 71{
100 mPushToTalkToggle = gSavedSettings.getBOOL("PushToTalkToggle"); 72}
101 mEarLocation = gSavedSettings.getS32("VoiceEarLocation");
102 73
103 LLUICtrl* ear_location = mPanel->getChild<LLUICtrl>("ear_location"); 74BOOL LLVoiceSetKeyDialog::handleKeyHere(KEY key, MASK mask)
104 mCtrlEarLocation = ear_location->getSelectionInterface(); 75{
105 if (mCtrlEarLocation) 76 BOOL result = TRUE;
77
78 if(key == 'Q' && mask == MASK_CONTROL)
106 { 79 {
107 mCtrlEarLocation->selectByValue(LLSD(gSavedSettings.getS32("VoiceEarLocation"))); 80 result = FALSE;
81 }
82 else
83 {
84 mParent->setKey(key);
108 } 85 }
109 mPanel->childSetCommitCallback("ear_location", onEarLocationCommit, this );
110
111 mPanel->childSetAction("set_voice_hotkey_button", onClickSetKey, this);
112 mPanel->childSetAction("set_voice_middlemouse_button", onClickSetMiddleMouse, this);
113 86
114 refresh(); 87 close();
115 mEatNextSetKeyClick = FALSE; 88 return result;
116} 89}
117 90
118void LLPrefsVoiceLogic::refresh() 91//static
92void LLVoiceSetKeyDialog::onCancel(void* user_data)
119{ 93{
120 BOOL voiceDisabled = gSavedSettings.getBOOL("CmdLineDisableVoice"); 94 LLVoiceSetKeyDialog* self = (LLVoiceSetKeyDialog*)user_data;
121 mPanel->childSetVisible("voice_unavailable", voiceDisabled); 95 self->close();
122 mPanel->childSetVisible("enable_voice_check", !voiceDisabled);
123 mPanel->childSetEnabled("enable_voice_check", !voiceDisabled);
124
125 bool enable = !voiceDisabled && gSavedSettings.getBOOL("EnableVoiceChat");
126
127 mPanel->childSetEnabled("friends_only_check", enable);
128 mPanel->childSetEnabled("push_to_talk_check", enable);
129 mPanel->childSetEnabled("push_to_talk_label", enable);
130 mPanel->childSetEnabled("voice_call_friends_only_check", enable);
131 mPanel->childSetEnabled("push_to_talk_toggle_check", enable);
132 mPanel->childSetEnabled("ear_location", enable);
133 mPanel->childSetEnabled("set_voice_hotkey_button", enable);
134 mPanel->childSetEnabled("set_voice_middlemouse_button", enable);
135} 96}
136 97
137void LLPrefsVoiceLogic::cancel() 98//--------------------------------------------------------------------
138{ 99//LLPrefsVoice
139 gSavedSettings.setBOOL("EnableVoiceChat", mEnableVoice); 100LLPrefsVoice::LLPrefsVoice()
140 gSavedSettings.setBOOL("VoiceCallsFriendsOnly", mVoiceCallsFriendsOnly); 101 : LLPanel(std::string("Voice Chat Panel"))
141 gSavedSettings.setString("PushToTalkButton", mModifier); 102{
142 gSavedSettings.setBOOL("PushToTalkToggle", mPushToTalkToggle ); 103 LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_voice.xml");
143 gSavedSettings.setS32("VoiceEarLocation", mEarLocation);
144} 104}
145 105
146void LLPrefsVoiceLogic::apply() 106LLPrefsVoice::~LLPrefsVoice()
147{ 107{
148} 108}
149 109
150//static 110BOOL LLPrefsVoice::postBuild()
151void LLPrefsVoiceLogic::onEarLocationCommit(LLUICtrl* ctrl, void* user_data)
152{ 111{
153 LLCtrlSelectionInterface* interfacep = ctrl->getSelectionInterface(); 112 childSetCommitCallback("enable_voice_check", onCommitEnableVoiceChat, this);
154 if (interfacep) 113 childSetAction("set_voice_hotkey_button", onClickSetKey, this);
155 { 114 childSetAction("set_voice_middlemouse_button", onClickSetMiddleMouse, this);
156 gSavedSettings.setS32("VoiceEarLocation", interfacep->getSelectedValue().asInteger()); 115 childSetAction("device_settings_btn", onClickVoiceDeviceSettings, NULL);
157 }
158}
159 116
160// static 117 BOOL voice_disabled = gSavedSettings.getBOOL("CmdLineDisableVoice");
161void LLPrefsVoiceLogic::onClickSetKey(void* user_data) 118 childSetVisible("voice_unavailable", voice_disabled);
162{ 119 childSetVisible("enable_voice_check", !voice_disabled);
163 LLPrefsVoiceLogic* self=(LLPrefsVoiceLogic*)user_data; 120 childSetEnabled("enable_voice_check", !voice_disabled);
164 if(self->mEatNextSetKeyClick)
165 {
166 self->mEatNextSetKeyClick = false;
167 }
168 else
169 {
170 LLVoiceHotkeySelectDialog* dialog = new LLVoiceHotkeySelectDialog( self );
171 dialog->startModal();
172 // dialog will delete itself
173 }
174}
175 121
122 bool enable = !voice_disabled && gSavedSettings.getBOOL("EnableVoiceChat");
123 childSetValue("enable_voice_check", enable);
124 onCommitEnableVoiceChat(getChild<LLCheckBoxCtrl>("enable_voice_check"), this);
176 125
177// static 126 childSetValue("modifier_combo", gSavedSettings.getString("PushToTalkButton"));
178void LLPrefsVoiceLogic::onClickSetMiddleMouse(void* user_data) 127 childSetValue("voice_call_friends_only_check", gSavedSettings.getBOOL("VoiceCallsFriendsOnly"));
179{ 128 childSetValue("push_to_talk_toggle_check", gSavedSettings.getBOOL("PushToTalkToggle"));
180// LLPrefsVoiceLogic* self=(LLPrefsVoiceLogic*)user_data; 129 childSetValue("ear_location", gSavedSettings.getS32("VoiceEarLocation"));
181 130
182 gSavedSettings.setString("PushToTalkButton", "MiddleMouse"); 131 return TRUE;
183} 132}
184 133
185void LLPrefsVoiceLogic::setKey(KEY key, MASK mask) 134void LLPrefsVoice::apply()
186{ 135{
187 std::string keystring = LLKeyboard::stringFromKey(key); 136 gSavedSettings.setBOOL("EnableVoiceChat", childGetValue("enable_voice_check"));
188 gSavedSettings.setString("PushToTalkButton", keystring); 137
138 gSavedSettings.setString("PushToTalkButton", childGetValue("modifier_combo"));
139 gSavedSettings.setBOOL("VoiceCallsFriendsOnly", childGetValue("voice_call_friends_only_check"));
140 gSavedSettings.setBOOL("PushToTalkToggle", childGetValue("push_to_talk_toggle_check"));
141 gSavedSettings.setS32("VoiceEarLocation", childGetValue("ear_location"));
189 142
190 if(key == ' ') 143 LLFloaterVoiceDeviceSettings* voice_device_settings = LLFloaterVoiceDeviceSettings::getInstance();
144 if(voice_device_settings)
191 { 145 {
192 // This will cause the select dialog to immediately reopen. 146 voice_device_settings->apply();
193 // Eat the next click event.
194 mEatNextSetKeyClick = TRUE;
195 } 147 }
196} 148}
197 149
198void LLVoiceHotkeySelectDialog::onCancel( void* userdata ) 150void LLPrefsVoice::cancel()
199{
200 LLVoiceHotkeySelectDialog* self = (LLVoiceHotkeySelectDialog*) userdata;
201 self->close(); // destroys this object
202 self->mOldFrontmost->setFrontmost(TRUE);
203}
204
205BOOL LLVoiceHotkeySelectDialog::handleKeyHere(KEY key, MASK mask)
206{ 151{
207 BOOL result = TRUE; 152 LLFloaterVoiceDeviceSettings* voice_device_settings = LLFloaterVoiceDeviceSettings::getInstance();
208 153 if(voice_device_settings)
209 // Suck up all keystokes except CTRL-Q.
210 BOOL is_quit = ('Q' == key) && (MASK_CONTROL == mask);
211 if(is_quit)
212 { 154 {
213 result = FALSE; 155 voice_device_settings->cancel();
214 }
215 else
216 {
217 mParent->setKey(key, mask);
218 } 156 }
219
220 close(); // destroys this object
221 mOldFrontmost->setFrontmost(TRUE);
222
223 return result;
224} 157}
225 158
226//--------------------------------------------------------------------------- 159void LLPrefsVoice::setKey(KEY key)
227
228
229LLPrefsVoice::LLPrefsVoice()
230 : LLPanel(std::string("Voice Chat Panel"))
231{
232 LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_voice.xml");
233 mLogic = new LLPrefsVoiceLogic(this);
234 childSetAction("device_settings_btn", onClickVoiceDeviceSettingsBtn, this);
235
236 // create floater immediately and keep it hidden
237 // since it stores preference state for audio devices
238 mVoiceDeviceSettings = LLFloaterVoiceDeviceSettings::getInstance();
239}
240
241LLPrefsVoice::~LLPrefsVoice()
242{ 160{
243 delete mLogic; 161 childSetValue("modifier_combo", LLKeyboard::stringFromKey(key));
244} 162}
245 163
246void LLPrefsVoice::draw() 164//static
165void LLPrefsVoice::onCommitEnableVoiceChat(LLUICtrl* ctrl, void* user_data)
247{ 166{
248 bool enable = !gSavedSettings.getBOOL("CmdLineDisableVoice") 167 LLPrefsVoice* self = (LLPrefsVoice*)user_data;
249 && gSavedSettings.getBOOL("EnableVoiceChat"); 168 LLCheckBoxCtrl* enable_voice_chat = (LLCheckBoxCtrl*)ctrl;
250 childSetEnabled("device_settings_btn", enable); 169
170 bool enable = enable_voice_chat->getValue();
251 171
252 mLogic->refresh(); 172 self->childSetEnabled("modifier_combo", enable);
253 mVoiceDeviceSettings->refresh(); 173 self->childSetEnabled("friends_only_check", enable);
254 LLPanel::draw(); 174 self->childSetEnabled("push_to_talk_label", enable);
175 self->childSetEnabled("voice_call_friends_only_check", enable);
176 self->childSetEnabled("push_to_talk_toggle_check", enable);
177 self->childSetEnabled("ear_location", enable);
178 self->childSetEnabled("set_voice_hotkey_button", enable);
179 self->childSetEnabled("set_voice_middlemouse_button", enable);
180 self->childSetEnabled("device_settings_btn", enable);
255} 181}
256 182
257void LLPrefsVoice::apply() 183//static
184void LLPrefsVoice::onClickSetKey(void* user_data)
258{ 185{
259 mLogic->apply(); 186 LLPrefsVoice* self = (LLPrefsVoice*)user_data;
260 mVoiceDeviceSettings->apply(); 187 LLVoiceSetKeyDialog* dialog = new LLVoiceSetKeyDialog(self);
188 dialog->startModal();
261} 189}
262 190
263void LLPrefsVoice::cancel() 191//static
192void LLPrefsVoice::onClickSetMiddleMouse(void* user_data)
264{ 193{
265 mLogic->cancel(); 194 LLPrefsVoice* self = (LLPrefsVoice*)user_data;
266 mVoiceDeviceSettings->cancel(); 195 self->childSetValue("modifier_combo", "MiddleMouse");
267} 196}
268 197
269//static 198//static
270void LLPrefsVoice::onClickVoiceDeviceSettingsBtn(void* user_data) 199void LLPrefsVoice::onClickVoiceDeviceSettings(void* user_data)
271{ 200{
272 LLPrefsVoice* prefs = (LLPrefsVoice*)user_data; 201 LLPrefsVoice* voice_prefs = (LLPrefsVoice*)user_data;
273 prefs->mVoiceDeviceSettings->open(); 202 LLFloaterVoiceDeviceSettings* device_settings_floater = LLFloaterVoiceDeviceSettings::showInstance();
274 LLFloater* parent_floater = gFloaterView->getParentFloater(prefs); 203 LLFloater* parent_floater = gFloaterView->getParentFloater(voice_prefs);
275 if (parent_floater) 204 if(parent_floater)
276 { 205 {
277 parent_floater->addDependentFloater(prefs->mVoiceDeviceSettings, FALSE); 206 parent_floater->addDependentFloater(device_settings_floater, FALSE);
278 } 207 }
279} 208}
209
diff --git a/linden/indra/newview/llprefsvoice.h b/linden/indra/newview/llprefsvoice.h
index 836108d..fa48395 100644
--- a/linden/indra/newview/llprefsvoice.h
+++ b/linden/indra/newview/llprefsvoice.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -34,55 +34,24 @@
34 34
35#include "llpanel.h" 35#include "llpanel.h"
36 36
37class LLFloaterVoiceDeviceSettings;
38
39class LLPrefsVoiceLogic
40{
41public:
42 LLPrefsVoiceLogic(LLPanel* panelp);
43 virtual ~LLPrefsVoiceLogic(){};
44
45 virtual void init();
46
47 void apply();
48 void cancel();
49 void refresh();
50
51 void setKey(KEY key, MASK mask);
52
53protected:
54
55 static void onClickSetKey(void* user_data);
56 static void onClickSetMiddleMouse(void* user_data);
57 static void onEarLocationCommit(LLUICtrl* ctrl, void* user_data);
58
59 BOOL mEnableVoice;
60 BOOL mVoiceCallsFriendsOnly;
61 std::string mModifier;
62 BOOL mPushToTalkToggle;
63 S32 mEarLocation;
64 LLCtrlSelectionInterface *mCtrlEarLocation;
65
66 BOOL mEatNextSetKeyClick;
67
68 LLPanel* mPanel;
69};
70
71class LLPrefsVoice : public LLPanel 37class LLPrefsVoice : public LLPanel
72{ 38{
73public: 39public:
74 LLPrefsVoice(); 40 LLPrefsVoice();
75 ~LLPrefsVoice(); 41 ~LLPrefsVoice();
76 42
77 /*virtual*/ void draw(); 43 BOOL postBuild();
44
78 void apply(); 45 void apply();
79 void cancel(); 46 void cancel();
80 47
81protected: 48 void setKey(KEY key);
82 static void onClickVoiceDeviceSettingsBtn(void* user_data);
83 49
84 LLPrefsVoiceLogic* mLogic; 50private:
85 LLFloaterVoiceDeviceSettings* mVoiceDeviceSettings; 51 static void onCommitEnableVoiceChat(LLUICtrl* ctrl, void* user_data);
52 static void onClickSetKey(void* user_data);
53 static void onClickSetMiddleMouse(void* user_data);
54 static void onClickVoiceDeviceSettings(void* user_data);
86}; 55};
87 56
88#endif // LLPREFSVOICE_H 57#endif // LLPREFSVOICE_H
diff --git a/linden/indra/newview/llpreview.cpp b/linden/indra/newview/llpreview.cpp
index ef212d2..1a6d2ca 100644
--- a/linden/indra/newview/llpreview.cpp
+++ b/linden/indra/newview/llpreview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreview.h b/linden/indra/newview/llpreview.h
index d7496d6..74daca6 100644
--- a/linden/indra/newview/llpreview.h
+++ b/linden/indra/newview/llpreview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreviewanim.cpp b/linden/indra/newview/llpreviewanim.cpp
index 9c7fb4a..2dc0a84 100644
--- a/linden/indra/newview/llpreviewanim.cpp
+++ b/linden/indra/newview/llpreviewanim.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreviewanim.h b/linden/indra/newview/llpreviewanim.h
index 8c32d9f..1b192ac 100644
--- a/linden/indra/newview/llpreviewanim.h
+++ b/linden/indra/newview/llpreviewanim.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreviewgesture.cpp b/linden/indra/newview/llpreviewgesture.cpp
index c0c3c93..c018e4d 100644
--- a/linden/indra/newview/llpreviewgesture.cpp
+++ b/linden/indra/newview/llpreviewgesture.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreviewgesture.h b/linden/indra/newview/llpreviewgesture.h
index 41008f9..a5b8492 100644
--- a/linden/indra/newview/llpreviewgesture.h
+++ b/linden/indra/newview/llpreviewgesture.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreviewlandmark.cpp b/linden/indra/newview/llpreviewlandmark.cpp
index 20b0ee5..12cf739 100644
--- a/linden/indra/newview/llpreviewlandmark.cpp
+++ b/linden/indra/newview/llpreviewlandmark.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreviewlandmark.h b/linden/indra/newview/llpreviewlandmark.h
index 61d8309..cbce74c 100644
--- a/linden/indra/newview/llpreviewlandmark.h
+++ b/linden/indra/newview/llpreviewlandmark.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreviewnotecard.cpp b/linden/indra/newview/llpreviewnotecard.cpp
index 30df1c3..977be32 100644
--- a/linden/indra/newview/llpreviewnotecard.cpp
+++ b/linden/indra/newview/llpreviewnotecard.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreviewnotecard.h b/linden/indra/newview/llpreviewnotecard.h
index 9e90f18..17752fa 100644
--- a/linden/indra/newview/llpreviewnotecard.h
+++ b/linden/indra/newview/llpreviewnotecard.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreviewscript.cpp b/linden/indra/newview/llpreviewscript.cpp
index 52fca27..af52a4b 100644
--- a/linden/indra/newview/llpreviewscript.cpp
+++ b/linden/indra/newview/llpreviewscript.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -101,7 +101,7 @@ const std::string HELLO_LSL =
101 " llSay(0, \"Touched.\");\n" 101 " llSay(0, \"Touched.\");\n"
102 " }\n" 102 " }\n"
103 "}\n"; 103 "}\n";
104const std::string HELP_LSL = "lsl_guide.html"; 104const std::string HELP_LSL_URL = "http://wiki.secondlife.com/wiki/LSL_Portal";
105 105
106const std::string DEFAULT_SCRIPT_NAME = "New Script"; // *TODO:Translate? 106const std::string DEFAULT_SCRIPT_NAME = "New Script"; // *TODO:Translate?
107const std::string DEFAULT_SCRIPT_DESC = "(No Description)"; // *TODO:Translate? 107const std::string DEFAULT_SCRIPT_DESC = "(No Description)"; // *TODO:Translate?
@@ -294,7 +294,7 @@ LLScriptEdCore::LLScriptEdCore(
294 const std::string& name, 294 const std::string& name,
295 const LLRect& rect, 295 const LLRect& rect,
296 const std::string& sample, 296 const std::string& sample,
297 const std::string& help, 297 const std::string& help_url,
298 const LLHandle<LLFloater>& floater_handle, 298 const LLHandle<LLFloater>& floater_handle,
299 void (*load_callback)(void*), 299 void (*load_callback)(void*),
300 void (*save_callback)(void*, BOOL), 300 void (*save_callback)(void*, BOOL),
@@ -304,7 +304,7 @@ LLScriptEdCore::LLScriptEdCore(
304 : 304 :
305 LLPanel( std::string("name"), rect ), 305 LLPanel( std::string("name"), rect ),
306 mSampleText(sample), 306 mSampleText(sample),
307 mHelpFile ( help ), 307 mHelpURL(help_url),
308 mEditor( NULL ), 308 mEditor( NULL ),
309 mLoadCallback( load_callback ), 309 mLoadCallback( load_callback ),
310 mSaveCallback( save_callback ), 310 mSaveCallback( save_callback ),
@@ -547,7 +547,6 @@ void LLScriptEdCore::setHelpPage(const std::string& help_string)
547 if (!history_combo) return; 547 if (!history_combo) return;
548 548
549 LLUIString url_string = gSavedSettings.getString("LSLHelpURL"); 549 LLUIString url_string = gSavedSettings.getString("LSLHelpURL");
550 url_string.setArg("[APP_DIRECTORY]", gDirUtilp->getWorkingDir());
551 url_string.setArg("[LSL_STRING]", help_string); 550 url_string.setArg("[LSL_STRING]", help_string);
552 551
553 addHelpItemToHistory(help_string); 552 addHelpItemToHistory(help_string);
@@ -556,6 +555,7 @@ void LLScriptEdCore::setHelpPage(const std::string& help_string)
556 555
557} 556}
558 557
558
559void LLScriptEdCore::addHelpItemToHistory(const std::string& help_string) 559void LLScriptEdCore::addHelpItemToHistory(const std::string& help_string)
560{ 560{
561 if (help_string.empty()) return; 561 if (help_string.empty()) return;
@@ -647,7 +647,7 @@ void LLScriptEdCore::onHelpWebDialog(S32 option, void* userdata)
647 switch(option) 647 switch(option)
648 { 648 {
649 case 0: 649 case 0:
650 load_url_local_file(corep->mHelpFile); 650 LLWeb::loadURL(corep->mHelpURL);
651 break; 651 break;
652 default: 652 default:
653 break; 653 break;
@@ -773,7 +773,6 @@ void LLScriptEdCore::onHelpComboCommit(LLUICtrl* ctrl, void* userdata)
773 773
774 LLWebBrowserCtrl* web_browser = live_help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html"); 774 LLWebBrowserCtrl* web_browser = live_help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html");
775 LLUIString url_string = gSavedSettings.getString("LSLHelpURL"); 775 LLUIString url_string = gSavedSettings.getString("LSLHelpURL");
776 url_string.setArg("[APP_DIRECTORY]", gDirUtilp->getWorkingDir());
777 url_string.setArg("[LSL_STRING]", help_string); 776 url_string.setArg("[LSL_STRING]", help_string);
778 web_browser->navigateTo(url_string); 777 web_browser->navigateTo(url_string);
779 } 778 }
@@ -1072,7 +1071,7 @@ void* LLPreviewLSL::createScriptEdPanel(void* userdata)
1072 self->mScriptEd = new LLScriptEdCore("script panel", 1071 self->mScriptEd = new LLScriptEdCore("script panel",
1073 LLRect(), 1072 LLRect(),
1074 HELLO_LSL, 1073 HELLO_LSL,
1075 HELP_LSL, 1074 HELP_LSL_URL,
1076 self->getHandle(), 1075 self->getHandle(),
1077 LLPreviewLSL::onLoad, 1076 LLPreviewLSL::onLoad,
1078 LLPreviewLSL::onSave, 1077 LLPreviewLSL::onSave,
@@ -1590,7 +1589,7 @@ void* LLLiveLSLEditor::createScriptEdPanel(void* userdata)
1590 self->mScriptEd = new LLScriptEdCore("script ed panel", 1589 self->mScriptEd = new LLScriptEdCore("script ed panel",
1591 LLRect(), 1590 LLRect(),
1592 HELLO_LSL, 1591 HELLO_LSL,
1593 HELP_LSL, 1592 HELP_LSL_URL,
1594 self->getHandle(), 1593 self->getHandle(),
1595 &LLLiveLSLEditor::onLoad, 1594 &LLLiveLSLEditor::onLoad,
1596 &LLLiveLSLEditor::onSave, 1595 &LLLiveLSLEditor::onSave,
diff --git a/linden/indra/newview/llpreviewscript.h b/linden/indra/newview/llpreviewscript.h
index 977b9ce..7026482 100644
--- a/linden/indra/newview/llpreviewscript.h
+++ b/linden/indra/newview/llpreviewscript.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -65,7 +65,7 @@ public:
65 const std::string& name, 65 const std::string& name,
66 const LLRect& rect, 66 const LLRect& rect,
67 const std::string& sample, 67 const std::string& sample,
68 const std::string& help, 68 const std::string& help_url,
69 const LLHandle<LLFloater>& floater_handle, 69 const LLHandle<LLFloater>& floater_handle,
70 void (*load_callback)(void* userdata), 70 void (*load_callback)(void* userdata),
71 void (*save_callback)(void* userdata, BOOL close_after_save), 71 void (*save_callback)(void* userdata, BOOL close_after_save),
@@ -132,7 +132,7 @@ protected:
132 132
133private: 133private:
134 std::string mSampleText; 134 std::string mSampleText;
135 std::string mHelpFile; 135 std::string mHelpURL;
136 LLTextEditor* mEditor; 136 LLTextEditor* mEditor;
137 void (*mLoadCallback)(void* userdata); 137 void (*mLoadCallback)(void* userdata);
138 void (*mSaveCallback)(void* userdata, BOOL close_after_save); 138 void (*mSaveCallback)(void* userdata, BOOL close_after_save);
diff --git a/linden/indra/newview/llpreviewsound.cpp b/linden/indra/newview/llpreviewsound.cpp
index 6b79bfb..cd16fb3 100644
--- a/linden/indra/newview/llpreviewsound.cpp
+++ b/linden/indra/newview/llpreviewsound.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreviewsound.h b/linden/indra/newview/llpreviewsound.h
index 8557b5e..03d14b7 100644
--- a/linden/indra/newview/llpreviewsound.h
+++ b/linden/indra/newview/llpreviewsound.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llpreviewtexture.cpp b/linden/indra/newview/llpreviewtexture.cpp
index 0a204dc..82331b5 100644
--- a/linden/indra/newview/llpreviewtexture.cpp
+++ b/linden/indra/newview/llpreviewtexture.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -200,7 +200,7 @@ void LLPreviewTexture::draw()
200 if (!isMinimized()) 200 if (!isMinimized())
201 { 201 {
202 LLGLSUIDefault gls_ui; 202 LLGLSUIDefault gls_ui;
203 LLGLSNoTexture gls_notex; 203 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
204 204
205 const LLRect& border = mClientRect; 205 const LLRect& border = mClientRect;
206 LLRect interior = mClientRect; 206 LLRect interior = mClientRect;
@@ -299,20 +299,21 @@ BOOL LLPreviewTexture::canSaveAs() const
299// virtual 299// virtual
300void LLPreviewTexture::saveAs() 300void LLPreviewTexture::saveAs()
301{ 301{
302 if( !mLoadingFullImage ) 302 if( mLoadingFullImage ) return;
303
304 LLFilePicker& file_picker = LLFilePicker::instance();
305 const LLViewerInventoryItem* item = getItem() ;
306 if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TGA, item ? LLDir::getScrubbedFileName(item->getName()) : LLStringUtil::null) )
303 { 307 {
304 LLFilePicker& file_picker = LLFilePicker::instance(); 308 // User canceled or we failed to acquire save file.
305 if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TGA ) ) 309 return;
306 {
307 // User canceled save.
308 return;
309 }
310 mSaveFileName = file_picker.getFirstFile();
311 mLoadingFullImage = TRUE;
312 getWindow()->incBusyCount();
313 mImage->setLoadedCallback( LLPreviewTexture::onFileLoadedForSave,
314 0, TRUE, FALSE, new LLUUID( mItemUUID ) );
315 } 310 }
311 // remember the user-approved/edited file name.
312 mSaveFileName = file_picker.getFirstFile();
313 mLoadingFullImage = TRUE;
314 getWindow()->incBusyCount();
315 mImage->setLoadedCallback( LLPreviewTexture::onFileLoadedForSave,
316 0, TRUE, FALSE, new LLUUID( mItemUUID ) );
316} 317}
317 318
318 319
diff --git a/linden/indra/newview/llpreviewtexture.h b/linden/indra/newview/llpreviewtexture.h
index aaa740f..a090d70 100644
--- a/linden/indra/newview/llpreviewtexture.h
+++ b/linden/indra/newview/llpreviewtexture.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llprogressview.cpp b/linden/indra/newview/llprogressview.cpp
index 123c583..a38aada 100644
--- a/linden/indra/newview/llprogressview.cpp
+++ b/linden/indra/newview/llprogressview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -208,7 +208,7 @@ void LLProgressView::draw()
208 if (gStartImageGL) 208 if (gStartImageGL)
209 { 209 {
210 LLGLSUIDefault gls_ui; 210 LLGLSUIDefault gls_ui;
211 LLViewerImage::bindTexture(gStartImageGL); 211 gGL.getTexUnit(0)->bind(gStartImageGL);
212 gGL.color4f(1.f, 1.f, 1.f, mFadeTimer.getStarted() ? clamp_rescale(mFadeTimer.getElapsedTimeF32(), 0.f, FADE_IN_TIME, 1.f, 0.f) : 1.f); 212 gGL.color4f(1.f, 1.f, 1.f, mFadeTimer.getStarted() ? clamp_rescale(mFadeTimer.getElapsedTimeF32(), 0.f, FADE_IN_TIME, 1.f, 0.f) : 1.f);
213 F32 image_aspect = (F32)gStartImageWidth / (F32)gStartImageHeight; 213 F32 image_aspect = (F32)gStartImageWidth / (F32)gStartImageHeight;
214 F32 view_aspect = (F32)width / (F32)height; 214 F32 view_aspect = (F32)width / (F32)height;
@@ -224,11 +224,11 @@ void LLProgressView::draw()
224 glScalef(1.f, view_aspect / image_aspect, 1.f); 224 glScalef(1.f, view_aspect / image_aspect, 1.f);
225 } 225 }
226 gl_rect_2d_simple_tex( getRect().getWidth(), getRect().getHeight() ); 226 gl_rect_2d_simple_tex( getRect().getWidth(), getRect().getHeight() );
227 gStartImageGL->unbindTexture(0, GL_TEXTURE_2D); 227 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
228 } 228 }
229 else 229 else
230 { 230 {
231 LLGLSNoTexture gls_no_texture; 231 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
232 gGL.color4f(0.f, 0.f, 0.f, 1.f); 232 gGL.color4f(0.f, 0.f, 0.f, 1.f);
233 gl_rect_2d(getRect()); 233 gl_rect_2d(getRect());
234 } 234 }
diff --git a/linden/indra/newview/llprogressview.h b/linden/indra/newview/llprogressview.h
index 8ea3dfb..c6ba62a 100644
--- a/linden/indra/newview/llprogressview.h
+++ b/linden/indra/newview/llprogressview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llregionposition.cpp b/linden/indra/newview/llregionposition.cpp
index de2c11d..c928180 100644
--- a/linden/indra/newview/llregionposition.cpp
+++ b/linden/indra/newview/llregionposition.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llregionposition.h b/linden/indra/newview/llregionposition.h
index bccf1a8..e9aaa00 100644
--- a/linden/indra/newview/llregionposition.h
+++ b/linden/indra/newview/llregionposition.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llremoteparcelrequest.cpp b/linden/indra/newview/llremoteparcelrequest.cpp
index e0a6ada..a036e7d 100644
--- a/linden/indra/newview/llremoteparcelrequest.cpp
+++ b/linden/indra/newview/llremoteparcelrequest.cpp
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2007&license=viewergpl$ 7 * $LicenseInfo:firstyear=2007&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2007-2008, Linden Research, Inc. 9 * Copyright (c) 2007-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llremoteparcelrequest.h b/linden/indra/newview/llremoteparcelrequest.h
index b80dd5b..1b461af 100644
--- a/linden/indra/newview/llremoteparcelrequest.h
+++ b/linden/indra/newview/llremoteparcelrequest.h
@@ -6,7 +6,7 @@
6 * 6 *
7 * $LicenseInfo:firstyear=2007&license=viewergpl$ 7 * $LicenseInfo:firstyear=2007&license=viewergpl$
8 * 8 *
9 * Copyright (c) 2007-2008, Linden Research, Inc. 9 * Copyright (c) 2007-2009, Linden Research, Inc.
10 * 10 *
11 * Second Life Viewer Source Code 11 * Second Life Viewer Source Code
12 * The source code in this file ("Source Code") is provided by Linden Lab 12 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llresourcedata.h b/linden/indra/newview/llresourcedata.h
index d6c6ee1..8b9cf6e 100644
--- a/linden/indra/newview/llresourcedata.h
+++ b/linden/indra/newview/llresourcedata.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llsavedsettingsglue.cpp b/linden/indra/newview/llsavedsettingsglue.cpp
index e6f3044..9b5b279 100644
--- a/linden/indra/newview/llsavedsettingsglue.cpp
+++ b/linden/indra/newview/llsavedsettingsglue.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llsavedsettingsglue.h b/linden/indra/newview/llsavedsettingsglue.h
index e3a53dc..935216c 100644
--- a/linden/indra/newview/llsavedsettingsglue.h
+++ b/linden/indra/newview/llsavedsettingsglue.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llselectmgr.cpp b/linden/indra/newview/llselectmgr.cpp
index fe1755b..7afe073 100644
--- a/linden/indra/newview/llselectmgr.cpp
+++ b/linden/indra/newview/llselectmgr.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -4828,7 +4828,7 @@ void LLSelectMgr::renderSilhouettes(BOOL for_hud)
4828 return; 4828 return;
4829 } 4829 }
4830 4830
4831 LLViewerImage::bindTexture(mSilhouetteImagep); 4831 gGL.getTexUnit(0)->bind(mSilhouetteImagep.get());
4832 LLGLSPipelineSelection gls_select; 4832 LLGLSPipelineSelection gls_select;
4833 gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.f); 4833 gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.f);
4834 LLGLEnable blend(GL_BLEND); 4834 LLGLEnable blend(GL_BLEND);
@@ -4936,7 +4936,7 @@ void LLSelectMgr::renderSilhouettes(BOOL for_hud)
4936 stop_glerror(); 4936 stop_glerror();
4937 } 4937 }
4938 4938
4939 mSilhouetteImagep->unbindTexture(0, GL_TEXTURE_2D); 4939 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
4940 gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); 4940 gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
4941} 4941}
4942 4942
@@ -4968,6 +4968,7 @@ LLSelectNode::LLSelectNode(LLViewerObject* object, BOOL glow)
4968 mSitName = LLStringUtil::null; 4968 mSitName = LLStringUtil::null;
4969 mSilhouetteExists = FALSE; 4969 mSilhouetteExists = FALSE;
4970 mDuplicated = FALSE; 4970 mDuplicated = FALSE;
4971 mCreationDate = 0;
4971 4972
4972 saveColors(); 4973 saveColors();
4973} 4974}
@@ -5005,6 +5006,7 @@ LLSelectNode::LLSelectNode(const LLSelectNode& nodep)
5005 mFromTaskID = nodep.mFromTaskID; 5006 mFromTaskID = nodep.mFromTaskID;
5006 mTouchName = nodep.mTouchName; 5007 mTouchName = nodep.mTouchName;
5007 mSitName = nodep.mSitName; 5008 mSitName = nodep.mSitName;
5009 mCreationDate = nodep.mCreationDate;
5008 5010
5009 mSilhouetteVertices = nodep.mSilhouetteVertices; 5011 mSilhouetteVertices = nodep.mSilhouetteVertices;
5010 mSilhouetteNormals = nodep.mSilhouetteNormals; 5012 mSilhouetteNormals = nodep.mSilhouetteNormals;
@@ -5313,7 +5315,7 @@ void LLSelectNode::renderOneSilhouette(const LLColor4 &color)
5313 5315
5314 LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GEQUAL); 5316 LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GEQUAL);
5315 gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); 5317 gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
5316 gGL.begin(LLVertexBuffer::LINES); 5318 gGL.begin(LLRender::LINES);
5317 { 5319 {
5318 S32 i = 0; 5320 S32 i = 0;
5319 for (S32 seg_num = 0; seg_num < (S32)mSilhouetteSegments.size(); seg_num++) 5321 for (S32 seg_num = 0; seg_num < (S32)mSilhouetteSegments.size(); seg_num++)
@@ -5334,7 +5336,7 @@ void LLSelectNode::renderOneSilhouette(const LLColor4 &color)
5334 5336
5335 gGL.flush(); 5337 gGL.flush();
5336 gGL.setSceneBlendType(LLRender::BT_ALPHA); 5338 gGL.setSceneBlendType(LLRender::BT_ALPHA);
5337 gGL.begin(LLVertexBuffer::TRIANGLES); 5339 gGL.begin(LLRender::TRIANGLES);
5338 { 5340 {
5339 S32 i = 0; 5341 S32 i = 0;
5340 for (S32 seg_num = 0; seg_num < (S32)mSilhouetteSegments.size(); seg_num++) 5342 for (S32 seg_num = 0; seg_num < (S32)mSilhouetteSegments.size(); seg_num++)
@@ -5945,9 +5947,9 @@ S32 LLObjectSelection::getRootObjectCount()
5945 return count; 5947 return count;
5946} 5948}
5947 5949
5948bool LLObjectSelection::applyToObjects(LLSelectedObjectFunctor* func, bool firstonly) 5950bool LLObjectSelection::applyToObjects(LLSelectedObjectFunctor* func)
5949{ 5951{
5950 bool result = firstonly ? false : true; 5952 bool result = true;
5951 for (iterator iter = begin(); iter != end(); ) 5953 for (iterator iter = begin(); iter != end(); )
5952 { 5954 {
5953 iterator nextiter = iter++; 5955 iterator nextiter = iter++;
@@ -5955,10 +5957,7 @@ bool LLObjectSelection::applyToObjects(LLSelectedObjectFunctor* func, bool first
5955 if (!object) 5957 if (!object)
5956 continue; 5958 continue;
5957 bool r = func->apply(object); 5959 bool r = func->apply(object);
5958 if (firstonly && r) 5960 result = result && r;
5959 return true;
5960 else
5961 result = result && r;
5962 } 5961 }
5963 return result; 5962 return result;
5964} 5963}
diff --git a/linden/indra/newview/llselectmgr.h b/linden/indra/newview/llselectmgr.h
index d85ba04..a332053 100644
--- a/linden/indra/newview/llselectmgr.h
+++ b/linden/indra/newview/llselectmgr.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -316,7 +316,7 @@ public:
316 // If firstonly is FALSE, returns the AND of all apply() calls. 316 // If firstonly is FALSE, returns the AND of all apply() calls.
317 // Else returns TRUE immediately if any apply() call succeeds (i.e. OR with early exit) 317 // Else returns TRUE immediately if any apply() call succeeds (i.e. OR with early exit)
318 bool applyToRootObjects(LLSelectedObjectFunctor* func, bool firstonly = false); 318 bool applyToRootObjects(LLSelectedObjectFunctor* func, bool firstonly = false);
319 bool applyToObjects(LLSelectedObjectFunctor* func, bool firstonly = false); 319 bool applyToObjects(LLSelectedObjectFunctor* func);
320 bool applyToTEs(LLSelectedTEFunctor* func, bool firstonly = false); 320 bool applyToTEs(LLSelectedTEFunctor* func, bool firstonly = false);
321 bool applyToRootNodes(LLSelectedNodeFunctor* func, bool firstonly = false); 321 bool applyToRootNodes(LLSelectedNodeFunctor* func, bool firstonly = false);
322 bool applyToNodes(LLSelectedNodeFunctor* func, bool firstonly = false); 322 bool applyToNodes(LLSelectedNodeFunctor* func, bool firstonly = false);
diff --git a/linden/indra/newview/llsky.cpp b/linden/indra/newview/llsky.cpp
index 8265d9d..3e67119 100644
--- a/linden/indra/newview/llsky.cpp
+++ b/linden/indra/newview/llsky.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -284,16 +284,16 @@ LLColor4U LLSky::getFadeColor() const
284 284
285void LLSky::init(const LLVector3 &sun_direction) 285void LLSky::init(const LLVector3 &sun_direction)
286{ 286{
287 mVOWLSkyp = static_cast<LLVOWLSky*>(gObjectList.createObjectViewer(LLViewerObject::LL_VO_WL_SKY, gAgent.getRegion())); 287 mVOWLSkyp = static_cast<LLVOWLSky*>(gObjectList.createObjectViewer(LLViewerObject::LL_VO_WL_SKY, NULL));
288 mVOWLSkyp->initSunDirection(sun_direction, LLVector3::zero); 288 mVOWLSkyp->initSunDirection(sun_direction, LLVector3::zero);
289 gPipeline.addObject(mVOWLSkyp.get()); 289 gPipeline.addObject(mVOWLSkyp.get());
290 290
291 mVOSkyp = (LLVOSky *)gObjectList.createObjectViewer(LLViewerObject::LL_VO_SKY, gAgent.getRegion()); 291 mVOSkyp = (LLVOSky *)gObjectList.createObjectViewer(LLViewerObject::LL_VO_SKY, NULL);
292 mVOSkyp->initSunDirection(sun_direction, LLVector3()); 292 mVOSkyp->initSunDirection(sun_direction, LLVector3());
293 gPipeline.addObject((LLViewerObject *)mVOSkyp); 293 gPipeline.addObject((LLViewerObject *)mVOSkyp);
294 294
295 295
296 mVOGroundp = (LLVOGround*)gObjectList.createObjectViewer(LLViewerObject::LL_VO_GROUND, gAgent.getRegion()); 296 mVOGroundp = (LLVOGround*)gObjectList.createObjectViewer(LLViewerObject::LL_VO_GROUND, NULL);
297 LLVOGround *groundp = mVOGroundp; 297 LLVOGround *groundp = mVOGroundp;
298 gPipeline.addObject((LLViewerObject *)groundp); 298 gPipeline.addObject((LLViewerObject *)groundp);
299 299
diff --git a/linden/indra/newview/llsky.h b/linden/indra/newview/llsky.h
index 3b17c18..adfe290 100644
--- a/linden/indra/newview/llsky.h
+++ b/linden/indra/newview/llsky.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llspatialpartition.cpp b/linden/indra/newview/llspatialpartition.cpp
index 9f5d115..127fca2 100644
--- a/linden/indra/newview/llspatialpartition.cpp
+++ b/linden/indra/newview/llspatialpartition.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -46,6 +46,7 @@
46#include "pipeline.h" 46#include "pipeline.h"
47#include "llrender.h" 47#include "llrender.h"
48#include "lloctree.h" 48#include "lloctree.h"
49#include "llvoavatar.h"
49 50
50const F32 SG_OCCLUSION_FUDGE = 1.01f; 51const F32 SG_OCCLUSION_FUDGE = 1.01f;
51#define SG_DISCARD_TOLERANCE 0.01f 52#define SG_DISCARD_TOLERANCE 0.01f
@@ -117,10 +118,14 @@ void validate_drawable(LLDrawable* drawablep)
117 118
118S32 AABBSphereIntersect(const LLVector3& min, const LLVector3& max, const LLVector3 &origin, const F32 &rad) 119S32 AABBSphereIntersect(const LLVector3& min, const LLVector3& max, const LLVector3 &origin, const F32 &rad)
119{ 120{
121 return AABBSphereIntersectR2(min, max, origin, rad*rad);
122}
123
124S32 AABBSphereIntersectR2(const LLVector3& min, const LLVector3& max, const LLVector3 &origin, const F32 &r)
125{
120 F32 d = 0.f; 126 F32 d = 0.f;
121 F32 t; 127 F32 t;
122 F32 r = rad*rad; 128
123
124 if ((min-origin).magVecSquared() < r && 129 if ((min-origin).magVecSquared() < r &&
125 (max-origin).magVecSquared() < r) 130 (max-origin).magVecSquared() < r)
126 { 131 {
@@ -1624,7 +1629,7 @@ public:
1624 1629
1625void drawBox(const LLVector3& c, const LLVector3& r) 1630void drawBox(const LLVector3& c, const LLVector3& r)
1626{ 1631{
1627 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); 1632 gGL.begin(LLRender::TRIANGLE_STRIP);
1628 //left front 1633 //left front
1629 gGL.vertex3fv((c+r.scaledVec(LLVector3(-1,1,-1))).mV); 1634 gGL.vertex3fv((c+r.scaledVec(LLVector3(-1,1,-1))).mV);
1630 gGL.vertex3fv((c+r.scaledVec(LLVector3(-1,1,1))).mV); 1635 gGL.vertex3fv((c+r.scaledVec(LLVector3(-1,1,1))).mV);
@@ -1643,7 +1648,7 @@ void drawBox(const LLVector3& c, const LLVector3& r)
1643 gGL.end(); 1648 gGL.end();
1644 1649
1645 //bottom 1650 //bottom
1646 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); 1651 gGL.begin(LLRender::TRIANGLE_STRIP);
1647 gGL.vertex3fv((c+r.scaledVec(LLVector3(1,1,-1))).mV); 1652 gGL.vertex3fv((c+r.scaledVec(LLVector3(1,1,-1))).mV);
1648 gGL.vertex3fv((c+r.scaledVec(LLVector3(1,-1,-1))).mV); 1653 gGL.vertex3fv((c+r.scaledVec(LLVector3(1,-1,-1))).mV);
1649 gGL.vertex3fv((c+r.scaledVec(LLVector3(-1,1,-1))).mV); 1654 gGL.vertex3fv((c+r.scaledVec(LLVector3(-1,1,-1))).mV);
@@ -1651,7 +1656,7 @@ void drawBox(const LLVector3& c, const LLVector3& r)
1651 gGL.end(); 1656 gGL.end();
1652 1657
1653 //top 1658 //top
1654 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); 1659 gGL.begin(LLRender::TRIANGLE_STRIP);
1655 gGL.vertex3fv((c+r.scaledVec(LLVector3(1,1,1))).mV); 1660 gGL.vertex3fv((c+r.scaledVec(LLVector3(1,1,1))).mV);
1656 gGL.vertex3fv((c+r.scaledVec(LLVector3(-1,1,1))).mV); 1661 gGL.vertex3fv((c+r.scaledVec(LLVector3(-1,1,1))).mV);
1657 gGL.vertex3fv((c+r.scaledVec(LLVector3(1,-1,1))).mV); 1662 gGL.vertex3fv((c+r.scaledVec(LLVector3(1,-1,1))).mV);
@@ -1666,7 +1671,7 @@ void drawBoxOutline(const LLVector3& pos, const LLVector3& size)
1666 LLVector3 v3 = size.scaledVec(LLVector3(-1,-1,1)); 1671 LLVector3 v3 = size.scaledVec(LLVector3(-1,-1,1));
1667 LLVector3 v4 = size.scaledVec(LLVector3( 1,-1,1)); 1672 LLVector3 v4 = size.scaledVec(LLVector3( 1,-1,1));
1668 1673
1669 gGL.begin(LLVertexBuffer::LINES); 1674 gGL.begin(LLRender::LINES);
1670 1675
1671 //top 1676 //top
1672 gGL.vertex3fv((pos+v1).mV); 1677 gGL.vertex3fv((pos+v1).mV);
@@ -1814,7 +1819,7 @@ void pushVerts(LLDrawInfo* params, U32 mask)
1814{ 1819{
1815 LLRenderPass::applyModelMatrix(*params); 1820 LLRenderPass::applyModelMatrix(*params);
1816 params->mVertexBuffer->setBuffer(mask); 1821 params->mVertexBuffer->setBuffer(mask);
1817 params->mVertexBuffer->drawRange(params->mParticle ? LLVertexBuffer::POINTS : LLVertexBuffer::TRIANGLES, 1822 params->mVertexBuffer->drawRange(params->mParticle ? LLRender::POINTS : LLRender::TRIANGLES,
1818 params->mStart, params->mEnd, params->mCount, params->mOffset); 1823 params->mStart, params->mEnd, params->mCount, params->mOffset);
1819} 1824}
1820 1825
@@ -1843,7 +1848,7 @@ void pushVerts(LLFace* face, U32 mask)
1843 U16 end = start + face->getGeomCount()-1; 1848 U16 end = start + face->getGeomCount()-1;
1844 U32 count = face->getIndicesCount(); 1849 U32 count = face->getIndicesCount();
1845 U16 offset = face->getIndicesStart(); 1850 U16 offset = face->getIndicesStart();
1846 buffer->drawRange(LLVertexBuffer::TRIANGLES, start, end, count, offset); 1851 buffer->drawRange(LLRender::TRIANGLES, start, end, count, offset);
1847 } 1852 }
1848 1853
1849} 1854}
@@ -1853,7 +1858,7 @@ void pushBufferVerts(LLVertexBuffer* buffer, U32 mask)
1853 if (buffer) 1858 if (buffer)
1854 { 1859 {
1855 buffer->setBuffer(mask); 1860 buffer->setBuffer(mask);
1856 buffer->drawRange(LLVertexBuffer::TRIANGLES, 0, buffer->getRequestedVerts()-1, buffer->getRequestedIndices(), 0); 1861 buffer->drawRange(LLRender::TRIANGLES, 0, buffer->getRequestedVerts()-1, buffer->getRequestedIndices(), 0);
1857 } 1862 }
1858} 1863}
1859 1864
@@ -1902,7 +1907,7 @@ void pushVertsColorCoded(LLSpatialGroup* group, U32 mask)
1902 LLRenderPass::applyModelMatrix(*params); 1907 LLRenderPass::applyModelMatrix(*params);
1903 glColor4f(colors[col].mV[0], colors[col].mV[1], colors[col].mV[2], 0.5f); 1908 glColor4f(colors[col].mV[0], colors[col].mV[1], colors[col].mV[2], 0.5f);
1904 params->mVertexBuffer->setBuffer(mask); 1909 params->mVertexBuffer->setBuffer(mask);
1905 params->mVertexBuffer->drawRange(params->mParticle ? LLVertexBuffer::POINTS : LLVertexBuffer::TRIANGLES, 1910 params->mVertexBuffer->drawRange(params->mParticle ? LLRender::POINTS : LLRender::TRIANGLES,
1906 params->mStart, params->mEnd, params->mCount, params->mOffset); 1911 params->mStart, params->mEnd, params->mCount, params->mOffset);
1907 col = (col+1)%col_count; 1912 col = (col+1)%col_count;
1908 } 1913 }
@@ -1972,7 +1977,7 @@ void renderOctree(LLSpatialGroup* group)
1972 face->mVertexBuffer->setBuffer(LLVertexBuffer::MAP_VERTEX); 1977 face->mVertexBuffer->setBuffer(LLVertexBuffer::MAP_VERTEX);
1973 //drawBox((face->mExtents[0] + face->mExtents[1])*0.5f, 1978 //drawBox((face->mExtents[0] + face->mExtents[1])*0.5f,
1974 // (face->mExtents[1]-face->mExtents[0])*0.5f); 1979 // (face->mExtents[1]-face->mExtents[0])*0.5f);
1975 face->mVertexBuffer->draw(LLVertexBuffer::TRIANGLES, face->getIndicesCount(), face->getIndicesStart()); 1980 face->mVertexBuffer->draw(LLRender::TRIANGLES, face->getIndicesCount(), face->getIndicesStart());
1976 } 1981 }
1977 } 1982 }
1978 1983
@@ -2103,6 +2108,7 @@ void renderBoundingBox(LLDrawable* drawable)
2103 gGL.color4f(0.5f,0.5f,0.5f,1.0f); 2108 gGL.color4f(0.5f,0.5f,0.5f,1.0f);
2104 break; 2109 break;
2105 case LLViewerObject::LL_VO_PART_GROUP: 2110 case LLViewerObject::LL_VO_PART_GROUP:
2111 case LLViewerObject::LL_VO_HUD_PART_GROUP:
2106 gGL.color4f(0,0,1,1); 2112 gGL.color4f(0,0,1,1);
2107 break; 2113 break;
2108 case LLViewerObject::LL_VO_WATER: 2114 case LLViewerObject::LL_VO_WATER:
@@ -2222,7 +2228,7 @@ void renderPoints(LLDrawable* drawablep)
2222 LLGLDepthTest depth(GL_FALSE, GL_FALSE); 2228 LLGLDepthTest depth(GL_FALSE, GL_FALSE);
2223 if (drawablep->getNumFaces()) 2229 if (drawablep->getNumFaces())
2224 { 2230 {
2225 gGL.begin(LLVertexBuffer::POINTS); 2231 gGL.begin(LLRender::POINTS);
2226 gGL.color3f(1,1,1); 2232 gGL.color3f(1,1,1);
2227 LLVector3 center(drawablep->getPositionGroup()); 2233 LLVector3 center(drawablep->getPositionGroup());
2228 for (S32 i = 0; i < drawablep->getNumFaces(); i++) 2234 for (S32 i = 0; i < drawablep->getNumFaces(); i++)
@@ -2298,9 +2304,17 @@ void renderRaycast(LLDrawable* drawablep)
2298 LLGLEnable blend(GL_BLEND); 2304 LLGLEnable blend(GL_BLEND);
2299 gGL.color4f(0,1,1,0.5f); 2305 gGL.color4f(0,1,1,0.5f);
2300 2306
2301 for (S32 i = 0; i < drawablep->getNumFaces(); i++) 2307 if (drawablep->getVOVolume() && gDebugRaycastFaceHit != -1)
2302 { 2308 {
2303 pushVerts(drawablep->getFace(i), LLVertexBuffer::MAP_VERTEX); 2309 glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
2310 pushVerts(drawablep->getFace(gDebugRaycastFaceHit), LLVertexBuffer::MAP_VERTEX);
2311 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
2312 }
2313 else if (drawablep->isAvatar())
2314 {
2315 LLGLDepthTest depth(GL_FALSE);
2316 LLVOAvatar* av = (LLVOAvatar*) drawablep->getVObj().get();
2317 av->renderCollisionVolumes();
2304 } 2318 }
2305 2319
2306 // draw intersection point 2320 // draw intersection point
@@ -2468,7 +2482,7 @@ void LLSpatialPartition::renderDebug()
2468 LLGLDisable cullface(GL_CULL_FACE); 2482 LLGLDisable cullface(GL_CULL_FACE);
2469 LLGLEnable blend(GL_BLEND); 2483 LLGLEnable blend(GL_BLEND);
2470 gGL.setSceneBlendType(LLRender::BT_ALPHA); 2484 gGL.setSceneBlendType(LLRender::BT_ALPHA);
2471 LLImageGL::unbindTexture(0); 2485 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
2472 gPipeline.disableLights(); 2486 gPipeline.disableLights();
2473 2487
2474 LLSpatialBridge* bridge = asBridge(); 2488 LLSpatialBridge* bridge = asBridge();
@@ -2508,8 +2522,9 @@ public:
2508 LLVector3 *mNormal; 2522 LLVector3 *mNormal;
2509 LLVector3 *mBinormal; 2523 LLVector3 *mBinormal;
2510 LLDrawable* mHit; 2524 LLDrawable* mHit;
2511 2525 BOOL mPickTransparent;
2512 LLOctreeIntersect(LLVector3 start, LLVector3 end, 2526
2527 LLOctreeIntersect(LLVector3 start, LLVector3 end, BOOL pick_transparent,
2513 S32* face_hit, LLVector3* intersection, LLVector2* tex_coord, LLVector3* normal, LLVector3* binormal) 2528 S32* face_hit, LLVector3* intersection, LLVector2* tex_coord, LLVector3* normal, LLVector3* binormal)
2514 : mStart(start), 2529 : mStart(start),
2515 mEnd(end), 2530 mEnd(end),
@@ -2518,14 +2533,15 @@ public:
2518 mTexCoord(tex_coord), 2533 mTexCoord(tex_coord),
2519 mNormal(normal), 2534 mNormal(normal),
2520 mBinormal(binormal), 2535 mBinormal(binormal),
2521 mHit(NULL) 2536 mHit(NULL),
2537 mPickTransparent(pick_transparent)
2522 { 2538 {
2523 } 2539 }
2524 2540
2525 virtual void visit(const LLSpatialGroup::OctreeNode* branch) 2541 virtual void visit(const LLSpatialGroup::OctreeNode* branch)
2526 { 2542 {
2527 for (LLSpatialGroup::OctreeNode::const_element_iter i = branch->getData().begin(); i != branch->getData().end(); ++i) 2543 for (LLSpatialGroup::OctreeNode::const_element_iter i = branch->getData().begin(); i != branch->getData().end(); ++i)
2528 { 2544 {
2529 check(*i); 2545 check(*i);
2530 } 2546 }
2531 } 2547 }
@@ -2570,25 +2586,35 @@ public:
2570 2586
2571 virtual bool check(LLDrawable* drawable) 2587 virtual bool check(LLDrawable* drawable)
2572 { 2588 {
2589 LLVector3 local_start = mStart;
2590 LLVector3 local_end = mEnd;
2591
2592 if (!gPipeline.hasRenderType(drawable->getRenderType()) || !drawable->isVisible())
2593 {
2594 return false;
2595 }
2596
2573 if (drawable->isSpatialBridge()) 2597 if (drawable->isSpatialBridge())
2574 { 2598 {
2575 LLSpatialPartition *part = drawable->asPartition(); 2599 LLSpatialPartition *part = drawable->asPartition();
2576 2600 LLSpatialBridge* bridge = part->asBridge();
2577 check(part->mOctree); 2601 if (bridge && gPipeline.hasRenderType(bridge->mDrawableType))
2578 } 2602 {
2579 2603 check(part->mOctree);
2604 }
2605 }
2580 else 2606 else
2581 { 2607 {
2582 LLViewerObject* vobj = drawable->getVObj(); 2608 LLViewerObject* vobj = drawable->getVObj();
2583 2609
2584 if (vobj) 2610 if (vobj)
2585 { 2611 {
2586 LLVector3 intersection; 2612 LLVector3 intersection;
2587 if (vobj->lineSegmentIntersect(mStart, mEnd, -1, mFaceHit, &intersection, mTexCoord, mNormal, mBinormal)) 2613 if (vobj->lineSegmentIntersect(mStart, mEnd, -1, mPickTransparent, mFaceHit, &intersection, mTexCoord, mNormal, mBinormal))
2588 { 2614 {
2589 mEnd = intersection; // shorten ray so we only find CLOSER hits 2615 mEnd = intersection; // shorten ray so we only find CLOSER hits
2590 if (mIntersection) 2616 if (mIntersection)
2591 { 2617 {
2592 *mIntersection = intersection; 2618 *mIntersection = intersection;
2593 } 2619 }
2594 2620
@@ -2596,12 +2622,13 @@ public:
2596 } 2622 }
2597 } 2623 }
2598 } 2624 }
2599 2625
2600 return false; 2626 return false;
2601 } 2627 }
2602}; 2628};
2603 2629
2604LLDrawable* LLSpatialPartition::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, 2630LLDrawable* LLSpatialPartition::lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
2631 BOOL pick_transparent,
2605 S32* face_hit, // return the face hit 2632 S32* face_hit, // return the face hit
2606 LLVector3* intersection, // return the intersection point 2633 LLVector3* intersection, // return the intersection point
2607 LLVector2* tex_coord, // return the texture coordinates of the intersection point 2634 LLVector2* tex_coord, // return the texture coordinates of the intersection point
@@ -2610,7 +2637,7 @@ LLDrawable* LLSpatialPartition::lineSegmentIntersect(const LLVector3& start, con
2610 ) 2637 )
2611 2638
2612{ 2639{
2613 LLOctreeIntersect intersect(start, end, face_hit, intersection, tex_coord, normal, bi_normal); 2640 LLOctreeIntersect intersect(start, end, pick_transparent, face_hit, intersection, tex_coord, normal, bi_normal);
2614 LLDrawable* drawable = intersect.check(mOctree); 2641 LLDrawable* drawable = intersect.check(mOctree);
2615 2642
2616 return drawable; 2643 return drawable;
diff --git a/linden/indra/newview/llspatialpartition.h b/linden/indra/newview/llspatialpartition.h
index bd09da2..20cb061 100644
--- a/linden/indra/newview/llspatialpartition.h
+++ b/linden/indra/newview/llspatialpartition.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -52,6 +52,7 @@ class LLSpatialBridge;
52class LLSpatialGroup; 52class LLSpatialGroup;
53 53
54S32 AABBSphereIntersect(const LLVector3& min, const LLVector3& max, const LLVector3 &origin, const F32 &rad); 54S32 AABBSphereIntersect(const LLVector3& min, const LLVector3& max, const LLVector3 &origin, const F32 &rad);
55S32 AABBSphereIntersectR2(const LLVector3& min, const LLVector3& max, const LLVector3 &origin, const F32 &radius_squared);
55 56
56class LLDrawInfo : public LLRefCount 57class LLDrawInfo : public LLRefCount
57{ 58{
@@ -301,6 +302,7 @@ public:
301 BOOL remove(LLDrawable *drawablep, LLSpatialGroup *curp); 302 BOOL remove(LLDrawable *drawablep, LLSpatialGroup *curp);
302 303
303 LLDrawable* lineSegmentIntersect(const LLVector3& start, const LLVector3& end, 304 LLDrawable* lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
305 BOOL pick_transparent,
304 S32* face_hit, // return the face hit 306 S32* face_hit, // return the face hit
305 LLVector3* intersection = NULL, // return the intersection point 307 LLVector3* intersection = NULL, // return the intersection point
306 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point 308 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point
@@ -482,6 +484,12 @@ protected:
482 U32 mRenderPass; 484 U32 mRenderPass;
483}; 485};
484 486
487class LLHUDParticlePartition : public LLParticlePartition
488{
489public:
490 LLHUDParticlePartition();
491};
492
485//spatial partition for grass (implemented in LLVOGrass.cpp) 493//spatial partition for grass (implemented in LLVOGrass.cpp)
486class LLGrassPartition : public LLParticlePartition 494class LLGrassPartition : public LLParticlePartition
487{ 495{
diff --git a/linden/indra/newview/llsprite.cpp b/linden/indra/newview/llsprite.cpp
index 7da1d48..fb89094 100644
--- a/linden/indra/newview/llsprite.cpp
+++ b/linden/indra/newview/llsprite.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -126,8 +126,8 @@ void LLSprite::updateFace(LLFace &face)
126 LLVector3 camera_vec = mPosition - sCameraPosition; 126 LLVector3 camera_vec = mPosition - sCameraPosition;
127 mScaledRight = camera_vec % LLVector3(0.f, 0.f, 1.f); 127 mScaledRight = camera_vec % LLVector3(0.f, 0.f, 1.f);
128 mScaledUp = -(camera_vec % mScaledRight); 128 mScaledUp = -(camera_vec % mScaledRight);
129 mScaledUp.normVec(); 129 mScaledUp.normalize();
130 mScaledRight.normVec(); 130 mScaledRight.normalize();
131 mScaledUp *= mHeightDiv2; 131 mScaledUp *= mHeightDiv2;
132 mScaledRight *= mWidthDiv2; 132 mScaledRight *= mWidthDiv2;
133 133
@@ -156,7 +156,7 @@ void LLSprite::updateFace(LLFace &face)
156 else 156 else
157 { 157 {
158 x_axis = sNormal % LLVector3(0.f, -1.f, 0.f); 158 x_axis = sNormal % LLVector3(0.f, -1.f, 0.f);
159 x_axis.normVec(); 159 x_axis.normalize();
160 160
161 y_axis = sNormal % x_axis; 161 y_axis = sNormal % x_axis;
162 } 162 }
diff --git a/linden/indra/newview/llsprite.h b/linden/indra/newview/llsprite.h
index 7170cb2..dbefc87 100644
--- a/linden/indra/newview/llsprite.h
+++ b/linden/indra/newview/llsprite.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -73,7 +73,7 @@ public:
73 void setColor(const LLColor4 &color); 73 void setColor(const LLColor4 &color);
74 void setColor(const F32 r, const F32 g, const F32 b, const F32 a); 74 void setColor(const F32 r, const F32 g, const F32 b, const F32 a);
75 void setAlpha(const F32 alpha) { mColor.mV[VALPHA] = alpha; } 75 void setAlpha(const F32 alpha) { mColor.mV[VALPHA] = alpha; }
76 void setNormal(const LLVector3 &normal) { sNormal = normal; sNormal.normVec();} 76 void setNormal(const LLVector3 &normal) { sNormal = normal; sNormal.normalize();}
77 77
78 F32 getAlpha(); 78 F32 getAlpha();
79 79
diff --git a/linden/indra/newview/llsrv.cpp b/linden/indra/newview/llsrv.cpp
index 275bb9f..46e0b15 100644
--- a/linden/indra/newview/llsrv.cpp
+++ b/linden/indra/newview/llsrv.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llsrv.h b/linden/indra/newview/llsrv.h
index 980aef7..09af46f 100644
--- a/linden/indra/newview/llsrv.h
+++ b/linden/indra/newview/llsrv.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index 84a5ecd..bb1982f 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -93,6 +93,7 @@
93#include "llfeaturemanager.h" 93#include "llfeaturemanager.h"
94#include "llfirstuse.h" 94#include "llfirstuse.h"
95#include "llfloateractivespeakers.h" 95#include "llfloateractivespeakers.h"
96#include "llfloaterbeacons.h"
96#include "llfloatercamera.h" 97#include "llfloatercamera.h"
97#include "llfloaterchat.h" 98#include "llfloaterchat.h"
98#include "llfloatergesture.h" 99#include "llfloatergesture.h"
@@ -248,6 +249,7 @@ void callback_choose_gender(S32 option, void* userdata);
248void init_start_screen(S32 location_id); 249void init_start_screen(S32 location_id);
249void release_start_screen(); 250void release_start_screen();
250void reset_login(); 251void reset_login();
252void apply_udp_blacklist(const std::string& csv);
251 253
252void callback_cache_name(const LLUUID& id, const std::string& firstname, const std::string& lastname, BOOL is_group, void* data) 254void callback_cache_name(const LLUUID& id, const std::string& firstname, const std::string& lastname, BOOL is_group, void* data)
253{ 255{
@@ -876,6 +878,20 @@ bool idle_startup()
876 LLFile::mkdir(gDirUtilp->getChatLogsDir()); 878 LLFile::mkdir(gDirUtilp->getChatLogsDir());
877 LLFile::mkdir(gDirUtilp->getPerAccountChatLogsDir()); 879 LLFile::mkdir(gDirUtilp->getPerAccountChatLogsDir());
878 880
881 //good as place as any to create user windlight directories
882 std::string user_windlight_path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight", ""));
883 LLFile::mkdir(user_windlight_path_name.c_str());
884
885 std::string user_windlight_skies_path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/skies", ""));
886 LLFile::mkdir(user_windlight_skies_path_name.c_str());
887
888 std::string user_windlight_water_path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/water", ""));
889 LLFile::mkdir(user_windlight_water_path_name.c_str());
890
891 std::string user_windlight_days_path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/days", ""));
892 LLFile::mkdir(user_windlight_days_path_name.c_str());
893
894
879 if (show_connect_box) 895 if (show_connect_box)
880 { 896 {
881 if ( LLPanelLogin::isGridComboDirty() ) 897 if ( LLPanelLogin::isGridComboDirty() )
@@ -1128,6 +1144,7 @@ bool idle_startup()
1128 LL_DEBUGS("AppInit") << "STATE_LOGIN_PROCESS_RESPONSE" << LL_ENDL; 1144 LL_DEBUGS("AppInit") << "STATE_LOGIN_PROCESS_RESPONSE" << LL_ENDL;
1129 std::ostringstream emsg; 1145 std::ostringstream emsg;
1130 bool quit = false; 1146 bool quit = false;
1147 bool update = false;
1131 std::string login_response; 1148 std::string login_response;
1132 std::string reason_response; 1149 std::string reason_response;
1133 std::string message_response; 1150 std::string message_response;
@@ -1171,11 +1188,7 @@ bool idle_startup()
1171 reason_response = LLUserAuth::getInstance()->getResponse("reason"); 1188 reason_response = LLUserAuth::getInstance()->getResponse("reason");
1172 message_response = LLUserAuth::getInstance()->getResponse("message"); 1189 message_response = LLUserAuth::getInstance()->getResponse("message");
1173 1190
1174 if (gHideLinks && reason_response == "disabled") 1191 if (!message_response.empty())
1175 {
1176 emsg << gDisabledMessage;
1177 }
1178 else if (!message_response.empty())
1179 { 1192 {
1180 // XUI: fix translation for strings returned during login 1193 // XUI: fix translation for strings returned during login
1181 // We need a generic table for translations 1194 // We need a generic table for translations
@@ -1233,16 +1246,7 @@ bool idle_startup()
1233 if(reason_response == "update") 1246 if(reason_response == "update")
1234 { 1247 {
1235 auth_message = LLUserAuth::getInstance()->getResponse("message"); 1248 auth_message = LLUserAuth::getInstance()->getResponse("message");
1236 if (show_connect_box) 1249 update = true;
1237 {
1238 update_app(TRUE, auth_message);
1239 LLStartUp::setStartupState( STATE_UPDATE_CHECK );
1240 return false;
1241 }
1242 else
1243 {
1244 quit = true;
1245 }
1246 } 1250 }
1247 if(reason_response == "optional") 1251 if(reason_response == "optional")
1248 { 1252 {
@@ -1280,6 +1284,21 @@ bool idle_startup()
1280 break; 1284 break;
1281 } 1285 }
1282 1286
1287 if (update || gSavedSettings.getBOOL("ForceMandatoryUpdate"))
1288 {
1289 gSavedSettings.setBOOL("ForceMandatoryUpdate", FALSE);
1290 if (show_connect_box)
1291 {
1292 update_app(TRUE, auth_message);
1293 LLStartUp::setStartupState( STATE_UPDATE_CHECK );
1294 return false;
1295 }
1296 else
1297 {
1298 quit = true;
1299 }
1300 }
1301
1283 // Version update and we're not showing the dialog 1302 // Version update and we're not showing the dialog
1284 if(quit) 1303 if(quit)
1285 { 1304 {
@@ -1290,8 +1309,14 @@ bool idle_startup()
1290 1309
1291 if(successful_login) 1310 if(successful_login)
1292 { 1311 {
1293 // unpack login data needed by the application
1294 std::string text; 1312 std::string text;
1313 text = LLUserAuth::getInstance()->getResponse("udp_blacklist");
1314 if(!text.empty())
1315 {
1316 apply_udp_blacklist(text);
1317 }
1318
1319 // unpack login data needed by the application
1295 text = LLUserAuth::getInstance()->getResponse("agent_id"); 1320 text = LLUserAuth::getInstance()->getResponse("agent_id");
1296 if(!text.empty()) gAgentID.set(text); 1321 if(!text.empty()) gAgentID.set(text);
1297 gDebugInfo["AgentID"] = text; 1322 gDebugInfo["AgentID"] = text;
@@ -1664,6 +1689,11 @@ bool idle_startup()
1664 LLFloaterActiveSpeakers::showInstance(); 1689 LLFloaterActiveSpeakers::showInstance();
1665 } 1690 }
1666 1691
1692 if (gSavedSettings.getBOOL("BeaconAlwaysOn"))
1693 {
1694 LLFloaterBeacons::showInstance();
1695 }
1696
1667 if (!gNoRender) 1697 if (!gNoRender)
1668 { 1698 {
1669 // Move the progress view in front of the UI 1699 // Move the progress view in front of the UI
@@ -2465,7 +2495,7 @@ bool idle_startup()
2465 gDebugView->mFastTimerView->setVisible(TRUE); 2495 gDebugView->mFastTimerView->setVisible(TRUE);
2466#endif 2496#endif
2467 2497
2468 LLAppViewer::instance()->initMainloopTimeout("Mainloop Init"); 2498 LLAppViewer::instance()->handleLoginComplete();
2469 2499
2470 return TRUE; 2500 return TRUE;
2471 } 2501 }
@@ -2781,7 +2811,6 @@ void update_app(BOOL mandatory, const std::string& auth_msg)
2781 2811
2782void update_dialog_callback(S32 option, void *userdata) 2812void update_dialog_callback(S32 option, void *userdata)
2783{ 2813{
2784 std::string update_exe_path;
2785 bool mandatory = userdata != NULL; 2814 bool mandatory = userdata != NULL;
2786 2815
2787#if !LL_RELEASE_FOR_DOWNLOAD 2816#if !LL_RELEASE_FOR_DOWNLOAD
@@ -2824,29 +2853,41 @@ void update_dialog_callback(S32 option, void *userdata)
2824 // *TODO constantize this guy 2853 // *TODO constantize this guy
2825 LLURI update_url = LLURI::buildHTTP("secondlife.com", 80, "update.php", query_map); 2854 LLURI update_url = LLURI::buildHTTP("secondlife.com", 80, "update.php", query_map);
2826 2855
2856 if(LLAppViewer::sUpdaterInfo)
2857 {
2858 delete LLAppViewer::sUpdaterInfo ;
2859 }
2860 LLAppViewer::sUpdaterInfo = new LLAppViewer::LLUpdaterInfo() ;
2861
2827#if LL_WINDOWS 2862#if LL_WINDOWS
2828 update_exe_path = gDirUtilp->getTempFilename(); 2863 LLAppViewer::sUpdaterInfo->mUpdateExePath = gDirUtilp->getTempFilename();
2829 if (update_exe_path.empty()) 2864 if (LLAppViewer::sUpdaterInfo->mUpdateExePath.empty())
2830 { 2865 {
2866 delete LLAppViewer::sUpdaterInfo ;
2867 LLAppViewer::sUpdaterInfo = NULL ;
2868
2831 // We're hosed, bail 2869 // We're hosed, bail
2832 LL_WARNS("AppInit") << "LLDir::getTempFilename() failed" << LL_ENDL; 2870 LL_WARNS("AppInit") << "LLDir::getTempFilename() failed" << LL_ENDL;
2833 LLAppViewer::instance()->forceQuit(); 2871 LLAppViewer::instance()->forceQuit();
2834 return; 2872 return;
2835 } 2873 }
2836 2874
2837 update_exe_path += ".exe"; 2875 LLAppViewer::sUpdaterInfo->mUpdateExePath += ".exe";
2838 2876
2839 std::string updater_source = gDirUtilp->getAppRODataDir(); 2877 std::string updater_source = gDirUtilp->getAppRODataDir();
2840 updater_source += gDirUtilp->getDirDelimiter(); 2878 updater_source += gDirUtilp->getDirDelimiter();
2841 updater_source += "updater.exe"; 2879 updater_source += "updater.exe";
2842 2880
2843 LL_DEBUGS("AppInit") << "Calling CopyFile source: " << updater_source 2881 LL_DEBUGS("AppInit") << "Calling CopyFile source: " << updater_source
2844 << " dest: " << update_exe_path 2882 << " dest: " << LLAppViewer::sUpdaterInfo->mUpdateExePath
2845 << LL_ENDL; 2883 << LL_ENDL;
2846 2884
2847 2885
2848 if (!CopyFileA(updater_source.c_str(), update_exe_path.c_str(), FALSE)) 2886 if (!CopyFileA(updater_source.c_str(), LLAppViewer::sUpdaterInfo->mUpdateExePath.c_str(), FALSE))
2849 { 2887 {
2888 delete LLAppViewer::sUpdaterInfo ;
2889 LLAppViewer::sUpdaterInfo = NULL ;
2890
2850 LL_WARNS("AppInit") << "Unable to copy the updater!" << LL_ENDL; 2891 LL_WARNS("AppInit") << "Unable to copy the updater!" << LL_ENDL;
2851 LLAppViewer::instance()->forceQuit(); 2892 LLAppViewer::instance()->forceQuit();
2852 return; 2893 return;
@@ -2859,41 +2900,13 @@ void update_dialog_callback(S32 option, void *userdata)
2859 gSavedSettings.setString( "NextLoginLocation", LLURLSimString::sInstance.mSimString ); 2900 gSavedSettings.setString( "NextLoginLocation", LLURLSimString::sInstance.mSimString );
2860 }; 2901 };
2861 2902
2862 std::ostringstream params; 2903 LLAppViewer::sUpdaterInfo->mParams << "-url \"" << update_url.asString() << "\"";
2863 params << "-url \"" << update_url.asString() << "\"";
2864 if (gHideLinks)
2865 {
2866 // Figure out the program name.
2867 const std::string& data_dir = gDirUtilp->getAppRODataDir();
2868 // Roll back from the end, stopping at the first '\'
2869 const char* program_name = data_dir.c_str() + data_dir.size(); /* Flawfinder: ignore */
2870 while ( (data_dir != --program_name) &&
2871 *(program_name) != '\\');
2872
2873 if ( *(program_name) == '\\')
2874 {
2875 // We found a '\'.
2876 program_name++;
2877 }
2878 else
2879 {
2880 // Oops.
2881 program_name = "SecondLife";
2882 }
2883
2884 params << " -silent -name \"" << LLAppViewer::instance()->getSecondLifeTitle() << "\"";
2885 params << " -program \"" << program_name << "\"";
2886 }
2887 2904
2888 LL_DEBUGS("AppInit") << "Calling updater: " << update_exe_path << " " << params.str() << LL_ENDL; 2905 LL_DEBUGS("AppInit") << "Calling updater: " << LLAppViewer::sUpdaterInfo->mUpdateExePath << " " << LLAppViewer::sUpdaterInfo->mParams.str() << LL_ENDL;
2889 2906
2890 //Explicitly remove the marker file, otherwise we pass the lock onto the child process and things get weird. 2907 //Explicitly remove the marker file, otherwise we pass the lock onto the child process and things get weird.
2891 LLAppViewer::instance()->removeMarkerFile(); // In case updater fails 2908 LLAppViewer::instance()->removeMarkerFile(); // In case updater fails
2892 2909
2893 // Use spawn() to run asynchronously
2894 int retval = _spawnl(_P_NOWAIT, update_exe_path.c_str(), update_exe_path.c_str(), params.str().c_str(), NULL);
2895 LL_DEBUGS("AppInit") << "Spawn returned " << retval << LL_ENDL;
2896
2897#elif LL_DARWIN 2910#elif LL_DARWIN
2898 // if a sim name was passed in via command line parameter (typically through a SLURL) 2911 // if a sim name was passed in via command line parameter (typically through a SLURL)
2899 if ( LLURLSimString::sInstance.mSimString.length() ) 2912 if ( LLURLSimString::sInstance.mSimString.length() )
@@ -2902,19 +2915,19 @@ void update_dialog_callback(S32 option, void *userdata)
2902 gSavedSettings.setString( "NextLoginLocation", LLURLSimString::sInstance.mSimString ); 2915 gSavedSettings.setString( "NextLoginLocation", LLURLSimString::sInstance.mSimString );
2903 }; 2916 };
2904 2917
2905 update_exe_path = "'"; 2918 LLAppViewer::sUpdaterInfo->mUpdateExePath = "'";
2906 update_exe_path += gDirUtilp->getAppRODataDir(); 2919 LLAppViewer::sUpdaterInfo->mUpdateExePath += gDirUtilp->getAppRODataDir();
2907 update_exe_path += "/mac-updater.app/Contents/MacOS/mac-updater' -url \""; 2920 LLAppViewer::sUpdaterInfo->mUpdateExePath += "/mac-updater.app/Contents/MacOS/mac-updater' -url \"";
2908 update_exe_path += update_url.asString(); 2921 LLAppViewer::sUpdaterInfo->mUpdateExePath += update_url.asString();
2909 update_exe_path += "\" -name \""; 2922 LLAppViewer::sUpdaterInfo->mUpdateExePath += "\" -name \"";
2910 update_exe_path += LLAppViewer::instance()->getSecondLifeTitle(); 2923 LLAppViewer::sUpdaterInfo->mUpdateExePath += LLAppViewer::instance()->getSecondLifeTitle();
2911 update_exe_path += "\" &"; 2924 LLAppViewer::sUpdaterInfo->mUpdateExePath += "\" &";
2912 2925
2913 LL_DEBUGS("AppInit") << "Calling updater: " << update_exe_path << LL_ENDL; 2926 LL_DEBUGS("AppInit") << "Calling updater: " << LLAppViewer::sUpdaterInfo->mUpdateExePath << LL_ENDL;
2914 2927
2915 // Run the auto-updater. 2928 // Run the auto-updater.
2916 system(update_exe_path.c_str()); /* Flawfinder: ignore */ 2929 system(LLAppViewer::sUpdaterInfo->mUpdateExePath.c_str()); /* Flawfinder: ignore */
2917 2930
2918#elif LL_LINUX 2931#elif LL_LINUX
2919 OSMessageBox("Automatic updating is not yet implemented for Linux.\n" 2932 OSMessageBox("Automatic updating is not yet implemented for Linux.\n"
2920 "Please download the latest version from www.secondlife.com.", 2933 "Please download the latest version from www.secondlife.com.",
@@ -3570,7 +3583,7 @@ void init_stat_view()
3570 stat_barp->mDisplayBar = FALSE; 3583 stat_barp->mDisplayBar = FALSE;
3571 stat_barp->mDisplayMean = FALSE; 3584 stat_barp->mDisplayMean = FALSE;
3572 3585
3573 stat_barp = sim_time_viewp->addStat("Sim Time (Physics)", &(LLViewerStats::getInstance()->mSimSimPhysicsMsec)); 3586 stat_barp = sim_time_viewp->addStat("Physics Time", &(LLViewerStats::getInstance()->mSimSimPhysicsMsec));
3574 stat_barp->setUnitLabel("ms"); 3587 stat_barp->setUnitLabel("ms");
3575 stat_barp->mPrecision = 1; 3588 stat_barp->mPrecision = 1;
3576 stat_barp->mMinBar = 0.f; 3589 stat_barp->mMinBar = 0.f;
@@ -3581,45 +3594,7 @@ void init_stat_view()
3581 stat_barp->mDisplayBar = FALSE; 3594 stat_barp->mDisplayBar = FALSE;
3582 stat_barp->mDisplayMean = FALSE; 3595 stat_barp->mDisplayMean = FALSE;
3583 3596
3584 LLStatView *physics_time_viewp; 3597 stat_barp = sim_time_viewp->addStat("Simulation Time", &(LLViewerStats::getInstance()->mSimSimOtherMsec));
3585 physics_time_viewp = new LLStatView("physics perf view", "Physics Details (ms)", "", rect);
3586 sim_time_viewp->addChildAtEnd(physics_time_viewp);
3587 {
3588 stat_barp = physics_time_viewp->addStat("Physics Step", &(LLViewerStats::getInstance()->mSimSimPhysicsStepMsec));
3589 stat_barp->setUnitLabel("ms");
3590 stat_barp->mPrecision = 1;
3591 stat_barp->mMinBar = 0.f;
3592 stat_barp->mMaxBar = 40.f;
3593 stat_barp->mTickSpacing = 10.f;
3594 stat_barp->mLabelSpacing = 20.f;
3595 stat_barp->mPerSec = FALSE;
3596 stat_barp->mDisplayBar = FALSE;
3597 stat_barp->mDisplayMean = FALSE;
3598
3599 stat_barp = physics_time_viewp->addStat("Update Shapes", &(LLViewerStats::getInstance()->mSimSimPhysicsShapeUpdateMsec));
3600 stat_barp->setUnitLabel("ms");
3601 stat_barp->mPrecision = 1;
3602 stat_barp->mMinBar = 0.f;
3603 stat_barp->mMaxBar = 40.f;
3604 stat_barp->mTickSpacing = 10.f;
3605 stat_barp->mLabelSpacing = 20.f;
3606 stat_barp->mPerSec = FALSE;
3607 stat_barp->mDisplayBar = FALSE;
3608 stat_barp->mDisplayMean = FALSE;
3609
3610 stat_barp = physics_time_viewp->addStat("Other", &(LLViewerStats::getInstance()->mSimSimPhysicsOtherMsec));
3611 stat_barp->setUnitLabel("ms");
3612 stat_barp->mPrecision = 1;
3613 stat_barp->mMinBar = 0.f;
3614 stat_barp->mMaxBar = 40.f;
3615 stat_barp->mTickSpacing = 10.f;
3616 stat_barp->mLabelSpacing = 20.f;
3617 stat_barp->mPerSec = FALSE;
3618 stat_barp->mDisplayBar = FALSE;
3619 stat_barp->mDisplayMean = FALSE;
3620 }
3621
3622 stat_barp = sim_time_viewp->addStat("Sim Time (Other)", &(LLViewerStats::getInstance()->mSimSimOtherMsec));
3623 stat_barp->setUnitLabel("ms"); 3598 stat_barp->setUnitLabel("ms");
3624 stat_barp->mPrecision = 1; 3599 stat_barp->mPrecision = 1;
3625 stat_barp->mMinBar = 0.f; 3600 stat_barp->mMinBar = 0.f;
@@ -3663,6 +3638,79 @@ void init_stat_view()
3663 stat_barp->mDisplayBar = FALSE; 3638 stat_barp->mDisplayBar = FALSE;
3664 stat_barp->mDisplayMean = FALSE; 3639 stat_barp->mDisplayMean = FALSE;
3665 3640
3641 stat_barp = sim_time_viewp->addStat("Spare Time", &(LLViewerStats::getInstance()->mSimSpareMsec));
3642 stat_barp->setUnitLabel("ms");
3643 stat_barp->mPrecision = 1;
3644 stat_barp->mMinBar = 0.f;
3645 stat_barp->mMaxBar = 40.f;
3646 stat_barp->mTickSpacing = 10.f;
3647 stat_barp->mLabelSpacing = 20.f;
3648 stat_barp->mPerSec = FALSE;
3649 stat_barp->mDisplayBar = FALSE;
3650 stat_barp->mDisplayMean = FALSE;
3651
3652
3653 // 2nd level time blocks under 'Details' second
3654 LLStatView *detailed_time_viewp;
3655 detailed_time_viewp = new LLStatView("sim perf view", "Time Details (ms)", "", rect);
3656 sim_time_viewp->addChildAtEnd(detailed_time_viewp);
3657 {
3658 stat_barp = detailed_time_viewp->addStat(" Physics Step", &(LLViewerStats::getInstance()->mSimSimPhysicsStepMsec));
3659 stat_barp->setUnitLabel("ms");
3660 stat_barp->mPrecision = 1;
3661 stat_barp->mMinBar = 0.f;
3662 stat_barp->mMaxBar = 40.f;
3663 stat_barp->mTickSpacing = 10.f;
3664 stat_barp->mLabelSpacing = 20.f;
3665 stat_barp->mPerSec = FALSE;
3666 stat_barp->mDisplayBar = FALSE;
3667 stat_barp->mDisplayMean = FALSE;
3668
3669 stat_barp = detailed_time_viewp->addStat(" Update Physics Shapes", &(LLViewerStats::getInstance()->mSimSimPhysicsShapeUpdateMsec));
3670 stat_barp->setUnitLabel("ms");
3671 stat_barp->mPrecision = 1;
3672 stat_barp->mMinBar = 0.f;
3673 stat_barp->mMaxBar = 40.f;
3674 stat_barp->mTickSpacing = 10.f;
3675 stat_barp->mLabelSpacing = 20.f;
3676 stat_barp->mPerSec = FALSE;
3677 stat_barp->mDisplayBar = FALSE;
3678 stat_barp->mDisplayMean = FALSE;
3679
3680 stat_barp = detailed_time_viewp->addStat(" Physics Other", &(LLViewerStats::getInstance()->mSimSimPhysicsOtherMsec));
3681 stat_barp->setUnitLabel("ms");
3682 stat_barp->mPrecision = 1;
3683 stat_barp->mMinBar = 0.f;
3684 stat_barp->mMaxBar = 40.f;
3685 stat_barp->mTickSpacing = 10.f;
3686 stat_barp->mLabelSpacing = 20.f;
3687 stat_barp->mPerSec = FALSE;
3688 stat_barp->mDisplayBar = FALSE;
3689 stat_barp->mDisplayMean = FALSE;
3690
3691 stat_barp = detailed_time_viewp->addStat(" Sleep Time", &(LLViewerStats::getInstance()->mSimSleepMsec));
3692 stat_barp->setUnitLabel("ms");
3693 stat_barp->mPrecision = 1;
3694 stat_barp->mMinBar = 0.f;
3695 stat_barp->mMaxBar = 40.f;
3696 stat_barp->mTickSpacing = 10.f;
3697 stat_barp->mLabelSpacing = 20.f;
3698 stat_barp->mPerSec = FALSE;
3699 stat_barp->mDisplayBar = FALSE;
3700 stat_barp->mDisplayMean = FALSE;
3701
3702 stat_barp = detailed_time_viewp->addStat(" Pump IO", &(LLViewerStats::getInstance()->mSimPumpIOMsec));
3703 stat_barp->setUnitLabel("ms");
3704 stat_barp->mPrecision = 1;
3705 stat_barp->mMinBar = 0.f;
3706 stat_barp->mMaxBar = 40.f;
3707 stat_barp->mTickSpacing = 10.f;
3708 stat_barp->mLabelSpacing = 20.f;
3709 stat_barp->mPerSec = FALSE;
3710 stat_barp->mDisplayBar = FALSE;
3711 stat_barp->mDisplayMean = FALSE;
3712 }
3713
3666 LLRect r = gDebugView->mFloaterStatsp->getRect(); 3714 LLRect r = gDebugView->mFloaterStatsp->getRect();
3667 3715
3668 // Reshape based on the parameters we set. 3716 // Reshape based on the parameters we set.
@@ -3924,3 +3972,28 @@ void login_alert_done(S32 option, void* user_data)
3924 LLPanelLogin::giveFocus(); 3972 LLPanelLogin::giveFocus();
3925} 3973}
3926 3974
3975
3976void apply_udp_blacklist(const std::string& csv)
3977{
3978
3979 std::string::size_type start = 0;
3980 std::string::size_type comma = 0;
3981 do
3982 {
3983 comma = csv.find(",", start);
3984 if (comma == std::string::npos)
3985 {
3986 comma = csv.length();
3987 }
3988 std::string item(csv, start, comma-start);
3989
3990 lldebugs << "udp_blacklist " << item << llendl;
3991 gMessageSystem->banUdpMessage(item);
3992
3993 start = comma + 1;
3994
3995 }
3996 while(comma < csv.length());
3997
3998}
3999
diff --git a/linden/indra/newview/llstartup.h b/linden/indra/newview/llstartup.h
index 1a9f659..cde9a1a 100644
--- a/linden/indra/newview/llstartup.h
+++ b/linden/indra/newview/llstartup.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -87,6 +87,7 @@ public:
87 // Always use this to set gStartupState so changes are logged 87 // Always use this to set gStartupState so changes are logged
88 static void setStartupState( EStartupState state ); 88 static void setStartupState( EStartupState state );
89 static EStartupState getStartupState() { return gStartupState; }; 89 static EStartupState getStartupState() { return gStartupState; };
90 static std::string getStartupStateString() { return startupStateToString(gStartupState); };
90 91
91 static void multimediaInit(); 92 static void multimediaInit();
92 // Initialize LLViewerMedia multimedia engine. 93 // Initialize LLViewerMedia multimedia engine.
diff --git a/linden/indra/newview/llstatbar.cpp b/linden/indra/newview/llstatbar.cpp
index 19a9442..2673166 100644
--- a/linden/indra/newview/llstatbar.cpp
+++ b/linden/indra/newview/llstatbar.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -166,7 +166,7 @@ void LLStatBar::draw()
166 bottom = bar_top - bar_height - tick_height/2; 166 bottom = bar_top - bar_height - tick_height/2;
167 167
168 LLGLSUIDefault gls_ui; 168 LLGLSUIDefault gls_ui;
169 LLGLSNoTexture gls_no_texture; 169 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
170 for (tick_value = mMinBar; tick_value <= mMaxBar; tick_value += mTickSpacing) 170 for (tick_value = mMinBar; tick_value <= mMaxBar; tick_value += mTickSpacing)
171 { 171 {
172 left = llfloor((tick_value - mMinBar)*value_scale); 172 left = llfloor((tick_value - mMinBar)*value_scale);
diff --git a/linden/indra/newview/llstatbar.h b/linden/indra/newview/llstatbar.h
index d79a117..136f7c3 100644
--- a/linden/indra/newview/llstatbar.h
+++ b/linden/indra/newview/llstatbar.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llstatgraph.cpp b/linden/indra/newview/llstatgraph.cpp
index 73c80ca..0825bfd 100644
--- a/linden/indra/newview/llstatgraph.cpp
+++ b/linden/indra/newview/llstatgraph.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llstatgraph.h b/linden/indra/newview/llstatgraph.h
index 73e0ba0..caeb17a 100644
--- a/linden/indra/newview/llstatgraph.h
+++ b/linden/indra/newview/llstatgraph.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llstatusbar.cpp b/linden/indra/newview/llstatusbar.cpp
index 2f9227a..b0ef61f 100644
--- a/linden/indra/newview/llstatusbar.cpp
+++ b/linden/indra/newview/llstatusbar.cpp
@@ -4,7 +4,7 @@
4* 4*
5* $LicenseInfo:firstyear=2002&license=viewergpl$ 5* $LicenseInfo:firstyear=2002&license=viewergpl$
6* 6*
7* Copyright (c) 2002-2008, Linden Research, Inc. 7* Copyright (c) 2002-2009, Linden Research, Inc.
8* 8*
9* Second Life Viewer Source Code 9* Second Life Viewer Source Code
10* The source code in this file ("Source Code") is provided by Linden Lab 10* The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llstatusbar.h b/linden/indra/newview/llstatusbar.h
index 5cdb481..7db651c 100644
--- a/linden/indra/newview/llstatusbar.h
+++ b/linden/indra/newview/llstatusbar.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llstatview.cpp b/linden/indra/newview/llstatview.cpp
index 84d4d83..7d20639 100644
--- a/linden/indra/newview/llstatview.cpp
+++ b/linden/indra/newview/llstatview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llstatview.h b/linden/indra/newview/llstatview.h
index 2588f44..8cfc3fb 100644
--- a/linden/indra/newview/llstatview.h
+++ b/linden/indra/newview/llstatview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llstylemap.cpp b/linden/indra/newview/llstylemap.cpp
index 89fa3cd..6a3415f 100644
--- a/linden/indra/newview/llstylemap.cpp
+++ b/linden/indra/newview/llstylemap.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llstylemap.h b/linden/indra/newview/llstylemap.h
index 782299e..a38d253 100644
--- a/linden/indra/newview/llstylemap.h
+++ b/linden/indra/newview/llstylemap.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llsurface.cpp b/linden/indra/newview/llsurface.cpp
index 017517c..e301516 100644
--- a/linden/indra/newview/llsurface.cpp
+++ b/linden/indra/newview/llsurface.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -33,6 +33,8 @@
33 33
34#include "llsurface.h" 34#include "llsurface.h"
35 35
36#include "llrender.h"
37
36#include "llviewerimagelist.h" 38#include "llviewerimagelist.h"
37#include "llpatchvertexarray.h" 39#include "llpatchvertexarray.h"
38#include "patch_dct.h" 40#include "patch_dct.h"
@@ -249,7 +251,7 @@ void LLSurface::createSTexture()
249 251
250 mSTexturep = new LLViewerImage(raw, FALSE); 252 mSTexturep = new LLViewerImage(raw, FALSE);
251 mSTexturep->dontDiscard(); 253 mSTexturep->dontDiscard();
252 mSTexturep->bind(); 254 gGL.getTexUnit(0)->bind(mSTexturep.get());
253 mSTexturep->setClamp(TRUE, TRUE); 255 mSTexturep->setClamp(TRUE, TRUE);
254 gImageList.addImage(mSTexturep); 256 gImageList.addImage(mSTexturep);
255 } 257 }
@@ -274,7 +276,7 @@ void LLSurface::createWaterTexture()
274 } 276 }
275 mWaterTexturep = new LLViewerImage(raw, FALSE); 277 mWaterTexturep = new LLViewerImage(raw, FALSE);
276 mWaterTexturep->dontDiscard(); 278 mWaterTexturep->dontDiscard();
277 mWaterTexturep->bind(); 279 gGL.getTexUnit(0)->bind(mWaterTexturep.get());
278 mWaterTexturep->setClamp(TRUE, TRUE); 280 mWaterTexturep->setClamp(TRUE, TRUE);
279 gImageList.addImage(mWaterTexturep); 281 gImageList.addImage(mWaterTexturep);
280 } 282 }
diff --git a/linden/indra/newview/llsurface.h b/linden/indra/newview/llsurface.h
index ebd8595..6e48f48 100644
--- a/linden/indra/newview/llsurface.h
+++ b/linden/indra/newview/llsurface.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llsurfacepatch.cpp b/linden/indra/newview/llsurfacepatch.cpp
index 68ce4af..59d7318 100644
--- a/linden/indra/newview/llsurfacepatch.cpp
+++ b/linden/indra/newview/llsurfacepatch.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llsurfacepatch.h b/linden/indra/newview/llsurfacepatch.h
index 92756ba..32711c2 100644
--- a/linden/indra/newview/llsurfacepatch.h
+++ b/linden/indra/newview/llsurfacepatch.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltable.h b/linden/indra/newview/lltable.h
index 325497a..52ea165 100644
--- a/linden/indra/newview/lltable.h
+++ b/linden/indra/newview/lltable.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltexlayer.cpp b/linden/indra/newview/lltexlayer.cpp
index e331146..0944d4b 100644
--- a/linden/indra/newview/lltexlayer.cpp
+++ b/linden/indra/newview/lltexlayer.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -60,8 +60,6 @@
60// SJB: We really always want to use the GL cache; 60// SJB: We really always want to use the GL cache;
61// let GL page textures in and out of video RAM instead of trying to do so by hand. 61// let GL page textures in and out of video RAM instead of trying to do so by hand.
62 62
63LLGradientPaletteList gGradientPaletteList;
64
65// static 63// static
66S32 LLTexLayerSetBuffer::sGLByteCount = 0; 64S32 LLTexLayerSetBuffer::sGLByteCount = 0;
67S32 LLTexLayerSetBuffer::sGLBumpByteCount = 0; 65S32 LLTexLayerSetBuffer::sGLBumpByteCount = 0;
@@ -95,51 +93,76 @@ LLTexLayerSetBuffer::LLTexLayerSetBuffer( LLTexLayerSet* owner, S32 width, S32 h
95 mNeedsUpdate( TRUE ), 93 mNeedsUpdate( TRUE ),
96 mNeedsUpload( FALSE ), 94 mNeedsUpload( FALSE ),
97 mUploadPending( FALSE ), // Not used for any logic here, just to sync sending of updates 95 mUploadPending( FALSE ), // Not used for any logic here, just to sync sending of updates
98 mTexLayerSet( owner ), 96 mTexLayerSet( owner )
99 mInitialized( FALSE ),
100 mBumpTexName(0)
101{ 97{
102 LLTexLayerSetBuffer::sGLByteCount += getSize(); 98 LLTexLayerSetBuffer::sGLByteCount += getSize();
99 mHasBump = has_bump ;
100 mBumpTex = NULL ;
101
102 createBumpTexture() ;
103}
104
105LLTexLayerSetBuffer::~LLTexLayerSetBuffer()
106{
107 LLTexLayerSetBuffer::sGLByteCount -= getSize();
103 108
104 if( has_bump ) 109 if( mBumpTex.notNull())
110 {
111 mBumpTex = NULL ;
112 LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4;
113 LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4;
114 }
115}
116//virtual
117void LLTexLayerSetBuffer::restoreGLTexture()
118{
119 createBumpTexture() ;
120 LLDynamicTexture::restoreGLTexture() ;
121}
122
123//virtual
124void LLTexLayerSetBuffer::destroyGLTexture()
125{
126 if( mBumpTex.notNull() )
127 {
128 mBumpTex = NULL ;
129 LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4;
130 LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4;
131 }
132
133 LLDynamicTexture::destroyGLTexture() ;
134}
135
136void LLTexLayerSetBuffer::createBumpTexture()
137{
138 if( mHasBump )
105 { 139 {
106 LLGLSUIDefault gls_ui; 140 LLGLSUIDefault gls_ui;
107 glGenTextures(1, (GLuint*) &mBumpTexName); 141 mBumpTex = new LLImageGL(FALSE) ;
142 if(!mBumpTex->createGLTexture())
143 {
144 mBumpTex = NULL ;
145 return ;
146 }
108 147
109 LLImageGL::bindExternalTexture(mBumpTexName, 0, GL_TEXTURE_2D); 148 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTex->getTexName());
110 stop_glerror(); 149 stop_glerror();
111 150
112 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 151 gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
113 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
114 152
115 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 153 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
116 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 154 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
117 155
118 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); 156 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, mWidth, mHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
119 stop_glerror(); 157 stop_glerror();
120 158
121 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 159 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
122 160
123 LLImageGL::sGlobalTextureMemory += mWidth * mHeight * 4; 161 LLImageGL::sGlobalTextureMemory += mWidth * mHeight * 4;
124 LLTexLayerSetBuffer::sGLBumpByteCount += mWidth * mHeight * 4; 162 LLTexLayerSetBuffer::sGLBumpByteCount += mWidth * mHeight * 4;
125 } 163 }
126} 164}
127 165
128LLTexLayerSetBuffer::~LLTexLayerSetBuffer()
129{
130 LLTexLayerSetBuffer::sGLByteCount -= getSize();
131
132 if( mBumpTexName )
133 {
134 glDeleteTextures(1, (GLuint*) &mBumpTexName);
135 stop_glerror();
136 mBumpTexName = 0;
137
138 LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4;
139 LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4;
140 }
141}
142
143// static 166// static
144void LLTexLayerSetBuffer::dumpTotalByteCount() 167void LLTexLayerSetBuffer::dumpTotalByteCount()
145{ 168{
@@ -248,7 +271,7 @@ BOOL LLTexLayerSetBuffer::render()
248 BOOL success = TRUE; 271 BOOL success = TRUE;
249 272
250 // Composite bump 273 // Composite bump
251 if( mBumpTexName ) 274 if( mBumpTex.notNull() )
252 { 275 {
253 // Composite the bump data 276 // Composite the bump data
254 success &= mTexLayerSet->renderBump( mOrigin.mX, mOrigin.mY, mWidth, mHeight ); 277 success &= mTexLayerSet->renderBump( mOrigin.mX, mOrigin.mY, mWidth, mHeight );
@@ -259,7 +282,7 @@ BOOL LLTexLayerSetBuffer::render()
259 LLGLSUIDefault gls_ui; 282 LLGLSUIDefault gls_ui;
260 283
261 // read back into texture (this is done externally for the color data) 284 // read back into texture (this is done externally for the color data)
262 LLImageGL::bindExternalTexture( mBumpTexName, 0, GL_TEXTURE_2D ); 285 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTex->getTexName());
263 stop_glerror(); 286 stop_glerror();
264 287
265 glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, mOrigin.mX, mOrigin.mY, mWidth, mHeight); 288 glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, mOrigin.mX, mOrigin.mY, mWidth, mHeight);
@@ -299,12 +322,17 @@ BOOL LLTexLayerSetBuffer::render()
299 gGL.setSceneBlendType(LLRender::BT_ALPHA); 322 gGL.setSceneBlendType(LLRender::BT_ALPHA);
300 323
301 // we have valid texture data now 324 // we have valid texture data now
302 mInitialized = TRUE; 325 mTexture->setGLTextureCreated(true);
303 mNeedsUpdate = FALSE; 326 mNeedsUpdate = FALSE;
304 327
305 return success; 328 return success;
306} 329}
307 330
331bool LLTexLayerSetBuffer::isInitialized(void) const
332{
333 return mTexture.notNull() && mTexture->isGLTextureCreated();
334}
335
308BOOL LLTexLayerSetBuffer::updateImmediate() 336BOOL LLTexLayerSetBuffer::updateImmediate()
309{ 337{
310 mNeedsUpdate = TRUE; 338 mNeedsUpdate = TRUE;
@@ -350,11 +378,11 @@ void LLTexLayerSetBuffer::readBackAndUpload(U8* baked_bump_data)
350 // writes into baked_color_data 378 // writes into baked_color_data
351 const char* comment_text = NULL; 379 const char* comment_text = NULL;
352 380
353 S32 baked_image_components = mBumpTexName ? 5 : 4; // red green blue [bump] clothing 381 S32 baked_image_components = mBumpTex.notNull() ? 5 : 4; // red green blue [bump] clothing
354 LLPointer<LLImageRaw> baked_image = new LLImageRaw( mWidth, mHeight, baked_image_components ); 382 LLPointer<LLImageRaw> baked_image = new LLImageRaw( mWidth, mHeight, baked_image_components );
355 U8* baked_image_data = baked_image->getData(); 383 U8* baked_image_data = baked_image->getData();
356 384
357 if( mBumpTexName ) 385 if( mBumpTex.notNull() )
358 { 386 {
359 comment_text = LINDEN_J2C_COMMENT_PREFIX "RGBHM"; // 5 channels: rgb, heightfield/alpha, mask 387 comment_text = LINDEN_J2C_COMMENT_PREFIX "RGBHM"; // 5 channels: rgb, heightfield/alpha, mask
360 388
@@ -551,24 +579,12 @@ void LLTexLayerSetBuffer::onTextureUploadComplete(const LLUUID& uuid, void* user
551 delete baked_upload_data; 579 delete baked_upload_data;
552} 580}
553 581
554
555void LLTexLayerSetBuffer::bindTexture()
556{
557 if( mInitialized )
558 {
559 LLDynamicTexture::bindTexture();
560 }
561 else
562 {
563 gImageList.getImage(IMG_DEFAULT)->bind();
564 }
565}
566
567void LLTexLayerSetBuffer::bindBumpTexture( U32 stage ) 582void LLTexLayerSetBuffer::bindBumpTexture( U32 stage )
568{ 583{
569 if( mBumpTexName ) 584 if( mBumpTex.notNull() )
570 { 585 {
571 LLImageGL::bindExternalTexture(mBumpTexName, stage, GL_TEXTURE_2D); 586 gGL.getTexUnit(stage)->bindManual(LLTexUnit::TT_TEXTURE, mBumpTex->getTexName());
587 gGL.getTexUnit(0)->activate();
572 588
573 if( mLastBindTime != LLImageGL::sLastFrameTime ) 589 if( mLastBindTime != LLImageGL::sLastFrameTime )
574 { 590 {
@@ -578,7 +594,8 @@ void LLTexLayerSetBuffer::bindBumpTexture( U32 stage )
578 } 594 }
579 else 595 else
580 { 596 {
581 LLImageGL::unbindTexture(stage, GL_TEXTURE_2D); 597 gGL.getTexUnit(stage)->unbind(LLTexUnit::TT_TEXTURE);
598 gGL.getTexUnit(0)->activate();
582 } 599 }
583} 600}
584 601
@@ -786,7 +803,7 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )
786 if( image_gl ) 803 if( image_gl )
787 { 804 {
788 LLGLSUIDefault gls_ui; 805 LLGLSUIDefault gls_ui;
789 image_gl->bind(); 806 gGL.getTexUnit(0)->bind(image_gl);
790 gl_rect_2d_simple_tex( width, height ); 807 gl_rect_2d_simple_tex( width, height );
791 } 808 }
792 else 809 else
@@ -794,7 +811,7 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )
794 success = FALSE; 811 success = FALSE;
795 } 812 }
796 } 813 }
797 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 814 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
798 815
799 gGL.flush(); 816 gGL.flush();
800 gGL.setColorMask(true, true); 817 gGL.setColorMask(true, true);
@@ -804,7 +821,8 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )
804 if( getInfo()->mClearAlpha ) 821 if( getInfo()->mClearAlpha )
805 { 822 {
806 // Set the alpha channel to one (clean up after previous blending) 823 // Set the alpha channel to one (clean up after previous blending)
807 LLGLSNoTextureNoAlphaTest gls_no_alpha; 824 LLGLDisable no_alpha(GL_ALPHA_TEST);
825 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
808 gGL.color4f( 0.f, 0.f, 0.f, 1.f ); 826 gGL.color4f( 0.f, 0.f, 0.f, 1.f );
809 gGL.flush(); 827 gGL.flush();
810 gGL.setColorMask(false, true); 828 gGL.setColorMask(false, true);
@@ -838,7 +856,8 @@ BOOL LLTexLayerSet::renderBump( S32 x, S32 y, S32 width, S32 height )
838 } 856 }
839 857
840 // Set the alpha channel to one (clean up after previous blending) 858 // Set the alpha channel to one (clean up after previous blending)
841 LLGLSNoTextureNoAlphaTest gls_no_texture_no_alpha; 859 LLGLDisable no_alpha(GL_ALPHA_TEST);
860 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
842 gGL.color4f( 0.f, 0.f, 0.f, 1.f ); 861 gGL.color4f( 0.f, 0.f, 0.f, 1.f );
843 gGL.setColorMask(false, true); 862 gGL.setColorMask(false, true);
844 863
@@ -1358,13 +1377,13 @@ BOOL LLTexLayer::render( S32 x, S32 y, S32 width, S32 height )
1358 BOOL old_clamps = image_gl->getClampS(); 1377 BOOL old_clamps = image_gl->getClampS();
1359 BOOL old_clampt = image_gl->getClampT(); 1378 BOOL old_clampt = image_gl->getClampT();
1360 1379
1361 image_gl->bind(); 1380 gGL.getTexUnit(0)->bind(image_gl);
1362 image_gl->setClamp(TRUE, TRUE); 1381 image_gl->setClamp(TRUE, TRUE);
1363 1382
1364 gl_rect_2d_simple_tex( width, height ); 1383 gl_rect_2d_simple_tex( width, height );
1365 1384
1366 image_gl->setClamp(old_clamps, old_clampt); 1385 image_gl->setClamp(old_clamps, old_clampt);
1367 image_gl->unbindTexture(0, GL_TEXTURE_2D); 1386 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1368 } 1387 }
1369 } 1388 }
1370 else 1389 else
@@ -1380,9 +1399,9 @@ BOOL LLTexLayer::render( S32 x, S32 y, S32 width, S32 height )
1380 LLImageGL* image_gl = gTexStaticImageList.getImageGL( getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask ); 1399 LLImageGL* image_gl = gTexStaticImageList.getImageGL( getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask );
1381 if( image_gl ) 1400 if( image_gl )
1382 { 1401 {
1383 image_gl->bind(); 1402 gGL.getTexUnit(0)->bind(image_gl);
1384 gl_rect_2d_simple_tex( width, height ); 1403 gl_rect_2d_simple_tex( width, height );
1385 image_gl->unbindTexture(0, GL_TEXTURE_2D); 1404 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1386 } 1405 }
1387 else 1406 else
1388 { 1407 {
@@ -1396,7 +1415,8 @@ BOOL LLTexLayer::render( S32 x, S32 y, S32 width, S32 height )
1396 getInfo()->mStaticImageFileName.empty() && 1415 getInfo()->mStaticImageFileName.empty() &&
1397 color_specified ) 1416 color_specified )
1398 { 1417 {
1399 LLGLSNoTextureNoAlphaTest gls; 1418 LLGLDisable no_alpha(GL_ALPHA_TEST);
1419 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1400 gGL.color4fv( net_color.mV); 1420 gGL.color4fv( net_color.mV);
1401 gl_rect_2d_simple( width, height ); 1421 gl_rect_2d_simple( width, height );
1402 } 1422 }
@@ -1518,7 +1538,8 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4
1518 // Note: if the first param is a mulitply, multiply against the current buffer's alpha 1538 // Note: if the first param is a mulitply, multiply against the current buffer's alpha
1519 if( !first_param || !first_param->getMultiplyBlend() ) 1539 if( !first_param || !first_param->getMultiplyBlend() )
1520 { 1540 {
1521 LLGLSNoTextureNoAlphaTest gls_no_texture_no_alpha_test; 1541 LLGLDisable no_alpha(GL_ALPHA_TEST);
1542 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1522 1543
1523 // Clear the alpha 1544 // Clear the alpha
1524 gGL.flush(); 1545 gGL.flush();
@@ -1555,13 +1576,13 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4
1555 1576
1556 BOOL old_clamps = image_gl->getClampS(); 1577 BOOL old_clamps = image_gl->getClampS();
1557 BOOL old_clampt = image_gl->getClampT(); 1578 BOOL old_clampt = image_gl->getClampT();
1558 image_gl->bind(); 1579 gGL.getTexUnit(0)->bind(image_gl);
1559 image_gl->setClamp(TRUE, TRUE); 1580 image_gl->setClamp(TRUE, TRUE);
1560 1581
1561 gl_rect_2d_simple_tex( width, height ); 1582 gl_rect_2d_simple_tex( width, height );
1562 1583
1563 image_gl->setClamp(old_clamps, old_clampt); 1584 image_gl->setClamp(old_clamps, old_clampt);
1564 image_gl->unbindTexture(0, GL_TEXTURE_2D); 1585 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1565 } 1586 }
1566 } 1587 }
1567 else 1588 else
@@ -1581,9 +1602,9 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4
1581 ( (image_gl->getComponents() == 1) && getInfo()->mStaticImageIsMask ) ) 1602 ( (image_gl->getComponents() == 1) && getInfo()->mStaticImageIsMask ) )
1582 { 1603 {
1583 LLGLSNoAlphaTest gls_no_alpha_test; 1604 LLGLSNoAlphaTest gls_no_alpha_test;
1584 image_gl->bind(); 1605 gGL.getTexUnit(0)->bind(image_gl);
1585 gl_rect_2d_simple_tex( width, height ); 1606 gl_rect_2d_simple_tex( width, height );
1586 image_gl->unbindTexture(0, GL_TEXTURE_2D); 1607 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1587 } 1608 }
1588 } 1609 }
1589 else 1610 else
@@ -1597,7 +1618,8 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4
1597 // Note: we're still using gGL.blendFunc( GL_DST_ALPHA, GL_ZERO ); 1618 // Note: we're still using gGL.blendFunc( GL_DST_ALPHA, GL_ZERO );
1598 if( colorp->mV[VW] != 1.f ) 1619 if( colorp->mV[VW] != 1.f )
1599 { 1620 {
1600 LLGLSNoTextureNoAlphaTest gls_no_texture_no_alpha_test; 1621 LLGLDisable no_alpha(GL_ALPHA_TEST);
1622 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1601 gGL.color4fv( colorp->mV ); 1623 gGL.color4fv( colorp->mV );
1602 gl_rect_2d_simple( width, height ); 1624 gl_rect_2d_simple( width, height );
1603 } 1625 }
@@ -1700,7 +1722,7 @@ BOOL LLTexLayer::renderImageRaw( U8* in_data, S32 in_width, S32 in_height, S32 i
1700 glGenTextures(1, &name ); 1722 glGenTextures(1, &name );
1701 stop_glerror(); 1723 stop_glerror();
1702 1724
1703 LLImageGL::bindExternalTexture( name, 0, GL_TEXTURE_2D ); 1725 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, name);
1704 stop_glerror(); 1726 stop_glerror();
1705 1727
1706 glTexImage2D( 1728 glTexImage2D(
@@ -1712,12 +1734,11 @@ BOOL LLTexLayer::renderImageRaw( U8* in_data, S32 in_width, S32 in_height, S32 i
1712 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 1734 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
1713 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 1735 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
1714 1736
1715 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 1737 gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
1716 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
1717 1738
1718 gl_rect_2d_simple_tex( width, height ); 1739 gl_rect_2d_simple_tex( width, height );
1719 1740
1720 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 1741 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1721 1742
1722 glDeleteTextures(1, &name ); 1743 glDeleteTextures(1, &name );
1723 stop_glerror(); 1744 stop_glerror();
@@ -1736,7 +1757,7 @@ BOOL LLTexLayer::renderImageRaw( U8* in_data, S32 in_width, S32 in_height, S32 i
1736 1757
1737 gl_rect_2d_simple_tex( width, height ); 1758 gl_rect_2d_simple_tex( width, height );
1738 1759
1739 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 1760 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1740 } 1761 }
1741 1762
1742 return TRUE; 1763 return TRUE;
@@ -1800,8 +1821,6 @@ BOOL LLTexLayerParamAlphaInfo::parseXml(LLXmlTreeNode* node)
1800 static LLStdStringHandle domain_string = LLXmlTree::addAttributeString("domain"); 1821 static LLStdStringHandle domain_string = LLXmlTree::addAttributeString("domain");
1801 param_alpha_node->getFastAttributeF32( domain_string, mDomain ); 1822 param_alpha_node->getFastAttributeF32( domain_string, mDomain );
1802 1823
1803 gGradientPaletteList.initPalette(mDomain);
1804
1805 return TRUE; 1824 return TRUE;
1806} 1825}
1807 1826
@@ -1996,7 +2015,7 @@ BOOL LLTexLayerParamAlpha::render( S32 x, S32 y, S32 width, S32 height )
1996 if( !mCachedProcessedImageGL || 2015 if( !mCachedProcessedImageGL ||
1997 (mCachedProcessedImageGL->getWidth() != image_tga_width) || 2016 (mCachedProcessedImageGL->getWidth() != image_tga_width) ||
1998 (mCachedProcessedImageGL->getHeight() != image_tga_height) || 2017 (mCachedProcessedImageGL->getHeight() != image_tga_height) ||
1999 (weight_changed && !(gGLManager.mHasPalettedTextures && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_PALETTE))) ) 2018 (weight_changed ))
2000 { 2019 {
2001// llinfos << "Building Cached Alpha: " << mName << ": (" << mStaticImageRaw->getWidth() << ", " << mStaticImageRaw->getHeight() << ") " << effective_weight << llendl; 2020// llinfos << "Building Cached Alpha: " << mName << ": (" << mStaticImageRaw->getWidth() << ", " << mStaticImageRaw->getHeight() << ") " << effective_weight << llendl;
2002 mCachedEffectiveWeight = effective_weight; 2021 mCachedEffectiveWeight = effective_weight;
@@ -2008,71 +2027,34 @@ BOOL LLTexLayerParamAlpha::render( S32 x, S32 y, S32 width, S32 height )
2008 // We now have something in one of our caches 2027 // We now have something in one of our caches
2009 LLTexLayerSet::sHasCaches |= mCachedProcessedImageGL ? TRUE : FALSE; 2028 LLTexLayerSet::sHasCaches |= mCachedProcessedImageGL ? TRUE : FALSE;
2010 2029
2011 if (gGLManager.mHasPalettedTextures && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_PALETTE)) 2030
2012 { 2031 mCachedProcessedImageGL->setExplicitFormat( GL_ALPHA8, GL_ALPHA );
2013 // interpret luminance values as color index table
2014 mCachedProcessedImageGL->setExplicitFormat( GL_COLOR_INDEX8_EXT, GL_COLOR_INDEX );
2015 }
2016 else
2017 {
2018 mCachedProcessedImageGL->setExplicitFormat( GL_ALPHA8, GL_ALPHA );
2019 }
2020 } 2032 }
2021 2033
2022 // Applies domain and effective weight to data as it is decoded. Also resizes the raw image if needed. 2034 // Applies domain and effective weight to data as it is decoded. Also resizes the raw image if needed.
2023 if (gGLManager.mHasPalettedTextures && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_PALETTE)) 2035 mStaticImageRaw = NULL;
2024 { 2036 mStaticImageRaw = new LLImageRaw;
2025 mStaticImageRaw = NULL; 2037 mStaticImageTGA->decodeAndProcess( mStaticImageRaw, getInfo()->mDomain, effective_weight );
2026 mStaticImageRaw = new LLImageRaw; 2038 mNeedsCreateTexture = TRUE;
2027 mStaticImageTGA->decode(mStaticImageRaw);
2028 mNeedsCreateTexture = TRUE;
2029 }
2030 else
2031 {
2032 mStaticImageRaw = NULL;
2033 mStaticImageRaw = new LLImageRaw;
2034 mStaticImageTGA->decodeAndProcess( mStaticImageRaw, getInfo()->mDomain, effective_weight );
2035 mNeedsCreateTexture = TRUE;
2036 }
2037 } 2039 }
2038 2040
2039 if( mCachedProcessedImageGL ) 2041 if( mCachedProcessedImageGL )
2040 { 2042 {
2041 { 2043 {
2042 if (gGLManager.mHasPalettedTextures && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_PALETTE)) 2044 // Create the GL texture, and then hang onto it for future use.
2045 if( mNeedsCreateTexture )
2043 { 2046 {
2044 if( mNeedsCreateTexture ) 2047 mCachedProcessedImageGL->createGLTexture(0, mStaticImageRaw);
2045 { 2048 mNeedsCreateTexture = FALSE;
2046 mCachedProcessedImageGL->createGLTexture(0, mStaticImageRaw); 2049
2047 mNeedsCreateTexture = FALSE; 2050 gGL.getTexUnit(0)->bind(mCachedProcessedImageGL);
2048 2051 mCachedProcessedImageGL->setClamp(TRUE, TRUE);
2049 mCachedProcessedImageGL->bind();
2050 mCachedProcessedImageGL->setClamp(TRUE, TRUE);
2051 }
2052
2053 LLGLSNoAlphaTest gls_no_alpha_test;
2054 mCachedProcessedImageGL->bind();
2055 gGradientPaletteList.setHardwarePalette( getInfo()->mDomain, effective_weight );
2056 gl_rect_2d_simple_tex( width, height );
2057 mCachedProcessedImageGL->unbindTexture(0, GL_TEXTURE_2D);
2058 }
2059 else
2060 {
2061 // Create the GL texture, and then hang onto it for future use.
2062 if( mNeedsCreateTexture )
2063 {
2064 mCachedProcessedImageGL->createGLTexture(0, mStaticImageRaw);
2065 mNeedsCreateTexture = FALSE;
2066
2067 mCachedProcessedImageGL->bind();
2068 mCachedProcessedImageGL->setClamp(TRUE, TRUE);
2069 }
2070
2071 LLGLSNoAlphaTest gls_no_alpha_test;
2072 mCachedProcessedImageGL->bind();
2073 gl_rect_2d_simple_tex( width, height );
2074 mCachedProcessedImageGL->unbindTexture(0, GL_TEXTURE_2D);
2075 } 2052 }
2053
2054 LLGLSNoAlphaTest gls_no_alpha_test;
2055 gGL.getTexUnit(0)->bind(mCachedProcessedImageGL);
2056 gl_rect_2d_simple_tex( width, height );
2057 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
2076 stop_glerror(); 2058 stop_glerror();
2077 } 2059 }
2078 } 2060 }
@@ -2086,7 +2068,8 @@ BOOL LLTexLayerParamAlpha::render( S32 x, S32 y, S32 width, S32 height )
2086 } 2068 }
2087 else 2069 else
2088 { 2070 {
2089 LLGLSNoTextureNoAlphaTest gls_no_texture_no_alpha_test; 2071 LLGLDisable no_alpha(GL_ALPHA_TEST);
2072 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
2090 gGL.color4f( 0.f, 0.f, 0.f, effective_weight ); 2073 gGL.color4f( 0.f, 0.f, 0.f, effective_weight );
2091 gl_rect_2d_simple( width, height ); 2074 gl_rect_2d_simple( width, height );
2092 } 2075 }
@@ -2519,7 +2502,7 @@ LLImageGL* LLTexStaticImageList::getImageGL(const std::string& file_name, BOOL i
2519 } 2502 }
2520 image_gl->createGLTexture(0, image_raw); 2503 image_gl->createGLTexture(0, image_raw);
2521 2504
2522 image_gl->bind(); 2505 gGL.getTexUnit(0)->bind(image_gl);
2523 image_gl->setClamp(TRUE, TRUE); 2506 image_gl->setClamp(TRUE, TRUE);
2524 2507
2525 mStaticImageListGL [ namekey ] = image_gl; 2508 mStaticImageListGL [ namekey ] = image_gl;
@@ -2559,68 +2542,3 @@ LLMaskedMorph::LLMaskedMorph( LLPolyMorphTarget *morph_target, BOOL invert ) : m
2559 morph_target->addPendingMorphMask(); 2542 morph_target->addPendingMorphMask();
2560} 2543}
2561 2544
2562
2563//-----------------------------------------------------------------------------
2564// LLGradientPaletteList
2565//-----------------------------------------------------------------------------
2566
2567LLGradientPaletteList::~LLGradientPaletteList()
2568{
2569 // Note: can't just call deleteAllData() because the data values are arrays.
2570 for( palette_map_t::iterator iter = mPaletteMap.begin();
2571 iter != mPaletteMap.end(); iter++ )
2572 {
2573 U8* data = iter->second;
2574 delete []data;
2575 }
2576}
2577
2578void LLGradientPaletteList::initPalette(F32 domain)
2579{
2580 palette_map_t::iterator iter = mPaletteMap.find( domain );
2581 if( iter == mPaletteMap.end() )
2582 {
2583 U8 *palette = new U8[512 * 4];
2584 mPaletteMap[domain] = palette;
2585 S32 ramp_start = 255 - llfloor(domain * 255.f);
2586 S32 ramp_end = 255;
2587 F32 ramp_factor = (ramp_end == ramp_start) ? 0.f : (255.f / ((F32)ramp_end - (F32)ramp_start));
2588
2589 // *TODO: move conditionals outside of loop, since this really
2590 // is just a sequential process.
2591 for (S32 i = 0; i < 512; i++)
2592 {
2593 palette[(i * 4) + 1] = 0;
2594 palette[(i * 4) + 2] = 0;
2595 if (i <= ramp_start)
2596 {
2597 palette[(i * 4)] = 0;
2598 palette[(i * 4) + 3] = 0;
2599 }
2600 else if (i < ramp_end)
2601 {
2602 palette[(i * 4)] = llfloor(((F32)i - (F32)ramp_start) * ramp_factor);
2603 palette[(i * 4) + 3] = llfloor(((F32)i - (F32)ramp_start) * ramp_factor);
2604 }
2605 else
2606 {
2607 palette[(i * 4)] = 255;
2608 palette[(i * 4) + 3] = 255;
2609 }
2610 }
2611 }
2612}
2613
2614void LLGradientPaletteList::setHardwarePalette( F32 domain, F32 effective_weight )
2615{
2616 palette_map_t::iterator iter = mPaletteMap.find( domain );
2617 if( iter != mPaletteMap.end() )
2618 {
2619 U8* palette = iter->second;
2620 set_palette( palette + llfloor(effective_weight * (255.f * (1.f - domain))) * 4);
2621 }
2622 else
2623 {
2624 llwarns << "LLGradientPaletteList::setHardwarePalette() missing domain " << domain << llendl;
2625 }
2626}
diff --git a/linden/indra/newview/lltexlayer.h b/linden/indra/newview/lltexlayer.h
index 742b484..69132fe 100644
--- a/linden/indra/newview/lltexlayer.h
+++ b/linden/indra/newview/lltexlayer.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -211,9 +211,8 @@ public:
211 virtual void postRender(BOOL success); 211 virtual void postRender(BOOL success);
212 virtual BOOL render(); 212 virtual BOOL render();
213 BOOL updateImmediate(); 213 BOOL updateImmediate();
214 virtual void bindTexture();
215 void bindBumpTexture( U32 stage ); 214 void bindBumpTexture( U32 stage );
216 BOOL isInitialized() { return mInitialized; } // Initialized here means that we've done at least one render 215 bool isInitialized(void) const;
217 BOOL needsRender(); 216 BOOL needsRender();
218 void requestUpdate(); 217 void requestUpdate();
219 void requestUpload(); 218 void requestUpload();
@@ -221,23 +220,28 @@ public:
221 BOOL uploadPending() { return mUploadPending; } 220 BOOL uploadPending() { return mUploadPending; }
222 BOOL render( S32 x, S32 y, S32 width, S32 height ); 221 BOOL render( S32 x, S32 y, S32 width, S32 height );
223 void readBackAndUpload(U8* baked_bump_data); 222 void readBackAndUpload(U8* baked_bump_data);
223 void createBumpTexture() ;
224
224 static void onTextureUploadComplete( const LLUUID& uuid, 225 static void onTextureUploadComplete( const LLUUID& uuid,
225 void* userdata, 226 void* userdata,
226 S32 result, LLExtStat ext_status); 227 S32 result, LLExtStat ext_status);
227 static void dumpTotalByteCount(); 228 static void dumpTotalByteCount();
228 229
230 virtual void restoreGLTexture() ;
231 virtual void destroyGLTexture() ;
232
229private: 233private:
230 void pushProjection(); 234 void pushProjection();
231 void popProjection(); 235 void popProjection();
232 236
233private: 237private:
238 BOOL mHasBump ;
234 BOOL mNeedsUpdate; 239 BOOL mNeedsUpdate;
235 BOOL mNeedsUpload; 240 BOOL mNeedsUpload;
236 BOOL mUploadPending; 241 BOOL mUploadPending;
237 LLUUID mUploadID; // Identifys the current upload process (null if none). Used to avoid overlaps (eg, when the user rapidly makes two changes outside of Face Edit) 242 LLUUID mUploadID; // Identifys the current upload process (null if none). Used to avoid overlaps (eg, when the user rapidly makes two changes outside of Face Edit)
238 LLTexLayerSet* mTexLayerSet; 243 LLTexLayerSet* mTexLayerSet;
239 BOOL mInitialized; 244 LLPointer<LLImageGL> mBumpTex; // zero if none
240 LLGLuint mBumpTexName; // zero if none
241 245
242 static S32 sGLByteCount; 246 static S32 sGLByteCount;
243 static S32 sGLBumpByteCount; 247 static S32 sGLBumpByteCount;
@@ -529,41 +533,6 @@ public:
529}; 533};
530 534
531 535
532//-----------------------------------------------------------------------------
533// LLGradientPaletteList
534// A static set of ramp grayscale palettes. The "effective_weight" is used
535// to determine the x position of the ramp (offset)
536//
537// "Domain" isn't really the right word. It refers to the width of the
538// ramp portion of the function that relates input and output pixel values.
539// A domain of 0 gives a step function.
540//
541// | /----------------
542// O| / |
543// u| / |
544// t| / |
545// p|------------------/ |
546// u| | |
547// t|<---------------->|<-->|
548// | "offset" "domain"
549// |
550// --+---Input--------------------------------
551// |
552//-----------------------------------------------------------------------------
553class LLGradientPaletteList
554{
555public:
556 LLGradientPaletteList() {}
557 ~LLGradientPaletteList();
558
559 void initPalette(F32 domain);
560 void setHardwarePalette(F32 domain, F32 effective_weight);
561
562private:
563 typedef std::map<F32, U8*> palette_map_t;
564 palette_map_t mPaletteMap;
565};
566
567// Used by LLTexLayerSetBuffer for a callback. 536// Used by LLTexLayerSetBuffer for a callback.
568class LLBakedUploadData 537class LLBakedUploadData
569{ 538{
diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp
index 8044859..ec5cf78 100644
--- a/linden/indra/newview/lltexturecache.cpp
+++ b/linden/indra/newview/lltexturecache.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltexturecache.h b/linden/indra/newview/lltexturecache.h
index b5abb67..8089ae1 100644
--- a/linden/indra/newview/lltexturecache.h
+++ b/linden/indra/newview/lltexturecache.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltexturectrl.cpp b/linden/indra/newview/lltexturectrl.cpp
index 6b84be4..be0b8eb 100644
--- a/linden/indra/newview/lltexturectrl.cpp
+++ b/linden/indra/newview/lltexturectrl.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2002&license=viewergpl$ 6 * $LicenseInfo:firstyear=2002&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2002-2008, Linden Research, Inc. 8 * Copyright (c) 2002-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -479,9 +479,9 @@ void LLFloaterTexturePicker::draw()
479 LLRect local_rect = getLocalRect(); 479 LLRect local_rect = getLocalRect();
480 if (gFocusMgr.childHasKeyboardFocus(this) && mOwner->isInVisibleChain() && mContextConeOpacity > 0.001f) 480 if (gFocusMgr.childHasKeyboardFocus(this) && mOwner->isInVisibleChain() && mContextConeOpacity > 0.001f)
481 { 481 {
482 LLGLSNoTexture no_texture; 482 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
483 LLGLEnable(GL_CULL_FACE); 483 LLGLEnable(GL_CULL_FACE);
484 gGL.begin(LLVertexBuffer::QUADS); 484 gGL.begin(LLRender::QUADS);
485 { 485 {
486 gGL.color4f(0.f, 0.f, 0.f, CONTEXT_CONE_IN_ALPHA * mContextConeOpacity); 486 gGL.color4f(0.f, 0.f, 0.f, CONTEXT_CONE_IN_ALPHA * mContextConeOpacity);
487 gGL.vertex2i(owner_rect.mLeft, owner_rect.mTop); 487 gGL.vertex2i(owner_rect.mLeft, owner_rect.mTop);
diff --git a/linden/indra/newview/lltexturectrl.h b/linden/indra/newview/lltexturectrl.h
index 24cde30..34623d4 100644
--- a/linden/indra/newview/lltexturectrl.h
+++ b/linden/indra/newview/lltexturectrl.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2002&license=viewergpl$ 6 * $LicenseInfo:firstyear=2002&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2002-2008, Linden Research, Inc. 8 * Copyright (c) 2002-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltexturefetch.cpp b/linden/indra/newview/lltexturefetch.cpp
index 80b8b4d..24046cc 100644
--- a/linden/indra/newview/lltexturefetch.cpp
+++ b/linden/indra/newview/lltexturefetch.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -562,6 +562,14 @@ bool LLTextureFetchWorker::doWork(S32 param)
562 { 562 {
563 mFetchTimer.reset(); 563 mFetchTimer.reset();
564 } 564 }
565
566 if (mImagePriority <= 0.0f)
567 {
568 if (mState < WRITE_TO_CACHE)
569 {
570 return true; // cancel request
571 }
572 }
565 573
566 if (mState == INIT) 574 if (mState == INIT)
567 { 575 {
@@ -708,7 +716,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
708 mFetcher->lockQueue(); 716 mFetcher->lockQueue();
709 mFetcher->removeFromNetworkQueue(this); 717 mFetcher->removeFromNetworkQueue(this);
710 mFetcher->unlockQueue(); 718 mFetcher->unlockQueue();
711 if (!mFormattedImage->getDataSize()) 719 if (mFormattedImage.isNull() || !mFormattedImage->getDataSize())
712 { 720 {
713 // processSimulatorPackets() failed 721 // processSimulatorPackets() failed
714// llwarns << "processSimulatorPackets() failed to load buffer" << llendl; 722// llwarns << "processSimulatorPackets() failed to load buffer" << llendl;
@@ -1050,17 +1058,22 @@ void LLTextureFetchWorker::removeFromCache()
1050 1058
1051bool LLTextureFetchWorker::processSimulatorPackets() 1059bool LLTextureFetchWorker::processSimulatorPackets()
1052{ 1060{
1061 if (mFormattedImage.isNull() || mRequestedSize < 0)
1062 {
1063 // not sure how we got here, but not a valid state, abort!
1064 mFormattedImage = NULL;
1065 return true;
1066 }
1067
1053 if (mLastPacket >= mFirstPacket) 1068 if (mLastPacket >= mFirstPacket)
1054 { 1069 {
1055 llassert_always(mFormattedImage) ;
1056 S32 buffer_size = mFormattedImage->getDataSize(); 1070 S32 buffer_size = mFormattedImage->getDataSize();
1057 for (S32 i = mFirstPacket; i<=mLastPacket; i++) 1071 for (S32 i = mFirstPacket; i<=mLastPacket; i++)
1058 { 1072 {
1059 llassert_always(mPackets[i]) ; 1073 llassert_always(mPackets[i]);
1060 buffer_size += mPackets[i]->mSize; 1074 buffer_size += mPackets[i]->mSize;
1061 } 1075 }
1062 bool have_all_data = mLastPacket >= mTotalPackets-1; 1076 bool have_all_data = mLastPacket >= mTotalPackets-1;
1063 llassert_always(mRequestedSize > 0);
1064 if (buffer_size >= mRequestedSize || have_all_data) 1077 if (buffer_size >= mRequestedSize || have_all_data)
1065 { 1078 {
1066 /// We have enough (or all) data 1079 /// We have enough (or all) data
@@ -1227,7 +1240,12 @@ void LLTextureFetchWorker::callbackDecoded(bool success)
1227 1240
1228bool LLTextureFetchWorker::decodeImage() 1241bool LLTextureFetchWorker::decodeImage()
1229{ 1242{
1230 llassert_always(mImageWorker); 1243 if(!mImageWorker)
1244 {
1245 //LLTextureFetchWorker is aborted, skip image decoding.
1246 return true ;
1247 }
1248
1231 bool res = true; 1249 bool res = true;
1232 if (mRawImage.isNull()) 1250 if (mRawImage.isNull())
1233 { 1251 {
@@ -1641,7 +1659,7 @@ void LLTextureFetch::sendRequestListToSimulators()
1641 S32 packet = req->mLastPacket + 1; 1659 S32 packet = req->mLastPacket + 1;
1642 gMessageSystem->nextBlockFast(_PREHASH_RequestImage); 1660 gMessageSystem->nextBlockFast(_PREHASH_RequestImage);
1643 gMessageSystem->addUUIDFast(_PREHASH_Image, req->mID); 1661 gMessageSystem->addUUIDFast(_PREHASH_Image, req->mID);
1644 gMessageSystem->addS8Fast(_PREHASH_DiscardLevel, (S8)req->mSimRequestedDiscard); 1662 gMessageSystem->addS8Fast(_PREHASH_DiscardLevel, (S8)req->mDesiredDiscard);
1645 gMessageSystem->addF32Fast(_PREHASH_DownloadPriority, req->mImagePriority); 1663 gMessageSystem->addF32Fast(_PREHASH_DownloadPriority, req->mImagePriority);
1646 gMessageSystem->addU32Fast(_PREHASH_Packet, packet); 1664 gMessageSystem->addU32Fast(_PREHASH_Packet, packet);
1647 gMessageSystem->addU8Fast(_PREHASH_Type, req->mType); 1665 gMessageSystem->addU8Fast(_PREHASH_Type, req->mType);
diff --git a/linden/indra/newview/lltexturefetch.h b/linden/indra/newview/lltexturefetch.h
index 6c7f6ba..9f12c07 100644
--- a/linden/indra/newview/lltexturefetch.h
+++ b/linden/indra/newview/lltexturefetch.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltextureview.cpp b/linden/indra/newview/lltextureview.cpp
index 49bc968..14f62dd 100644
--- a/linden/indra/newview/lltextureview.cpp
+++ b/linden/indra/newview/lltextureview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -162,7 +162,7 @@ void LLTextureBar::draw()
162 { 162 {
163 color = LLColor4::magenta; 163 color = LLColor4::magenta;
164 } 164 }
165 else if (mImagep->getDecodePriority() == 0.0f) 165 else if (mImagep->getDecodePriority() <= 0.0f)
166 { 166 {
167 color = LLColor4::grey; color[VALPHA] = .7f; 167 color = LLColor4::grey; color[VALPHA] = .7f;
168 } 168 }
@@ -247,7 +247,7 @@ void LLTextureBar::draw()
247 LLFontGL::sMonospace->renderUTF8(fetch_state_desc[state].desc, 0, title_x2, getRect().getHeight(), 247 LLFontGL::sMonospace->renderUTF8(fetch_state_desc[state].desc, 0, title_x2, getRect().getHeight(),
248 fetch_state_desc[state].color, 248 fetch_state_desc[state].color,
249 LLFontGL::LEFT, LLFontGL::TOP); 249 LLFontGL::LEFT, LLFontGL::TOP);
250 LLGLSNoTexture gls_no_texture; 250 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
251 251
252 // Draw the progress bar. 252 // Draw the progress bar.
253 S32 bar_width = 100; 253 S32 bar_width = 100;
@@ -383,9 +383,9 @@ private:
383 383
384void LLGLTexMemBar::draw() 384void LLGLTexMemBar::draw()
385{ 385{
386 S32 bound_mem = LLViewerImage::sBoundTextureMemory; 386 S32 bound_mem = (LLViewerImage::sBoundTextureMemory >> 20);
387 S32 max_bound_mem = LLViewerImage::sMaxBoundTextureMem; 387 S32 max_bound_mem = LLViewerImage::sMaxBoundTextureMem;
388 S32 total_mem = LLViewerImage::sTotalTextureMemory; 388 S32 total_mem = (LLViewerImage::sTotalTextureMemory >> 20);
389 S32 max_total_mem = LLViewerImage::sMaxTotalTextureMem; 389 S32 max_total_mem = LLViewerImage::sMaxTotalTextureMem;
390 F32 discard_bias = LLViewerImage::sDesiredDiscardBias; 390 F32 discard_bias = LLViewerImage::sDesiredDiscardBias;
391 S32 line_height = (S32)(LLFontGL::sMonospace->getLineHeight() + .5f); 391 S32 line_height = (S32)(LLFontGL::sMonospace->getLineHeight() + .5f);
@@ -396,10 +396,10 @@ void LLGLTexMemBar::draw()
396 396
397 std::string text; 397 std::string text;
398 text = llformat("GL Tot: %d/%d MB Bound: %d/%d MB Discard Bias: %.2f", 398 text = llformat("GL Tot: %d/%d MB Bound: %d/%d MB Discard Bias: %.2f",
399 total_mem/(1024*1024), 399 total_mem,
400 max_total_mem/(1024*1024), 400 max_total_mem,
401 bound_mem/(1024*1024), 401 bound_mem,
402 max_bound_mem/(1024*1024), 402 max_bound_mem,
403 discard_bias); 403 discard_bias);
404 404
405 LLFontGL::sMonospace->renderUTF8(text, 0, 0, line_height*3, 405 LLFontGL::sMonospace->renderUTF8(text, 0, 0, line_height*3,
@@ -415,7 +415,7 @@ void LLGLTexMemBar::draw()
415 415
416 F32 bar_scale = (F32)bar_width / (max_bound_mem * 1.5f); 416 F32 bar_scale = (F32)bar_width / (max_bound_mem * 1.5f);
417 417
418 LLGLSNoTexture gls_no_texture; 418 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
419 419
420 gGL.color4f(0.5f, 0.5f, 0.5f, 0.75f); 420 gGL.color4f(0.5f, 0.5f, 0.5f, 0.75f);
421 gl_rect_2d(left, top, right, bottom); 421 gl_rect_2d(left, top, right, bottom);
@@ -612,6 +612,7 @@ void LLTextureView::draw()
612 { 612 {
613 pri = imagep->getDecodePriority(); 613 pri = imagep->getDecodePriority();
614 } 614 }
615 pri = llclamp(pri, 0.0f, HIGH_PRIORITY-1.f);
615 616
616 if (sDebugImages.find(imagep) != sDebugImages.end()) 617 if (sDebugImages.find(imagep) != sDebugImages.end())
617 { 618 {
diff --git a/linden/indra/newview/lltextureview.h b/linden/indra/newview/lltextureview.h
index fd4b80d..969f5c6 100644
--- a/linden/indra/newview/lltextureview.h
+++ b/linden/indra/newview/lltextureview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltool.cpp b/linden/indra/newview/lltool.cpp
index cb0d3b1..99dbe31 100644
--- a/linden/indra/newview/lltool.cpp
+++ b/linden/indra/newview/lltool.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -42,6 +42,7 @@
42#include "lltoolfocus.h" 42#include "lltoolfocus.h"
43#include "llfocusmgr.h" 43#include "llfocusmgr.h"
44#include "llagent.h" 44#include "llagent.h"
45#include "llviewerjoystick.h"
45 46
46extern BOOL gDebugClicks; 47extern BOOL gDebugClicks;
47 48
@@ -160,6 +161,11 @@ BOOL LLTool::handleKey(KEY key, MASK mask)
160 161
161LLTool* LLTool::getOverrideTool(MASK mask) 162LLTool* LLTool::getOverrideTool(MASK mask)
162{ 163{
164 // NOTE: if in flycam mode, ALT-ZOOM camera should be disabled
165 if (LLViewerJoystick::getInstance()->getOverrideCamera())
166 {
167 return NULL;
168 }
163 if (mask & MASK_ALT) 169 if (mask & MASK_ALT)
164 { 170 {
165 return LLToolCamera::getInstance(); 171 return LLToolCamera::getInstance();
diff --git a/linden/indra/newview/lltool.h b/linden/indra/newview/lltool.h
index 2cc4ec2..cf97fb4 100644
--- a/linden/indra/newview/lltool.h
+++ b/linden/indra/newview/lltool.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolbar.cpp b/linden/indra/newview/lltoolbar.cpp
index 98ad5ff..8202191 100644
--- a/linden/indra/newview/lltoolbar.cpp
+++ b/linden/indra/newview/lltoolbar.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2002&license=viewergpl$ 6 * $LicenseInfo:firstyear=2002&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2002-2008, Linden Research, Inc. 8 * Copyright (c) 2002-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolbar.h b/linden/indra/newview/lltoolbar.h
index be0e1b4..720b9c0 100644
--- a/linden/indra/newview/lltoolbar.h
+++ b/linden/indra/newview/lltoolbar.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolbrush.cpp b/linden/indra/newview/lltoolbrush.cpp
index 214d773..46b36d9 100644
--- a/linden/indra/newview/lltoolbrush.cpp
+++ b/linden/indra/newview/lltoolbrush.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -491,7 +491,7 @@ void LLToolBrushLand::renderOverlay(LLSurface& land, const LLVector3& pos_region
491 const LLVector3& pos_world) 491 const LLVector3& pos_world)
492{ 492{
493 glMatrixMode(GL_MODELVIEW); 493 glMatrixMode(GL_MODELVIEW);
494 LLGLSNoTexture gls_no_texture; 494 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
495 LLGLDepthTest mDepthTest(GL_TRUE); 495 LLGLDepthTest mDepthTest(GL_TRUE);
496 glPushMatrix(); 496 glPushMatrix();
497 gGL.color4fv(OVERLAY_COLOR.mV); 497 gGL.color4fv(OVERLAY_COLOR.mV);
@@ -503,7 +503,7 @@ void LLToolBrushLand::renderOverlay(LLSurface& land, const LLVector3& pos_region
503 S32 radioAction = gSavedSettings.getS32("RadioLandBrushAction"); 503 S32 radioAction = gSavedSettings.getS32("RadioLandBrushAction");
504 F32 force = gSavedSettings.getF32("LandBrushForce"); // .1 to 100? 504 F32 force = gSavedSettings.getF32("LandBrushForce"); // .1 to 100?
505 505
506 gGL.begin(LLVertexBuffer::LINES); 506 gGL.begin(LLRender::LINES);
507 for(S32 di = -half_edge; di <= half_edge; di++) 507 for(S32 di = -half_edge; di <= half_edge; di++)
508 { 508 {
509 if((i+di) < 0 || (i+di) >= (S32)land.mGridsPerEdge) continue; 509 if((i+di) < 0 || (i+di) >= (S32)land.mGridsPerEdge) continue;
diff --git a/linden/indra/newview/lltoolbrush.h b/linden/indra/newview/lltoolbrush.h
index 0ba6db4..8df4b67 100644
--- a/linden/indra/newview/lltoolbrush.h
+++ b/linden/indra/newview/lltoolbrush.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolcomp.cpp b/linden/indra/newview/lltoolcomp.cpp
index 26f0bac..1453d51 100644
--- a/linden/indra/newview/lltoolcomp.cpp
+++ b/linden/indra/newview/lltoolcomp.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolcomp.h b/linden/indra/newview/lltoolcomp.h
index 0fd13fe..3718227 100644
--- a/linden/indra/newview/lltoolcomp.h
+++ b/linden/indra/newview/lltoolcomp.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltooldraganddrop.cpp b/linden/indra/newview/lltooldraganddrop.cpp
index 72ee24b..efd8060 100644
--- a/linden/indra/newview/lltooldraganddrop.cpp
+++ b/linden/indra/newview/lltooldraganddrop.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltooldraganddrop.h b/linden/indra/newview/lltooldraganddrop.h
index 7e96b81..38e8161 100644
--- a/linden/indra/newview/lltooldraganddrop.h
+++ b/linden/indra/newview/lltooldraganddrop.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolface.cpp b/linden/indra/newview/lltoolface.cpp
index 0ebb2c3..d5e4f81 100644
--- a/linden/indra/newview/lltoolface.cpp
+++ b/linden/indra/newview/lltoolface.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolface.h b/linden/indra/newview/lltoolface.h
index b9ce9a5..25c0618 100644
--- a/linden/indra/newview/lltoolface.h
+++ b/linden/indra/newview/lltoolface.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolfocus.cpp b/linden/indra/newview/lltoolfocus.cpp
index ffc1766..6141567 100644
--- a/linden/indra/newview/lltoolfocus.cpp
+++ b/linden/indra/newview/lltoolfocus.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolfocus.h b/linden/indra/newview/lltoolfocus.h
index a09cc52..31eb3a7 100644
--- a/linden/indra/newview/lltoolfocus.h
+++ b/linden/indra/newview/lltoolfocus.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolgrab.cpp b/linden/indra/newview/lltoolgrab.cpp
index 5eb688b..a6695f9 100644
--- a/linden/indra/newview/lltoolgrab.cpp
+++ b/linden/indra/newview/lltoolgrab.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolgrab.h b/linden/indra/newview/lltoolgrab.h
index 03cbcaf..d6ebde5 100644
--- a/linden/indra/newview/lltoolgrab.h
+++ b/linden/indra/newview/lltoolgrab.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolgun.cpp b/linden/indra/newview/lltoolgun.cpp
index f63e554..6d70675 100644
--- a/linden/indra/newview/lltoolgun.cpp
+++ b/linden/indra/newview/lltoolgun.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolgun.h b/linden/indra/newview/lltoolgun.h
index af8eed8..a26b896 100644
--- a/linden/indra/newview/lltoolgun.h
+++ b/linden/indra/newview/lltoolgun.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolindividual.cpp b/linden/indra/newview/lltoolindividual.cpp
index 219858d..68b0f73 100644
--- a/linden/indra/newview/lltoolindividual.cpp
+++ b/linden/indra/newview/lltoolindividual.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolindividual.h b/linden/indra/newview/lltoolindividual.h
index c0e3116..a73d664 100644
--- a/linden/indra/newview/lltoolindividual.h
+++ b/linden/indra/newview/lltoolindividual.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolmgr.cpp b/linden/indra/newview/lltoolmgr.cpp
index 89407f7..e454f62 100644
--- a/linden/indra/newview/lltoolmgr.cpp
+++ b/linden/indra/newview/lltoolmgr.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolmgr.h b/linden/indra/newview/lltoolmgr.h
index 10affff..08b2bd0 100644
--- a/linden/indra/newview/lltoolmgr.h
+++ b/linden/indra/newview/lltoolmgr.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolmorph.cpp b/linden/indra/newview/lltoolmorph.cpp
index 2fbf4ae..a23b4ce 100644
--- a/linden/indra/newview/lltoolmorph.cpp
+++ b/linden/indra/newview/lltoolmorph.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -240,6 +240,7 @@ BOOL LLVisualParamHint::render()
240 } 240 }
241 avatarp->setVisualParamWeight(mVisualParam, mLastParamWeight); 241 avatarp->setVisualParamWeight(mVisualParam, mLastParamWeight);
242 gGL.color4f(1,1,1,1); 242 gGL.color4f(1,1,1,1);
243 mTexture->setGLTextureCreated(true);
243 return TRUE; 244 return TRUE;
244} 245}
245 246
@@ -251,12 +252,12 @@ void LLVisualParamHint::draw()
251{ 252{
252 if (!mIsVisible) return; 253 if (!mIsVisible) return;
253 254
254 bindTexture(); 255 gGL.getTexUnit(0)->bind(getTexture());
255 256
256 gGL.color4f(1.f, 1.f, 1.f, 1.f); 257 gGL.color4f(1.f, 1.f, 1.f, 1.f);
257 258
258 LLGLSUIDefault gls_ui; 259 LLGLSUIDefault gls_ui;
259 gGL.begin(LLVertexBuffer::QUADS); 260 gGL.begin(LLRender::QUADS);
260 { 261 {
261 gGL.texCoord2i(0, 1); 262 gGL.texCoord2i(0, 1);
262 gGL.vertex2i(0, mHeight); 263 gGL.vertex2i(0, mHeight);
@@ -269,7 +270,7 @@ void LLVisualParamHint::draw()
269 } 270 }
270 gGL.end(); 271 gGL.end();
271 272
272 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 273 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
273} 274}
274 275
275//----------------------------------------------------------------------------- 276//-----------------------------------------------------------------------------
diff --git a/linden/indra/newview/lltoolmorph.h b/linden/indra/newview/lltoolmorph.h
index dbb2744..cd1c959 100644
--- a/linden/indra/newview/lltoolmorph.h
+++ b/linden/indra/newview/lltoolmorph.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolobjpicker.cpp b/linden/indra/newview/lltoolobjpicker.cpp
index 401c6c6..60278cb 100644
--- a/linden/indra/newview/lltoolobjpicker.cpp
+++ b/linden/indra/newview/lltoolobjpicker.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolobjpicker.h b/linden/indra/newview/lltoolobjpicker.h
index 63e272c..31fe812 100644
--- a/linden/indra/newview/lltoolobjpicker.h
+++ b/linden/indra/newview/lltoolobjpicker.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolpie.cpp b/linden/indra/newview/lltoolpie.cpp
index 63b6e34..c0d53b9 100644
--- a/linden/indra/newview/lltoolpie.cpp
+++ b/linden/indra/newview/lltoolpie.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolpie.h b/linden/indra/newview/lltoolpie.h
index f336001..62e0a7a 100644
--- a/linden/indra/newview/lltoolpie.h
+++ b/linden/indra/newview/lltoolpie.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolpipette.cpp b/linden/indra/newview/lltoolpipette.cpp
index 5bafc0a..b59ee92 100644
--- a/linden/indra/newview/lltoolpipette.cpp
+++ b/linden/indra/newview/lltoolpipette.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolpipette.h b/linden/indra/newview/lltoolpipette.h
index bb50f49..f526796 100644
--- a/linden/indra/newview/lltoolpipette.h
+++ b/linden/indra/newview/lltoolpipette.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolplacer.cpp b/linden/indra/newview/lltoolplacer.cpp
index 30347be..dda21dd 100644
--- a/linden/indra/newview/lltoolplacer.cpp
+++ b/linden/indra/newview/lltoolplacer.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -224,8 +224,8 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics )
224 // Play creation sound 224 // Play creation sound
225 if (gAudiop) 225 if (gAudiop)
226 { 226 {
227 F32 volume = gSavedSettings.getBOOL("MuteUI") ? 0.f : gSavedSettings.getF32("AudioLevelUI"); 227 gAudiop->triggerSound( LLUUID(gSavedSettings.getString("UISndObjectCreate")),
228 gAudiop->triggerSound( LLUUID(gSavedSettings.getString("UISndObjectCreate")), gAgent.getID(), volume); 228 gAgent.getID(), 1.0f, LLAudioEngine::AUDIO_TYPE_UI);
229 } 229 }
230 230
231 gMessageSystem->newMessageFast(_PREHASH_ObjectAdd); 231 gMessageSystem->newMessageFast(_PREHASH_ObjectAdd);
diff --git a/linden/indra/newview/lltoolplacer.h b/linden/indra/newview/lltoolplacer.h
index 7c3db8c..f920101 100644
--- a/linden/indra/newview/lltoolplacer.h
+++ b/linden/indra/newview/lltoolplacer.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolselect.cpp b/linden/indra/newview/lltoolselect.cpp
index d2f23ab..b4e9562 100644
--- a/linden/indra/newview/lltoolselect.cpp
+++ b/linden/indra/newview/lltoolselect.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolselect.h b/linden/indra/newview/lltoolselect.h
index d3b86f5..2ce3bf3 100644
--- a/linden/indra/newview/lltoolselect.h
+++ b/linden/indra/newview/lltoolselect.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolselectland.cpp b/linden/indra/newview/lltoolselectland.cpp
index 98d0d02..68850d0 100644
--- a/linden/indra/newview/lltoolselectland.cpp
+++ b/linden/indra/newview/lltoolselectland.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolselectland.h b/linden/indra/newview/lltoolselectland.h
index 19a86b7..a8a1dc8 100644
--- a/linden/indra/newview/lltoolselectland.h
+++ b/linden/indra/newview/lltoolselectland.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolselectrect.cpp b/linden/indra/newview/lltoolselectrect.cpp
index 26d9756..942f3dd 100644
--- a/linden/indra/newview/lltoolselectrect.cpp
+++ b/linden/indra/newview/lltoolselectrect.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -175,7 +175,7 @@ void LLToolSelectRect::draw()
175 { 175 {
176 gGL.color4f(1.f, 1.f, 0.f, 1.f); 176 gGL.color4f(1.f, 1.f, 0.f, 1.f);
177 } 177 }
178 LLGLSNoTexture gls_no_texture; 178 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
179 gl_rect_2d( 179 gl_rect_2d(
180 llmin(mDragStartX, mDragEndX), 180 llmin(mDragStartX, mDragEndX),
181 llmax(mDragStartY, mDragEndY), 181 llmax(mDragStartY, mDragEndY),
diff --git a/linden/indra/newview/lltoolselectrect.h b/linden/indra/newview/lltoolselectrect.h
index 07310ae..181b16c 100644
--- a/linden/indra/newview/lltoolselectrect.h
+++ b/linden/indra/newview/lltoolselectrect.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolview.cpp b/linden/indra/newview/lltoolview.cpp
index 561147b..e3989cd 100644
--- a/linden/indra/newview/lltoolview.cpp
+++ b/linden/indra/newview/lltoolview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltoolview.h b/linden/indra/newview/lltoolview.h
index 80c9346..c909331 100644
--- a/linden/indra/newview/lltoolview.h
+++ b/linden/indra/newview/lltoolview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltracker.cpp b/linden/indra/newview/lltracker.cpp
index 8572283..bd2f659 100644
--- a/linden/indra/newview/lltracker.cpp
+++ b/linden/indra/newview/lltracker.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -445,7 +445,7 @@ void draw_shockwave(F32 center_z, F32 t, S32 steps, LLColor4 color)
445 F32 y = 0.f; 445 F32 y = 0.f;
446 446
447 LLColor4 ccol = LLColor4(1,1,1,(1.f-t)*0.25f); 447 LLColor4 ccol = LLColor4(1,1,1,(1.f-t)*0.25f);
448 gGL.begin(LLVertexBuffer::TRIANGLE_FAN); 448 gGL.begin(LLRender::TRIANGLE_FAN);
449 gGL.color4fv(ccol.mV); 449 gGL.color4fv(ccol.mV);
450 gGL.vertex3f(0.f, 0.f, center_z); 450 gGL.vertex3f(0.f, 0.f, center_z);
451 // make sure circle is complete 451 // make sure circle is complete
@@ -494,7 +494,8 @@ void LLTracker::renderBeacon(LLVector3d pos_global,
494 494
495 LLVector3 pos_agent = gAgent.getPosAgentFromGlobal(pos_global); 495 LLVector3 pos_agent = gAgent.getPosAgentFromGlobal(pos_global);
496 496
497 LLGLSTracker gls_tracker; // default - TEXTURE + CULL_FACE + LIGHTING + GL_BLEND + GL_ALPHA_TEST 497 LLGLSTracker gls_tracker; // default+ CULL_FACE + LIGHTING + GL_BLEND + GL_ALPHA_TEST
498 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
498 LLGLDisable cull_face(GL_CULL_FACE); 499 LLGLDisable cull_face(GL_CULL_FACE);
499 LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); 500 LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE);
500 501
@@ -535,7 +536,7 @@ void LLTracker::renderBeacon(LLVector3d pos_global,
535 an *= 2.f; 536 an *= 2.f;
536 an += 1.0f+dr; 537 an += 1.0f+dr;
537 538
538 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); 539 gGL.begin(LLRender::TRIANGLE_STRIP);
539 gGL.color4fv(col_edge.mV); 540 gGL.color4fv(col_edge.mV);
540 gGL.vertex3f(-x*a, -y*a, z); 541 gGL.vertex3f(-x*a, -y*a, z);
541 gGL.color4fv(col_edge_next.mV); 542 gGL.color4fv(col_edge_next.mV);
diff --git a/linden/indra/newview/lltracker.h b/linden/indra/newview/lltracker.h
index 756bc18..025b63e 100644
--- a/linden/indra/newview/lltracker.h
+++ b/linden/indra/newview/lltracker.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltrans.cpp b/linden/indra/newview/lltrans.cpp
index 9a90112..f4daf55 100644
--- a/linden/indra/newview/lltrans.cpp
+++ b/linden/indra/newview/lltrans.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lltrans.h b/linden/indra/newview/lltrans.h
index b127471..f752f1e 100644
--- a/linden/indra/newview/lltrans.h
+++ b/linden/indra/newview/lltrans.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lluiconstants.h b/linden/indra/newview/lluiconstants.h
index b3b9297..14e7a81 100644
--- a/linden/indra/newview/lluiconstants.h
+++ b/linden/indra/newview/lluiconstants.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lluploaddialog.cpp b/linden/indra/newview/lluploaddialog.cpp
index 3cceea8..b046be9 100644
--- a/linden/indra/newview/lluploaddialog.cpp
+++ b/linden/indra/newview/lluploaddialog.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lluploaddialog.h b/linden/indra/newview/lluploaddialog.h
index 130eff5..8b6a216 100644
--- a/linden/indra/newview/lluploaddialog.h
+++ b/linden/indra/newview/lluploaddialog.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llurl.cpp b/linden/indra/newview/llurl.cpp
index c4b84c3..e51d80c 100644
--- a/linden/indra/newview/llurl.cpp
+++ b/linden/indra/newview/llurl.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llurl.h b/linden/indra/newview/llurl.h
index 7aae048..d158e5a 100644
--- a/linden/indra/newview/llurl.h
+++ b/linden/indra/newview/llurl.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llurldispatcher.cpp b/linden/indra/newview/llurldispatcher.cpp
index d574ea1..bbc5c75 100644
--- a/linden/indra/newview/llurldispatcher.cpp
+++ b/linden/indra/newview/llurldispatcher.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llurldispatcher.h b/linden/indra/newview/llurldispatcher.h
index dd6ffb4..68bd841 100644
--- a/linden/indra/newview/llurldispatcher.h
+++ b/linden/indra/newview/llurldispatcher.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llurlhistory.cpp b/linden/indra/newview/llurlhistory.cpp
index c10add4..2092b0c 100644
--- a/linden/indra/newview/llurlhistory.cpp
+++ b/linden/indra/newview/llurlhistory.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llurlhistory.h b/linden/indra/newview/llurlhistory.h
index df97e19..2bffb5a 100644
--- a/linden/indra/newview/llurlhistory.h
+++ b/linden/indra/newview/llurlhistory.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llurlsimstring.cpp b/linden/indra/newview/llurlsimstring.cpp
index 03c6f84..6f1baed 100644
--- a/linden/indra/newview/llurlsimstring.cpp
+++ b/linden/indra/newview/llurlsimstring.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llurlsimstring.h b/linden/indra/newview/llurlsimstring.h
index a1c3bfc..606a727 100644
--- a/linden/indra/newview/llurlsimstring.h
+++ b/linden/indra/newview/llurlsimstring.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llurlwhitelist.cpp b/linden/indra/newview/llurlwhitelist.cpp
index a3d401b..b53f60d 100644
--- a/linden/indra/newview/llurlwhitelist.cpp
+++ b/linden/indra/newview/llurlwhitelist.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2005&license=viewergpl$ 6 * $LicenseInfo:firstyear=2005&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2005-2008, Linden Research, Inc. 8 * Copyright (c) 2005-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llurlwhitelist.h b/linden/indra/newview/llurlwhitelist.h
index 3e796f4..516049a 100644
--- a/linden/indra/newview/llurlwhitelist.h
+++ b/linden/indra/newview/llurlwhitelist.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2005&license=viewergpl$ 6 * $LicenseInfo:firstyear=2005&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2005-2008, Linden Research, Inc. 8 * Copyright (c) 2005-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lluserauth.cpp b/linden/indra/newview/lluserauth.cpp
index a9b00e1..968d489 100644
--- a/linden/indra/newview/lluserauth.cpp
+++ b/linden/indra/newview/lluserauth.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -324,17 +324,29 @@ static void parseOptionInto(
324 while(opt) 324 while(opt)
325 { 325 {
326 key.assign(XMLRPC_GetValueID(opt)); 326 key.assign(XMLRPC_GetValueID(opt));
327 //llinfos "option key: " << key << llendl; 327 //llinfos << "option key: " << key << llendl;
328 type = XMLRPC_GetValueTypeEasy(opt); 328 type = XMLRPC_GetValueTypeEasy(opt);
329 if(xmlrpc_type_string == type) 329 if(xmlrpc_type_string == type)
330 { 330 {
331 val.assign(XMLRPC_GetValueString(opt)); 331 val.assign(XMLRPC_GetValueString(opt));
332 //llinfos << "string val: " << val << llendl;
332 } 333 }
333 else if(xmlrpc_type_int == type) 334 else if(xmlrpc_type_int == type)
334 { 335 {
335 val = llformat("%d", XMLRPC_GetValueInt(opt)); 336 val = llformat("%d", XMLRPC_GetValueInt(opt));
337 //llinfos << "int val: " << val << llendl;
336 } 338 }
337 //llinfos "option val: " << val << llendl; 339 else if(xmlrpc_type_double == type)
340 {
341 val = llformat("%g", XMLRPC_GetValueDouble(opt));
342 //llinfos << "double val: " << val << llendl;
343 }
344 else
345 { // Can't understand the type
346 val = "???";
347 //llinfos << "unknown value type: " << type << llendl;
348 }
349
338 responses.insert(LLUserAuth::response_t::value_type(key, val)); 350 responses.insert(LLUserAuth::response_t::value_type(key, val));
339 opt = XMLRPC_VectorNext(row); 351 opt = XMLRPC_VectorNext(row);
340 } 352 }
diff --git a/linden/indra/newview/lluserauth.h b/linden/indra/newview/lluserauth.h
index 14321b7..7a15ff6 100644
--- a/linden/indra/newview/lluserauth.h
+++ b/linden/indra/newview/lluserauth.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvectorperfoptions.cpp b/linden/indra/newview/llvectorperfoptions.cpp
index bb2ef99..e212483 100644
--- a/linden/indra/newview/llvectorperfoptions.cpp
+++ b/linden/indra/newview/llvectorperfoptions.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvectorperfoptions.h b/linden/indra/newview/llvectorperfoptions.h
index 623cca6..fa0ae8b 100644
--- a/linden/indra/newview/llvectorperfoptions.h
+++ b/linden/indra/newview/llvectorperfoptions.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvelocitybar.cpp b/linden/indra/newview/llvelocitybar.cpp
index e8b9a74..eacfd78 100644
--- a/linden/indra/newview/llvelocitybar.cpp
+++ b/linden/indra/newview/llvelocitybar.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -63,7 +63,7 @@ void LLVelocityBar::draw()
63 // Set bar color 63 // Set bar color
64 // 64 //
65 65
66 LLGLSNoTexture gls_no_texture; 66 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
67 67
68 // draw background box 68 // draw background box
69 // gGL.color4f(0.f, 0.f, 0.f, 0.3f); 69 // gGL.color4f(0.f, 0.f, 0.f, 0.3f);
diff --git a/linden/indra/newview/llvelocitybar.h b/linden/indra/newview/llvelocitybar.h
index 667ae1c..9c8221f 100644
--- a/linden/indra/newview/llvelocitybar.h
+++ b/linden/indra/newview/llvelocitybar.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewchildren.cpp b/linden/indra/newview/llviewchildren.cpp
index f96915b..2fdf434 100644
--- a/linden/indra/newview/llviewchildren.cpp
+++ b/linden/indra/newview/llviewchildren.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewchildren.h b/linden/indra/newview/llviewchildren.h
index f3d1560..3608a7e 100644
--- a/linden/indra/newview/llviewchildren.h
+++ b/linden/indra/newview/llviewchildren.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerassetstorage.cpp b/linden/indra/newview/llviewerassetstorage.cpp
index 03e5b40..60a67d8 100644
--- a/linden/indra/newview/llviewerassetstorage.cpp
+++ b/linden/indra/newview/llviewerassetstorage.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -29,9 +29,9 @@
29 * $/LicenseInfo$ 29 * $/LicenseInfo$
30 */ 30 */
31 31
32#include "llviewerprecompiledheaders.h"
32 33
33#include "linden_common.h" 34#include "linden_common.h"
34#include "llviewerprecompiledheaders.h"
35 35
36#include "llagent.h" 36#include "llagent.h"
37#include "llviewerassetstorage.h" 37#include "llviewerassetstorage.h"
diff --git a/linden/indra/newview/llviewerassetstorage.h b/linden/indra/newview/llviewerassetstorage.h
index f606098..bec72ff 100644
--- a/linden/indra/newview/llviewerassetstorage.h
+++ b/linden/indra/newview/llviewerassetstorage.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvieweraudio.cpp b/linden/indra/newview/llvieweraudio.cpp
index bc25649..fb0c59e 100644
--- a/linden/indra/newview/llvieweraudio.cpp
+++ b/linden/indra/newview/llvieweraudio.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -141,6 +141,14 @@ void audio_update_volume(bool force_update)
141 { 141 {
142 audio_update_wind(true); 142 audio_update_wind(true);
143 } 143 }
144
145 // handle secondary gains
146 gAudiop->setSecondaryGain(LLAudioEngine::AUDIO_TYPE_SFX,
147 gSavedSettings.getBOOL("MuteSounds") ? 0.f : gSavedSettings.getF32("AudioLevelSFX"));
148 gAudiop->setSecondaryGain(LLAudioEngine::AUDIO_TYPE_UI,
149 gSavedSettings.getBOOL("MuteUI") ? 0.f : gSavedSettings.getF32("AudioLevelUI"));
150 gAudiop->setSecondaryGain(LLAudioEngine::AUDIO_TYPE_AMBIENT,
151 gSavedSettings.getBOOL("MuteAmbient") ? 0.f : gSavedSettings.getF32("AudioLevelAmbient"));
144 } 152 }
145 153
146 // Streaming Music 154 // Streaming Music
diff --git a/linden/indra/newview/llvieweraudio.h b/linden/indra/newview/llvieweraudio.h
index b4a299c..8bb24a7 100644
--- a/linden/indra/newview/llvieweraudio.h
+++ b/linden/indra/newview/llvieweraudio.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerbuild.h b/linden/indra/newview/llviewerbuild.h
index 0d6a6dc..0179dc6 100644
--- a/linden/indra/newview/llviewerbuild.h
+++ b/linden/indra/newview/llviewerbuild.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewercamera.cpp b/linden/indra/newview/llviewercamera.cpp
index 32d20a9..36cce35 100644
--- a/linden/indra/newview/llviewercamera.cpp
+++ b/linden/indra/newview/llviewercamera.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewercamera.h b/linden/indra/newview/llviewercamera.h
index 2672a46..d7e8dae 100644
--- a/linden/indra/newview/llviewercamera.h
+++ b/linden/indra/newview/llviewercamera.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewercontrol.cpp b/linden/indra/newview/llviewercontrol.cpp
index a8a3b16..aa092c7 100644
--- a/linden/indra/newview/llviewercontrol.cpp
+++ b/linden/indra/newview/llviewercontrol.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2001&license=viewergpl$ 6 * $LicenseInfo:firstyear=2001&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2001-2008, Linden Research, Inc. 8 * Copyright (c) 2001-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -569,9 +569,9 @@ void settings_setup_listeners()
569 gSavedSettings.getControl("PushToTalkButton")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); 569 gSavedSettings.getControl("PushToTalkButton")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
570 gSavedSettings.getControl("PushToTalkToggle")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); 570 gSavedSettings.getControl("PushToTalkToggle")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
571 gSavedSettings.getControl("VoiceEarLocation")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); 571 gSavedSettings.getControl("VoiceEarLocation")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
572 gSavedSettings.getControl("VivoxDebugServerName")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
573 gSavedSettings.getControl("VoiceInputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); 572 gSavedSettings.getControl("VoiceInputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
574 gSavedSettings.getControl("VoiceOutputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); 573 gSavedSettings.getControl("VoiceOutputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
574 gSavedSettings.getControl("AudioLevelMic")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
575 gSavedSettings.getControl("LipSyncEnabled")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1)); 575 gSavedSettings.getControl("LipSyncEnabled")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
576 gSavedSettings.getControl("MediaDebugLevel")->getSignal()->connect(boost::bind(&handleMediaDebugLevelChanged, _1)); 576 gSavedSettings.getControl("MediaDebugLevel")->getSignal()->connect(boost::bind(&handleMediaDebugLevelChanged, _1));
577} 577}
diff --git a/linden/indra/newview/llviewercontrol.h b/linden/indra/newview/llviewercontrol.h
index 7892905..d200bc9 100644
--- a/linden/indra/newview/llviewercontrol.h
+++ b/linden/indra/newview/llviewercontrol.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerdisplay.cpp b/linden/indra/newview/llviewerdisplay.cpp
index 627609b..96591a2 100644
--- a/linden/indra/newview/llviewerdisplay.cpp
+++ b/linden/indra/newview/llviewerdisplay.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -113,7 +113,6 @@ void render_ui_3d();
113void render_ui_2d(); 113void render_ui_2d();
114void render_disconnected_background(); 114void render_disconnected_background();
115void render_hud_elements(); 115void render_hud_elements();
116void process_keystrokes_async();
117 116
118void display_startup() 117void display_startup()
119{ 118{
@@ -248,10 +247,12 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
248 247
249 gViewerWindow->checkSettings(); 248 gViewerWindow->checkSettings();
250 249
251 LLAppViewer::instance()->pingMainloopTimeout("Display:Pick"); 250 {
252 gViewerWindow->performPick(); 251 LLFastTimer ftm(LLFastTimer::FTM_PICK);
252 LLAppViewer::instance()->pingMainloopTimeout("Display:Pick");
253 gViewerWindow->performPick();
254 }
253 255
254
255 LLAppViewer::instance()->pingMainloopTimeout("Display:CheckStates"); 256 LLAppViewer::instance()->pingMainloopTimeout("Display:CheckStates");
256 LLGLState::checkStates(); 257 LLGLState::checkStates();
257 LLGLState::checkTextureChannels(); 258 LLGLState::checkTextureChannels();
@@ -373,6 +374,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
373 gAgent.setTeleportMessage( 374 gAgent.setTeleportMessage(
374 LLAgent::sTeleportProgressMessages["arriving"]); 375 LLAgent::sTeleportProgressMessages["arriving"]);
375 gImageList.mForceResetTextureStats = TRUE; 376 gImageList.mForceResetTextureStats = TRUE;
377 gAgent.resetView(TRUE, TRUE);
376 break; 378 break;
377 379
378 case LLAgent::TELEPORT_ARRIVING: 380 case LLAgent::TELEPORT_ARRIVING:
@@ -680,7 +682,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
680 glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); 682 glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
681 } 683 }
682 684
683 LLAppViewer::instance()->pingMainloopTimeout("Display:Render"); 685 LLAppViewer::instance()->pingMainloopTimeout("Display:RenderStart");
684 686
685 //// render frontmost floater opaque for occlusion culling purposes 687 //// render frontmost floater opaque for occlusion culling purposes
686 //LLFloater* frontmost_floaterp = gFloaterView->getFrontmost(); 688 //LLFloater* frontmost_floaterp = gFloaterView->getFrontmost();
@@ -690,7 +692,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
690 // glMatrixMode(GL_MODELVIEW); 692 // glMatrixMode(GL_MODELVIEW);
691 // glPushMatrix(); 693 // glPushMatrix();
692 // { 694 // {
693 // LLGLSNoTexture gls_no_texture; 695 // gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
694 696
695 // glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE); 697 // glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE);
696 // glLoadIdentity(); 698 // glLoadIdentity();
@@ -726,10 +728,13 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
726 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); 728 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
727 gGL.setColorMask(true, false); 729 gGL.setColorMask(true, false);
728 } 730 }
729 731
732 LLAppViewer::instance()->pingMainloopTimeout("Display:RenderGeom");
733
730 if (!(LLAppViewer::instance()->logoutRequestSent() && LLAppViewer::instance()->hasSavedFinalSnapshot()) 734 if (!(LLAppViewer::instance()->logoutRequestSent() && LLAppViewer::instance()->hasSavedFinalSnapshot())
731 && !gRestoreGL) 735 && !gRestoreGL)
732 { 736 {
737
733 gGL.setColorMask(true, false); 738 gGL.setColorMask(true, false);
734 LLPipeline::sUnderWaterRender = LLViewerCamera::getInstance()->cameraUnderWater() ? TRUE : FALSE; 739 LLPipeline::sUnderWaterRender = LLViewerCamera::getInstance()->cameraUnderWater() ? TRUE : FALSE;
735 gPipeline.renderGeom(*LLViewerCamera::getInstance(), TRUE); 740 gPipeline.renderGeom(*LLViewerCamera::getInstance(), TRUE);
@@ -744,9 +749,12 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
744 } 749 }
745 stop_glerror(); 750 stop_glerror();
746 } 751 }
752
753 LLAppViewer::instance()->pingMainloopTimeout("Display:RenderFlush");
747 754
748 if (to_texture) 755 if (to_texture)
749 { 756 {
757
750 gPipeline.mScreen.flush(); 758 gPipeline.mScreen.flush();
751 } 759 }
752 760
@@ -755,23 +763,20 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
755 /// Using render to texture would be faster/better, but I don't have a 763 /// Using render to texture would be faster/better, but I don't have a
756 /// grasp of their full display stack just yet. 764 /// grasp of their full display stack just yet.
757 // gPostProcess->apply(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight()); 765 // gPostProcess->apply(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight());
758 766
767 LLAppViewer::instance()->pingMainloopTimeout("Display:RenderUI");
768
759 if (!for_snapshot) 769 if (!for_snapshot)
760 { 770 {
771 gFrameStats.start(LLFrameStats::RENDER_UI);
761 render_ui(); 772 render_ui();
762 } 773 }
763 774
764 LLSpatialGroup::sNoDelete = FALSE; 775 LLSpatialGroup::sNoDelete = FALSE;
765 } 776 }
766 gFrameStats.start(LLFrameStats::RENDER_UI); 777
767 778 LLAppViewer::instance()->pingMainloopTimeout("Display:FrameStats");
768 if (gHandleKeysAsync) 779
769 {
770 LLAppViewer::instance()->pingMainloopTimeout("Display:Keystrokes");
771 process_keystrokes_async();
772 stop_glerror();
773 }
774
775 gFrameStats.start(LLFrameStats::MISC_END); 780 gFrameStats.start(LLFrameStats::MISC_END);
776 stop_glerror(); 781 stop_glerror();
777 782
@@ -997,8 +1002,8 @@ void render_ui()
997 1002
998void renderCoordinateAxes() 1003void renderCoordinateAxes()
999{ 1004{
1000 LLGLSNoTexture gls_no_texture; 1005 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1001 gGL.begin(LLVertexBuffer::LINES); 1006 gGL.begin(LLRender::LINES);
1002 gGL.color3f(1.0f, 0.0f, 0.0f); // i direction = X-Axis = red 1007 gGL.color3f(1.0f, 0.0f, 0.0f); // i direction = X-Axis = red
1003 gGL.vertex3f(0.0f, 0.0f, 0.0f); 1008 gGL.vertex3f(0.0f, 0.0f, 0.0f);
1004 gGL.vertex3f(2.0f, 0.0f, 0.0f); 1009 gGL.vertex3f(2.0f, 0.0f, 0.0f);
@@ -1048,10 +1053,10 @@ void renderCoordinateAxes()
1048void draw_axes() 1053void draw_axes()
1049{ 1054{
1050 LLGLSUIDefault gls_ui; 1055 LLGLSUIDefault gls_ui;
1051 LLGLSNoTexture gls_no_texture; 1056 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1052 // A vertical white line at origin 1057 // A vertical white line at origin
1053 LLVector3 v = gAgent.getPositionAgent(); 1058 LLVector3 v = gAgent.getPositionAgent();
1054 gGL.begin(LLVertexBuffer::LINES); 1059 gGL.begin(LLRender::LINES);
1055 gGL.color3f(1.0f, 1.0f, 1.0f); 1060 gGL.color3f(1.0f, 1.0f, 1.0f);
1056 gGL.vertex3f(0.0f, 0.0f, 0.0f); 1061 gGL.vertex3f(0.0f, 0.0f, 0.0f);
1057 gGL.vertex3f(0.0f, 0.0f, 40.0f); 1062 gGL.vertex3f(0.0f, 0.0f, 40.0f);
@@ -1194,7 +1199,7 @@ void render_disconnected_background()
1194 raw->expandToPowerOfTwo(); 1199 raw->expandToPowerOfTwo();
1195 gDisconnectedImagep->createGLTexture(0, raw); 1200 gDisconnectedImagep->createGLTexture(0, raw);
1196 gStartImageGL = gDisconnectedImagep; 1201 gStartImageGL = gDisconnectedImagep;
1197 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 1202 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1198 } 1203 }
1199 1204
1200 // Make sure the progress view always fills the entire window. 1205 // Make sure the progress view always fills the entire window.
@@ -1213,10 +1218,10 @@ void render_disconnected_background()
1213 const LLVector2& display_scale = gViewerWindow->getDisplayScale(); 1218 const LLVector2& display_scale = gViewerWindow->getDisplayScale();
1214 glScalef(display_scale.mV[VX], display_scale.mV[VY], 1.f); 1219 glScalef(display_scale.mV[VX], display_scale.mV[VY], 1.f);
1215 1220
1216 LLViewerImage::bindTexture(gDisconnectedImagep); 1221 gGL.getTexUnit(0)->bind(gDisconnectedImagep);
1217 gGL.color4f(1.f, 1.f, 1.f, 1.f); 1222 gGL.color4f(1.f, 1.f, 1.f, 1.f);
1218 gl_rect_2d_simple_tex(width, height); 1223 gl_rect_2d_simple_tex(width, height);
1219 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 1224 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1220 } 1225 }
1221 glPopMatrix(); 1226 glPopMatrix();
1222 } 1227 }
@@ -1227,43 +1232,3 @@ void display_cleanup()
1227{ 1232{
1228 gDisconnectedImagep = NULL; 1233 gDisconnectedImagep = NULL;
1229} 1234}
1230
1231void process_keystrokes_async()
1232{
1233#if LL_WINDOWS
1234 MSG msg;
1235 // look through all input messages, leaving them in the event queue
1236 while( PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE | PM_NOYIELD))
1237 {
1238 // on first mouse message, break out
1239 if (msg.message >= WM_MOUSEFIRST &&
1240 msg.message <= WM_MOUSELAST ||
1241 msg.message == WM_QUIT)
1242 {
1243 break;
1244 }
1245
1246 // this is a message we want to handle now, so remove it from the event queue
1247 PeekMessage(&msg, NULL, msg.message, msg.message, PM_REMOVE | PM_NOYIELD);
1248 // if (msg.message == WM_KEYDOWN)
1249 // {
1250 // llinfos << "Process async key down " << (U32)msg.wParam << llendl;
1251 // }
1252 TranslateMessage(&msg);
1253 DispatchMessage(&msg);
1254 }
1255
1256 // Scan keyboard for movement keys. Command keys and typing
1257 // are handled by windows callbacks. Don't do this until we're
1258 // done initializing. JC
1259 if (gViewerWindow->mWindow->getVisible()
1260 && gViewerWindow->getActive()
1261 && !gViewerWindow->mWindow->getMinimized()
1262 && LLStartUp::getStartupState() == STATE_STARTED
1263 && !gViewerWindow->getShowProgress()
1264 && !gFocusMgr.focusLocked())
1265 {
1266 gKeyboard->scanKeyboard();
1267 }
1268#endif
1269}
diff --git a/linden/indra/newview/llviewerdisplay.h b/linden/indra/newview/llviewerdisplay.h
index d4b36aa..3f954fd 100644
--- a/linden/indra/newview/llviewerdisplay.h
+++ b/linden/indra/newview/llviewerdisplay.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewergenericmessage.cpp b/linden/indra/newview/llviewergenericmessage.cpp
index c0c4592..8ee99be 100644
--- a/linden/indra/newview/llviewergenericmessage.cpp
+++ b/linden/indra/newview/llviewergenericmessage.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewergenericmessage.h b/linden/indra/newview/llviewergenericmessage.h
index b190009..27075e3 100644
--- a/linden/indra/newview/llviewergenericmessage.h
+++ b/linden/indra/newview/llviewergenericmessage.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2007&license=viewergpl$ 6 * $LicenseInfo:firstyear=2007&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2007-2008, Linden Research, Inc. 8 * Copyright (c) 2007-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewergesture.cpp b/linden/indra/newview/llviewergesture.cpp
index d99a3a8..6f18b7d 100644
--- a/linden/indra/newview/llviewergesture.cpp
+++ b/linden/indra/newview/llviewergesture.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewergesture.h b/linden/indra/newview/llviewergesture.h
index eccfc2a..9555ffd 100644
--- a/linden/indra/newview/llviewergesture.h
+++ b/linden/indra/newview/llviewergesture.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerimage.cpp b/linden/indra/newview/llviewerimage.cpp
index 0b70f51..33210cf 100644
--- a/linden/indra/newview/llviewerimage.cpp
+++ b/linden/indra/newview/llviewerimage.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -149,23 +149,13 @@ F32 texmem_middle_bound_scale = 0.925f;
149//static 149//static
150void LLViewerImage::updateClass(const F32 velocity, const F32 angular_velocity) 150void LLViewerImage::updateClass(const F32 velocity, const F32 angular_velocity)
151{ 151{
152 sBoundTextureMemory = LLImageGL::sBoundTextureMemory; 152 sBoundTextureMemory = LLImageGL::sBoundTextureMemory;//in bytes
153 sTotalTextureMemory = LLImageGL::sGlobalTextureMemory; 153 sTotalTextureMemory = LLImageGL::sGlobalTextureMemory;//in bytes
154 sMaxBoundTextureMem = gImageList.getMaxResidentTexMem(); 154 sMaxBoundTextureMem = gImageList.getMaxResidentTexMem();//in MB
155 155 sMaxTotalTextureMem = gImageList.getMaxTotalTextureMem() ;//in MB
156 sMaxTotalTextureMem = sMaxBoundTextureMem * 2; 156
157 if (sMaxBoundTextureMem > 64000000) 157 if ((sBoundTextureMemory >> 20) >= sMaxBoundTextureMem ||
158 { 158 (sTotalTextureMemory >> 20) >= sMaxTotalTextureMem)
159 sMaxTotalTextureMem -= sMaxBoundTextureMem/4;
160 }
161
162 if ((U32)sMaxTotalTextureMem > gSysMemory.getPhysicalMemoryClamped() - (U32)min_non_tex_system_mem)
163 {
164 sMaxTotalTextureMem = (S32)gSysMemory.getPhysicalMemoryClamped() - min_non_tex_system_mem;
165 }
166
167 if (sBoundTextureMemory >= sMaxBoundTextureMem ||
168 sTotalTextureMemory >= sMaxTotalTextureMem)
169 { 159 {
170 // If we are using more texture memory than we should, 160 // If we are using more texture memory than we should,
171 // scale up the desired discard level 161 // scale up the desired discard level
@@ -176,8 +166,8 @@ void LLViewerImage::updateClass(const F32 velocity, const F32 angular_velocity)
176 } 166 }
177 } 167 }
178 else if (sDesiredDiscardBias > 0.0f && 168 else if (sDesiredDiscardBias > 0.0f &&
179 sBoundTextureMemory < sMaxBoundTextureMem*texmem_lower_bound_scale && 169 (sBoundTextureMemory >> 20) < sMaxBoundTextureMem*texmem_lower_bound_scale &&
180 sTotalTextureMemory < sMaxTotalTextureMem*texmem_lower_bound_scale) 170 (sTotalTextureMemory >> 20) < sMaxTotalTextureMem*texmem_lower_bound_scale)
181 { 171 {
182 // If we are using less texture memory than we should, 172 // If we are using less texture memory than we should,
183 // scale down the desired discard level 173 // scale down the desired discard level
@@ -248,7 +238,6 @@ void LLViewerImage::init(bool firstinit)
248 mTexelsPerImage = 64.f*64.f; 238 mTexelsPerImage = 64.f*64.f;
249 mMaxVirtualSize = 0.f; 239 mMaxVirtualSize = 0.f;
250 mDiscardVirtualSize = 0.f; 240 mDiscardVirtualSize = 0.f;
251 mMaxCosAngle = -1.f;
252 mRequestedDiscardLevel = -1; 241 mRequestedDiscardLevel = -1;
253 mRequestedDownloadPriority = 0.f; 242 mRequestedDownloadPriority = 0.f;
254 mFullyLoaded = FALSE; 243 mFullyLoaded = FALSE;
@@ -432,20 +421,12 @@ BOOL LLViewerImage::createTexture(S32 usename/*= 0*/)
432 421
433//============================================================================ 422//============================================================================
434 423
435void LLViewerImage::addTextureStats(F32 pixel_area, 424void LLViewerImage::addTextureStats(F32 virtual_size) const // = 1.0
436 F32 texel_area_ratio, // = 1.0
437 F32 cos_center_angle) const // = 1.0
438{ 425{
439 F32 virtual_size = pixel_area / texel_area_ratio;
440 if (virtual_size > mMaxVirtualSize) 426 if (virtual_size > mMaxVirtualSize)
441 { 427 {
442 mMaxVirtualSize = virtual_size; 428 mMaxVirtualSize = virtual_size;
443 } 429 }
444 cos_center_angle = llclamp(cos_center_angle, -1.f, 1.f);
445 if (cos_center_angle > mMaxCosAngle)
446 {
447 mMaxCosAngle = cos_center_angle;
448 }
449} 430}
450 431
451void LLViewerImage::resetTextureStats(BOOL zero) 432void LLViewerImage::resetTextureStats(BOOL zero)
@@ -453,12 +434,10 @@ void LLViewerImage::resetTextureStats(BOOL zero)
453 if (zero) 434 if (zero)
454 { 435 {
455 mMaxVirtualSize = 0.0f; 436 mMaxVirtualSize = 0.0f;
456 mMaxCosAngle = -1.0f;
457 } 437 }
458 else if (getBoostLevel() != LLViewerImage::BOOST_SCULPTED) //don't decay sculpted prim textures 438 else
459 { 439 {
460 mMaxVirtualSize -= mMaxVirtualSize * .10f; // decay by 5%/update 440 mMaxVirtualSize -= mMaxVirtualSize * .10f; // decay by 5%/update
461 mMaxCosAngle = -1.0f;
462 } 441 }
463} 442}
464 443
@@ -477,7 +456,7 @@ void LLViewerImage::processTextureStats()
477 // If the image has not been significantly visible in a while, we don't want it 456 // If the image has not been significantly visible in a while, we don't want it
478 mDesiredDiscardLevel = llmin(mMinDesiredDiscardLevel, (S8)(MAX_DISCARD_LEVEL + 1)); 457 mDesiredDiscardLevel = llmin(mMinDesiredDiscardLevel, (S8)(MAX_DISCARD_LEVEL + 1));
479 } 458 }
480 else if ((!mFullWidth && !mWidth) || (!mFullHeight && !mHeight)) 459 else if ((!mFullWidth && !getCurrentWidth()) || (!mFullHeight && !getCurrentHeight()))
481 { 460 {
482 mDesiredDiscardLevel = mMaxDiscardLevel; 461 mDesiredDiscardLevel = mMaxDiscardLevel;
483 } 462 }
@@ -558,7 +537,7 @@ void LLViewerImage::processTextureStats()
558 if ((sDesiredDiscardBias > 0.0f) && 537 if ((sDesiredDiscardBias > 0.0f) &&
559 (current_discard >= 0 && mDesiredDiscardLevel >= current_discard)) 538 (current_discard >= 0 && mDesiredDiscardLevel >= current_discard))
560 { 539 {
561 if ( sBoundTextureMemory > sMaxBoundTextureMem*texmem_middle_bound_scale) 540 if ( (sBoundTextureMemory >> 20) > sMaxBoundTextureMem*texmem_middle_bound_scale)
562 { 541 {
563 // Limit the amount of GL memory bound each frame 542 // Limit the amount of GL memory bound each frame
564 if (mDesiredDiscardLevel > current_discard) 543 if (mDesiredDiscardLevel > current_discard)
@@ -566,7 +545,7 @@ void LLViewerImage::processTextureStats()
566 increase_discard = TRUE; 545 increase_discard = TRUE;
567 } 546 }
568 } 547 }
569 if ( sTotalTextureMemory > sMaxTotalTextureMem*texmem_middle_bound_scale) 548 if ( (sTotalTextureMemory >> 20) > sMaxTotalTextureMem*texmem_middle_bound_scale)
570 { 549 {
571 // Only allow GL to have 2x the video card memory 550 // Only allow GL to have 2x the video card memory
572 if (!getBoundRecently()) 551 if (!getBoundRecently())
@@ -608,7 +587,7 @@ F32 LLViewerImage::calcDecodePriority()
608 F32 priority; 587 F32 priority;
609 S32 cur_discard = getDiscardLevel(); 588 S32 cur_discard = getDiscardLevel();
610 bool have_all_data = (cur_discard >= 0 && (cur_discard <= mDesiredDiscardLevel)); 589 bool have_all_data = (cur_discard >= 0 && (cur_discard <= mDesiredDiscardLevel));
611 F32 pixel_priority = fsqrtf(mMaxVirtualSize) * (1.f + mMaxCosAngle); 590 F32 pixel_priority = fsqrtf(mMaxVirtualSize);
612 const S32 MIN_NOT_VISIBLE_FRAMES = 30; // NOTE: this function is not called every frame 591 const S32 MIN_NOT_VISIBLE_FRAMES = 30; // NOTE: this function is not called every frame
613 mDecodeFrame++; 592 mDecodeFrame++;
614 if (pixel_priority > 0.f) 593 if (pixel_priority > 0.f)
@@ -648,17 +627,12 @@ F32 LLViewerImage::calcDecodePriority()
648 return mDecodePriority; 627 return mDecodePriority;
649 } 628 }
650 } 629 }
651 else if ((mBoostLevel == LLViewerImage::BOOST_SCULPTED) && !have_all_data)
652 {
653 // Sculpted images are small, treat them like they always have no data.
654 priority = 900000.f;
655 }
656 else if (cur_discard < 0) 630 else if (cur_discard < 0)
657 { 631 {
658 // We don't have any data yet, so we don't know the size of the image, treat as 1024x1024 632 // We don't have any data yet, so we don't know the size of the image, treat as 32x32
659// priority = 900000.f; 633// priority = 900000.f;
660 static const F64 log_2 = log(2.0); 634 static const F64 log_2 = log(2.0);
661 F32 desired = (F32)(log(1024.0/pixel_priority) / log_2); 635 F32 desired = (F32)(log(32.0/pixel_priority) / log_2);
662 S32 ddiscard = MAX_DISCARD_LEVEL - (S32)desired + 1; 636 S32 ddiscard = MAX_DISCARD_LEVEL - (S32)desired + 1;
663 ddiscard = llclamp(ddiscard, 1, 9); 637 ddiscard = llclamp(ddiscard, 1, 9);
664 priority = ddiscard*100000.f; 638 priority = ddiscard*100000.f;
@@ -712,14 +686,7 @@ F32 LLViewerImage::maxDecodePriority()
712void LLViewerImage::setDecodePriority(F32 priority) 686void LLViewerImage::setDecodePriority(F32 priority)
713{ 687{
714 llassert(!mInImageList); 688 llassert(!mInImageList);
715 if (priority < 0.0f) 689 mDecodePriority = priority;
716 {
717 mDecodePriority = calcDecodePriority();
718 }
719 else
720 {
721 mDecodePriority = priority;
722 }
723} 690}
724 691
725void LLViewerImage::setBoostLevel(S32 level) 692void LLViewerImage::setBoostLevel(S32 level)
@@ -776,6 +743,7 @@ bool LLViewerImage::updateFetch()
776 S32 current_discard = getDiscardLevel(); 743 S32 current_discard = getDiscardLevel();
777 S32 desired_discard = getDesiredDiscardLevel(); 744 S32 desired_discard = getDesiredDiscardLevel();
778 F32 decode_priority = getDecodePriority(); 745 F32 decode_priority = getDecodePriority();
746 decode_priority = llmax(decode_priority, 0.0f);
779 747
780 if (mIsFetching) 748 if (mIsFetching)
781 { 749 {
@@ -793,7 +761,7 @@ bool LLViewerImage::updateFetch()
793 else 761 else
794 { 762 {
795 mFetchState = LLAppViewer::getTextureFetch()->getFetchState(mID, mDownloadProgress, mRequestedDownloadPriority, 763 mFetchState = LLAppViewer::getTextureFetch()->getFetchState(mID, mDownloadProgress, mRequestedDownloadPriority,
796 mFetchPriority, mFetchDeltaTime, mRequestDeltaTime); 764 mFetchPriority, mFetchDeltaTime, mRequestDeltaTime);
797 } 765 }
798 766
799 // We may have data ready regardless of whether or not we are finished (e.g. waiting on write) 767 // We may have data ready regardless of whether or not we are finished (e.g. waiting on write)
@@ -827,7 +795,7 @@ bool LLViewerImage::updateFetch()
827 795
828 if (!mIsFetching) 796 if (!mIsFetching)
829 { 797 {
830 if (mRawDiscardLevel < 0 || mRawDiscardLevel == INVALID_DISCARD_LEVEL) 798 if ((decode_priority > 0) && (mRawDiscardLevel < 0 || mRawDiscardLevel == INVALID_DISCARD_LEVEL))
831 { 799 {
832 // We finished but received no data 800 // We finished but received no data
833 if (current_discard < 0) 801 if (current_discard < 0)
@@ -850,9 +818,9 @@ bool LLViewerImage::updateFetch()
850 destroyRawImage(); 818 destroyRawImage();
851 } 819 }
852 } 820 }
853 else if (mDecodePriority >= 0.f) 821 else
854 { 822 {
855 LLAppViewer::getTextureFetch()->updateRequestPriority(mID, mDecodePriority); 823 LLAppViewer::getTextureFetch()->updateRequestPriority(mID, decode_priority);
856 } 824 }
857 } 825 }
858 826
@@ -1210,45 +1178,58 @@ void LLViewerImage::setKnownDrawSize(S32 width, S32 height)
1210} 1178}
1211 1179
1212// virtual 1180// virtual
1213BOOL LLViewerImage::bind(S32 stage) const 1181bool LLViewerImage::bindError(S32 stage) const
1214{ 1182{
1215 if (stage == -1) 1183 if (stage < 0) return false;
1184
1185 if (gNoRender)
1216 { 1186 {
1217 return TRUE; 1187 return false;
1218 } 1188 }
1189
1190 bool res = true;
1219 1191
1220 if (gNoRender) 1192 // On failure to bind, what should we set the currently bound texture to?
1193 if (mIsMissingAsset && !sMissingAssetImagep.isNull() && (this != (LLImageGL *)sMissingAssetImagep))
1221 { 1194 {
1222 return true; 1195 res = gGL.getTexUnit(stage)->bind(sMissingAssetImagep.get());
1223 } 1196 }
1224 BOOL res = bindTextureInternal(stage); 1197 if (!res && !sDefaultImagep.isNull() && (this != (LLImageGL *)sDefaultImagep))
1225 if (res)
1226 { 1198 {
1227 //llassert_always(mIsMissingAsset == FALSE); 1199 // use default if we've got it
1228 1200 res = gGL.getTexUnit(stage)->bind(sDefaultImagep.get());
1229 } 1201 }
1230 else 1202 if (!res && !sNullImagep.isNull() && (this != (LLImageGL *)sNullImagep))
1231 { 1203 {
1232 // On failure to bind, what should we set the currently bound texture to? 1204 res = gGL.getTexUnit(stage)->bind(sNullImagep.get());
1233 if (mIsMissingAsset && !sMissingAssetImagep.isNull() && (this != (LLImageGL *)sMissingAssetImagep))
1234 {
1235 res = sMissingAssetImagep->bind( stage );
1236 }
1237 if (!res && !sDefaultImagep.isNull() && (this != (LLImageGL *)sDefaultImagep))
1238 {
1239 // use default if we've got it
1240 res = sDefaultImagep->bind(stage);
1241 }
1242 if (!res && !sNullImagep.isNull() && (this != (LLImageGL *)sNullImagep))
1243 {
1244 res = sNullImagep->bind(stage);
1245 }
1246 if (!res)
1247 {
1248 llwarns << "LLViewerImage::bindTexture failed." << llendl;
1249 }
1250 stop_glerror();
1251 } 1205 }
1206 if (!res)
1207 {
1208 llwarns << "LLViewerImage::bindError failed." << llendl;
1209 }
1210 stop_glerror();
1211 return res;
1212}
1213
1214bool LLViewerImage::bindDefaultImage(S32 stage) const
1215{
1216 if (stage < 0) return false;
1217
1218 bool res = true;
1219 if (!sDefaultImagep.isNull() && (this != (LLImageGL *)sDefaultImagep))
1220 {
1221 // use default if we've got it
1222 res = gGL.getTexUnit(stage)->bind(sDefaultImagep.get());
1223 }
1224 if (!res && !sNullImagep.isNull() && (this != (LLImageGL *)sNullImagep))
1225 {
1226 res = gGL.getTexUnit(stage)->bind(sNullImagep.get());
1227 }
1228 if (!res)
1229 {
1230 llwarns << "LLViewerImage::bindError failed." << llendl;
1231 }
1232 stop_glerror();
1252 return res; 1233 return res;
1253} 1234}
1254 1235
diff --git a/linden/indra/newview/llviewerimage.h b/linden/indra/newview/llviewerimage.h
index 60d9fb8..c735cb0 100644
--- a/linden/indra/newview/llviewerimage.h
+++ b/linden/indra/newview/llviewerimage.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -86,17 +86,6 @@ public:
86 static LLViewerImage * getImage(const LLUUID &image_id); 86 static LLViewerImage * getImage(const LLUUID &image_id);
87 // lightweight wrapper for gImageList.getImage() 87 // lightweight wrapper for gImageList.getImage()
88 88
89 static BOOL bindTexture(LLImageGL* image, const U32 stage = 0)
90 {
91 if (image)
92 {
93 return image->bind(stage);
94 }
95 else
96 {
97 return sDefaultImagep->bind(stage);
98 }
99 }
100 89
101 struct Compare 90 struct Compare
102 { 91 {
@@ -189,7 +178,8 @@ public:
189 178
190 /*virtual*/ void dump(); // debug info to llinfos 179 /*virtual*/ void dump(); // debug info to llinfos
191 180
192 /*virtual*/ BOOL bind(const S32 stage = 0) const; 181 /*virtual*/ bool bindError(const S32 stage = 0) const;
182 /*virtual*/ bool bindDefaultImage(const S32 stage = 0) const;
193 183
194 void reinit(BOOL usemipmaps = TRUE); 184 void reinit(BOOL usemipmaps = TRUE);
195 185
@@ -197,27 +187,7 @@ public:
197 187
198 // New methods for determining image quality/priority 188 // New methods for determining image quality/priority
199 // texel_area_ratio is ("scaled" texel area)/(original texel area), approximately. 189 // texel_area_ratio is ("scaled" texel area)/(original texel area), approximately.
200 void addTextureStats(F32 pixel_area) const 190 void addTextureStats(F32 virtual_size) const;
201 {
202 mMaxCosAngle = 1.0f;
203 if (pixel_area > mMaxVirtualSize)
204 {
205 mMaxVirtualSize = pixel_area;
206 }
207 }
208 void addTextureStats(F32 pixel_area,
209 F32 texel_area_ratio) const
210 {
211 mMaxCosAngle = 1.0f;
212 F32 virtual_size = pixel_area / texel_area_ratio;
213 if (virtual_size > mMaxVirtualSize)
214 {
215 mMaxVirtualSize = virtual_size;
216 }
217 }
218 void addTextureStats(F32 pixel_area,
219 F32 texel_area_ratio,
220 F32 cos_center_angle) const;
221 void resetTextureStats(BOOL zero = FALSE); 191 void resetTextureStats(BOOL zero = FALSE);
222 192
223 // Process image stats to determine priority/quality requirements. 193 // Process image stats to determine priority/quality requirements.
@@ -314,7 +284,6 @@ public:
314 284
315 // Data used for calculating required image priority/quality level/decimation 285 // Data used for calculating required image priority/quality level/decimation
316 mutable F32 mMaxVirtualSize; // The largest virtual size of the image, in pixels - how much data to we need? 286 mutable F32 mMaxVirtualSize; // The largest virtual size of the image, in pixels - how much data to we need?
317 mutable F32 mMaxCosAngle; // The largest cos of the angle between camera X vector and the object
318 287
319 F32 mTexelsPerImage; // Texels per image. 288 F32 mTexelsPerImage; // Texels per image.
320 F32 mDiscardVirtualSize; // Virtual size used to calculate desired discard 289 F32 mDiscardVirtualSize; // Virtual size used to calculate desired discard
diff --git a/linden/indra/newview/llviewerimagelist.cpp b/linden/indra/newview/llviewerimagelist.cpp
index a79a76a..f6b1688 100644
--- a/linden/indra/newview/llviewerimagelist.cpp
+++ b/linden/indra/newview/llviewerimagelist.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -89,7 +89,8 @@ LLStat LLViewerImageList::sFormattedMemStat(32, TRUE);
89LLViewerImageList::LLViewerImageList() 89LLViewerImageList::LLViewerImageList()
90 : mForceResetTextureStats(FALSE), 90 : mForceResetTextureStats(FALSE),
91 mUpdateStats(FALSE), 91 mUpdateStats(FALSE),
92 mMaxResidentTexMem(0) 92 mMaxResidentTexMem(0),
93 mMaxTotalTextureMem(0)
93{ 94{
94} 95}
95 96
@@ -97,6 +98,7 @@ void LLViewerImageList::init()
97{ 98{
98 sNumImages = 0; 99 sNumImages = 0;
99 mMaxResidentTexMem = 0; 100 mMaxResidentTexMem = 0;
101 mMaxTotalTextureMem = 0 ;
100 102
101 if (gNoRender) 103 if (gNoRender)
102 { 104 {
@@ -498,10 +500,10 @@ void LLViewerImageList::updateImages(F32 max_time)
498{ 500{
499 sNumImagesStat.addValue(sNumImages); 501 sNumImagesStat.addValue(sNumImages);
500 sNumRawImagesStat.addValue(LLImageRaw::sRawImageCount); 502 sNumRawImagesStat.addValue(LLImageRaw::sRawImageCount);
501 sGLTexMemStat.addValue(LLImageGL::sGlobalTextureMemory/(1024.f*1024.f)); 503 sGLTexMemStat.addValue((F32)(LLImageGL::sGlobalTextureMemory >> 20));
502 sGLBoundMemStat.addValue(LLImageGL::sBoundTextureMemory/(1024.f*1024.f)); 504 sGLBoundMemStat.addValue((F32)(LLImageGL::sBoundTextureMemory >> 20));
503 sRawMemStat.addValue(LLImageRaw::sGlobalRawMemory/(1024.f*1024.f)); 505 sRawMemStat.addValue((F32)(LLImageRaw::sGlobalRawMemory >> 20));
504 sFormattedMemStat.addValue(LLImageFormatted::sGlobalFormattedMemory/(1024.f*1024.f)); 506 sFormattedMemStat.addValue((F32)(LLImageFormatted::sGlobalFormattedMemory >> 20));
505 507
506 updateImagesDecodePriorities(); 508 updateImagesDecodePriorities();
507 max_time -= updateImagesFetchTextures(max_time); 509 max_time -= updateImagesFetchTextures(max_time);
@@ -586,9 +588,12 @@ void LLViewerImageList::updateImagesDecodePriorities()
586 588
587 imagep->processTextureStats(); 589 imagep->processTextureStats();
588 F32 old_priority = imagep->getDecodePriority(); 590 F32 old_priority = imagep->getDecodePriority();
591 F32 old_priority_test = llmax(old_priority, 0.0f);
589 F32 decode_priority = imagep->calcDecodePriority(); 592 F32 decode_priority = imagep->calcDecodePriority();
593 F32 decode_priority_test = llmax(decode_priority, 0.0f);
590 // Ignore < 20% difference 594 // Ignore < 20% difference
591 if ((decode_priority < old_priority * .8f || decode_priority > old_priority * 1.25f)) 595 if ((decode_priority_test < old_priority_test * .8f) ||
596 (decode_priority_test > old_priority_test * 1.25f))
592 { 597 {
593 removeImageFromList(imagep); 598 removeImageFromList(imagep);
594 imagep->setDecodePriority(decode_priority); 599 imagep->setDecodePriority(decode_priority);
@@ -918,12 +923,14 @@ LLPointer<LLImageJ2C> LLViewerImageList::convertToUploadFile(LLPointer<LLImageRa
918} 923}
919 924
920const S32 MIN_VIDEO_RAM = 32; 925const S32 MIN_VIDEO_RAM = 32;
921const S32 MAX_VIDEO_RAM = 2048; 926const S32 MAX_VIDEO_RAM = 512; // 512MB max for performance reasons.
922 927
923// Returns min setting for TextureMemory (in MB) 928// Returns min setting for TextureMemory (in MB)
924S32 LLViewerImageList::getMinVideoRamSetting() 929S32 LLViewerImageList::getMinVideoRamSetting()
925{ 930{
926 return MIN_VIDEO_RAM; 931 S32 system_ram = (S32)(gSysMemory.getPhysicalMemoryClamped() >> 20);
932 //min texture mem sets to 64M if total physical mem is more than 1.5GB
933 return (system_ram > 1500) ? 64 : MIN_VIDEO_RAM;
927} 934}
928 935
929//static 936//static
@@ -956,8 +963,8 @@ S32 LLViewerImageList::getMaxVideoRamSetting(bool get_recommended)
956 max_texmem = llmin(max_texmem, (S32)(system_ram/2)); 963 max_texmem = llmin(max_texmem, (S32)(system_ram/2));
957 else 964 else
958 max_texmem = llmin(max_texmem, (S32)(system_ram)); 965 max_texmem = llmin(max_texmem, (S32)(system_ram));
959 966
960 max_texmem = llclamp(max_texmem, MIN_VIDEO_RAM, MAX_VIDEO_RAM); 967 max_texmem = llclamp(max_texmem, getMinVideoRamSetting(), MAX_VIDEO_RAM);
961 968
962 return max_texmem; 969 return max_texmem;
963} 970}
@@ -994,7 +1001,18 @@ void LLViewerImageList::updateMaxResidentTexMem(S32 mem)
994 1001
995 S32 vb_mem = mem; 1002 S32 vb_mem = mem;
996 S32 fb_mem = llmax(VIDEO_CARD_FRAMEBUFFER_MEM, vb_mem/4); 1003 S32 fb_mem = llmax(VIDEO_CARD_FRAMEBUFFER_MEM, vb_mem/4);
997 mMaxResidentTexMem = (vb_mem - fb_mem)<<20; 1004 mMaxResidentTexMem = (vb_mem - fb_mem) ; //in MB
1005
1006 mMaxTotalTextureMem = mMaxResidentTexMem * 2;
1007 if (mMaxResidentTexMem > 640)
1008 {
1009 mMaxTotalTextureMem -= (mMaxResidentTexMem >> 2);
1010 }
1011
1012 if (mMaxTotalTextureMem > (S32)(gSysMemory.getPhysicalMemoryClamped() >> 20) - 128)
1013 {
1014 mMaxTotalTextureMem = (gSysMemory.getPhysicalMemoryClamped() >> 20) - 128 ;
1015 }
998 1016
999 llinfos << "Total Video Memory set to: " << vb_mem << " MB" << llendl; 1017 llinfos << "Total Video Memory set to: " << vb_mem << " MB" << llendl;
1000 llinfos << "Available Texture Memory set to: " << (vb_mem - fb_mem) << " MB" << llendl; 1018 llinfos << "Available Texture Memory set to: " << (vb_mem - fb_mem) << " MB" << llendl;
diff --git a/linden/indra/newview/llviewerimagelist.h b/linden/indra/newview/llviewerimagelist.h
index 8aa9913..818c3ae 100644
--- a/linden/indra/newview/llviewerimagelist.h
+++ b/linden/indra/newview/llviewerimagelist.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -129,6 +129,7 @@ public:
129 void setUpdateStats(BOOL b) { mUpdateStats = b; } 129 void setUpdateStats(BOOL b) { mUpdateStats = b; }
130 130
131 S32 getMaxResidentTexMem() const { return mMaxResidentTexMem; } 131 S32 getMaxResidentTexMem() const { return mMaxResidentTexMem; }
132 S32 getMaxTotalTextureMem() const { return mMaxTotalTextureMem;}
132 S32 getNumImages() { return mImageList.size(); } 133 S32 getNumImages() { return mImageList.size(); }
133 134
134 void updateMaxResidentTexMem(S32 mem); 135 void updateMaxResidentTexMem(S32 mem);
@@ -170,6 +171,7 @@ private:
170 171
171 BOOL mUpdateStats; 172 BOOL mUpdateStats;
172 S32 mMaxResidentTexMem; 173 S32 mMaxResidentTexMem;
174 S32 mMaxTotalTextureMem;
173 LLFrameTimer mForceDecodeTimer; 175 LLFrameTimer mForceDecodeTimer;
174 176
175public: 177public:
diff --git a/linden/indra/newview/llviewerinventory.cpp b/linden/indra/newview/llviewerinventory.cpp
index 0323bb7..bff310e 100644
--- a/linden/indra/newview/llviewerinventory.cpp
+++ b/linden/indra/newview/llviewerinventory.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerinventory.h b/linden/indra/newview/llviewerinventory.h
index b39545b..a818f91 100644
--- a/linden/indra/newview/llviewerinventory.h
+++ b/linden/indra/newview/llviewerinventory.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerjoint.cpp b/linden/indra/newview/llviewerjoint.cpp
index 914448e..31def8f 100644
--- a/linden/indra/newview/llviewerjoint.cpp
+++ b/linden/indra/newview/llviewerjoint.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -149,7 +149,7 @@ void LLViewerJoint::setValid( BOOL valid, BOOL recursive )
149// //---------------------------------------------------------------- 149// //----------------------------------------------------------------
150// if (mComponents & SC_AXES) 150// if (mComponents & SC_AXES)
151// { 151// {
152// gGL.begin(LLVertexBuffer::LINES); 152// gGL.begin(LLRender::LINES);
153// gGL.color3f( 1.0f, 0.0f, 0.0f ); 153// gGL.color3f( 1.0f, 0.0f, 0.0f );
154// gGL.vertex3f( 0.0f, 0.0f, 0.0f ); 154// gGL.vertex3f( 0.0f, 0.0f, 0.0f );
155// gGL.vertex3f( 0.1f, 0.0f, 0.0f ); 155// gGL.vertex3f( 0.1f, 0.0f, 0.0f );
@@ -171,7 +171,7 @@ void LLViewerJoint::setValid( BOOL valid, BOOL recursive )
171// { 171// {
172// gGL.color3f( 1.0f, 1.0f, 0.0f ); 172// gGL.color3f( 1.0f, 1.0f, 0.0f );
173 173
174// gGL.begin(LLVertexBuffer::TRIANGLES); 174// gGL.begin(LLRender::TRIANGLES);
175 175
176// // joint top half 176// // joint top half
177// glNormal3f(nc, nc, nc); 177// glNormal3f(nc, nc, nc);
@@ -362,7 +362,7 @@ U32 LLViewerJoint::render( F32 pixelArea, BOOL first_pass )
362// // render the bone 362// // render the bone
363// gGL.color3f( 0.5f, 0.5f, 0.0f ); 363// gGL.color3f( 0.5f, 0.5f, 0.0f );
364 364
365// gGL.begin(LLVertexBuffer::TRIANGLES); 365// gGL.begin(LLRender::TRIANGLES);
366 366
367// gGL.vertex3f( length, 0.0f, 0.0f); 367// gGL.vertex3f( length, 0.0f, 0.0f);
368// gGL.vertex3f( 0.0f, boneSize, 0.0f); 368// gGL.vertex3f( 0.0f, boneSize, 0.0f);
@@ -524,14 +524,69 @@ LLViewerJointCollisionVolume::LLViewerJointCollisionVolume(const std::string &na
524void LLViewerJointCollisionVolume::renderCollision() 524void LLViewerJointCollisionVolume::renderCollision()
525{ 525{
526 updateWorldMatrix(); 526 updateWorldMatrix();
527 glMatrixMode(GL_MODELVIEW); 527
528 glPushMatrix(); 528 gGL.pushMatrix();
529 glMultMatrixf( &mXform.getWorldMatrix().mMatrix[0][0] ); 529 glMultMatrixf( &mXform.getWorldMatrix().mMatrix[0][0] );
530 530
531 glColor3f( 0.f, 0.f, 1.f ); 531 gGL.color3f( 0.f, 0.f, 1.f );
532 gSphere.render(); 532
533 gGL.begin(LLRender::LINES);
534
535 LLVector3 v[] =
536 {
537 LLVector3(1,0,0),
538 LLVector3(-1,0,0),
539 LLVector3(0,1,0),
540 LLVector3(0,-1,0),
541
542 LLVector3(0,0,-1),
543 LLVector3(0,0,1),
544 };
545
546 //sides
547 gGL.vertex3fv(v[0].mV);
548 gGL.vertex3fv(v[2].mV);
549
550 gGL.vertex3fv(v[0].mV);
551 gGL.vertex3fv(v[3].mV);
552
553 gGL.vertex3fv(v[1].mV);
554 gGL.vertex3fv(v[2].mV);
555
556 gGL.vertex3fv(v[1].mV);
557 gGL.vertex3fv(v[3].mV);
558
559
560 //top
561 gGL.vertex3fv(v[0].mV);
562 gGL.vertex3fv(v[4].mV);
563
564 gGL.vertex3fv(v[1].mV);
565 gGL.vertex3fv(v[4].mV);
566
567 gGL.vertex3fv(v[2].mV);
568 gGL.vertex3fv(v[4].mV);
569
570 gGL.vertex3fv(v[3].mV);
571 gGL.vertex3fv(v[4].mV);
572
573
574 //bottom
575 gGL.vertex3fv(v[0].mV);
576 gGL.vertex3fv(v[5].mV);
577
578 gGL.vertex3fv(v[1].mV);
579 gGL.vertex3fv(v[5].mV);
580
581 gGL.vertex3fv(v[2].mV);
582 gGL.vertex3fv(v[5].mV);
583
584 gGL.vertex3fv(v[3].mV);
585 gGL.vertex3fv(v[5].mV);
586
587 gGL.end();
533 588
534 glPopMatrix(); 589 gGL.popMatrix();
535} 590}
536 591
537LLVector3 LLViewerJointCollisionVolume::getVolumePos(LLVector3 &offset) 592LLVector3 LLViewerJointCollisionVolume::getVolumePos(LLVector3 &offset)
diff --git a/linden/indra/newview/llviewerjoint.h b/linden/indra/newview/llviewerjoint.h
index f73e705..ac63180 100644
--- a/linden/indra/newview/llviewerjoint.h
+++ b/linden/indra/newview/llviewerjoint.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerjointattachment.cpp b/linden/indra/newview/llviewerjointattachment.cpp
index 4b58361..2517250 100644
--- a/linden/indra/newview/llviewerjointattachment.cpp
+++ b/linden/indra/newview/llviewerjointattachment.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -91,7 +91,7 @@ U32 LLViewerJointAttachment::drawShape( F32 pixelArea, BOOL first_pass )
91 LLGLDisable cull_face(GL_CULL_FACE); 91 LLGLDisable cull_face(GL_CULL_FACE);
92 92
93 gGL.color4f(1.f, 1.f, 1.f, 1.f); 93 gGL.color4f(1.f, 1.f, 1.f, 1.f);
94 gGL.begin(LLVertexBuffer::QUADS); 94 gGL.begin(LLRender::QUADS);
95 { 95 {
96 gGL.vertex3f(-0.1f, 0.1f, 0.f); 96 gGL.vertex3f(-0.1f, 0.1f, 0.f);
97 gGL.vertex3f(-0.1f, -0.1f, 0.f); 97 gGL.vertex3f(-0.1f, -0.1f, 0.f);
@@ -138,6 +138,8 @@ void LLViewerJointAttachment::setupDrawable(LLDrawable* drawablep)
138 { 138 {
139 childp->mDrawable->setState(LLDrawable::USE_BACKLIGHT); 139 childp->mDrawable->setState(LLDrawable::USE_BACKLIGHT);
140 gPipeline.markTextured(childp->mDrawable); // face may need to change draw pool to/from POOL_HUD 140 gPipeline.markTextured(childp->mDrawable); // face may need to change draw pool to/from POOL_HUD
141 gPipeline.markMoved(childp->mDrawable);
142
141 if(mIsHUDAttachment) 143 if(mIsHUDAttachment)
142 { 144 {
143 for (S32 face_num = 0; face_num < childp->mDrawable->getNumFaces(); face_num++) 145 for (S32 face_num = 0; face_num < childp->mDrawable->getNumFaces(); face_num++)
diff --git a/linden/indra/newview/llviewerjointattachment.h b/linden/indra/newview/llviewerjointattachment.h
index a69c10c..dd63bfd 100644
--- a/linden/indra/newview/llviewerjointattachment.h
+++ b/linden/indra/newview/llviewerjointattachment.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerjointmesh.cpp b/linden/indra/newview/llviewerjointmesh.cpp
index b590907..be24386 100644
--- a/linden/indra/newview/llviewerjointmesh.cpp
+++ b/linden/indra/newview/llviewerjointmesh.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -537,7 +537,7 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass)
537 537
538 if (mTestImageName) 538 if (mTestImageName)
539 { 539 {
540 LLImageGL::bindExternalTexture( mTestImageName, 0, GL_TEXTURE_2D ); 540 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mTestImageName);
541 541
542 if (mIsTransparent) 542 if (mIsTransparent)
543 { 543 {
@@ -553,12 +553,12 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass)
553 { 553 {
554 if( mLayerSet->hasComposite() ) 554 if( mLayerSet->hasComposite() )
555 { 555 {
556 mLayerSet->getComposite()->bindTexture(); 556 gGL.getTexUnit(0)->bind(mLayerSet->getComposite()->getTexture());
557 } 557 }
558 else 558 else
559 { 559 {
560 llwarns << "Layerset without composite" << llendl; 560 llwarns << "Layerset without composite" << llendl;
561 gImageList.getImage(IMG_DEFAULT)->bind(); 561 gGL.getTexUnit(0)->bind(gImageList.getImage(IMG_DEFAULT));
562 } 562 }
563 } 563 }
564 else 564 else
@@ -566,13 +566,13 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass)
566 { 566 {
567 if (!mTexture->getClampS() || !mTexture->getClampT()) 567 if (!mTexture->getClampS() || !mTexture->getClampT())
568 { 568 {
569 mTexture->bind(); 569 gGL.getTexUnit(0)->bind(mTexture.get());
570 mTexture->overrideClamp (TRUE, TRUE); 570 mTexture->overrideClamp (TRUE, TRUE);
571 } 571 }
572 } 572 }
573 else 573 else
574 { 574 {
575 gImageList.getImage(IMG_DEFAULT_AVATAR)->bind(); 575 gGL.getTexUnit(0)->bind(gImageList.getImage(IMG_DEFAULT_AVATAR));
576 } 576 }
577 577
578 if (gRenderForSelect) 578 if (gRenderForSelect)
@@ -584,7 +584,7 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass)
584 } 584 }
585 else 585 else
586 { 586 {
587 LLImageGL::unbindTexture(0); 587 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
588 } 588 }
589 } 589 }
590 590
@@ -605,14 +605,14 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass)
605 } 605 }
606 } 606 }
607 607
608 mFace->mVertexBuffer->drawRange(LLVertexBuffer::TRIANGLES, start, end, count, offset); 608 mFace->mVertexBuffer->drawRange(LLRender::TRIANGLES, start, end, count, offset);
609 } 609 }
610 else 610 else
611 { 611 {
612 glPushMatrix(); 612 glPushMatrix();
613 LLMatrix4 jointToWorld = getWorldMatrix(); 613 LLMatrix4 jointToWorld = getWorldMatrix();
614 glMultMatrixf((GLfloat*)jointToWorld.mMatrix); 614 glMultMatrixf((GLfloat*)jointToWorld.mMatrix);
615 mFace->mVertexBuffer->drawRange(LLVertexBuffer::TRIANGLES, start, end, count, offset); 615 mFace->mVertexBuffer->drawRange(LLRender::TRIANGLES, start, end, count, offset);
616 glPopMatrix(); 616 glPopMatrix();
617 } 617 }
618 gPipeline.addTrianglesDrawn(count/3); 618 gPipeline.addTrianglesDrawn(count/3);
@@ -626,7 +626,7 @@ U32 LLViewerJointMesh::drawShape( F32 pixelArea, BOOL first_pass)
626 626
627 if (mTexture.notNull()) 627 if (mTexture.notNull())
628 { 628 {
629 mTexture->bind(); 629 gGL.getTexUnit(0)->bind(mTexture.get());
630 mTexture->restoreClamp(); 630 mTexture->restoreClamp();
631 } 631 }
632 632
diff --git a/linden/indra/newview/llviewerjointmesh.h b/linden/indra/newview/llviewerjointmesh.h
index fd7f550..8fdb4e5 100644
--- a/linden/indra/newview/llviewerjointmesh.h
+++ b/linden/indra/newview/llviewerjointmesh.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerjointmesh_sse.cpp b/linden/indra/newview/llviewerjointmesh_sse.cpp
index 262be47..a837bba 100644
--- a/linden/indra/newview/llviewerjointmesh_sse.cpp
+++ b/linden/indra/newview/llviewerjointmesh_sse.cpp
@@ -7,7 +7,7 @@
7 * 7 *
8 * $LicenseInfo:firstyear=2007&license=viewergpl$ 8 * $LicenseInfo:firstyear=2007&license=viewergpl$
9 * 9 *
10 * Copyright (c) 2007-2008, Linden Research, Inc. 10 * Copyright (c) 2007-2009, Linden Research, Inc.
11 * 11 *
12 * Second Life Viewer Source Code 12 * Second Life Viewer Source Code
13 * The source code in this file ("Source Code") is provided by Linden Lab 13 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerjointmesh_sse2.cpp b/linden/indra/newview/llviewerjointmesh_sse2.cpp
index ebefdba..91a8196 100644
--- a/linden/indra/newview/llviewerjointmesh_sse2.cpp
+++ b/linden/indra/newview/llviewerjointmesh_sse2.cpp
@@ -7,7 +7,7 @@
7 * 7 *
8 * $LicenseInfo:firstyear=2007&license=viewergpl$ 8 * $LicenseInfo:firstyear=2007&license=viewergpl$
9 * 9 *
10 * Copyright (c) 2007-2008, Linden Research, Inc. 10 * Copyright (c) 2007-2009, Linden Research, Inc.
11 * 11 *
12 * Second Life Viewer Source Code 12 * Second Life Viewer Source Code
13 * The source code in this file ("Source Code") is provided by Linden Lab 13 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerjointmesh_vec.cpp b/linden/indra/newview/llviewerjointmesh_vec.cpp
index 12fe597..4d0f667 100644
--- a/linden/indra/newview/llviewerjointmesh_vec.cpp
+++ b/linden/indra/newview/llviewerjointmesh_vec.cpp
@@ -7,7 +7,7 @@
7 * 7 *
8 * $LicenseInfo:firstyear=2007&license=viewergpl$ 8 * $LicenseInfo:firstyear=2007&license=viewergpl$
9 * 9 *
10 * Copyright (c) 2007-2008, Linden Research, Inc. 10 * Copyright (c) 2007-2009, Linden Research, Inc.
11 * 11 *
12 * Second Life Viewer Source Code 12 * Second Life Viewer Source Code
13 * The source code in this file ("Source Code") is provided by Linden Lab 13 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerjoystick.cpp b/linden/indra/newview/llviewerjoystick.cpp
index 2e4ce0b..721e02d 100644
--- a/linden/indra/newview/llviewerjoystick.cpp
+++ b/linden/indra/newview/llviewerjoystick.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerjoystick.h b/linden/indra/newview/llviewerjoystick.h
index 44d0dca..2c4be2a 100644
--- a/linden/indra/newview/llviewerjoystick.h
+++ b/linden/indra/newview/llviewerjoystick.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerkeyboard.cpp b/linden/indra/newview/llviewerkeyboard.cpp
index 3c2fb88..f31f48f 100644
--- a/linden/indra/newview/llviewerkeyboard.cpp
+++ b/linden/indra/newview/llviewerkeyboard.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerkeyboard.h b/linden/indra/newview/llviewerkeyboard.h
index 115bd69..4a776fc 100644
--- a/linden/indra/newview/llviewerkeyboard.h
+++ b/linden/indra/newview/llviewerkeyboard.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerlayer.cpp b/linden/indra/newview/llviewerlayer.cpp
index 0402a22..d7cad00 100644
--- a/linden/indra/newview/llviewerlayer.cpp
+++ b/linden/indra/newview/llviewerlayer.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerlayer.h b/linden/indra/newview/llviewerlayer.h
index c0fbde5..908a733 100644
--- a/linden/indra/newview/llviewerlayer.h
+++ b/linden/indra/newview/llviewerlayer.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewermedia.cpp b/linden/indra/newview/llviewermedia.cpp
index d8fcdcb..b791786 100644
--- a/linden/indra/newview/llviewermedia.cpp
+++ b/linden/indra/newview/llviewermedia.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -559,6 +559,7 @@ void LLViewerMedia::buildMediaManagerData( LLMediaManagerData* init_data )
559// static 559// static
560void LLViewerMedia::cleanupClass() 560void LLViewerMedia::cleanupClass()
561{ 561{
562 stop() ;
562 LLMediaManager::cleanupClass(); 563 LLMediaManager::cleanupClass();
563} 564}
564 565
diff --git a/linden/indra/newview/llviewermedia.h b/linden/indra/newview/llviewermedia.h
index 2a78585..d1d8d99 100644
--- a/linden/indra/newview/llviewermedia.h
+++ b/linden/indra/newview/llviewermedia.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index 486e4f1..864c6f5 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -85,6 +85,7 @@
85#include "llfloateranimpreview.h" 85#include "llfloateranimpreview.h"
86#include "llfloateravatarinfo.h" 86#include "llfloateravatarinfo.h"
87#include "llfloateravatartextures.h" 87#include "llfloateravatartextures.h"
88#include "llfloaterbeacons.h"
88#include "llfloaterbuildoptions.h" 89#include "llfloaterbuildoptions.h"
89#include "llfloaterbulkpermission.h" 90#include "llfloaterbulkpermission.h"
90#include "llfloaterbump.h" 91#include "llfloaterbump.h"
@@ -323,13 +324,6 @@ void handle_talk_to(void *userdata);
323// Debug menu 324// Debug menu
324void show_permissions_control(void*); 325void show_permissions_control(void*);
325void toggle_build_options(void* user_data); 326void toggle_build_options(void* user_data);
326#if 0 // Unused
327void handle_audio_status_1(void*);
328void handle_audio_status_2(void*);
329void handle_audio_status_3(void*);
330void handle_audio_status_4(void*);
331#endif
332void manage_landmarks(void*);
333void reload_ui(void*); 327void reload_ui(void*);
334void handle_agent_stop_moving(void*); 328void handle_agent_stop_moving(void*);
335void print_packets_lost(void*); 329void print_packets_lost(void*);
@@ -409,6 +403,7 @@ void force_error_llerror(void *);
409void force_error_bad_memory_access(void *); 403void force_error_bad_memory_access(void *);
410void force_error_infinite_loop(void *); 404void force_error_infinite_loop(void *);
411void force_error_software_exception(void *); 405void force_error_software_exception(void *);
406void force_error_driver_crash(void *);
412 407
413void handle_stopall(void*); 408void handle_stopall(void*);
414//void handle_hinge(void*); 409//void handle_hinge(void*);
@@ -935,6 +930,8 @@ void init_client_menu(LLMenuGL* menu)
935 sub->append(new LLMenuItemCallGL("Force LLError And Crash", &force_error_llerror)); 930 sub->append(new LLMenuItemCallGL("Force LLError And Crash", &force_error_llerror));
936 sub->append(new LLMenuItemCallGL("Force Bad Memory Access", &force_error_bad_memory_access)); 931 sub->append(new LLMenuItemCallGL("Force Bad Memory Access", &force_error_bad_memory_access));
937 sub->append(new LLMenuItemCallGL("Force Infinite Loop", &force_error_infinite_loop)); 932 sub->append(new LLMenuItemCallGL("Force Infinite Loop", &force_error_infinite_loop));
933 sub->append(new LLMenuItemCallGL("Force Driver Crash", &force_error_driver_crash));
934 sub->append(new LLMenuItemCallGL("Force Disconnect Viewer", &handle_disconnect_viewer));
938 // *NOTE:Mani this isn't handled yet... sub->append(new LLMenuItemCallGL("Force Software Exception", &force_error_unhandled_exception)); 935 // *NOTE:Mani this isn't handled yet... sub->append(new LLMenuItemCallGL("Force Software Exception", &force_error_unhandled_exception));
939 sub->createJumpKeys(); 936 sub->createJumpKeys();
940 menu->appendMenu(sub); 937 menu->appendMenu(sub);
@@ -1018,7 +1015,6 @@ void init_debug_ui_menu(LLMenuGL* menu)
1018{ 1015{
1019 menu->append(new LLMenuItemCallGL("SLURL Test", &handle_slurl_test)); 1016 menu->append(new LLMenuItemCallGL("SLURL Test", &handle_slurl_test));
1020 menu->append(new LLMenuItemCallGL("Editable UI", &edit_ui)); 1017 menu->append(new LLMenuItemCallGL("Editable UI", &edit_ui));
1021 menu->append(new LLMenuItemToggleGL("Async Keystrokes", &gHandleKeysAsync));
1022 menu->append(new LLMenuItemCallGL( "Dump SelectMgr", &dump_select_mgr)); 1018 menu->append(new LLMenuItemCallGL( "Dump SelectMgr", &dump_select_mgr));
1023 menu->append(new LLMenuItemCallGL( "Dump Inventory", &dump_inventory)); 1019 menu->append(new LLMenuItemCallGL( "Dump Inventory", &dump_inventory));
1024 menu->append(new LLMenuItemCallGL( "Dump Focus Holder", &handle_dump_focus, NULL, NULL, 'F', MASK_ALT | MASK_CONTROL)); 1020 menu->append(new LLMenuItemCallGL( "Dump Focus Holder", &handle_dump_focus, NULL, NULL, 'F', MASK_ALT | MASK_CONTROL));
@@ -1149,10 +1145,6 @@ void init_debug_rendering_menu(LLMenuGL* menu)
1149 &LLPipeline::toggleRenderDebugFeature, NULL, 1145 &LLPipeline::toggleRenderDebugFeature, NULL,
1150 &LLPipeline::toggleRenderDebugFeatureControl, 1146 &LLPipeline::toggleRenderDebugFeatureControl,
1151 (void*)LLPipeline::RENDER_DEBUG_FEATURE_FOG, KEY_F6, MASK_ALT|MASK_CONTROL)); 1147 (void*)LLPipeline::RENDER_DEBUG_FEATURE_FOG, KEY_F6, MASK_ALT|MASK_CONTROL));
1152 sub_menu->append(new LLMenuItemCheckGL("Palletized Textures",
1153 &LLPipeline::toggleRenderDebugFeature, NULL,
1154 &LLPipeline::toggleRenderDebugFeatureControl,
1155 (void*)LLPipeline::RENDER_DEBUG_FEATURE_PALETTE, KEY_F7, MASK_ALT|MASK_CONTROL));
1156 sub_menu->append(new LLMenuItemCheckGL("Test FRInfo", 1148 sub_menu->append(new LLMenuItemCheckGL("Test FRInfo",
1157 &LLPipeline::toggleRenderDebugFeature, NULL, 1149 &LLPipeline::toggleRenderDebugFeature, NULL,
1158 &LLPipeline::toggleRenderDebugFeatureControl, 1150 &LLPipeline::toggleRenderDebugFeatureControl,
@@ -1203,9 +1195,6 @@ void init_debug_rendering_menu(LLMenuGL* menu)
1203 sub_menu->append(new LLMenuItemCheckGL("Face Area (sqrt(A))",&LLPipeline::toggleRenderDebug, NULL, 1195 sub_menu->append(new LLMenuItemCheckGL("Face Area (sqrt(A))",&LLPipeline::toggleRenderDebug, NULL,
1204 &LLPipeline::toggleRenderDebugControl, 1196 &LLPipeline::toggleRenderDebugControl,
1205 (void*)LLPipeline::RENDER_DEBUG_FACE_AREA)); 1197 (void*)LLPipeline::RENDER_DEBUG_FACE_AREA));
1206 sub_menu->append(new LLMenuItemCheckGL("Pick Render", &LLPipeline::toggleRenderDebug, NULL,
1207 &LLPipeline::toggleRenderDebugControl,
1208 (void*)LLPipeline::RENDER_DEBUG_PICKING));
1209 sub_menu->append(new LLMenuItemCheckGL("Lights", &LLPipeline::toggleRenderDebug, NULL, 1198 sub_menu->append(new LLMenuItemCheckGL("Lights", &LLPipeline::toggleRenderDebug, NULL,
1210 &LLPipeline::toggleRenderDebugControl, 1199 &LLPipeline::toggleRenderDebugControl,
1211 (void*)LLPipeline::RENDER_DEBUG_LIGHTS)); 1200 (void*)LLPipeline::RENDER_DEBUG_LIGHTS));
@@ -1224,9 +1213,7 @@ void init_debug_rendering_menu(LLMenuGL* menu)
1224 sub_menu->append(new LLMenuItemCheckGL("Sculpt", &LLPipeline::toggleRenderDebug, NULL, 1213 sub_menu->append(new LLMenuItemCheckGL("Sculpt", &LLPipeline::toggleRenderDebug, NULL,
1225 &LLPipeline::toggleRenderDebugControl, 1214 &LLPipeline::toggleRenderDebugControl,
1226 (void*)LLPipeline::RENDER_DEBUG_SCULPTED)); 1215 (void*)LLPipeline::RENDER_DEBUG_SCULPTED));
1227 1216
1228 sub_menu->append(new LLMenuItemToggleGL("Show Select Buffer", &gDebugSelect));
1229
1230 sub_menu->append(new LLMenuItemCallGL("Vectorize Perf Test", &run_vectorize_perf_test)); 1217 sub_menu->append(new LLMenuItemCallGL("Vectorize Perf Test", &run_vectorize_perf_test));
1231 1218
1232 sub_menu = new LLMenuGL("Render Tests"); 1219 sub_menu = new LLMenuGL("Render Tests");
@@ -1771,6 +1758,23 @@ class LLViewCheckJoystickFlycam : public view_listener_t
1771 } 1758 }
1772}; 1759};
1773 1760
1761class LLViewCommunicate : public view_listener_t
1762{
1763 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
1764 {
1765 if (LLFloaterChatterBox::getInstance()->getFloaterCount() == 0)
1766 {
1767 LLFloaterMyFriends::toggleInstance();
1768 }
1769 else
1770 {
1771 LLFloaterChatterBox::toggleInstance();
1772 }
1773 return true;
1774 }
1775};
1776
1777
1774void handle_toggle_flycam() 1778void handle_toggle_flycam()
1775{ 1779{
1776 LLViewerJoystick::getInstance()->toggleFlycam(); 1780 LLViewerJoystick::getInstance()->toggleFlycam();
@@ -2239,37 +2243,71 @@ class LLAvatarDebug : public view_listener_t
2239 } 2243 }
2240}; 2244};
2241 2245
2246struct MenuCallbackData
2247{
2248 bool ban_enabled;
2249 LLUUID avatar_id;
2250};
2251
2242void callback_eject(S32 option, void* data) 2252void callback_eject(S32 option, void* data)
2243{ 2253{
2244 LLUUID* avatar_id = (LLUUID*) data; 2254 MenuCallbackData *callback_data = (MenuCallbackData*)data;
2255 if (!callback_data)
2256 {
2257 return;
2258 }
2259 if (2 == option)
2260 {
2261 // Cancle button.
2262 return;
2263 }
2264 LLUUID avatar_id = callback_data->avatar_id;
2265 bool ban_enabled = callback_data->ban_enabled;
2245 2266
2246 if (0 == option || 1 == option) 2267 if (0 == option)
2247 { 2268 {
2269 // Eject button
2248 LLMessageSystem* msg = gMessageSystem; 2270 LLMessageSystem* msg = gMessageSystem;
2249 LLViewerObject* avatar = gObjectList.findObject(*avatar_id); 2271 LLViewerObject* avatar = gObjectList.findObject(avatar_id);
2250 2272
2251 if (avatar) 2273 if (avatar)
2252 { 2274 {
2253 U32 flags = 0x0; 2275 U32 flags = 0x0;
2254 if (1 == option) 2276 msg->newMessage("EjectUser");
2255 { 2277 msg->nextBlock("AgentData");
2256 // eject and add to ban list 2278 msg->addUUID("AgentID", gAgent.getID() );
2257 flags |= 0x1; 2279 msg->addUUID("SessionID", gAgent.getSessionID() );
2258 } 2280 msg->nextBlock("Data");
2281 msg->addUUID("TargetID", avatar_id );
2282 msg->addU32("Flags", flags );
2283 msg->sendReliable( avatar->getRegion()->getHost() );
2284 }
2285 }
2286 else if (ban_enabled)
2287 {
2288 // This is tricky. It is similar to say if it is not an 'Eject' button,
2289 // and it is also not an 'Cancle' button, and ban_enabled==ture,
2290 // it should be the 'Eject and Ban' button.
2291 LLMessageSystem* msg = gMessageSystem;
2292 LLViewerObject* avatar = gObjectList.findObject(avatar_id);
2259 2293
2294 if (avatar)
2295 {
2296 U32 flags = 0x1;
2260 msg->newMessage("EjectUser"); 2297 msg->newMessage("EjectUser");
2261 msg->nextBlock("AgentData"); 2298 msg->nextBlock("AgentData");
2262 msg->addUUID("AgentID", gAgent.getID() ); 2299 msg->addUUID("AgentID", gAgent.getID() );
2263 msg->addUUID("SessionID", gAgent.getSessionID() ); 2300 msg->addUUID("SessionID", gAgent.getSessionID() );
2264 msg->nextBlock("Data"); 2301 msg->nextBlock("Data");
2265 msg->addUUID("TargetID", *avatar_id ); 2302 msg->addUUID("TargetID", avatar_id );
2266 msg->addU32("Flags", flags ); 2303 msg->addU32("Flags", flags );
2267 msg->sendReliable( avatar->getRegion()->getHost() ); 2304 msg->sendReliable( avatar->getRegion()->getHost() );
2268 } 2305 }
2269 } 2306 }
2270 2307
2271 delete avatar_id; 2308
2272 avatar_id = NULL; 2309 delete callback_data;
2310 callback_data = NULL;
2273} 2311}
2274 2312
2275class LLAvatarEject : public view_listener_t 2313class LLAvatarEject : public view_listener_t
@@ -2279,23 +2317,50 @@ class LLAvatarEject : public view_listener_t
2279 LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() ); 2317 LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
2280 if( avatar ) 2318 if( avatar )
2281 { 2319 {
2282 LLUUID* avatar_id = new LLUUID( avatar->getID() ); 2320 MenuCallbackData *data = new MenuCallbackData;
2321 (*data).avatar_id = avatar->getID();
2283 std::string fullname = avatar->getFullname(); 2322 std::string fullname = avatar->getFullname();
2284 2323
2285 if (!fullname.empty()) 2324 const LLVector3d& pos = avatar->getPositionGlobal();
2325 LLParcel* parcel = LLViewerParcelMgr::getInstance()->selectParcelAt(pos)->getParcel();
2326
2327 if (LLViewerParcelMgr::getInstance()->isParcelOwnedByAgent(parcel,GP_LAND_MANAGE_BANNED))
2286 { 2328 {
2287 LLStringUtil::format_map_t args; 2329 (*data).ban_enabled = true;
2288 args["[AVATAR_NAME]"] = fullname; 2330 if (!fullname.empty())
2289 gViewerWindow->alertXml("EjectAvatarFullname", 2331 {
2290 args, 2332 LLStringUtil::format_map_t args;
2291 callback_eject, 2333 args["[AVATAR_NAME]"] = fullname;
2292 (void*)avatar_id); 2334 gViewerWindow->alertXml("EjectAvatarFullname",
2335 args,
2336 callback_eject,
2337 (void*)data);
2338 }
2339 else
2340 {
2341 gViewerWindow->alertXml("EjectAvatar",
2342 callback_eject,
2343 (void*)data);
2344 }
2293 } 2345 }
2294 else 2346 else
2295 { 2347 {
2296 gViewerWindow->alertXml("EjectAvatar", 2348 (*data).ban_enabled = false;
2297 callback_eject, 2349 if (!fullname.empty())
2298 (void*)avatar_id); 2350 {
2351 LLStringUtil::format_map_t args;
2352 args["[AVATAR_NAME]"] = fullname;
2353 gViewerWindow->alertXml("EjectAvatarFullnameNoBan",
2354 args,
2355 callback_eject,
2356 (void*)data);
2357 }
2358 else
2359 {
2360 gViewerWindow->alertXml("EjectAvatarNoBan",
2361 callback_eject,
2362 (void*)data);
2363 }
2299 } 2364 }
2300 } 2365 }
2301 return true; 2366 return true;
@@ -2312,12 +2377,18 @@ class LLAvatarEnableFreezeEject : public view_listener_t
2312 if (new_value) 2377 if (new_value)
2313 { 2378 {
2314 const LLVector3& pos = avatar->getPositionRegion(); 2379 const LLVector3& pos = avatar->getPositionRegion();
2380 const LLVector3d& pos_global = avatar->getPositionGlobal();
2381 LLParcel* parcel = LLViewerParcelMgr::getInstance()->selectParcelAt(pos_global)->getParcel();
2315 LLViewerRegion* region = avatar->getRegion(); 2382 LLViewerRegion* region = avatar->getRegion();
2316 new_value = (region != NULL); 2383 new_value = (region != NULL);
2317 2384
2318 if (new_value) 2385 if (new_value)
2319 { 2386 {
2320 new_value = (region->isOwnedSelf(pos) || region->isOwnedGroup(pos)); 2387 new_value = region->isOwnedSelf(pos);
2388 if (!new_value || region->isOwnedGroup(pos))
2389 {
2390 new_value = LLViewerParcelMgr::getInstance()->isParcelOwnedByAgent(parcel,GP_LAND_ADMIN);
2391 }
2321 } 2392 }
2322 } 2393 }
2323 2394
@@ -2688,33 +2759,6 @@ void process_grant_godlike_powers(LLMessageSystem* msg, void**)
2688 } 2759 }
2689} 2760}
2690 2761
2691void load_url_local_file(const std::string& file_name)
2692{
2693 if( gAgent.cameraMouselook() )
2694 {
2695 gAgent.changeCameraToDefault();
2696 }
2697
2698#if LL_DARWIN || LL_LINUX || LL_SOLARIS
2699 // MBW -- If the Mac client is in fullscreen mode, it needs to go windowed so the browser will be visible.
2700 if(gViewerWindow->mWindow->getFullscreen())
2701 {
2702 gViewerWindow->toggleFullscreen(TRUE);
2703 }
2704#endif
2705
2706 // JC - system() blocks until IE has launched.
2707 // spawn() runs asynchronously, but opens a command prompt.
2708 // ShellExecute() just opens the damn file with the default
2709 // web browser.
2710 std::string full_path = "file:///";
2711 full_path.append(gDirUtilp->getAppRODataDir());
2712 full_path.append(gDirUtilp->getDirDelimiter());
2713 full_path.append(file_name);
2714
2715 LLWeb::loadURL(full_path);
2716}
2717
2718/* 2762/*
2719class LLHaveCallingcard : public LLInventoryCollectFunctor 2763class LLHaveCallingcard : public LLInventoryCollectFunctor
2720{ 2764{
@@ -2922,63 +2966,16 @@ void show_permissions_control(void*)
2922 floaterp->mPermissions->addPermissionsData("foo3", LLUUID::null, 0); 2966 floaterp->mPermissions->addPermissionsData("foo3", LLUUID::null, 0);
2923} 2967}
2924 2968
2925#if 0 // Unused (these just modify AudioInfoPage which is not used anywhere in the code
2926void handle_audio_status_1(void*)
2927{
2928 S32 page = gSavedSettings.getS32("AudioInfoPage");
2929 if (1 == page)
2930 {
2931 page = 0;
2932 }
2933 else
2934 {
2935 page = 1;
2936 }
2937 gSavedSettings.setS32("AudioInfoPage", page);
2938}
2939
2940void handle_audio_status_2(void*)
2941{
2942 S32 page = gSavedSettings.getS32("AudioInfoPage");
2943 if (2 == page)
2944 {
2945 page = 0;
2946 }
2947 else
2948 {
2949 page = 2;
2950 }
2951 gSavedSettings.setS32("AudioInfoPage", page);
2952}
2953 2969
2954void handle_audio_status_3(void*) 2970class LLCreateLandmarkCallback : public LLInventoryCallback
2955{ 2971{
2956 S32 page = gSavedSettings.getS32("AudioInfoPage"); 2972public:
2957 if (3 == page) 2973 /*virtual*/ void fire(const LLUUID& inv_item)
2958 {
2959 page = 0;
2960 }
2961 else
2962 {
2963 page = 3;
2964 }
2965 gSavedSettings.setS32("AudioInfoPage", page);
2966}
2967
2968void handle_audio_status_4(void*)
2969{
2970 S32 page = gSavedSettings.getS32("AudioInfoPage");
2971 if (4 == page)
2972 {
2973 page = 0;
2974 }
2975 else
2976 { 2974 {
2977 page = 4; 2975 llinfos << "Created landmark with inventory id " << inv_item
2976 << llendl;
2978 } 2977 }
2979 gSavedSettings.setS32("AudioInfoPage", page); 2978};
2980}
2981#endif
2982 2979
2983void reload_ui(void *) 2980void reload_ui(void *)
2984{ 2981{
@@ -3211,26 +3208,7 @@ void reset_view_final( BOOL proceed, void* )
3211 return; 3208 return;
3212 } 3209 }
3213 3210
3214 gAgent.changeCameraToDefault(); 3211 gAgent.resetView(TRUE, TRUE);
3215
3216 if (LLViewerJoystick::getInstance()->getOverrideCamera())
3217 {
3218 handle_toggle_flycam();
3219 }
3220
3221 // reset avatar mode from eventual residual motion
3222 if (LLToolMgr::getInstance()->inBuildMode())
3223 {
3224 LLViewerJoystick::getInstance()->moveAvatar(true);
3225 }
3226
3227 gAgent.resetView(!gFloaterTools->getVisible());
3228 gFloaterTools->close();
3229
3230 gViewerWindow->showCursor();
3231
3232 // Switch back to basic toolset
3233 LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset);
3234} 3212}
3235 3213
3236class LLViewLookAtLastChatter : public view_listener_t 3214class LLViewLookAtLastChatter : public view_listener_t
@@ -4800,7 +4778,7 @@ class LLWorldCreateLandmark : public view_listener_t
4800 LLAssetType::AT_LANDMARK, 4778 LLAssetType::AT_LANDMARK,
4801 LLInventoryType::IT_LANDMARK, 4779 LLInventoryType::IT_LANDMARK,
4802 NOT_WEARABLE, PERM_ALL, 4780 NOT_WEARABLE, PERM_ALL,
4803 NULL); 4781 new LLCreateLandmarkCallback);
4804 return true; 4782 return true;
4805 } 4783 }
4806}; 4784};
@@ -5224,6 +5202,10 @@ class LLShowFloater : public view_listener_t
5224 { 5202 {
5225 LLFloaterMediaBrowser::toggle(); 5203 LLFloaterMediaBrowser::toggle();
5226 } 5204 }
5205 else if (floater_name == "beacons")
5206 {
5207 LLFloaterBeacons::toggleInstance(LLSD());
5208 }
5227 return true; 5209 return true;
5228 } 5210 }
5229}; 5211};
@@ -5239,6 +5221,10 @@ class LLFloaterVisible : public view_listener_t
5239 { 5221 {
5240 new_value = LLFloaterMyFriends::instanceVisible(0); 5222 new_value = LLFloaterMyFriends::instanceVisible(0);
5241 } 5223 }
5224 else if (floater_name == "communicate")
5225 {
5226 new_value = LLFloaterChatterBox::instanceVisible();
5227 }
5242 else if (floater_name == "toolbar") 5228 else if (floater_name == "toolbar")
5243 { 5229 {
5244 new_value = LLToolBar::visible(NULL); 5230 new_value = LLToolBar::visible(NULL);
@@ -5271,6 +5257,15 @@ class LLFloaterVisible : public view_listener_t
5271 { 5257 {
5272 new_value = LLFloaterActiveSpeakers::instanceVisible(LLSD()); 5258 new_value = LLFloaterActiveSpeakers::instanceVisible(LLSD());
5273 } 5259 }
5260 else if (floater_name == "beacons")
5261 {
5262 new_value = LLFloaterBeacons::instanceVisible(LLSD());
5263 }
5264 else if (floater_name == "inventory")
5265 {
5266 LLInventoryView* iv = LLInventoryView::getActiveInventory();
5267 new_value = (NULL != iv && TRUE == iv->getVisible());
5268 }
5274 gMenuHolder->findControl(control_name)->setValue(new_value); 5269 gMenuHolder->findControl(control_name)->setValue(new_value);
5275 return true; 5270 return true;
5276 } 5271 }
@@ -5307,37 +5302,6 @@ class LLPromptShowURL : public view_listener_t
5307 } 5302 }
5308}; 5303};
5309 5304
5310void callback_show_file(S32 option, void* data)
5311{
5312 std::string* filenamep = (std::string*)data;
5313 if (0 == option)
5314 {
5315 load_url_local_file(*filenamep);
5316 }
5317 delete filenamep;
5318}
5319
5320class LLPromptShowFile : public view_listener_t
5321{
5322 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
5323 {
5324 std::string param = userdata.asString();
5325 std::string::size_type offset = param.find(",");
5326 if (offset != param.npos)
5327 {
5328 std::string alert = param.substr(0, offset);
5329 std::string file = param.substr(offset+1);
5330 std::string* file_copy = new std::string(file);
5331 gViewerWindow->alertXml(alert, callback_show_file, file_copy);
5332 }
5333 else
5334 {
5335 llinfos << "PromptShowFile invalid parameters! Expecting \"ALERT,FILE\"." << llendl;
5336 }
5337 return true;
5338 }
5339};
5340
5341class LLShowAgentProfile : public view_listener_t 5305class LLShowAgentProfile : public view_listener_t
5342{ 5306{
5343 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 5307 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -5961,7 +5925,6 @@ namespace
5961 5925
5962void queue_actions(LLFloaterScriptQueue* q, const std::string& noscriptmsg, const std::string& nomodmsg) 5926void queue_actions(LLFloaterScriptQueue* q, const std::string& noscriptmsg, const std::string& nomodmsg)
5963{ 5927{
5964 // Apply until an object fails
5965 QueueObjects func(q); 5928 QueueObjects func(q);
5966 LLSelectMgr *mgr = LLSelectMgr::getInstance(); 5929 LLSelectMgr *mgr = LLSelectMgr::getInstance();
5967 LLObjectSelectionHandle selectHandle = mgr->getSelection(); 5930 LLObjectSelectionHandle selectHandle = mgr->getSelection();
@@ -5990,7 +5953,6 @@ void queue_actions(LLFloaterScriptQueue* q, const std::string& noscriptmsg, cons
5990 } 5953 }
5991} 5954}
5992 5955
5993
5994class LLToolsSetBulkPerms : public view_listener_t 5956class LLToolsSetBulkPerms : public view_listener_t
5995{ 5957{
5996 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 5958 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -6001,62 +5963,67 @@ class LLToolsSetBulkPerms : public view_listener_t
6001 } 5963 }
6002}; 5964};
6003 5965
5966void handle_compile_queue(std::string to_lang)
5967{
5968 LLFloaterCompileQueue* queue;
5969 if (to_lang == "mono")
5970 {
5971 queue = LLFloaterCompileQueue::create(TRUE);
5972 }
5973 else
5974 {
5975 queue = LLFloaterCompileQueue::create(FALSE);
5976 }
5977 queue_actions(queue, "CannotRecompileSelectObjectsNoScripts", "CannotRecompileSelectObjectsNoPermission");
5978}
5979
5980void handle_reset_selection(void)
5981{
5982 LLFloaterResetQueue* queue = LLFloaterResetQueue::create();
5983 queue_actions(queue, "CannotResetSelectObjectsNoScripts", "CannotResetSelectObjectsNoPermission");
5984}
5985
5986void handle_set_run_selection(void)
5987{
5988 LLFloaterRunQueue* queue = LLFloaterRunQueue::create();
5989 queue_actions(queue, "CannotSetRunningSelectObjectsNoScripts", "CannotSerRunningSelectObjectsNoPermission");
5990}
5991
5992void handle_set_not_run_selection(void)
5993{
5994 LLFloaterNotRunQueue* queue = LLFloaterNotRunQueue::create();
5995 queue_actions(queue, "CannotSetRunningNotSelectObjectsNoScripts", "CannotSerRunningNotSelectObjectsNoPermission");
5996}
6004 5997
6005class LLToolsSelectedScriptAction : public view_listener_t 5998class LLToolsSelectedScriptAction : public view_listener_t
6006{ 5999{
6007 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 6000 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
6008 { 6001 {
6009 std::string action = userdata.asString(); 6002 std::string action = userdata.asString();
6010 LLFloaterScriptQueue* queue = NULL;
6011 if (action == "compile mono") 6003 if (action == "compile mono")
6012 { 6004 {
6013 queue = LLFloaterCompileQueue::create(TRUE); 6005 handle_compile_queue("mono");
6014 } 6006 }
6015 if (action == "compile lsl") 6007 if (action == "compile lsl")
6016 { 6008 {
6017 queue = LLFloaterCompileQueue::create(FALSE); 6009 handle_compile_queue("lsl");
6018 } 6010 }
6019 else if (action == "reset") 6011 else if (action == "reset")
6020 { 6012 {
6021 queue = LLFloaterResetQueue::create(); 6013 handle_reset_selection();
6022 } 6014 }
6023 else if (action == "start") 6015 else if (action == "start")
6024 { 6016 {
6025 queue = LLFloaterRunQueue::create(); 6017 handle_set_run_selection();
6026 } 6018 }
6027 else if (action == "stop") 6019 else if (action == "stop")
6028 { 6020 {
6029 queue = LLFloaterNotRunQueue::create(); 6021 handle_set_not_run_selection();
6030 } 6022 }
6031 if (!queue)
6032 {
6033 return true;
6034 }
6035
6036 queue_actions(queue, "CannotRecompileSelectObjectsNoScripts", "CannotRecompileSelectObjectsNoPermission");
6037
6038 return true; 6023 return true;
6039 } 6024 }
6040}; 6025};
6041 6026
6042void handle_reset_selection(void*)
6043{
6044 LLFloaterResetQueue* queue = LLFloaterResetQueue::create();
6045 queue_actions(queue, "CannotResetSelectObjectsNoScripts", "CannotResetSelectObjectsNoPermission");
6046}
6047
6048void handle_set_run_selection(void*)
6049{
6050 LLFloaterRunQueue* queue = LLFloaterRunQueue::create();
6051 queue_actions(queue, "CannotSetRunningSelectObjectsNoScripts", "CannotSerRunningSelectObjectsNoPermission");
6052}
6053
6054void handle_set_not_run_selection(void*)
6055{
6056 LLFloaterNotRunQueue* queue = LLFloaterNotRunQueue::create();
6057 queue_actions(queue, "CannotSetRunningNotSelectObjectsNoScripts", "CannotSerRunningNotSelectObjectsNoPermission");
6058}
6059
6060void handle_selected_texture_info(void*) 6027void handle_selected_texture_info(void*)
6061{ 6028{
6062 for (LLObjectSelection::valid_iterator iter = LLSelectMgr::getInstance()->getSelection()->valid_begin(); 6029 for (LLObjectSelection::valid_iterator iter = LLSelectMgr::getInstance()->getSelection()->valid_begin();
@@ -6897,6 +6864,11 @@ void force_error_software_exception(void *)
6897 LLAppViewer::instance()->forceErrorSoftwareException(); 6864 LLAppViewer::instance()->forceErrorSoftwareException();
6898} 6865}
6899 6866
6867void force_error_driver_crash(void *)
6868{
6869 LLAppViewer::instance()->forceErrorDriverCrash();
6870}
6871
6900class LLToolsUseSelectionForGrid : public view_listener_t 6872class LLToolsUseSelectionForGrid : public view_listener_t
6901{ 6873{
6902 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 6874 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -7072,148 +7044,6 @@ class LLViewCheckHighlightTransparent : public view_listener_t
7072 } 7044 }
7073}; 7045};
7074 7046
7075class LLViewBeaconWidth : public view_listener_t
7076{
7077 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
7078 {
7079 std::string width = userdata.asString();
7080 if(width == "1")
7081 {
7082 gSavedSettings.setS32("DebugBeaconLineWidth", 1);
7083 }
7084 else if(width == "4")
7085 {
7086 gSavedSettings.setS32("DebugBeaconLineWidth", 4);
7087 }
7088 else if(width == "16")
7089 {
7090 gSavedSettings.setS32("DebugBeaconLineWidth", 16);
7091 }
7092 else if(width == "32")
7093 {
7094 gSavedSettings.setS32("DebugBeaconLineWidth", 32);
7095 }
7096
7097 return true;
7098 }
7099};
7100
7101
7102class LLViewToggleBeacon : public view_listener_t
7103{
7104 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
7105 {
7106 std::string beacon = userdata.asString();
7107 if (beacon == "scriptsbeacon")
7108 {
7109 LLPipeline::toggleRenderScriptedBeacons(NULL);
7110 gSavedSettings.setBOOL( "scriptsbeacon", LLPipeline::getRenderScriptedBeacons(NULL) );
7111 // toggle the other one off if it's on
7112 if (LLPipeline::getRenderScriptedBeacons(NULL) && LLPipeline::getRenderScriptedTouchBeacons(NULL))
7113 {
7114 LLPipeline::toggleRenderScriptedTouchBeacons(NULL);
7115 gSavedSettings.setBOOL( "scripttouchbeacon", LLPipeline::getRenderScriptedTouchBeacons(NULL) );
7116 }
7117 }
7118 else if (beacon == "physicalbeacon")
7119 {
7120 LLPipeline::toggleRenderPhysicalBeacons(NULL);
7121 gSavedSettings.setBOOL( "physicalbeacon", LLPipeline::getRenderPhysicalBeacons(NULL) );
7122 }
7123 else if (beacon == "soundsbeacon")
7124 {
7125 LLPipeline::toggleRenderSoundBeacons(NULL);
7126 gSavedSettings.setBOOL( "soundsbeacon", LLPipeline::getRenderSoundBeacons(NULL) );
7127 }
7128 else if (beacon == "particlesbeacon")
7129 {
7130 LLPipeline::toggleRenderParticleBeacons(NULL);
7131 gSavedSettings.setBOOL( "particlesbeacon", LLPipeline::getRenderParticleBeacons(NULL) );
7132 }
7133 else if (beacon == "scripttouchbeacon")
7134 {
7135 LLPipeline::toggleRenderScriptedTouchBeacons(NULL);
7136 gSavedSettings.setBOOL( "scripttouchbeacon", LLPipeline::getRenderScriptedTouchBeacons(NULL) );
7137 // toggle the other one off if it's on
7138 if (LLPipeline::getRenderScriptedBeacons(NULL) && LLPipeline::getRenderScriptedTouchBeacons(NULL))
7139 {
7140 LLPipeline::toggleRenderScriptedBeacons(NULL);
7141 gSavedSettings.setBOOL( "scriptsbeacon", LLPipeline::getRenderScriptedBeacons(NULL) );
7142 }
7143 }
7144 else if (beacon == "renderbeacons")
7145 {
7146 LLPipeline::toggleRenderBeacons(NULL);
7147 gSavedSettings.setBOOL( "renderbeacons", LLPipeline::getRenderBeacons(NULL) );
7148 // toggle the other one on if it's not
7149 if (!LLPipeline::getRenderBeacons(NULL) && !LLPipeline::getRenderHighlights(NULL))
7150 {
7151 LLPipeline::toggleRenderHighlights(NULL);
7152 gSavedSettings.setBOOL( "renderhighlights", LLPipeline::getRenderHighlights(NULL) );
7153 }
7154 }
7155 else if (beacon == "renderhighlights")
7156 {
7157 LLPipeline::toggleRenderHighlights(NULL);
7158 gSavedSettings.setBOOL( "renderhighlights", LLPipeline::getRenderHighlights(NULL) );
7159 // toggle the other one on if it's not
7160 if (!LLPipeline::getRenderBeacons(NULL) && !LLPipeline::getRenderHighlights(NULL))
7161 {
7162 LLPipeline::toggleRenderBeacons(NULL);
7163 gSavedSettings.setBOOL( "renderbeacons", LLPipeline::getRenderBeacons(NULL) );
7164 }
7165 }
7166
7167 return true;
7168 }
7169};
7170
7171class LLViewCheckBeaconEnabled : public view_listener_t
7172{
7173 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
7174 {
7175 std::string beacon = userdata["data"].asString();
7176 bool new_value = false;
7177 if (beacon == "scriptsbeacon")
7178 {
7179 new_value = gSavedSettings.getBOOL( "scriptsbeacon");
7180 LLPipeline::setRenderScriptedBeacons(new_value);
7181 }
7182 else if (beacon == "physicalbeacon")
7183 {
7184 new_value = gSavedSettings.getBOOL( "physicalbeacon");
7185 LLPipeline::setRenderPhysicalBeacons(new_value);
7186 }
7187 else if (beacon == "soundsbeacon")
7188 {
7189 new_value = gSavedSettings.getBOOL( "soundsbeacon");
7190 LLPipeline::setRenderSoundBeacons(new_value);
7191 }
7192 else if (beacon == "particlesbeacon")
7193 {
7194 new_value = gSavedSettings.getBOOL( "particlesbeacon");
7195 LLPipeline::setRenderParticleBeacons(new_value);
7196 }
7197 else if (beacon == "scripttouchbeacon")
7198 {
7199 new_value = gSavedSettings.getBOOL( "scripttouchbeacon");
7200 LLPipeline::setRenderScriptedTouchBeacons(new_value);
7201 }
7202 else if (beacon == "renderbeacons")
7203 {
7204 new_value = gSavedSettings.getBOOL( "renderbeacons");
7205 LLPipeline::setRenderBeacons(new_value);
7206 }
7207 else if (beacon == "renderhighlights")
7208 {
7209 new_value = gSavedSettings.getBOOL( "renderhighlights");
7210 LLPipeline::setRenderHighlights(new_value);
7211 }
7212 gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
7213 return true;
7214 }
7215};
7216
7217class LLViewToggleRenderType : public view_listener_t 7047class LLViewToggleRenderType : public view_listener_t
7218{ 7048{
7219 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 7049 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -7590,7 +7420,6 @@ class LLAdvancedCheckConsole : public view_listener_t
7590 7420
7591 7421
7592 7422
7593
7594////////////////////////// 7423//////////////////////////
7595// DUMP INFO TO CONSOLE // 7424// DUMP INFO TO CONSOLE //
7596////////////////////////// 7425//////////////////////////
@@ -7845,10 +7674,6 @@ U32 feature_from_string(std::string feature)
7845 { 7674 {
7846 return LLPipeline::RENDER_DEBUG_FEATURE_FOG; 7675 return LLPipeline::RENDER_DEBUG_FEATURE_FOG;
7847 } 7676 }
7848 else if ("palette" == feature)
7849 {
7850 return LLPipeline::RENDER_DEBUG_FEATURE_PALETTE;
7851 }
7852 else if ("fr info" == feature) 7677 else if ("fr info" == feature)
7853 { 7678 {
7854 return LLPipeline::RENDER_DEBUG_FEATURE_FR_INFO; 7679 return LLPipeline::RENDER_DEBUG_FEATURE_FR_INFO;
@@ -8314,33 +8139,6 @@ class LLAdvancedToggleEditableUI : public view_listener_t
8314 8139
8315 8140
8316 8141
8317//////////////////////
8318// ASYNC KEYSTROKES //
8319//////////////////////
8320
8321
8322class LLAdvancedToggleAsyncKeystrokes : public view_listener_t
8323{
8324 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
8325 {
8326 gHandleKeysAsync = !(gHandleKeysAsync);
8327 return true;
8328 }
8329};
8330
8331class LLAdvancedCheckAsyncKeystrokes : public view_listener_t
8332{
8333 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
8334 {
8335 bool new_value = gHandleKeysAsync;
8336 std::string control_name = userdata["control"].asString();
8337 gMenuHolder->findControl(control_name)->setValue(new_value);
8338 return true;
8339 }
8340};
8341
8342
8343
8344///////////////////// 8142/////////////////////
8345// DUMP SELECT MGR // 8143// DUMP SELECT MGR //
8346///////////////////// 8144/////////////////////
@@ -9712,8 +9510,6 @@ void initialize_menus()
9712 addMenu(new LLViewLookAtLastChatter(), "View.LookAtLastChatter"); 9510 addMenu(new LLViewLookAtLastChatter(), "View.LookAtLastChatter");
9713 addMenu(new LLViewShowHoverTips(), "View.ShowHoverTips"); 9511 addMenu(new LLViewShowHoverTips(), "View.ShowHoverTips");
9714 addMenu(new LLViewHighlightTransparent(), "View.HighlightTransparent"); 9512 addMenu(new LLViewHighlightTransparent(), "View.HighlightTransparent");
9715 addMenu(new LLViewToggleBeacon(), "View.ToggleBeacon");
9716 addMenu(new LLViewBeaconWidth(), "View.BeaconWidth");
9717 addMenu(new LLViewToggleRenderType(), "View.ToggleRenderType"); 9513 addMenu(new LLViewToggleRenderType(), "View.ToggleRenderType");
9718 addMenu(new LLViewShowHUDAttachments(), "View.ShowHUDAttachments"); 9514 addMenu(new LLViewShowHUDAttachments(), "View.ShowHUDAttachments");
9719 addMenu(new LLViewZoomOut(), "View.ZoomOut"); 9515 addMenu(new LLViewZoomOut(), "View.ZoomOut");
@@ -9728,7 +9524,6 @@ void initialize_menus()
9728 addMenu(new LLViewCheckJoystickFlycam(), "View.CheckJoystickFlycam"); 9524 addMenu(new LLViewCheckJoystickFlycam(), "View.CheckJoystickFlycam");
9729 addMenu(new LLViewCheckShowHoverTips(), "View.CheckShowHoverTips"); 9525 addMenu(new LLViewCheckShowHoverTips(), "View.CheckShowHoverTips");
9730 addMenu(new LLViewCheckHighlightTransparent(), "View.CheckHighlightTransparent"); 9526 addMenu(new LLViewCheckHighlightTransparent(), "View.CheckHighlightTransparent");
9731 addMenu(new LLViewCheckBeaconEnabled(), "View.CheckBeaconEnabled");
9732 addMenu(new LLViewCheckRenderType(), "View.CheckRenderType"); 9527 addMenu(new LLViewCheckRenderType(), "View.CheckRenderType");
9733 addMenu(new LLViewCheckHUDAttachments(), "View.CheckHUDAttachments"); 9528 addMenu(new LLViewCheckHUDAttachments(), "View.CheckHUDAttachments");
9734 9529
@@ -9867,7 +9662,6 @@ void initialize_menus()
9867 // Generic actions 9662 // Generic actions
9868 addMenu(new LLShowFloater(), "ShowFloater"); 9663 addMenu(new LLShowFloater(), "ShowFloater");
9869 addMenu(new LLPromptShowURL(), "PromptShowURL"); 9664 addMenu(new LLPromptShowURL(), "PromptShowURL");
9870 addMenu(new LLPromptShowFile(), "PromptShowFile");
9871 addMenu(new LLShowAgentProfile(), "ShowAgentProfile"); 9665 addMenu(new LLShowAgentProfile(), "ShowAgentProfile");
9872 addMenu(new LLShowAgentGroups(), "ShowAgentGroups"); 9666 addMenu(new LLShowAgentGroups(), "ShowAgentGroups");
9873 addMenu(new LLToggleControl(), "ToggleControl"); 9667 addMenu(new LLToggleControl(), "ToggleControl");
@@ -9936,8 +9730,6 @@ void initialize_menus()
9936 addMenu(new LLAdvancedSLURLTest(), "Advanced.SLURLTest"); 9730 addMenu(new LLAdvancedSLURLTest(), "Advanced.SLURLTest");
9937 addMenu(new LLAdvancedToggleEditableUI(), "Advanced.ToggleEditableUI"); 9731 addMenu(new LLAdvancedToggleEditableUI(), "Advanced.ToggleEditableUI");
9938 //addMenu(new LLAdvancedCheckEditableUI(), "Advanced.CheckEditableUI"); 9732 //addMenu(new LLAdvancedCheckEditableUI(), "Advanced.CheckEditableUI");
9939 addMenu(new LLAdvancedToggleAsyncKeystrokes(), "Advanced.ToggleAsyncKeystrokes");
9940 addMenu(new LLAdvancedCheckAsyncKeystrokes(), "Advanced.CheckAsyncKeystrokes");
9941 addMenu(new LLAdvancedDumpSelectMgr(), "Advanced.DumpSelectMgr"); 9733 addMenu(new LLAdvancedDumpSelectMgr(), "Advanced.DumpSelectMgr");
9942 addMenu(new LLAdvancedDumpInventory(), "Advanced.DumpInventory"); 9734 addMenu(new LLAdvancedDumpInventory(), "Advanced.DumpInventory");
9943 addMenu(new LLAdvancedDumpFocusHolder(), "Advanced.DumpFocusHolder"); 9735 addMenu(new LLAdvancedDumpFocusHolder(), "Advanced.DumpFocusHolder");
diff --git a/linden/indra/newview/llviewermenu.h b/linden/indra/newview/llviewermenu.h
index c2f880e..c4a88a2 100644
--- a/linden/indra/newview/llviewermenu.h
+++ b/linden/indra/newview/llviewermenu.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -50,7 +50,6 @@ void cleanup_menus();
50void show_debug_menus(); // checks for if menus should be shown first. 50void show_debug_menus(); // checks for if menus should be shown first.
51void show_context_menu( S32 x, S32 y, MASK mask ); 51void show_context_menu( S32 x, S32 y, MASK mask );
52void show_build_mode_context_menu(S32 x, S32 y, MASK mask); 52void show_build_mode_context_menu(S32 x, S32 y, MASK mask);
53void load_url_local_file(const std::string& file_name);
54BOOL enable_save_into_inventory(void*); 53BOOL enable_save_into_inventory(void*);
55void handle_reset_view(); 54void handle_reset_view();
56void handle_cut(void*); 55void handle_cut(void*);
diff --git a/linden/indra/newview/llviewermenufile.cpp b/linden/indra/newview/llviewermenufile.cpp
index 5dd760e..c998ba6 100644
--- a/linden/indra/newview/llviewermenufile.cpp
+++ b/linden/indra/newview/llviewermenufile.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -349,7 +349,8 @@ class LLFileEnableCloseWindow : public view_listener_t
349{ 349{
350 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 350 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
351 { 351 {
352 bool new_value = gFloaterView->getFocusedFloater() != NULL || gSnapshotFloaterView->getFocusedFloater() != NULL; 352 bool new_value = NULL != LLFloater::getClosableFloaterFromFocus();
353
353 // horrendously opaque, this code 354 // horrendously opaque, this code
354 gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value); 355 gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
355 return true; 356 return true;
@@ -503,7 +504,7 @@ void handle_compress_image(void*)
503 } 504 }
504 else 505 else
505 { 506 {
506 llinfos << "Compression failed: " << LLImageBase::getLastError() << llendl; 507 llinfos << "Compression failed: " << LLImage::getLastError() << llendl;
507 } 508 }
508 509
509 infile = picker.getNextFile(); 510 infile = picker.getNextFile();
@@ -554,9 +555,9 @@ void upload_new_resource(const std::string& src_filename, std::string name,
554 IMG_CODEC_BMP )) 555 IMG_CODEC_BMP ))
555 { 556 {
556 error_message = llformat( "Problem with file %s:\n\n%s\n", 557 error_message = llformat( "Problem with file %s:\n\n%s\n",
557 src_filename.c_str(), LLImageBase::getLastError().c_str()); 558 src_filename.c_str(), LLImage::getLastError().c_str());
558 args["[FILE]"] = src_filename; 559 args["[FILE]"] = src_filename;
559 args["[ERROR]"] = LLImageBase::getLastError(); 560 args["[ERROR]"] = LLImage::getLastError();
560 upload_error(error_message, "ProblemWithFile", filename, args); 561 upload_error(error_message, "ProblemWithFile", filename, args);
561 return; 562 return;
562 } 563 }
@@ -569,9 +570,9 @@ void upload_new_resource(const std::string& src_filename, std::string name,
569 IMG_CODEC_TGA )) 570 IMG_CODEC_TGA ))
570 { 571 {
571 error_message = llformat("Problem with file %s:\n\n%s\n", 572 error_message = llformat("Problem with file %s:\n\n%s\n",
572 src_filename.c_str(), LLImageBase::getLastError().c_str()); 573 src_filename.c_str(), LLImage::getLastError().c_str());
573 args["[FILE]"] = src_filename; 574 args["[FILE]"] = src_filename;
574 args["[ERROR]"] = LLImageBase::getLastError(); 575 args["[ERROR]"] = LLImage::getLastError();
575 upload_error(error_message, "ProblemWithFile", filename, args); 576 upload_error(error_message, "ProblemWithFile", filename, args);
576 return; 577 return;
577 } 578 }
@@ -584,9 +585,9 @@ void upload_new_resource(const std::string& src_filename, std::string name,
584 IMG_CODEC_JPEG )) 585 IMG_CODEC_JPEG ))
585 { 586 {
586 error_message = llformat("Problem with file %s:\n\n%s\n", 587 error_message = llformat("Problem with file %s:\n\n%s\n",
587 src_filename.c_str(), LLImageBase::getLastError().c_str()); 588 src_filename.c_str(), LLImage::getLastError().c_str());
588 args["[FILE]"] = src_filename; 589 args["[FILE]"] = src_filename;
589 args["[ERROR]"] = LLImageBase::getLastError(); 590 args["[ERROR]"] = LLImage::getLastError();
590 upload_error(error_message, "ProblemWithFile", filename, args); 591 upload_error(error_message, "ProblemWithFile", filename, args);
591 return; 592 return;
592 } 593 }
@@ -599,9 +600,9 @@ void upload_new_resource(const std::string& src_filename, std::string name,
599 IMG_CODEC_PNG )) 600 IMG_CODEC_PNG ))
600 { 601 {
601 error_message = llformat("Problem with file %s:\n\n%s\n", 602 error_message = llformat("Problem with file %s:\n\n%s\n",
602 src_filename.c_str(), LLImageBase::getLastError().c_str()); 603 src_filename.c_str(), LLImage::getLastError().c_str());
603 args["[FILE]"] = src_filename; 604 args["[FILE]"] = src_filename;
604 args["[ERROR]"] = LLImageBase::getLastError(); 605 args["[ERROR]"] = LLImage::getLastError();
605 upload_error(error_message, "ProblemWithFile", filename, args); 606 upload_error(error_message, "ProblemWithFile", filename, args);
606 return; 607 return;
607 } 608 }
@@ -930,6 +931,11 @@ void upload_new_resource(const LLTransactionID &tid, LLAssetType::EType asset_ty
930 LLAssetStorage::LLStoreAssetCallback callback, 931 LLAssetStorage::LLStoreAssetCallback callback,
931 void *userdata) 932 void *userdata)
932{ 933{
934 if(gDisconnected)
935 {
936 return ;
937 }
938
933 LLAssetID uuid = tid.makeAssetID(gAgent.getSecureSessionID()); 939 LLAssetID uuid = tid.makeAssetID(gAgent.getSecureSessionID());
934 940
935 if( LLAssetType::AT_SOUND == asset_type ) 941 if( LLAssetType::AT_SOUND == asset_type )
diff --git a/linden/indra/newview/llviewermenufile.h b/linden/indra/newview/llviewermenufile.h
index 3ac6202..1f1d5a1 100644
--- a/linden/indra/newview/llviewermenufile.h
+++ b/linden/indra/newview/llviewermenufile.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp
index 221de59..9aa44fc 100644
--- a/linden/indra/newview/llviewermessage.cpp
+++ b/linden/indra/newview/llviewermessage.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2002&license=viewergpl$ 6 * $LicenseInfo:firstyear=2002&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2002-2008, Linden Research, Inc. 8 * Copyright (c) 2002-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -204,7 +204,7 @@ struct LLFriendshipOffer
204void give_money(const LLUUID& uuid, LLViewerRegion* region, S32 amount, BOOL is_group, 204void give_money(const LLUUID& uuid, LLViewerRegion* region, S32 amount, BOOL is_group,
205 S32 trx_type, const std::string& desc) 205 S32 trx_type, const std::string& desc)
206{ 206{
207 if(0 == amount) return; 207 if(0 == amount || !region) return;
208 amount = abs(amount); 208 amount = abs(amount);
209 LL_INFOS("Messaging") << "give_money(" << uuid << "," << amount << ")"<< LL_ENDL; 209 LL_INFOS("Messaging") << "give_money(" << uuid << "," << amount << ")"<< LL_ENDL;
210 if(can_afford_transaction(amount)) 210 if(can_afford_transaction(amount))
@@ -357,7 +357,7 @@ void process_layer_data(LLMessageSystem *mesgsys, void **user_data)
357// size_t nread = fread(buffer, 1, length, fXML); 357// size_t nread = fread(buffer, 1, length, fXML);
358// if (nread < (size_t) length) 358// if (nread < (size_t) length)
359// { 359// {
360// llwarns << "Short read" << llendl; 360// LL_WARNS("Messaging") << "Short read" << LL_ENDL;
361// } 361// }
362// buffer[nread] = '\0'; 362// buffer[nread] = '\0';
363// fclose(fXML); 363// fclose(fXML);
@@ -3516,6 +3516,15 @@ void process_sim_stats(LLMessageSystem *msg, void **user_data)
3516 case LL_SIM_STAT_SIMPHYSICSMEMORY: 3516 case LL_SIM_STAT_SIMPHYSICSMEMORY:
3517 LLViewerStats::getInstance()->mPhysicsMemoryAllocated.addValue(stat_value); 3517 LLViewerStats::getInstance()->mPhysicsMemoryAllocated.addValue(stat_value);
3518 break; 3518 break;
3519 case LL_SIM_STAT_SIMSPARETIME:
3520 LLViewerStats::getInstance()->mSimSpareMsec.addValue(stat_value);
3521 break;
3522 case LL_SIM_STAT_SIMSLEEPTIME:
3523 LLViewerStats::getInstance()->mSimSleepMsec.addValue(stat_value);
3524 break;
3525 case LL_SIM_STAT_IOPUMPTIME:
3526 LLViewerStats::getInstance()->mSimPumpIOMsec.addValue(stat_value);
3527 break;
3519 default: 3528 default:
3520 // Used to be a commented out warning. 3529 // Used to be a commented out warning.
3521 LL_DEBUGS("Messaging") << "Unknown stat id" << stat_id << LL_ENDL; 3530 LL_DEBUGS("Messaging") << "Unknown stat id" << stat_id << LL_ENDL;
@@ -4728,7 +4737,7 @@ void process_teleport_local(LLMessageSystem *msg,void**)
4728 gAgent.slamLookAt(look_at); 4737 gAgent.slamLookAt(look_at);
4729 4738
4730 // likewise make sure the camera is behind the avatar 4739 // likewise make sure the camera is behind the avatar
4731 gAgent.resetView(TRUE); 4740 gAgent.resetView(TRUE, TRUE);
4732 4741
4733 // send camera update to new region 4742 // send camera update to new region
4734 gAgent.updateCamera(); 4743 gAgent.updateCamera();
diff --git a/linden/indra/newview/llviewermessage.h b/linden/indra/newview/llviewermessage.h
index a4bae57..be825ed 100644
--- a/linden/indra/newview/llviewermessage.h
+++ b/linden/indra/newview/llviewermessage.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewernetwork.cpp b/linden/indra/newview/llviewernetwork.cpp
index 9019b88..8f7cf7c 100644
--- a/linden/indra/newview/llviewernetwork.cpp
+++ b/linden/indra/newview/llviewernetwork.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewernetwork.h b/linden/indra/newview/llviewernetwork.h
index 970e2ce..6c5823c 100644
--- a/linden/indra/newview/llviewernetwork.h
+++ b/linden/indra/newview/llviewernetwork.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerobject.cpp b/linden/indra/newview/llviewerobject.cpp
index cb3afc5..b33b2bb 100644
--- a/linden/indra/newview/llviewerobject.cpp
+++ b/linden/indra/newview/llviewerobject.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -150,6 +150,8 @@ LLViewerObject *LLViewerObject::createObject(const LLUUID &id, const LLPCode pco
150 res = new LLVOGround(id, pcode, regionp); break; 150 res = new LLVOGround(id, pcode, regionp); break;
151 case LL_VO_PART_GROUP: 151 case LL_VO_PART_GROUP:
152 res = new LLVOPartGroup(id, pcode, regionp); break; 152 res = new LLVOPartGroup(id, pcode, regionp); break;
153 case LL_VO_HUD_PART_GROUP:
154 res = new LLVOHUDPartGroup(id, pcode, regionp); break;
153 case LL_VO_WL_SKY: 155 case LL_VO_WL_SKY:
154 res = new LLVOWLSky(id, pcode, regionp); break; 156 res = new LLVOWLSky(id, pcode, regionp); break;
155 default: 157 default:
@@ -159,7 +161,7 @@ LLViewerObject *LLViewerObject::createObject(const LLUUID &id, const LLPCode pco
159 return res; 161 return res;
160} 162}
161 163
162LLViewerObject::LLViewerObject(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp) 164LLViewerObject::LLViewerObject(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp, BOOL is_global)
163: LLPrimitive(), 165: LLPrimitive(),
164 mChildList(), 166 mChildList(),
165 mID(id), 167 mID(id),
@@ -201,7 +203,10 @@ LLViewerObject::LLViewerObject(const LLUUID &id, const LLPCode pcode, LLViewerRe
201 mMedia(NULL), 203 mMedia(NULL),
202 mClickAction(0) 204 mClickAction(0)
203{ 205{
204 llassert(mRegionp); 206 if(!is_global)
207 {
208 llassert(mRegionp);
209 }
205 210
206 LLPrimitive::init_primitive(pcode); 211 LLPrimitive::init_primitive(pcode);
207 212
@@ -209,7 +214,11 @@ LLViewerObject::LLViewerObject(const LLUUID &id, const LLPCode pcode, LLViewerRe
209 mLastInterpUpdateSecs = LLFrameTimer::getElapsedSeconds(); 214 mLastInterpUpdateSecs = LLFrameTimer::getElapsedSeconds();
210 215
211 mPositionRegion = LLVector3(0.f, 0.f, 0.f); 216 mPositionRegion = LLVector3(0.f, 0.f, 0.f);
212 mPositionAgent = mRegionp->getOriginAgent(); 217
218 if(!is_global)
219 {
220 mPositionAgent = mRegionp->getOriginAgent();
221 }
213 222
214 LLViewerObject::sNumObjects++; 223 LLViewerObject::sNumObjects++;
215} 224}
@@ -2763,12 +2772,6 @@ void LLViewerObject::setPixelAreaAndAngle(LLAgent &agent)
2763 2772
2764BOOL LLViewerObject::updateLOD() 2773BOOL LLViewerObject::updateLOD()
2765{ 2774{
2766 // Update volume of looping sounds
2767 if (mAudioSourcep && mAudioSourcep->isLoop())
2768 {
2769 F32 volume = mAudioGain * gSavedSettings.getF32("AudioLevelSFX");
2770 mAudioSourcep->setGain(volume);
2771 }
2772 return FALSE; 2775 return FALSE;
2773} 2776}
2774 2777
@@ -3055,28 +3058,38 @@ LLNameValue *LLViewerObject::getNVPair(const std::string& name) const
3055 3058
3056void LLViewerObject::updatePositionCaches() const 3059void LLViewerObject::updatePositionCaches() const
3057{ 3060{
3058 if (!isRoot()) 3061 if(mRegionp)
3059 {
3060 mPositionRegion = ((LLViewerObject *)getParent())->getPositionRegion() + getPosition() * getParent()->getRotation();
3061 mPositionAgent = mRegionp->getPosAgentFromRegion(mPositionRegion);
3062 }
3063 else
3064 { 3062 {
3065 mPositionRegion = getPosition(); 3063 if (!isRoot())
3066 mPositionAgent = mRegionp->getPosAgentFromRegion(mPositionRegion); 3064 {
3065 mPositionRegion = ((LLViewerObject *)getParent())->getPositionRegion() + getPosition() * getParent()->getRotation();
3066 mPositionAgent = mRegionp->getPosAgentFromRegion(mPositionRegion);
3067 }
3068 else
3069 {
3070 mPositionRegion = getPosition();
3071 mPositionAgent = mRegionp->getPosAgentFromRegion(mPositionRegion);
3072 }
3067 } 3073 }
3068} 3074}
3069 3075
3070const LLVector3d LLViewerObject::getPositionGlobal() const 3076const LLVector3d LLViewerObject::getPositionGlobal() const
3071{ 3077{
3072 LLVector3d position_global = mRegionp->getPosGlobalFromRegion(getPositionRegion()); 3078 if(mRegionp)
3073
3074 if (isAttachment())
3075 { 3079 {
3076 position_global = gAgent.getPosGlobalFromAgent(getRenderPosition()); 3080 LLVector3d position_global = mRegionp->getPosGlobalFromRegion(getPositionRegion());
3077 }
3078 3081
3079 return position_global; 3082 if (isAttachment())
3083 {
3084 position_global = gAgent.getPosGlobalFromAgent(getRenderPosition());
3085 }
3086 return position_global;
3087 }
3088 else
3089 {
3090 LLVector3d position_global(getPosition());
3091 return position_global;
3092 }
3080} 3093}
3081 3094
3082const LLVector3 &LLViewerObject::getPositionAgent() const 3095const LLVector3 &LLViewerObject::getPositionAgent() const
@@ -3398,6 +3411,7 @@ LLViewerObject* LLViewerObject::getRootEdit() const
3398 3411
3399BOOL LLViewerObject::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, 3412BOOL LLViewerObject::lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
3400 S32 face, 3413 S32 face,
3414 BOOL pick_transparent,
3401 S32* face_hit, 3415 S32* face_hit,
3402 LLVector3* intersection, 3416 LLVector3* intersection,
3403 LLVector2* tex_coord, 3417 LLVector2* tex_coord,
@@ -3407,6 +3421,20 @@ BOOL LLViewerObject::lineSegmentIntersect(const LLVector3& start, const LLVector
3407 return false; 3421 return false;
3408} 3422}
3409 3423
3424BOOL LLViewerObject::lineSegmentBoundingBox(const LLVector3& start, const LLVector3& end)
3425{
3426 if (mDrawable.isNull() || mDrawable->isDead())
3427 {
3428 return FALSE;
3429 }
3430
3431 const LLVector3* ext = mDrawable->getSpatialExtents();
3432
3433 LLVector3 center = (ext[1]+ext[0])*0.5f;
3434 LLVector3 size = (ext[1]-ext[0])*0.5f;
3435
3436 return LLLineSegmentBoxIntersect(start, end, center, size);
3437}
3410 3438
3411U8 LLViewerObject::getMediaType() const 3439U8 LLViewerObject::getMediaType() const
3412{ 3440{
@@ -4331,8 +4359,7 @@ void LLViewerObject::setAttachedSound(const LLUUID &audio_uuid, const LLUUID& ow
4331 { 4359 {
4332 BOOL queue = flags & LL_SOUND_FLAG_QUEUE; 4360 BOOL queue = flags & LL_SOUND_FLAG_QUEUE;
4333 mAudioGain = gain; 4361 mAudioGain = gain;
4334 F32 volume = gain * gSavedSettings.getF32("AudioLevelSFX"); 4362 mAudioSourcep->setGain(gain);
4335 mAudioSourcep->setGain(volume);
4336 mAudioSourcep->setLoop(flags & LL_SOUND_FLAG_LOOP); 4363 mAudioSourcep->setLoop(flags & LL_SOUND_FLAG_LOOP);
4337 mAudioSourcep->setSyncMaster(flags & LL_SOUND_FLAG_SYNC_MASTER); 4364 mAudioSourcep->setSyncMaster(flags & LL_SOUND_FLAG_SYNC_MASTER);
4338 mAudioSourcep->setSyncSlave(flags & LL_SOUND_FLAG_SYNC_SLAVE); 4365 mAudioSourcep->setSyncSlave(flags & LL_SOUND_FLAG_SYNC_SLAVE);
@@ -4370,8 +4397,7 @@ void LLViewerObject::adjustAudioGain(const F32 gain)
4370 if (mAudioSourcep) 4397 if (mAudioSourcep)
4371 { 4398 {
4372 mAudioGain = gain; 4399 mAudioGain = gain;
4373 F32 volume = mAudioGain * gSavedSettings.getF32("AudioLevelSFX"); 4400 mAudioSourcep->setGain(mAudioGain);
4374 mAudioSourcep->setGain(volume);
4375 } 4401 }
4376} 4402}
4377 4403
diff --git a/linden/indra/newview/llviewerobject.h b/linden/indra/newview/llviewerobject.h
index 06d385c..340f279 100644
--- a/linden/indra/newview/llviewerobject.h
+++ b/linden/indra/newview/llviewerobject.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -132,7 +132,7 @@ public:
132 typedef std::list<LLPointer<LLViewerObject> > child_list_t; 132 typedef std::list<LLPointer<LLViewerObject> > child_list_t;
133 typedef const child_list_t const_child_list_t; 133 typedef const child_list_t const_child_list_t;
134 134
135 LLViewerObject(const LLUUID &id, const LLPCode type, LLViewerRegion *regionp); 135 LLViewerObject(const LLUUID &id, const LLPCode type, LLViewerRegion *regionp, BOOL is_global = FALSE);
136 MEM_TYPE_NEW(LLMemType::MTYPE_OBJECT); 136 MEM_TYPE_NEW(LLMemType::MTYPE_OBJECT);
137 137
138 virtual void markDead(); // Mark this object as dead, and clean up its references 138 virtual void markDead(); // Mark this object as dead, and clean up its references
@@ -248,6 +248,7 @@ public:
248 //returns TRUE if intersection detected and returns information about intersection 248 //returns TRUE if intersection detected and returns information about intersection
249 virtual BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end, 249 virtual BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
250 S32 face = -1, // which face to check, -1 = ALL_SIDES 250 S32 face = -1, // which face to check, -1 = ALL_SIDES
251 BOOL pick_transparent = FALSE,
251 S32* face_hit = NULL, // which face was hit 252 S32* face_hit = NULL, // which face was hit
252 LLVector3* intersection = NULL, // return the intersection point 253 LLVector3* intersection = NULL, // return the intersection point
253 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point 254 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point
@@ -255,6 +256,8 @@ public:
255 LLVector3* bi_normal = NULL // return the surface bi-normal at the intersection point 256 LLVector3* bi_normal = NULL // return the surface bi-normal at the intersection point
256 ); 257 );
257 258
259 virtual BOOL lineSegmentBoundingBox(const LLVector3& start, const LLVector3& end);
260
258 virtual const LLVector3d getPositionGlobal() const; 261 virtual const LLVector3d getPositionGlobal() const;
259 virtual const LLVector3 &getPositionRegion() const; 262 virtual const LLVector3 &getPositionRegion() const;
260 virtual const LLVector3 getPositionEdit() const; 263 virtual const LLVector3 getPositionEdit() const;
@@ -507,6 +510,7 @@ public:
507 LL_VO_PART_GROUP = LL_PCODE_APP | 0x90, 510 LL_VO_PART_GROUP = LL_PCODE_APP | 0x90,
508 LL_VO_TRIANGLE_TORUS = LL_PCODE_APP | 0xa0, 511 LL_VO_TRIANGLE_TORUS = LL_PCODE_APP | 0xa0,
509 LL_VO_WL_SKY = LL_PCODE_APP | 0xb0, // should this be moved to 0x40? 512 LL_VO_WL_SKY = LL_PCODE_APP | 0xb0, // should this be moved to 0x40?
513 LL_VO_HUD_PART_GROUP = LL_PCODE_APP | 0xc0,
510 } EVOType; 514 } EVOType;
511 515
512 LLUUID mID; 516 LLUUID mID;
@@ -705,8 +709,8 @@ public:
705class LLStaticViewerObject : public LLViewerObject 709class LLStaticViewerObject : public LLViewerObject
706{ 710{
707public: 711public:
708 LLStaticViewerObject(const LLUUID& id, const LLPCode type, LLViewerRegion* regionp) 712 LLStaticViewerObject(const LLUUID& id, const LLPCode type, LLViewerRegion* regionp, BOOL is_global = FALSE)
709 : LLViewerObject(id,type,regionp) 713 : LLViewerObject(id,type,regionp, is_global)
710 { } 714 { }
711 715
712 virtual void updateDrawable(BOOL force_damped); 716 virtual void updateDrawable(BOOL force_damped);
diff --git a/linden/indra/newview/llviewerobjectlist.cpp b/linden/indra/newview/llviewerobjectlist.cpp
index 4fac9bc..9b85fec 100644
--- a/linden/indra/newview/llviewerobjectlist.cpp
+++ b/linden/indra/newview/llviewerobjectlist.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -163,15 +163,20 @@ U64 LLViewerObjectList::getIndex(const U32 local_id,
163 163
164BOOL LLViewerObjectList::removeFromLocalIDTable(const LLViewerObject &object) 164BOOL LLViewerObjectList::removeFromLocalIDTable(const LLViewerObject &object)
165{ 165{
166 U32 local_id = object.mLocalID; 166 if(object.getRegion())
167 LLHost region_host = object.getRegion()->getHost(); 167 {
168 U32 ip = region_host.getAddress(); 168 U32 local_id = object.mLocalID;
169 U32 port = region_host.getPort(); 169 LLHost region_host = object.getRegion()->getHost();
170 U64 ipport = (((U64)ip) << 32) | (U64)port; 170 U32 ip = region_host.getAddress();
171 U32 index = sIPAndPortToIndex[ipport]; 171 U32 port = region_host.getPort();
172 U64 ipport = (((U64)ip) << 32) | (U64)port;
173 U32 index = sIPAndPortToIndex[ipport];
174
175 U64 indexid = (((U64)index) << 32) | (U64)local_id;
176 return sIndexAndLocalIDToUUID.erase(indexid) > 0 ? TRUE : FALSE;
177 }
172 178
173 U64 indexid = (((U64)index) << 32) | (U64)local_id; 179 return FALSE ;
174 return sIndexAndLocalIDToUUID.erase(indexid) > 0 ? TRUE : FALSE;
175} 180}
176 181
177void LLViewerObjectList::setUUIDAndLocal(const LLUUID &id, 182void LLViewerObjectList::setUUIDAndLocal(const LLUUID &id,
@@ -822,8 +827,15 @@ void LLViewerObjectList::removeDrawable(LLDrawable* drawablep)
822 827
823 for (S32 i = 0; i < drawablep->getNumFaces(); i++) 828 for (S32 i = 0; i < drawablep->getNumFaces(); i++)
824 { 829 {
825 LLViewerObject* objectp = drawablep->getFace(i)->getViewerObject(); 830 LLFace* facep = drawablep->getFace(i) ;
826 mSelectPickList.erase(objectp); 831 if(facep)
832 {
833 LLViewerObject* objectp = facep->getViewerObject();
834 if(objectp)
835 {
836 mSelectPickList.erase(objectp);
837 }
838 }
827 } 839 }
828} 840}
829 841
@@ -902,7 +914,7 @@ void LLViewerObjectList::killAllObjects()
902 if (!mMapObjects.empty()) 914 if (!mMapObjects.empty())
903 { 915 {
904 llwarns << "Some objects still on map object list!" << llendl; 916 llwarns << "Some objects still on map object list!" << llendl;
905 mActiveObjects.clear(); 917 mMapObjects.clear();
906 } 918 }
907} 919}
908 920
diff --git a/linden/indra/newview/llviewerobjectlist.h b/linden/indra/newview/llviewerobjectlist.h
index ee34381..0d0fd85 100644
--- a/linden/indra/newview/llviewerobjectlist.h
+++ b/linden/indra/newview/llviewerobjectlist.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerparcelmedia.cpp b/linden/indra/newview/llviewerparcelmedia.cpp
index 94f6d84..5b255ea 100644
--- a/linden/indra/newview/llviewerparcelmedia.cpp
+++ b/linden/indra/newview/llviewerparcelmedia.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -344,7 +344,7 @@ void LLViewerParcelMedia::processParcelMediaUpdate( LLMessageSystem *msg, void *
344 media_url = media_url_buffer; 344 media_url = media_url_buffer;
345 msg->getU8("DataBlock", "MediaAutoScale", media_auto_scale); 345 msg->getU8("DataBlock", "MediaAutoScale", media_auto_scale);
346 346
347 if (msg->getNumberOfBlocks("DataBlockExtended")) // do we have the extended data? 347 if (msg->has("DataBlockExtended")) // do we have the extended data?
348 { 348 {
349 char media_type_buffer[257]; 349 char media_type_buffer[257];
350 msg->getString("DataBlockExtended", "MediaType", 255, media_type_buffer); 350 msg->getString("DataBlockExtended", "MediaType", 255, media_type_buffer);
diff --git a/linden/indra/newview/llviewerparcelmedia.h b/linden/indra/newview/llviewerparcelmedia.h
index 70888ab..389c7e5 100644
--- a/linden/indra/newview/llviewerparcelmedia.h
+++ b/linden/indra/newview/llviewerparcelmedia.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerparcelmediaautoplay.cpp b/linden/indra/newview/llviewerparcelmediaautoplay.cpp
index 3b50060..1a1dbd1 100644
--- a/linden/indra/newview/llviewerparcelmediaautoplay.cpp
+++ b/linden/indra/newview/llviewerparcelmediaautoplay.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerparcelmediaautoplay.h b/linden/indra/newview/llviewerparcelmediaautoplay.h
index 48d3a36..a8250a1 100644
--- a/linden/indra/newview/llviewerparcelmediaautoplay.h
+++ b/linden/indra/newview/llviewerparcelmediaautoplay.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerparcelmgr.cpp b/linden/indra/newview/llviewerparcelmgr.cpp
index 2dee2bf..c4f1f31 100644
--- a/linden/indra/newview/llviewerparcelmgr.cpp
+++ b/linden/indra/newview/llviewerparcelmgr.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerparcelmgr.h b/linden/indra/newview/llviewerparcelmgr.h
index dfd0bb1..0825d10 100644
--- a/linden/indra/newview/llviewerparcelmgr.h
+++ b/linden/indra/newview/llviewerparcelmgr.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerparceloverlay.cpp b/linden/indra/newview/llviewerparceloverlay.cpp
index b50ddb6..dc2e0db 100644
--- a/linden/indra/newview/llviewerparceloverlay.cpp
+++ b/linden/indra/newview/llviewerparceloverlay.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -72,7 +72,7 @@ LLViewerParcelOverlay::LLViewerParcelOverlay(LLViewerRegion* region, F32 region_
72 mImageRaw = new LLImageRaw(mParcelGridsPerEdge, mParcelGridsPerEdge, OVERLAY_IMG_COMPONENTS); 72 mImageRaw = new LLImageRaw(mParcelGridsPerEdge, mParcelGridsPerEdge, OVERLAY_IMG_COMPONENTS);
73 mTexture->createGLTexture(0, mImageRaw); 73 mTexture->createGLTexture(0, mImageRaw);
74 gGL.getTexUnit(0)->activate(); 74 gGL.getTexUnit(0)->activate();
75 mTexture->bind(0); 75 gGL.getTexUnit(0)->bind(mTexture);
76 mTexture->setClamp(TRUE, TRUE); 76 mTexture->setClamp(TRUE, TRUE);
77 mTexture->setMipFilterNearest(TRUE); 77 mTexture->setMipFilterNearest(TRUE);
78 78
@@ -748,7 +748,7 @@ S32 LLViewerParcelOverlay::renderPropertyLines ()
748 LLSurface& land = mRegion->getLand(); 748 LLSurface& land = mRegion->getLand();
749 749
750 LLGLSUIDefault gls_ui; // called from pipeline 750 LLGLSUIDefault gls_ui; // called from pipeline
751 LLGLSNoTexture gls_no_texture; 751 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
752 LLGLDepthTest mDepthTest(GL_TRUE); 752 LLGLDepthTest mDepthTest(GL_TRUE);
753 753
754 // Find camera height off the ground (not from zero) 754 // Find camera height off the ground (not from zero)
@@ -826,7 +826,7 @@ S32 LLViewerParcelOverlay::renderPropertyLines ()
826 continue; 826 continue;
827 } 827 }
828 828
829 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); 829 gGL.begin(LLRender::TRIANGLE_STRIP);
830 830
831 for (j = 0; j < vertex_per_edge; j++) 831 for (j = 0; j < vertex_per_edge; j++)
832 { 832 {
@@ -848,7 +848,7 @@ S32 LLViewerParcelOverlay::renderPropertyLines ()
848 colorp = mColorArray + BYTES_PER_COLOR * i; 848 colorp = mColorArray + BYTES_PER_COLOR * i;
849 vertexp = mVertexArray + FLOATS_PER_VERTEX * i; 849 vertexp = mVertexArray + FLOATS_PER_VERTEX * i;
850 850
851 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); 851 gGL.begin(LLRender::TRIANGLE_STRIP);
852 852
853 for (j = 0; j < vertex_per_edge; j++) 853 for (j = 0; j < vertex_per_edge; j++)
854 { 854 {
diff --git a/linden/indra/newview/llviewerparceloverlay.h b/linden/indra/newview/llviewerparceloverlay.h
index 8d1d3d2..627f36c 100644
--- a/linden/indra/newview/llviewerparceloverlay.h
+++ b/linden/indra/newview/llviewerparceloverlay.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerpartsim.cpp b/linden/indra/newview/llviewerpartsim.cpp
index d27e0df..c303fc5 100644
--- a/linden/indra/newview/llviewerpartsim.cpp
+++ b/linden/indra/newview/llviewerpartsim.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -53,6 +53,7 @@ const F32 PART_SIM_BOX_RAD = 0.5f*F_SQRT3*PART_SIM_BOX_SIDE;
53//static 53//static
54S32 LLViewerPartSim::sMaxParticleCount = 0; 54S32 LLViewerPartSim::sMaxParticleCount = 0;
55S32 LLViewerPartSim::sParticleCount = 0; 55S32 LLViewerPartSim::sParticleCount = 0;
56S32 LLViewerPartSim::sParticleCount2 = 0;
56// This controls how greedy individual particle burst sources are allowed to be, and adapts according to how near the particle-count limit we are. 57// This controls how greedy individual particle burst sources are allowed to be, and adapts according to how near the particle-count limit we are.
57F32 LLViewerPartSim::sParticleAdaptiveRate = 0.0625f; 58F32 LLViewerPartSim::sParticleAdaptiveRate = 0.0625f;
58F32 LLViewerPartSim::sParticleBurstRate = 0.5f; 59F32 LLViewerPartSim::sParticleBurstRate = 0.5f;
@@ -84,12 +85,16 @@ LLViewerPart::LLViewerPart() :
84{ 85{
85 LLMemType mt(LLMemType::MTYPE_PARTICLES); 86 LLMemType mt(LLMemType::MTYPE_PARTICLES);
86 mPartSourcep = NULL; 87 mPartSourcep = NULL;
88
89 ++LLViewerPartSim::sParticleCount2 ;
87} 90}
88 91
89LLViewerPart::~LLViewerPart() 92LLViewerPart::~LLViewerPart()
90{ 93{
91 LLMemType mt(LLMemType::MTYPE_PARTICLES); 94 LLMemType mt(LLMemType::MTYPE_PARTICLES);
92 mPartSourcep = NULL; 95 mPartSourcep = NULL;
96
97 --LLViewerPartSim::sParticleCount2 ;
93} 98}
94 99
95void LLViewerPart::init(LLPointer<LLViewerPartSource> sourcep, LLViewerImage *imagep, LLVPCallback cb) 100void LLViewerPart::init(LLPointer<LLViewerPartSource> sourcep, LLViewerImage *imagep, LLVPCallback cb)
@@ -116,7 +121,8 @@ void LLViewerPart::init(LLPointer<LLViewerPartSource> sourcep, LLViewerImage *im
116// 121//
117 122
118 123
119LLViewerPartGroup::LLViewerPartGroup(const LLVector3 &center_agent, const F32 box_side) 124LLViewerPartGroup::LLViewerPartGroup(const LLVector3 &center_agent, const F32 box_side, bool hud)
125 : mHud(hud)
120{ 126{
121 LLMemType mt(LLMemType::MTYPE_PARTICLES); 127 LLMemType mt(LLMemType::MTYPE_PARTICLES);
122 mVOPartGroupp = NULL; 128 mVOPartGroupp = NULL;
@@ -133,7 +139,14 @@ LLViewerPartGroup::LLViewerPartGroup(const LLVector3 &center_agent, const F32 bo
133 mCenterAgent = center_agent; 139 mCenterAgent = center_agent;
134 mBoxRadius = F_SQRT3*box_side*0.5f; 140 mBoxRadius = F_SQRT3*box_side*0.5f;
135 141
142 if (mHud)
143 {
144 mVOPartGroupp = (LLVOPartGroup *)gObjectList.createObjectViewer(LLViewerObject::LL_VO_HUD_PART_GROUP, getRegion());
145 }
146 else
147 {
136 mVOPartGroupp = (LLVOPartGroup *)gObjectList.createObjectViewer(LLViewerObject::LL_VO_PART_GROUP, getRegion()); 148 mVOPartGroupp = (LLVOPartGroup *)gObjectList.createObjectViewer(LLViewerObject::LL_VO_PART_GROUP, getRegion());
149 }
137 mVOPartGroupp->setViewerPartGroup(this); 150 mVOPartGroupp->setViewerPartGroup(this);
138 mVOPartGroupp->setPositionAgent(getCenterAgent()); 151 mVOPartGroupp->setPositionAgent(getCenterAgent());
139 F32 scale = box_side * 0.5f; 152 F32 scale = box_side * 0.5f;
@@ -223,6 +236,12 @@ BOOL LLViewerPartGroup::posInGroup(const LLVector3 &pos, const F32 desired_size)
223BOOL LLViewerPartGroup::addPart(LLViewerPart* part, F32 desired_size) 236BOOL LLViewerPartGroup::addPart(LLViewerPart* part, F32 desired_size)
224{ 237{
225 LLMemType mt(LLMemType::MTYPE_PARTICLES); 238 LLMemType mt(LLMemType::MTYPE_PARTICLES);
239
240 if (part->mFlags & LLPartData::LL_PART_HUD && !mHud)
241 {
242 return FALSE;
243 }
244
226 BOOL uniform_part = part->mScale.mV[0] == part->mScale.mV[1] && 245 BOOL uniform_part = part->mScale.mV[0] == part->mScale.mV[1] &&
227 !(part->mFlags & LLPartData::LL_PART_FOLLOW_VELOCITY_MASK); 246 !(part->mFlags & LLPartData::LL_PART_FOLLOW_VELOCITY_MASK);
228 247
@@ -249,6 +268,8 @@ void LLViewerPartGroup::updateParticles(const F32 lastdt)
249 268
250 LLVector3 gravity(0.f, 0.f, GRAVITY); 269 LLVector3 gravity(0.f, 0.f, GRAVITY);
251 270
271 LLViewerPartSim::checkParticleCount(mParticles.size());
272
252 LLViewerRegion *regionp = getRegion(); 273 LLViewerRegion *regionp = getRegion();
253 S32 end = (S32) mParticles.size(); 274 S32 end = (S32) mParticles.size();
254 for (S32 i = 0 ; i < (S32)mParticles.size();) 275 for (S32 i = 0 ; i < (S32)mParticles.size();)
@@ -402,6 +423,8 @@ void LLViewerPartGroup::updateParticles(const F32 lastdt)
402 gObjectList.killObject(mVOPartGroupp); 423 gObjectList.killObject(mVOPartGroupp);
403 mVOPartGroupp = NULL; 424 mVOPartGroupp = NULL;
404 } 425 }
426
427 LLViewerPartSim::checkParticleCount() ;
405} 428}
406 429
407 430
@@ -437,6 +460,19 @@ void LLViewerPartGroup::removeParticlesByID(const U32 source_id)
437// 460//
438// 461//
439 462
463//static
464void LLViewerPartSim::checkParticleCount(U32 size)
465{
466 if(LLViewerPartSim::sParticleCount2 != LLViewerPartSim::sParticleCount)
467 {
468 llerrs << "sParticleCount: " << LLViewerPartSim::sParticleCount << " ; sParticleCount2: " << LLViewerPartSim::sParticleCount2 << llendl ;
469 }
470
471 if(size > (U32)LLViewerPartSim::sParticleCount2)
472 {
473 llerrs << "curren particle size: " << LLViewerPartSim::sParticleCount2 << " array size: " << size << llendl ;
474 }
475}
440 476
441LLViewerPartSim::LLViewerPartSim() 477LLViewerPartSim::LLViewerPartSim()
442{ 478{
@@ -495,6 +531,12 @@ void LLViewerPartSim::addPart(LLViewerPart* part)
495 { 531 {
496 put(part); 532 put(part);
497 } 533 }
534 else
535 {
536 //delete the particle if can not add it in
537 delete part ;
538 part = NULL ;
539 }
498} 540}
499 541
500 542
@@ -530,7 +572,7 @@ LLViewerPartGroup *LLViewerPartSim::put(LLViewerPart* part)
530 if(!return_group) 572 if(!return_group)
531 { 573 {
532 llassert_always(part->mPosAgent.isFinite()); 574 llassert_always(part->mPosAgent.isFinite());
533 LLViewerPartGroup *groupp = createViewerPartGroup(part->mPosAgent, desired_size); 575 LLViewerPartGroup *groupp = createViewerPartGroup(part->mPosAgent, desired_size, part->mFlags & LLPartData::LL_PART_HUD);
534 groupp->mUniformParticles = (part->mScale.mV[0] == part->mScale.mV[1] && 576 groupp->mUniformParticles = (part->mScale.mV[0] == part->mScale.mV[1] &&
535 !(part->mFlags & LLPartData::LL_PART_FOLLOW_VELOCITY_MASK)); 577 !(part->mFlags & LLPartData::LL_PART_FOLLOW_VELOCITY_MASK));
536 if (!groupp->addPart(part)) 578 if (!groupp->addPart(part))
@@ -555,12 +597,12 @@ LLViewerPartGroup *LLViewerPartSim::put(LLViewerPart* part)
555 return return_group ; 597 return return_group ;
556} 598}
557 599
558LLViewerPartGroup *LLViewerPartSim::createViewerPartGroup(const LLVector3 &pos_agent, const F32 desired_size) 600LLViewerPartGroup *LLViewerPartSim::createViewerPartGroup(const LLVector3 &pos_agent, const F32 desired_size, bool hud)
559{ 601{
560 LLMemType mt(LLMemType::MTYPE_PARTICLES); 602 LLMemType mt(LLMemType::MTYPE_PARTICLES);
561 //find a box that has a center position divisible by PART_SIM_BOX_SIDE that encompasses 603 //find a box that has a center position divisible by PART_SIM_BOX_SIDE that encompasses
562 //pos_agent 604 //pos_agent
563 LLViewerPartGroup *groupp = new LLViewerPartGroup(pos_agent, desired_size); 605 LLViewerPartGroup *groupp = new LLViewerPartGroup(pos_agent, desired_size, hud);
564 mViewerPartGroups.push_back(groupp); 606 mViewerPartGroups.push_back(groupp);
565 return groupp; 607 return groupp;
566} 608}
diff --git a/linden/indra/newview/llviewerpartsim.h b/linden/indra/newview/llviewerpartsim.h
index 0f51240..81394e6 100644
--- a/linden/indra/newview/llviewerpartsim.h
+++ b/linden/indra/newview/llviewerpartsim.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -87,7 +87,8 @@ class LLViewerPartGroup
87{ 87{
88public: 88public:
89 LLViewerPartGroup(const LLVector3 &center, 89 LLViewerPartGroup(const LLVector3 &center,
90 const F32 box_radius); 90 const F32 box_radius,
91 bool hud);
91 virtual ~LLViewerPartGroup(); 92 virtual ~LLViewerPartGroup();
92 93
93 void cleanup(); 94 void cleanup();
@@ -115,6 +116,7 @@ public:
115 U32 mID; 116 U32 mID;
116 117
117 F32 mSkippedTime; 118 F32 mSkippedTime;
119 bool mHud;
118 120
119protected: 121protected:
120 LLVector3 mCenterAgent; 122 LLVector3 mCenterAgent;
@@ -178,7 +180,7 @@ public:
178 U32 mID; 180 U32 mID;
179 181
180protected: 182protected:
181 LLViewerPartGroup *createViewerPartGroup(const LLVector3 &pos_agent, const F32 desired_size); 183 LLViewerPartGroup *createViewerPartGroup(const LLVector3 &pos_agent, const F32 desired_size, bool hud);
182 LLViewerPartGroup *put(LLViewerPart* part); 184 LLViewerPartGroup *put(LLViewerPart* part);
183 185
184 group_list_t mViewerPartGroups; 186 group_list_t mViewerPartGroups;
@@ -195,6 +197,12 @@ protected:
195 static const F32 PART_THROTTLE_RESCALE; 197 static const F32 PART_THROTTLE_RESCALE;
196 static const F32 PART_ADAPT_RATE_MULT; 198 static const F32 PART_ADAPT_RATE_MULT;
197 static const F32 PART_ADAPT_RATE_MULT_RECIP; 199 static const F32 PART_ADAPT_RATE_MULT_RECIP;
200
201//debug use only
202public:
203 static S32 sParticleCount2;
204
205 static void checkParticleCount(U32 size = 0) ;
198}; 206};
199 207
200#endif // LL_LLVIEWERPARTSIM_H 208#endif // LL_LLVIEWERPARTSIM_H
diff --git a/linden/indra/newview/llviewerpartsource.cpp b/linden/indra/newview/llviewerpartsource.cpp
index dcef8c2..efeca42 100644
--- a/linden/indra/newview/llviewerpartsource.cpp
+++ b/linden/indra/newview/llviewerpartsource.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -33,6 +33,7 @@
33#include "llviewerpartsource.h" 33#include "llviewerpartsource.h"
34 34
35#include "llviewercontrol.h" 35#include "llviewercontrol.h"
36#include "llrender.h"
36 37
37#include "llagent.h" 38#include "llagent.h"
38#include "lldrawable.h" 39#include "lldrawable.h"
@@ -69,7 +70,7 @@ void LLViewerPartSource::updatePart(LLViewerPart &part, const F32 dt)
69{ 70{
70} 71}
71 72
72void LLViewerPartSource::update(const F32 dt) 73void LLViewerPartSource::update(const F32 dt)
73{ 74{
74 llerrs << "Creating default part source!" << llendl; 75 llerrs << "Creating default part source!" << llendl;
75} 76}
@@ -99,7 +100,7 @@ LLViewerPartSourceScript::LLViewerPartSourceScript(LLViewerObject *source_objp)
99 mSourceObjectp = source_objp; 100 mSourceObjectp = source_objp;
100 mPosAgent = mSourceObjectp->getPositionAgent(); 101 mPosAgent = mSourceObjectp->getPositionAgent();
101 mImagep = gImageList.getImageFromFile("pixiesmall.j2c"); 102 mImagep = gImageList.getImageFromFile("pixiesmall.j2c");
102 mImagep->bind(); 103 gGL.getTexUnit(0)->bind(mImagep.get());
103 mImagep->setClamp(TRUE, TRUE); 104 mImagep->setClamp(TRUE, TRUE);
104} 105}
105 106
@@ -282,6 +283,10 @@ void LLViewerPartSourceScript::update(const F32 dt)
282 283
283 part->init(this, mImagep, NULL); 284 part->init(this, mImagep, NULL);
284 part->mFlags = mPartSysData.mPartData.mFlags; 285 part->mFlags = mPartSysData.mPartData.mFlags;
286 if (!mSourceObjectp.isNull() && mSourceObjectp->isHUDAttachment())
287 {
288 part->mFlags |= LLPartData::LL_PART_HUD;
289 }
285 part->mMaxAge = mPartSysData.mPartData.mMaxAge; 290 part->mMaxAge = mPartSysData.mPartData.mMaxAge;
286 part->mStartColor = mPartSysData.mPartData.mStartColor; 291 part->mStartColor = mPartSysData.mPartData.mStartColor;
287 part->mEndColor = mPartSysData.mPartData.mEndColor; 292 part->mEndColor = mPartSysData.mPartData.mEndColor;
diff --git a/linden/indra/newview/llviewerpartsource.h b/linden/indra/newview/llviewerpartsource.h
index 8b6fb2c..61a5c97 100644
--- a/linden/indra/newview/llviewerpartsource.h
+++ b/linden/indra/newview/llviewerpartsource.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerprecompiledheaders.cpp b/linden/indra/newview/llviewerprecompiledheaders.cpp
index f7d84a5..74ee2a5 100644
--- a/linden/indra/newview/llviewerprecompiledheaders.cpp
+++ b/linden/indra/newview/llviewerprecompiledheaders.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerprecompiledheaders.h b/linden/indra/newview/llviewerprecompiledheaders.h
index 6779d84..d113101 100644
--- a/linden/indra/newview/llviewerprecompiledheaders.h
+++ b/linden/indra/newview/llviewerprecompiledheaders.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2005&license=viewergpl$ 6 * $LicenseInfo:firstyear=2005&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2005-2008, Linden Research, Inc. 8 * Copyright (c) 2005-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerregion.cpp b/linden/indra/newview/llviewerregion.cpp
index 19e5117..0018323 100644
--- a/linden/indra/newview/llviewerregion.cpp
+++ b/linden/indra/newview/llviewerregion.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -215,6 +215,7 @@ LLViewerRegion::LLViewerRegion(const U64 &handle,
215 mObjectPartition.push_back(new LLGrassPartition()); //PARTITION_GRASS 215 mObjectPartition.push_back(new LLGrassPartition()); //PARTITION_GRASS
216 mObjectPartition.push_back(new LLVolumePartition()); //PARTITION_VOLUME 216 mObjectPartition.push_back(new LLVolumePartition()); //PARTITION_VOLUME
217 mObjectPartition.push_back(new LLBridgePartition()); //PARTITION_BRIDGE 217 mObjectPartition.push_back(new LLBridgePartition()); //PARTITION_BRIDGE
218 mObjectPartition.push_back(new LLHUDParticlePartition());//PARTITION_HUD_PARTICLE
218 mObjectPartition.push_back(NULL); //PARTITION_NONE 219 mObjectPartition.push_back(NULL); //PARTITION_NONE
219 220
220} 221}
diff --git a/linden/indra/newview/llviewerregion.h b/linden/indra/newview/llviewerregion.h
index d65ad23..58ebf60 100644
--- a/linden/indra/newview/llviewerregion.h
+++ b/linden/indra/newview/llviewerregion.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -81,6 +81,7 @@ public:
81 PARTITION_GRASS, 81 PARTITION_GRASS,
82 PARTITION_VOLUME, 82 PARTITION_VOLUME,
83 PARTITION_BRIDGE, 83 PARTITION_BRIDGE,
84 PARTITION_HUD_PARTICLE,
84 PARTITION_NONE, 85 PARTITION_NONE,
85 NUM_PARTITIONS 86 NUM_PARTITIONS
86 } eObjectPartitions; 87 } eObjectPartitions;
diff --git a/linden/indra/newview/llviewershadermgr.cpp b/linden/indra/newview/llviewershadermgr.cpp
index a654120..dab9e82 100644
--- a/linden/indra/newview/llviewershadermgr.cpp
+++ b/linden/indra/newview/llviewershadermgr.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -108,7 +108,7 @@ GLint gAvatarMatrixParam;
108LLViewerShaderMgr::LLViewerShaderMgr() : 108LLViewerShaderMgr::LLViewerShaderMgr() :
109 mVertexShaderLevel(SHADER_COUNT, 0) 109 mVertexShaderLevel(SHADER_COUNT, 0)
110{ 110{
111/// Make sure WL Sky is the first program 111 /// Make sure WL Sky is the first program
112 mShaderList.push_back(&gWLSkyProgram); 112 mShaderList.push_back(&gWLSkyProgram);
113 mShaderList.push_back(&gWLCloudProgram); 113 mShaderList.push_back(&gWLCloudProgram);
114 mShaderList.push_back(&gAvatarProgram); 114 mShaderList.push_back(&gAvatarProgram);
@@ -139,28 +139,28 @@ LLViewerShaderMgr * LLViewerShaderMgr::instance()
139 if(NULL == sInstance) 139 if(NULL == sInstance)
140 { 140 {
141 sInstance = new LLViewerShaderMgr(); 141 sInstance = new LLViewerShaderMgr();
142 }
143
144 return static_cast<LLViewerShaderMgr*>(sInstance);
145 } 142 }
146 143
144 return static_cast<LLViewerShaderMgr*>(sInstance);
145}
146
147void LLViewerShaderMgr::initAttribsAndUniforms(void) 147void LLViewerShaderMgr::initAttribsAndUniforms(void)
148 { 148{
149 if (mReservedAttribs.empty()) 149 if (mReservedAttribs.empty())
150 { 150 {
151 mReservedAttribs.push_back("materialColor"); 151 mReservedAttribs.push_back("materialColor");
152 mReservedAttribs.push_back("specularColor"); 152 mReservedAttribs.push_back("specularColor");
153 mReservedAttribs.push_back("binormal"); 153 mReservedAttribs.push_back("binormal");
154 154
155 mAvatarAttribs.reserve(5); 155 mAvatarAttribs.reserve(5);
156 mAvatarAttribs.push_back("weight"); 156 mAvatarAttribs.push_back("weight");
157 mAvatarAttribs.push_back("clothing"); 157 mAvatarAttribs.push_back("clothing");
158 mAvatarAttribs.push_back("gWindDir"); 158 mAvatarAttribs.push_back("gWindDir");
159 mAvatarAttribs.push_back("gSinWaveParams"); 159 mAvatarAttribs.push_back("gSinWaveParams");
160 mAvatarAttribs.push_back("gGravity"); 160 mAvatarAttribs.push_back("gGravity");
161 161
162 mAvatarUniforms.push_back("matrixPalette"); 162 mAvatarUniforms.push_back("matrixPalette");
163 163
164 mReservedUniforms.reserve(24); 164 mReservedUniforms.reserve(24);
165 mReservedUniforms.push_back("diffuseMap"); 165 mReservedUniforms.push_back("diffuseMap");
166 mReservedUniforms.push_back("specularMap"); 166 mReservedUniforms.push_back("specularMap");
@@ -186,16 +186,16 @@ void LLViewerShaderMgr::initAttribsAndUniforms(void)
186 mReservedUniforms.push_back("cloud_scale"); 186 mReservedUniforms.push_back("cloud_scale");
187 mReservedUniforms.push_back("gamma"); 187 mReservedUniforms.push_back("gamma");
188 mReservedUniforms.push_back("scene_light_strength"); 188 mReservedUniforms.push_back("scene_light_strength");
189 189
190 mWLUniforms.push_back("camPosLocal"); 190 mWLUniforms.push_back("camPosLocal");
191 191
192 mTerrainUniforms.reserve(5); 192 mTerrainUniforms.reserve(5);
193 mTerrainUniforms.push_back("detail_0"); 193 mTerrainUniforms.push_back("detail_0");
194 mTerrainUniforms.push_back("detail_1"); 194 mTerrainUniforms.push_back("detail_1");
195 mTerrainUniforms.push_back("detail_2"); 195 mTerrainUniforms.push_back("detail_2");
196 mTerrainUniforms.push_back("detail_3"); 196 mTerrainUniforms.push_back("detail_3");
197 mTerrainUniforms.push_back("alpha_ramp"); 197 mTerrainUniforms.push_back("alpha_ramp");
198 198
199 mGlowUniforms.push_back("glowDelta"); 199 mGlowUniforms.push_back("glowDelta");
200 mGlowUniforms.push_back("glowStrength"); 200 mGlowUniforms.push_back("glowStrength");
201 201
@@ -204,7 +204,7 @@ void LLViewerShaderMgr::initAttribsAndUniforms(void)
204 mGlowExtractUniforms.push_back("lumWeights"); 204 mGlowExtractUniforms.push_back("lumWeights");
205 mGlowExtractUniforms.push_back("warmthWeights"); 205 mGlowExtractUniforms.push_back("warmthWeights");
206 mGlowExtractUniforms.push_back("warmthAmount"); 206 mGlowExtractUniforms.push_back("warmthAmount");
207 207
208 mShinyUniforms.push_back("origin"); 208 mShinyUniforms.push_back("origin");
209 209
210 mWaterUniforms.reserve(12); 210 mWaterUniforms.reserve(12);
@@ -222,9 +222,9 @@ void LLViewerShaderMgr::initAttribsAndUniforms(void)
222 mWaterUniforms.push_back("kd"); 222 mWaterUniforms.push_back("kd");
223 mWaterUniforms.push_back("refScale"); 223 mWaterUniforms.push_back("refScale");
224 mWaterUniforms.push_back("waterHeight"); 224 mWaterUniforms.push_back("waterHeight");
225 } 225 }
226 } 226}
227 227
228 228
229//============================================================================ 229//============================================================================
230// Set Levels 230// Set Levels
@@ -1087,12 +1087,12 @@ BOOL LLViewerShaderMgr::loadShadersWindLight()
1087} 1087}
1088 1088
1089std::string LLViewerShaderMgr::getShaderDirPrefix(void) 1089std::string LLViewerShaderMgr::getShaderDirPrefix(void)
1090 { 1090{
1091 return gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "shaders/class"); 1091 return gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "shaders/class");
1092 } 1092}
1093 1093
1094void LLViewerShaderMgr::updateShaderUniforms(LLGLSLShader * shader) 1094void LLViewerShaderMgr::updateShaderUniforms(LLGLSLShader * shader)
1095 { 1095{
1096 LLWLParamManager::instance()->updateShaderUniforms(shader); 1096 LLWLParamManager::instance()->updateShaderUniforms(shader);
1097 LLWaterParamManager::instance()->updateShaderUniforms(shader); 1097 LLWaterParamManager::instance()->updateShaderUniforms(shader);
1098} 1098}
diff --git a/linden/indra/newview/llviewershadermgr.h b/linden/indra/newview/llviewershadermgr.h
index 3894cd5..5e81887 100644
--- a/linden/indra/newview/llviewershadermgr.h
+++ b/linden/indra/newview/llviewershadermgr.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerstats.cpp b/linden/indra/newview/llviewerstats.cpp
index edefb57..c429e90 100644
--- a/linden/indra/newview/llviewerstats.cpp
+++ b/linden/indra/newview/llviewerstats.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -40,6 +40,7 @@
40#include "llappviewer.h" 40#include "llappviewer.h"
41 41
42#include "pipeline.h" 42#include "pipeline.h"
43#include "lltexturefetch.h"
43#include "llviewerobjectlist.h" 44#include "llviewerobjectlist.h"
44#include "llviewerimagelist.h" 45#include "llviewerimagelist.h"
45#include "lltexlayer.h" 46#include "lltexlayer.h"
@@ -561,15 +562,12 @@ void update_statistics(U32 frame_count)
561 LLViewerStats::getInstance()->mAssetKBitStat.addValue(gTransferManager.getTransferBitsIn(LLTCT_ASSET)/1024.f); 562 LLViewerStats::getInstance()->mAssetKBitStat.addValue(gTransferManager.getTransferBitsIn(LLTCT_ASSET)/1024.f);
562 gTransferManager.resetTransferBitsIn(LLTCT_ASSET); 563 gTransferManager.resetTransferBitsIn(LLTCT_ASSET);
563 564
564 static S32 tex_bits_idle_count = 0; 565 if (LLAppViewer::getTextureFetch()->getNumRequests() == 0)
565 if (LLViewerImageList::sTextureBits == 0)
566 { 566 {
567 if (++tex_bits_idle_count >= 30) 567 gDebugTimers[0].pause();
568 gDebugTimers[0].pause();
569 } 568 }
570 else 569 else
571 { 570 {
572 tex_bits_idle_count = 0;
573 gDebugTimers[0].unpause(); 571 gDebugTimers[0].unpause();
574 } 572 }
575 573
@@ -679,8 +677,7 @@ void send_stats()
679 // send fps only for time app spends in foreground 677 // send fps only for time app spends in foreground
680 agent["fps"] = (F32)gForegroundFrameCount / gForegroundTime.getElapsedTimeF32(); 678 agent["fps"] = (F32)gForegroundFrameCount / gForegroundTime.getElapsedTimeF32();
681 agent["version"] = gCurrentVersion; 679 agent["version"] = gCurrentVersion;
682 std::string language(gSavedSettings.getString("Language")); 680 std::string language = LLUI::getLanguage();
683 if(language == "default") language = gSavedSettings.getString("SystemLanguage");
684 agent["language"] = language; 681 agent["language"] = language;
685 682
686 agent["sim_fps"] = ((F32) gFrameCount - gSimFrames) / 683 agent["sim_fps"] = ((F32) gFrameCount - gSimFrames) /
@@ -759,10 +756,17 @@ void send_stats()
759 // misc["string_2"] = 756 // misc["string_2"] =
760// misc["int_1"] = LLFloaterDirectory::sOldSearchCount; // Steve: 1.18.6 757// misc["int_1"] = LLFloaterDirectory::sOldSearchCount; // Steve: 1.18.6
761// misc["int_2"] = LLFloaterDirectory::sNewSearchCount; // Steve: 1.18.6 758// misc["int_2"] = LLFloaterDirectory::sNewSearchCount; // Steve: 1.18.6
762 misc["int_1"] = LLSD::Integer(gSavedSettings.getU32("RenderQualityPerformance")); // Steve: 1.21 759// misc["int_1"] = LLSD::Integer(gSavedSettings.getU32("RenderQualityPerformance")); // Steve: 1.21
763 misc["int_2"] = LLSD::Integer(gFrameStalls); // Steve: 1.21 760// misc["int_2"] = LLSD::Integer(gFrameStalls); // Steve: 1.21
761
762 F32 unbaked_time = LLVOAvatar::sUnbakedTime * 1000.f / gFrameTimeSeconds;
763 misc["int_1"] = LLSD::Integer(unbaked_time); // Steve: 1.22
764 F32 grey_time = LLVOAvatar::sGreyTime * 1000.f / gFrameTimeSeconds;
765 misc["int_2"] = LLSD::Integer(grey_time); // Steve: 1.22
766
767 llinfos << "Misc Stats: int_1: " << misc["int_1"] << " int_2: " << misc["int_2"] << llendl;
768 llinfos << "Misc Stats: string_1: " << misc["string_1"] << " string_2: " << misc["string_2"] << llendl;
764 769
765 LLViewerStats::getInstance()->addToMessage(body); 770 LLViewerStats::getInstance()->addToMessage(body);
766
767 LLHTTPClient::post(url, body, new ViewerStatsResponder()); 771 LLHTTPClient::post(url, body, new ViewerStatsResponder());
768} 772}
diff --git a/linden/indra/newview/llviewerstats.h b/linden/indra/newview/llviewerstats.h
index f33ad02..3169794 100644
--- a/linden/indra/newview/llviewerstats.h
+++ b/linden/indra/newview/llviewerstats.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -77,6 +77,9 @@ public:
77 LLStat mSimAgentMsec; 77 LLStat mSimAgentMsec;
78 LLStat mSimImagesMsec; 78 LLStat mSimImagesMsec;
79 LLStat mSimScriptMsec; 79 LLStat mSimScriptMsec;
80 LLStat mSimSpareMsec;
81 LLStat mSimSleepMsec;
82 LLStat mSimPumpIOMsec;
80 83
81 LLStat mSimMainAgents; 84 LLStat mSimMainAgents;
82 LLStat mSimChildAgents; 85 LLStat mSimChildAgents;
diff --git a/linden/indra/newview/llviewertexteditor.cpp b/linden/indra/newview/llviewertexteditor.cpp
index 1dda1ca..3e2cc19 100644
--- a/linden/indra/newview/llviewertexteditor.cpp
+++ b/linden/indra/newview/llviewertexteditor.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -616,7 +616,10 @@ BOOL LLViewerTextEditor::handleToolTip(S32 x, S32 y, std::string& msg, LLRect* s
616 LLView *viewp = *child_iter; 616 LLView *viewp = *child_iter;
617 S32 local_x = x - viewp->getRect().mLeft; 617 S32 local_x = x - viewp->getRect().mLeft;
618 S32 local_y = y - viewp->getRect().mBottom; 618 S32 local_y = y - viewp->getRect().mBottom;
619 if( viewp->handleToolTip(local_x, local_y, msg, sticky_rect_screen ) ) 619 if( viewp->pointInView(local_x, local_y)
620 && viewp->getVisible()
621 && viewp->getEnabled()
622 && viewp->handleToolTip(local_x, local_y, msg, sticky_rect_screen ) )
620 { 623 {
621 return TRUE; 624 return TRUE;
622 } 625 }
diff --git a/linden/indra/newview/llviewertexteditor.h b/linden/indra/newview/llviewertexteditor.h
index 26fd9b3..4cd5850 100644
--- a/linden/indra/newview/llviewertexteditor.h
+++ b/linden/indra/newview/llviewertexteditor.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewertextureanim.cpp b/linden/indra/newview/llviewertextureanim.cpp
index bfa999c..4936bd2 100644
--- a/linden/indra/newview/llviewertextureanim.cpp
+++ b/linden/indra/newview/llviewertextureanim.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewertextureanim.h b/linden/indra/newview/llviewertextureanim.h
index a12c241..01c5864 100644
--- a/linden/indra/newview/llviewertextureanim.h
+++ b/linden/indra/newview/llviewertextureanim.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerthrottle.cpp b/linden/indra/newview/llviewerthrottle.cpp
index 311dff3..72a8a80 100644
--- a/linden/indra/newview/llviewerthrottle.cpp
+++ b/linden/indra/newview/llviewerthrottle.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerthrottle.h b/linden/indra/newview/llviewerthrottle.h
index 48dc9ee..a6cc9d6 100644
--- a/linden/indra/newview/llviewerthrottle.h
+++ b/linden/indra/newview/llviewerthrottle.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewervisualparam.cpp b/linden/indra/newview/llviewervisualparam.cpp
index 8358991..ec6345a 100644
--- a/linden/indra/newview/llviewervisualparam.cpp
+++ b/linden/indra/newview/llviewervisualparam.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewervisualparam.h b/linden/indra/newview/llviewervisualparam.h
index 5eb750f..b078a72 100644
--- a/linden/indra/newview/llviewervisualparam.h
+++ b/linden/indra/newview/llviewervisualparam.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp
index 854d757..017c225 100644
--- a/linden/indra/newview/llviewerwindow.cpp
+++ b/linden/indra/newview/llviewerwindow.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -29,13 +29,13 @@
29 * $/LicenseInfo$ 29 * $/LicenseInfo$
30 */ 30 */
31 31
32#include "llviewerprecompiledheaders.h"
33
32// system library includes 34// system library includes
33#include <stdio.h> 35#include <stdio.h>
34#include <iostream> 36#include <iostream>
35#include <fstream> 37#include <fstream>
36 38
37#include "llviewerprecompiledheaders.h"
38
39#include "llpanellogin.h" 39#include "llpanellogin.h"
40#include "llviewerkeyboard.h" 40#include "llviewerkeyboard.h"
41#include "llviewerwindow.h" 41#include "llviewerwindow.h"
@@ -168,6 +168,7 @@
168#include "llviewerobjectlist.h" 168#include "llviewerobjectlist.h"
169#include "llviewerparcelmgr.h" 169#include "llviewerparcelmgr.h"
170#include "llviewerregion.h" 170#include "llviewerregion.h"
171#include "llviewershadermgr.h"
171#include "llviewerstats.h" 172#include "llviewerstats.h"
172#include "llvoavatar.h" 173#include "llvoavatar.h"
173#include "llvovolume.h" 174#include "llvovolume.h"
@@ -180,9 +181,9 @@
180#include "llspatialpartition.h" 181#include "llspatialpartition.h"
181#include "llviewerjoystick.h" 182#include "llviewerjoystick.h"
182#include "llviewernetwork.h" 183#include "llviewernetwork.h"
184#include "llpostprocess.h"
183 185
184#if LL_WINDOWS 186#if LL_WINDOWS
185#include "llwindebug.h"
186#include <tchar.h> // For Unicode conversion methods 187#include <tchar.h> // For Unicode conversion methods
187#endif 188#endif
188 189
@@ -218,6 +219,7 @@ LLVector3 gDebugRaycastIntersection;
218LLVector2 gDebugRaycastTexCoord; 219LLVector2 gDebugRaycastTexCoord;
219LLVector3 gDebugRaycastNormal; 220LLVector3 gDebugRaycastNormal;
220LLVector3 gDebugRaycastBinormal; 221LLVector3 gDebugRaycastBinormal;
222S32 gDebugRaycastFaceHit;
221 223
222// HUD display lines in lower right 224// HUD display lines in lower right
223BOOL gDisplayWindInfo = FALSE; 225BOOL gDisplayWindInfo = FALSE;
@@ -916,7 +918,7 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK
916 918
917 // *HACK: this should be rolled into the composite tool logic, not 919 // *HACK: this should be rolled into the composite tool logic, not
918 // hardcoded at the top level. 920 // hardcoded at the top level.
919 if (CAMERA_MODE_CUSTOMIZE_AVATAR != gAgent.getCameraMode()) 921 if (CAMERA_MODE_CUSTOMIZE_AVATAR != gAgent.getCameraMode() && LLToolMgr::getInstance()->getCurrentTool() != LLToolPie::getInstance())
920 { 922 {
921 // If the current tool didn't process the click, we should show 923 // If the current tool didn't process the click, we should show
922 // the pie menu. This can be done by passing the event to the pie 924 // the pie menu. This can be done by passing the event to the pie
@@ -1102,6 +1104,7 @@ void LLViewerWindow::handleQuit(LLWindow *window)
1102void LLViewerWindow::handleResize(LLWindow *window, S32 width, S32 height) 1104void LLViewerWindow::handleResize(LLWindow *window, S32 width, S32 height)
1103{ 1105{
1104 reshape(width, height); 1106 reshape(width, height);
1107 mResDirty = true;
1105} 1108}
1106 1109
1107// The top-level window has gained focus (e.g. via ALT-TAB) 1110// The top-level window has gained focus (e.g. via ALT-TAB)
@@ -1258,6 +1261,8 @@ BOOL LLViewerWindow::handleActivate(LLWindow *window, BOOL activated)
1258 1261
1259BOOL LLViewerWindow::handleActivateApp(LLWindow *window, BOOL activating) 1262BOOL LLViewerWindow::handleActivateApp(LLWindow *window, BOOL activating)
1260{ 1263{
1264 //if (!activating) gAgent.changeCameraToDefault();
1265
1261 LLViewerJoystick::getInstance()->setNeedsReset(true); 1266 LLViewerJoystick::getInstance()->setNeedsReset(true);
1262 return FALSE; 1267 return FALSE;
1263} 1268}
@@ -1410,7 +1415,11 @@ LLViewerWindow::LLViewerWindow(
1410 mHideCursorPermanent( FALSE ), 1415 mHideCursorPermanent( FALSE ),
1411 mCursorHidden(FALSE), 1416 mCursorHidden(FALSE),
1412 mIgnoreActivate( FALSE ), 1417 mIgnoreActivate( FALSE ),
1413 mHoverPick() 1418 mHoverPick(),
1419 mResDirty(false),
1420 mStatesDirty(false),
1421 mIsFullscreenChecked(false),
1422 mCurrResolutionIndex(0)
1414{ 1423{
1415 // Default to application directory. 1424 // Default to application directory.
1416 LLViewerWindow::sSnapshotBaseName = "Snapshot"; 1425 LLViewerWindow::sSnapshotBaseName = "Snapshot";
@@ -1426,12 +1435,12 @@ LLViewerWindow::LLViewerWindow(
1426 !gNoRender, 1435 !gNoRender,
1427 ignore_pixel_depth, 1436 ignore_pixel_depth,
1428 gSavedSettings.getU32("RenderFSAASamples")); 1437 gSavedSettings.getU32("RenderFSAASamples"));
1429#if LL_WINDOWS 1438
1430 if (!LLWinDebug::checkExceptionHandler()) 1439 if (!LLAppViewer::instance()->restoreErrorTrap())
1431 { 1440 {
1432 LL_WARNS("Window") << " Someone took over my exception handler (post createWindow)!" << LL_ENDL; 1441 LL_WARNS("Window") << " Someone took over my signal/exception handler (post createWindow)!" << LL_ENDL;
1433 } 1442 }
1434#endif 1443
1435 1444
1436 if (NULL == mWindow) 1445 if (NULL == mWindow)
1437 { 1446 {
@@ -1545,7 +1554,7 @@ void LLViewerWindow::initGLDefaults()
1545 glPixelStorei(GL_PACK_ALIGNMENT,1); 1554 glPixelStorei(GL_PACK_ALIGNMENT,1);
1546 glPixelStorei(GL_UNPACK_ALIGNMENT,1); 1555 glPixelStorei(GL_UNPACK_ALIGNMENT,1);
1547 1556
1548 glEnable(GL_TEXTURE_2D); 1557 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
1549 1558
1550 // lights for objects 1559 // lights for objects
1551 glShadeModel( GL_SMOOTH ); 1560 glShadeModel( GL_SMOOTH );
@@ -2089,12 +2098,7 @@ void LLViewerWindow::reshape(S32 width, S32 height)
2089 gSavedSettings.setBOOL("FullScreen", mWantFullscreen); 2098 gSavedSettings.setBOOL("FullScreen", mWantFullscreen);
2090 2099
2091 // store new settings for the mode we are in, regardless 2100 // store new settings for the mode we are in, regardless
2092 if (mWindow->getFullscreen()) 2101 if (!mWindow->getFullscreen())
2093 {
2094 gSavedSettings.setS32("FullScreenWidth", width);
2095 gSavedSettings.setS32("FullScreenHeight", height);
2096 }
2097 else
2098 { 2102 {
2099 // Only save size if not maximized 2103 // Only save size if not maximized
2100 BOOL maximized = mWindow->getMaximized(); 2104 BOOL maximized = mWindow->getMaximized();
@@ -3042,8 +3046,9 @@ BOOL LLViewerWindow::handlePerFrameHover()
3042 3046
3043 if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_RAYCAST)) 3047 if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_RAYCAST))
3044 { 3048 {
3045 gDebugRaycastObject = cursorIntersect(-1, -1, 512.f, NULL, -1, 3049 gDebugRaycastFaceHit = -1;
3046 NULL, 3050 gDebugRaycastObject = cursorIntersect(-1, -1, 512.f, NULL, -1, FALSE,
3051 &gDebugRaycastFaceHit,
3047 &gDebugRaycastIntersection, 3052 &gDebugRaycastIntersection,
3048 &gDebugRaycastTexCoord, 3053 &gDebugRaycastTexCoord,
3049 &gDebugRaycastNormal, 3054 &gDebugRaycastNormal,
@@ -3184,7 +3189,7 @@ void LLViewerWindow::renderSelections( BOOL for_gl_pick, BOOL pick_parcel_walls,
3184 // Render light for editing 3189 // Render light for editing
3185 if (LLSelectMgr::sRenderLightRadius && LLToolMgr::getInstance()->inEdit()) 3190 if (LLSelectMgr::sRenderLightRadius && LLToolMgr::getInstance()->inEdit())
3186 { 3191 {
3187 LLImageGL::unbindTexture(0); 3192 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
3188 LLGLEnable gls_blend(GL_BLEND); 3193 LLGLEnable gls_blend(GL_BLEND);
3189 LLGLEnable gls_cull(GL_CULL_FACE); 3194 LLGLEnable gls_cull(GL_CULL_FACE);
3190 LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); 3195 LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE);
@@ -3398,7 +3403,7 @@ void LLViewerWindow::schedulePick(LLPickInfo& pick_info)
3398 llassert_always(pick_info.mScreenRegion.notNull()); 3403 llassert_always(pick_info.mScreenRegion.notNull());
3399 mPicks.push_back(pick_info); 3404 mPicks.push_back(pick_info);
3400 3405
3401 S32 scaled_x = llround((F32)pick_info.mMousePt.mX * mDisplayScale.mV[VX]); 3406 /*S32 scaled_x = llround((F32)pick_info.mMousePt.mX * mDisplayScale.mV[VX]);
3402 S32 scaled_y = llround((F32)pick_info.mMousePt.mY * mDisplayScale.mV[VY]); 3407 S32 scaled_y = llround((F32)pick_info.mMousePt.mY * mDisplayScale.mV[VY]);
3403 3408
3404 // Default to not hitting anything 3409 // Default to not hitting anything
@@ -3467,7 +3472,7 @@ void LLViewerWindow::schedulePick(LLPickInfo& pick_info)
3467 3472
3468 setup3DRender(); 3473 setup3DRender();
3469 setup2DRender(); 3474 setup2DRender();
3470 setupViewport(); 3475 setupViewport();*/
3471 3476
3472 // delay further event processing until we receive results of pick 3477 // delay further event processing until we receive results of pick
3473 mWindow->delayInputProcessing(); 3478 mWindow->delayInputProcessing();
@@ -3526,9 +3531,33 @@ LLPickInfo LLViewerWindow::pickImmediate(S32 x, S32 y_from_bot, BOOL pick_trans
3526 return mLastPick; 3531 return mLastPick;
3527} 3532}
3528 3533
3534LLHUDIcon* LLViewerWindow::cursorIntersectIcon(S32 mouse_x, S32 mouse_y, F32 depth,
3535 LLVector3* intersection)
3536{
3537 S32 x = mouse_x;
3538 S32 y = mouse_y;
3539
3540 if ((mouse_x == -1) && (mouse_y == -1)) // use current mouse position
3541 {
3542 x = getCurrentMouseX();
3543 y = getCurrentMouseY();
3544 }
3545
3546 // world coordinates of mouse
3547 LLVector3 mouse_direction_global = mouseDirectionGlobal(x,y);
3548 LLVector3 mouse_point_global = LLViewerCamera::getInstance()->getOrigin();
3549 LLVector3 mouse_world_start = mouse_point_global;
3550 LLVector3 mouse_world_end = mouse_point_global + mouse_direction_global * depth;
3551
3552 return LLHUDIcon::lineSegmentIntersectAll(mouse_world_start, mouse_world_end, intersection);
3553
3554
3555}
3556
3529LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 depth, 3557LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 depth,
3530 LLViewerObject *this_object, 3558 LLViewerObject *this_object,
3531 S32 this_face, 3559 S32 this_face,
3560 BOOL pick_transparent,
3532 S32* face_hit, 3561 S32* face_hit,
3533 LLVector3 *intersection, 3562 LLVector3 *intersection,
3534 LLVector2 *uv, 3563 LLVector2 *uv,
@@ -3550,8 +3579,18 @@ LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 de
3550 LLVector3 mouse_hud_end = mouse_point_hud + LLVector3(depth, 0, 0); 3579 LLVector3 mouse_hud_end = mouse_point_hud + LLVector3(depth, 0, 0);
3551 3580
3552 // world coordinates of mouse 3581 // world coordinates of mouse
3553 LLVector3 mouse_direction_global = mouseDirectionGlobal(x,y); 3582 LLVector3 mouse_direction_global = mouseDirectionGlobal(x,y);
3554 LLVector3 mouse_point_global = LLViewerCamera::getInstance()->getOrigin(); 3583 LLVector3 mouse_point_global = LLViewerCamera::getInstance()->getOrigin();
3584
3585 //get near clip plane
3586 LLVector3 n = LLViewerCamera::getInstance()->getAtAxis();
3587 LLVector3 p = mouse_point_global + n * LLViewerCamera::getInstance()->getNear();
3588
3589 //project mouse point onto plane
3590 LLVector3 pos;
3591 line_plane(mouse_point_global, mouse_direction_global, p, n, pos);
3592 mouse_point_global = pos;
3593
3555 LLVector3 mouse_world_start = mouse_point_global; 3594 LLVector3 mouse_world_start = mouse_point_global;
3556 LLVector3 mouse_world_end = mouse_point_global + mouse_direction_global * depth; 3595 LLVector3 mouse_world_end = mouse_point_global + mouse_direction_global * depth;
3557 3596
@@ -3562,7 +3601,7 @@ LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 de
3562 { 3601 {
3563 if (this_object->isHUDAttachment()) // is a HUD object? 3602 if (this_object->isHUDAttachment()) // is a HUD object?
3564 { 3603 {
3565 if (this_object->lineSegmentIntersect(mouse_hud_start, mouse_hud_end, this_face, 3604 if (this_object->lineSegmentIntersect(mouse_hud_start, mouse_hud_end, this_face, pick_transparent,
3566 face_hit, intersection, uv, normal, binormal)) 3605 face_hit, intersection, uv, normal, binormal))
3567 { 3606 {
3568 found = this_object; 3607 found = this_object;
@@ -3571,7 +3610,7 @@ LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 de
3571 3610
3572 else // is a world object 3611 else // is a world object
3573 { 3612 {
3574 if (this_object->lineSegmentIntersect(mouse_world_start, mouse_world_end, this_face, 3613 if (this_object->lineSegmentIntersect(mouse_world_start, mouse_world_end, this_face, pick_transparent,
3575 face_hit, intersection, uv, normal, binormal)) 3614 face_hit, intersection, uv, normal, binormal))
3576 { 3615 {
3577 found = this_object; 3616 found = this_object;
@@ -3581,13 +3620,13 @@ LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 de
3581 3620
3582 else // check ALL objects 3621 else // check ALL objects
3583 { 3622 {
3584 found = gPipeline.lineSegmentIntersectInHUD(mouse_hud_start, mouse_hud_end, 3623 found = gPipeline.lineSegmentIntersectInHUD(mouse_hud_start, mouse_hud_end, pick_transparent,
3585 face_hit, intersection, uv, normal, binormal); 3624 face_hit, intersection, uv, normal, binormal);
3586 3625
3587 if (!found) // if not found in HUD, look in world: 3626 if (!found) // if not found in HUD, look in world:
3588 3627
3589 { 3628 {
3590 found = gPipeline.lineSegmentIntersectInWorld(mouse_world_start, mouse_world_end, 3629 found = gPipeline.lineSegmentIntersectInWorld(mouse_world_start, mouse_world_end, pick_transparent,
3591 face_hit, intersection, uv, normal, binormal); 3630 face_hit, intersection, uv, normal, binormal);
3592 } 3631 }
3593 3632
@@ -3634,7 +3673,7 @@ LLVector3 LLViewerWindow::mousePointHUD(const S32 x, const S32 y) const
3634 F32 hud_x = -((F32)x - (F32)width/2.f) / height; 3673 F32 hud_x = -((F32)x - (F32)width/2.f) / height;
3635 F32 hud_y = ((F32)y - (F32)height/2.f) / height; 3674 F32 hud_y = ((F32)y - (F32)height/2.f) / height;
3636 3675
3637 return LLVector3(0.f, hud_x, hud_y); 3676 return LLVector3(0.f, hud_x/gAgent.mHUDCurZoom, hud_y/gAgent.mHUDCurZoom);
3638} 3677}
3639 3678
3640// Returns unit vector relative to camera in camera space 3679// Returns unit vector relative to camera in camera space
@@ -3811,9 +3850,8 @@ BOOL LLViewerWindow::saveImageNumbered(LLImageFormatted *image)
3811 return FALSE; 3850 return FALSE;
3812 } 3851 }
3813 3852
3814 std::string extension("." + image->getExtension());
3815
3816 LLFilePicker::ESaveFilter pick_type; 3853 LLFilePicker::ESaveFilter pick_type;
3854 std::string extension("." + image->getExtension());
3817 if (extension == ".j2c") 3855 if (extension == ".j2c")
3818 pick_type = LLFilePicker::FFSAVE_J2C; 3856 pick_type = LLFilePicker::FFSAVE_J2C;
3819 else if (extension == ".bmp") 3857 else if (extension == ".bmp")
@@ -3831,7 +3869,8 @@ BOOL LLViewerWindow::saveImageNumbered(LLImageFormatted *image)
3831 if ( ! isSnapshotLocSet()) 3869 if ( ! isSnapshotLocSet())
3832 { 3870 {
3833 std::string proposed_name( sSnapshotBaseName ); 3871 std::string proposed_name( sSnapshotBaseName );
3834 proposed_name.append( extension ); 3872
3873 // getSaveFile will append an appropriate extension to the proposed name, based on the ESaveFilter constant passed in.
3835 3874
3836 // pick a directory in which to save 3875 // pick a directory in which to save
3837 LLFilePicker& picker = LLFilePicker::instance(); 3876 LLFilePicker& picker = LLFilePicker::instance();
@@ -4148,7 +4187,7 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
4148 4187
4149 snapshot_width = image_width; 4188 snapshot_width = image_width;
4150 snapshot_height = image_height; 4189 snapshot_height = image_height;
4151 target.allocate(snapshot_width, snapshot_height, GL_RGBA, TRUE, GL_TEXTURE_RECTANGLE_ARB, TRUE); 4190 target.allocate(snapshot_width, snapshot_height, GL_RGBA, TRUE, LLTexUnit::TT_RECT_TEXTURE, TRUE);
4152 window_width = snapshot_width; 4191 window_width = snapshot_width;
4153 window_height = snapshot_height; 4192 window_height = snapshot_height;
4154 scale_factor = 1.f; 4193 scale_factor = 1.f;
@@ -4376,7 +4415,7 @@ void LLViewerWindow::drawMouselookInstructions()
4376 llround(font->getLineHeight() + 2 * INSTRUCTIONS_PAD)); 4415 llround(font->getLineHeight() + 2 * INSTRUCTIONS_PAD));
4377 4416
4378 { 4417 {
4379 LLGLSNoTexture gls_no_texture; 4418 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
4380 gGL.color4f( 0.9f, 0.9f, 0.9f, 1.0f ); 4419 gGL.color4f( 0.9f, 0.9f, 0.9f, 1.0f );
4381 gl_rect_2d( instructions_rect ); 4420 gl_rect_2d( instructions_rect );
4382 } 4421 }
@@ -4502,6 +4541,10 @@ void LLViewerWindow::dumpState()
4502 4541
4503void LLViewerWindow::stopGL(BOOL save_state) 4542void LLViewerWindow::stopGL(BOOL save_state)
4504{ 4543{
4544 //Note: --bao
4545 //if not necessary, do not change the order of the function calls in this function.
4546 //if change something, make sure it will not break anything.
4547 //especially be careful to put anything behind gImageList.destroyGL(save_state);
4505 if (!gGLManager.mIsDisabled) 4548 if (!gGLManager.mIsDisabled)
4506 { 4549 {
4507 llinfos << "Shutting down GL..." << llendl; 4550 llinfos << "Shutting down GL..." << llendl;
@@ -4510,12 +4553,12 @@ void LLViewerWindow::stopGL(BOOL save_state)
4510 LLAppViewer::getTextureCache()->pause(); 4553 LLAppViewer::getTextureCache()->pause();
4511 LLAppViewer::getImageDecodeThread()->pause(); 4554 LLAppViewer::getImageDecodeThread()->pause();
4512 LLAppViewer::getTextureFetch()->pause(); 4555 LLAppViewer::getTextureFetch()->pause();
4513 4556
4514 gSky.destroyGL(); 4557 gSky.destroyGL();
4515 stop_glerror(); 4558 stop_glerror();
4516 4559
4517 gImageList.destroyGL(save_state); 4560 LLManipTranslate::destroyGL() ;
4518 stop_glerror(); 4561 stop_glerror();
4519 4562
4520 gBumpImageList.destroyGL(); 4563 gBumpImageList.destroyGL();
4521 stop_glerror(); 4564 stop_glerror();
@@ -4539,6 +4582,14 @@ void LLViewerWindow::stopGL(BOOL save_state)
4539 gSphere.cleanupGL(); 4582 gSphere.cleanupGL();
4540 gCylinder.cleanupGL(); 4583 gCylinder.cleanupGL();
4541 4584
4585 if(gPostProcess)
4586 {
4587 gPostProcess->invalidate();
4588 }
4589
4590 gImageList.destroyGL(save_state);
4591 stop_glerror();
4592
4542 gGLManager.mIsDisabled = TRUE; 4593 gGLManager.mIsDisabled = TRUE;
4543 stop_glerror(); 4594 stop_glerror();
4544 4595
@@ -4548,25 +4599,32 @@ void LLViewerWindow::stopGL(BOOL save_state)
4548 4599
4549void LLViewerWindow::restoreGL(const std::string& progress_message) 4600void LLViewerWindow::restoreGL(const std::string& progress_message)
4550{ 4601{
4602 //Note: --bao
4603 //if not necessary, do not change the order of the function calls in this function.
4604 //if change something, make sure it will not break anything.
4605 //especially, be careful to put something before gImageList.restoreGL();
4551 if (gGLManager.mIsDisabled) 4606 if (gGLManager.mIsDisabled)
4552 { 4607 {
4553 llinfos << "Restoring GL..." << llendl; 4608 llinfos << "Restoring GL..." << llendl;
4554 gGLManager.mIsDisabled = FALSE; 4609 gGLManager.mIsDisabled = FALSE;
4610
4611 initGLDefaults();
4612 LLGLState::restoreGL();
4613 gImageList.restoreGL();
4555 4614
4556 // for future support of non-square pixels, and fonts that are properly stretched 4615 // for future support of non-square pixels, and fonts that are properly stretched
4557 //LLFontGL::destroyDefaultFonts(); 4616 //LLFontGL::destroyDefaultFonts();
4558 initFonts(); 4617 initFonts();
4559 initGLDefaults(); 4618
4560 LLGLState::restoreGL();
4561 gSky.restoreGL(); 4619 gSky.restoreGL();
4562 gPipeline.restoreGL(); 4620 gPipeline.restoreGL();
4563 LLDrawPoolWater::restoreGL(); 4621 LLDrawPoolWater::restoreGL();
4564 LLManipTranslate::restoreGL(); 4622 LLManipTranslate::restoreGL();
4565 gImageList.restoreGL(); 4623
4566 gBumpImageList.restoreGL(); 4624 gBumpImageList.restoreGL();
4567 LLDynamicTexture::restoreGL(); 4625 LLDynamicTexture::restoreGL();
4568 LLVOAvatar::restoreGL(); 4626 LLVOAvatar::restoreGL();
4569 4627
4570 gResizeScreenTexture = TRUE; 4628 gResizeScreenTexture = TRUE;
4571 4629
4572 if (gFloaterCustomize && gFloaterCustomize->getVisible()) 4630 if (gFloaterCustomize && gFloaterCustomize->getVisible())
@@ -4582,12 +4640,10 @@ void LLViewerWindow::restoreGL(const std::string& progress_message)
4582 setProgressString(progress_message); 4640 setProgressString(progress_message);
4583 } 4641 }
4584 llinfos << "...Restoring GL done" << llendl; 4642 llinfos << "...Restoring GL done" << llendl;
4585#if LL_WINDOWS 4643 if(!LLAppViewer::instance()->restoreErrorTrap())
4586 if(!LLWinDebug::checkExceptionHandler())
4587 { 4644 {
4588 llwarns << " Someone took over my exception handler (post restoreGL)!" << llendl; 4645 llwarns << " Someone took over my signal/exception handler (post restoreGL)!" << llendl;
4589 } 4646 }
4590#endif
4591 4647
4592 } 4648 }
4593} 4649}
@@ -4617,6 +4673,7 @@ void LLViewerWindow::toggleFullscreen(BOOL show_progress)
4617 if (mWindow) 4673 if (mWindow)
4618 { 4674 {
4619 mWantFullscreen = mWindow->getFullscreen() ? FALSE : TRUE; 4675 mWantFullscreen = mWindow->getFullscreen() ? FALSE : TRUE;
4676 mIsFullscreenChecked = mWindow->getFullscreen() ? FALSE : TRUE;
4620 mShowFullscreenProgress = show_progress; 4677 mShowFullscreenProgress = show_progress;
4621 } 4678 }
4622} 4679}
@@ -4643,37 +4700,89 @@ void LLViewerWindow::getTargetWindow(BOOL& fullscreen, S32& width, S32& height)
4643 } 4700 }
4644} 4701}
4645 4702
4703void LLViewerWindow::requestResolutionUpdate(bool fullscreen_checked)
4704{
4705 mResDirty = true;
4706 mWantFullscreen = fullscreen_checked;
4707 mIsFullscreenChecked = fullscreen_checked;
4708}
4646 4709
4647BOOL LLViewerWindow::checkSettings() 4710BOOL LLViewerWindow::checkSettings()
4648{ 4711{
4649 BOOL is_fullscreen = mWindow->getFullscreen(); 4712 if (mStatesDirty)
4650 if (is_fullscreen && !mWantFullscreen)
4651 { 4713 {
4652 changeDisplaySettings(FALSE, 4714 gGL.refreshState();
4653 LLCoordScreen(gSavedSettings.getS32("WindowWidth"), 4715 LLViewerShaderMgr::instance()->setShaders();
4654 gSavedSettings.getS32("WindowHeight")), 4716 mStatesDirty = false;
4655 TRUE,
4656 mShowFullscreenProgress);
4657 return TRUE;
4658 } 4717 }
4659 else if (!is_fullscreen && mWantFullscreen) 4718
4719 // We want to update the resolution AFTER the states getting refreshed not before.
4720 if (mResDirty)
4660 { 4721 {
4661 if (!LLStartUp::canGoFullscreen()) 4722 if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio"))
4662 { 4723 {
4663 return FALSE; 4724 getWindow()->setNativeAspectRatio(0.f);
4725 }
4726 else
4727 {
4728 getWindow()->setNativeAspectRatio(gSavedSettings.getF32("FullScreenAspectRatio"));
4664 } 4729 }
4665 4730
4666 LLGLState::checkStates(); 4731 reshape(getWindowDisplayWidth(), getWindowDisplayHeight());
4667 LLGLState::checkTextureChannels(); 4732
4668 changeDisplaySettings(TRUE, 4733 // force aspect ratio
4669 LLCoordScreen(gSavedSettings.getS32("FullScreenWidth"), 4734 if (mIsFullscreenChecked)
4670 gSavedSettings.getS32("FullScreenHeight")), 4735 {
4671 gSavedSettings.getBOOL("DisableVerticalSync"), 4736 LLViewerCamera::getInstance()->setAspect( getDisplayAspectRatio() );
4672 mShowFullscreenProgress); 4737 }
4673 4738
4674 LLGLState::checkStates(); 4739 mResDirty = false;
4675 LLGLState::checkTextureChannels(); 4740 // This will force a state update the next frame.
4676 return TRUE; 4741 mStatesDirty = true;
4742 }
4743
4744 BOOL is_fullscreen = mWindow->getFullscreen();
4745 if(mWantFullscreen)
4746 {
4747 LLCoordScreen screen_size;
4748 LLCoordScreen desired_screen_size(gSavedSettings.getS32("FullScreenWidth"),
4749 gSavedSettings.getS32("FullScreenHeight"));
4750 getWindow()->getSize(&screen_size);
4751 if(!is_fullscreen ||
4752 screen_size.mX != desired_screen_size.mX
4753 || screen_size.mY != desired_screen_size.mY)
4754 {
4755 if (!LLStartUp::canGoFullscreen())
4756 {
4757 return FALSE;
4758 }
4759
4760 LLGLState::checkStates();
4761 LLGLState::checkTextureChannels();
4762 changeDisplaySettings(TRUE,
4763 desired_screen_size,
4764 gSavedSettings.getBOOL("DisableVerticalSync"),
4765 mShowFullscreenProgress);
4766
4767 LLGLState::checkStates();
4768 LLGLState::checkTextureChannels();
4769 mStatesDirty = true;
4770 return TRUE;
4771 }
4772 }
4773 else
4774 {
4775 if(is_fullscreen)
4776 {
4777 // Changing to windowed mode.
4778 changeDisplaySettings(FALSE,
4779 LLCoordScreen(gSavedSettings.getS32("WindowWidth"),
4780 gSavedSettings.getS32("WindowHeight")),
4781 TRUE,
4782 mShowFullscreenProgress);
4783 mStatesDirty = true;
4784 return TRUE;
4785 }
4677 } 4786 }
4678 return FALSE; 4787 return FALSE;
4679} 4788}
@@ -4704,13 +4813,9 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size,
4704 BOOL old_fullscreen = mWindow->getFullscreen(); 4813 BOOL old_fullscreen = mWindow->getFullscreen();
4705 if (!old_fullscreen && fullscreen && !LLStartUp::canGoFullscreen()) 4814 if (!old_fullscreen && fullscreen && !LLStartUp::canGoFullscreen())
4706 { 4815 {
4707 // we can't do this now, so do it later 4816 // Not allowed to switch to fullscreen now, so exit early.
4708 4817 // *NOTE: This case should never be reached, but just-in-case.
4709 gSavedSettings.setS32("FullScreenWidth", size.mX); 4818 return TRUE;
4710 gSavedSettings.setS32("FullScreenHeight", size.mY);
4711 //gSavedSettings.setBOOL("DisableVerticalSync", disable_vsync);
4712
4713 return TRUE; // a lie..., because we'll get to it later
4714 } 4819 }
4715 4820
4716 U32 fsaa = gSavedSettings.getU32("RenderFSAASamples"); 4821 U32 fsaa = gSavedSettings.getU32("RenderFSAASamples");
@@ -4797,7 +4902,7 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size,
4797#if LL_WINDOWS 4902#if LL_WINDOWS
4798 // Only trigger a reshape after switching to fullscreen; otherwise rely on the windows callback 4903 // Only trigger a reshape after switching to fullscreen; otherwise rely on the windows callback
4799 // (otherwise size is wrong; this is the entire window size, reshape wants the visible window size) 4904 // (otherwise size is wrong; this is the entire window size, reshape wants the visible window size)
4800 if (fullscreen) 4905 if (fullscreen && result_first_try)
4801#endif 4906#endif
4802 { 4907 {
4803 reshape(size.mX, size.mY); 4908 reshape(size.mX, size.mY);
@@ -5099,25 +5204,41 @@ LLPickInfo::~LLPickInfo()
5099 5204
5100void LLPickInfo::fetchResults() 5205void LLPickInfo::fetchResults()
5101{ 5206{
5207
5208 S32 face_hit = -1;
5209 LLVector3 intersection, normal, binormal;
5210 LLVector2 uv;
5211
5212 LLHUDIcon* hit_icon = gViewerWindow->cursorIntersectIcon(mMousePt.mX, mMousePt.mY, 512.f, &intersection);
5213
5214 F32 icon_dist = 0.f;
5215 if (hit_icon)
5216 {
5217 icon_dist = (LLViewerCamera::getInstance()->getOrigin()-intersection).magVec();
5218 }
5219 LLViewerObject* hit_object = gViewerWindow->cursorIntersect(mMousePt.mX, mMousePt.mY, 512.f,
5220 NULL, -1, mPickTransparent, &face_hit,
5221 &intersection, &uv, &normal, &binormal);
5222
5102 // read back colors and depth values from buffer 5223 // read back colors and depth values from buffer
5103 glReadPixels(mScreenRegion.mLeft, mScreenRegion.mBottom, mScreenRegion.getWidth(), mScreenRegion.getHeight(), GL_RGBA, GL_UNSIGNED_BYTE, mPickBuffer); 5224 //glReadPixels(mScreenRegion.mLeft, mScreenRegion.mBottom, mScreenRegion.getWidth(), mScreenRegion.getHeight(), GL_RGBA, GL_UNSIGNED_BYTE, mPickBuffer);
5104 glReadPixels(mScreenRegion.mLeft, mScreenRegion.mBottom, mScreenRegion.getWidth(), mScreenRegion.getHeight(), GL_DEPTH_COMPONENT, GL_FLOAT, mPickDepthBuffer ); 5225 //glReadPixels(mScreenRegion.mLeft, mScreenRegion.mBottom, mScreenRegion.getWidth(), mScreenRegion.getHeight(), GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, mPickDepthBuffer );
5105 5226
5106 // find pick region that is fully onscreen 5227 // find pick region that is fully onscreen
5107 LLCoordGL scaled_pick_point;; 5228 LLCoordGL scaled_pick_point;;
5108 scaled_pick_point.mX = llclamp(llround((F32)mMousePt.mX * gViewerWindow->getDisplayScale().mV[VX]), PICK_HALF_WIDTH, gViewerWindow->getWindowDisplayWidth() - PICK_HALF_WIDTH); 5229 scaled_pick_point.mX = llclamp(llround((F32)mMousePt.mX * gViewerWindow->getDisplayScale().mV[VX]), PICK_HALF_WIDTH, gViewerWindow->getWindowDisplayWidth() - PICK_HALF_WIDTH);
5109 scaled_pick_point.mY = llclamp(llround((F32)mMousePt.mY * gViewerWindow->getDisplayScale().mV[VY]), PICK_HALF_WIDTH, gViewerWindow->getWindowDisplayHeight() - PICK_HALF_WIDTH); 5230 scaled_pick_point.mY = llclamp(llround((F32)mMousePt.mY * gViewerWindow->getDisplayScale().mV[VY]), PICK_HALF_WIDTH, gViewerWindow->getWindowDisplayHeight() - PICK_HALF_WIDTH);
5110 S32 pixel_index = PICK_HALF_WIDTH * PICK_DIAMETER + PICK_HALF_WIDTH; 5231 //S32 pixel_index = PICK_HALF_WIDTH * PICK_DIAMETER + PICK_HALF_WIDTH;
5111 S32 pick_id = (U32)mPickBuffer[(pixel_index * 4) + 0] << 16 | (U32)mPickBuffer[(pixel_index * 4) + 1] << 8 | (U32)mPickBuffer[(pixel_index * 4) + 2]; 5232 //S32 pick_id = (U32)mPickBuffer[(pixel_index * 4) + 0] << 16 | (U32)mPickBuffer[(pixel_index * 4) + 1] << 8 | (U32)mPickBuffer[(pixel_index * 4) + 2];
5112 F32 depth = mPickDepthBuffer[pixel_index]; 5233 //F32 depth = mPickDepthBuffer[pixel_index];
5113 5234
5114 S32 x_offset = mMousePt.mX - llround((F32)scaled_pick_point.mX / gViewerWindow->getDisplayScale().mV[VX]); 5235 //S32 x_offset = mMousePt.mX - llround((F32)scaled_pick_point.mX / gViewerWindow->getDisplayScale().mV[VX]);
5115 S32 y_offset = mMousePt.mY - llround((F32)scaled_pick_point.mY / gViewerWindow->getDisplayScale().mV[VY]); 5236 //S32 y_offset = mMousePt.mY - llround((F32)scaled_pick_point.mY / gViewerWindow->getDisplayScale().mV[VY]);
5116 5237
5117 mPickPt = mMousePt; 5238 mPickPt = mMousePt;
5118 5239
5119 // we hit nothing, scan surrounding pixels for something useful 5240 // we hit nothing, scan surrounding pixels for something useful
5120 if (!pick_id) 5241 /*if (!pick_id)
5121 { 5242 {
5122 S32 closest_distance = 10000; 5243 S32 closest_distance = 10000;
5123 //S32 closest_pick_name = 0; 5244 //S32 closest_pick_name = 0;
@@ -5138,23 +5259,28 @@ void LLPickInfo::fetchResults()
5138 } 5259 }
5139 } 5260 }
5140 } 5261 }
5141 } 5262 }*/
5142 5263
5143 U32 te_offset = ((U32)pick_id >> 20);
5144 pick_id &= 0x000fffff;
5145 5264
5146 //unproject relative clicked coordinate from window coordinate using GL 5265 U32 te_offset = face_hit > -1 ? face_hit : 0;
5147 GLint viewport[4]; 5266 //pick_id &= 0x000fffff;
5148 GLdouble modelview[16];
5149 GLdouble projection[16];
5150 GLfloat winX, winY;
5151 GLdouble posX, posY, posZ;
5152 5267
5153 LLViewerObject* objectp = gObjectList.getSelectedObject(pick_id); 5268 //unproject relative clicked coordinate from window coordinate using GL
5269
5270 LLViewerObject* objectp = hit_object;
5154 5271
5155 if (pick_id == (S32)GL_NAME_PARCEL_WALL) 5272 //if (pick_id == (S32)GL_NAME_PARCEL_WALL)
5273 //{
5274 // mPickType = PICK_PARCEL_WALL;
5275 //}
5276 if (hit_icon &&
5277 (!objectp ||
5278 icon_dist < (LLViewerCamera::getInstance()->getOrigin()-intersection).magVec()))
5156 { 5279 {
5157 mPickType = PICK_PARCEL_WALL; 5280 // was this name referring to a hud icon?
5281 mHUDIcon = hit_icon;
5282 mPickType = PICK_ICON;
5283 mPosGlobal = mHUDIcon->getPositionGlobal();
5158 } 5284 }
5159 else if (objectp) 5285 else if (objectp)
5160 { 5286 {
@@ -5182,11 +5308,11 @@ void LLPickInfo::fetchResults()
5182 { 5308 {
5183 mPickType = PICK_OBJECT; 5309 mPickType = PICK_OBJECT;
5184 } 5310 }
5185 mObjectOffset = gAgent.calcFocusOffset(objectp, mPickPt.mX, mPickPt.mY); 5311 mObjectOffset = gAgent.calcFocusOffset(objectp, intersection, mPickPt.mX, mPickPt.mY);
5186 mObjectID = objectp->mID; 5312 mObjectID = objectp->mID;
5187 mObjectFace = (te_offset == NO_FACE) ? -1 : (S32)te_offset; 5313 mObjectFace = (te_offset == NO_FACE) ? -1 : (S32)te_offset;
5188 5314
5189 glh::matrix4f newModel((F32*)LLViewerCamera::getInstance()->getModelview().mMatrix); 5315 /*glh::matrix4f newModel((F32*)LLViewerCamera::getInstance()->getModelview().mMatrix);
5190 5316
5191 for(U32 i = 0; i < 16; ++i) 5317 for(U32 i = 0; i < 16; ++i)
5192 { 5318 {
@@ -5198,9 +5324,9 @@ void LLPickInfo::fetchResults()
5198 winX = ((F32)mPickPt.mX) * gViewerWindow->getDisplayScale().mV[VX]; 5324 winX = ((F32)mPickPt.mX) * gViewerWindow->getDisplayScale().mV[VX];
5199 winY = ((F32)mPickPt.mY) * gViewerWindow->getDisplayScale().mV[VY]; 5325 winY = ((F32)mPickPt.mY) * gViewerWindow->getDisplayScale().mV[VY];
5200 5326
5201 gluUnProject( winX, winY, depth, modelview, projection, viewport, &posX, &posY, &posZ); 5327 gluUnProject( winX, winY, depth, modelview, projection, viewport, &posX, &posY, &posZ);*/
5202 5328
5203 mPosGlobal = gAgent.getPosGlobalFromAgent(LLVector3(posX, posY, posZ)); 5329 mPosGlobal = gAgent.getPosGlobalFromAgent(intersection);
5204 5330
5205 if (mWantSurfaceInfo) 5331 if (mWantSurfaceInfo)
5206 { 5332 {
@@ -5208,17 +5334,7 @@ void LLPickInfo::fetchResults()
5208 } 5334 }
5209 } 5335 }
5210 } 5336 }
5211 else 5337
5212 {
5213 // was this name referring to a hud icon?
5214 mHUDIcon = LLHUDIcon::handlePick(pick_id);
5215 if (mHUDIcon)
5216 {
5217 mPickType = PICK_ICON;
5218 mPosGlobal = mHUDIcon->getPositionGlobal();
5219 }
5220 }
5221
5222 if (mPickCallback) 5338 if (mPickCallback)
5223 { 5339 {
5224 mPickCallback(*this); 5340 mPickCallback(*this);
@@ -5232,16 +5348,19 @@ LLPointer<LLViewerObject> LLPickInfo::getObject() const
5232 5348
5233void LLPickInfo::updateXYCoords() 5349void LLPickInfo::updateXYCoords()
5234{ 5350{
5235 const LLTextureEntry* tep = getObject()->getTE(mObjectFace); 5351 if (mObjectFace > -1)
5236 LLPointer<LLViewerImage> imagep = gImageList.getImage(tep->getID());
5237 if(mUVCoords.mV[VX] >= 0.f && mUVCoords.mV[VY] >= 0.f && imagep.notNull())
5238 { 5352 {
5239 LLCoordGL coords; 5353 const LLTextureEntry* tep = getObject()->getTE(mObjectFace);
5240 5354 LLPointer<LLViewerImage> imagep = gImageList.getImage(tep->getID());
5241 coords.mX = llround(mUVCoords.mV[VX] * (F32)imagep->getWidth()); 5355 if(mUVCoords.mV[VX] >= 0.f && mUVCoords.mV[VY] >= 0.f && imagep.notNull())
5242 coords.mY = llround(mUVCoords.mV[VY] * (F32)imagep->getHeight()); 5356 {
5357 LLCoordGL coords;
5358
5359 coords.mX = llround(mUVCoords.mV[VX] * (F32)imagep->getWidth());
5360 coords.mY = llround(mUVCoords.mV[VY] * (F32)imagep->getHeight());
5243 5361
5244 gViewerWindow->getWindow()->convertCoords(coords, &mXYCoords); 5362 gViewerWindow->getWindow()->convertCoords(coords, &mXYCoords);
5363 }
5245 } 5364 }
5246} 5365}
5247 5366
@@ -5252,7 +5371,7 @@ void LLPickInfo::drawPickBuffer() const
5252 gGL.pushMatrix(); 5371 gGL.pushMatrix();
5253 LLGLDisable no_blend(GL_BLEND); 5372 LLGLDisable no_blend(GL_BLEND);
5254 LLGLDisable no_alpha_test(GL_ALPHA_TEST); 5373 LLGLDisable no_alpha_test(GL_ALPHA_TEST);
5255 LLGLSNoTexture no_texture; 5374 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
5256 glPixelZoom(10.f, 10.f); 5375 glPixelZoom(10.f, 10.f);
5257 LLVector2 display_scale = gViewerWindow->getDisplayScale(); 5376 LLVector2 display_scale = gViewerWindow->getDisplayScale();
5258 glRasterPos2f(((F32)mMousePt.mX * display_scale.mV[VX] + 10.f), 5377 glRasterPos2f(((F32)mMousePt.mX * display_scale.mV[VX] + 10.f),
@@ -5304,7 +5423,7 @@ void LLPickInfo::getSurfaceInfo()
5304 if (objectp) 5423 if (objectp)
5305 { 5424 {
5306 if (gViewerWindow->cursorIntersect(llround((F32)mMousePt.mX), llround((F32)mMousePt.mY), 1024.f, 5425 if (gViewerWindow->cursorIntersect(llround((F32)mMousePt.mX), llround((F32)mMousePt.mY), 1024.f,
5307 objectp, -1, 5426 objectp, -1, mPickTransparent,
5308 &mObjectFace, 5427 &mObjectFace,
5309 &mIntersection, 5428 &mIntersection,
5310 &mSTCoords, 5429 &mSTCoords,
@@ -5313,7 +5432,7 @@ void LLPickInfo::getSurfaceInfo()
5313 { 5432 {
5314 // if we succeeded with the intersect above, compute the texture coordinates: 5433 // if we succeeded with the intersect above, compute the texture coordinates:
5315 5434
5316 if (objectp->mDrawable.notNull()) 5435 if (objectp->mDrawable.notNull() && mObjectFace > -1)
5317 { 5436 {
5318 LLFace* facep = objectp->mDrawable->getFace(mObjectFace); 5437 LLFace* facep = objectp->mDrawable->getFace(mObjectFace);
5319 5438
diff --git a/linden/indra/newview/llviewerwindow.h b/linden/indra/newview/llviewerwindow.h
index 21df0d5..c83c57b 100644
--- a/linden/indra/newview/llviewerwindow.h
+++ b/linden/indra/newview/llviewerwindow.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -310,9 +310,13 @@ public:
310 LLPickInfo pickImmediate(S32 x, S32 y, BOOL pick_transparent); 310 LLPickInfo pickImmediate(S32 x, S32 y, BOOL pick_transparent);
311 static void hoverPickCallback(const LLPickInfo& pick_info); 311 static void hoverPickCallback(const LLPickInfo& pick_info);
312 312
313 LLHUDIcon* cursorIntersectIcon(S32 mouse_x, S32 mouse_y, F32 depth,
314 LLVector3* intersection);
315
313 LLViewerObject* cursorIntersect(S32 mouse_x = -1, S32 mouse_y = -1, F32 depth = 512.f, 316 LLViewerObject* cursorIntersect(S32 mouse_x = -1, S32 mouse_y = -1, F32 depth = 512.f,
314 LLViewerObject *this_object = NULL, 317 LLViewerObject *this_object = NULL,
315 S32 this_face = -1, 318 S32 this_face = -1,
319 BOOL pick_transparent = FALSE,
316 S32* face_hit = NULL, 320 S32* face_hit = NULL,
317 LLVector3 *intersection = NULL, 321 LLVector3 *intersection = NULL,
318 LLVector2 *uv = NULL, 322 LLVector2 *uv = NULL,
@@ -340,6 +344,7 @@ public:
340 void toggleFullscreen(BOOL show_progress); 344 void toggleFullscreen(BOOL show_progress);
341 345
342 // handle shutting down GL and bringing it back up 346 // handle shutting down GL and bringing it back up
347 void requestResolutionUpdate(bool fullscreen_checked);
343 BOOL checkSettings(); 348 BOOL checkSettings();
344 void restartDisplay(BOOL show_progress_bar); 349 void restartDisplay(BOOL show_progress_bar);
345 BOOL changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, BOOL disable_vsync, BOOL show_progress_bar); 350 BOOL changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, BOOL disable_vsync, BOOL show_progress_bar);
@@ -421,6 +426,11 @@ protected:
421 std::string mInitAlert; // Window / GL initialization requires an alert 426 std::string mInitAlert; // Window / GL initialization requires an alert
422 427
423 class LLDebugText* mDebugText; // Internal class for debug text 428 class LLDebugText* mDebugText; // Internal class for debug text
429
430 bool mResDirty;
431 bool mStatesDirty;
432 bool mIsFullscreenChecked; // Did the user check the fullscreen checkbox in the display settings
433 U32 mCurrResolutionIndex;
424 434
425protected: 435protected:
426 static std::string sSnapshotBaseName; 436 static std::string sSnapshotBaseName;
@@ -473,6 +483,7 @@ extern LLVector3 gDebugRaycastIntersection;
473extern LLVector2 gDebugRaycastTexCoord; 483extern LLVector2 gDebugRaycastTexCoord;
474extern LLVector3 gDebugRaycastNormal; 484extern LLVector3 gDebugRaycastNormal;
475extern LLVector3 gDebugRaycastBinormal; 485extern LLVector3 gDebugRaycastBinormal;
486extern S32 gDebugRaycastFaceHit;
476 487
477extern S32 CHAT_BAR_HEIGHT; 488extern S32 CHAT_BAR_HEIGHT;
478 489
diff --git a/linden/indra/newview/llvlcomposition.cpp b/linden/indra/newview/llvlcomposition.cpp
index b60b07e..bc7a2f4 100644
--- a/linden/indra/newview/llvlcomposition.cpp
+++ b/linden/indra/newview/llvlcomposition.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvlcomposition.h b/linden/indra/newview/llvlcomposition.h
index 0ff9df4..9c467ad 100644
--- a/linden/indra/newview/llvlcomposition.h
+++ b/linden/indra/newview/llvlcomposition.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvlmanager.cpp b/linden/indra/newview/llvlmanager.cpp
index f4dade5..c556961 100644
--- a/linden/indra/newview/llvlmanager.cpp
+++ b/linden/indra/newview/llvlmanager.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvlmanager.h b/linden/indra/newview/llvlmanager.h
index f6c138c..7d2cd09 100644
--- a/linden/indra/newview/llvlmanager.h
+++ b/linden/indra/newview/llvlmanager.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp
index 7d70dd2..3d2523e 100644
--- a/linden/indra/newview/llvoavatar.cpp
+++ b/linden/indra/newview/llvoavatar.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -244,6 +244,11 @@ static F32 calc_bouncy_animation(F32 x)
244 return -(cosf(x * F_PI * 2.5f - F_PI_BY_TWO))*(0.4f + x * -0.1f) + x * 1.3f; 244 return -(cosf(x * F_PI * 2.5f - F_PI_BY_TWO))*(0.4f + x * -0.1f) + x * 1.3f;
245} 245}
246 246
247BOOL LLLineSegmentCapsuleIntersect(const LLVector3& start, const LLVector3& end, const LLVector3& p1, const LLVector3& p2, const F32& radius, LLVector3& result)
248{
249 return FALSE;
250}
251
247//----------------------------------------------------------------------------- 252//-----------------------------------------------------------------------------
248// Static Data 253// Static Data
249//----------------------------------------------------------------------------- 254//-----------------------------------------------------------------------------
@@ -267,6 +272,7 @@ LLUUID LLVOAvatar::sStepSounds[LL_MCODE_END] =
267 LLUUID(SND_RUBBER_RUBBER) 272 LLUUID(SND_RUBBER_RUBBER)
268}; 273};
269 274
275// static
270S32 LLVOAvatar::sRenderName = RENDER_NAME_ALWAYS; 276S32 LLVOAvatar::sRenderName = RENDER_NAME_ALWAYS;
271BOOL LLVOAvatar::sRenderGroupTitles = TRUE; 277BOOL LLVOAvatar::sRenderGroupTitles = TRUE;
272S32 LLVOAvatar::sNumVisibleChatBubbles = 0; 278S32 LLVOAvatar::sNumVisibleChatBubbles = 0;
@@ -279,9 +285,12 @@ BOOL LLVOAvatar::sVisibleInFirstPerson = FALSE;
279F32 LLVOAvatar::sLODFactor = 1.f; 285F32 LLVOAvatar::sLODFactor = 1.f;
280BOOL LLVOAvatar::sUseImpostors = FALSE; 286BOOL LLVOAvatar::sUseImpostors = FALSE;
281BOOL LLVOAvatar::sJointDebug = FALSE; 287BOOL LLVOAvatar::sJointDebug = FALSE;
282
283S32 LLVOAvatar::sCurJoint = 0; 288S32 LLVOAvatar::sCurJoint = 0;
284S32 LLVOAvatar::sCurVolume = 0; 289S32 LLVOAvatar::sCurVolume = 0;
290F32 LLVOAvatar::sUnbakedTime = 0.f;
291F32 LLVOAvatar::sUnbakedUpdateTime = 0.f;
292F32 LLVOAvatar::sGreyTime = 0.f;
293F32 LLVOAvatar::sGreyUpdateTime = 0.f;
285 294
286struct LLAvatarTexData 295struct LLAvatarTexData
287{ 296{
@@ -753,7 +762,7 @@ LLVOAvatar::LLVOAvatar(
753 mRippleTimeLast = 0.f; 762 mRippleTimeLast = 0.f;
754 763
755 mShadowImagep = gImageList.getImageFromFile("foot_shadow.j2c"); 764 mShadowImagep = gImageList.getImageFromFile("foot_shadow.j2c");
756 mShadowImagep->bind(); 765 gGL.getTexUnit(0)->bind(mShadowImagep.get());
757 mShadowImagep->setClamp(TRUE, TRUE); 766 mShadowImagep->setClamp(TRUE, TRUE);
758 767
759 mInAir = FALSE; 768 mInAir = FALSE;
@@ -1062,11 +1071,29 @@ void LLVOAvatar::deleteLayerSetCaches()
1062 if( mLowerBodyLayerSet ) mLowerBodyLayerSet->deleteCaches(); 1071 if( mLowerBodyLayerSet ) mLowerBodyLayerSet->deleteCaches();
1063 if( mEyesLayerSet ) mEyesLayerSet->deleteCaches(); 1072 if( mEyesLayerSet ) mEyesLayerSet->deleteCaches();
1064 if( mSkirtLayerSet ) mSkirtLayerSet->deleteCaches(); 1073 if( mSkirtLayerSet ) mSkirtLayerSet->deleteCaches();
1074
1075 if(mUpperMaskTexName)
1076 {
1077 glDeleteTextures(1, (GLuint*)&mUpperMaskTexName);
1078 mUpperMaskTexName = 0 ;
1079 }
1080 if(mHeadMaskTexName)
1081 {
1082 glDeleteTextures(1, (GLuint*)&mHeadMaskTexName);
1083 mHeadMaskTexName = 0 ;
1084 }
1085 if(mLowerMaskTexName)
1086 {
1087 glDeleteTextures(1, (GLuint*)&mLowerMaskTexName);
1088 mLowerMaskTexName = 0 ;
1089 }
1065} 1090}
1066 1091
1067// static 1092// static
1068BOOL LLVOAvatar::areAllNearbyInstancesBaked() 1093BOOL LLVOAvatar::areAllNearbyInstancesBaked(S32& grey_avatars)
1069{ 1094{
1095 BOOL res = TRUE;
1096 grey_avatars = 0;
1070 for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin(); 1097 for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
1071 iter != LLCharacter::sInstances.end(); ++iter) 1098 iter != LLCharacter::sInstances.end(); ++iter)
1072 { 1099 {
@@ -1075,18 +1102,22 @@ BOOL LLVOAvatar::areAllNearbyInstancesBaked()
1075 { 1102 {
1076 continue; 1103 continue;
1077 } 1104 }
1078 else 1105// else
1079 if( inst->getPixelArea() < MIN_PIXEL_AREA_FOR_COMPOSITE ) 1106// if( inst->getPixelArea() < MIN_PIXEL_AREA_FOR_COMPOSITE )
1080 { 1107// {
1081 return TRUE; // Assumes sInstances is sorted by pixel area. 1108// return res; // Assumes sInstances is sorted by pixel area.
1082 } 1109// }
1083 else 1110 else
1084 if( !inst->isFullyBaked() ) 1111 if( !inst->isFullyBaked() )
1085 { 1112 {
1086 return FALSE; 1113 res = FALSE;
1114 if (inst->mHasGrey)
1115 {
1116 ++grey_avatars;
1117 }
1087 } 1118 }
1088 } 1119 }
1089 return TRUE; 1120 return res;
1090} 1121}
1091 1122
1092// static 1123// static
@@ -1131,7 +1162,7 @@ void LLVOAvatar::dumpBakedStatus()
1131 } 1162 }
1132 1163
1133 1164
1134 F64 dist_to_camera = (inst->getPositionGlobal() - camera_pos_global).magVec(); 1165 F64 dist_to_camera = (inst->getPositionGlobal() - camera_pos_global).length();
1135 llcont << " " << dist_to_camera << "m "; 1166 llcont << " " << dist_to_camera << "m ";
1136 1167
1137 llcont << " " << inst->mPixelArea << " pixels"; 1168 llcont << " " << inst->mPixelArea << " pixels";
@@ -1569,6 +1600,96 @@ void LLVOAvatar::getSpatialExtents(LLVector3& newMin, LLVector3& newMax)
1569 newMax += buffer; 1600 newMax += buffer;
1570} 1601}
1571 1602
1603//-----------------------------------------------------------------------------
1604// renderCollisionVolumes()
1605//-----------------------------------------------------------------------------
1606void LLVOAvatar::renderCollisionVolumes()
1607{
1608 for (S32 i = 0; i < mNumCollisionVolumes; i++)
1609 {
1610 mCollisionVolumes[i].renderCollision();
1611 }
1612
1613 if (mNameText.notNull())
1614 {
1615 LLVector3 unused;
1616 mNameText->lineSegmentIntersect(LLVector3(0,0,0), LLVector3(0,0,1), unused, TRUE);
1617 }
1618}
1619
1620BOOL LLVOAvatar::lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
1621 S32 face,
1622 BOOL pick_transparent,
1623 S32* face_hit,
1624 LLVector3* intersection,
1625 LLVector2* tex_coord,
1626 LLVector3* normal,
1627 LLVector3* bi_normal
1628 )
1629{
1630
1631 if (mIsSelf && !gAgent.needsRenderAvatar() || !LLPipeline::sPickAvatar)
1632 {
1633 return FALSE;
1634 }
1635
1636 if (lineSegmentBoundingBox(start, end))
1637 {
1638 for (S32 i = 0; i < mNumCollisionVolumes; ++i)
1639 {
1640 mCollisionVolumes[i].updateWorldMatrix();
1641
1642 glh::matrix4f mat((F32*) mCollisionVolumes[i].getXform()->getWorldMatrix().mMatrix);
1643 glh::matrix4f inverse = mat.inverse();
1644 glh::matrix4f norm_mat = inverse.transpose();
1645
1646 glh::vec3f p1(start.mV);
1647 glh::vec3f p2(end.mV);
1648
1649 inverse.mult_matrix_vec(p1);
1650 inverse.mult_matrix_vec(p2);
1651
1652 LLVector3 position;
1653 LLVector3 norm;
1654
1655 if (linesegment_sphere(LLVector3(p1.v), LLVector3(p2.v), LLVector3(0,0,0), 1.f, position, norm))
1656 {
1657 glh::vec3f res_pos(position.mV);
1658 mat.mult_matrix_vec(res_pos);
1659
1660 norm.normalize();
1661 glh::vec3f res_norm(norm.mV);
1662 norm_mat.mult_matrix_dir(res_norm);
1663
1664 if (intersection)
1665 {
1666 *intersection = LLVector3(res_pos.v);
1667 }
1668
1669 if (normal)
1670 {
1671 *normal = LLVector3(res_norm.v);
1672 }
1673
1674 return TRUE;
1675 }
1676 }
1677 }
1678
1679 LLVector3 position;
1680 if (mNameText.notNull() && mNameText->lineSegmentIntersect(start, end, position))
1681 {
1682 if (intersection)
1683 {
1684 *intersection = position;
1685 }
1686
1687 return TRUE;
1688 }
1689
1690 return FALSE;
1691}
1692
1572 1693
1573//----------------------------------------------------------------------------- 1694//-----------------------------------------------------------------------------
1574// parseSkeletonFile() 1695// parseSkeletonFile()
@@ -2737,8 +2858,8 @@ void LLVOAvatar::idleUpdateMisc(bool detailed_update)
2737 else 2858 else
2738 { 2859 {
2739 getSpatialExtents(ext[0], ext[1]); 2860 getSpatialExtents(ext[0], ext[1]);
2740 if ((ext[1]-mImpostorExtents[1]).magVec() > 0.05f || 2861 if ((ext[1]-mImpostorExtents[1]).length() > 0.05f ||
2741 (ext[0]-mImpostorExtents[0]).magVec() > 0.05f) 2862 (ext[0]-mImpostorExtents[0]).length() > 0.05f)
2742 { 2863 {
2743 mNeedsImpostorUpdate = TRUE; 2864 mNeedsImpostorUpdate = TRUE;
2744 } 2865 }
@@ -2905,7 +3026,7 @@ void LLVOAvatar::idleUpdateWindEffect()
2905 F32 time_delta = mRippleTimer.getElapsedTimeF32() - mRippleTimeLast; 3026 F32 time_delta = mRippleTimer.getElapsedTimeF32() - mRippleTimeLast;
2906 mRippleTimeLast = mRippleTimer.getElapsedTimeF32(); 3027 mRippleTimeLast = mRippleTimer.getElapsedTimeF32();
2907 LLVector3 velocity = getVelocity(); 3028 LLVector3 velocity = getVelocity();
2908 F32 speed = velocity.magVec(); 3029 F32 speed = velocity.length();
2909 //RN: velocity varies too much frame to frame for this to work 3030 //RN: velocity varies too much frame to frame for this to work
2910 mRippleAccel.clearVec();//lerp(mRippleAccel, (velocity - mLastVel) * time_delta, LLCriticalDamp::getInterpolant(0.02f)); 3031 mRippleAccel.clearVec();//lerp(mRippleAccel, (velocity - mLastVel) * time_delta, LLCriticalDamp::getInterpolant(0.02f));
2911 mLastVel = velocity; 3032 mLastVel = velocity;
@@ -2924,7 +3045,7 @@ void LLVOAvatar::idleUpdateWindEffect()
2924 } 3045 }
2925 3046
2926 wind.mV[VZ] += hover_strength; 3047 wind.mV[VZ] += hover_strength;
2927 wind.normVec(); 3048 wind.normalize();
2928 3049
2929 wind.mV[VW] = llmin(0.025f + (speed * 0.015f) + hover_strength, 0.5f); 3050 wind.mV[VW] = llmin(0.025f + (speed * 0.015f) + hover_strength, 0.5f);
2930 F32 interp; 3051 F32 interp;
@@ -3047,10 +3168,10 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
3047 LLVector3 pixel_up_vec; 3168 LLVector3 pixel_up_vec;
3048 LLViewerCamera::getInstance()->getPixelVectors(root_pos_last, pixel_up_vec, pixel_right_vec); 3169 LLViewerCamera::getInstance()->getPixelVectors(root_pos_last, pixel_up_vec, pixel_right_vec);
3049 LLVector3 camera_to_av = root_pos_last - LLViewerCamera::getInstance()->getOrigin(); 3170 LLVector3 camera_to_av = root_pos_last - LLViewerCamera::getInstance()->getOrigin();
3050 camera_to_av.normVec(); 3171 camera_to_av.normalize();
3051 LLVector3 local_camera_at = camera_to_av * ~root_rot; 3172 LLVector3 local_camera_at = camera_to_av * ~root_rot;
3052 LLVector3 local_camera_up = camera_to_av % LLViewerCamera::getInstance()->getLeftAxis(); 3173 LLVector3 local_camera_up = camera_to_av % LLViewerCamera::getInstance()->getLeftAxis();
3053 local_camera_up.normVec(); 3174 local_camera_up.normalize();
3054 local_camera_up = local_camera_up * ~root_rot; 3175 local_camera_up = local_camera_up * ~root_rot;
3055 3176
3056 local_camera_up.scaleVec(mBodySize * 0.5f); 3177 local_camera_up.scaleVec(mBodySize * 0.5f);
@@ -3502,7 +3623,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
3502 3623
3503 LLVector3 xyVel = getVelocity(); 3624 LLVector3 xyVel = getVelocity();
3504 xyVel.mV[VZ] = 0.0f; 3625 xyVel.mV[VZ] = 0.0f;
3505 speed = xyVel.magVec(); 3626 speed = xyVel.length();
3506 3627
3507 BOOL throttle = TRUE; 3628 BOOL throttle = TRUE;
3508 3629
@@ -3587,14 +3708,14 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
3587 if (mIsSelf) 3708 if (mIsSelf)
3588 { 3709 {
3589 primDir = agent.getAtAxis() - projected_vec(agent.getAtAxis(), agent.getReferenceUpVector()); 3710 primDir = agent.getAtAxis() - projected_vec(agent.getAtAxis(), agent.getReferenceUpVector());
3590 primDir.normVec(); 3711 primDir.normalize();
3591 } 3712 }
3592 else 3713 else
3593 { 3714 {
3594 primDir = getRotation().getMatrix3().getFwdRow(); 3715 primDir = getRotation().getMatrix3().getFwdRow();
3595 } 3716 }
3596 LLVector3 velDir = getVelocity(); 3717 LLVector3 velDir = getVelocity();
3597 velDir.normVec(); 3718 velDir.normalize();
3598 if ( mSignaledAnimations.find(ANIM_AGENT_WALK) != mSignaledAnimations.end()) 3719 if ( mSignaledAnimations.find(ANIM_AGENT_WALK) != mSignaledAnimations.end())
3599 { 3720 {
3600 F32 vpD = velDir * primDir; 3721 F32 vpD = velDir * primDir;
@@ -3616,13 +3737,13 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
3616 LLVector3 at_axis = LLViewerCamera::getInstance()->getAtAxis(); 3737 LLVector3 at_axis = LLViewerCamera::getInstance()->getAtAxis();
3617 LLVector3 up_vector = gAgent.getReferenceUpVector(); 3738 LLVector3 up_vector = gAgent.getReferenceUpVector();
3618 at_axis -= up_vector * (at_axis * up_vector); 3739 at_axis -= up_vector * (at_axis * up_vector);
3619 at_axis.normVec(); 3740 at_axis.normalize();
3620 3741
3621 F32 dot = fwdDir * at_axis; 3742 F32 dot = fwdDir * at_axis;
3622 if (dot < 0.f) 3743 if (dot < 0.f)
3623 { 3744 {
3624 fwdDir -= 2.f * at_axis * dot; 3745 fwdDir -= 2.f * at_axis * dot;
3625 fwdDir.normVec(); 3746 fwdDir.normalize();
3626 } 3747 }
3627 } 3748 }
3628 3749
@@ -3690,7 +3811,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
3690 3811
3691 // Now compute the full world space rotation for the whole body (wQv) 3812 // Now compute the full world space rotation for the whole body (wQv)
3692 LLVector3 leftDir = upDir % fwdDir; 3813 LLVector3 leftDir = upDir % fwdDir;
3693 leftDir.normVec(); 3814 leftDir.normalize();
3694 fwdDir = leftDir % upDir; 3815 fwdDir = leftDir % upDir;
3695 LLQuaternion wQv( fwdDir, leftDir, upDir ); 3816 LLQuaternion wQv( fwdDir, leftDir, upDir );
3696 3817
@@ -4131,7 +4252,7 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass)
4131 LLVector3 collide_point = slaved_pos; 4252 LLVector3 collide_point = slaved_pos;
4132 collide_point.mV[VZ] -= foot_plane_normal.mV[VZ] * (dist_from_plane + COLLISION_TOLERANCE - FOOT_COLLIDE_FUDGE); 4253 collide_point.mV[VZ] -= foot_plane_normal.mV[VZ] * (dist_from_plane + COLLISION_TOLERANCE - FOOT_COLLIDE_FUDGE);
4133 4254
4134 gGL.begin(LLVertexBuffer::LINES); 4255 gGL.begin(LLRender::LINES);
4135 { 4256 {
4136 F32 SQUARE_SIZE = 0.2f; 4257 F32 SQUARE_SIZE = 0.2f;
4137 gGL.color4f(1.f, 0.f, 0.f, 1.f); 4258 gGL.color4f(1.f, 0.f, 0.f, 1.f);
@@ -4278,7 +4399,7 @@ U32 LLVOAvatar::renderFootShadows()
4278 LLGLDepthTest test(GL_TRUE, GL_FALSE); 4399 LLGLDepthTest test(GL_TRUE, GL_FALSE);
4279 //render foot shadows 4400 //render foot shadows
4280 LLGLEnable blend(GL_BLEND); 4401 LLGLEnable blend(GL_BLEND);
4281 mShadowImagep->bind(); 4402 gGL.getTexUnit(0)->bind(mShadowImagep.get());
4282 glColor4fv(mShadow0Facep->getRenderColor().mV); 4403 glColor4fv(mShadow0Facep->getRenderColor().mV);
4283 mShadow0Facep->renderIndexed(foot_mask); 4404 mShadow0Facep->renderIndexed(foot_mask);
4284 glColor4fv(mShadow1Facep->getRenderColor().mV); 4405 glColor4fv(mShadow1Facep->getRenderColor().mV);
@@ -4296,7 +4417,7 @@ U32 LLVOAvatar::renderImpostor(LLColor4U color)
4296 4417
4297 LLVector3 pos(getRenderPosition()+mImpostorOffset); 4418 LLVector3 pos(getRenderPosition()+mImpostorOffset);
4298 LLVector3 at = (pos - LLViewerCamera::getInstance()->getOrigin()); 4419 LLVector3 at = (pos - LLViewerCamera::getInstance()->getOrigin());
4299 at.normVec(); 4420 at.normalize();
4300 LLVector3 left = LLViewerCamera::getInstance()->getUpAxis() % at; 4421 LLVector3 left = LLViewerCamera::getInstance()->getUpAxis() % at;
4301 LLVector3 up = at%left; 4422 LLVector3 up = at%left;
4302 4423
@@ -4324,8 +4445,8 @@ U32 LLVOAvatar::renderImpostor(LLColor4U color)
4324 color.mV[3] = (U8) (alpha*255); 4445 color.mV[3] = (U8) (alpha*255);
4325 4446
4326 gGL.color4ubv(color.mV); 4447 gGL.color4ubv(color.mV);
4327 mImpostor.bindTexture(); 4448 gGL.getTexUnit(0)->bind(&mImpostor);
4328 gGL.begin(LLVertexBuffer::QUADS); 4449 gGL.begin(LLRender::QUADS);
4329 gGL.texCoord2f(0,0); 4450 gGL.texCoord2f(0,0);
4330 gGL.vertex3fv((pos+left-up).mV); 4451 gGL.vertex3fv((pos+left-up).mV);
4331 gGL.texCoord2f(1,0); 4452 gGL.texCoord2f(1,0);
@@ -4340,17 +4461,6 @@ U32 LLVOAvatar::renderImpostor(LLColor4U color)
4340 return 6; 4461 return 6;
4341} 4462}
4342 4463
4343//-----------------------------------------------------------------------------
4344// renderCollisionVolumes()
4345//-----------------------------------------------------------------------------
4346void LLVOAvatar::renderCollisionVolumes()
4347{
4348 for (S32 i = 0; i < mNumCollisionVolumes; i++)
4349 {
4350 mCollisionVolumes[i].renderCollision();
4351 }
4352}
4353
4354//------------------------------------------------------------------------ 4464//------------------------------------------------------------------------
4355// LLVOAvatar::updateTextures() 4465// LLVOAvatar::updateTextures()
4356//------------------------------------------------------------------------ 4466//------------------------------------------------------------------------
@@ -4385,23 +4495,23 @@ void LLVOAvatar::updateTextures(LLAgent &agent)
4385 { 4495 {
4386 if( head_baked && ! mHeadBakedLoaded ) 4496 if( head_baked && ! mHeadBakedLoaded )
4387 { 4497 {
4388 getTEImage( TEX_HEAD_BAKED )->bind(); 4498 gGL.getTexUnit(0)->bind(getTEImage( TEX_HEAD_BAKED ));
4389 } 4499 }
4390 if( upper_baked && ! mUpperBakedLoaded ) 4500 if( upper_baked && ! mUpperBakedLoaded )
4391 { 4501 {
4392 getTEImage( TEX_UPPER_BAKED )->bind(); 4502 gGL.getTexUnit(0)->bind(getTEImage( TEX_UPPER_BAKED ));
4393 } 4503 }
4394 if( lower_baked && ! mLowerBakedLoaded ) 4504 if( lower_baked && ! mLowerBakedLoaded )
4395 { 4505 {
4396 getTEImage( TEX_LOWER_BAKED )->bind(); 4506 gGL.getTexUnit(0)->bind(getTEImage( TEX_LOWER_BAKED ));
4397 } 4507 }
4398 if( eyes_baked && ! mEyesBakedLoaded ) 4508 if( eyes_baked && ! mEyesBakedLoaded )
4399 { 4509 {
4400 getTEImage( TEX_EYES_BAKED )->bind(); 4510 gGL.getTexUnit(0)->bind(getTEImage( TEX_EYES_BAKED ));
4401 } 4511 }
4402 if( skirt_baked && ! mSkirtBakedLoaded ) 4512 if( skirt_baked && ! mSkirtBakedLoaded )
4403 { 4513 {
4404 getTEImage( TEX_SKIRT_BAKED )->bind(); 4514 gGL.getTexUnit(0)->bind(getTEImage( TEX_SKIRT_BAKED ));
4405 } 4515 }
4406 } 4516 }
4407 4517
@@ -4432,6 +4542,7 @@ void LLVOAvatar::updateTextures(LLAgent &agent)
4432 4542
4433 mMaxPixelArea = 0.f; 4543 mMaxPixelArea = 0.f;
4434 mMinPixelArea = 99999999.f; 4544 mMinPixelArea = 99999999.f;
4545 mHasGrey = FALSE; // debug
4435 for (U32 i = 0; i < getNumTEs(); i++) 4546 for (U32 i = 0; i < getNumTEs(); i++)
4436 { 4547 {
4437 LLViewerImage *imagep = getTEImage(i); 4548 LLViewerImage *imagep = getTEImage(i);
@@ -4590,22 +4701,35 @@ void LLVOAvatar::updateTextures(LLAgent &agent)
4590void LLVOAvatar::addLocalTextureStats( LLVOAvatar::ELocTexIndex idx, LLViewerImage* imagep, 4701void LLVOAvatar::addLocalTextureStats( LLVOAvatar::ELocTexIndex idx, LLViewerImage* imagep,
4591 F32 texel_area_ratio, BOOL render_avatar, BOOL covered_by_baked ) 4702 F32 texel_area_ratio, BOOL render_avatar, BOOL covered_by_baked )
4592{ 4703{
4593 if (!covered_by_baked && 4704 if (!covered_by_baked && render_avatar) // render_avatar is always true if mIsSelf
4594 render_avatar && // always true if mIsSelf 4705 {
4595 mLocalTexture[ idx ].notNull() && mLocalTexture[idx]->getID() != IMG_DEFAULT_AVATAR) 4706 if (mLocalTexture[ idx ].notNull() && mLocalTexture[idx]->getID() != IMG_DEFAULT_AVATAR)
4596 {
4597 F32 desired_pixels;
4598 if( mIsSelf )
4599 { 4707 {
4600 desired_pixels = llmin(mPixelArea, (F32)LOCTEX_IMAGE_AREA_SELF ); 4708 F32 desired_pixels;
4601 imagep->setBoostLevel(LLViewerImage::BOOST_AVATAR_SELF); 4709 if( mIsSelf )
4710 {
4711 desired_pixels = llmin(mPixelArea, (F32)LOCTEX_IMAGE_AREA_SELF );
4712 imagep->setBoostLevel(LLViewerImage::BOOST_AVATAR_SELF);
4713 }
4714 else
4715 {
4716 desired_pixels = llmin(mPixelArea, (F32)LOCTEX_IMAGE_AREA_OTHER );
4717 imagep->setBoostLevel(LLViewerImage::BOOST_AVATAR);
4718 }
4719 imagep->addTextureStats( desired_pixels / texel_area_ratio );
4720 if (imagep->getDiscardLevel() < 0)
4721 {
4722 mHasGrey = TRUE; // for statistics gathering
4723 }
4602 } 4724 }
4603 else 4725 else
4604 { 4726 {
4605 desired_pixels = llmin(mPixelArea, (F32)LOCTEX_IMAGE_AREA_OTHER ); 4727 if (mLocalTexture[idx]->getID() == IMG_DEFAULT_AVATAR)
4606 imagep->setBoostLevel(LLViewerImage::BOOST_AVATAR); 4728 {
4729 // texture asset is missing
4730 mHasGrey = TRUE; // for statistics gathering
4731 }
4607 } 4732 }
4608 imagep->addTextureStats( desired_pixels, texel_area_ratio );
4609 } 4733 }
4610} 4734}
4611 4735
@@ -4614,7 +4738,7 @@ void LLVOAvatar::addBakedTextureStats( LLViewerImage* imagep, F32 pixel_area, F3
4614{ 4738{
4615 mMaxPixelArea = llmax(pixel_area, mMaxPixelArea); 4739 mMaxPixelArea = llmax(pixel_area, mMaxPixelArea);
4616 mMinPixelArea = llmin(pixel_area, mMinPixelArea); 4740 mMinPixelArea = llmin(pixel_area, mMinPixelArea);
4617 imagep->addTextureStats(pixel_area, texel_area_ratio); 4741 imagep->addTextureStats(pixel_area / texel_area_ratio);
4618 imagep->setBoostLevel(boost_level); 4742 imagep->setBoostLevel(boost_level);
4619} 4743}
4620 4744
@@ -4803,12 +4927,13 @@ BOOL LLVOAvatar::processSingleAnimationStateChange( const LLUUID& anim_id, BOOL
4803 // to support both spatialized and non-spatialized instances of the same sound 4927 // to support both spatialized and non-spatialized instances of the same sound
4804 //if (mIsSelf) 4928 //if (mIsSelf)
4805 //{ 4929 //{
4806 // F32 volume = gain * gSavedSettings.getF32("AudioLevelUI") 4930 // gAudiop->triggerSound(LLUUID(gSavedSettings.getString("UISndTyping")), 1.0f, LLAudioEngine::AUDIO_TYPE_UI);
4807 // gAudiop->triggerSound(LLUUID(gSavedSettings.getString("UISndTyping")), volume);
4808 //} 4931 //}
4809 //else 4932 //else
4810 LLUUID sound_id = LLUUID(gSavedSettings.getString("UISndTyping")); 4933 {
4811 gAudiop->triggerSound(sound_id, getID(), 1.0f, LLAudioEngine::AUDIO_TYPE_SFX, char_pos_global); 4934 LLUUID sound_id = LLUUID(gSavedSettings.getString("UISndTyping"));
4935 gAudiop->triggerSound(sound_id, getID(), 1.0f, LLAudioEngine::AUDIO_TYPE_SFX, char_pos_global);
4936 }
4812 } 4937 }
4813 } 4938 }
4814 } 4939 }
@@ -5826,7 +5951,7 @@ void LLVOAvatar::setPixelAreaAndAngle(LLAgent &agent)
5826 } 5951 }
5827 else 5952 else
5828 { 5953 {
5829 F32 radius = size.magVec(); 5954 F32 radius = size.length();
5830 mAppAngle = (F32) atan2( radius, range) * RAD_TO_DEG; 5955 mAppAngle = (F32) atan2( radius, range) * RAD_TO_DEG;
5831 } 5956 }
5832 5957
@@ -5998,7 +6123,7 @@ void LLVOAvatar::updateShadowFaces()
5998 sprite.setPosition(shadow_pos_agent); 6123 sprite.setPosition(shadow_pos_agent);
5999 6124
6000 LLVector3 foot_to_knee = mKneeLeftp->getWorldPosition() - joint_world_pos; 6125 LLVector3 foot_to_knee = mKneeLeftp->getWorldPosition() - joint_world_pos;
6001 //foot_to_knee.normVec(); 6126 //foot_to_knee.normalize();
6002 foot_to_knee -= projected_vec(foot_to_knee, sun_vec); 6127 foot_to_knee -= projected_vec(foot_to_knee, sun_vec);
6003 sprite.setYaw(azimuth(sun_vec - foot_to_knee)); 6128 sprite.setYaw(azimuth(sun_vec - foot_to_knee));
6004 6129
@@ -6031,7 +6156,7 @@ void LLVOAvatar::updateShadowFaces()
6031 sprite.setPosition(shadow_pos_agent); 6156 sprite.setPosition(shadow_pos_agent);
6032 6157
6033 LLVector3 foot_to_knee = mKneeRightp->getWorldPosition() - joint_world_pos; 6158 LLVector3 foot_to_knee = mKneeRightp->getWorldPosition() - joint_world_pos;
6034 //foot_to_knee.normVec(); 6159 //foot_to_knee.normalize();
6035 foot_to_knee -= projected_vec(foot_to_knee, sun_vec); 6160 foot_to_knee -= projected_vec(foot_to_knee, sun_vec);
6036 sprite.setYaw(azimuth(sun_vec - foot_to_knee)); 6161 sprite.setYaw(azimuth(sun_vec - foot_to_knee));
6037 6162
@@ -6392,7 +6517,7 @@ void LLVOAvatar::getOffObject()
6392 LLVector3 at_axis = LLVector3::x_axis; 6517 LLVector3 at_axis = LLVector3::x_axis;
6393 at_axis = at_axis * av_rot; 6518 at_axis = at_axis * av_rot;
6394 at_axis.mV[VZ] = 0.f; 6519 at_axis.mV[VZ] = 0.f;
6395 at_axis.normVec(); 6520 at_axis.normalize();
6396 gAgent.resetAxes(at_axis); 6521 gAgent.resetAxes(at_axis);
6397 6522
6398 //reset orientation 6523 //reset orientation
@@ -6946,7 +7071,7 @@ BOOL LLVOAvatar::bindScratchTexture( LLGLenum format )
6946 GLuint gl_name = getScratchTexName( format, &texture_bytes ); 7071 GLuint gl_name = getScratchTexName( format, &texture_bytes );
6947 if( gl_name ) 7072 if( gl_name )
6948 { 7073 {
6949 LLImageGL::bindExternalTexture( gl_name, 0, GL_TEXTURE_2D ); 7074 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, gl_name);
6950 stop_glerror(); 7075 stop_glerror();
6951 7076
6952 F32* last_bind_time = LLVOAvatar::sScratchTexLastBindTime.getIfThere( format ); 7077 F32* last_bind_time = LLVOAvatar::sScratchTexLastBindTime.getIfThere( format );
@@ -7004,7 +7129,7 @@ LLGLuint LLVOAvatar::getScratchTexName( LLGLenum format, U32* texture_bytes )
7004 glGenTextures(1, &name ); 7129 glGenTextures(1, &name );
7005 stop_glerror(); 7130 stop_glerror();
7006 7131
7007 LLImageGL::bindExternalTexture( name, 0, GL_TEXTURE_2D ); 7132 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, name);
7008 stop_glerror(); 7133 stop_glerror();
7009 7134
7010 glTexImage2D( 7135 glTexImage2D(
@@ -7019,7 +7144,7 @@ LLGLuint LLVOAvatar::getScratchTexName( LLGLenum format, U32* texture_bytes )
7019 glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE ); 7144 glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
7020 stop_glerror(); 7145 stop_glerror();
7021 7146
7022 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 7147 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
7023 stop_glerror(); 7148 stop_glerror();
7024 7149
7025 LLVOAvatar::sScratchTexNames.addData( format, new LLGLuint( name ) ); 7150 LLVOAvatar::sScratchTexNames.addData( format, new LLGLuint( name ) );
@@ -8628,7 +8753,7 @@ void LLVOAvatar::onBakedTextureMasksLoaded( BOOL success, LLViewerImage *src_vi,
8628 glGenTextures(1, (GLuint*) &gl_name ); 8753 glGenTextures(1, (GLuint*) &gl_name );
8629 stop_glerror(); 8754 stop_glerror();
8630 8755
8631 LLImageGL::bindExternalTexture( gl_name, 0, GL_TEXTURE_2D ); 8756 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, gl_name);
8632 stop_glerror(); 8757 stop_glerror();
8633 8758
8634 glTexImage2D( 8759 glTexImage2D(
@@ -9034,10 +9159,27 @@ void LLVOAvatar::cullAvatarsByPixelArea()
9034 } 9159 }
9035 } 9160 }
9036 9161
9037 if( LLVOAvatar::areAllNearbyInstancesBaked() ) 9162 S32 grey_avatars = 0;
9163 if( LLVOAvatar::areAllNearbyInstancesBaked(grey_avatars) )
9038 { 9164 {
9039 LLVOAvatar::deleteCachedImages(); 9165 LLVOAvatar::deleteCachedImages();
9040 } 9166 }
9167 else
9168 {
9169 if (gFrameTimeSeconds != sUnbakedUpdateTime) // only update once per frame
9170 {
9171 sUnbakedUpdateTime = gFrameTimeSeconds;
9172 sUnbakedTime += gFrameIntervalSeconds;
9173 }
9174 if (grey_avatars > 0)
9175 {
9176 if (gFrameTimeSeconds != sGreyUpdateTime) // only update once per frame
9177 {
9178 sGreyUpdateTime = gFrameTimeSeconds;
9179 sGreyTime += gFrameIntervalSeconds;
9180 }
9181 }
9182 }
9041} 9183}
9042 9184
9043const LLUUID& LLVOAvatar::grabLocalTexture(ETextureIndex index) 9185const LLUUID& LLVOAvatar::grabLocalTexture(ETextureIndex index)
@@ -9903,7 +10045,7 @@ void LLVOAvatar::getImpostorValues(LLVector3* extents, LLVector3& angle, F32& di
9903 extents[1] = ext[1]; 10045 extents[1] = ext[1];
9904 10046
9905 LLVector3 at = LLViewerCamera::getInstance()->getOrigin()-(getRenderPosition()+mImpostorOffset); 10047 LLVector3 at = LLViewerCamera::getInstance()->getOrigin()-(getRenderPosition()+mImpostorOffset);
9906 distance = at.normVec(); 10048 distance = at.normalize();
9907 F32 da = 1.f - (at*LLViewerCamera::getInstance()->getAtAxis()); 10049 F32 da = 1.f - (at*LLViewerCamera::getInstance()->getAtAxis());
9908 angle.mV[0] = LLViewerCamera::getInstance()->getYaw()*da; 10050 angle.mV[0] = LLViewerCamera::getInstance()->getYaw()*da;
9909 angle.mV[1] = LLViewerCamera::getInstance()->getPitch()*da; 10051 angle.mV[1] = LLViewerCamera::getInstance()->getPitch()*da;
diff --git a/linden/indra/newview/llvoavatar.h b/linden/indra/newview/llvoavatar.h
index d66ddfc..9806ceb 100644
--- a/linden/indra/newview/llvoavatar.h
+++ b/linden/indra/newview/llvoavatar.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2001&license=viewergpl$ 6 * $LicenseInfo:firstyear=2001&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2001-2008, Linden Research, Inc. 8 * Copyright (c) 2001-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -308,6 +308,16 @@ public:
308 U32 renderTransparent(); 308 U32 renderTransparent();
309 void renderCollisionVolumes(); 309 void renderCollisionVolumes();
310 310
311 /*virtual*/ BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
312 S32 face = -1, // which face to check, -1 = ALL_SIDES
313 BOOL pick_transparent = FALSE,
314 S32* face_hit = NULL, // which face was hit
315 LLVector3* intersection = NULL, // return the intersection point
316 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point
317 LLVector3* normal = NULL, // return the surface normal at the intersection point
318 LLVector3* bi_normal = NULL // return the surface bi-normal at the intersection point
319 );
320
311 /*virtual*/ void updateTextures(LLAgent &agent); 321 /*virtual*/ void updateTextures(LLAgent &agent);
312 // If setting a baked texture, need to request it from a non-local sim. 322 // If setting a baked texture, need to request it from a non-local sim.
313 /*virtual*/ S32 setTETexture(const U8 te, const LLUUID& uuid); 323 /*virtual*/ S32 setTETexture(const U8 te, const LLUUID& uuid);
@@ -903,6 +913,11 @@ public:
903 static BOOL sJointDebug; 913 static BOOL sJointDebug;
904 static ETextureIndex sBakedTextureIndices[BAKED_TEXTURE_COUNT]; 914 static ETextureIndex sBakedTextureIndices[BAKED_TEXTURE_COUNT];
905 915
916 static F32 sUnbakedTime; // Total seconds with >=1 unbaked avatars
917 static F32 sUnbakedUpdateTime; // Last time stats were updated (to prevent multiple updates per frame)
918 static F32 sGreyTime; // Total seconds with >=1 grey avatars
919 static F32 sGreyUpdateTime; // Last time stats were updated (to prevent multiple updates per frame)
920
906 //-------------------------------------------------------------------- 921 //--------------------------------------------------------------------
907 // Texture Layer Sets and Global Colors 922 // Texture Layer Sets and Global Colors
908 //-------------------------------------------------------------------- 923 //--------------------------------------------------------------------
@@ -967,6 +982,7 @@ protected:
967 F32 mLastFadeDistance; 982 F32 mLastFadeDistance;
968 F32 mMinPixelArea; // debug 983 F32 mMinPixelArea; // debug
969 F32 mMaxPixelArea; // debug 984 F32 mMaxPixelArea; // debug
985 BOOL mHasGrey; // debug
970 986
971 //-------------------------------------------------------------------- 987 //--------------------------------------------------------------------
972 // Global Colors 988 // Global Colors
@@ -1002,7 +1018,7 @@ protected:
1002 1018
1003 BOOL isFullyBaked(); 1019 BOOL isFullyBaked();
1004 void deleteLayerSetCaches(); 1020 void deleteLayerSetCaches();
1005 static BOOL areAllNearbyInstancesBaked(); 1021 static BOOL areAllNearbyInstancesBaked(S32& grey_avatars);
1006 1022
1007 static void onBakedTextureMasksLoaded(BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata); 1023 static void onBakedTextureMasksLoaded(BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
1008 1024
diff --git a/linden/indra/newview/llvocache.cpp b/linden/indra/newview/llvocache.cpp
index 45b7782..a07b5c2 100644
--- a/linden/indra/newview/llvocache.cpp
+++ b/linden/indra/newview/llvocache.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvocache.h b/linden/indra/newview/llvocache.h
index 2432f22..c09254a 100644
--- a/linden/indra/newview/llvocache.h
+++ b/linden/indra/newview/llvocache.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvoclouds.cpp b/linden/indra/newview/llvoclouds.cpp
index f50468d..a90a0d4 100644
--- a/linden/indra/newview/llvoclouds.cpp
+++ b/linden/indra/newview/llvoclouds.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvoclouds.h b/linden/indra/newview/llvoclouds.h
index 670922d..18036e9 100644
--- a/linden/indra/newview/llvoclouds.h
+++ b/linden/indra/newview/llvoclouds.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvograss.cpp b/linden/indra/newview/llvograss.cpp
index a028a63..4e7816c 100644
--- a/linden/indra/newview/llvograss.cpp
+++ b/linden/indra/newview/llvograss.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -273,9 +273,9 @@ U32 LLVOGrass::processUpdateMessage(LLMessageSystem *mesgsys,
273 273
274 updateSpecies(); 274 updateSpecies();
275 275
276 if ( (getVelocity().magVecSquared() > 0.f) 276 if ( (getVelocity().lengthSquared() > 0.f)
277 ||(getAcceleration().magVecSquared() > 0.f) 277 ||(getAcceleration().lengthSquared() > 0.f)
278 ||(getAngularVelocity().magVecSquared() > 0.f)) 278 ||(getAngularVelocity().lengthSquared() > 0.f))
279 { 279 {
280 llinfos << "ACK! Moving grass!" << llendl; 280 llinfos << "ACK! Moving grass!" << llendl;
281 setVelocity(LLVector3::zero); 281 setVelocity(LLVector3::zero);
@@ -322,7 +322,7 @@ void LLVOGrass::setPixelAreaAndAngle(LLAgent &agent)
322{ 322{
323 // This should be the camera's center, as soon as we move to all region-local. 323 // This should be the camera's center, as soon as we move to all region-local.
324 LLVector3 relative_position = getPositionAgent() - agent.getCameraPositionAgent(); 324 LLVector3 relative_position = getPositionAgent() - agent.getCameraPositionAgent();
325 F32 range = relative_position.magVec(); 325 F32 range = relative_position.length();
326 326
327 F32 max_scale = getMaxScale(); 327 F32 max_scale = getMaxScale();
328 328
@@ -501,7 +501,7 @@ void LLVOGrass::getGeometry(S32 idx,
501 501
502 LLVector3 normal1 = (v1-v2) % (v2-v3); 502 LLVector3 normal1 = (v1-v2) % (v2-v3);
503 normal1.mV[VZ] = 0.75f; 503 normal1.mV[VZ] = 0.75f;
504 normal1.normVec(); 504 normal1.normalize();
505 LLVector3 normal2 = -normal1; 505 LLVector3 normal2 = -normal1;
506 normal2.mV[VZ] = -normal2.mV[VZ]; 506 normal2.mV[VZ] = -normal2.mV[VZ];
507 507
@@ -578,3 +578,146 @@ void LLVOGrass::updateDrawable(BOOL force_damped)
578 } 578 }
579 clearChanged(SHIFTED); 579 clearChanged(SHIFTED);
580} 580}
581
582// virtual
583BOOL LLVOGrass::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, S32 face, BOOL pick_transparent, S32 *face_hitp,
584 LLVector3* intersection,LLVector2* tex_coord, LLVector3* normal, LLVector3* bi_normal)
585
586{
587 BOOL ret = FALSE;
588 if (!mbCanSelect ||
589 mDrawable->isDead() ||
590 !gPipeline.hasRenderType(mDrawable->getRenderType()))
591 {
592 return FALSE;
593 }
594
595 LLVector3 dir = end-start;
596
597 mPatch = mRegionp->getLand().resolvePatchRegion(getPositionRegion());
598
599 LLVector3 position;
600 // Create random blades of grass with gaussian distribution
601 F32 x,y,xf,yf,dzx,dzy;
602
603 LLColor4U color(255,255,255,255);
604
605 F32 width = sSpeciesTable[mSpecies]->mBladeSizeX;
606 F32 height = sSpeciesTable[mSpecies]->mBladeSizeY;
607
608 LLVector2 tc[4];
609 LLVector3 v[4];
610 // LLVector3 n[4]; // unused!
611
612 F32 closest_t = 1.f;
613
614 for (S32 i = 0; i < mNumBlades; i++)
615 {
616 x = exp_x[i] * mScale.mV[VX];
617 y = exp_y[i] * mScale.mV[VY];
618 xf = rot_x[i] * GRASS_BLADE_BASE * width * w_mod[i];
619 yf = rot_y[i] * GRASS_BLADE_BASE * width * w_mod[i];
620 dzx = dz_x [i];
621 dzy = dz_y [i];
622
623 LLVector3 v1,v2,v3;
624 F32 blade_height= GRASS_BLADE_HEIGHT * height * w_mod[i];
625
626 tc[0] = LLVector2(0, 0);
627 tc[1] = LLVector2(0, 0.98f);
628 tc[2] = LLVector2(1, 0);
629 tc[3] = LLVector2(1, 0.98f);
630
631 position.mV[0] = mPosition.mV[VX] + x + xf;
632 position.mV[1] = mPosition.mV[VY] + y + yf;
633 position.mV[2] = mRegionp->getLand().resolveHeightRegion(position);
634 v[0] = v1 = position + mRegionp->getOriginAgent();
635
636
637
638 position.mV[0] += dzx;
639 position.mV[1] += dzy;
640 position.mV[2] += blade_height;
641 v[1] = v2 = position + mRegionp->getOriginAgent();
642
643 position.mV[0] = mPosition.mV[VX] + x - xf;
644 position.mV[1] = mPosition.mV[VY] + y - xf;
645 position.mV[2] = mRegionp->getLand().resolveHeightRegion(position);
646 v[2] = v3 = position + mRegionp->getOriginAgent();
647
648 LLVector3 normal1 = (v1-v2) % (v2-v3);
649 normal1.normalize();
650
651 position.mV[0] += dzx;
652 position.mV[1] += dzy;
653 position.mV[2] += blade_height;
654 v[3] = v1 = position + mRegionp->getOriginAgent();
655
656
657 F32 a,b,t;
658
659 BOOL hit = FALSE;
660
661
662 U32 idx0 = 0,idx1 = 0,idx2 = 0;
663
664 if (LLTriangleRayIntersect(v[0], v[1], v[2], start, dir, &a, &b, &t, FALSE))
665 {
666 hit = TRUE;
667 idx0 = 0; idx1 = 1; idx2 = 2;
668 }
669 else if (LLTriangleRayIntersect(v[1], v[3], v[2], start, dir, &a, &b, &t, FALSE))
670 {
671 hit = TRUE;
672 idx0 = 1; idx1 = 3; idx2 = 2;
673 }
674 else if (LLTriangleRayIntersect(v[2], v[1], v[0], start, dir, &a, &b, &t, FALSE))
675 {
676 normal1 = -normal1;
677 hit = TRUE;
678 idx0 = 2; idx1 = 1; idx2 = 0;
679 }
680 else if (LLTriangleRayIntersect(v[2], v[3], v[1], start, dir, &a, &b, &t, FALSE))
681 {
682 normal1 = -normal1;
683 hit = TRUE;
684 idx0 = 2; idx1 = 3; idx2 = 1;
685 }
686
687 if (hit)
688 {
689 if (t >= 0.f &&
690 t <= 1.f &&
691 t < closest_t)
692 {
693
694 LLVector2 hit_tc = ((1.f - a - b) * tc[idx0] +
695 a * tc[idx1] +
696 b * tc[idx2]);
697 if (pick_transparent ||
698 getTEImage(0)->getMask(hit_tc))
699 {
700 closest_t = t;
701 if (intersection != NULL)
702 {
703 *intersection = start+dir*closest_t;
704 }
705
706 if (tex_coord != NULL)
707 {
708 *tex_coord = hit_tc;
709 }
710
711 if (normal != NULL)
712 {
713 *normal = normal1;
714 }
715 ret = TRUE;
716 }
717 }
718 }
719 }
720
721 return ret;
722}
723
diff --git a/linden/indra/newview/llvograss.h b/linden/indra/newview/llvograss.h
index 679f5dc..95197a5 100644
--- a/linden/indra/newview/llvograss.h
+++ b/linden/indra/newview/llvograss.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -80,6 +80,16 @@ public:
80 /*virtual*/ BOOL isActive() const; // Whether this object needs to do an idleUpdate. 80 /*virtual*/ BOOL isActive() const; // Whether this object needs to do an idleUpdate.
81 BOOL idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time); 81 BOOL idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
82 82
83 /*virtual*/ BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
84 S32 face = -1, // which face to check, -1 = ALL_SIDES
85 BOOL pick_transparent = FALSE,
86 S32* face_hit = NULL, // which face was hit
87 LLVector3* intersection = NULL, // return the intersection point
88 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point
89 LLVector3* normal = NULL, // return the surface normal at the intersection point
90 LLVector3* bi_normal = NULL // return the surface bi-normal at the intersection point
91 );
92
83 static S32 sMaxGrassSpecies; 93 static S32 sMaxGrassSpecies;
84 94
85 struct GrassSpeciesData 95 struct GrassSpeciesData
diff --git a/linden/indra/newview/llvoground.cpp b/linden/indra/newview/llvoground.cpp
index 32622ec..8cc7724 100644
--- a/linden/indra/newview/llvoground.cpp
+++ b/linden/indra/newview/llvoground.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -45,7 +45,7 @@
45#include "pipeline.h" 45#include "pipeline.h"
46 46
47LLVOGround::LLVOGround(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp) 47LLVOGround::LLVOGround(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
48: LLStaticViewerObject(id, pcode, regionp) 48: LLStaticViewerObject(id, pcode, regionp, TRUE)
49{ 49{
50 mbCanSelect = FALSE; 50 mbCanSelect = FALSE;
51} 51}
diff --git a/linden/indra/newview/llvoground.h b/linden/indra/newview/llvoground.h
index 25e6fa6..4dab2f9 100644
--- a/linden/indra/newview/llvoground.h
+++ b/linden/indra/newview/llvoground.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvoiceclient.cpp b/linden/indra/newview/llvoiceclient.cpp
index 64a17ae..76ef87d 100644
--- a/linden/indra/newview/llvoiceclient.cpp
+++ b/linden/indra/newview/llvoiceclient.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -62,15 +62,20 @@
62#include "llviewerwindow.h" 62#include "llviewerwindow.h"
63#include "llviewercamera.h" 63#include "llviewercamera.h"
64 64
65#include "llfloaterfriends.h" //VIVOX, inorder to refresh communicate panel
66#include "llfloaterchat.h" // for LLFloaterChat::addChat()
67
65// for base64 decoding 68// for base64 decoding
66#include "apr_base64.h" 69#include "apr_base64.h"
67 70
68// for SHA1 hash 71// for SHA1 hash
69#include "apr_sha1.h" 72#include "apr_sha1.h"
70 73
71// If we are connecting to agni AND the user's last name is "Linden", join this channel instead of looking up the sim name. 74// for MD5 hash
72// If we are connecting to agni and the user's last name is NOT "Linden", disable voice. 75#include "llmd5.h"
73#define AGNI_LINDENS_ONLY_CHANNEL "SL" 76
77#define USE_SESSION_GROUPS 0
78
74static bool sConnectingToAgni = false; 79static bool sConnectingToAgni = false;
75F32 LLVoiceClient::OVERDRIVEN_POWER_LEVEL = 0.7f; 80F32 LLVoiceClient::OVERDRIVEN_POWER_LEVEL = 0.7f;
76 81
@@ -90,6 +95,44 @@ const F32 UPDATE_THROTTLE_SECONDS = 0.1f;
90const F32 LOGIN_RETRY_SECONDS = 10.0f; 95const F32 LOGIN_RETRY_SECONDS = 10.0f;
91const int MAX_LOGIN_RETRIES = 12; 96const int MAX_LOGIN_RETRIES = 12;
92 97
98static void setUUIDFromStringHash(LLUUID &uuid, const std::string &str)
99{
100 LLMD5 md5_uuid;
101 md5_uuid.update((const unsigned char*)str.data(), str.size());
102 md5_uuid.finalize();
103 md5_uuid.raw_digest(uuid.mData);
104}
105
106static int scale_mic_volume(float volume)
107{
108 // incoming volume has the range [0.0 ... 2.0], with 1.0 as the default.
109 // Map it as follows: 0.0 -> 40, 1.0 -> 44, 2.0 -> 75
110
111 volume -= 1.0f; // offset volume to the range [-1.0 ... 1.0], with 0 at the default.
112 int scaled_volume = 44; // offset scaled_volume by its default level
113 if(volume < 0.0f)
114 scaled_volume += ((int)(volume * 4.0f)); // (44 - 40)
115 else
116 scaled_volume += ((int)(volume * 31.0f)); // (75 - 44)
117
118 return scaled_volume;
119}
120
121static int scale_speaker_volume(float volume)
122{
123 // incoming volume has the range [0.0 ... 1.0], with 0.5 as the default.
124 // Map it as follows: 0.0 -> 0, 0.5 -> 62, 1.0 -> 75
125
126 volume -= 0.5f; // offset volume to the range [-0.5 ... 0.5], with 0 at the default.
127 int scaled_volume = 62; // offset scaled_volume by its default level
128 if(volume < 0.0f)
129 scaled_volume += ((int)(volume * 124.0f)); // (62 - 0) * 2
130 else
131 scaled_volume += ((int)(volume * 26.0f)); // (75 - 62) * 2
132
133 return scaled_volume;
134}
135
93class LLViewerVoiceAccountProvisionResponder : 136class LLViewerVoiceAccountProvisionResponder :
94 public LLHTTPClient::Responder 137 public LLHTTPClient::Responder
95{ 138{
@@ -103,12 +146,13 @@ public:
103 { 146 {
104 if ( mRetries > 0 ) 147 if ( mRetries > 0 )
105 { 148 {
149 LL_WARNS("Voice") << "ProvisionVoiceAccountRequest returned an error, retrying. status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL;
106 if ( gVoiceClient ) gVoiceClient->requestVoiceAccountProvision( 150 if ( gVoiceClient ) gVoiceClient->requestVoiceAccountProvision(
107 mRetries - 1); 151 mRetries - 1);
108 } 152 }
109 else 153 else
110 { 154 {
111 //TODO: throw an error message? 155 LL_WARNS("Voice") << "ProvisionVoiceAccountRequest returned an error, too many retries (giving up). status = " << status << ", reason = \"" << reason << "\"" << LL_ENDL;
112 if ( gVoiceClient ) gVoiceClient->giveUp(); 156 if ( gVoiceClient ) gVoiceClient->giveUp();
113 } 157 }
114 } 158 }
@@ -117,9 +161,23 @@ public:
117 { 161 {
118 if ( gVoiceClient ) 162 if ( gVoiceClient )
119 { 163 {
164 std::string voice_sip_uri_hostname;
165 std::string voice_account_server_uri;
166
167 LL_DEBUGS("Voice") << "ProvisionVoiceAccountRequest response:" << ll_pretty_print_sd(content) << LL_ENDL;
168
169 if(content.has("voice_sip_uri_hostname"))
170 voice_sip_uri_hostname = content["voice_sip_uri_hostname"].asString();
171
172 // this key is actually misnamed -- it will be an entire URI, not just a hostname.
173 if(content.has("voice_account_server_name"))
174 voice_account_server_uri = content["voice_account_server_name"].asString();
175
120 gVoiceClient->login( 176 gVoiceClient->login(
121 content["username"].asString(), 177 content["username"].asString(),
122 content["password"].asString()); 178 content["password"].asString(),
179 voice_sip_uri_hostname,
180 voice_account_server_uri);
123 } 181 }
124 } 182 }
125 183
@@ -166,21 +224,27 @@ protected:
166 int ignoreDepth; 224 int ignoreDepth;
167 225
168 // Members for processing responses. The values are transient and only valid within a call to processResponse(). 226 // Members for processing responses. The values are transient and only valid within a call to processResponse().
227 bool squelchDebugOutput;
169 int returnCode; 228 int returnCode;
170 int statusCode; 229 int statusCode;
171 std::string statusString; 230 std::string statusString;
172 std::string uuidString; 231 std::string requestId;
173 std::string actionString; 232 std::string actionString;
174 std::string connectorHandle; 233 std::string connectorHandle;
234 std::string versionID;
175 std::string accountHandle; 235 std::string accountHandle;
176 std::string sessionHandle; 236 std::string sessionHandle;
177 std::string eventSessionHandle; 237 std::string sessionGroupHandle;
238 std::string alias;
239 std::string applicationString;
178 240
179 // Members for processing events. The values are transient and only valid within a call to processResponse(). 241 // Members for processing events. The values are transient and only valid within a call to processResponse().
180 std::string eventTypeString; 242 std::string eventTypeString;
181 int state; 243 int state;
182 std::string uriString; 244 std::string uriString;
183 bool isChannel; 245 bool isChannel;
246 bool incoming;
247 bool enabled;
184 std::string nameString; 248 std::string nameString;
185 std::string audioMediaString; 249 std::string audioMediaString;
186 std::string displayNameString; 250 std::string displayNameString;
@@ -190,6 +254,21 @@ protected:
190 bool isSpeaking; 254 bool isSpeaking;
191 int volume; 255 int volume;
192 F32 energy; 256 F32 energy;
257 std::string messageHeader;
258 std::string messageBody;
259 std::string notificationType;
260 bool hasText;
261 bool hasAudio;
262 bool hasVideo;
263 bool terminated;
264 std::string blockMask;
265 std::string presenceOnly;
266 std::string autoAcceptMask;
267 std::string autoAddAsBuddy;
268 int numberOfAliases;
269 std::string subscriptionHandle;
270 std::string subscriptionType;
271
193 272
194 // Members for processing text between tags 273 // Members for processing text between tags
195 std::string textBuffer; 274 std::string textBuffer;
@@ -222,8 +301,6 @@ void LLVivoxProtocolParser::reset()
222 responseDepth = 0; 301 responseDepth = 0;
223 ignoringTags = false; 302 ignoringTags = false;
224 accumulateText = false; 303 accumulateText = false;
225 textBuffer.clear();
226
227 energy = 0.f; 304 energy = 0.f;
228 ignoreDepth = 0; 305 ignoreDepth = 0;
229 isChannel = false; 306 isChannel = false;
@@ -232,10 +309,15 @@ void LLVivoxProtocolParser::reset()
232 isModeratorMuted = false; 309 isModeratorMuted = false;
233 isSpeaking = false; 310 isSpeaking = false;
234 participantType = 0; 311 participantType = 0;
235 returnCode = 0; 312 squelchDebugOutput = false;
313 returnCode = -1;
236 state = 0; 314 state = 0;
237 statusCode = 0; 315 statusCode = 0;
238 volume = 0; 316 volume = 0;
317 textBuffer.clear();
318 alias.clear();
319 numberOfAliases = 0;
320 applicationString.clear();
239} 321}
240 322
241//virtual 323//virtual
@@ -262,33 +344,11 @@ LLIOPipe::EStatus LLVivoxProtocolParser::process_impl(
262 mInput.append(buf, istr.gcount()); 344 mInput.append(buf, istr.gcount());
263 } 345 }
264 346
265 // MBW -- XXX -- This should no longer be necessary. Or even possible.
266 // We've read all the data out of the buffer. Make sure it doesn't accumulate.
267// buffer->clear();
268
269 // Look for input delimiter(s) in the input buffer. If one is found, send the message to the xml parser. 347 // Look for input delimiter(s) in the input buffer. If one is found, send the message to the xml parser.
270 int start = 0; 348 int start = 0;
271 int delim; 349 int delim;
272 while((delim = mInput.find("\n\n\n", start)) != std::string::npos) 350 while((delim = mInput.find("\n\n\n", start)) != std::string::npos)
273 { 351 {
274 // Turn this on to log incoming XML
275 if(0)
276 {
277 int foo = mInput.find("Set3DPosition", start);
278 int bar = mInput.find("ParticipantPropertiesEvent", start);
279 if(foo != std::string::npos && (foo < delim))
280 {
281 // This is a Set3DPosition response. Don't print it, since these are way too spammy.
282 }
283 else if(bar != std::string::npos && (bar < delim))
284 {
285 // This is a ParticipantPropertiesEvent response. Don't print it, since these are way too spammy.
286 }
287 else
288 {
289 LL_INFOS("Voice") << "parsing: " << mInput.substr(start, delim - start) << LL_ENDL;
290 }
291 }
292 352
293 // Reset internal state of the LLVivoxProtocolParser (no effect on the expat parser) 353 // Reset internal state of the LLVivoxProtocolParser (no effect on the expat parser)
294 reset(); 354 reset();
@@ -299,13 +359,19 @@ LLIOPipe::EStatus LLVivoxProtocolParser::process_impl(
299 XML_SetUserData(parser, this); 359 XML_SetUserData(parser, this);
300 XML_Parse(parser, mInput.data() + start, delim - start, false); 360 XML_Parse(parser, mInput.data() + start, delim - start, false);
301 361
362 // If this message isn't set to be squelched, output the raw XML received.
363 if(!squelchDebugOutput)
364 {
365 LL_DEBUGS("Voice") << "parsing: " << mInput.substr(start, delim - start) << LL_ENDL;
366 }
367
302 start = delim + 3; 368 start = delim + 3;
303 } 369 }
304 370
305 if(start != 0) 371 if(start != 0)
306 mInput = mInput.substr(start); 372 mInput = mInput.substr(start);
307 373
308 LL_DEBUGS("Voice") << "at end, mInput is: " << mInput << LL_ENDL; 374 LL_DEBUGS("VivoxProtocolParser") << "at end, mInput is: " << mInput << LL_ENDL;
309 375
310 if(!gVoiceClient->mConnected) 376 if(!gVoiceClient->mConnected)
311 { 377 {
@@ -360,9 +426,9 @@ void LLVivoxProtocolParser::StartTag(const char *tag, const char **attr)
360 426
361 if (responseDepth == 0) 427 if (responseDepth == 0)
362 { 428 {
363 isEvent = strcmp("Event", tag) == 0; 429 isEvent = !stricmp("Event", tag);
364 430
365 if (strcmp("Response", tag) == 0 || isEvent) 431 if (!stricmp("Response", tag) || isEvent)
366 { 432 {
367 // Grab the attributes 433 // Grab the attributes
368 while (*attr) 434 while (*attr)
@@ -370,49 +436,62 @@ void LLVivoxProtocolParser::StartTag(const char *tag, const char **attr)
370 const char *key = *attr++; 436 const char *key = *attr++;
371 const char *value = *attr++; 437 const char *value = *attr++;
372 438
373 if (strcmp("requestId", key) == 0) 439 if (!stricmp("requestId", key))
374 { 440 {
375 uuidString = value; 441 requestId = value;
376 } 442 }
377 else if (strcmp("action", key) == 0) 443 else if (!stricmp("action", key))
378 { 444 {
379 actionString = value; 445 actionString = value;
380 } 446 }
381 else if (strcmp("type", key) == 0) 447 else if (!stricmp("type", key))
382 { 448 {
383 eventTypeString = value; 449 eventTypeString = value;
384 } 450 }
385 } 451 }
386 } 452 }
387 LL_DEBUGS("Voice") << tag << " (" << responseDepth << ")" << LL_ENDL; 453 LL_DEBUGS("VivoxProtocolParser") << tag << " (" << responseDepth << ")" << LL_ENDL;
388 } 454 }
389 else 455 else
390 { 456 {
391 if (ignoringTags) 457 if (ignoringTags)
392 { 458 {
393 LL_DEBUGS("Voice") << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; 459 LL_DEBUGS("VivoxProtocolParser") << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL;
394 } 460 }
395 else 461 else
396 { 462 {
397 LL_DEBUGS("Voice") << tag << " (" << responseDepth << ")" << LL_ENDL; 463 LL_DEBUGS("VivoxProtocolParser") << tag << " (" << responseDepth << ")" << LL_ENDL;
398 464
399 // Ignore the InputXml stuff so we don't get confused 465 // Ignore the InputXml stuff so we don't get confused
400 if (strcmp("InputXml", tag) == 0) 466 if (!stricmp("InputXml", tag))
401 { 467 {
402 ignoringTags = true; 468 ignoringTags = true;
403 ignoreDepth = responseDepth; 469 ignoreDepth = responseDepth;
404 accumulateText = false; 470 accumulateText = false;
405 471
406 LL_DEBUGS("Voice") << "starting ignore, ignoreDepth is " << ignoreDepth << LL_ENDL; 472 LL_DEBUGS("VivoxProtocolParser") << "starting ignore, ignoreDepth is " << ignoreDepth << LL_ENDL;
407 } 473 }
408 else if (strcmp("CaptureDevices", tag) == 0) 474 else if (!stricmp("CaptureDevices", tag))
409 { 475 {
410 gVoiceClient->clearCaptureDevices(); 476 gVoiceClient->clearCaptureDevices();
411 } 477 }
412 else if (strcmp("RenderDevices", tag) == 0) 478 else if (!stricmp("RenderDevices", tag))
413 { 479 {
414 gVoiceClient->clearRenderDevices(); 480 gVoiceClient->clearRenderDevices();
415 } 481 }
482 else if (!stricmp("Buddies", tag))
483 {
484 gVoiceClient->deleteAllBuddies();
485 }
486 else if (!stricmp("BlockRules", tag))
487 {
488 gVoiceClient->deleteAllBlockRules();
489 }
490 else if (!stricmp("AutoAcceptRules", tag))
491 {
492 gVoiceClient->deleteAllAutoAcceptRules();
493 }
494
416 } 495 }
417 } 496 }
418 responseDepth++; 497 responseDepth++;
@@ -431,90 +510,138 @@ void LLVivoxProtocolParser::EndTag(const char *tag)
431 { 510 {
432 if (ignoreDepth == responseDepth) 511 if (ignoreDepth == responseDepth)
433 { 512 {
434 LL_DEBUGS("Voice") << "end of ignore" << LL_ENDL; 513 LL_DEBUGS("VivoxProtocolParser") << "end of ignore" << LL_ENDL;
435 ignoringTags = false; 514 ignoringTags = false;
436 } 515 }
437 else 516 else
438 { 517 {
439 LL_DEBUGS("Voice") << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; 518 LL_DEBUGS("VivoxProtocolParser") << "ignoring tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL;
440 } 519 }
441 } 520 }
442 521
443 if (!ignoringTags) 522 if (!ignoringTags)
444 { 523 {
445 LL_DEBUGS("Voice") << "processing tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL; 524 LL_DEBUGS("VivoxProtocolParser") << "processing tag " << tag << " (depth = " << responseDepth << ")" << LL_ENDL;
446 525
447 // Closing a tag. Finalize the text we've accumulated and reset 526 // Closing a tag. Finalize the text we've accumulated and reset
448 if (strcmp("ReturnCode", tag) == 0) 527 if (!stricmp("ReturnCode", tag))
449 returnCode = strtol(string.c_str(), NULL, 10); 528 returnCode = strtol(string.c_str(), NULL, 10);
450 else if (strcmp("StatusCode", tag) == 0) 529 else if (!stricmp("SessionHandle", tag))
530 sessionHandle = string;
531 else if (!stricmp("SessionGroupHandle", tag))
532 sessionGroupHandle = string;
533 else if (!stricmp("StatusCode", tag))
451 statusCode = strtol(string.c_str(), NULL, 10); 534 statusCode = strtol(string.c_str(), NULL, 10);
452 else if (strcmp("ConnectorHandle", tag) == 0) 535 else if (!stricmp("StatusString", tag))
536 statusString = string;
537 else if (!stricmp("ParticipantURI", tag))
538 uriString = string;
539 else if (!stricmp("Volume", tag))
540 volume = strtol(string.c_str(), NULL, 10);
541 else if (!stricmp("Energy", tag))
542 energy = (F32)strtod(string.c_str(), NULL);
543 else if (!stricmp("IsModeratorMuted", tag))
544 isModeratorMuted = !stricmp(string.c_str(), "true");
545 else if (!stricmp("IsSpeaking", tag))
546 isSpeaking = !stricmp(string.c_str(), "true");
547 else if (!stricmp("Alias", tag))
548 alias = string;
549 else if (!stricmp("NumberOfAliases", tag))
550 numberOfAliases = strtol(string.c_str(), NULL, 10);
551 else if (!stricmp("Application", tag))
552 applicationString = string;
553 else if (!stricmp("ConnectorHandle", tag))
453 connectorHandle = string; 554 connectorHandle = string;
454 else if (strcmp("AccountHandle", tag) == 0) 555 else if (!stricmp("VersionID", tag))
556 versionID = string;
557 else if (!stricmp("AccountHandle", tag))
455 accountHandle = string; 558 accountHandle = string;
456 else if (strcmp("SessionHandle", tag) == 0) 559 else if (!stricmp("State", tag))
457 {
458 if (isEvent)
459 eventSessionHandle = string;
460 else
461 sessionHandle = string;
462 }
463 else if (strcmp("StatusString", tag) == 0)
464 statusString = string;
465 else if (strcmp("State", tag) == 0)
466 state = strtol(string.c_str(), NULL, 10); 560 state = strtol(string.c_str(), NULL, 10);
467 else if (strcmp("URI", tag) == 0) 561 else if (!stricmp("URI", tag))
468 uriString = string; 562 uriString = string;
469 else if (strcmp("IsChannel", tag) == 0) 563 else if (!stricmp("IsChannel", tag))
470 isChannel = string == "true" ? true : false; 564 isChannel = !stricmp(string.c_str(), "true");
471 else if (strcmp("Name", tag) == 0) 565 else if (!stricmp("Incoming", tag))
566 incoming = !stricmp(string.c_str(), "true");
567 else if (!stricmp("Enabled", tag))
568 enabled = !stricmp(string.c_str(), "true");
569 else if (!stricmp("Name", tag))
472 nameString = string; 570 nameString = string;
473 else if (strcmp("AudioMedia", tag) == 0) 571 else if (!stricmp("AudioMedia", tag))
474 audioMediaString = string; 572 audioMediaString = string;
475 else if (strcmp("ChannelName", tag) == 0) 573 else if (!stricmp("ChannelName", tag))
476 nameString = string; 574 nameString = string;
477 else if (strcmp("ParticipantURI", tag) == 0) 575 else if (!stricmp("DisplayName", tag))
478 uriString = string;
479 else if (strcmp("DisplayName", tag) == 0)
480 displayNameString = string; 576 displayNameString = string;
481 else if (strcmp("AccountName", tag) == 0) 577 else if (!stricmp("AccountName", tag))
482 nameString = string; 578 nameString = string;
483 else if (strcmp("ParticipantTyppe", tag) == 0) 579 else if (!stricmp("ParticipantType", tag))
484 participantType = strtol(string.c_str(), NULL, 10); 580 participantType = strtol(string.c_str(), NULL, 10);
485 else if (strcmp("IsLocallyMuted", tag) == 0) 581 else if (!stricmp("IsLocallyMuted", tag))
486 isLocallyMuted = string == "true" ? true : false; 582 isLocallyMuted = !stricmp(string.c_str(), "true");
487 else if (strcmp("IsModeratorMuted", tag) == 0) 583 else if (!stricmp("MicEnergy", tag))
488 isModeratorMuted = string == "true" ? true : false;
489 else if (strcmp("IsSpeaking", tag) == 0)
490 isSpeaking = string == "true" ? true : false;
491 else if (strcmp("Volume", tag) == 0)
492 volume = strtol(string.c_str(), NULL, 10);
493 else if (strcmp("Energy", tag) == 0)
494 energy = (F32)strtod(string.c_str(), NULL); 584 energy = (F32)strtod(string.c_str(), NULL);
495 else if (strcmp("MicEnergy", tag) == 0) 585 else if (!stricmp("ChannelName", tag))
496 energy = (F32)strtod(string.c_str(), NULL);
497 else if (strcmp("ChannelName", tag) == 0)
498 nameString = string; 586 nameString = string;
499 else if (strcmp("ChannelURI", tag) == 0) 587 else if (!stricmp("ChannelURI", tag))
500 uriString = string; 588 uriString = string;
501 else if (strcmp("ChannelListResult", tag) == 0) 589 else if (!stricmp("BuddyURI", tag))
502 { 590 uriString = string;
503 gVoiceClient->addChannelMapEntry(nameString, uriString); 591 else if (!stricmp("Presence", tag))
504 } 592 statusString = string;
505 else if (strcmp("Device", tag) == 0) 593 else if (!stricmp("Device", tag))
506 { 594 {
507 // This closing tag shouldn't clear the accumulated text. 595 // This closing tag shouldn't clear the accumulated text.
508 clearbuffer = false; 596 clearbuffer = false;
509 } 597 }
510 else if (strcmp("CaptureDevice", tag) == 0) 598 else if (!stricmp("CaptureDevice", tag))
511 { 599 {
512 gVoiceClient->addCaptureDevice(textBuffer); 600 gVoiceClient->addCaptureDevice(textBuffer);
513 } 601 }
514 else if (strcmp("RenderDevice", tag) == 0) 602 else if (!stricmp("RenderDevice", tag))
515 { 603 {
516 gVoiceClient->addRenderDevice(textBuffer); 604 gVoiceClient->addRenderDevice(textBuffer);
517 } 605 }
606 else if (!stricmp("Buddy", tag))
607 {
608 gVoiceClient->processBuddyListEntry(uriString, displayNameString);
609 }
610 else if (!stricmp("BlockRule", tag))
611 {
612 gVoiceClient->addBlockRule(blockMask, presenceOnly);
613 }
614 else if (!stricmp("BlockMask", tag))
615 blockMask = string;
616 else if (!stricmp("PresenceOnly", tag))
617 presenceOnly = string;
618 else if (!stricmp("AutoAcceptRule", tag))
619 {
620 gVoiceClient->addAutoAcceptRule(autoAcceptMask, autoAddAsBuddy);
621 }
622 else if (!stricmp("AutoAcceptMask", tag))
623 autoAcceptMask = string;
624 else if (!stricmp("AutoAddAsBuddy", tag))
625 autoAddAsBuddy = string;
626 else if (!stricmp("MessageHeader", tag))
627 messageHeader = string;
628 else if (!stricmp("MessageBody", tag))
629 messageBody = string;
630 else if (!stricmp("NotificationType", tag))
631 notificationType = string;
632 else if (!stricmp("HasText", tag))
633 hasText = !stricmp(string.c_str(), "true");
634 else if (!stricmp("HasAudio", tag))
635 hasAudio = !stricmp(string.c_str(), "true");
636 else if (!stricmp("HasVideo", tag))
637 hasVideo = !stricmp(string.c_str(), "true");
638 else if (!stricmp("Terminated", tag))
639 terminated = !stricmp(string.c_str(), "true");
640 else if (!stricmp("SubscriptionHandle", tag))
641 subscriptionHandle = string;
642 else if (!stricmp("SubscriptionType", tag))
643 subscriptionType = string;
644
518 645
519 if(clearbuffer) 646 if(clearbuffer)
520 { 647 {
@@ -549,144 +676,296 @@ void LLVivoxProtocolParser::CharData(const char *buffer, int length)
549 676
550void LLVivoxProtocolParser::processResponse(std::string tag) 677void LLVivoxProtocolParser::processResponse(std::string tag)
551{ 678{
552 LL_DEBUGS("Voice") << tag << LL_ENDL; 679 LL_DEBUGS("VivoxProtocolParser") << tag << LL_ENDL;
553 680
681 // SLIM SDK: the SDK now returns a statusCode of "200" (OK) for success. This is a change vs. previous SDKs.
682 // According to Mike S., "The actual API convention is that responses with return codes of 0 are successful, regardless of the status code returned",
683 // so I believe this will give correct behavior.
684
685 if(returnCode == 0)
686 statusCode = 0;
687
554 if (isEvent) 688 if (isEvent)
555 { 689 {
556 if (eventTypeString == "LoginStateChangeEvent") 690 const char *eventTypeCstr = eventTypeString.c_str();
691 if (!stricmp(eventTypeCstr, "AccountLoginStateChangeEvent"))
557 { 692 {
558 gVoiceClient->loginStateChangeEvent(accountHandle, statusCode, statusString, state); 693 gVoiceClient->accountLoginStateChangeEvent(accountHandle, statusCode, statusString, state);
559 } 694 }
560 else if (eventTypeString == "SessionNewEvent") 695 else if (!stricmp(eventTypeCstr, "SessionAddedEvent"))
561 { 696 {
562 gVoiceClient->sessionNewEvent(accountHandle, eventSessionHandle, state, nameString, uriString); 697 /*
698 <Event type="SessionAddedEvent">
699 <SessionGroupHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==_sg0</SessionGroupHandle>
700 <SessionHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==0</SessionHandle>
701 <Uri>sip:confctl-1408789@bhr.vivox.com</Uri>
702 <IsChannel>true</IsChannel>
703 <Incoming>false</Incoming>
704 <ChannelName />
705 </Event>
706 */
707 gVoiceClient->sessionAddedEvent(uriString, alias, sessionHandle, sessionGroupHandle, isChannel, incoming, nameString, applicationString);
563 } 708 }
564 else if (eventTypeString == "SessionStateChangeEvent") 709 else if (!stricmp(eventTypeCstr, "SessionRemovedEvent"))
565 { 710 {
566 gVoiceClient->sessionStateChangeEvent(uriString, statusCode, statusString, eventSessionHandle, state, isChannel, nameString); 711 gVoiceClient->sessionRemovedEvent(sessionHandle, sessionGroupHandle);
567 } 712 }
568 else if (eventTypeString == "ParticipantStateChangeEvent") 713 else if (!stricmp(eventTypeCstr, "SessionGroupAddedEvent"))
569 { 714 {
570 gVoiceClient->participantStateChangeEvent(uriString, statusCode, statusString, state, nameString, displayNameString, participantType); 715 gVoiceClient->sessionGroupAddedEvent(sessionGroupHandle);
571 716 }
717 else if (!stricmp(eventTypeCstr, "MediaStreamUpdatedEvent"))
718 {
719 /*
720 <Event type="MediaStreamUpdatedEvent">
721 <SessionGroupHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==_sg0</SessionGroupHandle>
722 <SessionHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==0</SessionHandle>
723 <StatusCode>200</StatusCode>
724 <StatusString>OK</StatusString>
725 <State>2</State>
726 <Incoming>false</Incoming>
727 </Event>
728 */
729 gVoiceClient->mediaStreamUpdatedEvent(sessionHandle, sessionGroupHandle, statusCode, statusString, state, incoming);
730 }
731 else if (!stricmp(eventTypeCstr, "TextStreamUpdatedEvent"))
732 {
733 /*
734 <Event type="TextStreamUpdatedEvent">
735 <SessionGroupHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==_sg1</SessionGroupHandle>
736 <SessionHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==1</SessionHandle>
737 <Enabled>true</Enabled>
738 <State>1</State>
739 <Incoming>true</Incoming>
740 </Event>
741 */
742 gVoiceClient->textStreamUpdatedEvent(sessionHandle, sessionGroupHandle, enabled, state, incoming);
572 } 743 }
573 else if (eventTypeString == "ParticipantPropertiesEvent") 744 else if (!stricmp(eventTypeCstr, "ParticipantAddedEvent"))
574 { 745 {
575 gVoiceClient->participantPropertiesEvent(uriString, statusCode, statusString, isLocallyMuted, isModeratorMuted, isSpeaking, volume, energy); 746 /*
747 <Event type="ParticipantAddedEvent">
748 <SessionGroupHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==_sg4</SessionGroupHandle>
749 <SessionHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==4</SessionHandle>
750 <ParticipantUri>sip:xI5auBZ60SJWIk606-1JGRQ==@bhr.vivox.com</ParticipantUri>
751 <AccountName>xI5auBZ60SJWIk606-1JGRQ==</AccountName>
752 <DisplayName />
753 <ParticipantType>0</ParticipantType>
754 </Event>
755 */
756 gVoiceClient->participantAddedEvent(sessionHandle, sessionGroupHandle, uriString, alias, nameString, displayNameString, participantType);
576 } 757 }
577 else if (eventTypeString == "AuxAudioPropertiesEvent") 758 else if (!stricmp(eventTypeCstr, "ParticipantRemovedEvent"))
759 {
760 /*
761 <Event type="ParticipantRemovedEvent">
762 <SessionGroupHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==_sg4</SessionGroupHandle>
763 <SessionHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==4</SessionHandle>
764 <ParticipantUri>sip:xtx7YNV-3SGiG7rA1fo5Ndw==@bhr.vivox.com</ParticipantUri>
765 <AccountName>xtx7YNV-3SGiG7rA1fo5Ndw==</AccountName>
766 </Event>
767 */
768 gVoiceClient->participantRemovedEvent(sessionHandle, sessionGroupHandle, uriString, alias, nameString);
769 }
770 else if (!stricmp(eventTypeCstr, "ParticipantUpdatedEvent"))
771 {
772 /*
773 <Event type="ParticipantUpdatedEvent">
774 <SessionGroupHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==_sg0</SessionGroupHandle>
775 <SessionHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==0</SessionHandle>
776 <ParticipantUri>sip:xFnPP04IpREWNkuw1cOXlhw==@bhr.vivox.com</ParticipantUri>
777 <IsModeratorMuted>false</IsModeratorMuted>
778 <IsSpeaking>true</IsSpeaking>
779 <Volume>44</Volume>
780 <Energy>0.0879437</Energy>
781 </Event>
782 */
783
784 // These happen so often that logging them is pretty useless.
785 squelchDebugOutput = true;
786
787 gVoiceClient->participantUpdatedEvent(sessionHandle, sessionGroupHandle, uriString, alias, isModeratorMuted, isSpeaking, volume, energy);
788 }
789 else if (!stricmp(eventTypeCstr, "AuxAudioPropertiesEvent"))
578 { 790 {
579 gVoiceClient->auxAudioPropertiesEvent(energy); 791 gVoiceClient->auxAudioPropertiesEvent(energy);
580 } 792 }
793 else if (!stricmp(eventTypeCstr, "BuddyPresenceEvent"))
794 {
795 gVoiceClient->buddyPresenceEvent(uriString, alias, statusString, applicationString);
796 }
797 else if (!stricmp(eventTypeCstr, "BuddyAndGroupListChangedEvent"))
798 {
799 // The buddy list was updated during parsing.
800 // Need to recheck against the friends list.
801 gVoiceClient->buddyListChanged();
802 }
803 else if (!stricmp(eventTypeCstr, "BuddyChangedEvent"))
804 {
805 /*
806 <Event type="BuddyChangedEvent">
807 <AccountHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==</AccountHandle>
808 <BuddyURI>sip:x9fFHFZjOTN6OESF1DUPrZQ==@bhr.vivox.com</BuddyURI>
809 <DisplayName>Monroe Tester</DisplayName>
810 <BuddyData />
811 <GroupID>0</GroupID>
812 <ChangeType>Set</ChangeType>
813 </Event>
814 */
815 // TODO: Question: Do we need to process this at all?
816 }
817 else if (!stricmp(eventTypeCstr, "MessageEvent"))
818 {
819 gVoiceClient->messageEvent(sessionHandle, uriString, alias, messageHeader, messageBody, applicationString);
820 }
821 else if (!stricmp(eventTypeCstr, "SessionNotificationEvent"))
822 {
823 gVoiceClient->sessionNotificationEvent(sessionHandle, uriString, notificationType);
824 }
825 else if (!stricmp(eventTypeCstr, "SubscriptionEvent"))
826 {
827 gVoiceClient->subscriptionEvent(uriString, subscriptionHandle, alias, displayNameString, applicationString, subscriptionType);
828 }
829 else if (!stricmp(eventTypeCstr, "SessionUpdatedEvent"))
830 {
831 /*
832 <Event type="SessionUpdatedEvent">
833 <SessionGroupHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==_sg0</SessionGroupHandle>
834 <SessionHandle>c1_m1000xFnPP04IpREWNkuw1cOXlhw==0</SessionHandle>
835 <Uri>sip:confctl-9@bhd.vivox.com</Uri>
836 <IsMuted>0</IsMuted>
837 <Volume>50</Volume>
838 <TransmitEnabled>1</TransmitEnabled>
839 <IsFocused>0</IsFocused>
840 <SpeakerPosition><Position><X>0</X><Y>0</Y><Z>0</Z></Position></SpeakerPosition>
841 <SessionFontID>0</SessionFontID>
842 </Event>
843 */
844 // We don't need to process this, but we also shouldn't warn on it, since that confuses people.
845 }
846 else
847 {
848 LL_WARNS("VivoxProtocolParser") << "Unknown event type " << eventTypeString << LL_ENDL;
849 }
581 } 850 }
582 else 851 else
583 { 852 {
584 if (actionString == "Connector.Create.1") 853 const char *actionCstr = actionString.c_str();
854 if (!stricmp(actionCstr, "Connector.Create.1"))
585 { 855 {
586 gVoiceClient->connectorCreateResponse(statusCode, statusString, connectorHandle); 856 gVoiceClient->connectorCreateResponse(statusCode, statusString, connectorHandle, versionID);
587 } 857 }
588 else if (actionString == "Account.Login.1") 858 else if (!stricmp(actionCstr, "Account.Login.1"))
589 { 859 {
590 gVoiceClient->loginResponse(statusCode, statusString, accountHandle); 860 gVoiceClient->loginResponse(statusCode, statusString, accountHandle, numberOfAliases);
591 } 861 }
592 else if (actionString == "Session.Create.1") 862 else if (!stricmp(actionCstr, "Session.Create.1"))
593 { 863 {
594 gVoiceClient->sessionCreateResponse(statusCode, statusString, sessionHandle); 864 gVoiceClient->sessionCreateResponse(requestId, statusCode, statusString, sessionHandle);
595 } 865 }
596 else if (actionString == "Session.Connect.1") 866 else if (!stricmp(actionCstr, "SessionGroup.AddSession.1"))
597 { 867 {
598 gVoiceClient->sessionConnectResponse(statusCode, statusString); 868 gVoiceClient->sessionGroupAddSessionResponse(requestId, statusCode, statusString, sessionHandle);
599 } 869 }
600 else if (actionString == "Session.Terminate.1") 870 else if (!stricmp(actionCstr, "Session.Connect.1"))
601 { 871 {
602 gVoiceClient->sessionTerminateResponse(statusCode, statusString); 872 gVoiceClient->sessionConnectResponse(requestId, statusCode, statusString);
603 } 873 }
604 else if (actionString == "Account.Logout.1") 874 else if (!stricmp(actionCstr, "Account.Logout.1"))
605 { 875 {
606 gVoiceClient->logoutResponse(statusCode, statusString); 876 gVoiceClient->logoutResponse(statusCode, statusString);
607 } 877 }
608 else if (actionString == "Connector.InitiateShutdown.1") 878 else if (!stricmp(actionCstr, "Connector.InitiateShutdown.1"))
609 { 879 {
610 gVoiceClient->connectorShutdownResponse(statusCode, statusString); 880 gVoiceClient->connectorShutdownResponse(statusCode, statusString);
611 } 881 }
612 else if (actionString == "Account.ChannelGetList.1") 882 else if (!stricmp(actionCstr, "Account.ListBlockRules.1"))
613 { 883 {
614 gVoiceClient->channelGetListResponse(statusCode, statusString); 884 gVoiceClient->accountListBlockRulesResponse(statusCode, statusString);
885 }
886 else if (!stricmp(actionCstr, "Account.ListAutoAcceptRules.1"))
887 {
888 gVoiceClient->accountListAutoAcceptRulesResponse(statusCode, statusString);
889 }
890 else if (!stricmp(actionCstr, "Session.Set3DPosition.1"))
891 {
892 // We don't need to process these, but they're so spammy we don't want to log them.
893 squelchDebugOutput = true;
615 } 894 }
616/* 895/*
617 else if (actionString == "Connector.AccountCreate.1") 896 else if (!stricmp(actionCstr, "Account.ChannelGetList.1"))
618 { 897 {
619 898 gVoiceClient->channelGetListResponse(statusCode, statusString);
620 } 899 }
621 else if (actionString == "Connector.MuteLocalMic.1") 900 else if (!stricmp(actionCstr, "Connector.AccountCreate.1"))
622 { 901 {
623 902
624 } 903 }
625 else if (actionString == "Connector.MuteLocalSpeaker.1") 904 else if (!stricmp(actionCstr, "Connector.MuteLocalMic.1"))
626 { 905 {
627 906
628 } 907 }
629 else if (actionString == "Connector.SetLocalMicVolume.1") 908 else if (!stricmp(actionCstr, "Connector.MuteLocalSpeaker.1"))
630 { 909 {
631 910
632 } 911 }
633 else if (actionString == "Connector.SetLocalSpeakerVolume.1") 912 else if (!stricmp(actionCstr, "Connector.SetLocalMicVolume.1"))
634 { 913 {
635 914
636 } 915 }
637 else if (actionString == "Session.ListenerSetPosition.1") 916 else if (!stricmp(actionCstr, "Connector.SetLocalSpeakerVolume.1"))
638 { 917 {
639 918
640 } 919 }
641 else if (actionString == "Session.SpeakerSetPosition.1") 920 else if (!stricmp(actionCstr, "Session.ListenerSetPosition.1"))
642 { 921 {
643 922
644 } 923 }
645 else if (actionString == "Session.Set3DPosition.1") 924 else if (!stricmp(actionCstr, "Session.SpeakerSetPosition.1"))
646 { 925 {
647 926
648 } 927 }
649 else if (actionString == "Session.AudioSourceSetPosition.1") 928 else if (!stricmp(actionCstr, "Session.AudioSourceSetPosition.1"))
650 { 929 {
651 930
652 } 931 }
653 else if (actionString == "Session.GetChannelParticipants.1") 932 else if (!stricmp(actionCstr, "Session.GetChannelParticipants.1"))
654 { 933 {
655 934
656 } 935 }
657 else if (actionString == "Account.ChannelCreate.1") 936 else if (!stricmp(actionCstr, "Account.ChannelCreate.1"))
658 { 937 {
659 938
660 } 939 }
661 else if (actionString == "Account.ChannelUpdate.1") 940 else if (!stricmp(actionCstr, "Account.ChannelUpdate.1"))
662 { 941 {
663 942
664 } 943 }
665 else if (actionString == "Account.ChannelDelete.1") 944 else if (!stricmp(actionCstr, "Account.ChannelDelete.1"))
666 { 945 {
667 946
668 } 947 }
669 else if (actionString == "Account.ChannelCreateAndInvite.1") 948 else if (!stricmp(actionCstr, "Account.ChannelCreateAndInvite.1"))
670 { 949 {
671 950
672 } 951 }
673 else if (actionString == "Account.ChannelFolderCreate.1") 952 else if (!stricmp(actionCstr, "Account.ChannelFolderCreate.1"))
674 { 953 {
675 954
676 } 955 }
677 else if (actionString == "Account.ChannelFolderUpdate.1") 956 else if (!stricmp(actionCstr, "Account.ChannelFolderUpdate.1"))
678 { 957 {
679 958
680 } 959 }
681 else if (actionString == "Account.ChannelFolderDelete.1") 960 else if (!stricmp(actionCstr, "Account.ChannelFolderDelete.1"))
682 { 961 {
683 962
684 } 963 }
685 else if (actionString == "Account.ChannelAddModerator.1") 964 else if (!stricmp(actionCstr, "Account.ChannelAddModerator.1"))
686 { 965 {
687 966
688 } 967 }
689 else if (actionString == "Account.ChannelDeleteModerator.1") 968 else if (!stricmp(actionCstr, "Account.ChannelDeleteModerator.1"))
690 { 969 {
691 970
692 } 971 }
@@ -700,9 +979,18 @@ class LLVoiceClientMuteListObserver : public LLMuteListObserver
700{ 979{
701 /* virtual */ void onChange() { gVoiceClient->muteListChanged();} 980 /* virtual */ void onChange() { gVoiceClient->muteListChanged();}
702}; 981};
982
983class LLVoiceClientFriendsObserver : public LLFriendObserver
984{
985public:
986 /* virtual */ void changed(U32 mask) { gVoiceClient->updateFriends(mask);}
987};
988
703static LLVoiceClientMuteListObserver mutelist_listener; 989static LLVoiceClientMuteListObserver mutelist_listener;
704static bool sMuteListListener_listening = false; 990static bool sMuteListListener_listening = false;
705 991
992static LLVoiceClientFriendsObserver *friendslist_listener = NULL;
993
706/////////////////////////////////////////////////////////////////////////////////////////////// 994///////////////////////////////////////////////////////////////////////////////////////////////
707 995
708class LLVoiceClientCapResponder : public LLHTTPClient::Responder 996class LLVoiceClientCapResponder : public LLHTTPClient::Responder
@@ -726,11 +1014,8 @@ void LLVoiceClientCapResponder::error(U32 status, const std::string& reason)
726void LLVoiceClientCapResponder::result(const LLSD& content) 1014void LLVoiceClientCapResponder::result(const LLSD& content)
727{ 1015{
728 LLSD::map_const_iterator iter; 1016 LLSD::map_const_iterator iter;
729 for(iter = content.beginMap(); iter != content.endMap(); ++iter) 1017
730 { 1018 LL_DEBUGS("Voice") << "ParcelVoiceInfoRequest response:" << ll_pretty_print_sd(content) << LL_ENDL;
731 LL_DEBUGS("Voice") << "LLVoiceClientCapResponder::result got "
732 << iter->first << LL_ENDL;
733 }
734 1019
735 if ( content.has("voice_credentials") ) 1020 if ( content.has("voice_credentials") )
736 { 1021 {
@@ -816,26 +1101,26 @@ LLVoiceClient::LLVoiceClient()
816 mUserPTTState = false; 1101 mUserPTTState = false;
817 mMuteMic = false; 1102 mMuteMic = false;
818 mSessionTerminateRequested = false; 1103 mSessionTerminateRequested = false;
1104 mRelogRequested = false;
819 mCommandCookie = 0; 1105 mCommandCookie = 0;
820 mNonSpatialChannel = false;
821 mNextSessionSpatial = true;
822 mNextSessionNoReconnect = false;
823 mSessionP2P = false;
824 mCurrentParcelLocalID = 0; 1106 mCurrentParcelLocalID = 0;
825 mLoginRetryCount = 0; 1107 mLoginRetryCount = 0;
826 mVivoxErrorStatusCode = 0;
827 1108
828 mNextSessionResetOnClose = false;
829 mSessionResetOnClose = false;
830 mSpeakerVolume = 0; 1109 mSpeakerVolume = 0;
831 mMicVolume = 0; 1110 mMicVolume = 0;
832 1111
1112 mAudioSession = NULL;
1113 mAudioSessionChanged = false;
1114
833 // Initial dirty state 1115 // Initial dirty state
834 mSpatialCoordsDirty = false; 1116 mSpatialCoordsDirty = false;
835 mPTTDirty = true; 1117 mPTTDirty = true;
836 mVolumeDirty = true; 1118 mFriendsListDirty = true;
837 mSpeakerVolumeDirty = true; 1119 mSpeakerVolumeDirty = true;
838 mMicVolumeDirty = true; 1120 mMicVolumeDirty = true;
1121 mBuddyListMapPopulated = false;
1122 mBlockRulesListReceived = false;
1123 mAutoAcceptRulesListReceived = false;
839 mCaptureDeviceDirty = false; 1124 mCaptureDeviceDirty = false;
840 mRenderDeviceDirty = false; 1125 mRenderDeviceDirty = false;
841 1126
@@ -856,14 +1141,12 @@ LLVoiceClient::LLVoiceClient()
856 // gMuteListp isn't set up at this point, so we defer this until later. 1141 // gMuteListp isn't set up at this point, so we defer this until later.
857// gMuteListp->addObserver(&mutelist_listener); 1142// gMuteListp->addObserver(&mutelist_listener);
858 1143
859 mParticipantMapChanged = false;
860
861 // stash the pump for later use 1144 // stash the pump for later use
862 // This now happens when init() is called instead. 1145 // This now happens when init() is called instead.
863 mPump = NULL; 1146 mPump = NULL;
864 1147
865#if LL_DARWIN || LL_LINUX 1148#if LL_DARWIN || LL_LINUX
866 // MBW -- XXX -- THIS DOES NOT BELONG HERE 1149 // HACK: THIS DOES NOT BELONG HERE
867 // When the vivox daemon dies, the next write attempt on our socket generates a SIGPIPE, which kills us. 1150 // When the vivox daemon dies, the next write attempt on our socket generates a SIGPIPE, which kills us.
868 // This should cause us to ignore SIGPIPE and handle the error through proper channels. 1151 // This should cause us to ignore SIGPIPE and handle the error through proper channels.
869 // This should really be set up elsewhere. Where should it go? 1152 // This should really be set up elsewhere. Where should it go?
@@ -899,8 +1182,10 @@ void LLVoiceClient::terminate()
899{ 1182{
900 if(gVoiceClient) 1183 if(gVoiceClient)
901 { 1184 {
902 gVoiceClient->sessionTerminateSendMessage(); 1185// gVoiceClient->leaveAudioSession();
903 gVoiceClient->logout(); 1186 gVoiceClient->logout();
1187 // As of SDK version 4885, this should no longer be necessary. It will linger after the socket close if it needs to.
1188 // ms_sleep(2000);
904 gVoiceClient->connectorShutdown(); 1189 gVoiceClient->connectorShutdown();
905 gVoiceClient->closeSocket(); // Need to do this now -- bad things happen if the destructor does it later. 1190 gVoiceClient->closeSocket(); // Need to do this now -- bad things happen if the destructor does it later.
906 1191
@@ -925,13 +1210,13 @@ void LLVoiceClient::updateSettings()
925 setPTTKey(keyString); 1210 setPTTKey(keyString);
926 setPTTIsToggle(gSavedSettings.getBOOL("PushToTalkToggle")); 1211 setPTTIsToggle(gSavedSettings.getBOOL("PushToTalkToggle"));
927 setEarLocation(gSavedSettings.getS32("VoiceEarLocation")); 1212 setEarLocation(gSavedSettings.getS32("VoiceEarLocation"));
928 std::string serverName = gSavedSettings.getString("VivoxDebugServerName");
929 setVivoxDebugServerName(serverName);
930 1213
931 std::string inputDevice = gSavedSettings.getString("VoiceInputAudioDevice"); 1214 std::string inputDevice = gSavedSettings.getString("VoiceInputAudioDevice");
932 setCaptureDevice(inputDevice); 1215 setCaptureDevice(inputDevice);
933 std::string outputDevice = gSavedSettings.getString("VoiceOutputAudioDevice"); 1216 std::string outputDevice = gSavedSettings.getString("VoiceOutputAudioDevice");
934 setRenderDevice(outputDevice); 1217 setRenderDevice(outputDevice);
1218 F32 mic_level = gSavedSettings.getF32("AudioLevelMic");
1219 setMicGain(mic_level);
935 setLipSyncEnabled(gSavedSettings.getBOOL("LipSyncEnabled")); 1220 setLipSyncEnabled(gSavedSettings.getBOOL("LipSyncEnabled"));
936} 1221}
937 1222
@@ -947,9 +1232,10 @@ bool LLVoiceClient::writeString(const std::string &str)
947 apr_size_t size = (apr_size_t)str.size(); 1232 apr_size_t size = (apr_size_t)str.size();
948 apr_size_t written = size; 1233 apr_size_t written = size;
949 1234
950 LL_DEBUGS("Voice") << "sending: " << str << LL_ENDL; 1235 //MARK: Turn this on to log outgoing XML
1236// LL_DEBUGS("Voice") << "sending: " << str << LL_ENDL;
951 1237
952 // MBW -- XXX -- check return code - sockets will fail (broken, etc.) 1238 // check return code - sockets will fail (broken, etc.)
953 err = apr_socket_send( 1239 err = apr_socket_send(
954 mSocket->getSocket(), 1240 mSocket->getSocket(),
955 (const char*)str.data(), 1241 (const char*)str.data(),
@@ -960,7 +1246,7 @@ bool LLVoiceClient::writeString(const std::string &str)
960 // Success. 1246 // Success.
961 result = true; 1247 result = true;
962 } 1248 }
963 // MBW -- XXX -- handle partial writes (written is number of bytes written) 1249 // TODO: handle partial writes (written is number of bytes written)
964 // Need to set socket to non-blocking before this will work. 1250 // Need to set socket to non-blocking before this will work.
965// else if(APR_STATUS_IS_EAGAIN(err)) 1251// else if(APR_STATUS_IS_EAGAIN(err))
966// { 1252// {
@@ -984,7 +1270,7 @@ bool LLVoiceClient::writeString(const std::string &str)
984void LLVoiceClient::connectorCreate() 1270void LLVoiceClient::connectorCreate()
985{ 1271{
986 std::ostringstream stream; 1272 std::ostringstream stream;
987 std::string logpath; 1273 std::string logpath = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "");
988 std::string loglevel = "0"; 1274 std::string loglevel = "0";
989 1275
990 // Transition to stateConnectorStarted when the connector handle comes back. 1276 // Transition to stateConnectorStarted when the connector handle comes back.
@@ -996,20 +1282,20 @@ void LLVoiceClient::connectorCreate()
996 { 1282 {
997 LL_DEBUGS("Voice") << "creating connector with logging enabled" << LL_ENDL; 1283 LL_DEBUGS("Voice") << "creating connector with logging enabled" << LL_ENDL;
998 loglevel = "10"; 1284 loglevel = "10";
999 logpath = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "");
1000 } 1285 }
1001 1286
1002 stream 1287 stream
1003 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.Create.1\">" 1288 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.Create.1\">"
1004 << "<ClientName>V2 SDK</ClientName>" 1289 << "<ClientName>V2 SDK</ClientName>"
1005 << "<AccountManagementServer>" << mAccountServerURI << "</AccountManagementServer>" 1290 << "<AccountManagementServer>" << mVoiceAccountServerURI << "</AccountManagementServer>"
1291 << "<Mode>Normal</Mode>"
1006 << "<Logging>" 1292 << "<Logging>"
1007 << "<Enabled>false</Enabled>"
1008 << "<Folder>" << logpath << "</Folder>" 1293 << "<Folder>" << logpath << "</Folder>"
1009 << "<FileNamePrefix>Connector</FileNamePrefix>" 1294 << "<FileNamePrefix>Connector</FileNamePrefix>"
1010 << "<FileNameSuffix>.log</FileNameSuffix>" 1295 << "<FileNameSuffix>.log</FileNameSuffix>"
1011 << "<LogLevel>" << loglevel << "</LogLevel>" 1296 << "<LogLevel>" << loglevel << "</LogLevel>"
1012 << "</Logging>" 1297 << "</Logging>"
1298 << "<Application>SecondLifeViewer.1</Application>"
1013 << "</Request>\n\n\n"; 1299 << "</Request>\n\n\n";
1014 1300
1015 writeString(stream.str()); 1301 writeString(stream.str());
@@ -1047,20 +1333,6 @@ void LLVoiceClient::userAuthorized(const std::string& firstName, const std::stri
1047 1333
1048 sConnectingToAgni = LLViewerLogin::getInstance()->isInProductionGrid(); 1334 sConnectingToAgni = LLViewerLogin::getInstance()->isInProductionGrid();
1049 1335
1050 // MBW -- XXX -- Enable this when the bhd.vivox.com server gets a real ssl cert.
1051 if(sConnectingToAgni)
1052 {
1053 // Use the release account server
1054 mAccountServerName = "bhr.vivox.com";
1055 mAccountServerURI = "https://www." + mAccountServerName + "/api2/";
1056 }
1057 else
1058 {
1059 // Use the development account server
1060 mAccountServerName = gSavedSettings.getString("VivoxDebugServerName");
1061 mAccountServerURI = "https://www." + mAccountServerName + "/api2/";
1062 }
1063
1064 mAccountName = nameFromID(agentID); 1336 mAccountName = nameFromID(agentID);
1065} 1337}
1066 1338
@@ -1082,24 +1354,69 @@ void LLVoiceClient::requestVoiceAccountProvision(S32 retries)
1082} 1354}
1083 1355
1084void LLVoiceClient::login( 1356void LLVoiceClient::login(
1085 const std::string& accountName, 1357 const std::string& account_name,
1086 const std::string &password) 1358 const std::string& password,
1359 const std::string& voice_sip_uri_hostname,
1360 const std::string& voice_account_server_uri)
1087{ 1361{
1088 if((getState() >= stateLoggingIn) && (getState() < stateLoggedOut)) 1362 mVoiceSIPURIHostName = voice_sip_uri_hostname;
1363 mVoiceAccountServerURI = voice_account_server_uri;
1364
1365 if(!mAccountHandle.empty())
1089 { 1366 {
1090 // Already logged in. This is an internal error. 1367 // Already logged in.
1091 LL_ERRS("Voice") << "Can't login again. Called from wrong state." << LL_ENDL; 1368 LL_WARNS("Voice") << "Called while already logged in." << LL_ENDL;
1369
1370 // Don't process another login.
1371 return;
1092 } 1372 }
1093 else if ( accountName != mAccountName ) 1373 else if ( account_name != mAccountName )
1094 { 1374 {
1095 //TODO: error? 1375 //TODO: error?
1096 LL_WARNS("Voice") << "Wrong account name! " << accountName 1376 LL_WARNS("Voice") << "Wrong account name! " << account_name
1097 << " instead of " << mAccountName << LL_ENDL; 1377 << " instead of " << mAccountName << LL_ENDL;
1098 } 1378 }
1099 else 1379 else
1100 { 1380 {
1101 mAccountPassword = password; 1381 mAccountPassword = password;
1102 } 1382 }
1383
1384 std::string debugSIPURIHostName = gSavedSettings.getString("VivoxDebugSIPURIHostName");
1385
1386 if( !debugSIPURIHostName.empty() )
1387 {
1388 mVoiceSIPURIHostName = debugSIPURIHostName;
1389 }
1390
1391 if( mVoiceSIPURIHostName.empty() )
1392 {
1393 // we have an empty account server name
1394 // so we fall back to hardcoded defaults
1395
1396 if(sConnectingToAgni)
1397 {
1398 // Use the release account server
1399 mVoiceSIPURIHostName = "bhr.vivox.com";
1400 }
1401 else
1402 {
1403 // Use the development account server
1404 mVoiceSIPURIHostName = "bhd.vivox.com";
1405 }
1406 }
1407
1408 std::string debugAccountServerURI = gSavedSettings.getString("VivoxDebugVoiceAccountServerURI");
1409
1410 if( !debugAccountServerURI.empty() )
1411 {
1412 mVoiceAccountServerURI = debugAccountServerURI;
1413 }
1414
1415 if( mVoiceAccountServerURI.empty() )
1416 {
1417 // If the account server URI isn't specified, construct it from the SIP URI hostname
1418 mVoiceAccountServerURI = "https://www." + mVoiceSIPURIHostName + "/api2/";
1419 }
1103} 1420}
1104 1421
1105void LLVoiceClient::idle(void* user_data) 1422void LLVoiceClient::idle(void* user_data)
@@ -1117,11 +1434,16 @@ std::string LLVoiceClient::state2string(LLVoiceClient::state inState)
1117 1434
1118 switch(inState) 1435 switch(inState)
1119 { 1436 {
1437 CASE(stateDisableCleanup);
1120 CASE(stateDisabled); 1438 CASE(stateDisabled);
1121 CASE(stateStart); 1439 CASE(stateStart);
1122 CASE(stateDaemonLaunched); 1440 CASE(stateDaemonLaunched);
1123 CASE(stateConnecting); 1441 CASE(stateConnecting);
1442 CASE(stateConnected);
1124 CASE(stateIdle); 1443 CASE(stateIdle);
1444 CASE(stateMicTuningStart);
1445 CASE(stateMicTuningRunning);
1446 CASE(stateMicTuningStop);
1125 CASE(stateConnectorStart); 1447 CASE(stateConnectorStart);
1126 CASE(stateConnectorStarting); 1448 CASE(stateConnectorStarting);
1127 CASE(stateConnectorStarted); 1449 CASE(stateConnectorStarted);
@@ -1130,12 +1452,8 @@ std::string LLVoiceClient::state2string(LLVoiceClient::state inState)
1130 CASE(stateNeedsLogin); 1452 CASE(stateNeedsLogin);
1131 CASE(stateLoggingIn); 1453 CASE(stateLoggingIn);
1132 CASE(stateLoggedIn); 1454 CASE(stateLoggedIn);
1455 CASE(stateCreatingSessionGroup);
1133 CASE(stateNoChannel); 1456 CASE(stateNoChannel);
1134 CASE(stateMicTuningStart);
1135 CASE(stateMicTuningRunning);
1136 CASE(stateMicTuningStop);
1137 CASE(stateSessionCreate);
1138 CASE(stateSessionConnect);
1139 CASE(stateJoiningSession); 1457 CASE(stateJoiningSession);
1140 CASE(stateSessionJoined); 1458 CASE(stateSessionJoined);
1141 CASE(stateRunning); 1459 CASE(stateRunning);
@@ -1152,7 +1470,6 @@ std::string LLVoiceClient::state2string(LLVoiceClient::state inState)
1152 CASE(stateJoinSessionFailed); 1470 CASE(stateJoinSessionFailed);
1153 CASE(stateJoinSessionFailedWaiting); 1471 CASE(stateJoinSessionFailedWaiting);
1154 CASE(stateJail); 1472 CASE(stateJail);
1155 CASE(stateMicTuningNoLogin);
1156 } 1473 }
1157 1474
1158#undef CASE 1475#undef CASE
@@ -1174,6 +1491,7 @@ std::string LLVoiceClientStatusObserver::status2string(LLVoiceClientStatusObserv
1174 CASE(STATUS_JOINING); 1491 CASE(STATUS_JOINING);
1175 CASE(STATUS_JOINED); 1492 CASE(STATUS_JOINED);
1176 CASE(STATUS_LEFT_CHANNEL); 1493 CASE(STATUS_LEFT_CHANNEL);
1494 CASE(STATUS_VOICE_DISABLED);
1177 CASE(BEGIN_ERROR_STATUS); 1495 CASE(BEGIN_ERROR_STATUS);
1178 CASE(ERROR_CHANNEL_FULL); 1496 CASE(ERROR_CHANNEL_FULL);
1179 CASE(ERROR_CHANNEL_LOCKED); 1497 CASE(ERROR_CHANNEL_LOCKED);
@@ -1207,9 +1525,13 @@ void LLVoiceClient::stateMachine()
1207 { 1525 {
1208 updatePosition(); 1526 updatePosition();
1209 } 1527 }
1528 else if(mTuningMode)
1529 {
1530 // Tuning mode is special -- it needs to launch SLVoice even if voice is disabled.
1531 }
1210 else 1532 else
1211 { 1533 {
1212 if(getState() != stateDisabled) 1534 if((getState() != stateDisabled) && (getState() != stateDisableCleanup))
1213 { 1535 {
1214 // User turned off voice support. Send the cleanup messages, close the socket, and reset. 1536 // User turned off voice support. Send the cleanup messages, close the socket, and reset.
1215 if(!mConnected) 1537 if(!mConnected)
@@ -1219,13 +1541,10 @@ void LLVoiceClient::stateMachine()
1219 killGateway(); 1541 killGateway();
1220 } 1542 }
1221 1543
1222 sessionTerminateSendMessage();
1223 logout(); 1544 logout();
1224 connectorShutdown(); 1545 connectorShutdown();
1225 closeSocket(); 1546
1226 removeAllParticipants(); 1547 setState(stateDisableCleanup);
1227
1228 setState(stateDisabled);
1229 } 1548 }
1230 } 1549 }
1231 1550
@@ -1240,7 +1559,7 @@ void LLVoiceClient::stateMachine()
1240 std::string regionName = region->getName(); 1559 std::string regionName = region->getName();
1241 std::string capURI = region->getCapability("ParcelVoiceInfoRequest"); 1560 std::string capURI = region->getCapability("ParcelVoiceInfoRequest");
1242 1561
1243 LL_DEBUGS("Voice") << "Region name = \"" << regionName <<"\", " << "parcel local ID = " << parcelLocalID << LL_ENDL; 1562// LL_DEBUGS("Voice") << "Region name = \"" << regionName <<"\", " << "parcel local ID = " << parcelLocalID << LL_ENDL;
1244 1563
1245 // The region name starts out empty and gets filled in later. 1564 // The region name starts out empty and gets filled in later.
1246 // Also, the cap gets filled in a short time after the region cross, but a little too late for our purposes. 1565 // Also, the cap gets filled in a short time after the region cross, but a little too late for our purposes.
@@ -1261,13 +1580,30 @@ void LLVoiceClient::stateMachine()
1261 1580
1262 switch(getState()) 1581 switch(getState())
1263 { 1582 {
1583 //MARK: stateDisableCleanup
1584 case stateDisableCleanup:
1585 // Clean up and reset everything.
1586 closeSocket();
1587 deleteAllSessions();
1588 deleteAllBuddies();
1589
1590 mConnectorHandle.clear();
1591 mAccountHandle.clear();
1592 mAccountPassword.clear();
1593 mVoiceAccountServerURI.clear();
1594
1595 setState(stateDisabled);
1596 break;
1597
1598 //MARK: stateDisabled
1264 case stateDisabled: 1599 case stateDisabled:
1265 if(mVoiceEnabled && (!mAccountName.empty() || mTuningMode)) 1600 if(mTuningMode || (mVoiceEnabled && !mAccountName.empty()))
1266 { 1601 {
1267 setState(stateStart); 1602 setState(stateStart);
1268 } 1603 }
1269 break; 1604 break;
1270 1605
1606 //MARK: stateStart
1271 case stateStart: 1607 case stateStart:
1272 if(gSavedSettings.getBOOL("CmdLineDisableVoice")) 1608 if(gSavedSettings.getBOOL("CmdLineDisableVoice"))
1273 { 1609 {
@@ -1298,7 +1634,9 @@ void LLVoiceClient::stateMachine()
1298 if(!LLFile::stat(exe_path, &s)) 1634 if(!LLFile::stat(exe_path, &s))
1299 { 1635 {
1300 // vivox executable exists. Build the command line and launch the daemon. 1636 // vivox executable exists. Build the command line and launch the daemon.
1301 std::string args = " -p tcp -h -c"; 1637 // SLIM SDK: these arguments are no longer necessary.
1638// std::string args = " -p tcp -h -c";
1639 std::string args;
1302 std::string cmd; 1640 std::string cmd;
1303 std::string loglevel = gSavedSettings.getString("VivoxDebugLevel"); 1641 std::string loglevel = gSavedSettings.getString("VivoxDebugLevel");
1304 1642
@@ -1383,14 +1721,15 @@ void LLVoiceClient::stateMachine()
1383 } 1721 }
1384 else 1722 else
1385 { 1723 {
1386 LL_INFOS("Voice") << exe_path << "not found." << LL_ENDL; 1724 LL_INFOS("Voice") << exe_path << " not found." << LL_ENDL;
1387 } 1725 }
1388 } 1726 }
1389 else 1727 else
1390 { 1728 {
1729 // SLIM SDK: port changed from 44124 to 44125.
1391 // We can connect to a client gateway running on another host. This is useful for testing. 1730 // We can connect to a client gateway running on another host. This is useful for testing.
1392 // To do this, launch the gateway on a nearby host like this: 1731 // To do this, launch the gateway on a nearby host like this:
1393 // vivox-gw.exe -p tcp -i 0.0.0.0:44124 1732 // vivox-gw.exe -p tcp -i 0.0.0.0:44125
1394 // and put that host's IP address here. 1733 // and put that host's IP address here.
1395 mDaemonHost = LLHost(gSavedSettings.getString("VoiceHost"), gSavedSettings.getU32("VoicePort")); 1734 mDaemonHost = LLHost(gSavedSettings.getString("VoiceHost"), gSavedSettings.getU32("VoicePort"));
1396 } 1735 }
@@ -1402,17 +1741,23 @@ void LLVoiceClient::stateMachine()
1402 1741
1403 // Dirty the states we'll need to sync with the daemon when it comes up. 1742 // Dirty the states we'll need to sync with the daemon when it comes up.
1404 mPTTDirty = true; 1743 mPTTDirty = true;
1744 mMicVolumeDirty = true;
1405 mSpeakerVolumeDirty = true; 1745 mSpeakerVolumeDirty = true;
1746 mSpeakerMuteDirty = true;
1406 // These only need to be set if they're not default (i.e. empty string). 1747 // These only need to be set if they're not default (i.e. empty string).
1407 mCaptureDeviceDirty = !mCaptureDevice.empty(); 1748 mCaptureDeviceDirty = !mCaptureDevice.empty();
1408 mRenderDeviceDirty = !mRenderDevice.empty(); 1749 mRenderDeviceDirty = !mRenderDevice.empty();
1750
1751 mMainSessionGroupHandle.clear();
1409 } 1752 }
1410 break; 1753 break;
1411 1754
1755 //MARK: stateDaemonLaunched
1412 case stateDaemonLaunched: 1756 case stateDaemonLaunched:
1413 LL_DEBUGS("Voice") << "Connecting to vivox daemon" << LL_ENDL;
1414 if(mUpdateTimer.hasExpired()) 1757 if(mUpdateTimer.hasExpired())
1415 { 1758 {
1759 LL_DEBUGS("Voice") << "Connecting to vivox daemon" << LL_ENDL;
1760
1416 mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS); 1761 mUpdateTimer.setTimerExpirySec(CONNECT_THROTTLE_SECONDS);
1417 1762
1418 if(!mSocket) 1763 if(!mSocket)
@@ -1433,6 +1778,7 @@ void LLVoiceClient::stateMachine()
1433 } 1778 }
1434 break; 1779 break;
1435 1780
1781 //MARK: stateConnecting
1436 case stateConnecting: 1782 case stateConnecting:
1437 // Can't do this until we have the pump available. 1783 // Can't do this until we have the pump available.
1438 if(mPump) 1784 if(mPump)
@@ -1450,48 +1796,34 @@ void LLVoiceClient::stateMachine()
1450 1796
1451 mPump->addChain(readChain, NEVER_CHAIN_EXPIRY_SECS); 1797 mPump->addChain(readChain, NEVER_CHAIN_EXPIRY_SECS);
1452 1798
1453 setState(stateIdle); 1799 setState(stateConnected);
1454 } 1800 }
1455 1801
1456 break; 1802 break;
1457 1803
1458 case stateIdle: 1804 //MARK: stateConnected
1805 case stateConnected:
1459 // Initial devices query 1806 // Initial devices query
1460 getCaptureDevicesSendMessage(); 1807 getCaptureDevicesSendMessage();
1461 getRenderDevicesSendMessage(); 1808 getRenderDevicesSendMessage();
1462 1809
1463 mLoginRetryCount = 0; 1810 mLoginRetryCount = 0;
1464 1811
1465 setState(stateConnectorStart); 1812 setState(stateIdle);
1466
1467 break; 1813 break;
1468 1814
1469 case stateConnectorStart: 1815 //MARK: stateIdle
1470 if(!mVoiceEnabled) 1816 case stateIdle:
1471 { 1817 // This is the idle state where we're connected to the daemon but haven't set up a connector yet.
1472 // We were never logged in. This will shut down the connector. 1818 if(mTuningMode)
1473 setState(stateLoggedOut);
1474 }
1475 else if(!mAccountServerURI.empty())
1476 {
1477 connectorCreate();
1478 }
1479 else if(mTuningMode)
1480 { 1819 {
1481 mTuningExitState = stateConnectorStart; 1820 mTuningExitState = stateIdle;
1482 setState(stateMicTuningStart); 1821 setState(stateMicTuningStart);
1483 } 1822 }
1484 break; 1823 else if(!mVoiceEnabled)
1485
1486 case stateConnectorStarting: // waiting for connector handle
1487 // connectorCreateResponse() will transition from here to stateConnectorStarted.
1488 break;
1489
1490 case stateConnectorStarted: // connector handle received
1491 if(!mVoiceEnabled)
1492 { 1824 {
1493 // We were never logged in. This will shut down the connector. 1825 // We never started up the connector. This will shut down the daemon.
1494 setState(stateLoggedOut); 1826 setState(stateConnectorStopped);
1495 } 1827 }
1496 else if(!mAccountName.empty()) 1828 else if(!mAccountName.empty())
1497 { 1829 {
@@ -1505,12 +1837,13 @@ void LLVoiceClient::stateMachine()
1505 { 1837 {
1506 requestVoiceAccountProvision(); 1838 requestVoiceAccountProvision();
1507 } 1839 }
1508 setState(stateNeedsLogin); 1840 setState(stateConnectorStart);
1509 } 1841 }
1510 } 1842 }
1511 } 1843 }
1512 break; 1844 break;
1513 1845
1846 //MARK: stateMicTuningStart
1514 case stateMicTuningStart: 1847 case stateMicTuningStart:
1515 if(mUpdateTimer.hasExpired()) 1848 if(mUpdateTimer.hasExpired())
1516 { 1849 {
@@ -1518,19 +1851,9 @@ void LLVoiceClient::stateMachine()
1518 { 1851 {
1519 // These can't be changed while in tuning mode. Set them before starting. 1852 // These can't be changed while in tuning mode. Set them before starting.
1520 std::ostringstream stream; 1853 std::ostringstream stream;
1521 1854
1522 if(mCaptureDeviceDirty) 1855 buildSetCaptureDevice(stream);
1523 { 1856 buildSetRenderDevice(stream);
1524 buildSetCaptureDevice(stream);
1525 }
1526
1527 if(mRenderDeviceDirty)
1528 {
1529 buildSetRenderDevice(stream);
1530 }
1531
1532 mCaptureDeviceDirty = false;
1533 mRenderDeviceDirty = false;
1534 1857
1535 if(!stream.str().empty()) 1858 if(!stream.str().empty())
1536 { 1859 {
@@ -1552,8 +1875,9 @@ void LLVoiceClient::stateMachine()
1552 1875
1553 break; 1876 break;
1554 1877
1878 //MARK: stateMicTuningRunning
1555 case stateMicTuningRunning: 1879 case stateMicTuningRunning:
1556 if(!mTuningMode || !mVoiceEnabled || mSessionTerminateRequested || mCaptureDeviceDirty || mRenderDeviceDirty) 1880 if(!mTuningMode || mCaptureDeviceDirty || mRenderDeviceDirty)
1557 { 1881 {
1558 // All of these conditions make us leave tuning mode. 1882 // All of these conditions make us leave tuning mode.
1559 setState(stateMicTuningStop); 1883 setState(stateMicTuningStop);
@@ -1593,6 +1917,7 @@ void LLVoiceClient::stateMachine()
1593 } 1917 }
1594 break; 1918 break;
1595 1919
1920 //MARK: stateMicTuningStop
1596 case stateMicTuningStop: 1921 case stateMicTuningStop:
1597 { 1922 {
1598 // transition out of mic tuning 1923 // transition out of mic tuning
@@ -1606,7 +1931,40 @@ void LLVoiceClient::stateMachine()
1606 1931
1607 } 1932 }
1608 break; 1933 break;
1609 1934
1935 //MARK: stateConnectorStart
1936 case stateConnectorStart:
1937 if(!mVoiceEnabled)
1938 {
1939 // We were never logged in. This will shut down the connector.
1940 setState(stateLoggedOut);
1941 }
1942 else if(!mVoiceAccountServerURI.empty())
1943 {
1944 connectorCreate();
1945 }
1946 break;
1947
1948 //MARK: stateConnectorStarting
1949 case stateConnectorStarting: // waiting for connector handle
1950 // connectorCreateResponse() will transition from here to stateConnectorStarted.
1951 break;
1952
1953 //MARK: stateConnectorStarted
1954 case stateConnectorStarted: // connector handle received
1955 if(!mVoiceEnabled)
1956 {
1957 // We were never logged in. This will shut down the connector.
1958 setState(stateLoggedOut);
1959 }
1960 else
1961 {
1962 // The connector is started. Send a login message.
1963 setState(stateNeedsLogin);
1964 }
1965 break;
1966
1967 //MARK: stateLoginRetry
1610 case stateLoginRetry: 1968 case stateLoginRetry:
1611 if(mLoginRetryCount == 0) 1969 if(mLoginRetryCount == 0)
1612 { 1970 {
@@ -1630,6 +1988,7 @@ void LLVoiceClient::stateMachine()
1630 } 1988 }
1631 break; 1989 break;
1632 1990
1991 //MARK: stateLoginRetryWait
1633 case stateLoginRetryWait: 1992 case stateLoginRetryWait:
1634 if(mUpdateTimer.hasExpired()) 1993 if(mUpdateTimer.hasExpired())
1635 { 1994 {
@@ -1637,6 +1996,7 @@ void LLVoiceClient::stateMachine()
1637 } 1996 }
1638 break; 1997 break;
1639 1998
1999 //MARK: stateNeedsLogin
1640 case stateNeedsLogin: 2000 case stateNeedsLogin:
1641 if(!mAccountPassword.empty()) 2001 if(!mAccountPassword.empty())
1642 { 2002 {
@@ -1645,16 +2005,22 @@ void LLVoiceClient::stateMachine()
1645 } 2005 }
1646 break; 2006 break;
1647 2007
2008 //MARK: stateLoggingIn
1648 case stateLoggingIn: // waiting for account handle 2009 case stateLoggingIn: // waiting for account handle
1649 // loginResponse() will transition from here to stateLoggedIn. 2010 // loginResponse() will transition from here to stateLoggedIn.
1650 break; 2011 break;
1651 2012
2013 //MARK: stateLoggedIn
1652 case stateLoggedIn: // account handle received 2014 case stateLoggedIn: // account handle received
1653 // Initial kick-off of channel lookup logic
1654 parcelChanged();
1655 2015
1656 notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_LOGGED_IN); 2016 notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_LOGGED_IN);
1657 2017
2018 // request the current set of block rules (we'll need them when updating the friends list)
2019 accountListBlockRulesSendMessage();
2020
2021 // request the current set of auto-accept rules
2022 accountListAutoAcceptRulesSendMessage();
2023
1658 // Set up the mute list observer if it hasn't been set up already. 2024 // Set up the mute list observer if it hasn't been set up already.
1659 if((!sMuteListListener_listening)) 2025 if((!sMuteListListener_listening))
1660 { 2026 {
@@ -1662,13 +2028,67 @@ void LLVoiceClient::stateMachine()
1662 sMuteListListener_listening = true; 2028 sMuteListListener_listening = true;
1663 } 2029 }
1664 2030
2031 // Set up the friends list observer if it hasn't been set up already.
2032 if(friendslist_listener == NULL)
2033 {
2034 friendslist_listener = new LLVoiceClientFriendsObserver;
2035 LLAvatarTracker::instance().addObserver(friendslist_listener);
2036 }
2037
2038 // Set the initial state of mic mute, local speaker volume, etc.
2039 {
2040 std::ostringstream stream;
2041
2042 buildLocalAudioUpdates(stream);
2043
2044 if(!stream.str().empty())
2045 {
2046 writeString(stream.str());
2047 }
2048 }
2049
2050#if USE_SESSION_GROUPS
2051 // create the main session group
2052 sessionGroupCreateSendMessage();
2053
2054 setState(stateCreatingSessionGroup);
2055#else
2056 // Not using session groups -- skip the stateCreatingSessionGroup state.
1665 setState(stateNoChannel); 2057 setState(stateNoChannel);
2058
2059 // Initial kick-off of channel lookup logic
2060 parcelChanged();
2061#endif
2062 break;
2063
2064 //MARK: stateCreatingSessionGroup
2065 case stateCreatingSessionGroup:
2066 if(mSessionTerminateRequested || !mVoiceEnabled)
2067 {
2068 // TODO: Question: is this the right way out of this state
2069 setState(stateSessionTerminated);
2070 }
2071 else if(!mMainSessionGroupHandle.empty())
2072 {
2073 setState(stateNoChannel);
2074
2075 // Start looped recording (needed for "panic button" anti-griefing tool)
2076 recordingLoopStart();
2077
2078 // Initial kick-off of channel lookup logic
2079 parcelChanged();
2080 }
1666 break; 2081 break;
1667 2082
2083 //MARK: stateNoChannel
1668 case stateNoChannel: 2084 case stateNoChannel:
2085 // Do this here as well as inside sendPositionalUpdate().
2086 // Otherwise, if you log in but don't join a proximal channel (such as when your login location has voice disabled), your friends list won't sync.
2087 sendFriendsListUpdates();
2088
1669 if(mSessionTerminateRequested || !mVoiceEnabled) 2089 if(mSessionTerminateRequested || !mVoiceEnabled)
1670 { 2090 {
1671 // MBW -- XXX -- Is this the right way out of this state? 2091 // TODO: Question: Is this the right way out of this state?
1672 setState(stateSessionTerminated); 2092 setState(stateSessionTerminated);
1673 } 2093 }
1674 else if(mTuningMode) 2094 else if(mTuningMode)
@@ -1676,30 +2096,49 @@ void LLVoiceClient::stateMachine()
1676 mTuningExitState = stateNoChannel; 2096 mTuningExitState = stateNoChannel;
1677 setState(stateMicTuningStart); 2097 setState(stateMicTuningStart);
1678 } 2098 }
1679 else if(!mNextSessionHandle.empty()) 2099 else if(sessionNeedsRelog(mNextAudioSession))
1680 { 2100 {
1681 setState(stateSessionConnect); 2101 requestRelog();
2102 setState(stateSessionTerminated);
2103 }
2104 else if(mNextAudioSession)
2105 {
2106 sessionState *oldSession = mAudioSession;
2107
2108 mAudioSession = mNextAudioSession;
2109 if(!mAudioSession->mReconnect)
2110 {
2111 mNextAudioSession = NULL;
2112 }
2113
2114 // The old session may now need to be deleted.
2115 reapSession(oldSession);
2116
2117 if(!mAudioSession->mHandle.empty())
2118 {
2119 // Connect to a session by session handle
2120
2121 sessionMediaConnectSendMessage(mAudioSession);
2122 }
2123 else
2124 {
2125 // Connect to a session by URI
2126 sessionCreateSendMessage(mAudioSession, true, false);
2127 }
2128
2129 notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_JOINING);
2130 setState(stateJoiningSession);
1682 } 2131 }
1683 else if(!mNextSessionURI.empty()) 2132 else if(!mSpatialSessionURI.empty())
1684 { 2133 {
1685 setState(stateSessionCreate); 2134 // If we're not headed elsewhere and have a spatial URI, return to spatial.
2135 switchChannel(mSpatialSessionURI, true, false, false, mSpatialSessionCredentials);
1686 } 2136 }
1687 break; 2137 break;
1688 2138
1689 case stateSessionCreate: 2139 //MARK: stateJoiningSession
1690 sessionCreateSendMessage();
1691 notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_JOINING);
1692 setState(stateJoiningSession);
1693 break;
1694
1695 case stateSessionConnect:
1696 sessionConnectSendMessage();
1697 notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_JOINING);
1698 setState(stateJoiningSession);
1699 break;
1700
1701 case stateJoiningSession: // waiting for session handle 2140 case stateJoiningSession: // waiting for session handle
1702 // sessionCreateResponse() will transition from here to stateSessionJoined. 2141 // joinedAudioSession() will transition from here to stateSessionJoined.
1703 if(!mVoiceEnabled) 2142 if(!mVoiceEnabled)
1704 { 2143 {
1705 // User bailed out during connect -- jump straight to teardown. 2144 // User bailed out during connect -- jump straight to teardown.
@@ -1707,30 +2146,27 @@ void LLVoiceClient::stateMachine()
1707 } 2146 }
1708 else if(mSessionTerminateRequested) 2147 else if(mSessionTerminateRequested)
1709 { 2148 {
1710 if(!mSessionHandle.empty()) 2149 if(mAudioSession && !mAudioSession->mHandle.empty())
1711 { 2150 {
1712 // Only allow direct exits from this state in p2p calls (for cancelling an invite). 2151 // Only allow direct exits from this state in p2p calls (for cancelling an invite).
1713 // Terminating a half-connected session on other types of calls seems to break something in the vivox gateway. 2152 // Terminating a half-connected session on other types of calls seems to break something in the vivox gateway.
1714 if(mSessionP2P) 2153 if(mAudioSession->mIsP2P)
1715 { 2154 {
1716 sessionTerminateSendMessage(); 2155 sessionMediaDisconnectSendMessage(mAudioSession);
1717 setState(stateSessionTerminated); 2156 setState(stateSessionTerminated);
1718 } 2157 }
1719 } 2158 }
1720 } 2159 }
1721 break; 2160 break;
1722 2161
2162 //MARK: stateSessionJoined
1723 case stateSessionJoined: // session handle received 2163 case stateSessionJoined: // session handle received
1724 // MBW -- XXX -- It appears that I need to wait for BOTH the Session.Create response and the SessionStateChangeEvent with state 4 2164 // It appears that I need to wait for BOTH the SessionGroup.AddSession response and the SessionStateChangeEvent with state 4
1725 // before continuing from this state. They can happen in either order, and if I don't wait for both, things can get stuck. 2165 // before continuing from this state. They can happen in either order, and if I don't wait for both, things can get stuck.
1726 // For now, the Session.Create response handler sets mSessionHandle and the SessionStateChangeEvent handler transitions to stateSessionJoined. 2166 // For now, the SessionGroup.AddSession response handler sets mSessionHandle and the SessionStateChangeEvent handler transitions to stateSessionJoined.
1727 // This is a cheap way to make sure both have happened before proceeding. 2167 // This is a cheap way to make sure both have happened before proceeding.
1728 if(!mSessionHandle.empty()) 2168 if(mAudioSession && mAudioSession->mVoiceEnabled)
1729 { 2169 {
1730 // Events that need to happen when a session is joined could go here.
1731 // Maybe send initial spatial data?
1732 notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_JOINED);
1733
1734 // Dirty state that may need to be sync'ed with the daemon. 2170 // Dirty state that may need to be sync'ed with the daemon.
1735 mPTTDirty = true; 2171 mPTTDirty = true;
1736 mSpeakerVolumeDirty = true; 2172 mSpeakerVolumeDirty = true;
@@ -1741,6 +2177,11 @@ void LLVoiceClient::stateMachine()
1741 // Start the throttle timer 2177 // Start the throttle timer
1742 mUpdateTimer.start(); 2178 mUpdateTimer.start();
1743 mUpdateTimer.setTimerExpirySec(UPDATE_THROTTLE_SECONDS); 2179 mUpdateTimer.setTimerExpirySec(UPDATE_THROTTLE_SECONDS);
2180
2181 // Events that need to happen when a session is joined could go here.
2182 // Maybe send initial spatial data?
2183 notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_JOINED);
2184
1744 } 2185 }
1745 else if(!mVoiceEnabled) 2186 else if(!mVoiceEnabled)
1746 { 2187 {
@@ -1751,21 +2192,20 @@ void LLVoiceClient::stateMachine()
1751 { 2192 {
1752 // Only allow direct exits from this state in p2p calls (for cancelling an invite). 2193 // Only allow direct exits from this state in p2p calls (for cancelling an invite).
1753 // Terminating a half-connected session on other types of calls seems to break something in the vivox gateway. 2194 // Terminating a half-connected session on other types of calls seems to break something in the vivox gateway.
1754 if(mSessionP2P) 2195 if(mAudioSession && mAudioSession->mIsP2P)
1755 { 2196 {
1756 sessionTerminateSendMessage(); 2197 sessionMediaDisconnectSendMessage(mAudioSession);
1757 setState(stateSessionTerminated); 2198 setState(stateSessionTerminated);
1758 } 2199 }
1759 } 2200 }
1760 break; 2201 break;
1761 2202
2203 //MARK: stateRunning
1762 case stateRunning: // steady state 2204 case stateRunning: // steady state
1763 // sessionTerminateSendMessage() will transition from here to stateLeavingSession
1764
1765 // Disabling voice or disconnect requested. 2205 // Disabling voice or disconnect requested.
1766 if(!mVoiceEnabled || mSessionTerminateRequested) 2206 if(!mVoiceEnabled || mSessionTerminateRequested)
1767 { 2207 {
1768 sessionTerminateSendMessage(); 2208 leaveAudioSession();
1769 } 2209 }
1770 else 2210 else
1771 { 2211 {
@@ -1798,7 +2238,7 @@ void LLVoiceClient::stateMachine()
1798 } 2238 }
1799 } 2239 }
1800 2240
1801 if(mNonSpatialChannel) 2241 if(!inSpatialChannel())
1802 { 2242 {
1803 // When in a non-spatial channel, never send positional updates. 2243 // When in a non-spatial channel, never send positional updates.
1804 mSpatialCoordsDirty = false; 2244 mSpatialCoordsDirty = false;
@@ -1811,7 +2251,7 @@ void LLVoiceClient::stateMachine()
1811 2251
1812 // Send an update if the ptt state has changed (which shouldn't be able to happen that often -- the user can only click so fast) 2252 // Send an update if the ptt state has changed (which shouldn't be able to happen that often -- the user can only click so fast)
1813 // or every 10hz, whichever is sooner. 2253 // or every 10hz, whichever is sooner.
1814 if(mVolumeDirty || mPTTDirty || mSpeakerVolumeDirty || mUpdateTimer.hasExpired()) 2254 if((mAudioSession && mAudioSession->mVolumeDirty) || mPTTDirty || mSpeakerVolumeDirty || mUpdateTimer.hasExpired())
1815 { 2255 {
1816 mUpdateTimer.setTimerExpirySec(UPDATE_THROTTLE_SECONDS); 2256 mUpdateTimer.setTimerExpirySec(UPDATE_THROTTLE_SECONDS);
1817 sendPositionalUpdate(); 2257 sendPositionalUpdate();
@@ -1819,25 +2259,38 @@ void LLVoiceClient::stateMachine()
1819 } 2259 }
1820 break; 2260 break;
1821 2261
2262 //MARK: stateLeavingSession
1822 case stateLeavingSession: // waiting for terminate session response 2263 case stateLeavingSession: // waiting for terminate session response
1823 // The handler for the Session.Terminate response will transition from here to stateSessionTerminated. 2264 // The handler for the Session.Terminate response will transition from here to stateSessionTerminated.
1824 break; 2265 break;
1825 2266
2267 //MARK: stateSessionTerminated
1826 case stateSessionTerminated: 2268 case stateSessionTerminated:
1827 // Always reset the terminate request flag when we get here.
1828 mSessionTerminateRequested = false;
1829 2269
2270 // Must do this first, since it uses mAudioSession.
1830 notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_LEFT_CHANNEL); 2271 notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_LEFT_CHANNEL);
2272
2273 if(mAudioSession)
2274 {
2275 sessionState *oldSession = mAudioSession;
2276
2277 mAudioSession = NULL;
2278 // We just notified status observers about this change. Don't do it again.
2279 mAudioSessionChanged = false;
1831 2280
1832 if(mVoiceEnabled) 2281 // The old session may now need to be deleted.
2282 reapSession(oldSession);
2283 }
2284 else
1833 { 2285 {
1834 // SPECIAL CASE: if going back to spatial but in a parcel with an empty URI, transfer the non-spatial flag now. 2286 LL_WARNS("Voice") << "stateSessionTerminated with NULL mAudioSession" << LL_ENDL;
1835 // This fixes the case where you come out of a group chat in a parcel with voice disabled, and get stuck unable to rejoin spatial chat thereafter. 2287 }
1836 if(mNextSessionSpatial && mNextSessionURI.empty()) 2288
1837 { 2289 // Always reset the terminate request flag when we get here.
1838 mNonSpatialChannel = !mNextSessionSpatial; 2290 mSessionTerminateRequested = false;
1839 } 2291
1840 2292 if(mVoiceEnabled && !mRelogRequested)
2293 {
1841 // Just leaving a channel, go back to stateNoChannel (the "logged in but have no channel" state). 2294 // Just leaving a channel, go back to stateNoChannel (the "logged in but have no channel" state).
1842 setState(stateNoChannel); 2295 setState(stateNoChannel);
1843 } 2296 }
@@ -1845,49 +2298,67 @@ void LLVoiceClient::stateMachine()
1845 { 2298 {
1846 // Shutting down voice, continue with disconnecting. 2299 // Shutting down voice, continue with disconnecting.
1847 logout(); 2300 logout();
2301
2302 // The state machine will take it from here
2303 mRelogRequested = false;
1848 } 2304 }
1849 2305
1850 break; 2306 break;
1851 2307
2308 //MARK: stateLoggingOut
1852 case stateLoggingOut: // waiting for logout response 2309 case stateLoggingOut: // waiting for logout response
1853 // The handler for the Account.Logout response will transition from here to stateLoggedOut. 2310 // The handler for the Account.Logout response will transition from here to stateLoggedOut.
1854 break; 2311 break;
2312 //MARK: stateLoggedOut
1855 case stateLoggedOut: // logout response received 2313 case stateLoggedOut: // logout response received
1856 // shut down the connector 2314 // shut down the connector
1857 connectorShutdown(); 2315 connectorShutdown();
1858 break; 2316 break;
1859 2317
2318 //MARK: stateConnectorStopping
1860 case stateConnectorStopping: // waiting for connector stop 2319 case stateConnectorStopping: // waiting for connector stop
1861 // The handler for the Connector.InitiateShutdown response will transition from here to stateConnectorStopped. 2320 // The handler for the Connector.InitiateShutdown response will transition from here to stateConnectorStopped.
1862 break; 2321 break;
1863 2322
2323 //MARK: stateConnectorStopped
1864 case stateConnectorStopped: // connector stop received 2324 case stateConnectorStopped: // connector stop received
1865 // Clean up and reset everything. 2325 setState(stateDisableCleanup);
1866 closeSocket();
1867 removeAllParticipants();
1868 setState(stateDisabled);
1869 break; 2326 break;
1870 2327
2328 //MARK: stateConnectorFailed
1871 case stateConnectorFailed: 2329 case stateConnectorFailed:
1872 setState(stateConnectorFailedWaiting); 2330 setState(stateConnectorFailedWaiting);
1873 break; 2331 break;
2332 //MARK: stateConnectorFailedWaiting
1874 case stateConnectorFailedWaiting: 2333 case stateConnectorFailedWaiting:
1875 break; 2334 break;
1876 2335
2336 //MARK: stateLoginFailed
1877 case stateLoginFailed: 2337 case stateLoginFailed:
1878 setState(stateLoginFailedWaiting); 2338 setState(stateLoginFailedWaiting);
1879 break; 2339 break;
2340 //MARK: stateLoginFailedWaiting
1880 case stateLoginFailedWaiting: 2341 case stateLoginFailedWaiting:
1881 // No way to recover from these. Yet. 2342 // No way to recover from these. Yet.
1882 break; 2343 break;
1883 2344
2345 //MARK: stateJoinSessionFailed
1884 case stateJoinSessionFailed: 2346 case stateJoinSessionFailed:
1885 // Transition to error state. Send out any notifications here. 2347 // Transition to error state. Send out any notifications here.
1886 LL_WARNS("Voice") << "stateJoinSessionFailed: (" << mVivoxErrorStatusCode << "): " << mVivoxErrorStatusString << LL_ENDL; 2348 if(mAudioSession)
2349 {
2350 LL_WARNS("Voice") << "stateJoinSessionFailed: (" << mAudioSession->mErrorStatusCode << "): " << mAudioSession->mErrorStatusString << LL_ENDL;
2351 }
2352 else
2353 {
2354 LL_WARNS("Voice") << "stateJoinSessionFailed with no current session" << LL_ENDL;
2355 }
2356
1887 notifyStatusObservers(LLVoiceClientStatusObserver::ERROR_UNKNOWN); 2357 notifyStatusObservers(LLVoiceClientStatusObserver::ERROR_UNKNOWN);
1888 setState(stateJoinSessionFailedWaiting); 2358 setState(stateJoinSessionFailedWaiting);
1889 break; 2359 break;
1890 2360
2361 //MARK: stateJoinSessionFailedWaiting
1891 case stateJoinSessionFailedWaiting: 2362 case stateJoinSessionFailedWaiting:
1892 // Joining a channel failed, either due to a failed channel name -> sip url lookup or an error from the join message. 2363 // Joining a channel failed, either due to a failed channel name -> sip url lookup or an error from the join message.
1893 // Region crossings may leave this state and try the join again. 2364 // Region crossings may leave this state and try the join again.
@@ -1897,22 +2368,24 @@ void LLVoiceClient::stateMachine()
1897 } 2368 }
1898 break; 2369 break;
1899 2370
2371 //MARK: stateJail
1900 case stateJail: 2372 case stateJail:
1901 // We have given up. Do nothing. 2373 // We have given up. Do nothing.
1902 break; 2374 break;
1903 2375
1904 case stateMicTuningNoLogin:
1905 // *TODO: Implement me.
1906 LL_WARNS("Voice") << "stateMicTuningNoLogin not handled" << LL_ENDL;
1907 break;
1908 } 2376 }
1909 2377
1910 if(mParticipantMapChanged) 2378 if(mAudioSession && mAudioSession->mParticipantsChanged)
1911 { 2379 {
1912 mParticipantMapChanged = false; 2380 mAudioSession->mParticipantsChanged = false;
1913 notifyObservers(); 2381 mAudioSessionChanged = true;
2382 }
2383
2384 if(mAudioSessionChanged)
2385 {
2386 mAudioSessionChanged = false;
2387 notifyParticipantObservers();
1914 } 2388 }
1915
1916} 2389}
1917 2390
1918void LLVoiceClient::closeSocket(void) 2391void LLVoiceClient::closeSocket(void)
@@ -1930,6 +2403,9 @@ void LLVoiceClient::loginSendMessage()
1930 << "<AccountName>" << mAccountName << "</AccountName>" 2403 << "<AccountName>" << mAccountName << "</AccountName>"
1931 << "<AccountPassword>" << mAccountPassword << "</AccountPassword>" 2404 << "<AccountPassword>" << mAccountPassword << "</AccountPassword>"
1932 << "<AudioSessionAnswerMode>VerifyAnswer</AudioSessionAnswerMode>" 2405 << "<AudioSessionAnswerMode>VerifyAnswer</AudioSessionAnswerMode>"
2406 << "<EnableBuddiesAndPresence>true</EnableBuddiesAndPresence>"
2407 << "<BuddyManagementMode>Application</BuddyManagementMode>"
2408 << "<ParticipantPropertyFrequency>5</ParticipantPropertyFrequency>"
1933 << "</Request>\n\n\n"; 2409 << "</Request>\n\n\n";
1934 2410
1935 writeString(stream.str()); 2411 writeString(stream.str());
@@ -1937,7 +2413,10 @@ void LLVoiceClient::loginSendMessage()
1937 2413
1938void LLVoiceClient::logout() 2414void LLVoiceClient::logout()
1939{ 2415{
1940 mAccountPassword = ""; 2416 // Ensure that we'll re-request provisioning before logging in again
2417 mAccountPassword.clear();
2418 mVoiceAccountServerURI.clear();
2419
1941 setState(stateLoggingOut); 2420 setState(stateLoggingOut);
1942 logoutSendMessage(); 2421 logoutSendMessage();
1943} 2422}
@@ -1959,78 +2438,164 @@ void LLVoiceClient::logoutSendMessage()
1959 } 2438 }
1960} 2439}
1961 2440
1962void LLVoiceClient::channelGetListSendMessage() 2441void LLVoiceClient::accountListBlockRulesSendMessage()
1963{ 2442{
1964 std::ostringstream stream; 2443 if(!mAccountHandle.empty())
1965 stream 2444 {
1966 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.ChannelGetList.1\">" 2445 std::ostringstream stream;
1967 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
1968 << "</Request>\n\n\n";
1969 2446
1970 writeString(stream.str()); 2447 LL_DEBUGS("Voice") << "requesting block rules" << LL_ENDL;
2448
2449 stream
2450 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.ListBlockRules.1\">"
2451 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
2452 << "</Request>"
2453 << "\n\n\n";
2454
2455 writeString(stream.str());
2456 }
1971} 2457}
1972 2458
1973void LLVoiceClient::sessionCreateSendMessage() 2459void LLVoiceClient::accountListAutoAcceptRulesSendMessage()
1974{ 2460{
1975 LL_DEBUGS("Voice") << "requesting join: " << mNextSessionURI << LL_ENDL; 2461 if(!mAccountHandle.empty())
2462 {
2463 std::ostringstream stream;
1976 2464
1977 mSessionURI = mNextSessionURI; 2465 LL_DEBUGS("Voice") << "requesting auto-accept rules" << LL_ENDL;
1978 mNonSpatialChannel = !mNextSessionSpatial; 2466
1979 mSessionResetOnClose = mNextSessionResetOnClose; 2467 stream
1980 mNextSessionResetOnClose = false; 2468 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.ListAutoAcceptRules.1\">"
1981 if(mNextSessionNoReconnect) 2469 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
2470 << "</Request>"
2471 << "\n\n\n";
2472
2473 writeString(stream.str());
2474 }
2475}
2476
2477void LLVoiceClient::sessionGroupCreateSendMessage()
2478{
2479 if(!mAccountHandle.empty())
2480 {
2481 std::ostringstream stream;
2482
2483 LL_DEBUGS("Voice") << "creating session group" << LL_ENDL;
2484
2485 stream
2486 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"SessionGroup.Create.1\">"
2487 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
2488 << "<Type>Normal</Type>"
2489 << "</Request>"
2490 << "\n\n\n";
2491
2492 writeString(stream.str());
2493 }
2494}
2495
2496void LLVoiceClient::sessionCreateSendMessage(sessionState *session, bool startAudio, bool startText)
2497{
2498 LL_DEBUGS("Voice") << "requesting create: " << session->mSIPURI << LL_ENDL;
2499
2500 session->mCreateInProgress = true;
2501 if(startAudio)
1982 { 2502 {
1983 // Clear the stashed URI so it can't reconnect 2503 session->mMediaConnectInProgress = true;
1984 mNextSessionURI.clear();
1985 } 2504 }
1986 // Only p2p sessions are created with "no reconnect".
1987 mSessionP2P = mNextSessionNoReconnect;
1988 2505
1989 std::ostringstream stream; 2506 std::ostringstream stream;
1990 stream 2507 stream
1991 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.Create.1\">" 2508 << "<Request requestId=\"" << session->mSIPURI << "\" action=\"Session.Create.1\">"
1992 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>" 2509 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
1993 << "<URI>" << mSessionURI << "</URI>"; 2510 << "<URI>" << session->mSIPURI << "</URI>";
1994 2511
1995 static const std::string allowed_chars = 2512 static const std::string allowed_chars =
1996 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" 2513 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
1997 "0123456789" 2514 "0123456789"
1998 "-._~"; 2515 "-._~";
1999 2516
2000 if(!mNextSessionHash.empty()) 2517 if(!session->mHash.empty())
2001 { 2518 {
2002 stream 2519 stream
2003 << "<Password>" << LLURI::escape(mNextSessionHash, allowed_chars) << "</Password>" 2520 << "<Password>" << LLURI::escape(session->mHash, allowed_chars) << "</Password>"
2004 << "<PasswordHashAlgorithm>SHA1UserName</PasswordHashAlgorithm>"; 2521 << "<PasswordHashAlgorithm>SHA1UserName</PasswordHashAlgorithm>";
2005 } 2522 }
2006 2523
2007 stream 2524 stream
2525 << "<ConnectAudio>" << (startAudio?"true":"false") << "</ConnectAudio>"
2526 << "<ConnectText>" << (startText?"true":"false") << "</ConnectText>"
2008 << "<Name>" << mChannelName << "</Name>" 2527 << "<Name>" << mChannelName << "</Name>"
2009 << "</Request>\n\n\n"; 2528 << "</Request>\n\n\n";
2010 writeString(stream.str()); 2529 writeString(stream.str());
2011} 2530}
2012 2531
2013void LLVoiceClient::sessionConnectSendMessage() 2532void LLVoiceClient::sessionGroupAddSessionSendMessage(sessionState *session, bool startAudio, bool startText)
2014{ 2533{
2015 LL_DEBUGS("Voice") << "connecting to session handle: " << mNextSessionHandle << LL_ENDL; 2534 LL_DEBUGS("Voice") << "requesting create: " << session->mSIPURI << LL_ENDL;
2535
2536 session->mCreateInProgress = true;
2537 if(startAudio)
2538 {
2539 session->mMediaConnectInProgress = true;
2540 }
2541
2542 std::string password;
2543 if(!session->mHash.empty())
2544 {
2545 static const std::string allowed_chars =
2546 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
2547 "0123456789"
2548 "-._~"
2549 ;
2550 password = LLURI::escape(session->mHash, allowed_chars);
2551 }
2552
2553 std::ostringstream stream;
2554 stream
2555 << "<Request requestId=\"" << session->mSIPURI << "\" action=\"SessionGroup.AddSession.1\">"
2556 << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>"
2557 << "<URI>" << session->mSIPURI << "</URI>"
2558 << "<Name>" << mChannelName << "</Name>"
2559 << "<ConnectAudio>" << (startAudio?"true":"false") << "</ConnectAudio>"
2560 << "<ConnectText>" << (startText?"true":"false") << "</ConnectText>"
2561 << "<Password>" << password << "</Password>"
2562 << "<PasswordHashAlgorithm>SHA1UserName</PasswordHashAlgorithm>"
2563 << "</Request>\n\n\n"
2564 ;
2016 2565
2017 mSessionHandle = mNextSessionHandle; 2566 writeString(stream.str());
2018 mSessionURI = mNextP2PSessionURI; 2567}
2019 mNextSessionHandle.clear(); // never want to re-use these. 2568
2020 mNextP2PSessionURI.clear(); 2569void LLVoiceClient::sessionMediaConnectSendMessage(sessionState *session)
2021 mNonSpatialChannel = !mNextSessionSpatial; 2570{
2022 mSessionResetOnClose = mNextSessionResetOnClose; 2571 LL_DEBUGS("Voice") << "connecting audio to session handle: " << session->mHandle << LL_ENDL;
2023 mNextSessionResetOnClose = false; 2572
2024 // Joining by session ID is only used to answer p2p invitations, so we know this is a p2p session. 2573 session->mMediaConnectInProgress = true;
2025 mSessionP2P = true;
2026 2574
2027 std::ostringstream stream; 2575 std::ostringstream stream;
2576
2577 stream
2578 << "<Request requestId=\"" << session->mHandle << "\" action=\"Session.MediaConnect.1\">"
2579 << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>"
2580 << "<SessionHandle>" << session->mHandle << "</SessionHandle>"
2581 << "<Media>Audio</Media>"
2582 << "</Request>\n\n\n";
2583
2584 writeString(stream.str());
2585}
2586
2587void LLVoiceClient::sessionTextConnectSendMessage(sessionState *session)
2588{
2589 LL_DEBUGS("Voice") << "connecting text to session handle: " << session->mHandle << LL_ENDL;
2028 2590
2591 std::ostringstream stream;
2592
2029 stream 2593 stream
2030 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.Connect.1\">" 2594 << "<Request requestId=\"" << session->mHandle << "\" action=\"Session.TextConnect.1\">"
2031 << "<SessionHandle>" << mSessionHandle << "</SessionHandle>" 2595 << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>"
2032 << "<AudioMedia>default</AudioMedia>" 2596 << "<SessionHandle>" << session->mHandle << "</SessionHandle>"
2033 << "</Request>\n\n\n"; 2597 << "</Request>\n\n\n";
2598
2034 writeString(stream.str()); 2599 writeString(stream.str());
2035} 2600}
2036 2601
@@ -2039,52 +2604,112 @@ void LLVoiceClient::sessionTerminate()
2039 mSessionTerminateRequested = true; 2604 mSessionTerminateRequested = true;
2040} 2605}
2041 2606
2042void LLVoiceClient::sessionTerminateSendMessage() 2607void LLVoiceClient::requestRelog()
2043{ 2608{
2044 LL_DEBUGS("Voice") << "leaving session: " << mSessionURI << LL_ENDL; 2609 mSessionTerminateRequested = true;
2610 mRelogRequested = true;
2611}
2045 2612
2046 switch(getState()) 2613
2614void LLVoiceClient::leaveAudioSession()
2615{
2616 if(mAudioSession)
2047 { 2617 {
2048 case stateNoChannel: 2618 LL_DEBUGS("Voice") << "leaving session: " << mAudioSession->mSIPURI << LL_ENDL;
2049 // In this case, we want to pretend the join failed so our state machine doesn't get stuck. 2619
2050 // Skip the join failed transition state so we don't send out error notifications. 2620 switch(getState())
2051 setState(stateJoinSessionFailedWaiting); 2621 {
2052 break; 2622 case stateNoChannel:
2053 case stateJoiningSession: 2623 // In this case, we want to pretend the join failed so our state machine doesn't get stuck.
2054 case stateSessionJoined: 2624 // Skip the join failed transition state so we don't send out error notifications.
2055 case stateRunning: 2625 setState(stateJoinSessionFailedWaiting);
2056 if(!mSessionHandle.empty()) 2626 break;
2057 { 2627 case stateJoiningSession:
2058 sessionTerminateByHandle(mSessionHandle); 2628 case stateSessionJoined:
2059 setState(stateLeavingSession); 2629 case stateRunning:
2060 } 2630 if(!mAudioSession->mHandle.empty())
2061 else 2631 {
2062 { 2632
2063 LL_WARNS("Voice") << "called with no session handle" << LL_ENDL; 2633#if RECORD_EVERYTHING
2634 // HACK: for testing only
2635 // Save looped recording
2636 std::string savepath("/tmp/vivoxrecording");
2637 {
2638 time_t now = time(NULL);
2639 const size_t BUF_SIZE = 64;
2640 char time_str[BUF_SIZE]; /* Flawfinder: ignore */
2641
2642 strftime(time_str, BUF_SIZE, "%Y-%m-%dT%H:%M:%SZ", gmtime(&now));
2643 savepath += time_str;
2644 }
2645 recordingLoopSave(savepath);
2646#endif
2647
2648 sessionMediaDisconnectSendMessage(mAudioSession);
2649 setState(stateLeavingSession);
2650 }
2651 else
2652 {
2653 LL_WARNS("Voice") << "called with no session handle" << LL_ENDL;
2654 setState(stateSessionTerminated);
2655 }
2656 break;
2657 case stateJoinSessionFailed:
2658 case stateJoinSessionFailedWaiting:
2064 setState(stateSessionTerminated); 2659 setState(stateSessionTerminated);
2065 } 2660 break;
2066 break; 2661
2067 case stateJoinSessionFailed: 2662 default:
2068 case stateJoinSessionFailedWaiting: 2663 LL_WARNS("Voice") << "called from unknown state" << LL_ENDL;
2069 setState(stateSessionTerminated); 2664 break;
2070 break; 2665 }
2071 2666 }
2072 default: 2667 else
2073 LL_WARNS("Voice") << "called from unknown state" << LL_ENDL; 2668 {
2074 break; 2669 LL_WARNS("Voice") << "called with no active session" << LL_ENDL;
2670 setState(stateSessionTerminated);
2075 } 2671 }
2076} 2672}
2077 2673
2078void LLVoiceClient::sessionTerminateByHandle(std::string &sessionHandle) 2674void LLVoiceClient::sessionTerminateSendMessage(sessionState *session)
2079{ 2675{
2080 LL_DEBUGS("Voice") << "Sending Session.Terminate with handle " << sessionHandle << LL_ENDL;
2081
2082 std::ostringstream stream; 2676 std::ostringstream stream;
2677
2678 LL_DEBUGS("Voice") << "Sending Session.Terminate with handle " << session->mHandle << LL_ENDL;
2083 stream 2679 stream
2084 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.Terminate.1\">" 2680 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.Terminate.1\">"
2085 << "<SessionHandle>" << sessionHandle << "</SessionHandle>" 2681 << "<SessionHandle>" << session->mHandle << "</SessionHandle>"
2086 << "</Request>" 2682 << "</Request>\n\n\n";
2087 << "\n\n\n"; 2683
2684 writeString(stream.str());
2685}
2686
2687void LLVoiceClient::sessionMediaDisconnectSendMessage(sessionState *session)
2688{
2689 std::ostringstream stream;
2690
2691 LL_DEBUGS("Voice") << "Sending Session.MediaDisconnect with handle " << session->mHandle << LL_ENDL;
2692 stream
2693 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.MediaDisconnect.1\">"
2694 << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>"
2695 << "<SessionHandle>" << session->mHandle << "</SessionHandle>"
2696 << "<Media>Audio</Media>"
2697 << "</Request>\n\n\n";
2698
2699 writeString(stream.str());
2700
2701}
2702
2703void LLVoiceClient::sessionTextDisconnectSendMessage(sessionState *session)
2704{
2705 std::ostringstream stream;
2706
2707 LL_DEBUGS("Voice") << "Sending Session.TextDisconnect with handle " << session->mHandle << LL_ENDL;
2708 stream
2709 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.TextDisconnect.1\">"
2710 << "<SessionGroupHandle>" << session->mGroupHandle << "</SessionGroupHandle>"
2711 << "<SessionHandle>" << session->mHandle << "</SessionHandle>"
2712 << "</Request>\n\n\n";
2088 2713
2089 writeString(stream.str()); 2714 writeString(stream.str());
2090} 2715}
@@ -2111,14 +2736,12 @@ void LLVoiceClient::getRenderDevicesSendMessage()
2111 2736
2112void LLVoiceClient::clearCaptureDevices() 2737void LLVoiceClient::clearCaptureDevices()
2113{ 2738{
2114 // MBW -- XXX -- do something here
2115 LL_DEBUGS("Voice") << "called" << LL_ENDL; 2739 LL_DEBUGS("Voice") << "called" << LL_ENDL;
2116 mCaptureDevices.clear(); 2740 mCaptureDevices.clear();
2117} 2741}
2118 2742
2119void LLVoiceClient::addCaptureDevice(const std::string& name) 2743void LLVoiceClient::addCaptureDevice(const std::string& name)
2120{ 2744{
2121 // MBW -- XXX -- do something here
2122 LL_DEBUGS("Voice") << name << LL_ENDL; 2745 LL_DEBUGS("Voice") << name << LL_ENDL;
2123 2746
2124 mCaptureDevices.push_back(name); 2747 mCaptureDevices.push_back(name);
@@ -2150,15 +2773,13 @@ void LLVoiceClient::setCaptureDevice(const std::string& name)
2150} 2773}
2151 2774
2152void LLVoiceClient::clearRenderDevices() 2775void LLVoiceClient::clearRenderDevices()
2153{ 2776{
2154 // MBW -- XXX -- do something here
2155 LL_DEBUGS("Voice") << "called" << LL_ENDL; 2777 LL_DEBUGS("Voice") << "called" << LL_ENDL;
2156 mRenderDevices.clear(); 2778 mRenderDevices.clear();
2157} 2779}
2158 2780
2159void LLVoiceClient::addRenderDevice(const std::string& name) 2781void LLVoiceClient::addRenderDevice(const std::string& name)
2160{ 2782{
2161 // MBW -- XXX -- do something here
2162 LL_DEBUGS("Voice") << name << LL_ENDL; 2783 LL_DEBUGS("Voice") << name << LL_ENDL;
2163 mRenderDevices.push_back(name); 2784 mRenderDevices.push_back(name);
2164} 2785}
@@ -2270,29 +2891,22 @@ void LLVoiceClient::tuningCaptureStopSendMessage()
2270 2891
2271void LLVoiceClient::tuningSetMicVolume(float volume) 2892void LLVoiceClient::tuningSetMicVolume(float volume)
2272{ 2893{
2273 int scaledVolume = ((int)(volume * 100.0f)) - 100; 2894 int scaled_volume = scale_mic_volume(volume);
2274 if(scaledVolume != mTuningMicVolume) 2895
2896 if(scaled_volume != mTuningMicVolume)
2275 { 2897 {
2276 mTuningMicVolume = scaledVolume; 2898 mTuningMicVolume = scaled_volume;
2277 mTuningMicVolumeDirty = true; 2899 mTuningMicVolumeDirty = true;
2278 } 2900 }
2279} 2901}
2280 2902
2281void LLVoiceClient::tuningSetSpeakerVolume(float volume) 2903void LLVoiceClient::tuningSetSpeakerVolume(float volume)
2282{ 2904{
2283 // incoming volume has the range [0.0 ... 1.0], with 0.5 as the default. 2905 int scaled_volume = scale_speaker_volume(volume);
2284 // Map it as follows: 0.0 -> -100, 0.5 -> 24, 1.0 -> 50
2285
2286 volume -= 0.5f; // offset volume to the range [-0.5 ... 0.5], with 0 at the default.
2287 int scaledVolume = 24; // offset scaledVolume by its default level
2288 if(volume < 0.0f)
2289 scaledVolume += ((int)(volume * 248.0f)); // (24 - (-100)) * 2
2290 else
2291 scaledVolume += ((int)(volume * 52.0f)); // (50 - 24) * 2
2292 2906
2293 if(scaledVolume != mTuningSpeakerVolume) 2907 if(scaled_volume != mTuningSpeakerVolume)
2294 { 2908 {
2295 mTuningSpeakerVolume = scaledVolume; 2909 mTuningSpeakerVolume = scaled_volume;
2296 mTuningSpeakerVolumeDirty = true; 2910 mTuningSpeakerVolumeDirty = true;
2297 } 2911 }
2298} 2912}
@@ -2331,67 +2945,193 @@ void LLVoiceClient::daemonDied()
2331 // The daemon died, so the connection is gone. Reset everything and start over. 2945 // The daemon died, so the connection is gone. Reset everything and start over.
2332 LL_WARNS("Voice") << "Connection to vivox daemon lost. Resetting state."<< LL_ENDL; 2946 LL_WARNS("Voice") << "Connection to vivox daemon lost. Resetting state."<< LL_ENDL;
2333 2947
2334 closeSocket();
2335 removeAllParticipants();
2336
2337 // Try to relaunch the daemon 2948 // Try to relaunch the daemon
2338 setState(stateDisabled); 2949 setState(stateDisableCleanup);
2339} 2950}
2340 2951
2341void LLVoiceClient::giveUp() 2952void LLVoiceClient::giveUp()
2342{ 2953{
2343 // All has failed. Clean up and stop trying. 2954 // All has failed. Clean up and stop trying.
2344 closeSocket(); 2955 closeSocket();
2345 removeAllParticipants(); 2956 deleteAllSessions();
2957 deleteAllBuddies();
2346 2958
2347 setState(stateJail); 2959 setState(stateJail);
2348} 2960}
2349 2961
2962static void oldSDKTransform (LLVector3 &left, LLVector3 &up, LLVector3 &at, LLVector3d &pos, LLVector3 &vel)
2963{
2964 F32 nat[3], nup[3], nl[3], nvel[3]; // the new at, up, left vectors and the new position and velocity
2965 F64 npos[3];
2966
2967 // The original XML command was sent like this:
2968 /*
2969 << "<Position>"
2970 << "<X>" << pos[VX] << "</X>"
2971 << "<Y>" << pos[VZ] << "</Y>"
2972 << "<Z>" << pos[VY] << "</Z>"
2973 << "</Position>"
2974 << "<Velocity>"
2975 << "<X>" << mAvatarVelocity[VX] << "</X>"
2976 << "<Y>" << mAvatarVelocity[VZ] << "</Y>"
2977 << "<Z>" << mAvatarVelocity[VY] << "</Z>"
2978 << "</Velocity>"
2979 << "<AtOrientation>"
2980 << "<X>" << l.mV[VX] << "</X>"
2981 << "<Y>" << u.mV[VX] << "</Y>"
2982 << "<Z>" << a.mV[VX] << "</Z>"
2983 << "</AtOrientation>"
2984 << "<UpOrientation>"
2985 << "<X>" << l.mV[VZ] << "</X>"
2986 << "<Y>" << u.mV[VY] << "</Y>"
2987 << "<Z>" << a.mV[VZ] << "</Z>"
2988 << "</UpOrientation>"
2989 << "<LeftOrientation>"
2990 << "<X>" << l.mV [VY] << "</X>"
2991 << "<Y>" << u.mV [VZ] << "</Y>"
2992 << "<Z>" << a.mV [VY] << "</Z>"
2993 << "</LeftOrientation>";
2994 */
2995
2996#if 1
2997 // This was the original transform done when building the XML command
2998 nat[0] = left.mV[VX];
2999 nat[1] = up.mV[VX];
3000 nat[2] = at.mV[VX];
3001
3002 nup[0] = left.mV[VZ];
3003 nup[1] = up.mV[VY];
3004 nup[2] = at.mV[VZ];
3005
3006 nl[0] = left.mV[VY];
3007 nl[1] = up.mV[VZ];
3008 nl[2] = at.mV[VY];
3009
3010 npos[0] = pos.mdV[VX];
3011 npos[1] = pos.mdV[VZ];
3012 npos[2] = pos.mdV[VY];
3013
3014 nvel[0] = vel.mV[VX];
3015 nvel[1] = vel.mV[VZ];
3016 nvel[2] = vel.mV[VY];
3017
3018 for(int i=0;i<3;++i) {
3019 at.mV[i] = nat[i];
3020 up.mV[i] = nup[i];
3021 left.mV[i] = nl[i];
3022 pos.mdV[i] = npos[i];
3023 }
3024
3025 // This was the original transform done in the SDK
3026 nat[0] = at.mV[2];
3027 nat[1] = 0; // y component of at vector is always 0, this was up[2]
3028 nat[2] = -1 * left.mV[2];
3029
3030 // We override whatever the application gives us
3031 nup[0] = 0; // x component of up vector is always 0
3032 nup[1] = 1; // y component of up vector is always 1
3033 nup[2] = 0; // z component of up vector is always 0
3034
3035 nl[0] = at.mV[0];
3036 nl[1] = 0; // y component of left vector is always zero, this was up[0]
3037 nl[2] = -1 * left.mV[0];
3038
3039 npos[2] = pos.mdV[2] * -1.0;
3040 npos[1] = pos.mdV[1];
3041 npos[0] = pos.mdV[0];
3042
3043 for(int i=0;i<3;++i) {
3044 at.mV[i] = nat[i];
3045 up.mV[i] = nup[i];
3046 left.mV[i] = nl[i];
3047 pos.mdV[i] = npos[i];
3048 }
3049#else
3050 // This is the compose of the two transforms (at least, that's what I'm trying for)
3051 nat[0] = at.mV[VX];
3052 nat[1] = 0; // y component of at vector is always 0, this was up[2]
3053 nat[2] = -1 * up.mV[VZ];
3054
3055 // We override whatever the application gives us
3056 nup[0] = 0; // x component of up vector is always 0
3057 nup[1] = 1; // y component of up vector is always 1
3058 nup[2] = 0; // z component of up vector is always 0
3059
3060 nl[0] = left.mV[VX];
3061 nl[1] = 0; // y component of left vector is always zero, this was up[0]
3062 nl[2] = -1 * left.mV[VY];
3063
3064 npos[0] = pos.mdV[VX];
3065 npos[1] = pos.mdV[VZ];
3066 npos[2] = pos.mdV[VY] * -1.0;
3067
3068 nvel[0] = vel.mV[VX];
3069 nvel[1] = vel.mV[VZ];
3070 nvel[2] = vel.mV[VY];
3071
3072 for(int i=0;i<3;++i) {
3073 at.mV[i] = nat[i];
3074 up.mV[i] = nup[i];
3075 left.mV[i] = nl[i];
3076 pos.mdV[i] = npos[i];
3077 }
3078
3079#endif
3080}
3081
2350void LLVoiceClient::sendPositionalUpdate(void) 3082void LLVoiceClient::sendPositionalUpdate(void)
2351{ 3083{
2352 std::ostringstream stream; 3084 std::ostringstream stream;
2353 3085
2354 if(mSpatialCoordsDirty) 3086 if(mSpatialCoordsDirty)
2355 { 3087 {
2356 LLVector3 l, u, a; 3088 LLVector3 l, u, a, vel;
3089 LLVector3d pos;
3090
3091 mSpatialCoordsDirty = false;
2357 3092
2358 // Always send both speaker and listener positions together. 3093 // Always send both speaker and listener positions together.
2359 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.Set3DPosition.1\">" 3094 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.Set3DPosition.1\">"
2360 << "<SessionHandle>" << mSessionHandle << "</SessionHandle>"; 3095 << "<SessionHandle>" << getAudioSessionHandle() << "</SessionHandle>";
2361 3096
2362 stream << "<SpeakerPosition>"; 3097 stream << "<SpeakerPosition>";
2363 3098
3099// LL_DEBUGS("Voice") << "Sending speaker position " << mAvatarPosition << LL_ENDL;
2364 l = mAvatarRot.getLeftRow(); 3100 l = mAvatarRot.getLeftRow();
2365 u = mAvatarRot.getUpRow(); 3101 u = mAvatarRot.getUpRow();
2366 a = mAvatarRot.getFwdRow(); 3102 a = mAvatarRot.getFwdRow();
2367 3103 pos = mAvatarPosition;
2368 LL_DEBUGS("Voice") << "Sending speaker position " << mAvatarPosition << LL_ENDL; 3104 vel = mAvatarVelocity;
2369 3105
3106 // SLIM SDK: the old SDK was doing a transform on the passed coordinates that the new one doesn't do anymore.
3107 // The old transform is replicated by this function.
3108 oldSDKTransform(l, u, a, pos, vel);
3109
2370 stream 3110 stream
2371 << "<Position>" 3111 << "<Position>"
2372 << "<X>" << mAvatarPosition[VX] << "</X>" 3112 << "<X>" << pos.mdV[VX] << "</X>"
2373 << "<Y>" << mAvatarPosition[VZ] << "</Y>" 3113 << "<Y>" << pos.mdV[VY] << "</Y>"
2374 << "<Z>" << mAvatarPosition[VY] << "</Z>" 3114 << "<Z>" << pos.mdV[VZ] << "</Z>"
2375 << "</Position>" 3115 << "</Position>"
2376 << "<Velocity>" 3116 << "<Velocity>"
2377 << "<X>" << mAvatarVelocity[VX] << "</X>" 3117 << "<X>" << vel.mV[VX] << "</X>"
2378 << "<Y>" << mAvatarVelocity[VZ] << "</Y>" 3118 << "<Y>" << vel.mV[VY] << "</Y>"
2379 << "<Z>" << mAvatarVelocity[VY] << "</Z>" 3119 << "<Z>" << vel.mV[VZ] << "</Z>"
2380 << "</Velocity>" 3120 << "</Velocity>"
2381 << "<AtOrientation>" 3121 << "<AtOrientation>"
2382 << "<X>" << l.mV[VX] << "</X>" 3122 << "<X>" << a.mV[VX] << "</X>"
2383 << "<Y>" << u.mV[VX] << "</Y>" 3123 << "<Y>" << a.mV[VY] << "</Y>"
2384 << "<Z>" << a.mV[VX] << "</Z>" 3124 << "<Z>" << a.mV[VZ] << "</Z>"
2385 << "</AtOrientation>" 3125 << "</AtOrientation>"
2386 << "<UpOrientation>" 3126 << "<UpOrientation>"
2387 << "<X>" << l.mV[VZ] << "</X>" 3127 << "<X>" << u.mV[VX] << "</X>"
2388 << "<Y>" << u.mV[VY] << "</Y>" 3128 << "<Y>" << u.mV[VY] << "</Y>"
2389 << "<Z>" << a.mV[VZ] << "</Z>" 3129 << "<Z>" << u.mV[VZ] << "</Z>"
2390 << "</UpOrientation>" 3130 << "</UpOrientation>"
2391 << "<LeftOrientation>" 3131 << "<LeftOrientation>"
2392 << "<X>" << l.mV [VY] << "</X>" 3132 << "<X>" << l.mV [VX] << "</X>"
2393 << "<Y>" << u.mV [VZ] << "</Y>" 3133 << "<Y>" << l.mV [VY] << "</Y>"
2394 << "<Z>" << a.mV [VY] << "</Z>" 3134 << "<Z>" << l.mV [VZ] << "</Z>"
2395 << "</LeftOrientation>"; 3135 << "</LeftOrientation>";
2396 3136
2397 stream << "</SpeakerPosition>"; 3137 stream << "</SpeakerPosition>";
@@ -2427,43 +3167,158 @@ void LLVoiceClient::sendPositionalUpdate(void)
2427 l = earRot.getLeftRow(); 3167 l = earRot.getLeftRow();
2428 u = earRot.getUpRow(); 3168 u = earRot.getUpRow();
2429 a = earRot.getFwdRow(); 3169 a = earRot.getFwdRow();
3170 pos = earPosition;
3171 vel = earVelocity;
2430 3172
2431 LL_DEBUGS("Voice") << "Sending listener position " << earPosition << LL_ENDL; 3173// LL_DEBUGS("Voice") << "Sending listener position " << earPosition << LL_ENDL;
2432 3174
3175 oldSDKTransform(l, u, a, pos, vel);
3176
2433 stream 3177 stream
2434 << "<Position>" 3178 << "<Position>"
2435 << "<X>" << earPosition[VX] << "</X>" 3179 << "<X>" << pos.mdV[VX] << "</X>"
2436 << "<Y>" << earPosition[VZ] << "</Y>" 3180 << "<Y>" << pos.mdV[VY] << "</Y>"
2437 << "<Z>" << earPosition[VY] << "</Z>" 3181 << "<Z>" << pos.mdV[VZ] << "</Z>"
2438 << "</Position>" 3182 << "</Position>"
2439 << "<Velocity>" 3183 << "<Velocity>"
2440 << "<X>" << earVelocity[VX] << "</X>" 3184 << "<X>" << vel.mV[VX] << "</X>"
2441 << "<Y>" << earVelocity[VZ] << "</Y>" 3185 << "<Y>" << vel.mV[VY] << "</Y>"
2442 << "<Z>" << earVelocity[VY] << "</Z>" 3186 << "<Z>" << vel.mV[VZ] << "</Z>"
2443 << "</Velocity>" 3187 << "</Velocity>"
2444 << "<AtOrientation>" 3188 << "<AtOrientation>"
2445 << "<X>" << l.mV[VX] << "</X>" 3189 << "<X>" << a.mV[VX] << "</X>"
2446 << "<Y>" << u.mV[VX] << "</Y>" 3190 << "<Y>" << a.mV[VY] << "</Y>"
2447 << "<Z>" << a.mV[VX] << "</Z>" 3191 << "<Z>" << a.mV[VZ] << "</Z>"
2448 << "</AtOrientation>" 3192 << "</AtOrientation>"
2449 << "<UpOrientation>" 3193 << "<UpOrientation>"
2450 << "<X>" << l.mV[VZ] << "</X>" 3194 << "<X>" << u.mV[VX] << "</X>"
2451 << "<Y>" << u.mV[VY] << "</Y>" 3195 << "<Y>" << u.mV[VY] << "</Y>"
2452 << "<Z>" << a.mV[VZ] << "</Z>" 3196 << "<Z>" << u.mV[VZ] << "</Z>"
2453 << "</UpOrientation>" 3197 << "</UpOrientation>"
2454 << "<LeftOrientation>" 3198 << "<LeftOrientation>"
2455 << "<X>" << l.mV [VY] << "</X>" 3199 << "<X>" << l.mV [VX] << "</X>"
2456 << "<Y>" << u.mV [VZ] << "</Y>" 3200 << "<Y>" << l.mV [VY] << "</Y>"
2457 << "<Z>" << a.mV [VY] << "</Z>" 3201 << "<Z>" << l.mV [VZ] << "</Z>"
2458 << "</LeftOrientation>"; 3202 << "</LeftOrientation>";
2459 3203
3204
2460 stream << "</ListenerPosition>"; 3205 stream << "</ListenerPosition>";
2461 3206
2462 stream << "</Request>\n\n\n"; 3207 stream << "</Request>\n\n\n";
2463 } 3208 }
3209
3210 if(mAudioSession && mAudioSession->mVolumeDirty)
3211 {
3212 participantMap::iterator iter = mAudioSession->mParticipantsByURI.begin();
3213
3214 mAudioSession->mVolumeDirty = false;
3215
3216 for(; iter != mAudioSession->mParticipantsByURI.end(); iter++)
3217 {
3218 participantState *p = iter->second;
3219
3220 if(p->mVolumeDirty)
3221 {
3222 // Can't set volume/mute for yourself
3223 if(!p->mIsSelf)
3224 {
3225 int volume = p->mUserVolume;
3226 bool mute = p->mOnMuteList;
3227
3228 // SLIM SDK: scale volume from 0-400 (with 100 as "normal") to 0-100 (with 56 as "normal")
3229 if(volume < 100)
3230 volume = (volume * 56) / 100;
3231 else
3232 volume = (((volume - 100) * (100 - 56)) / 300) + 56;
3233
3234 if(mute)
3235 {
3236 // SetParticipantMuteForMe doesn't work in p2p sessions.
3237 // If we want the user to be muted, set their volume to 0 as well.
3238 // This isn't perfect, but it will at least reduce their volume to a minimum.
3239 volume = 0;
3240 }
3241
3242 if(volume == 0)
3243 mute = true;
3244
3245 LL_DEBUGS("Voice") << "Setting volume/mute for avatar " << p->mAvatarID << " to " << volume << (mute?"/true":"/false") << LL_ENDL;
3246
3247 // SLIM SDK: Send both volume and mute commands.
3248
3249 // Send a "volume for me" command for the user.
3250 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.SetParticipantVolumeForMe.1\">"
3251 << "<SessionHandle>" << getAudioSessionHandle() << "</SessionHandle>"
3252 << "<ParticipantURI>" << p->mURI << "</ParticipantURI>"
3253 << "<Volume>" << volume << "</Volume>"
3254 << "</Request>\n\n\n";
3255
3256 // Send a "mute for me" command for the user
3257 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.SetParticipantMuteForMe.1\">"
3258 << "<SessionHandle>" << getAudioSessionHandle() << "</SessionHandle>"
3259 << "<ParticipantURI>" << p->mURI << "</ParticipantURI>"
3260 << "<Mute>" << (mute?"1":"0") << "</Mute>"
3261 << "</Request>\n\n\n";
3262 }
3263
3264 p->mVolumeDirty = false;
3265 }
3266 }
3267 }
3268
3269 buildLocalAudioUpdates(stream);
3270
3271 if(!stream.str().empty())
3272 {
3273 writeString(stream.str());
3274 }
3275
3276 // Friends list updates can be huge, especially on the first voice login of an account with lots of friends.
3277 // Batching them all together can choke SLVoice, so send them in separate writes.
3278 sendFriendsListUpdates();
3279}
3280
3281void LLVoiceClient::buildSetCaptureDevice(std::ostringstream &stream)
3282{
3283 if(mCaptureDeviceDirty)
3284 {
3285 LL_DEBUGS("Voice") << "Setting input device = \"" << mCaptureDevice << "\"" << LL_ENDL;
3286
3287 stream
3288 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetCaptureDevice.1\">"
3289 << "<CaptureDeviceSpecifier>" << mCaptureDevice << "</CaptureDeviceSpecifier>"
3290 << "</Request>"
3291 << "\n\n\n";
3292
3293 mCaptureDeviceDirty = false;
3294 }
3295}
3296
3297void LLVoiceClient::buildSetRenderDevice(std::ostringstream &stream)
3298{
3299 if(mRenderDeviceDirty)
3300 {
3301 LL_DEBUGS("Voice") << "Setting output device = \"" << mRenderDevice << "\"" << LL_ENDL;
3302
3303 stream
3304 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetRenderDevice.1\">"
3305 << "<RenderDeviceSpecifier>" << mRenderDevice << "</RenderDeviceSpecifier>"
3306 << "</Request>"
3307 << "\n\n\n";
3308 mRenderDeviceDirty = false;
3309 }
3310}
3311
3312void LLVoiceClient::buildLocalAudioUpdates(std::ostringstream &stream)
3313{
3314 buildSetCaptureDevice(stream);
3315
3316 buildSetRenderDevice(stream);
2464 3317
2465 if(mPTTDirty) 3318 if(mPTTDirty)
2466 { 3319 {
3320 mPTTDirty = false;
3321
2467 // Send a local mute command. 3322 // Send a local mute command.
2468 // NOTE that the state of "PTT" is the inverse of "local mute". 3323 // NOTE that the state of "PTT" is the inverse of "local mute".
2469 // (i.e. when PTT is true, we send a mute command with "false", and vice versa) 3324 // (i.e. when PTT is true, we send a mute command with "false", and vice versa)
@@ -2474,119 +3329,337 @@ void LLVoiceClient::sendPositionalUpdate(void)
2474 << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" 3329 << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>"
2475 << "<Value>" << (mPTT?"false":"true") << "</Value>" 3330 << "<Value>" << (mPTT?"false":"true") << "</Value>"
2476 << "</Request>\n\n\n"; 3331 << "</Request>\n\n\n";
2477
2478 }
2479
2480 if(mVolumeDirty)
2481 {
2482 participantMap::iterator iter = mParticipantMap.begin();
2483 3332
2484 for(; iter != mParticipantMap.end(); iter++)
2485 {
2486 participantState *p = iter->second;
2487
2488 if(p->mVolumeDirty)
2489 {
2490 int volume = p->mOnMuteList?0:p->mUserVolume;
2491
2492 LL_INFOS("Voice") << "Setting volume for avatar " << p->mAvatarID << " to " << volume << LL_ENDL;
2493
2494 // Send a mute/unumte command for the user (actually "volume for me").
2495 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.SetParticipantVolumeForMe.1\">"
2496 << "<SessionHandle>" << mSessionHandle << "</SessionHandle>"
2497 << "<ParticipantURI>" << p->mURI << "</ParticipantURI>"
2498 << "<Volume>" << volume << "</Volume>"
2499 << "</Request>\n\n\n";
2500
2501 p->mVolumeDirty = false;
2502 }
2503 }
2504 } 3333 }
2505 3334
2506 if(mSpeakerMuteDirty) 3335 if(mSpeakerMuteDirty)
2507 { 3336 {
2508 const char *muteval = ((mSpeakerVolume == -100)?"true":"false"); 3337 const char *muteval = ((mSpeakerVolume == 0)?"true":"false");
3338
3339 mSpeakerMuteDirty = false;
3340
2509 LL_INFOS("Voice") << "Setting speaker mute to " << muteval << LL_ENDL; 3341 LL_INFOS("Voice") << "Setting speaker mute to " << muteval << LL_ENDL;
2510 3342
2511 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.MuteLocalSpeaker.1\">" 3343 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.MuteLocalSpeaker.1\">"
2512 << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" 3344 << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>"
2513 << "<Value>" << muteval << "</Value>" 3345 << "<Value>" << muteval << "</Value>"
2514 << "</Request>\n\n\n"; 3346 << "</Request>\n\n\n";
3347
2515 } 3348 }
2516 3349
2517 if(mSpeakerVolumeDirty) 3350 if(mSpeakerVolumeDirty)
2518 { 3351 {
3352 mSpeakerVolumeDirty = false;
3353
2519 LL_INFOS("Voice") << "Setting speaker volume to " << mSpeakerVolume << LL_ENDL; 3354 LL_INFOS("Voice") << "Setting speaker volume to " << mSpeakerVolume << LL_ENDL;
2520 3355
2521 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.SetLocalSpeakerVolume.1\">" 3356 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.SetLocalSpeakerVolume.1\">"
2522 << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" 3357 << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>"
2523 << "<Value>" << mSpeakerVolume << "</Value>" 3358 << "<Value>" << mSpeakerVolume << "</Value>"
2524 << "</Request>\n\n\n"; 3359 << "</Request>\n\n\n";
3360
2525 } 3361 }
2526 3362
2527 if(mMicVolumeDirty) 3363 if(mMicVolumeDirty)
2528 { 3364 {
3365 mMicVolumeDirty = false;
3366
2529 LL_INFOS("Voice") << "Setting mic volume to " << mMicVolume << LL_ENDL; 3367 LL_INFOS("Voice") << "Setting mic volume to " << mMicVolume << LL_ENDL;
2530 3368
2531 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.SetLocalMicVolume.1\">" 3369 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Connector.SetLocalMicVolume.1\">"
2532 << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>" 3370 << "<ConnectorHandle>" << mConnectorHandle << "</ConnectorHandle>"
2533 << "<Value>" << mMicVolume << "</Value>" 3371 << "<Value>" << mMicVolume << "</Value>"
2534 << "</Request>\n\n\n"; 3372 << "</Request>\n\n\n";
2535 } 3373 }
2536 3374
2537 3375
2538 // MBW -- XXX -- Maybe check to make sure the capture/render devices are in the current list here? 3376}
2539 if(mCaptureDeviceDirty)
2540 {
2541 buildSetCaptureDevice(stream);
2542 }
2543 3377
2544 if(mRenderDeviceDirty) 3378void LLVoiceClient::checkFriend(const LLUUID& id)
3379{
3380 std::string name;
3381 buddyListEntry *buddy = findBuddy(id);
3382
3383 // Make sure we don't add a name before it's been looked up.
3384 if(gCacheName->getFullName(id, name))
2545 { 3385 {
2546 buildSetRenderDevice(stream); 3386
3387 const LLRelationship* relationInfo = LLAvatarTracker::instance().getBuddyInfo(id);
3388 bool canSeeMeOnline = false;
3389 if(relationInfo && relationInfo->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS))
3390 canSeeMeOnline = true;
3391
3392 // When we get here, mNeedsSend is true and mInSLFriends is false. Change them as necessary.
3393
3394 if(buddy)
3395 {
3396 // This buddy is already in both lists.
3397
3398 if(name != buddy->mDisplayName)
3399 {
3400 // The buddy is in the list with the wrong name. Update it with the correct name.
3401 LL_WARNS("Voice") << "Buddy " << id << " has wrong name (\"" << buddy->mDisplayName << "\" should be \"" << name << "\"), updating."<< LL_ENDL;
3402 buddy->mDisplayName = name;
3403 buddy->mNeedsNameUpdate = true; // This will cause the buddy to be resent.
3404 }
3405 }
3406 else
3407 {
3408 // This buddy was not in the vivox list, needs to be added.
3409 buddy = addBuddy(sipURIFromID(id), name);
3410 buddy->mUUID = id;
3411 }
3412
3413 // In all the above cases, the buddy is in the SL friends list (which is how we got here).
3414 buddy->mInSLFriends = true;
3415 buddy->mCanSeeMeOnline = canSeeMeOnline;
3416 buddy->mNameResolved = true;
3417
2547 } 3418 }
2548 3419 else
2549 mSpatialCoordsDirty = false;
2550 mPTTDirty = false;
2551 mVolumeDirty = false;
2552 mSpeakerVolumeDirty = false;
2553 mMicVolumeDirty = false;
2554 mSpeakerMuteDirty = false;
2555 mCaptureDeviceDirty = false;
2556 mRenderDeviceDirty = false;
2557
2558 if(!stream.str().empty())
2559 { 3420 {
2560 writeString(stream.str()); 3421 // This name hasn't been looked up yet. Don't do anything with this buddy list entry until it has.
3422 if(buddy)
3423 {
3424 buddy->mNameResolved = false;
3425 }
3426
3427 // Initiate a lookup.
3428 // The "lookup completed" callback will ensure that the friends list is rechecked after it completes.
3429 lookupName(id);
2561 } 3430 }
2562} 3431}
2563 3432
2564void LLVoiceClient::buildSetCaptureDevice(std::ostringstream &stream) 3433void LLVoiceClient::clearAllLists()
2565{ 3434{
2566 LL_DEBUGS("Voice") << "Setting input device = \"" << mCaptureDevice << "\"" << LL_ENDL; 3435 // FOR TESTING ONLY
2567 3436
2568 stream 3437 // This will send the necessary commands to delete ALL buddies, autoaccept rules, and block rules SLVoice tells us about.
2569 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetCaptureDevice.1\">" 3438 buddyListMap::iterator buddy_it;
2570 << "<CaptureDeviceSpecifier>" << mCaptureDevice << "</CaptureDeviceSpecifier>" 3439 for(buddy_it = mBuddyListMap.begin(); buddy_it != mBuddyListMap.end();)
2571 << "</Request>" 3440 {
2572 << "\n\n\n"; 3441 buddyListEntry *buddy = buddy_it->second;
3442 buddy_it++;
3443
3444 std::ostringstream stream;
3445
3446 if(buddy->mInVivoxBuddies)
3447 {
3448 // delete this entry from the vivox buddy list
3449 buddy->mInVivoxBuddies = false;
3450 LL_DEBUGS("Voice") << "delete " << buddy->mURI << " (" << buddy->mDisplayName << ")" << LL_ENDL;
3451 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.BuddyDelete.1\">"
3452 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
3453 << "<BuddyURI>" << buddy->mURI << "</BuddyURI>"
3454 << "</Request>\n\n\n";
3455 }
3456
3457 if(buddy->mHasBlockListEntry)
3458 {
3459 // Delete the associated block list entry (so the block list doesn't fill up with junk)
3460 buddy->mHasBlockListEntry = false;
3461 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.DeleteBlockRule.1\">"
3462 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
3463 << "<BlockMask>" << buddy->mURI << "</BlockMask>"
3464 << "</Request>\n\n\n";
3465 }
3466 if(buddy->mHasAutoAcceptListEntry)
3467 {
3468 // Delete the associated auto-accept list entry (so the auto-accept list doesn't fill up with junk)
3469 buddy->mHasAutoAcceptListEntry = false;
3470 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.DeleteAutoAcceptRule.1\">"
3471 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
3472 << "<AutoAcceptMask>" << buddy->mURI << "</AutoAcceptMask>"
3473 << "</Request>\n\n\n";
3474 }
3475
3476 writeString(stream.str());
3477
3478 }
2573} 3479}
2574 3480
2575void LLVoiceClient::buildSetRenderDevice(std::ostringstream &stream) 3481void LLVoiceClient::sendFriendsListUpdates()
2576{ 3482{
2577 LL_DEBUGS("Voice") << "Setting output device = \"" << mRenderDevice << "\"" << LL_ENDL; 3483 if(mBuddyListMapPopulated && mBlockRulesListReceived && mAutoAcceptRulesListReceived && mFriendsListDirty)
3484 {
3485 mFriendsListDirty = false;
3486
3487 if(0)
3488 {
3489 // FOR TESTING ONLY -- clear all buddy list, block list, and auto-accept list entries.
3490 clearAllLists();
3491 return;
3492 }
3493
3494 LL_INFOS("Voice") << "Checking vivox buddy list against friends list..." << LL_ENDL;
3495
3496 buddyListMap::iterator buddy_it;
3497 for(buddy_it = mBuddyListMap.begin(); buddy_it != mBuddyListMap.end(); buddy_it++)
3498 {
3499 // reset the temp flags in the local buddy list
3500 buddy_it->second->mInSLFriends = false;
3501 }
3502
3503 // correlate with the friends list
3504 {
3505 LLCollectAllBuddies collect;
3506 LLAvatarTracker::instance().applyFunctor(collect);
3507 LLCollectAllBuddies::buddy_map_t::const_iterator it = collect.mOnline.begin();
3508 LLCollectAllBuddies::buddy_map_t::const_iterator end = collect.mOnline.end();
3509
3510 for ( ; it != end; ++it)
3511 {
3512 checkFriend(it->second);
3513 }
3514 it = collect.mOffline.begin();
3515 end = collect.mOffline.end();
3516 for ( ; it != end; ++it)
3517 {
3518 checkFriend(it->second);
3519 }
3520 }
3521
3522 LL_INFOS("Voice") << "Sending friend list updates..." << LL_ENDL;
2578 3523
2579 stream 3524 for(buddy_it = mBuddyListMap.begin(); buddy_it != mBuddyListMap.end();)
2580 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Aux.SetRenderDevice.1\">" 3525 {
2581 << "<RenderDeviceSpecifier>" << mRenderDevice << "</RenderDeviceSpecifier>" 3526 buddyListEntry *buddy = buddy_it->second;
2582 << "</Request>" 3527 buddy_it++;
2583 << "\n\n\n"; 3528
3529 // Ignore entries that aren't resolved yet.
3530 if(buddy->mNameResolved)
3531 {
3532 std::ostringstream stream;
3533
3534 if(buddy->mInSLFriends && (!buddy->mInVivoxBuddies || buddy->mNeedsNameUpdate))
3535 {
3536 if(mNumberOfAliases > 0)
3537 {
3538 // Add (or update) this entry in the vivox buddy list
3539 buddy->mInVivoxBuddies = true;
3540 buddy->mNeedsNameUpdate = false;
3541 LL_DEBUGS("Voice") << "add/update " << buddy->mURI << " (" << buddy->mDisplayName << ")" << LL_ENDL;
3542 stream
3543 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.BuddySet.1\">"
3544 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
3545 << "<BuddyURI>" << buddy->mURI << "</BuddyURI>"
3546 << "<DisplayName>" << buddy->mDisplayName << "</DisplayName>"
3547 << "<BuddyData></BuddyData>" // Without this, SLVoice doesn't seem to parse the command.
3548 << "<GroupID>0</GroupID>"
3549 << "</Request>\n\n\n";
3550 }
3551 }
3552 else if(!buddy->mInSLFriends)
3553 {
3554 // This entry no longer exists in your SL friends list. Remove all traces of it from the Vivox buddy list.
3555 if(buddy->mInVivoxBuddies)
3556 {
3557 // delete this entry from the vivox buddy list
3558 buddy->mInVivoxBuddies = false;
3559 LL_DEBUGS("Voice") << "delete " << buddy->mURI << " (" << buddy->mDisplayName << ")" << LL_ENDL;
3560 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.BuddyDelete.1\">"
3561 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
3562 << "<BuddyURI>" << buddy->mURI << "</BuddyURI>"
3563 << "</Request>\n\n\n";
3564 }
3565
3566 if(buddy->mHasBlockListEntry)
3567 {
3568 // Delete the associated block list entry, if any
3569 buddy->mHasBlockListEntry = false;
3570 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.DeleteBlockRule.1\">"
3571 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
3572 << "<BlockMask>" << buddy->mURI << "</BlockMask>"
3573 << "</Request>\n\n\n";
3574 }
3575 if(buddy->mHasAutoAcceptListEntry)
3576 {
3577 // Delete the associated auto-accept list entry, if any
3578 buddy->mHasAutoAcceptListEntry = false;
3579 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.DeleteAutoAcceptRule.1\">"
3580 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
3581 << "<AutoAcceptMask>" << buddy->mURI << "</AutoAcceptMask>"
3582 << "</Request>\n\n\n";
3583 }
3584 }
3585
3586 if(buddy->mInSLFriends)
3587 {
3588
3589 if(buddy->mCanSeeMeOnline)
3590 {
3591 // Buddy should not be blocked.
3592
3593 // If this buddy doesn't already have either a block or autoaccept list entry, we'll update their status when we receive a SubscriptionEvent.
3594
3595 // If the buddy has a block list entry, delete it.
3596 if(buddy->mHasBlockListEntry)
3597 {
3598 buddy->mHasBlockListEntry = false;
3599 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.DeleteBlockRule.1\">"
3600 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
3601 << "<BlockMask>" << buddy->mURI << "</BlockMask>"
3602 << "</Request>\n\n\n";
3603
3604
3605 // If we just deleted a block list entry, add an auto-accept entry.
3606 if(!buddy->mHasAutoAcceptListEntry)
3607 {
3608 buddy->mHasAutoAcceptListEntry = true;
3609 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.CreateAutoAcceptRule.1\">"
3610 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
3611 << "<AutoAcceptMask>" << buddy->mURI << "</AutoAcceptMask>"
3612 << "<AutoAddAsBuddy>0</AutoAddAsBuddy>"
3613 << "</Request>\n\n\n";
3614 }
3615 }
3616 }
3617 else
3618 {
3619 // Buddy should be blocked.
3620
3621 // If this buddy doesn't already have either a block or autoaccept list entry, we'll update their status when we receive a SubscriptionEvent.
3622
3623 // If this buddy has an autoaccept entry, delete it
3624 if(buddy->mHasAutoAcceptListEntry)
3625 {
3626 buddy->mHasAutoAcceptListEntry = false;
3627 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.DeleteAutoAcceptRule.1\">"
3628 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
3629 << "<AutoAcceptMask>" << buddy->mURI << "</AutoAcceptMask>"
3630 << "</Request>\n\n\n";
3631
3632 // If we just deleted an auto-accept entry, add a block list entry.
3633 if(!buddy->mHasBlockListEntry)
3634 {
3635 buddy->mHasBlockListEntry = true;
3636 stream << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.CreateBlockRule.1\">"
3637 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
3638 << "<BlockMask>" << buddy->mURI << "</BlockMask>"
3639 << "<PresenceOnly>1</PresenceOnly>"
3640 << "</Request>\n\n\n";
3641 }
3642 }
3643 }
3644
3645 if(!buddy->mInSLFriends && !buddy->mInVivoxBuddies)
3646 {
3647 // Delete this entry from the local buddy list. This should NOT invalidate the iterator,
3648 // since it has already been incremented to the next entry.
3649 deleteBuddy(buddy->mURI);
3650 }
3651
3652 }
3653 writeString(stream.str());
3654 }
3655 }
3656 }
2584} 3657}
2585 3658
2586///////////////////////////// 3659/////////////////////////////
2587// Response/Event handlers 3660// Response/Event handlers
2588 3661
2589void LLVoiceClient::connectorCreateResponse(int statusCode, std::string &statusString, std::string &connectorHandle) 3662void LLVoiceClient::connectorCreateResponse(int statusCode, std::string &statusString, std::string &connectorHandle, std::string &versionID)
2590{ 3663{
2591 if(statusCode != 0) 3664 if(statusCode != 0)
2592 { 3665 {
@@ -2596,6 +3669,7 @@ void LLVoiceClient::connectorCreateResponse(int statusCode, std::string &statusS
2596 else 3669 else
2597 { 3670 {
2598 // Connector created, move forward. 3671 // Connector created, move forward.
3672 LL_INFOS("Voice") << "Connector.Create succeeded, Vivox SDK version is " << versionID << LL_ENDL;
2599 mConnectorHandle = connectorHandle; 3673 mConnectorHandle = connectorHandle;
2600 if(getState() == stateConnectorStarting) 3674 if(getState() == stateConnectorStarting)
2601 { 3675 {
@@ -2604,7 +3678,7 @@ void LLVoiceClient::connectorCreateResponse(int statusCode, std::string &statusS
2604 } 3678 }
2605} 3679}
2606 3680
2607void LLVoiceClient::loginResponse(int statusCode, std::string &statusString, std::string &accountHandle) 3681void LLVoiceClient::loginResponse(int statusCode, std::string &statusString, std::string &accountHandle, int numberOfAliases)
2608{ 3682{
2609 LL_DEBUGS("Voice") << "Account.Login response (" << statusCode << "): " << statusString << LL_ENDL; 3683 LL_DEBUGS("Voice") << "Account.Login response (" << statusCode << "): " << statusString << LL_ENDL;
2610 3684
@@ -2625,7 +3699,8 @@ void LLVoiceClient::loginResponse(int statusCode, std::string &statusString, std
2625 { 3699 {
2626 // Login succeeded, move forward. 3700 // Login succeeded, move forward.
2627 mAccountHandle = accountHandle; 3701 mAccountHandle = accountHandle;
2628 // MBW -- XXX -- This needs to wait until the LoginStateChangeEvent is received. 3702 mNumberOfAliases = numberOfAliases;
3703 // This needs to wait until the AccountLoginStateChangeEvent is received.
2629// if(getState() == stateLoggingIn) 3704// if(getState() == stateLoggingIn)
2630// { 3705// {
2631// setState(stateLoggedIn); 3706// setState(stateLoggedIn);
@@ -2633,106 +3708,91 @@ void LLVoiceClient::loginResponse(int statusCode, std::string &statusString, std
2633 } 3708 }
2634} 3709}
2635 3710
2636void LLVoiceClient::channelGetListResponse(int statusCode, std::string &statusString) 3711void LLVoiceClient::sessionCreateResponse(std::string &requestId, int statusCode, std::string &statusString, std::string &sessionHandle)
2637{ 3712{
3713 sessionState *session = findSessionBeingCreatedByURI(requestId);
3714
3715 if(session)
3716 {
3717 session->mCreateInProgress = false;
3718 }
3719
2638 if(statusCode != 0) 3720 if(statusCode != 0)
2639 { 3721 {
2640 LL_WARNS("Voice") << "Account.ChannelGetList response failure: " << statusString << LL_ENDL; 3722 LL_WARNS("Voice") << "Session.Create response failure (" << statusCode << "): " << statusString << LL_ENDL;
2641 switchChannel(); 3723 if(session)
3724 {
3725 session->mErrorStatusCode = statusCode;
3726 session->mErrorStatusString = statusString;
3727 if(session == mAudioSession)
3728 {
3729 setState(stateJoinSessionFailed);
3730 }
3731 else
3732 {
3733 reapSession(session);
3734 }
3735 }
2642 } 3736 }
2643 else 3737 else
2644 { 3738 {
2645 // Got the channel list, try to do a lookup. 3739 LL_INFOS("Voice") << "Session.Create response received (success), session handle is " << sessionHandle << LL_ENDL;
2646 std::string uri = findChannelURI(mChannelName); 3740 if(session)
2647 if(uri.empty())
2648 {
2649 // Lookup failed, can't join a channel for this area.
2650 LL_INFOS("Voice") << "failed to map channel name: " << mChannelName << LL_ENDL;
2651 }
2652 else
2653 { 3741 {
2654 // We have a sip URL for this area. 3742 setSessionHandle(session, sessionHandle);
2655 LL_INFOS("Voice") << "mapped channel " << mChannelName << " to URI "<< uri << LL_ENDL;
2656 } 3743 }
2657
2658 // switchChannel with an empty uri string will do the right thing (leave channel and not rejoin)
2659 switchChannel(uri);
2660 } 3744 }
2661} 3745}
2662 3746
2663void LLVoiceClient::sessionCreateResponse(int statusCode, std::string &statusString, std::string &sessionHandle) 3747void LLVoiceClient::sessionGroupAddSessionResponse(std::string &requestId, int statusCode, std::string &statusString, std::string &sessionHandle)
2664{ 3748{
3749 sessionState *session = findSessionBeingCreatedByURI(requestId);
3750
3751 if(session)
3752 {
3753 session->mCreateInProgress = false;
3754 }
3755
2665 if(statusCode != 0) 3756 if(statusCode != 0)
2666 { 3757 {
2667 LL_WARNS("Voice") << "Session.Create response failure (" << statusCode << "): " << statusString << LL_ENDL; 3758 LL_WARNS("Voice") << "SessionGroup.AddSession response failure (" << statusCode << "): " << statusString << LL_ENDL;
2668// if(statusCode == 1015) 3759 if(session)
2669// {
2670// if(getState() == stateJoiningSession)
2671// {
2672// // this happened during a real join. Going to sessionTerminated should cause a retry in appropriate cases.
2673// LL_WARNS("Voice") << "session handle \"" << sessionHandle << "\", mSessionStateEventHandle \"" << mSessionStateEventHandle << "\""<< LL_ENDL;
2674// if(!sessionHandle.empty())
2675// {
2676// // This session is bad. Terminate it.
2677// mSessionHandle = sessionHandle;
2678// sessionTerminateByHandle(sessionHandle);
2679// setState(stateLeavingSession);
2680// }
2681// else if(!mSessionStateEventHandle.empty())
2682// {
2683// mSessionHandle = mSessionStateEventHandle;
2684// sessionTerminateByHandle(mSessionStateEventHandle);
2685// setState(stateLeavingSession);
2686// }
2687// else
2688// {
2689// setState(stateSessionTerminated);
2690// }
2691// }
2692// else
2693// {
2694// // We didn't think we were in the middle of a join. Don't change state.
2695// LL_WARNS("Voice") << "Not in stateJoiningSession, ignoring" << LL_ENDL;
2696// }
2697// }
2698// else
2699 { 3760 {
2700 mVivoxErrorStatusCode = statusCode; 3761 session->mErrorStatusCode = statusCode;
2701 mVivoxErrorStatusString = statusString; 3762 session->mErrorStatusString = statusString;
2702 setState(stateJoinSessionFailed); 3763 if(session == mAudioSession)
3764 {
3765 setState(stateJoinSessionFailed);
3766 }
3767 else
3768 {
3769 reapSession(session);
3770 }
2703 } 3771 }
2704 } 3772 }
2705 else 3773 else
2706 { 3774 {
2707 LL_DEBUGS("Voice") << "Session.Create response received (success), session handle is " << sessionHandle << LL_ENDL; 3775 LL_DEBUGS("Voice") << "SessionGroup.AddSession response received (success), session handle is " << sessionHandle << LL_ENDL;
2708 if(getState() == stateJoiningSession) 3776 if(session)
2709 {
2710 // This is also grabbed in the SessionStateChangeEvent handler, but it might be useful to have it early...
2711 mSessionHandle = sessionHandle;
2712 }
2713 else
2714 { 3777 {
2715 // We should never get a session.create response in any state except stateJoiningSession. Things are out of sync. Kill this session. 3778 setSessionHandle(session, sessionHandle);
2716 sessionTerminateByHandle(sessionHandle);
2717 } 3779 }
2718 } 3780 }
2719} 3781}
2720 3782
2721void LLVoiceClient::sessionConnectResponse(int statusCode, std::string &statusString) 3783void LLVoiceClient::sessionConnectResponse(std::string &requestId, int statusCode, std::string &statusString)
2722{ 3784{
3785 sessionState *session = findSession(requestId);
2723 if(statusCode != 0) 3786 if(statusCode != 0)
2724 { 3787 {
2725 LL_WARNS("Voice") << "Session.Connect response failure (" << statusCode << "): " << statusString << LL_ENDL; 3788 LL_WARNS("Voice") << "Session.Connect response failure (" << statusCode << "): " << statusString << LL_ENDL;
2726// if(statusCode == 1015) 3789 if(session)
2727// {
2728// LL_WARNS("Voice") << "terminating existing session" << LL_ENDL;
2729// sessionTerminate();
2730// }
2731// else
2732 { 3790 {
2733 mVivoxErrorStatusCode = statusCode; 3791 session->mMediaConnectInProgress = false;
2734 mVivoxErrorStatusString = statusString; 3792 session->mErrorStatusCode = statusCode;
2735 setState(stateJoinSessionFailed); 3793 session->mErrorStatusString = statusString;
3794 if(session == mAudioSession)
3795 setState(stateJoinSessionFailed);
2736 } 3796 }
2737 } 3797 }
2738 else 3798 else
@@ -2741,27 +3801,12 @@ void LLVoiceClient::sessionConnectResponse(int statusCode, std::string &statusSt
2741 } 3801 }
2742} 3802}
2743 3803
2744void LLVoiceClient::sessionTerminateResponse(int statusCode, std::string &statusString)
2745{
2746 if(statusCode != 0)
2747 {
2748 LL_WARNS("Voice") << "Session.Terminate response failure: (" << statusCode << "): " << statusString << LL_ENDL;
2749 if(getState() == stateLeavingSession)
2750 {
2751 // This is probably "(404): Server reporting Failure. Not a member of this conference."
2752 // Do this so we don't get stuck.
2753 setState(stateSessionTerminated);
2754 }
2755 }
2756
2757}
2758
2759void LLVoiceClient::logoutResponse(int statusCode, std::string &statusString) 3804void LLVoiceClient::logoutResponse(int statusCode, std::string &statusString)
2760{ 3805{
2761 if(statusCode != 0) 3806 if(statusCode != 0)
2762 { 3807 {
2763 LL_WARNS("Voice") << "Account.Logout response failure: " << statusString << LL_ENDL; 3808 LL_WARNS("Voice") << "Account.Logout response failure: " << statusString << LL_ENDL;
2764 // MBW -- XXX -- Should this ever fail? do we care if it does? 3809 // Should this ever fail? do we care if it does?
2765 } 3810 }
2766 3811
2767 if(getState() == stateLoggingOut) 3812 if(getState() == stateLoggingOut)
@@ -2775,7 +3820,7 @@ void LLVoiceClient::connectorShutdownResponse(int statusCode, std::string &statu
2775 if(statusCode != 0) 3820 if(statusCode != 0)
2776 { 3821 {
2777 LL_WARNS("Voice") << "Connector.InitiateShutdown response failure: " << statusString << LL_ENDL; 3822 LL_WARNS("Voice") << "Connector.InitiateShutdown response failure: " << statusString << LL_ENDL;
2778 // MBW -- XXX -- Should this ever fail? do we care if it does? 3823 // Should this ever fail? do we care if it does?
2779 } 3824 }
2780 3825
2781 mConnected = false; 3826 mConnected = false;
@@ -2786,109 +3831,277 @@ void LLVoiceClient::connectorShutdownResponse(int statusCode, std::string &statu
2786 } 3831 }
2787} 3832}
2788 3833
2789void LLVoiceClient::sessionStateChangeEvent( 3834void LLVoiceClient::sessionAddedEvent(
2790 std::string &uriString, 3835 std::string &uriString,
2791 int statusCode, 3836 std::string &alias,
2792 std::string &statusString, 3837 std::string &sessionHandle,
2793 std::string &sessionHandle, 3838 std::string &sessionGroupHandle,
2794 int state,
2795 bool isChannel, 3839 bool isChannel,
2796 std::string &nameString) 3840 bool incoming,
3841 std::string &nameString,
3842 std::string &applicationString)
2797{ 3843{
2798 switch(state) 3844 sessionState *session = NULL;
2799 {
2800 case 4: // I see this when joining the session
2801 LL_INFOS("Voice") << "joined session " << uriString << ", name " << nameString << " handle " << mNextSessionHandle << LL_ENDL;
2802 3845
2803 // Session create succeeded, move forward. 3846 LL_INFOS("Voice") << "session " << uriString << ", alias " << alias << ", name " << nameString << " handle " << sessionHandle << LL_ENDL;
2804 mSessionStateEventHandle = sessionHandle; 3847
2805 mSessionStateEventURI = uriString; 3848 session = addSession(uriString, sessionHandle);
2806 if(sessionHandle == mSessionHandle) 3849 if(session)
3850 {
3851 session->mGroupHandle = sessionGroupHandle;
3852 session->mIsChannel = isChannel;
3853 session->mIncoming = incoming;
3854 session->mAlias = alias;
3855
3856 // Generate a caller UUID -- don't need to do this for channels
3857 if(!session->mIsChannel)
3858 {
3859 if(IDFromName(session->mSIPURI, session->mCallerID))
2807 { 3860 {
2808 // This is the session we're joining. 3861 // Normal URI(base64-encoded UUID)
2809 if(getState() == stateJoiningSession)
2810 {
2811 setState(stateSessionJoined);
2812 //RN: the uriString being returned by vivox here is actually your account uri, not the channel
2813 // you are attempting to join, so ignore it
2814 //LL_DEBUGS("Voice") << "received URI " << uriString << "(previously " << mSessionURI << ")" << LL_ENDL;
2815 //mSessionURI = uriString;
2816 }
2817 } 3862 }
2818 else if(sessionHandle == mNextSessionHandle) 3863 else if(!session->mAlias.empty() && IDFromName(session->mAlias, session->mCallerID))
2819 { 3864 {
2820// LL_DEBUGS("Voice") << "received URI " << uriString << ", name " << nameString << " for next session (handle " << mNextSessionHandle << ")" << LL_ENDL; 3865 // Wrong URI, but an alias is available. Stash the incoming URI as an alternate
3866 session->mAlternateSIPURI = session->mSIPURI;
3867
3868 // and generate a proper URI from the ID.
3869 setSessionURI(session, sipURIFromID(session->mCallerID));
2821 } 3870 }
2822 else 3871 else
2823 { 3872 {
2824 LL_WARNS("Voice") << "joining unknown session handle " << sessionHandle << ", URI " << uriString << ", name " << nameString << LL_ENDL; 3873 LL_INFOS("Voice") << "Could not generate caller id from uri, using hash of uri " << session->mSIPURI << LL_ENDL;
2825 // MBW -- XXX -- Should we send a Session.Terminate here? 3874 setUUIDFromStringHash(session->mCallerID, session->mSIPURI);
3875 session->mSynthesizedCallerID = true;
3876
3877 // Can't look up the name in this case -- we have to extract it from the URI.
3878 std::string namePortion = nameFromsipURI(session->mSIPURI);
3879 if(namePortion.empty())
3880 {
3881 // Didn't seem to be a SIP URI, just use the whole provided name.
3882 namePortion = nameString;
3883 }
3884
3885 // Some incoming names may be separated with an underscore instead of a space. Fix this.
3886 LLStringUtil::replaceChar(namePortion, '_', ' ');
3887
3888 // Act like we just finished resolving the name (this stores it in all the right places)
3889 avatarNameResolved(session->mCallerID, namePortion);
2826 } 3890 }
2827 3891
2828 break; 3892 LL_INFOS("Voice") << "caller ID: " << session->mCallerID << LL_ENDL;
2829 case 5: // I see this when leaving the session
2830 LL_INFOS("Voice") << "left session " << uriString << ", name " << nameString << " handle " << mNextSessionHandle << LL_ENDL;
2831 3893
2832 // Set the session handle to the empty string. If we get back to stateJoiningSession, we'll want to wait for the new session handle. 3894 if(!session->mSynthesizedCallerID)
2833 if(sessionHandle == mSessionHandle)
2834 { 3895 {
2835 // MBW -- XXX -- I think this is no longer necessary, now that we've got mNextSessionURI/mNextSessionHandle 3896 // If we got here, we don't have a proper name. Initiate a lookup.
2836 // mSessionURI.clear(); 3897 lookupName(session->mCallerID);
2837 // clear the session handle here just for sanity. 3898 }
2838 mSessionHandle.clear(); 3899 }
2839 if(mSessionResetOnClose) 3900 }
3901}
3902
3903void LLVoiceClient::sessionGroupAddedEvent(std::string &sessionGroupHandle)
3904{
3905 LL_DEBUGS("Voice") << "handle " << sessionGroupHandle << LL_ENDL;
3906
3907#if USE_SESSION_GROUPS
3908 if(mMainSessionGroupHandle.empty())
3909 {
3910 // This is the first (i.e. "main") session group. Save its handle.
3911 mMainSessionGroupHandle = sessionGroupHandle;
3912 }
3913 else
3914 {
3915 LL_DEBUGS("Voice") << "Already had a session group handle " << mMainSessionGroupHandle << LL_ENDL;
3916 }
3917#endif
3918}
3919
3920void LLVoiceClient::joinedAudioSession(sessionState *session)
3921{
3922 if(mAudioSession != session)
3923 {
3924 sessionState *oldSession = mAudioSession;
3925
3926 mAudioSession = session;
3927 mAudioSessionChanged = true;
3928
3929 // The old session may now need to be deleted.
3930 reapSession(oldSession);
3931 }
3932
3933 // This is the session we're joining.
3934 if(getState() == stateJoiningSession)
3935 {
3936 setState(stateSessionJoined);
3937
3938 // SLIM SDK: we don't always receive a participant state change for ourselves when joining a channel now.
3939 // Add the current user as a participant here.
3940 participantState *participant = session->addParticipant(sipURIFromName(mAccountName));
3941 if(participant)
3942 {
3943 participant->mIsSelf = true;
3944 lookupName(participant->mAvatarID);
3945
3946 LL_INFOS("Voice") << "added self as participant \"" << participant->mAccountName
3947 << "\" (" << participant->mAvatarID << ")"<< LL_ENDL;
3948 }
3949
3950 if(!session->mIsChannel)
3951 {
3952 // this is a p2p session. Make sure the other end is added as a participant.
3953 participantState *participant = session->addParticipant(session->mSIPURI);
3954 if(participant)
3955 {
3956 if(participant->mAvatarIDValid)
2840 { 3957 {
2841 mSessionResetOnClose = false; 3958 lookupName(participant->mAvatarID);
2842 mNonSpatialChannel = false; 3959 }
2843 mNextSessionSpatial = true; 3960 else if(!session->mName.empty())
2844 parcelChanged(); 3961 {
3962 participant->mDisplayName = session->mName;
3963 avatarNameResolved(participant->mAvatarID, session->mName);
2845 } 3964 }
2846
2847 removeAllParticipants();
2848 3965
2849 switch(getState()) 3966 // TODO: Question: Do we need to set up mAvatarID/mAvatarIDValid here?
3967 LL_INFOS("Voice") << "added caller as participant \"" << participant->mAccountName
3968 << "\" (" << participant->mAvatarID << ")"<< LL_ENDL;
3969 }
3970 }
3971 }
3972}
3973
3974void LLVoiceClient::sessionRemovedEvent(
3975 std::string &sessionHandle,
3976 std::string &sessionGroupHandle)
3977{
3978 LL_INFOS("Voice") << "handle " << sessionHandle << LL_ENDL;
3979
3980 sessionState *session = findSession(sessionHandle);
3981 if(session)
3982 {
3983 leftAudioSession(session);
3984
3985 // This message invalidates the session's handle. Set it to empty.
3986 setSessionHandle(session);
3987
3988 // Reset the media state (we now have no info)
3989 session->mMediaStreamState = streamStateUnknown;
3990 session->mTextStreamState = streamStateUnknown;
3991
3992 // Conditionally delete the session
3993 reapSession(session);
3994 }
3995 else
3996 {
3997 LL_WARNS("Voice") << "unknown session " << sessionHandle << " removed" << LL_ENDL;
3998 }
3999}
4000
4001void LLVoiceClient::reapSession(sessionState *session)
4002{
4003 if(session)
4004 {
4005 if(!session->mHandle.empty())
4006 {
4007 LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (non-null session handle)" << LL_ENDL;
4008 }
4009 else if(session->mCreateInProgress)
4010 {
4011 LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (create in progress)" << LL_ENDL;
4012 }
4013 else if(session->mMediaConnectInProgress)
4014 {
4015 LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (connect in progress)" << LL_ENDL;
4016 }
4017 else if(session == mAudioSession)
4018 {
4019 LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (it's the current session)" << LL_ENDL;
4020 }
4021 else if(session == mNextAudioSession)
4022 {
4023 LL_DEBUGS("Voice") << "NOT deleting session " << session->mSIPURI << " (it's the next session)" << LL_ENDL;
4024 }
4025 else
4026 {
4027 // TODO: Question: Should we check for queued text messages here?
4028 // We don't have a reason to keep tracking this session, so just delete it.
4029 LL_DEBUGS("Voice") << "deleting session " << session->mSIPURI << LL_ENDL;
4030 deleteSession(session);
4031 session = NULL;
4032 }
4033 }
4034 else
4035 {
4036// LL_DEBUGS("Voice") << "session is NULL" << LL_ENDL;
4037 }
4038}
4039
4040// Returns true if the session seems to indicate we've moved to a region on a different voice server
4041bool LLVoiceClient::sessionNeedsRelog(sessionState *session)
4042{
4043 bool result = false;
4044
4045 if(session != NULL)
4046 {
4047 // Only make this check for spatial channels (so it won't happen for group or p2p calls)
4048 if(session->mIsSpatial)
4049 {
4050 std::string::size_type atsign;
4051
4052 atsign = session->mSIPURI.find("@");
4053
4054 if(atsign != std::string::npos)
4055 {
4056 std::string urihost = session->mSIPURI.substr(atsign + 1);
4057 if(stricmp(urihost.c_str(), mVoiceSIPURIHostName.c_str()))
2850 { 4058 {
2851 case stateJoiningSession: 4059 // The hostname in this URI is different from what we expect. This probably means we need to relog.
2852 case stateSessionJoined:
2853 case stateRunning:
2854 case stateLeavingSession:
2855 case stateJoinSessionFailed:
2856 case stateJoinSessionFailedWaiting:
2857 // normal transition
2858 LL_INFOS("Voice") << "left session " << sessionHandle << "in state " << state2string(getState()) << LL_ENDL;
2859 setState(stateSessionTerminated);
2860 break;
2861 4060
2862 case stateSessionTerminated: 4061 // We could make a ProvisionVoiceAccountRequest and compare the result with the current values of
2863 // this will happen sometimes -- there are cases where we send the terminate and then go straight to this state. 4062 // mVoiceSIPURIHostName and mVoiceAccountServerURI to be really sure, but this is a pretty good indicator.
2864 LL_WARNS("Voice") << "left session " << sessionHandle << "in state " << state2string(getState()) << LL_ENDL;
2865 break;
2866 4063
2867 default: 4064 result = true;
2868 LL_WARNS("Voice") << "unexpected SessionStateChangeEvent (left session) in state " << state2string(getState()) << LL_ENDL;
2869 setState(stateSessionTerminated);
2870 break;
2871 } 4065 }
2872
2873 // store status values for later notification of observers
2874 mVivoxErrorStatusCode = statusCode;
2875 mVivoxErrorStatusString = statusString;
2876 }
2877 else
2878 {
2879 LL_INFOS("Voice") << "leaving unknown session handle " << sessionHandle << ", URI " << uriString << ", name " << nameString << LL_ENDL;
2880 } 4066 }
4067 }
4068 }
4069
4070 return result;
4071}
2881 4072
2882 mSessionStateEventHandle.clear(); 4073void LLVoiceClient::leftAudioSession(
2883 mSessionStateEventURI.clear(); 4074 sessionState *session)
2884 break; 4075{
2885 default: 4076 if(mAudioSession == session)
2886 LL_WARNS("Voice") << "unknown state: " << state << LL_ENDL; 4077 {
2887 break; 4078 switch(getState())
4079 {
4080 case stateJoiningSession:
4081 case stateSessionJoined:
4082 case stateRunning:
4083 case stateLeavingSession:
4084 case stateJoinSessionFailed:
4085 case stateJoinSessionFailedWaiting:
4086 // normal transition
4087 LL_DEBUGS("Voice") << "left session " << session->mHandle << " in state " << state2string(getState()) << LL_ENDL;
4088 setState(stateSessionTerminated);
4089 break;
4090
4091 case stateSessionTerminated:
4092 // this will happen sometimes -- there are cases where we send the terminate and then go straight to this state.
4093 LL_WARNS("Voice") << "left session " << session->mHandle << " in state " << state2string(getState()) << LL_ENDL;
4094 break;
4095
4096 default:
4097 LL_WARNS("Voice") << "unexpected SessionStateChangeEvent (left session) in state " << state2string(getState()) << LL_ENDL;
4098 setState(stateSessionTerminated);
4099 break;
4100 }
2888 } 4101 }
2889} 4102}
2890 4103
2891void LLVoiceClient::loginStateChangeEvent( 4104void LLVoiceClient::accountLoginStateChangeEvent(
2892 std::string &accountHandle, 4105 std::string &accountHandle,
2893 int statusCode, 4106 int statusCode,
2894 std::string &statusString, 4107 std::string &statusString,
@@ -2921,110 +4134,571 @@ void LLVoiceClient::loginStateChangeEvent(
2921 } 4134 }
2922} 4135}
2923 4136
2924void LLVoiceClient::sessionNewEvent( 4137void LLVoiceClient::mediaStreamUpdatedEvent(
2925 std::string &accountHandle, 4138 std::string &sessionHandle,
2926 std::string &eventSessionHandle, 4139 std::string &sessionGroupHandle,
2927 int state, 4140 int statusCode,
2928 std::string &nameString, 4141 std::string &statusString,
2929 std::string &uriString) 4142 int state,
4143 bool incoming)
2930{ 4144{
2931 LL_DEBUGS("Voice") << "state is " << state << LL_ENDL; 4145 sessionState *session = findSession(sessionHandle);
2932 4146
2933 switch(state) 4147 LL_DEBUGS("Voice") << "session " << sessionHandle << ", status code " << statusCode << ", string \"" << statusString << "\"" << LL_ENDL;
4148
4149 if(session)
2934 { 4150 {
2935 case 0: 4151 // We know about this session
2936 { 4152
2937 LL_DEBUGS("Voice") << "session handle = " << eventSessionHandle << ", name = " << nameString << ", uri = " << uriString << LL_ENDL; 4153 // Save the state for later use
4154 session->mMediaStreamState = state;
4155
4156 switch(statusCode)
4157 {
4158 case 0:
4159 case 200:
4160 // generic success
4161 // Don't change the saved error code (it may have been set elsewhere)
4162 break;
4163 default:
4164 // save the status code for later
4165 session->mErrorStatusCode = statusCode;
4166 break;
4167 }
4168
4169 switch(state)
4170 {
4171 case streamStateIdle:
4172 // Standard "left audio session"
4173 session->mVoiceEnabled = false;
4174 session->mMediaConnectInProgress = false;
4175 leftAudioSession(session);
4176 break;
2938 4177
2939 LLUUID caller_id; 4178 case streamStateConnected:
2940 if(IDFromName(nameString, caller_id)) 4179 session->mVoiceEnabled = true;
4180 session->mMediaConnectInProgress = false;
4181 joinedAudioSession(session);
4182 break;
4183
4184 case streamStateRinging:
4185 if(incoming)
2941 { 4186 {
2942 gIMMgr->inviteToSession( 4187 // Send the voice chat invite to the GUI layer
2943 LLIMMgr::computeSessionID( 4188 // TODO: Question: Should we correlate with the mute list here?
2944 IM_SESSION_P2P_INVITE, 4189 session->mIMSessionID = LLIMMgr::computeSessionID(IM_SESSION_P2P_INVITE, session->mCallerID);
2945 caller_id), 4190 session->mVoiceInvitePending = true;
2946 LLStringUtil::null, 4191 if(session->mName.empty())
2947 caller_id, 4192 {
2948 LLStringUtil::null, 4193 lookupName(session->mCallerID);
2949 IM_SESSION_P2P_INVITE, 4194 }
2950 LLIMMgr::INVITATION_TYPE_VOICE, 4195 else
2951 eventSessionHandle); 4196 {
4197 // Act like we just finished resolving the name
4198 avatarNameResolved(session->mCallerID, session->mName);
4199 }
4200 }
4201 break;
4202
4203 default:
4204 LL_WARNS("Voice") << "unknown state " << state << LL_ENDL;
4205 break;
4206
4207 }
4208
4209 }
4210 else
4211 {
4212 LL_WARNS("Voice") << "session " << sessionHandle << "not found"<< LL_ENDL;
4213 }
4214}
4215
4216void LLVoiceClient::textStreamUpdatedEvent(
4217 std::string &sessionHandle,
4218 std::string &sessionGroupHandle,
4219 bool enabled,
4220 int state,
4221 bool incoming)
4222{
4223 sessionState *session = findSession(sessionHandle);
4224
4225 if(session)
4226 {
4227 // Save the state for later use
4228 session->mTextStreamState = state;
4229
4230 // We know about this session
4231 switch(state)
4232 {
4233 case 0: // We see this when the text stream closes
4234 LL_DEBUGS("Voice") << "stream closed" << LL_ENDL;
4235 break;
4236
4237 case 1: // We see this on an incoming call from the Connector
4238 // Try to send any text messages queued for this session.
4239 sendQueuedTextMessages(session);
4240
4241 // Send the text chat invite to the GUI layer
4242 // TODO: Question: Should we correlate with the mute list here?
4243 session->mTextInvitePending = true;
4244 if(session->mName.empty())
4245 {
4246 lookupName(session->mCallerID);
2952 } 4247 }
2953 else 4248 else
2954 { 4249 {
2955 LL_WARNS("Voice") << "Could not generate caller id from uri " << uriString << LL_ENDL; 4250 // Act like we just finished resolving the name
4251 avatarNameResolved(session->mCallerID, session->mName);
2956 } 4252 }
2957 } 4253 break;
2958 break; 4254
2959 4255 default:
2960 default: 4256 LL_WARNS("Voice") << "unknown state " << state << LL_ENDL;
2961 LL_WARNS("Voice") << "unknown state: " << state << LL_ENDL; 4257 break;
2962 break; 4258
4259 }
2963 } 4260 }
2964} 4261}
2965 4262
2966void LLVoiceClient::participantStateChangeEvent( 4263void LLVoiceClient::participantAddedEvent(
4264 std::string &sessionHandle,
4265 std::string &sessionGroupHandle,
2967 std::string &uriString, 4266 std::string &uriString,
2968 int statusCode, 4267 std::string &alias,
2969 std::string &statusString,
2970 int state,
2971 std::string &nameString, 4268 std::string &nameString,
2972 std::string &displayNameString, 4269 std::string &displayNameString,
2973 int participantType) 4270 int participantType)
2974{ 4271{
2975 participantState *participant = NULL; 4272 sessionState *session = findSession(sessionHandle);
2976 LL_DEBUGS("Voice") << "state is " << state << LL_ENDL; 4273 if(session)
2977
2978 switch(state)
2979 { 4274 {
2980 case 7: // I see this when a participant joins 4275 participantState *participant = session->addParticipant(uriString);
2981 participant = addParticipant(uriString); 4276 if(participant)
2982 if(participant) 4277 {
4278 participant->mAccountName = nameString;
4279
4280 LL_DEBUGS("Voice") << "added participant \"" << participant->mAccountName
4281 << "\" (" << participant->mAvatarID << ")"<< LL_ENDL;
4282
4283 if(participant->mAvatarIDValid)
2983 { 4284 {
2984 participant->mName = nameString; 4285 // Initiate a lookup
2985 LL_DEBUGS("Voice") << "added participant \"" << participant->mName 4286 lookupName(participant->mAvatarID);
2986 << "\" (" << participant->mAvatarID << ")"<< LL_ENDL;
2987 } 4287 }
2988 break; 4288 else
2989 case 9: // I see this when a participant leaves
2990 participant = findParticipant(uriString);
2991 if(participant)
2992 { 4289 {
2993 removeParticipant(participant); 4290 // If we don't have a valid avatar UUID, we need to fill in the display name to make the active speakers floater work.
4291 std::string namePortion = nameFromsipURI(uriString);
4292 if(namePortion.empty())
4293 {
4294 // Problem with the SIP URI, fall back to the display name
4295 namePortion = displayNameString;
4296 }
4297 if(namePortion.empty())
4298 {
4299 // Problems with both of the above, fall back to the account name
4300 namePortion = nameString;
4301 }
4302
4303 // Set the display name (which is a hint to the active speakers window not to do its own lookup)
4304 participant->mDisplayName = namePortion;
4305 avatarNameResolved(participant->mAvatarID, namePortion);
2994 } 4306 }
2995 break; 4307 }
2996 default:
2997 LL_DEBUGS("Voice") << "unknown state: " << state << LL_ENDL;
2998 break;
2999 } 4308 }
3000} 4309}
3001 4310
3002void LLVoiceClient::participantPropertiesEvent( 4311void LLVoiceClient::participantRemovedEvent(
4312 std::string &sessionHandle,
4313 std::string &sessionGroupHandle,
3003 std::string &uriString, 4314 std::string &uriString,
3004 int statusCode, 4315 std::string &alias,
3005 std::string &statusString, 4316 std::string &nameString)
3006 bool isLocallyMuted, 4317{
4318 sessionState *session = findSession(sessionHandle);
4319 if(session)
4320 {
4321 participantState *participant = session->findParticipant(uriString);
4322 if(participant)
4323 {
4324 session->removeParticipant(participant);
4325 }
4326 else
4327 {
4328 LL_DEBUGS("Voice") << "unknown participant " << uriString << LL_ENDL;
4329 }
4330 }
4331 else
4332 {
4333 LL_DEBUGS("Voice") << "unknown session " << sessionHandle << LL_ENDL;
4334 }
4335}
4336
4337
4338void LLVoiceClient::participantUpdatedEvent(
4339 std::string &sessionHandle,
4340 std::string &sessionGroupHandle,
4341 std::string &uriString,
4342 std::string &alias,
3007 bool isModeratorMuted, 4343 bool isModeratorMuted,
3008 bool isSpeaking, 4344 bool isSpeaking,
3009 int volume, 4345 int volume,
3010 F32 energy) 4346 F32 energy)
3011{ 4347{
3012 participantState *participant = findParticipant(uriString); 4348 sessionState *session = findSession(sessionHandle);
3013 if(participant) 4349 if(session)
4350 {
4351 participantState *participant = session->findParticipant(uriString);
4352
4353 if(participant)
4354 {
4355 participant->mIsSpeaking = isSpeaking;
4356 participant->mIsModeratorMuted = isModeratorMuted;
4357
4358 // SLIM SDK: convert range: ensure that energy is set to zero if is_speaking is false
4359 if (isSpeaking)
4360 {
4361 participant->mSpeakingTimeout.reset();
4362 participant->mPower = energy;
4363 }
4364 else
4365 {
4366 participant->mPower = 0.0f;
4367 }
4368 participant->mVolume = volume;
4369 }
4370 else
4371 {
4372 LL_WARNS("Voice") << "unknown participant: " << uriString << LL_ENDL;
4373 }
4374 }
4375 else
4376 {
4377 LL_INFOS("Voice") << "unknown session " << sessionHandle << LL_ENDL;
4378 }
4379}
4380
4381void LLVoiceClient::buddyPresenceEvent(
4382 std::string &uriString,
4383 std::string &alias,
4384 std::string &statusString,
4385 std::string &applicationString)
4386{
4387 buddyListEntry *buddy = findBuddy(uriString);
4388
4389 if(buddy)
4390 {
4391 LL_DEBUGS("Voice") << "Presence event for " << buddy->mDisplayName << " status \"" << statusString << "\", application \"" << applicationString << "\""<< LL_ENDL;
4392 LL_DEBUGS("Voice") << "before: mOnlineSL = " << (buddy->mOnlineSL?"true":"false") << ", mOnlineSLim = " << (buddy->mOnlineSLim?"true":"false") << LL_ENDL;
4393
4394 if(applicationString.empty())
4395 {
4396 // This presence event is from a client that doesn't set up the Application string. Do things the old-skool way.
4397 // NOTE: this will be needed to support people who aren't on the 3010-class SDK yet.
4398
4399 if ( stricmp("Unknown", statusString.c_str())== 0)
4400 {
4401 // User went offline with a non-SLim-enabled viewer.
4402 buddy->mOnlineSL = false;
4403 }
4404 else if ( stricmp("Online", statusString.c_str())== 0)
4405 {
4406 // User came online with a non-SLim-enabled viewer.
4407 buddy->mOnlineSL = true;
4408 }
4409 else
4410 {
4411 // If the user is online through SLim, their status will be "Online-slc", "Away", or something else.
4412 // NOTE: we should never see this unless someone is running an OLD version of SLim -- the versions that should be in use now all set the application string.
4413 buddy->mOnlineSLim = true;
4414 }
4415 }
4416 else if(applicationString.find("SecondLifeViewer") != std::string::npos)
4417 {
4418 // This presence event is from a viewer that sets the application string
4419 if ( stricmp("Unknown", statusString.c_str())== 0)
4420 {
4421 // Viewer says they're offline
4422 buddy->mOnlineSL = false;
4423 }
4424 else
4425 {
4426 // Viewer says they're online
4427 buddy->mOnlineSL = true;
4428 }
4429 }
4430 else
4431 {
4432 // This presence event is from something which is NOT the SL viewer (assume it's SLim).
4433 if ( stricmp("Unknown", statusString.c_str())== 0)
4434 {
4435 // SLim says they're offline
4436 buddy->mOnlineSLim = false;
4437 }
4438 else
4439 {
4440 // SLim says they're online
4441 buddy->mOnlineSLim = true;
4442 }
4443 }
4444
4445 LL_DEBUGS("Voice") << "after: mOnlineSL = " << (buddy->mOnlineSL?"true":"false") << ", mOnlineSLim = " << (buddy->mOnlineSLim?"true":"false") << LL_ENDL;
4446
4447 // HACK -- increment the internal change serial number in the LLRelationship (without changing the actual status), so the UI notices the change.
4448 LLAvatarTracker::instance().setBuddyOnline(buddy->mUUID,LLAvatarTracker::instance().isBuddyOnline(buddy->mUUID));
4449
4450 notifyFriendObservers();
4451 }
4452 else
4453 {
4454 LL_DEBUGS("Voice") << "Presence for unknown buddy " << uriString << LL_ENDL;
4455 }
4456}
4457
4458void LLVoiceClient::messageEvent(
4459 std::string &sessionHandle,
4460 std::string &uriString,
4461 std::string &alias,
4462 std::string &messageHeader,
4463 std::string &messageBody,
4464 std::string &applicationString)
4465{
4466 LL_DEBUGS("Voice") << "Message event, session " << sessionHandle << " from " << uriString << LL_ENDL;
4467// LL_DEBUGS("Voice") << " header " << messageHeader << ", body: \n" << messageBody << LL_ENDL;
4468
4469 if(messageHeader.find("text/html") != std::string::npos)
4470 {
4471 std::string rawMessage;
4472
4473 {
4474 const std::string startMarker = "<body";
4475 const std::string startMarker2 = ">";
4476 const std::string endMarker = "</body>";
4477 const std::string startSpan = "<span";
4478 const std::string endSpan = "</span>";
4479 std::string::size_type start;
4480 std::string::size_type end;
4481
4482 // Default to displaying the raw string, so the message gets through.
4483 rawMessage = messageBody;
4484
4485 // Find the actual message text within the XML fragment
4486 start = messageBody.find(startMarker);
4487 start = messageBody.find(startMarker2, start);
4488 end = messageBody.find(endMarker);
4489
4490 if(start != std::string::npos)
4491 {
4492 start += startMarker2.size();
4493
4494 if(end != std::string::npos)
4495 end -= start;
4496
4497 rawMessage.assign(messageBody, start, end);
4498 }
4499 else
4500 {
4501 // Didn't find a <body>, try looking for a <span> instead.
4502 start = messageBody.find(startSpan);
4503 start = messageBody.find(startMarker2, start);
4504 end = messageBody.find(endSpan);
4505
4506 if(start != std::string::npos)
4507 {
4508 start += startMarker2.size();
4509
4510 if(end != std::string::npos)
4511 end -= start;
4512
4513 rawMessage.assign(messageBody, start, end);
4514 }
4515 }
4516 }
4517
4518// LL_DEBUGS("Voice") << " raw message = \n" << rawMessage << LL_ENDL;
4519
4520 // strip formatting tags
4521 {
4522 std::string::size_type start;
4523 std::string::size_type end;
4524
4525 while((start = rawMessage.find('<')) != std::string::npos)
4526 {
4527 if((end = rawMessage.find('>', start + 1)) != std::string::npos)
4528 {
4529 // Strip out the tag
4530 rawMessage.erase(start, (end + 1) - start);
4531 }
4532 else
4533 {
4534 // Avoid an infinite loop
4535 break;
4536 }
4537 }
4538 }
4539
4540 // Decode ampersand-escaped chars
4541 {
4542 std::string::size_type mark = 0;
4543
4544 // The text may contain text encoded with &lt;, &gt;, and &amp;
4545 mark = 0;
4546 while((mark = rawMessage.find("&lt;", mark)) != std::string::npos)
4547 {
4548 rawMessage.replace(mark, 4, "<");
4549 mark += 1;
4550 }
4551
4552 mark = 0;
4553 while((mark = rawMessage.find("&gt;", mark)) != std::string::npos)
4554 {
4555 rawMessage.replace(mark, 4, ">");
4556 mark += 1;
4557 }
4558
4559 mark = 0;
4560 while((mark = rawMessage.find("&amp;", mark)) != std::string::npos)
4561 {
4562 rawMessage.replace(mark, 5, "&");
4563 mark += 1;
4564 }
4565 }
4566
4567 // strip leading/trailing whitespace (since we always seem to get a couple newlines)
4568 LLStringUtil::trim(rawMessage);
4569
4570// LL_DEBUGS("Voice") << " stripped message = \n" << rawMessage << LL_ENDL;
4571
4572 sessionState *session = findSession(sessionHandle);
4573 if(session)
4574 {
4575 bool is_busy = gAgent.getBusy();
4576 bool is_muted = LLMuteList::getInstance()->isMuted(session->mCallerID, session->mName, LLMute::flagTextChat);
4577 bool is_linden = LLMuteList::getInstance()->isLinden(session->mName);
4578 bool quiet_chat = false;
4579 LLChat chat;
4580
4581 chat.mMuted = is_muted && !is_linden;
4582
4583 if(!chat.mMuted)
4584 {
4585 chat.mFromID = session->mCallerID;
4586 chat.mFromName = session->mName;
4587 chat.mSourceType = CHAT_SOURCE_AGENT;
4588
4589 if(is_busy && !is_linden)
4590 {
4591 quiet_chat = true;
4592 // TODO: Question: Return busy mode response here? Or maybe when session is started instead?
4593 }
4594
4595 std::string fullMessage = std::string(": ") + rawMessage;
4596
4597 LL_DEBUGS("Voice") << "adding message, name " << session->mName << " session " << session->mIMSessionID << ", target " << session->mCallerID << LL_ENDL;
4598 gIMMgr->addMessage(session->mIMSessionID,
4599 session->mCallerID,
4600 session->mName.c_str(),
4601 fullMessage.c_str(),
4602 LLStringUtil::null, // default arg
4603 IM_NOTHING_SPECIAL, // default arg
4604 0, // default arg
4605 LLUUID::null, // default arg
4606 LLVector3::zero, // default arg
4607 true); // prepend name and make it a link to the user's profile
4608
4609 chat.mText = std::string("IM: ") + session->mName + std::string(": ") + rawMessage;
4610 // If the chat should come in quietly (i.e. we're in busy mode), pretend it's from a local agent.
4611 LLFloaterChat::addChat( chat, TRUE, quiet_chat );
4612 }
4613 }
4614 }
4615}
4616
4617void LLVoiceClient::sessionNotificationEvent(std::string &sessionHandle, std::string &uriString, std::string &notificationType)
4618{
4619 sessionState *session = findSession(sessionHandle);
4620
4621 if(session)
3014 { 4622 {
3015 participant->mPTT = !isLocallyMuted; 4623 participantState *participant = session->findParticipant(uriString);
3016 participant->mIsSpeaking = isSpeaking; 4624 if(participant)
3017 participant->mIsModeratorMuted = isModeratorMuted; 4625 {
3018 if (isSpeaking) 4626 if (!stricmp(notificationType.c_str(), "Typing"))
4627 {
4628 // Other end started typing
4629 // TODO: The proper way to add a typing notification seems to be LLIMMgr::processIMTypingStart().
4630 // It requires an LLIMInfo for the message, which we don't have here.
4631 }
4632 else if (!stricmp(notificationType.c_str(), "NotTyping"))
4633 {
4634 // Other end stopped typing
4635 // TODO: The proper way to remove a typing notification seems to be LLIMMgr::processIMTypingStop().
4636 // It requires an LLIMInfo for the message, which we don't have here.
4637 }
4638 else
4639 {
4640 LL_DEBUGS("Voice") << "Unknown notification type " << notificationType << "for participant " << uriString << " in session " << session->mSIPURI << LL_ENDL;
4641 }
4642 }
4643 else
3019 { 4644 {
3020 participant->mSpeakingTimeout.reset(); 4645 LL_DEBUGS("Voice") << "Unknown participant " << uriString << " in session " << session->mSIPURI << LL_ENDL;
3021 } 4646 }
3022 participant->mPower = energy;
3023 participant->mVolume = volume;
3024 } 4647 }
3025 else 4648 else
3026 { 4649 {
3027 LL_WARNS("Voice") << "unknown participant: " << uriString << LL_ENDL; 4650 LL_DEBUGS("Voice") << "Unknown session handle " << sessionHandle << LL_ENDL;
4651 }
4652}
4653
4654void LLVoiceClient::subscriptionEvent(std::string &buddyURI, std::string &subscriptionHandle, std::string &alias, std::string &displayName, std::string &applicationString, std::string &subscriptionType)
4655{
4656 buddyListEntry *buddy = findBuddy(buddyURI);
4657
4658 if(!buddy)
4659 {
4660 // Couldn't find buddy by URI, try converting the alias...
4661 if(!alias.empty())
4662 {
4663 LLUUID id;
4664 if(IDFromName(alias, id))
4665 {
4666 buddy = findBuddy(id);
4667 }
4668 }
4669 }
4670
4671 if(buddy)
4672 {
4673 std::ostringstream stream;
4674
4675 if(buddy->mCanSeeMeOnline)
4676 {
4677 // Sending the response will create an auto-accept rule
4678 buddy->mHasAutoAcceptListEntry = true;
4679 }
4680 else
4681 {
4682 // Sending the response will create a block rule
4683 buddy->mHasBlockListEntry = true;
4684 }
4685
4686 if(buddy->mInSLFriends)
4687 {
4688 buddy->mInVivoxBuddies = true;
4689 }
4690
4691 stream
4692 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Account.SendSubscriptionReply.1\">"
4693 << "<AccountHandle>" << mAccountHandle << "</AccountHandle>"
4694 << "<BuddyURI>" << buddy->mURI << "</BuddyURI>"
4695 << "<RuleType>" << (buddy->mCanSeeMeOnline?"Allow":"Hide") << "</RuleType>"
4696 << "<AutoAccept>"<< (buddy->mInSLFriends?"1":"0")<< "</AutoAccept>"
4697 << "<SubscriptionHandle>" << subscriptionHandle << "</SubscriptionHandle>"
4698 << "</Request>"
4699 << "\n\n\n";
4700
4701 writeString(stream.str());
3028 } 4702 }
3029} 4703}
3030 4704
@@ -3034,155 +4708,226 @@ void LLVoiceClient::auxAudioPropertiesEvent(F32 energy)
3034 mTuningEnergy = energy; 4708 mTuningEnergy = energy;
3035} 4709}
3036 4710
4711void LLVoiceClient::buddyListChanged()
4712{
4713 // This is called after we receive a BuddyAndGroupListChangedEvent.
4714 mBuddyListMapPopulated = true;
4715 mFriendsListDirty = true;
4716}
4717
3037void LLVoiceClient::muteListChanged() 4718void LLVoiceClient::muteListChanged()
3038{ 4719{
3039 // The user's mute list has been updated. Go through the current participant list and sync it with the mute list. 4720 // The user's mute list has been updated. Go through the current participant list and sync it with the mute list.
3040 4721 if(mAudioSession)
3041 participantMap::iterator iter = mParticipantMap.begin();
3042
3043 for(; iter != mParticipantMap.end(); iter++)
3044 { 4722 {
3045 participantState *p = iter->second; 4723 participantMap::iterator iter = mAudioSession->mParticipantsByURI.begin();
3046 4724
3047 // Check to see if this participant is on the mute list already 4725 for(; iter != mAudioSession->mParticipantsByURI.end(); iter++)
3048 updateMuteState(p); 4726 {
4727 participantState *p = iter->second;
4728
4729 // Check to see if this participant is on the mute list already
4730 if(p->updateMuteState())
4731 mAudioSession->mVolumeDirty = true;
4732 }
4733 }
4734}
4735
4736void LLVoiceClient::updateFriends(U32 mask)
4737{
4738 if(mask & (LLFriendObserver::ADD | LLFriendObserver::REMOVE | LLFriendObserver::POWERS))
4739 {
4740 // Just resend the whole friend list to the daemon
4741 mFriendsListDirty = true;
3049 } 4742 }
3050} 4743}
3051 4744
3052///////////////////////////// 4745/////////////////////////////
3053// Managing list of participants 4746// Managing list of participants
3054LLVoiceClient::participantState::participantState(const std::string &uri) : 4747LLVoiceClient::participantState::participantState(const std::string &uri) :
3055 mURI(uri), mPTT(false), mIsSpeaking(false), mIsModeratorMuted(false), mLastSpokeTimestamp(0.f), mPower(0.f), mVolume(0), mServiceType(serviceTypeUnknown), 4748 mURI(uri),
3056 mOnMuteList(false), mUserVolume(100), mVolumeDirty(false), mAvatarIDValid(false) 4749 mPTT(false),
4750 mIsSpeaking(false),
4751 mIsModeratorMuted(false),
4752 mLastSpokeTimestamp(0.f),
4753 mPower(0.f),
4754 mVolume(0),
4755 mOnMuteList(false),
4756 mUserVolume(100),
4757 mVolumeDirty(false),
4758 mAvatarIDValid(false),
4759 mIsSelf(false)
3057{ 4760{
3058} 4761}
3059 4762
3060LLVoiceClient::participantState *LLVoiceClient::addParticipant(const std::string &uri) 4763LLVoiceClient::participantState *LLVoiceClient::sessionState::addParticipant(const std::string &uri)
3061{ 4764{
3062 participantState *result = NULL; 4765 participantState *result = NULL;
3063 4766 bool useAlternateURI = false;
3064 participantMap::iterator iter = mParticipantMap.find(uri);
3065 4767
3066 if(iter != mParticipantMap.end()) 4768 // Note: this is mostly the body of LLVoiceClient::sessionState::findParticipant(), but since we need to know if it
4769 // matched the alternate SIP URI (so we can add it properly), we need to reproduce it here.
3067 { 4770 {
3068 // Found a matching participant already in the map. 4771 participantMap::iterator iter = mParticipantsByURI.find(&uri);
3069 result = iter->second; 4772
3070 } 4773 if(iter == mParticipantsByURI.end())
4774 {
4775 if(!mAlternateSIPURI.empty() && (uri == mAlternateSIPURI))
4776 {
4777 // This is a p2p session (probably with the SLIM client) with an alternate URI for the other participant.
4778 // Use mSIPURI instead, since it will be properly encoded.
4779 iter = mParticipantsByURI.find(&(mSIPURI));
4780 useAlternateURI = true;
4781 }
4782 }
3071 4783
4784 if(iter != mParticipantsByURI.end())
4785 {
4786 result = iter->second;
4787 }
4788 }
4789
3072 if(!result) 4790 if(!result)
3073 { 4791 {
3074 // participant isn't already in one list or the other. 4792 // participant isn't already in one list or the other.
3075 result = new participantState(uri); 4793 result = new participantState(useAlternateURI?mSIPURI:uri);
3076 mParticipantMap.insert(participantMap::value_type(uri, result)); 4794 mParticipantsByURI.insert(participantMap::value_type(&(result->mURI), result));
3077 mParticipantMapChanged = true; 4795 mParticipantsChanged = true;
3078 4796
3079 // Try to do a reverse transform on the URI to get the GUID back. 4797 // Try to do a reverse transform on the URI to get the GUID back.
3080 { 4798 {
3081 LLUUID id; 4799 LLUUID id;
3082 if(IDFromName(uri, id)) 4800 if(IDFromName(result->mURI, id))
3083 { 4801 {
3084 result->mAvatarIDValid = true; 4802 result->mAvatarIDValid = true;
3085 result->mAvatarID = id; 4803 result->mAvatarID = id;
3086 4804
3087 updateMuteState(result); 4805 if(result->updateMuteState())
4806 mVolumeDirty = true;
4807 }
4808 else
4809 {
4810 // Create a UUID by hashing the URI, but do NOT set mAvatarIDValid.
4811 // This tells both code in LLVoiceClient and code in llfloateractivespeakers.cpp that the ID will not be in the name cache.
4812 setUUIDFromStringHash(result->mAvatarID, uri);
3088 } 4813 }
3089 } 4814 }
3090 4815
4816 mParticipantsByUUID.insert(participantUUIDMap::value_type(&(result->mAvatarID), result));
4817
3091 LL_DEBUGS("Voice") << "participant \"" << result->mURI << "\" added." << LL_ENDL; 4818 LL_DEBUGS("Voice") << "participant \"" << result->mURI << "\" added." << LL_ENDL;
3092 } 4819 }
3093 4820
3094 return result; 4821 return result;
3095} 4822}
3096 4823
3097void LLVoiceClient::updateMuteState(participantState *p) 4824bool LLVoiceClient::participantState::updateMuteState()
3098{ 4825{
3099 if(p->mAvatarIDValid) 4826 bool result = false;
4827
4828 if(mAvatarIDValid)
3100 { 4829 {
3101 bool isMuted = LLMuteList::getInstance()->isMuted(p->mAvatarID, LLMute::flagVoiceChat); 4830 bool isMuted = LLMuteList::getInstance()->isMuted(mAvatarID, LLMute::flagVoiceChat);
3102 if(p->mOnMuteList != isMuted) 4831 if(mOnMuteList != isMuted)
3103 { 4832 {
3104 p->mOnMuteList = isMuted; 4833 mOnMuteList = isMuted;
3105 p->mVolumeDirty = true;
3106 mVolumeDirty = true; 4834 mVolumeDirty = true;
4835 result = true;
3107 } 4836 }
3108 } 4837 }
4838 return result;
3109} 4839}
3110 4840
3111void LLVoiceClient::removeParticipant(LLVoiceClient::participantState *participant) 4841void LLVoiceClient::sessionState::removeParticipant(LLVoiceClient::participantState *participant)
3112{ 4842{
3113 if(participant) 4843 if(participant)
3114 { 4844 {
3115 participantMap::iterator iter = mParticipantMap.find(participant->mURI); 4845 participantMap::iterator iter = mParticipantsByURI.find(&(participant->mURI));
3116 4846 participantUUIDMap::iterator iter2 = mParticipantsByUUID.find(&(participant->mAvatarID));
4847
3117 LL_DEBUGS("Voice") << "participant \"" << participant->mURI << "\" (" << participant->mAvatarID << ") removed." << LL_ENDL; 4848 LL_DEBUGS("Voice") << "participant \"" << participant->mURI << "\" (" << participant->mAvatarID << ") removed." << LL_ENDL;
3118 4849
3119 mParticipantMap.erase(iter); 4850 if(iter == mParticipantsByURI.end())
3120 delete participant; 4851 {
3121 mParticipantMapChanged = true; 4852 LL_ERRS("Voice") << "Internal error: participant " << participant->mURI << " not in URI map" << LL_ENDL;
4853 }
4854 else if(iter2 == mParticipantsByUUID.end())
4855 {
4856 LL_ERRS("Voice") << "Internal error: participant ID " << participant->mAvatarID << " not in UUID map" << LL_ENDL;
4857 }
4858 else if(iter->second != iter2->second)
4859 {
4860 LL_ERRS("Voice") << "Internal error: participant mismatch!" << LL_ENDL;
4861 }
4862 else
4863 {
4864 mParticipantsByURI.erase(iter);
4865 mParticipantsByUUID.erase(iter2);
4866
4867 delete participant;
4868 mParticipantsChanged = true;
4869 }
3122 } 4870 }
3123} 4871}
3124 4872
3125void LLVoiceClient::removeAllParticipants() 4873void LLVoiceClient::sessionState::removeAllParticipants()
3126{ 4874{
3127 LL_DEBUGS("Voice") << "called" << LL_ENDL; 4875 LL_DEBUGS("Voice") << "called" << LL_ENDL;
3128 4876
3129 while(!mParticipantMap.empty()) 4877 while(!mParticipantsByURI.empty())
3130 { 4878 {
3131 removeParticipant(mParticipantMap.begin()->second); 4879 removeParticipant(mParticipantsByURI.begin()->second);
4880 }
4881
4882 if(!mParticipantsByUUID.empty())
4883 {
4884 LL_ERRS("Voice") << "Internal error: empty URI map, non-empty UUID map" << LL_ENDL
3132 } 4885 }
3133} 4886}
3134 4887
3135LLVoiceClient::participantMap *LLVoiceClient::getParticipantList(void) 4888LLVoiceClient::participantMap *LLVoiceClient::getParticipantList(void)
3136{ 4889{
3137 return &mParticipantMap; 4890 participantMap *result = NULL;
4891 if(mAudioSession)
4892 {
4893 result = &(mAudioSession->mParticipantsByURI);
4894 }
4895 return result;
3138} 4896}
3139 4897
3140 4898
3141LLVoiceClient::participantState *LLVoiceClient::findParticipant(const std::string &uri) 4899LLVoiceClient::participantState *LLVoiceClient::sessionState::findParticipant(const std::string &uri)
3142{ 4900{
3143 participantState *result = NULL; 4901 participantState *result = NULL;
3144 4902
3145 // Don't find any participants if we're not connected. This is so that we don't continue to get stale data 4903 participantMap::iterator iter = mParticipantsByURI.find(&uri);
3146 // after the daemon dies. 4904
3147 if(mConnected) 4905 if(iter == mParticipantsByURI.end())
3148 { 4906 {
3149 participantMap::iterator iter = mParticipantMap.find(uri); 4907 if(!mAlternateSIPURI.empty() && (uri == mAlternateSIPURI))
3150
3151 if(iter != mParticipantMap.end())
3152 { 4908 {
3153 result = iter->second; 4909 // This is a p2p session (probably with the SLIM client) with an alternate URI for the other participant.
4910 // Look up the other URI
4911 iter = mParticipantsByURI.find(&(mSIPURI));
3154 } 4912 }
3155 } 4913 }
3156 4914
4915 if(iter != mParticipantsByURI.end())
4916 {
4917 result = iter->second;
4918 }
4919
3157 return result; 4920 return result;
3158} 4921}
3159 4922
3160 4923LLVoiceClient::participantState* LLVoiceClient::sessionState::findParticipantByID(const LLUUID& id)
3161LLVoiceClient::participantState *LLVoiceClient::findParticipantByAvatar(LLVOAvatar *avatar)
3162{ 4924{
3163 participantState * result = NULL; 4925 participantState * result = NULL;
4926 participantUUIDMap::iterator iter = mParticipantsByUUID.find(&id);
3164 4927
3165 // You'd think this would work, but it doesn't... 4928 if(iter != mParticipantsByUUID.end())
3166// std::string uri = sipURIFromAvatar(avatar);
3167
3168 // Currently, the URI is just the account name.
3169 std::string loginName = nameFromAvatar(avatar);
3170 result = findParticipant(loginName);
3171
3172 if(result != NULL)
3173 { 4929 {
3174 if(!result->mAvatarIDValid) 4930 result = iter->second;
3175 {
3176 result->mAvatarID = avatar->getID();
3177 result->mAvatarIDValid = true;
3178
3179 // We just figured out the avatar ID, so the participant list has "changed" from the perspective of anyone who uses that to identify participants.
3180 mParticipantMapChanged = true;
3181
3182 updateMuteState(result);
3183 }
3184
3185
3186 } 4931 }
3187 4932
3188 return result; 4933 return result;
@@ -3191,43 +4936,19 @@ LLVoiceClient::participantState *LLVoiceClient::findParticipantByAvatar(LLVOAvat
3191LLVoiceClient::participantState* LLVoiceClient::findParticipantByID(const LLUUID& id) 4936LLVoiceClient::participantState* LLVoiceClient::findParticipantByID(const LLUUID& id)
3192{ 4937{
3193 participantState * result = NULL; 4938 participantState * result = NULL;
3194
3195 // Currently, the URI is just the account name.
3196 std::string loginName = nameFromID(id);
3197 result = findParticipant(loginName);
3198
3199 return result;
3200}
3201
3202
3203void LLVoiceClient::clearChannelMap(void)
3204{
3205 mChannelMap.clear();
3206}
3207
3208void LLVoiceClient::addChannelMapEntry(std::string &name, std::string &uri)
3209{
3210 LL_DEBUGS("Voice") << "Adding channel name mapping: " << name << " -> " << uri << LL_ENDL;
3211 mChannelMap.insert(channelMap::value_type(name, uri));
3212}
3213
3214std::string LLVoiceClient::findChannelURI(std::string &name)
3215{
3216 std::string result;
3217 4939
3218 channelMap::iterator iter = mChannelMap.find(name); 4940 if(mAudioSession)
3219
3220 if(iter != mChannelMap.end())
3221 { 4941 {
3222 result = iter->second; 4942 result = mAudioSession->findParticipantByID(id);
3223 } 4943 }
3224 4944
3225 return result; 4945 return result;
3226} 4946}
3227 4947
4948
3228void LLVoiceClient::parcelChanged() 4949void LLVoiceClient::parcelChanged()
3229{ 4950{
3230 if(getState() >= stateLoggedIn) 4951 if(getState() >= stateNoChannel)
3231 { 4952 {
3232 // If the user is logged in, start a channel lookup. 4953 // If the user is logged in, start a channel lookup.
3233 LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL; 4954 LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL;
@@ -3241,7 +4962,7 @@ void LLVoiceClient::parcelChanged()
3241 } 4962 }
3242 else 4963 else
3243 { 4964 {
3244 // The transition to stateLoggedIn needs to kick this off again. 4965 // The transition to stateNoChannel needs to kick this off again.
3245 LL_INFOS("Voice") << "not logged in yet, deferring" << LL_ENDL; 4966 LL_INFOS("Voice") << "not logged in yet, deferring" << LL_ENDL;
3246 } 4967 }
3247} 4968}
@@ -3249,12 +4970,17 @@ void LLVoiceClient::parcelChanged()
3249void LLVoiceClient::switchChannel( 4970void LLVoiceClient::switchChannel(
3250 std::string uri, 4971 std::string uri,
3251 bool spatial, 4972 bool spatial,
3252 bool noReconnect, 4973 bool no_reconnect,
4974 bool is_p2p,
3253 std::string hash) 4975 std::string hash)
3254{ 4976{
3255 bool needsSwitch = false; 4977 bool needsSwitch = false;
3256 4978
3257 LL_DEBUGS("Voice") << "called in state " << state2string(getState()) << " with uri \"" << uri << "\"" << LL_ENDL; 4979 LL_DEBUGS("Voice")
4980 << "called in state " << state2string(getState())
4981 << " with uri \"" << uri << "\""
4982 << (spatial?", spatial is true":", spatial is false")
4983 << LL_ENDL;
3258 4984
3259 switch(getState()) 4985 switch(getState())
3260 { 4986 {
@@ -3264,18 +4990,18 @@ void LLVoiceClient::switchChannel(
3264 // Always switch to the new URI from these states. 4990 // Always switch to the new URI from these states.
3265 needsSwitch = true; 4991 needsSwitch = true;
3266 break; 4992 break;
3267 4993
3268 default: 4994 default:
3269 if(mSessionTerminateRequested) 4995 if(mSessionTerminateRequested)
3270 { 4996 {
3271 // If a terminate has been requested, we need to compare against where the URI we're already headed to. 4997 // If a terminate has been requested, we need to compare against where the URI we're already headed to.
3272 if(mNextSessionURI != uri) 4998 if(mNextAudioSession && (mNextAudioSession->mSIPURI != uri))
3273 needsSwitch = true; 4999 needsSwitch = true;
3274 } 5000 }
3275 else 5001 else
3276 { 5002 {
3277 // Otherwise, compare against the URI we're in now. 5003 // Otherwise, compare against the URI we're in now.
3278 if(mSessionURI != uri) 5004 if(mAudioSession && (mAudioSession->mSIPURI != uri))
3279 needsSwitch = true; 5005 needsSwitch = true;
3280 } 5006 }
3281 break; 5007 break;
@@ -3283,22 +5009,28 @@ void LLVoiceClient::switchChannel(
3283 5009
3284 if(needsSwitch) 5010 if(needsSwitch)
3285 { 5011 {
3286 mNextSessionURI = uri;
3287 mNextSessionHash = hash;
3288 mNextSessionHandle.clear();
3289 mNextP2PSessionURI.clear();
3290 mNextSessionSpatial = spatial;
3291 mNextSessionNoReconnect = noReconnect;
3292
3293 if(uri.empty()) 5012 if(uri.empty())
3294 { 5013 {
3295 // Leave any channel we may be in 5014 // Leave any channel we may be in
3296 LL_DEBUGS("Voice") << "leaving channel" << LL_ENDL; 5015 LL_DEBUGS("Voice") << "leaving channel" << LL_ENDL;
5016
5017 sessionState *oldSession = mNextAudioSession;
5018 mNextAudioSession = NULL;
5019
5020 // The old session may now need to be deleted.
5021 reapSession(oldSession);
5022
3297 notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_VOICE_DISABLED); 5023 notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_VOICE_DISABLED);
3298 } 5024 }
3299 else 5025 else
3300 { 5026 {
3301 LL_DEBUGS("Voice") << "switching to channel " << uri << LL_ENDL; 5027 LL_DEBUGS("Voice") << "switching to channel " << uri << LL_ENDL;
5028
5029 mNextAudioSession = addSession(uri);
5030 mNextAudioSession->mHash = hash;
5031 mNextAudioSession->mIsSpatial = spatial;
5032 mNextAudioSession->mReconnect = !no_reconnect;
5033 mNextAudioSession->mIsP2P = is_p2p;
3302 } 5034 }
3303 5035
3304 if(getState() <= stateNoChannel) 5036 if(getState() <= stateNoChannel)
@@ -3313,15 +5045,10 @@ void LLVoiceClient::switchChannel(
3313 } 5045 }
3314} 5046}
3315 5047
3316void LLVoiceClient::joinSession(std::string handle, std::string uri) 5048void LLVoiceClient::joinSession(sessionState *session)
3317{ 5049{
3318 mNextSessionURI.clear(); 5050 mNextAudioSession = session;
3319 mNextSessionHash.clear(); 5051
3320 mNextP2PSessionURI = uri;
3321 mNextSessionHandle = handle;
3322 mNextSessionSpatial = false;
3323 mNextSessionNoReconnect = false;
3324
3325 if(getState() <= stateNoChannel) 5052 if(getState() <= stateNoChannel)
3326 { 5053 {
3327 // We're already set up to join a channel, just needed to fill in the session handle 5054 // We're already set up to join a channel, just needed to fill in the session handle
@@ -3337,7 +5064,7 @@ void LLVoiceClient::setNonSpatialChannel(
3337 const std::string &uri, 5064 const std::string &uri,
3338 const std::string &credentials) 5065 const std::string &credentials)
3339{ 5066{
3340 switchChannel(uri, false, false, credentials); 5067 switchChannel(uri, false, false, false, credentials);
3341} 5068}
3342 5069
3343void LLVoiceClient::setSpatialChannel( 5070void LLVoiceClient::setSpatialChannel(
@@ -3345,51 +5072,216 @@ void LLVoiceClient::setSpatialChannel(
3345 const std::string &credentials) 5072 const std::string &credentials)
3346{ 5073{
3347 mSpatialSessionURI = uri; 5074 mSpatialSessionURI = uri;
5075 mSpatialSessionCredentials = credentials;
3348 mAreaVoiceDisabled = mSpatialSessionURI.empty(); 5076 mAreaVoiceDisabled = mSpatialSessionURI.empty();
3349 5077
3350 LL_DEBUGS("Voice") << "got spatial channel uri: \"" << uri << "\"" << LL_ENDL; 5078 LL_DEBUGS("Voice") << "got spatial channel uri: \"" << uri << "\"" << LL_ENDL;
3351 5079
3352 if(mNonSpatialChannel || !mNextSessionSpatial) 5080 if((mAudioSession && !(mAudioSession->mIsSpatial)) || (mNextAudioSession && !(mNextAudioSession->mIsSpatial)))
3353 { 5081 {
3354 // User is in a non-spatial chat or joining a non-spatial chat. Don't switch channels. 5082 // User is in a non-spatial chat or joining a non-spatial chat. Don't switch channels.
3355 LL_INFOS("Voice") << "in non-spatial chat, not switching channels" << LL_ENDL; 5083 LL_INFOS("Voice") << "in non-spatial chat, not switching channels" << LL_ENDL;
3356 } 5084 }
3357 else 5085 else
3358 { 5086 {
3359 switchChannel(mSpatialSessionURI, true, false, credentials); 5087 switchChannel(mSpatialSessionURI, true, false, false, mSpatialSessionCredentials);
3360 } 5088 }
3361} 5089}
3362 5090
3363void LLVoiceClient::callUser(LLUUID &uuid) 5091void LLVoiceClient::callUser(const LLUUID &uuid)
3364{ 5092{
3365 std::string userURI = sipURIFromID(uuid); 5093 std::string userURI = sipURIFromID(uuid);
3366 5094
3367 switchChannel(userURI, false, true); 5095 switchChannel(userURI, false, true, true);
5096}
5097
5098LLVoiceClient::sessionState* LLVoiceClient::startUserIMSession(const LLUUID &uuid)
5099{
5100 // Figure out if a session with the user already exists
5101 sessionState *session = findSession(uuid);
5102 if(!session)
5103 {
5104 // No session with user, need to start one.
5105 std::string uri = sipURIFromID(uuid);
5106 session = addSession(uri);
5107 session->mIsSpatial = false;
5108 session->mReconnect = false;
5109 session->mIsP2P = true;
5110 session->mCallerID = uuid;
5111 }
5112
5113 if(session)
5114 {
5115 if(session->mHandle.empty())
5116 {
5117 // Session isn't active -- start it up.
5118 sessionCreateSendMessage(session, false, true);
5119 }
5120 else
5121 {
5122 // Session is already active -- start up text.
5123 sessionTextConnectSendMessage(session);
5124 }
5125 }
5126
5127 return session;
5128}
5129
5130bool LLVoiceClient::sendTextMessage(const LLUUID& participant_id, const std::string& message)
5131{
5132 bool result = false;
5133
5134 // Attempt to locate the indicated session
5135 sessionState *session = startUserIMSession(participant_id);
5136 if(session)
5137 {
5138 // found the session, attempt to send the message
5139 session->mTextMsgQueue.push(message);
5140
5141 // Try to send queued messages (will do nothing if the session is not open yet)
5142 sendQueuedTextMessages(session);
5143
5144 // The message is queued, so we succeed.
5145 result = true;
5146 }
5147 else
5148 {
5149 LL_DEBUGS("Voice") << "Session not found for participant ID " << participant_id << LL_ENDL;
5150 }
5151
5152 return result;
5153}
5154
5155void LLVoiceClient::sendQueuedTextMessages(sessionState *session)
5156{
5157 if(session->mTextStreamState == 1)
5158 {
5159 if(!session->mTextMsgQueue.empty())
5160 {
5161 std::ostringstream stream;
5162
5163 while(!session->mTextMsgQueue.empty())
5164 {
5165 std::string message = session->mTextMsgQueue.front();
5166 session->mTextMsgQueue.pop();
5167 stream
5168 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"Session.SendMessage.1\">"
5169 << "<SessionHandle>" << session->mHandle << "</SessionHandle>"
5170 << "<MessageHeader>text/HTML</MessageHeader>"
5171 << "<MessageBody>" << message << "</MessageBody>"
5172 << "</Request>"
5173 << "\n\n\n";
5174 }
5175 writeString(stream.str());
5176 }
5177 }
5178 else
5179 {
5180 // Session isn't connected yet, defer until later.
5181 }
5182}
5183
5184void LLVoiceClient::endUserIMSession(const LLUUID &uuid)
5185{
5186 // Figure out if a session with the user exists
5187 sessionState *session = findSession(uuid);
5188 if(session)
5189 {
5190 // found the session
5191 if(!session->mHandle.empty())
5192 {
5193 sessionTextDisconnectSendMessage(session);
5194 }
5195 }
5196 else
5197 {
5198 LL_DEBUGS("Voice") << "Session not found for participant ID " << uuid << LL_ENDL;
5199 }
3368} 5200}
3369 5201
3370void LLVoiceClient::answerInvite(std::string &sessionHandle, LLUUID& other_user_id) 5202bool LLVoiceClient::answerInvite(std::string &sessionHandle)
3371{ 5203{
3372 joinSession(sessionHandle, sipURIFromID(other_user_id)); 5204 // this is only ever used to answer incoming p2p call invites.
5205
5206 sessionState *session = findSession(sessionHandle);
5207 if(session)
5208 {
5209 session->mIsSpatial = false;
5210 session->mReconnect = false;
5211 session->mIsP2P = true;
5212
5213 joinSession(session);
5214 return true;
5215 }
5216
5217 return false;
5218}
5219
5220bool LLVoiceClient::isOnlineSIP(const LLUUID &id)
5221{
5222 bool result = false;
5223 buddyListEntry *buddy = findBuddy(id);
5224 if(buddy)
5225 {
5226 result = buddy->mOnlineSLim;
5227 LL_DEBUGS("Voice") << "Buddy " << buddy->mDisplayName << " is SIP " << (result?"online":"offline") << LL_ENDL;
5228 }
5229
5230 if(!result)
5231 {
5232 // This user isn't on the buddy list or doesn't show online status through the buddy list, but could be a participant in an existing session if they initiated a text IM.
5233 sessionState *session = findSession(id);
5234 if(session && !session->mHandle.empty())
5235 {
5236 if((session->mTextStreamState != streamStateUnknown) || (session->mMediaStreamState > streamStateIdle))
5237 {
5238 LL_DEBUGS("Voice") << "Open session with " << id << " found, returning SIP online state" << LL_ENDL;
5239 // we have a p2p text session open with this user, so by definition they're online.
5240 result = true;
5241 }
5242 }
5243 }
5244
5245 return result;
3373} 5246}
3374 5247
3375void LLVoiceClient::declineInvite(std::string &sessionHandle) 5248void LLVoiceClient::declineInvite(std::string &sessionHandle)
3376{ 5249{
3377 sessionTerminateByHandle(sessionHandle); 5250 sessionState *session = findSession(sessionHandle);
5251 if(session)
5252 {
5253 sessionMediaDisconnectSendMessage(session);
5254 }
3378} 5255}
3379 5256
3380void LLVoiceClient::leaveNonSpatialChannel() 5257void LLVoiceClient::leaveNonSpatialChannel()
3381{ 5258{
3382 switchChannel(mSpatialSessionURI); 5259 LL_DEBUGS("Voice")
5260 << "called in state " << state2string(getState())
5261 << LL_ENDL;
5262
5263 // Make sure we don't rejoin the current session.
5264 sessionState *oldNextSession = mNextAudioSession;
5265 mNextAudioSession = NULL;
5266
5267 // Most likely this will still be the current session at this point, but check it anyway.
5268 reapSession(oldNextSession);
5269
5270 verifySessionState();
5271
5272 sessionTerminate();
3383} 5273}
3384 5274
3385std::string LLVoiceClient::getCurrentChannel() 5275std::string LLVoiceClient::getCurrentChannel()
3386{ 5276{
5277 std::string result;
5278
3387 if((getState() == stateRunning) && !mSessionTerminateRequested) 5279 if((getState() == stateRunning) && !mSessionTerminateRequested)
3388 { 5280 {
3389 return mSessionURI; 5281 result = getAudioSessionURI();
3390 } 5282 }
3391 5283
3392 return ""; 5284 return result;
3393} 5285}
3394 5286
3395bool LLVoiceClient::inProximalChannel() 5287bool LLVoiceClient::inProximalChannel()
@@ -3398,7 +5290,7 @@ bool LLVoiceClient::inProximalChannel()
3398 5290
3399 if((getState() == stateRunning) && !mSessionTerminateRequested) 5291 if((getState() == stateRunning) && !mSessionTerminateRequested)
3400 { 5292 {
3401 result = !mNonSpatialChannel; 5293 result = inSpatialChannel();
3402 } 5294 }
3403 5295
3404 return result; 5296 return result;
@@ -3410,7 +5302,7 @@ std::string LLVoiceClient::sipURIFromID(const LLUUID &id)
3410 result = "sip:"; 5302 result = "sip:";
3411 result += nameFromID(id); 5303 result += nameFromID(id);
3412 result += "@"; 5304 result += "@";
3413 result += mAccountServerName; 5305 result += mVoiceSIPURIHostName;
3414 5306
3415 return result; 5307 return result;
3416} 5308}
@@ -3423,7 +5315,7 @@ std::string LLVoiceClient::sipURIFromAvatar(LLVOAvatar *avatar)
3423 result = "sip:"; 5315 result = "sip:";
3424 result += nameFromID(avatar->getID()); 5316 result += nameFromID(avatar->getID());
3425 result += "@"; 5317 result += "@";
3426 result += mAccountServerName; 5318 result += mVoiceSIPURIHostName;
3427 } 5319 }
3428 5320
3429 return result; 5321 return result;
@@ -3442,6 +5334,13 @@ std::string LLVoiceClient::nameFromAvatar(LLVOAvatar *avatar)
3442std::string LLVoiceClient::nameFromID(const LLUUID &uuid) 5334std::string LLVoiceClient::nameFromID(const LLUUID &uuid)
3443{ 5335{
3444 std::string result; 5336 std::string result;
5337
5338 if (uuid.isNull()) {
5339 //VIVOX, the uuid emtpy look for the mURIString and return that instead.
5340 //result.assign(uuid.mURIStringName);
5341 LLStringUtil::replaceChar(result, '_', ' ');
5342 return result;
5343 }
3445 // Prepending this apparently prevents conflicts with reserved names inside the vivox and diamondware code. 5344 // Prepending this apparently prevents conflicts with reserved names inside the vivox and diamondware code.
3446 result = "x"; 5345 result = "x";
3447 5346
@@ -3455,13 +5354,24 @@ std::string LLVoiceClient::nameFromID(const LLUUID &uuid)
3455 // If you need to transform a GUID to this form on the Mac OS X command line, this will do so: 5354 // If you need to transform a GUID to this form on the Mac OS X command line, this will do so:
3456 // echo -n x && (echo e669132a-6c43-4ee1-a78d-6c82fff59f32 |xxd -r -p |openssl base64|tr '/+' '_-') 5355 // echo -n x && (echo e669132a-6c43-4ee1-a78d-6c82fff59f32 |xxd -r -p |openssl base64|tr '/+' '_-')
3457 5356
5357 // The reverse transform can be done with:
5358 // echo 'x5mkTKmxDTuGnjWyC__WfMg==' |cut -b 2- -|tr '_-' '/+' |openssl base64 -d|xxd -p
5359
3458 return result; 5360 return result;
3459} 5361}
3460 5362
3461bool LLVoiceClient::IDFromName(const std::string name, LLUUID &uuid) 5363bool LLVoiceClient::IDFromName(const std::string inName, LLUUID &uuid)
3462{ 5364{
3463 bool result = false; 5365 bool result = false;
3464 5366
5367 // SLIM SDK: The "name" may actually be a SIP URI such as: "sip:xFnPP04IpREWNkuw1cOXlhw==@bhr.vivox.com"
5368 // If it is, convert to a bare name before doing the transform.
5369 std::string name = nameFromsipURI(inName);
5370
5371 // Doesn't look like a SIP URI, assume it's an actual name.
5372 if(name.empty())
5373 name = inName;
5374
3465 // This will only work if the name is of the proper form. 5375 // This will only work if the name is of the proper form.
3466 // As an example, the account name for Monroe Linden (UUID 1673cfd3-8229-4445-8d92-ec3570e5e587) is: 5376 // As an example, the account name for Monroe Linden (UUID 1673cfd3-8229-4445-8d92-ec3570e5e587) is:
3467 // "xFnPP04IpREWNkuw1cOXlhw==" 5377 // "xFnPP04IpREWNkuw1cOXlhw=="
@@ -3483,6 +5393,13 @@ bool LLVoiceClient::IDFromName(const std::string name, LLUUID &uuid)
3483 memcpy(uuid.mData, rawuuid, UUID_BYTES); 5393 memcpy(uuid.mData, rawuuid, UUID_BYTES);
3484 result = true; 5394 result = true;
3485 } 5395 }
5396 }
5397
5398 if(!result)
5399 {
5400 // VIVOX: not a standard account name, just copy the URI name mURIString field
5401 // and hope for the best. bpj
5402 uuid.setNull(); // VIVOX, set the uuid field to nulls
3486 } 5403 }
3487 5404
3488 return result; 5405 return result;
@@ -3499,13 +5416,59 @@ std::string LLVoiceClient::sipURIFromName(std::string &name)
3499 result = "sip:"; 5416 result = "sip:";
3500 result += name; 5417 result += name;
3501 result += "@"; 5418 result += "@";
3502 result += mAccountServerName; 5419 result += mVoiceSIPURIHostName;
3503 5420
3504// LLStringUtil::toLower(result); 5421// LLStringUtil::toLower(result);
3505 5422
3506 return result; 5423 return result;
3507} 5424}
3508 5425
5426std::string LLVoiceClient::nameFromsipURI(const std::string &uri)
5427{
5428 std::string result;
5429
5430 std::string::size_type sipOffset, atOffset;
5431 sipOffset = uri.find("sip:");
5432 atOffset = uri.find("@");
5433 if((sipOffset != std::string::npos) && (atOffset != std::string::npos))
5434 {
5435 result = uri.substr(sipOffset + 4, atOffset - (sipOffset + 4));
5436 }
5437
5438 return result;
5439}
5440
5441bool LLVoiceClient::inSpatialChannel(void)
5442{
5443 bool result = false;
5444
5445 if(mAudioSession)
5446 result = mAudioSession->mIsSpatial;
5447
5448 return result;
5449}
5450
5451std::string LLVoiceClient::getAudioSessionURI()
5452{
5453 std::string result;
5454
5455 if(mAudioSession)
5456 result = mAudioSession->mSIPURI;
5457
5458 return result;
5459}
5460
5461std::string LLVoiceClient::getAudioSessionHandle()
5462{
5463 std::string result;
5464
5465 if(mAudioSession)
5466 result = mAudioSession->mHandle;
5467
5468 return result;
5469}
5470
5471
3509///////////////////////////// 5472/////////////////////////////
3510// Sending updates of current state 5473// Sending updates of current state
3511 5474
@@ -3544,7 +5507,8 @@ void LLVoiceClient::updatePosition(void)
3544 LLMatrix3 rot; 5507 LLMatrix3 rot;
3545 LLVector3d pos; 5508 LLVector3d pos;
3546 5509
3547 // MBW -- XXX -- Setting both camera and avatar velocity to 0 for now. May figure it out later... 5510 // TODO: If camera and avatar velocity are actually used by the voice system, we could compute them here...
5511 // They're currently always set to zero.
3548 5512
3549 // Send the current camera position to the voice code 5513 // Send the current camera position to the voice code
3550 rot.setRows(LLViewerCamera::getInstance()->getAtAxis(), LLViewerCamera::getInstance()->getLeftAxis (), LLViewerCamera::getInstance()->getUpAxis()); 5514 rot.setRows(LLViewerCamera::getInstance()->getAtAxis(), LLViewerCamera::getInstance()->getLeftAxis (), LLViewerCamera::getInstance()->getUpAxis());
@@ -3559,7 +5523,7 @@ void LLVoiceClient::updatePosition(void)
3559 rot = agent->getRootJoint()->getWorldRotation().getMatrix3(); 5523 rot = agent->getRootJoint()->getWorldRotation().getMatrix3();
3560 5524
3561 pos = agent->getPositionGlobal(); 5525 pos = agent->getPositionGlobal();
3562 // MBW -- XXX -- Can we get the head offset from outside the LLVOAvatar? 5526 // TODO: Can we get the head offset from outside the LLVOAvatar?
3563// pos += LLVector3d(mHeadOffset); 5527// pos += LLVector3d(mHeadOffset);
3564 pos += LLVector3d(0.f, 0.f, 1.f); 5528 pos += LLVector3d(0.f, 0.f, 1.f);
3565 5529
@@ -3665,8 +5629,8 @@ void LLVoiceClient::setVoiceEnabled(bool enabled)
3665 } 5629 }
3666 else 5630 else
3667 { 5631 {
3668 // for now, leave active channel, to auto join when turning voice back on 5632 // Turning voice off looses your current channel -- this makes sure the UI isn't out of sync when you re-enable it.
3669 //LLVoiceChannel::getCurrentVoiceChannel->deactivate(); 5633 LLVoiceChannel::getCurrentVoiceChannel()->deactivate();
3670 } 5634 }
3671 } 5635 }
3672} 5636}
@@ -3746,56 +5710,34 @@ void LLVoiceClient::setEarLocation(S32 loc)
3746 5710
3747void LLVoiceClient::setVoiceVolume(F32 volume) 5711void LLVoiceClient::setVoiceVolume(F32 volume)
3748{ 5712{
3749 LL_DEBUGS("Voice") << "volume is " << volume << LL_ENDL; 5713 int scaled_volume = scale_speaker_volume(volume);
3750 5714
3751 // incoming volume has the range [0.0 ... 1.0], with 0.5 as the default. 5715 if(scaled_volume != mSpeakerVolume)
3752 // Map it as follows: 0.0 -> -100, 0.5 -> 24, 1.0 -> 50
3753
3754 volume -= 0.5f; // offset volume to the range [-0.5 ... 0.5], with 0 at the default.
3755 int scaledVolume = 24; // offset scaledVolume by its default level
3756 if(volume < 0.0f)
3757 scaledVolume += ((int)(volume * 248.0f)); // (24 - (-100)) * 2
3758 else
3759 scaledVolume += ((int)(volume * 52.0f)); // (50 - 24) * 2
3760
3761 if(scaledVolume != mSpeakerVolume)
3762 { 5716 {
3763 if((scaledVolume == -100) || (mSpeakerVolume == -100)) 5717 if((scaled_volume == 0) || (mSpeakerVolume == 0))
3764 { 5718 {
3765 mSpeakerMuteDirty = true; 5719 mSpeakerMuteDirty = true;
3766 } 5720 }
3767 5721
3768 mSpeakerVolume = scaledVolume; 5722 mSpeakerVolume = scaled_volume;
3769 mSpeakerVolumeDirty = true; 5723 mSpeakerVolumeDirty = true;
3770 } 5724 }
3771} 5725}
3772 5726
3773void LLVoiceClient::setMicGain(F32 volume) 5727void LLVoiceClient::setMicGain(F32 volume)
3774{ 5728{
3775 int scaledVolume = ((int)(volume * 100.0f)) - 100; 5729 int scaled_volume = scale_mic_volume(volume);
3776 if(scaledVolume != mMicVolume) 5730
5731 if(scaled_volume != mMicVolume)
3777 { 5732 {
3778 mMicVolume = scaledVolume; 5733 mMicVolume = scaled_volume;
3779 mMicVolumeDirty = true; 5734 mMicVolumeDirty = true;
3780 } 5735 }
3781} 5736}
3782 5737
3783void LLVoiceClient::setVivoxDebugServerName(std::string &serverName)
3784{
3785 if(!mAccountServerName.empty())
3786 {
3787 // The name has been filled in already, which means we know whether we're connecting to agni or not.
3788 if(!sConnectingToAgni)
3789 {
3790 // Only use the setting if we're connecting to a development grid -- always use bhr when on agni.
3791 mAccountServerName = serverName;
3792 }
3793 }
3794}
3795
3796void LLVoiceClient::keyDown(KEY key, MASK mask) 5738void LLVoiceClient::keyDown(KEY key, MASK mask)
3797{ 5739{
3798 LL_DEBUGS("Voice") << "key is " << LLKeyboard::stringFromKey(key) << LL_ENDL; 5740// LL_DEBUGS("Voice") << "key is " << LLKeyboard::stringFromKey(key) << LL_ENDL;
3799 5741
3800 if (gKeyboard->getKeyRepeated(key)) 5742 if (gKeyboard->getKeyRepeated(key))
3801 { 5743 {
@@ -3933,19 +5875,6 @@ BOOL LLVoiceClient::getUsingPTT(const LLUUID& id)
3933 return result; 5875 return result;
3934} 5876}
3935 5877
3936BOOL LLVoiceClient::getPTTPressed(const LLUUID& id)
3937{
3938 BOOL result = FALSE;
3939
3940 participantState *participant = findParticipantByID(id);
3941 if(participant)
3942 {
3943 result = participant->mPTT;
3944 }
3945
3946 return result;
3947}
3948
3949BOOL LLVoiceClient::getOnMuteList(const LLUUID& id) 5878BOOL LLVoiceClient::getOnMuteList(const LLUUID& id)
3950{ 5879{
3951 BOOL result = FALSE; 5880 BOOL result = FALSE;
@@ -3977,144 +5906,841 @@ F32 LLVoiceClient::getUserVolume(const LLUUID& id)
3977 5906
3978void LLVoiceClient::setUserVolume(const LLUUID& id, F32 volume) 5907void LLVoiceClient::setUserVolume(const LLUUID& id, F32 volume)
3979{ 5908{
5909 if(mAudioSession)
5910 {
5911 participantState *participant = findParticipantByID(id);
5912 if (participant)
5913 {
5914 // volume can amplify by as much as 4x!
5915 S32 ivol = (S32)(400.f * volume * volume);
5916 participant->mUserVolume = llclamp(ivol, 0, 400);
5917 participant->mVolumeDirty = TRUE;
5918 mAudioSession->mVolumeDirty = TRUE;
5919 }
5920 }
5921}
5922
5923std::string LLVoiceClient::getGroupID(const LLUUID& id)
5924{
5925 std::string result;
5926
3980 participantState *participant = findParticipantByID(id); 5927 participantState *participant = findParticipantByID(id);
3981 if (participant) 5928 if(participant)
3982 { 5929 {
3983 // volume can amplify by as much as 4x! 5930 result = participant->mGroupID;
3984 S32 ivol = (S32)(400.f * volume * volume);
3985 participant->mUserVolume = llclamp(ivol, 0, 400);
3986 participant->mVolumeDirty = TRUE;
3987 mVolumeDirty = TRUE;
3988 } 5931 }
5932
5933 return result;
3989} 5934}
3990 5935
5936BOOL LLVoiceClient::getAreaVoiceDisabled()
5937{
5938 return mAreaVoiceDisabled;
5939}
5940
5941void LLVoiceClient::recordingLoopStart(int seconds, int deltaFramesPerControlFrame)
5942{
5943// LL_DEBUGS("Voice") << "sending SessionGroup.ControlRecording (Start)" << LL_ENDL;
5944
5945 if(!mMainSessionGroupHandle.empty())
5946 {
5947 std::ostringstream stream;
5948 stream
5949 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"SessionGroup.ControlRecording.1\">"
5950 << "<SessionGroupHandle>" << mMainSessionGroupHandle << "</SessionGroupHandle>"
5951 << "<RecordingControlType>Start</RecordingControlType>"
5952 << "<DeltaFramesPerControlFrame>" << deltaFramesPerControlFrame << "</DeltaFramesPerControlFrame>"
5953 << "<Filename>" << "" << "</Filename>"
5954 << "<EnableAudioRecordingEvents>false</EnableAudioRecordingEvents>"
5955 << "<LoopModeDurationSeconds>" << seconds << "</LoopModeDurationSeconds>"
5956 << "</Request>\n\n\n";
3991 5957
3992 5958
3993LLVoiceClient::serviceType LLVoiceClient::getServiceType(const LLUUID& id) 5959 writeString(stream.str());
5960 }
5961}
5962
5963void LLVoiceClient::recordingLoopSave(const std::string& filename)
3994{ 5964{
3995 serviceType result = serviceTypeUnknown; 5965// LL_DEBUGS("Voice") << "sending SessionGroup.ControlRecording (Flush)" << LL_ENDL;
3996 5966
3997 participantState *participant = findParticipantByID(id); 5967 if(mAudioSession != NULL && !mAudioSession->mGroupHandle.empty())
3998 if(participant) 5968 {
5969 std::ostringstream stream;
5970 stream
5971 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"SessionGroup.ControlRecording.1\">"
5972 << "<SessionGroupHandle>" << mMainSessionGroupHandle << "</SessionGroupHandle>"
5973 << "<RecordingControlType>Flush</RecordingControlType>"
5974 << "<Filename>" << filename << "</Filename>"
5975 << "</Request>\n\n\n";
5976
5977 writeString(stream.str());
5978 }
5979}
5980
5981void LLVoiceClient::recordingStop()
5982{
5983// LL_DEBUGS("Voice") << "sending SessionGroup.ControlRecording (Stop)" << LL_ENDL;
5984
5985 if(mAudioSession != NULL && !mAudioSession->mGroupHandle.empty())
5986 {
5987 std::ostringstream stream;
5988 stream
5989 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"SessionGroup.ControlRecording.1\">"
5990 << "<SessionGroupHandle>" << mMainSessionGroupHandle << "</SessionGroupHandle>"
5991 << "<RecordingControlType>Stop</RecordingControlType>"
5992 << "</Request>\n\n\n";
5993
5994 writeString(stream.str());
5995 }
5996}
5997
5998void LLVoiceClient::filePlaybackStart(const std::string& filename)
5999{
6000// LL_DEBUGS("Voice") << "sending SessionGroup.ControlPlayback (Start)" << LL_ENDL;
6001
6002 if(mAudioSession != NULL && !mAudioSession->mGroupHandle.empty())
6003 {
6004 std::ostringstream stream;
6005 stream
6006 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"SessionGroup.ControlPlayback.1\">"
6007 << "<SessionGroupHandle>" << mMainSessionGroupHandle << "</SessionGroupHandle>"
6008 << "<RecordingControlType>Start</RecordingControlType>"
6009 << "<Filename>" << filename << "</Filename>"
6010 << "</Request>\n\n\n";
6011
6012 writeString(stream.str());
6013 }
6014}
6015
6016void LLVoiceClient::filePlaybackStop()
6017{
6018// LL_DEBUGS("Voice") << "sending SessionGroup.ControlPlayback (Stop)" << LL_ENDL;
6019
6020 if(mAudioSession != NULL && !mAudioSession->mGroupHandle.empty())
3999 { 6021 {
4000 result = participant->mServiceType; 6022 std::ostringstream stream;
6023 stream
6024 << "<Request requestId=\"" << mCommandCookie++ << "\" action=\"SessionGroup.ControlPlayback.1\">"
6025 << "<SessionGroupHandle>" << mMainSessionGroupHandle << "</SessionGroupHandle>"
6026 << "<RecordingControlType>Stop</RecordingControlType>"
6027 << "</Request>\n\n\n";
6028
6029 writeString(stream.str());
6030 }
6031}
6032
6033void LLVoiceClient::filePlaybackSetPaused(bool paused)
6034{
6035 // TODO: Implement once Vivox gives me a sample
6036}
6037
6038void LLVoiceClient::filePlaybackSetMode(bool vox, float speed)
6039{
6040 // TODO: Implement once Vivox gives me a sample
6041}
6042
6043LLVoiceClient::sessionState::sessionState() :
6044 mMediaStreamState(streamStateUnknown),
6045 mTextStreamState(streamStateUnknown),
6046 mCreateInProgress(false),
6047 mMediaConnectInProgress(false),
6048 mVoiceInvitePending(false),
6049 mTextInvitePending(false),
6050 mSynthesizedCallerID(false),
6051 mIsChannel(false),
6052 mIsSpatial(false),
6053 mIsP2P(false),
6054 mIncoming(false),
6055 mVoiceEnabled(false),
6056 mReconnect(false),
6057 mVolumeDirty(false),
6058 mParticipantsChanged(false)
6059{
6060}
6061
6062LLVoiceClient::sessionState::~sessionState()
6063{
6064 removeAllParticipants();
6065}
6066
6067LLVoiceClient::sessionIterator LLVoiceClient::sessionsBegin(void)
6068{
6069 return mSessions.begin();
6070}
6071
6072LLVoiceClient::sessionIterator LLVoiceClient::sessionsEnd(void)
6073{
6074 return mSessions.end();
6075}
6076
6077
6078LLVoiceClient::sessionState *LLVoiceClient::findSession(const std::string &handle)
6079{
6080 sessionState *result = NULL;
6081 sessionMap::iterator iter = mSessionsByHandle.find(&handle);
6082 if(iter != mSessionsByHandle.end())
6083 {
6084 result = iter->second;
4001 } 6085 }
4002 6086
4003 return result; 6087 return result;
4004} 6088}
4005 6089
4006std::string LLVoiceClient::getGroupID(const LLUUID& id) 6090LLVoiceClient::sessionState *LLVoiceClient::findSessionBeingCreatedByURI(const std::string &uri)
6091{
6092 sessionState *result = NULL;
6093 for(sessionIterator iter = sessionsBegin(); iter != sessionsEnd(); iter++)
6094 {
6095 sessionState *session = *iter;
6096 if(session->mCreateInProgress && (session->mSIPURI == uri))
6097 {
6098 result = session;
6099 break;
6100 }
6101 }
6102
6103 return result;
6104}
6105
6106LLVoiceClient::sessionState *LLVoiceClient::findSession(const LLUUID &participant_id)
4007{ 6107{
4008 std::string result; 6108 sessionState *result = NULL;
6109
6110 for(sessionIterator iter = sessionsBegin(); iter != sessionsEnd(); iter++)
6111 {
6112 sessionState *session = *iter;
6113 if(session->mCallerID == participant_id)
6114 {
6115 result = session;
6116 break;
6117 }
6118 }
6119
6120 return result;
6121}
4009 6122
4010 participantState *participant = findParticipantByID(id); 6123LLVoiceClient::sessionState *LLVoiceClient::addSession(const std::string &uri, const std::string &handle)
4011 if(participant) 6124{
6125 sessionState *result = NULL;
6126
6127 if(handle.empty())
4012 { 6128 {
4013 result = participant->mGroupID; 6129 // No handle supplied.
6130 // Check whether there's already a session with this URI
6131 for(sessionIterator iter = sessionsBegin(); iter != sessionsEnd(); iter++)
6132 {
6133 sessionState *s = *iter;
6134 if((s->mSIPURI == uri) || (s->mAlternateSIPURI == uri))
6135 {
6136 // TODO: I need to think about this logic... it's possible that this case should raise an internal error.
6137 result = s;
6138 break;
6139 }
6140 }
6141 }
6142 else // (!handle.empty())
6143 {
6144 // Check for an existing session with this handle
6145 sessionMap::iterator iter = mSessionsByHandle.find(&handle);
6146
6147 if(iter != mSessionsByHandle.end())
6148 {
6149 result = iter->second;
6150 }
6151 }
6152
6153 if(!result)
6154 {
6155 // No existing session found.
6156
6157 LL_DEBUGS("Voice") << "adding new session: handle " << handle << " URI " << uri << LL_ENDL;
6158 result = new sessionState();
6159 result->mSIPURI = uri;
6160 result->mHandle = handle;
6161
6162 mSessions.insert(result);
6163
6164 if(!result->mHandle.empty())
6165 {
6166 mSessionsByHandle.insert(sessionMap::value_type(&(result->mHandle), result));
6167 }
6168 }
6169 else
6170 {
6171 // Found an existing session
6172
6173 if(uri != result->mSIPURI)
6174 {
6175 // TODO: Should this be an internal error?
6176 LL_DEBUGS("Voice") << "changing uri from " << result->mSIPURI << " to " << uri << LL_ENDL;
6177 setSessionURI(result, uri);
6178 }
6179
6180 if(handle != result->mHandle)
6181 {
6182 // TODO: Should this be an internal error?
6183 LL_DEBUGS("Voice") << "changing handle from " << result->mHandle << " to " << handle << LL_ENDL;
6184 setSessionHandle(result, handle);
6185 }
6186
6187 LL_DEBUGS("Voice") << "returning existing session: handle " << handle << " URI " << uri << LL_ENDL;
6188 }
6189
6190 verifySessionState();
6191
6192 return result;
6193}
6194
6195void LLVoiceClient::setSessionHandle(sessionState *session, const std::string &handle)
6196{
6197 // Have to remove the session from the handle-indexed map before changing the handle, or things will break badly.
6198
6199 if(!session->mHandle.empty())
6200 {
6201 // Remove session from the map if it should have been there.
6202 sessionMap::iterator iter = mSessionsByHandle.find(&(session->mHandle));
6203 if(iter != mSessionsByHandle.end())
6204 {
6205 if(iter->second != session)
6206 {
6207 LL_ERRS("Voice") << "Internal error: session mismatch!" << LL_ENDL;
6208 }
6209
6210 mSessionsByHandle.erase(iter);
6211 }
6212 else
6213 {
6214 LL_ERRS("Voice") << "Internal error: session handle not found in map!" << LL_ENDL;
6215 }
6216 }
6217
6218 session->mHandle = handle;
6219
6220 if(!handle.empty())
6221 {
6222 mSessionsByHandle.insert(sessionMap::value_type(&(session->mHandle), session));
6223 }
6224
6225 verifySessionState();
6226}
6227
6228void LLVoiceClient::setSessionURI(sessionState *session, const std::string &uri)
6229{
6230 // There used to be a map of session URIs to sessions, which made this complex....
6231 session->mSIPURI = uri;
6232
6233 verifySessionState();
6234}
6235
6236void LLVoiceClient::deleteSession(sessionState *session)
6237{
6238 // Remove the session from the handle map
6239 if(!session->mHandle.empty())
6240 {
6241 sessionMap::iterator iter = mSessionsByHandle.find(&(session->mHandle));
6242 if(iter != mSessionsByHandle.end())
6243 {
6244 if(iter->second != session)
6245 {
6246 LL_ERRS("Voice") << "Internal error: session mismatch" << LL_ENDL
6247 }
6248 mSessionsByHandle.erase(iter);
6249 }
6250 }
6251
6252 // Remove the session from the URI map
6253 mSessions.erase(session);
6254
6255 // At this point, the session should be unhooked from all lists and all state should be consistent.
6256 verifySessionState();
6257
6258 // If this is the current audio session, clean up the pointer which will soon be dangling.
6259 if(mAudioSession == session)
6260 {
6261 mAudioSession = NULL;
6262 mAudioSessionChanged = true;
6263 }
6264
6265 // ditto for the next audio session
6266 if(mNextAudioSession == session)
6267 {
6268 mNextAudioSession = NULL;
6269 }
6270
6271 // delete the session
6272 delete session;
6273}
6274
6275void LLVoiceClient::deleteAllSessions()
6276{
6277 LL_DEBUGS("Voice") << "called" << LL_ENDL;
6278
6279 while(!mSessions.empty())
6280 {
6281 deleteSession(*(sessionsBegin()));
6282 }
6283
6284 if(!mSessionsByHandle.empty())
6285 {
6286 LL_ERRS("Voice") << "Internal error: empty session map, non-empty handle map" << LL_ENDL
6287 }
6288}
6289
6290void LLVoiceClient::verifySessionState(void)
6291{
6292 // This is mostly intended for debugging problems with session state management.
6293 LL_DEBUGS("Voice") << "Total session count: " << mSessions.size() << " , session handle map size: " << mSessionsByHandle.size() << LL_ENDL;
6294
6295 for(sessionIterator iter = sessionsBegin(); iter != sessionsEnd(); iter++)
6296 {
6297 sessionState *session = *iter;
6298
6299 LL_DEBUGS("Voice") << "session " << session << ": handle " << session->mHandle << ", URI " << session->mSIPURI << LL_ENDL;
6300
6301 if(!session->mHandle.empty())
6302 {
6303 // every session with a non-empty handle needs to be in the handle map
6304 sessionMap::iterator i2 = mSessionsByHandle.find(&(session->mHandle));
6305 if(i2 == mSessionsByHandle.end())
6306 {
6307 LL_ERRS("Voice") << "internal error (handle " << session->mHandle << " not found in session map)" << LL_ENDL;
6308 }
6309 else
6310 {
6311 if(i2->second != session)
6312 {
6313 LL_ERRS("Voice") << "internal error (handle " << session->mHandle << " in session map points to another session)" << LL_ENDL;
6314 }
6315 }
6316 }
6317 }
6318
6319 // check that every entry in the handle map points to a valid session in the session set
6320 for(sessionMap::iterator iter = mSessionsByHandle.begin(); iter != mSessionsByHandle.end(); iter++)
6321 {
6322 sessionState *session = iter->second;
6323 sessionIterator i2 = mSessions.find(session);
6324 if(i2 == mSessions.end())
6325 {
6326 LL_ERRS("Voice") << "internal error (session for handle " << session->mHandle << " not found in session map)" << LL_ENDL;
6327 }
6328 else
6329 {
6330 if(session->mHandle != (*i2)->mHandle)
6331 {
6332 LL_ERRS("Voice") << "internal error (session for handle " << session->mHandle << " points to session with different handle " << (*i2)->mHandle << ")" << LL_ENDL;
6333 }
6334 }
6335 }
6336}
6337
6338LLVoiceClient::buddyListEntry::buddyListEntry(const std::string &uri) :
6339 mURI(uri)
6340{
6341 mOnlineSL = false;
6342 mOnlineSLim = false;
6343 mCanSeeMeOnline = true;
6344 mHasBlockListEntry = false;
6345 mHasAutoAcceptListEntry = false;
6346 mNameResolved = false;
6347 mInVivoxBuddies = false;
6348 mInSLFriends = false;
6349 mNeedsNameUpdate = false;
6350}
6351
6352void LLVoiceClient::processBuddyListEntry(const std::string &uri, const std::string &displayName)
6353{
6354 buddyListEntry *buddy = addBuddy(uri, displayName);
6355 buddy->mInVivoxBuddies = true;
6356}
6357
6358LLVoiceClient::buddyListEntry *LLVoiceClient::addBuddy(const std::string &uri)
6359{
6360 std::string empty;
6361 buddyListEntry *buddy = addBuddy(uri, empty);
6362 if(buddy->mDisplayName.empty())
6363 {
6364 buddy->mNameResolved = false;
6365 }
6366 return buddy;
6367}
6368
6369LLVoiceClient::buddyListEntry *LLVoiceClient::addBuddy(const std::string &uri, const std::string &displayName)
6370{
6371 buddyListEntry *result = NULL;
6372 buddyListMap::iterator iter = mBuddyListMap.find(&uri);
6373
6374 if(iter != mBuddyListMap.end())
6375 {
6376 // Found a matching buddy already in the map.
6377 LL_DEBUGS("Voice") << "adding existing buddy " << uri << LL_ENDL;
6378 result = iter->second;
6379 }
6380
6381 if(!result)
6382 {
6383 // participant isn't already in one list or the other.
6384 LL_DEBUGS("Voice") << "adding new buddy " << uri << LL_ENDL;
6385 result = new buddyListEntry(uri);
6386 result->mDisplayName = displayName;
6387
6388 if(IDFromName(uri, result->mUUID))
6389 {
6390 // Extracted UUID from name successfully.
6391 }
6392 else
6393 {
6394 LL_DEBUGS("Voice") << "Couldn't find ID for buddy " << uri << " (\"" << displayName << "\")" << LL_ENDL;
6395 }
6396
6397 mBuddyListMap.insert(buddyListMap::value_type(&(result->mURI), result));
4014 } 6398 }
4015 6399
4016 return result; 6400 return result;
4017} 6401}
4018 6402
4019BOOL LLVoiceClient::getAreaVoiceDisabled() 6403LLVoiceClient::buddyListEntry *LLVoiceClient::findBuddy(const std::string &uri)
4020{ 6404{
4021 return mAreaVoiceDisabled; 6405 buddyListEntry *result = NULL;
6406 buddyListMap::iterator iter = mBuddyListMap.find(&uri);
6407 if(iter != mBuddyListMap.end())
6408 {
6409 result = iter->second;
6410 }
6411
6412 return result;
6413}
6414
6415LLVoiceClient::buddyListEntry *LLVoiceClient::findBuddy(const LLUUID &id)
6416{
6417 buddyListEntry *result = NULL;
6418 buddyListMap::iterator iter;
6419
6420 for(iter = mBuddyListMap.begin(); iter != mBuddyListMap.end(); iter++)
6421 {
6422 if(iter->second->mUUID == id)
6423 {
6424 result = iter->second;
6425 break;
6426 }
6427 }
6428
6429 return result;
6430}
6431
6432LLVoiceClient::buddyListEntry *LLVoiceClient::findBuddyByDisplayName(const std::string &name)
6433{
6434 buddyListEntry *result = NULL;
6435 buddyListMap::iterator iter;
6436
6437 for(iter = mBuddyListMap.begin(); iter != mBuddyListMap.end(); iter++)
6438 {
6439 if(iter->second->mDisplayName == name)
6440 {
6441 result = iter->second;
6442 break;
6443 }
6444 }
6445
6446 return result;
6447}
6448
6449void LLVoiceClient::deleteBuddy(const std::string &uri)
6450{
6451 buddyListMap::iterator iter = mBuddyListMap.find(&uri);
6452 if(iter != mBuddyListMap.end())
6453 {
6454 LL_DEBUGS("Voice") << "deleting buddy " << uri << LL_ENDL;
6455 buddyListEntry *buddy = iter->second;
6456 mBuddyListMap.erase(iter);
6457 delete buddy;
6458 }
6459 else
6460 {
6461 LL_DEBUGS("Voice") << "attempt to delete nonexistent buddy " << uri << LL_ENDL;
6462 }
6463
6464}
6465
6466void LLVoiceClient::deleteAllBuddies(void)
6467{
6468 while(!mBuddyListMap.empty())
6469 {
6470 deleteBuddy(*(mBuddyListMap.begin()->first));
6471 }
6472
6473 // Don't want to correlate with friends list when we've emptied the buddy list.
6474 mBuddyListMapPopulated = false;
6475
6476 // Don't want to correlate with friends list when we've reset the block rules.
6477 mBlockRulesListReceived = false;
6478 mAutoAcceptRulesListReceived = false;
6479}
6480
6481void LLVoiceClient::deleteAllBlockRules(void)
6482{
6483 // Clear the block list entry flags from all local buddy list entries
6484 buddyListMap::iterator buddy_it;
6485 for(buddy_it = mBuddyListMap.begin(); buddy_it != mBuddyListMap.end(); buddy_it++)
6486 {
6487 buddy_it->second->mHasBlockListEntry = false;
6488 }
6489}
6490
6491void LLVoiceClient::deleteAllAutoAcceptRules(void)
6492{
6493 // Clear the auto-accept list entry flags from all local buddy list entries
6494 buddyListMap::iterator buddy_it;
6495 for(buddy_it = mBuddyListMap.begin(); buddy_it != mBuddyListMap.end(); buddy_it++)
6496 {
6497 buddy_it->second->mHasAutoAcceptListEntry = false;
6498 }
6499}
6500
6501void LLVoiceClient::addBlockRule(const std::string &blockMask, const std::string &presenceOnly)
6502{
6503 buddyListEntry *buddy = NULL;
6504
6505 // blockMask is the SIP URI of a friends list entry
6506 buddyListMap::iterator iter = mBuddyListMap.find(&blockMask);
6507 if(iter != mBuddyListMap.end())
6508 {
6509 LL_DEBUGS("Voice") << "block list entry for " << blockMask << LL_ENDL;
6510 buddy = iter->second;
6511 }
6512
6513 if(buddy == NULL)
6514 {
6515 LL_DEBUGS("Voice") << "block list entry for unknown buddy " << blockMask << LL_ENDL;
6516 buddy = addBuddy(blockMask);
6517 }
6518
6519 if(buddy != NULL)
6520 {
6521 buddy->mHasBlockListEntry = true;
6522 }
6523}
6524
6525void LLVoiceClient::addAutoAcceptRule(const std::string &autoAcceptMask, const std::string &autoAddAsBuddy)
6526{
6527 buddyListEntry *buddy = NULL;
6528
6529 // blockMask is the SIP URI of a friends list entry
6530 buddyListMap::iterator iter = mBuddyListMap.find(&autoAcceptMask);
6531 if(iter != mBuddyListMap.end())
6532 {
6533 LL_DEBUGS("Voice") << "auto-accept list entry for " << autoAcceptMask << LL_ENDL;
6534 buddy = iter->second;
6535 }
6536
6537 if(buddy == NULL)
6538 {
6539 LL_DEBUGS("Voice") << "auto-accept list entry for unknown buddy " << autoAcceptMask << LL_ENDL;
6540 buddy = addBuddy(autoAcceptMask);
6541 }
6542
6543 if(buddy != NULL)
6544 {
6545 buddy->mHasAutoAcceptListEntry = true;
6546 }
6547}
6548
6549void LLVoiceClient::accountListBlockRulesResponse(int statusCode, const std::string &statusString)
6550{
6551 // Block list entries were updated via addBlockRule() during parsing. Just flag that we're done.
6552 mBlockRulesListReceived = true;
6553}
6554
6555void LLVoiceClient::accountListAutoAcceptRulesResponse(int statusCode, const std::string &statusString)
6556{
6557 // Block list entries were updated via addBlockRule() during parsing. Just flag that we're done.
6558 mAutoAcceptRulesListReceived = true;
4022} 6559}
4023 6560
4024void LLVoiceClient::addObserver(LLVoiceClientParticipantObserver* observer) 6561void LLVoiceClient::addObserver(LLVoiceClientParticipantObserver* observer)
4025{ 6562{
4026 mObservers.insert(observer); 6563 mParticipantObservers.insert(observer);
4027} 6564}
4028 6565
4029void LLVoiceClient::removeObserver(LLVoiceClientParticipantObserver* observer) 6566void LLVoiceClient::removeObserver(LLVoiceClientParticipantObserver* observer)
4030{ 6567{
4031 mObservers.erase(observer); 6568 mParticipantObservers.erase(observer);
4032} 6569}
4033 6570
4034void LLVoiceClient::notifyObservers() 6571void LLVoiceClient::notifyParticipantObservers()
4035{ 6572{
4036 for (observer_set_t::iterator it = mObservers.begin(); 6573 for (observer_set_t::iterator it = mParticipantObservers.begin();
4037 it != mObservers.end(); 6574 it != mParticipantObservers.end();
4038 ) 6575 )
4039 { 6576 {
4040 LLVoiceClientParticipantObserver* observer = *it; 6577 LLVoiceClientParticipantObserver* observer = *it;
4041 observer->onChange(); 6578 observer->onChange();
4042 // In case onChange() deleted an entry. 6579 // In case onChange() deleted an entry.
4043 it = mObservers.upper_bound(observer); 6580 it = mParticipantObservers.upper_bound(observer);
4044 } 6581 }
4045} 6582}
4046 6583
4047void LLVoiceClient::addStatusObserver(LLVoiceClientStatusObserver* observer) 6584void LLVoiceClient::addObserver(LLVoiceClientStatusObserver* observer)
4048{ 6585{
4049 mStatusObservers.insert(observer); 6586 mStatusObservers.insert(observer);
4050} 6587}
4051 6588
4052void LLVoiceClient::removeStatusObserver(LLVoiceClientStatusObserver* observer) 6589void LLVoiceClient::removeObserver(LLVoiceClientStatusObserver* observer)
4053{ 6590{
4054 mStatusObservers.erase(observer); 6591 mStatusObservers.erase(observer);
4055} 6592}
4056 6593
4057void LLVoiceClient::notifyStatusObservers(LLVoiceClientStatusObserver::EStatusType status) 6594void LLVoiceClient::notifyStatusObservers(LLVoiceClientStatusObserver::EStatusType status)
4058{ 6595{
4059 if(status == LLVoiceClientStatusObserver::ERROR_UNKNOWN) 6596 if(mAudioSession)
4060 { 6597 {
4061 switch(mVivoxErrorStatusCode) 6598 if(status == LLVoiceClientStatusObserver::ERROR_UNKNOWN)
4062 { 6599 {
4063 case 20713: status = LLVoiceClientStatusObserver::ERROR_CHANNEL_FULL; break; 6600 switch(mAudioSession->mErrorStatusCode)
4064 case 20714: status = LLVoiceClientStatusObserver::ERROR_CHANNEL_LOCKED; break; 6601 {
4065 case 20715: 6602 case 20713: status = LLVoiceClientStatusObserver::ERROR_CHANNEL_FULL; break;
4066 //invalid channel, we may be using a set of poorly cached 6603 case 20714: status = LLVoiceClientStatusObserver::ERROR_CHANNEL_LOCKED; break;
4067 //info 6604 case 20715:
4068 status = LLVoiceClientStatusObserver::ERROR_NOT_AVAILABLE; 6605 //invalid channel, we may be using a set of poorly cached
4069 break; 6606 //info
4070 case 1009: 6607 status = LLVoiceClientStatusObserver::ERROR_NOT_AVAILABLE;
4071 //invalid username and password 6608 break;
4072 status = LLVoiceClientStatusObserver::ERROR_NOT_AVAILABLE; 6609 case 1009:
4073 break; 6610 //invalid username and password
4074 } 6611 status = LLVoiceClientStatusObserver::ERROR_NOT_AVAILABLE;
4075 6612 break;
4076 // Reset the error code to make sure it won't be reused later by accident. 6613 }
4077 mVivoxErrorStatusCode = 0;
4078 }
4079
4080 if (status == LLVoiceClientStatusObserver::STATUS_LEFT_CHANNEL
4081 //NOT_FOUND || TEMPORARILY_UNAVAILABLE || REQUEST_TIMEOUT
4082 && (mVivoxErrorStatusCode == 404 || mVivoxErrorStatusCode == 480 || mVivoxErrorStatusCode == 408))
4083 {
4084 // call failed because other user was not available
4085 // treat this as an error case
4086 status = LLVoiceClientStatusObserver::ERROR_NOT_AVAILABLE;
4087 6614
4088 // Reset the error code to make sure it won't be reused later by accident. 6615 // Reset the error code to make sure it won't be reused later by accident.
4089 mVivoxErrorStatusCode = 0; 6616 mAudioSession->mErrorStatusCode = 0;
6617 }
6618 else if(status == LLVoiceClientStatusObserver::STATUS_LEFT_CHANNEL)
6619 {
6620 switch(mAudioSession->mErrorStatusCode)
6621 {
6622 case 404: // NOT_FOUND
6623 case 480: // TEMPORARILY_UNAVAILABLE
6624 case 408: // REQUEST_TIMEOUT
6625 // call failed because other user was not available
6626 // treat this as an error case
6627 status = LLVoiceClientStatusObserver::ERROR_NOT_AVAILABLE;
6628
6629 // Reset the error code to make sure it won't be reused later by accident.
6630 mAudioSession->mErrorStatusCode = 0;
6631 break;
6632 }
6633 }
4090 } 6634 }
4091 6635
4092 LL_DEBUGS("Voice") << " " << LLVoiceClientStatusObserver::status2string(status) << ", session URI " << mSessionURI << LL_ENDL; 6636 LL_DEBUGS("Voice")
6637 << " " << LLVoiceClientStatusObserver::status2string(status)
6638 << ", session URI " << getAudioSessionURI()
6639 << (inSpatialChannel()?", proximal is true":", proximal is false")
6640 << LL_ENDL;
4093 6641
4094 for (status_observer_set_t::iterator it = mStatusObservers.begin(); 6642 for (status_observer_set_t::iterator it = mStatusObservers.begin();
4095 it != mStatusObservers.end(); 6643 it != mStatusObservers.end();
4096 ) 6644 )
4097 { 6645 {
4098 LLVoiceClientStatusObserver* observer = *it; 6646 LLVoiceClientStatusObserver* observer = *it;
4099 observer->onChange(status, mSessionURI, !mNonSpatialChannel); 6647 observer->onChange(status, getAudioSessionURI(), inSpatialChannel());
4100 // In case onError() deleted an entry. 6648 // In case onError() deleted an entry.
4101 it = mStatusObservers.upper_bound(observer); 6649 it = mStatusObservers.upper_bound(observer);
4102 } 6650 }
4103 6651
4104} 6652}
4105 6653
6654void LLVoiceClient::addObserver(LLFriendObserver* observer)
6655{
6656 mFriendObservers.insert(observer);
6657}
6658
6659void LLVoiceClient::removeObserver(LLFriendObserver* observer)
6660{
6661 mFriendObservers.erase(observer);
6662}
6663
6664void LLVoiceClient::notifyFriendObservers()
6665{
6666 for (friend_observer_set_t::iterator it = mFriendObservers.begin();
6667 it != mFriendObservers.end();
6668 )
6669 {
6670 LLFriendObserver* observer = *it;
6671 it++;
6672 // The only friend-related thing we notify on is online/offline transitions.
6673 observer->changed(LLFriendObserver::ONLINE);
6674 }
6675}
6676
6677void LLVoiceClient::lookupName(const LLUUID &id)
6678{
6679 gCacheName->getName(id, onAvatarNameLookup);
6680}
6681
4106//static 6682//static
4107// void LLVoiceClient::onAvatarNameLookup(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group, void* user_data) 6683void LLVoiceClient::onAvatarNameLookup(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group, void* user_data)
4108// { 6684{
4109// participantState* statep = gVoiceClient->findParticipantByID(id); 6685 if(gVoiceClient)
6686 {
6687 std::string name = llformat("%s %s", first.c_str(), last.c_str());
6688 gVoiceClient->avatarNameResolved(id, name);
6689 }
6690}
4110 6691
4111// if (statep) 6692void LLVoiceClient::avatarNameResolved(const LLUUID &id, const std::string &name)
4112// { 6693{
4113// statep->mDisplayName = first + " " + last; 6694 // If the avatar whose name just resolved is on our friends list, resync the friends list.
4114// } 6695 if(LLAvatarTracker::instance().getBuddyInfo(id) != NULL)
6696 {
6697 mFriendsListDirty = true;
6698 }
4115 6699
4116// gVoiceClient->notifyObservers(); 6700 // Iterate over all sessions.
4117// } 6701 for(sessionIterator iter = sessionsBegin(); iter != sessionsEnd(); iter++)
6702 {
6703 sessionState *session = *iter;
6704
6705 // Check for this user as a participant in this session
6706 participantState *participant = session->findParticipantByID(id);
6707 if(participant)
6708 {
6709 // Found -- fill in the name
6710 participant->mAccountName = name;
6711 // and post a "participants updated" message to listeners later.
6712 session->mParticipantsChanged = true;
6713 }
6714
6715 // Check whether this is a p2p session whose caller name just resolved
6716 if(session->mCallerID == id)
6717 {
6718 // this session's "caller ID" just resolved. Fill in the name.
6719 session->mName = name;
6720 if(session->mTextInvitePending)
6721 {
6722 session->mTextInvitePending = false;
6723
6724 // We don't need to call gIMMgr->addP2PSession() here. The first incoming message will create the panel.
6725 }
6726 if(session->mVoiceInvitePending)
6727 {
6728 session->mVoiceInvitePending = false;
6729
6730 gIMMgr->inviteToSession(
6731 session->mIMSessionID,
6732 session->mName,
6733 session->mCallerID,
6734 session->mName,
6735 IM_SESSION_P2P_INVITE,
6736 LLIMMgr::INVITATION_TYPE_VOICE,
6737 session->mHandle,
6738 session->mSIPURI);
6739 }
6740
6741 }
6742 }
6743}
4118 6744
4119class LLViewerParcelVoiceInfo : public LLHTTPNode 6745class LLViewerParcelVoiceInfo : public LLHTTPNode
4120{ 6746{
diff --git a/linden/indra/newview/llvoiceclient.h b/linden/indra/newview/llvoiceclient.h
index 2220d59..13dd974 100644
--- a/linden/indra/newview/llvoiceclient.h
+++ b/linden/indra/newview/llvoiceclient.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -41,6 +41,7 @@ class LLVivoxProtocolParser;
41#include "v3math.h" 41#include "v3math.h"
42#include "llframetimer.h" 42#include "llframetimer.h"
43#include "llviewerregion.h" 43#include "llviewerregion.h"
44#include "llcallingcard.h" // for LLFriendObserver
44 45
45class LLVoiceClientParticipantObserver 46class LLVoiceClientParticipantObserver
46{ 47{
@@ -91,41 +92,10 @@ class LLVoiceClient: public LLSingleton<LLVoiceClient>
91 92
92 public: 93 public:
93 94
94 enum serviceType
95 {
96 serviceTypeUnknown, // Unknown, returned if no data on the avatar is available
97 serviceTypeA, // spatialized local chat
98 serviceTypeB, // remote multi-party chat
99 serviceTypeC // one-to-one and small group chat
100 };
101 static F32 OVERDRIVEN_POWER_LEVEL; 95 static F32 OVERDRIVEN_POWER_LEVEL;
102 96
103 void updateSettings(); // call after loading settings and whenever they change 97 void updateSettings(); // call after loading settings and whenever they change
104 98
105 /////////////////////////////
106 // session control messages
107 void connect();
108
109 void connectorCreate();
110 void connectorShutdown();
111
112 void requestVoiceAccountProvision(S32 retries = 3);
113 void userAuthorized(
114 const std::string& firstName,
115 const std::string& lastName,
116 const LLUUID &agentID);
117 void login(const std::string& accountName, const std::string &password);
118 void loginSendMessage();
119 void logout();
120 void logoutSendMessage();
121
122 void channelGetListSendMessage();
123 void sessionCreateSendMessage();
124 void sessionConnectSendMessage();
125 void sessionTerminate();
126 void sessionTerminateSendMessage();
127 void sessionTerminateByHandle(std::string &sessionHandle);
128
129 void getCaptureDevicesSendMessage(); 99 void getCaptureDevicesSendMessage();
130 void getRenderDevicesSendMessage(); 100 void getRenderDevicesSendMessage();
131 101
@@ -170,23 +140,32 @@ class LLVoiceClient: public LLSingleton<LLVoiceClient>
170 140
171 ///////////////////////////// 141 /////////////////////////////
172 // Response/Event handlers 142 // Response/Event handlers
173 void connectorCreateResponse(int statusCode, std::string &statusString, std::string &connectorHandle); 143 void connectorCreateResponse(int statusCode, std::string &statusString, std::string &connectorHandle, std::string &versionID);
174 void loginResponse(int statusCode, std::string &statusString, std::string &accountHandle); 144 void loginResponse(int statusCode, std::string &statusString, std::string &accountHandle, int numberOfAliases);
175 void channelGetListResponse(int statusCode, std::string &statusString); 145 void sessionCreateResponse(std::string &requestId, int statusCode, std::string &statusString, std::string &sessionHandle);
176 void sessionCreateResponse(int statusCode, std::string &statusString, std::string &sessionHandle); 146 void sessionGroupAddSessionResponse(std::string &requestId, int statusCode, std::string &statusString, std::string &sessionHandle);
177 void sessionConnectResponse(int statusCode, std::string &statusString); 147 void sessionConnectResponse(std::string &requestId, int statusCode, std::string &statusString);
178 void sessionTerminateResponse(int statusCode, std::string &statusString);
179 void logoutResponse(int statusCode, std::string &statusString); 148 void logoutResponse(int statusCode, std::string &statusString);
180 void connectorShutdownResponse(int statusCode, std::string &statusString); 149 void connectorShutdownResponse(int statusCode, std::string &statusString);
181 150
182 void loginStateChangeEvent(std::string &accountHandle, int statusCode, std::string &statusString, int state); 151 void accountLoginStateChangeEvent(std::string &accountHandle, int statusCode, std::string &statusString, int state);
183 void sessionNewEvent(std::string &accountHandle, std::string &eventSessionHandle, int state, std::string &nameString, std::string &uriString); 152 void mediaStreamUpdatedEvent(std::string &sessionHandle, std::string &sessionGroupHandle, int statusCode, std::string &statusString, int state, bool incoming);
184 void sessionStateChangeEvent(std::string &uriString, int statusCode, std::string &statusString, std::string &sessionHandle, int state, bool isChannel, std::string &nameString); 153 void textStreamUpdatedEvent(std::string &sessionHandle, std::string &sessionGroupHandle, bool enabled, int state, bool incoming);
185 void participantStateChangeEvent(std::string &uriString, int statusCode, std::string &statusString, int state, std::string &nameString, std::string &displayNameString, int participantType); 154 void sessionAddedEvent(std::string &uriString, std::string &alias, std::string &sessionHandle, std::string &sessionGroupHandle, bool isChannel, bool incoming, std::string &nameString, std::string &applicationString);
186 void participantPropertiesEvent(std::string &uriString, int statusCode, std::string &statusString, bool isLocallyMuted, bool isModeratorMuted, bool isSpeaking, int volume, F32 energy); 155 void sessionGroupAddedEvent(std::string &sessionGroupHandle);
156 void sessionRemovedEvent(std::string &sessionHandle, std::string &sessionGroupHandle);
157 void participantAddedEvent(std::string &sessionHandle, std::string &sessionGroupHandle, std::string &uriString, std::string &alias, std::string &nameString, std::string &displayNameString, int participantType);
158 void participantRemovedEvent(std::string &sessionHandle, std::string &sessionGroupHandle, std::string &uriString, std::string &alias, std::string &nameString);
159 void participantUpdatedEvent(std::string &sessionHandle, std::string &sessionGroupHandle, std::string &uriString, std::string &alias, bool isModeratorMuted, bool isSpeaking, int volume, F32 energy);
187 void auxAudioPropertiesEvent(F32 energy); 160 void auxAudioPropertiesEvent(F32 energy);
188 161 void buddyPresenceEvent(std::string &uriString, std::string &alias, std::string &statusString, std::string &applicationString);
162 void messageEvent(std::string &sessionHandle, std::string &uriString, std::string &alias, std::string &messageHeader, std::string &messageBody, std::string &applicationString);
163 void sessionNotificationEvent(std::string &sessionHandle, std::string &uriString, std::string &notificationType);
164 void subscriptionEvent(std::string &buddyURI, std::string &subscriptionHandle, std::string &alias, std::string &displayName, std::string &applicationString, std::string &subscriptionType);
165
166 void buddyListChanged();
189 void muteListChanged(); 167 void muteListChanged();
168 void updateFriends(U32 mask);
190 169
191 ///////////////////////////// 170 /////////////////////////////
192 // Sending updates of current state 171 // Sending updates of current state
@@ -210,7 +189,6 @@ static void updatePosition(void);
210 void setVoiceVolume(F32 volume); 189 void setVoiceVolume(F32 volume);
211 void setMicGain(F32 volume); 190 void setMicGain(F32 volume);
212 void setUserVolume(const LLUUID& id, F32 volume); // set's volume for specified agent, from 0-1 (where .5 is nominal) 191 void setUserVolume(const LLUUID& id, F32 volume); // set's volume for specified agent, from 0-1 (where .5 is nominal)
213 void setVivoxDebugServerName(std::string &serverName);
214 void setLipSyncEnabled(BOOL enabled); 192 void setLipSyncEnabled(BOOL enabled);
215 BOOL lipSyncEnabled(); 193 BOOL lipSyncEnabled();
216 194
@@ -225,57 +203,261 @@ static void updatePosition(void);
225 BOOL getIsSpeaking(const LLUUID& id); 203 BOOL getIsSpeaking(const LLUUID& id);
226 BOOL getIsModeratorMuted(const LLUUID& id); 204 BOOL getIsModeratorMuted(const LLUUID& id);
227 F32 getCurrentPower(const LLUUID& id); // "power" is related to "amplitude" in a defined way. I'm just not sure what the formula is... 205 F32 getCurrentPower(const LLUUID& id); // "power" is related to "amplitude" in a defined way. I'm just not sure what the formula is...
228 BOOL getPTTPressed(const LLUUID& id); // This is the inverse of the "locally muted" property.
229 BOOL getOnMuteList(const LLUUID& id); 206 BOOL getOnMuteList(const LLUUID& id);
230 F32 getUserVolume(const LLUUID& id); 207 F32 getUserVolume(const LLUUID& id);
231 std::string getDisplayName(const LLUUID& id); 208 std::string getDisplayName(const LLUUID& id);
232 209
233 // MBW -- XXX -- Not sure how to get this data out of the TVC 210 // MBW -- XXX -- Not sure how to get this data out of the TVC
234 BOOL getUsingPTT(const LLUUID& id); 211 BOOL getUsingPTT(const LLUUID& id);
235 serviceType getServiceType(const LLUUID& id); // type of chat the user is involved in (see bHear scope doc for definitions of A/B/C)
236 std::string getGroupID(const LLUUID& id); // group ID if the user is in group chat (empty string if not applicable) 212 std::string getGroupID(const LLUUID& id); // group ID if the user is in group chat (empty string if not applicable)
237 213
238 ///////////////////////////// 214 /////////////////////////////
239 BOOL getAreaVoiceDisabled(); // returns true if the area the avatar is in is speech-disabled. 215 BOOL getAreaVoiceDisabled(); // returns true if the area the avatar is in is speech-disabled.
240 // Use this to determine whether to show a "no speech" icon in the menu bar. 216 // Use this to determine whether to show a "no speech" icon in the menu bar.
217
218 /////////////////////////////
219 // Recording controls
220 void recordingLoopStart(int seconds = 3600, int deltaFramesPerControlFrame = 200);
221 void recordingLoopSave(const std::string& filename);
222 void recordingStop();
223
224 // Playback controls
225 void filePlaybackStart(const std::string& filename);
226 void filePlaybackStop();
227 void filePlaybackSetPaused(bool paused);
228 void filePlaybackSetMode(bool vox = false, float speed = 1.0f);
229
230
231 // This is used by the string-keyed maps below, to avoid storing the string twice.
232 // The 'const std::string *' in the key points to a string actually stored in the object referenced by the map.
233 // The add and delete operations for each map allocate and delete in the right order to avoid dangling references.
234 // The default compare operation would just compare pointers, which is incorrect, so they must use this comparitor instead.
235 struct stringMapComparitor
236 {
237 bool operator()(const std::string* a, const std::string * b) const
238 {
239 return a->compare(*b) < 0;
240 }
241 };
241 242
243 struct uuidMapComparitor
244 {
245 bool operator()(const LLUUID* a, const LLUUID * b) const
246 {
247 return *a < *b;
248 }
249 };
250
242 struct participantState 251 struct participantState
243 { 252 {
244 public: 253 public:
245 participantState(const std::string &uri); 254 participantState(const std::string &uri);
255
256 bool updateMuteState();
257
246 std::string mURI; 258 std::string mURI;
247 std::string mName; 259 LLUUID mAvatarID;
260 std::string mAccountName;
248 std::string mDisplayName; 261 std::string mDisplayName;
249 bool mPTT;
250 bool mIsSpeaking;
251 bool mIsModeratorMuted;
252 LLFrameTimer mSpeakingTimeout; 262 LLFrameTimer mSpeakingTimeout;
253 F32 mLastSpokeTimestamp; 263 F32 mLastSpokeTimestamp;
254 F32 mPower; 264 F32 mPower;
255 int mVolume; 265 int mVolume;
256 serviceType mServiceType;
257 std::string mGroupID; 266 std::string mGroupID;
258 bool mOnMuteList; // true if this avatar is on the user's mute list (and should be muted)
259 int mUserVolume; 267 int mUserVolume;
268 bool mPTT;
269 bool mIsSpeaking;
270 bool mIsModeratorMuted;
271 bool mOnMuteList; // true if this avatar is on the user's mute list (and should be muted)
260 bool mVolumeDirty; // true if this participant needs a volume command sent (either mOnMuteList or mUserVolume has changed) 272 bool mVolumeDirty; // true if this participant needs a volume command sent (either mOnMuteList or mUserVolume has changed)
261 bool mAvatarIDValid; 273 bool mAvatarIDValid;
262 LLUUID mAvatarID; 274 bool mIsSelf;
275 };
276 typedef std::map<const std::string *, participantState*, stringMapComparitor> participantMap;
277
278 typedef std::map<const LLUUID *, participantState*, uuidMapComparitor> participantUUIDMap;
279
280 enum streamState
281 {
282 streamStateUnknown = 0,
283 streamStateIdle = 1,
284 streamStateConnected = 2,
285 streamStateRinging = 3,
263 }; 286 };
264 typedef std::map<std::string, participantState*> participantMap;
265 287
266 participantState *findParticipant(const std::string &uri); 288 struct sessionState
267 participantState *findParticipantByAvatar(LLVOAvatar *avatar); 289 {
290 public:
291 sessionState();
292 ~sessionState();
293
294 participantState *addParticipant(const std::string &uri);
295 // Note: after removeParticipant returns, the participant* that was passed to it will have been deleted.
296 // Take care not to use the pointer again after that.
297 void removeParticipant(participantState *participant);
298 void removeAllParticipants();
299
300 participantState *findParticipant(const std::string &uri);
301 participantState *findParticipantByID(const LLUUID& id);
302
303 std::string mHandle;
304 std::string mGroupHandle;
305 std::string mSIPURI;
306 std::string mAlias;
307 std::string mName;
308 std::string mAlternateSIPURI;
309 std::string mHash; // Channel password
310 std::string mErrorStatusString;
311 std::queue<std::string> mTextMsgQueue;
312
313 LLUUID mIMSessionID;
314 LLUUID mCallerID;
315 int mErrorStatusCode;
316 int mMediaStreamState;
317 int mTextStreamState;
318 bool mCreateInProgress; // True if a Session.Create has been sent for this session and no response has been received yet.
319 bool mMediaConnectInProgress; // True if a Session.MediaConnect has been sent for this session and no response has been received yet.
320 bool mVoiceInvitePending; // True if a voice invite is pending for this session (usually waiting on a name lookup)
321 bool mTextInvitePending; // True if a text invite is pending for this session (usually waiting on a name lookup)
322 bool mSynthesizedCallerID; // True if the caller ID is a hash of the SIP URI -- this means we shouldn't do a name lookup.
323 bool mIsChannel; // True for both group and spatial channels (false for p2p, PSTN)
324 bool mIsSpatial; // True for spatial channels
325 bool mIsP2P;
326 bool mIncoming;
327 bool mVoiceEnabled;
328 bool mReconnect; // Whether we should try to reconnect to this session if it's dropped
329 // Set to true when the mute state of someone in the participant list changes.
330 // The code will have to walk the list to find the changed participant(s).
331 bool mVolumeDirty;
332
333 bool mParticipantsChanged;
334 participantMap mParticipantsByURI;
335 participantUUIDMap mParticipantsByUUID;
336 };
337
268 participantState *findParticipantByID(const LLUUID& id); 338 participantState *findParticipantByID(const LLUUID& id);
269
270 participantMap *getParticipantList(void); 339 participantMap *getParticipantList(void);
340
341 typedef std::map<const std::string*, sessionState*, stringMapComparitor> sessionMap;
342 typedef std::set<sessionState*> sessionSet;
343
344 typedef sessionSet::iterator sessionIterator;
345 sessionIterator sessionsBegin(void);
346 sessionIterator sessionsEnd(void);
347
348 sessionState *findSession(const std::string &handle);
349 sessionState *findSessionBeingCreatedByURI(const std::string &uri);
350 sessionState *findSession(const LLUUID &participant_id);
351 sessionState *findSessionByCreateID(const std::string &create_id);
352
353 sessionState *addSession(const std::string &uri, const std::string &handle = LLStringUtil::null);
354 void setSessionHandle(sessionState *session, const std::string &handle = LLStringUtil::null);
355 void setSessionURI(sessionState *session, const std::string &uri);
356 void deleteSession(sessionState *session);
357 void deleteAllSessions(void);
358
359 void verifySessionState(void);
360
361 void joinedAudioSession(sessionState *session);
362 void leftAudioSession(sessionState *session);
363
364 // This is called in several places where the session _may_ need to be deleted.
365 // It contains logic for whether to delete the session or keep it around.
366 void reapSession(sessionState *session);
367
368 // Returns true if the session seems to indicate we've moved to a region on a different voice server
369 bool sessionNeedsRelog(sessionState *session);
370
371 struct buddyListEntry
372 {
373 buddyListEntry(const std::string &uri);
374 std::string mURI;
375 std::string mDisplayName;
376 LLUUID mUUID;
377 bool mOnlineSL;
378 bool mOnlineSLim;
379 bool mCanSeeMeOnline;
380 bool mHasBlockListEntry;
381 bool mHasAutoAcceptListEntry;
382 bool mNameResolved;
383 bool mInSLFriends;
384 bool mInVivoxBuddies;
385 bool mNeedsNameUpdate;
386 };
387
388 typedef std::map<const std::string*, buddyListEntry*, stringMapComparitor> buddyListMap;
389
390 // This should be called when parsing a buddy list entry sent by SLVoice.
391 void processBuddyListEntry(const std::string &uri, const std::string &displayName);
392
393 buddyListEntry *addBuddy(const std::string &uri);
394 buddyListEntry *addBuddy(const std::string &uri, const std::string &displayName);
395 buddyListEntry *findBuddy(const std::string &uri);
396 buddyListEntry *findBuddy(const LLUUID &id);
397 buddyListEntry *findBuddyByDisplayName(const std::string &name);
398 void deleteBuddy(const std::string &uri);
399 void deleteAllBuddies(void);
400
401 void deleteAllBlockRules(void);
402 void addBlockRule(const std::string &blockMask, const std::string &presenceOnly);
403 void deleteAllAutoAcceptRules(void);
404 void addAutoAcceptRule(const std::string &autoAcceptMask, const std::string &autoAddAsBuddy);
405 void accountListBlockRulesResponse(int statusCode, const std::string &statusString);
406 void accountListAutoAcceptRulesResponse(int statusCode, const std::string &statusString);
407
408 /////////////////////////////
409 // session control messages
410 void connectorCreate();
411 void connectorShutdown();
271 412
413 void requestVoiceAccountProvision(S32 retries = 3);
414 void userAuthorized(
415 const std::string& firstName,
416 const std::string& lastName,
417 const LLUUID &agentID);
418 void login(
419 const std::string& account_name,
420 const std::string& password,
421 const std::string& voice_sip_uri_hostname,
422 const std::string& voice_account_server_uri);
423 void loginSendMessage();
424 void logout();
425 void logoutSendMessage();
426
427 void accountListBlockRulesSendMessage();
428 void accountListAutoAcceptRulesSendMessage();
429
430 void sessionGroupCreateSendMessage();
431 void sessionCreateSendMessage(sessionState *session, bool startAudio = true, bool startText = false);
432 void sessionGroupAddSessionSendMessage(sessionState *session, bool startAudio = true, bool startText = false);
433 void sessionMediaConnectSendMessage(sessionState *session); // just joins the audio session
434 void sessionTextConnectSendMessage(sessionState *session); // just joins the text session
435 void sessionTerminateSendMessage(sessionState *session);
436 void sessionMediaDisconnectSendMessage(sessionState *session);
437 void sessionTextDisconnectSendMessage(sessionState *session);
438
439 // Pokes the state machine to leave the audio session next time around.
440 void sessionTerminate();
441
442 // Pokes the state machine to shut down the connector and restart it.
443 void requestRelog();
444
445 // Does the actual work to get out of the audio session
446 void leaveAudioSession();
447
272 void addObserver(LLVoiceClientParticipantObserver* observer); 448 void addObserver(LLVoiceClientParticipantObserver* observer);
273 void removeObserver(LLVoiceClientParticipantObserver* observer); 449 void removeObserver(LLVoiceClientParticipantObserver* observer);
274 450
275 void addStatusObserver(LLVoiceClientStatusObserver* observer); 451 void addObserver(LLVoiceClientStatusObserver* observer);
276 void removeStatusObserver(LLVoiceClientStatusObserver* observer); 452 void removeObserver(LLVoiceClientStatusObserver* observer);
453
454 void addObserver(LLFriendObserver* observer);
455 void removeObserver(LLFriendObserver* observer);
456
457 void lookupName(const LLUUID &id);
458 static void onAvatarNameLookup(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group, void* user_data);
459 void avatarNameResolved(const LLUUID &id, const std::string &name);
277 460
278// static void onAvatarNameLookup(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group, void* user_data);
279 typedef std::vector<std::string> deviceList; 461 typedef std::vector<std::string> deviceList;
280 462
281 deviceList *getCaptureDevices(); 463 deviceList *getCaptureDevices();
@@ -287,8 +469,16 @@ static void updatePosition(void);
287 void setSpatialChannel( 469 void setSpatialChannel(
288 const std::string &uri, 470 const std::string &uri,
289 const std::string &credentials); 471 const std::string &credentials);
290 void callUser(LLUUID &uuid); 472 // start a voice session with the specified user
291 void answerInvite(std::string &sessionHandle, LLUUID& other_user_id); 473 void callUser(const LLUUID &uuid);
474
475 // Send a text message to the specified user, initiating the session if necessary.
476 bool sendTextMessage(const LLUUID& participant_id, const std::string& message);
477
478 // close any existing text IM session with the specified user
479 void endUserIMSession(const LLUUID &uuid);
480
481 bool answerInvite(std::string &sessionHandle);
292 void declineInvite(std::string &sessionHandle); 482 void declineInvite(std::string &sessionHandle);
293 void leaveNonSpatialChannel(); 483 void leaveNonSpatialChannel();
294 484
@@ -301,33 +491,37 @@ static void updatePosition(void);
301 bool inProximalChannel(); 491 bool inProximalChannel();
302 492
303 std::string sipURIFromID(const LLUUID &id); 493 std::string sipURIFromID(const LLUUID &id);
304 494
495 // Returns true if the indicated user is online via SIP presence according to SLVoice.
496 // Note that we only get SIP presence data for other users that are in our vivox buddy list.
497 bool isOnlineSIP(const LLUUID &id);
498
305 private: 499 private:
306 500
307 // internal state for a simple state machine. This is used to deal with the asynchronous nature of some of the messages. 501 // internal state for a simple state machine. This is used to deal with the asynchronous nature of some of the messages.
308 // Note: if you change this list, please make corresponding changes to LLVoiceClient::state2string(). 502 // Note: if you change this list, please make corresponding changes to LLVoiceClient::state2string().
309 enum state 503 enum state
310 { 504 {
505 stateDisableCleanup,
311 stateDisabled, // Voice is turned off. 506 stateDisabled, // Voice is turned off.
312 stateStart, // Class is initialized, socket is created 507 stateStart, // Class is initialized, socket is created
313 stateDaemonLaunched, // Daemon has been launched 508 stateDaemonLaunched, // Daemon has been launched
314 stateConnecting, // connect() call has been issued 509 stateConnecting, // connect() call has been issued
510 stateConnected, // connection to the daemon has been made, send some initial setup commands.
315 stateIdle, // socket is connected, ready for messaging 511 stateIdle, // socket is connected, ready for messaging
512 stateMicTuningStart,
513 stateMicTuningRunning,
514 stateMicTuningStop,
316 stateConnectorStart, // connector needs to be started 515 stateConnectorStart, // connector needs to be started
317 stateConnectorStarting, // waiting for connector handle 516 stateConnectorStarting, // waiting for connector handle
318 stateConnectorStarted, // connector handle received 517 stateConnectorStarted, // connector handle received
319 stateMicTuningNoLogin, // mic tuning before login
320 stateLoginRetry, // need to retry login (failed due to changing password) 518 stateLoginRetry, // need to retry login (failed due to changing password)
321 stateLoginRetryWait, // waiting for retry timer 519 stateLoginRetryWait, // waiting for retry timer
322 stateNeedsLogin, // send login request 520 stateNeedsLogin, // send login request
323 stateLoggingIn, // waiting for account handle 521 stateLoggingIn, // waiting for account handle
324 stateLoggedIn, // account handle received 522 stateLoggedIn, // account handle received
523 stateCreatingSessionGroup, // Creating the main session group
325 stateNoChannel, // 524 stateNoChannel, //
326 stateMicTuningStart,
327 stateMicTuningRunning,
328 stateMicTuningStop,
329 stateSessionCreate, // need to send Session.Create command
330 stateSessionConnect, // need to send Session.Connect command
331 stateJoiningSession, // waiting for session handle 525 stateJoiningSession, // waiting for session handle
332 stateSessionJoined, // session handle received 526 stateSessionJoined, // session handle received
333 stateRunning, // in session, steady state 527 stateRunning, // in session, steady state
@@ -354,7 +548,7 @@ static void updatePosition(void);
354 548
355 state mState; 549 state mState;
356 bool mSessionTerminateRequested; 550 bool mSessionTerminateRequested;
357 bool mNonSpatialChannel; 551 bool mRelogRequested;
358 552
359 void setState(state inState); 553 void setState(state inState);
360 state getState(void) { return mState; }; 554 state getState(void) { return mState; };
@@ -377,18 +571,7 @@ static void updatePosition(void);
377 std::string mAccountDisplayName; 571 std::string mAccountDisplayName;
378 std::string mAccountFirstName; 572 std::string mAccountFirstName;
379 std::string mAccountLastName; 573 std::string mAccountLastName;
380 574
381 std::string mNextP2PSessionURI; // URI of the P2P session to join next
382 std::string mNextSessionURI; // URI of the session to join next
383 std::string mNextSessionHandle; // Session handle of the session to join next
384 std::string mNextSessionHash; // Password hash for the session to join next
385 bool mNextSessionSpatial; // Will next session be a spatial chat?
386 bool mNextSessionNoReconnect; // Next session should not auto-reconnect (i.e. user -> user chat)
387 bool mNextSessionResetOnClose; // If this is true, go back to spatial chat when the next session terminates.
388
389 std::string mSessionStateEventHandle; // session handle received in SessionStateChangeEvents
390 std::string mSessionStateEventURI; // session URI received in SessionStateChangeEvents
391
392 bool mTuningMode; 575 bool mTuningMode;
393 float mTuningEnergy; 576 float mTuningEnergy;
394 std::string mTuningAudioFile; 577 std::string mTuningAudioFile;
@@ -399,32 +582,40 @@ static void updatePosition(void);
399 state mTuningExitState; // state to return to when we leave tuning mode. 582 state mTuningExitState; // state to return to when we leave tuning mode.
400 583
401 std::string mSpatialSessionURI; 584 std::string mSpatialSessionURI;
402 585 std::string mSpatialSessionCredentials;
403 bool mSessionResetOnClose; 586
404 587 std::string mMainSessionGroupHandle; // handle of the "main" session group.
405 int mVivoxErrorStatusCode;
406 std::string mVivoxErrorStatusString;
407 588
408 std::string mChannelName; // Name of the channel to be looked up 589 std::string mChannelName; // Name of the channel to be looked up
409 bool mAreaVoiceDisabled; 590 bool mAreaVoiceDisabled;
410 std::string mSessionURI; // URI of the session we're in. 591 sessionState *mAudioSession; // Session state for the current audio session
411 bool mSessionP2P; // true if this session is a p2p call 592 bool mAudioSessionChanged; // set to true when the above pointer gets changed, so observers can be notified.
593
594 sessionState *mNextAudioSession; // Session state for the audio session we're trying to join
595
596// std::string mSessionURI; // URI of the session we're in.
597// std::string mSessionHandle; // returned by ?
412 598
413 S32 mCurrentParcelLocalID; // Used to detect parcel boundary crossings 599 S32 mCurrentParcelLocalID; // Used to detect parcel boundary crossings
414 std::string mCurrentRegionName; // Used to detect parcel boundary crossings 600 std::string mCurrentRegionName; // Used to detect parcel boundary crossings
415 601
416 std::string mConnectorHandle; // returned by "Create Connector" message 602 std::string mConnectorHandle; // returned by "Create Connector" message
417 std::string mAccountHandle; // returned by login message 603 std::string mAccountHandle; // returned by login message
418 std::string mSessionHandle; // returned by ? 604 int mNumberOfAliases;
419 U32 mCommandCookie; 605 U32 mCommandCookie;
420 606
421 std::string mAccountServerName; 607 std::string mVoiceAccountServerURI;
422 std::string mAccountServerURI; 608 std::string mVoiceSIPURIHostName;
423 609
424 int mLoginRetryCount; 610 int mLoginRetryCount;
425 611
426 participantMap mParticipantMap; 612 sessionMap mSessionsByHandle; // Active sessions, indexed by session handle. Sessions which are being initiated may not be in this map.
427 bool mParticipantMapChanged; 613 sessionSet mSessions; // All sessions, not indexed. This is the canonical session list.
614
615 bool mBuddyListMapPopulated;
616 bool mBlockRulesListReceived;
617 bool mAutoAcceptRulesListReceived;
618 buddyListMap mBuddyListMap;
428 619
429 deviceList mCaptureDevices; 620 deviceList mCaptureDevices;
430 deviceList mRenderDevices; 621 deviceList mRenderDevices;
@@ -434,40 +625,41 @@ static void updatePosition(void);
434 bool mCaptureDeviceDirty; 625 bool mCaptureDeviceDirty;
435 bool mRenderDeviceDirty; 626 bool mRenderDeviceDirty;
436 627
437 participantState *addParticipant(const std::string &uri);
438 // Note: after removeParticipant returns, the participant* that was passed to it will have been deleted.
439 // Take care not to use the pointer again after that.
440 void removeParticipant(participantState *participant);
441 void removeAllParticipants();
442
443 void updateMuteState(participantState *participant);
444
445 typedef std::map<std::string, std::string> channelMap;
446 channelMap mChannelMap;
447
448 // These are used by the parser when processing a channel list response.
449 void clearChannelMap(void);
450 void addChannelMapEntry(std::string &name, std::string &uri);
451 std::string findChannelURI(std::string &name);
452
453 // This should be called when the code detects we have changed parcels. 628 // This should be called when the code detects we have changed parcels.
454 // It initiates the call to the server that gets the parcel channel. 629 // It initiates the call to the server that gets the parcel channel.
455 void parcelChanged(); 630 void parcelChanged();
456 631
457 void switchChannel(std::string uri = std::string(), bool spatial = true, bool noReconnect = false, std::string hash = ""); 632 void switchChannel(std::string uri = std::string(), bool spatial = true, bool no_reconnect = false, bool is_p2p = false, std::string hash = "");
458 void joinSession(std::string handle, std::string uri); 633 void joinSession(sessionState *session);
459 634
460 std::string nameFromAvatar(LLVOAvatar *avatar); 635static std::string nameFromAvatar(LLVOAvatar *avatar);
461 std::string nameFromID(const LLUUID &id); 636static std::string nameFromID(const LLUUID &id);
462 bool IDFromName(const std::string name, LLUUID &uuid); 637static bool IDFromName(const std::string name, LLUUID &uuid);
463 std::string displayNameFromAvatar(LLVOAvatar *avatar); 638static std::string displayNameFromAvatar(LLVOAvatar *avatar);
464 std::string sipURIFromAvatar(LLVOAvatar *avatar); 639 std::string sipURIFromAvatar(LLVOAvatar *avatar);
465 std::string sipURIFromName(std::string &name); 640 std::string sipURIFromName(std::string &name);
641
642 // Returns the name portion of the SIP URI if the string looks vaguely like a SIP URI, or an empty string if not.
643static std::string nameFromsipURI(const std::string &uri);
644
645 bool inSpatialChannel(void);
646 std::string getAudioSessionURI();
647 std::string getAudioSessionHandle();
466 648
467 void sendPositionalUpdate(void); 649 void sendPositionalUpdate(void);
468 650
469 void buildSetCaptureDevice(std::ostringstream &stream); 651 void buildSetCaptureDevice(std::ostringstream &stream);
470 void buildSetRenderDevice(std::ostringstream &stream); 652 void buildSetRenderDevice(std::ostringstream &stream);
653 void buildLocalAudioUpdates(std::ostringstream &stream);
654
655 void clearAllLists();
656 void checkFriend(const LLUUID& id);
657 void sendFriendsListUpdates();
658
659 // start a text IM session with the specified user
660 // This will be asynchronous, the session may be established at a future time.
661 sessionState* startUserIMSession(const LLUUID& uuid);
662 void sendQueuedTextMessages(sessionState *session);
471 663
472 void enforceTether(void); 664 void enforceTether(void);
473 665
@@ -491,10 +683,9 @@ static void updatePosition(void);
491 bool mPTTIsToggle; 683 bool mPTTIsToggle;
492 bool mUserPTTState; 684 bool mUserPTTState;
493 bool mMuteMic; 685 bool mMuteMic;
494 686
495 // Set to true when the mute state of someone in the participant list changes. 687 // Set to true when the friends list is known to have changed.
496 // The code will have to walk the list to find the changed participant(s). 688 bool mFriendsListDirty;
497 bool mVolumeDirty;
498 689
499 enum 690 enum
500 { 691 {
@@ -522,14 +713,18 @@ static void updatePosition(void);
522 BOOL mLipSyncEnabled; 713 BOOL mLipSyncEnabled;
523 714
524 typedef std::set<LLVoiceClientParticipantObserver*> observer_set_t; 715 typedef std::set<LLVoiceClientParticipantObserver*> observer_set_t;
525 observer_set_t mObservers; 716 observer_set_t mParticipantObservers;
526 717
527 void notifyObservers(); 718 void notifyParticipantObservers();
528 719
529 typedef std::set<LLVoiceClientStatusObserver*> status_observer_set_t; 720 typedef std::set<LLVoiceClientStatusObserver*> status_observer_set_t;
530 status_observer_set_t mStatusObservers; 721 status_observer_set_t mStatusObservers;
531 722
532 void notifyStatusObservers(LLVoiceClientStatusObserver::EStatusType status); 723 void notifyStatusObservers(LLVoiceClientStatusObserver::EStatusType status);
724
725 typedef std::set<LLFriendObserver*> friend_observer_set_t;
726 friend_observer_set_t mFriendObservers;
727 void notifyFriendObservers();
533}; 728};
534 729
535extern LLVoiceClient *gVoiceClient; 730extern LLVoiceClient *gVoiceClient;
diff --git a/linden/indra/newview/llvoiceremotectrl.cpp b/linden/indra/newview/llvoiceremotectrl.cpp
index 1f6edd4..3dc275f 100644
--- a/linden/indra/newview/llvoiceremotectrl.cpp
+++ b/linden/indra/newview/llvoiceremotectrl.cpp
@@ -3,7 +3,7 @@
3 * 3 *
4 * $LicenseInfo:firstyear=2005&license=viewergpl$ 4 * $LicenseInfo:firstyear=2005&license=viewergpl$
5 * 5 *
6 * Copyright (c) 2005-2008, Linden Research, Inc. 6 * Copyright (c) 2005-2009, Linden Research, Inc.
7 * 7 *
8 * Second Life Viewer Source Code 8 * Second Life Viewer Source Code
9 * The source code in this file ("Source Code") is provided by Linden Lab 9 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvoiceremotectrl.h b/linden/indra/newview/llvoiceremotectrl.h
index b5e1b38..b2ff7b3 100644
--- a/linden/indra/newview/llvoiceremotectrl.h
+++ b/linden/indra/newview/llvoiceremotectrl.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvoicevisualizer.cpp b/linden/indra/newview/llvoicevisualizer.cpp
index f00247b..15e51fb 100644
--- a/linden/indra/newview/llvoicevisualizer.cpp
+++ b/linden/indra/newview/llvoicevisualizer.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -378,20 +378,20 @@ void LLVoiceVisualizer::render()
378 //----------------------------- 378 //-----------------------------
379 // bind texture 0 (the dot) 379 // bind texture 0 (the dot)
380 //----------------------------- 380 //-----------------------------
381 mSoundSymbol.mTexture[0]->bind(); 381 gGL.getTexUnit(0)->bind(mSoundSymbol.mTexture[0]);
382 382
383 //------------------------------------------------------------- 383 //-------------------------------------------------------------
384 // now render the dot 384 // now render the dot
385 //------------------------------------------------------------- 385 //-------------------------------------------------------------
386 gGL.color4fv( LLColor4( 1.0f, 1.0f, 1.0f, DOT_OPACITY ).mV ); 386 gGL.color4fv( LLColor4( 1.0f, 1.0f, 1.0f, DOT_OPACITY ).mV );
387 387
388 gGL.begin( LLVertexBuffer::TRIANGLE_STRIP ); 388 gGL.begin( LLRender::TRIANGLE_STRIP );
389 gGL.texCoord2i( 0, 0 ); gGL.vertex3fv( bottomLeft.mV ); 389 gGL.texCoord2i( 0, 0 ); gGL.vertex3fv( bottomLeft.mV );
390 gGL.texCoord2i( 1, 0 ); gGL.vertex3fv( bottomRight.mV ); 390 gGL.texCoord2i( 1, 0 ); gGL.vertex3fv( bottomRight.mV );
391 gGL.texCoord2i( 0, 1 ); gGL.vertex3fv( topLeft.mV ); 391 gGL.texCoord2i( 0, 1 ); gGL.vertex3fv( topLeft.mV );
392 gGL.end(); 392 gGL.end();
393 393
394 gGL.begin( LLVertexBuffer::TRIANGLE_STRIP ); 394 gGL.begin( LLRender::TRIANGLE_STRIP );
395 gGL.texCoord2i( 1, 0 ); gGL.vertex3fv( bottomRight.mV ); 395 gGL.texCoord2i( 1, 0 ); gGL.vertex3fv( bottomRight.mV );
396 gGL.texCoord2i( 1, 1 ); gGL.vertex3fv( topRight.mV ); 396 gGL.texCoord2i( 1, 1 ); gGL.vertex3fv( topRight.mV );
397 gGL.texCoord2i( 0, 1 ); gGL.vertex3fv( topLeft.mV ); 397 gGL.texCoord2i( 0, 1 ); gGL.vertex3fv( topLeft.mV );
@@ -503,18 +503,19 @@ void LLVoiceVisualizer::render()
503 LLVector3 topRight = mSoundSymbol.mPosition - l + u; 503 LLVector3 topRight = mSoundSymbol.mPosition - l + u;
504 504
505 gGL.color4fv( LLColor4( red, green, blue, mSoundSymbol.mWaveOpacity[i] ).mV ); 505 gGL.color4fv( LLColor4( red, green, blue, mSoundSymbol.mWaveOpacity[i] ).mV );
506 mSoundSymbol.mTexture[i]->bind(); 506 gGL.getTexUnit(0)->bind(mSoundSymbol.mTexture[i]);
507
507 508
508 //--------------------------------------------------- 509 //---------------------------------------------------
509 // now, render the mofo 510 // now, render the mofo
510 //--------------------------------------------------- 511 //---------------------------------------------------
511 gGL.begin( LLVertexBuffer::TRIANGLE_STRIP ); 512 gGL.begin( LLRender::TRIANGLE_STRIP );
512 gGL.texCoord2i( 0, 0 ); gGL.vertex3fv( bottomLeft.mV ); 513 gGL.texCoord2i( 0, 0 ); gGL.vertex3fv( bottomLeft.mV );
513 gGL.texCoord2i( 1, 0 ); gGL.vertex3fv( bottomRight.mV ); 514 gGL.texCoord2i( 1, 0 ); gGL.vertex3fv( bottomRight.mV );
514 gGL.texCoord2i( 0, 1 ); gGL.vertex3fv( topLeft.mV ); 515 gGL.texCoord2i( 0, 1 ); gGL.vertex3fv( topLeft.mV );
515 gGL.end(); 516 gGL.end();
516 517
517 gGL.begin( LLVertexBuffer::TRIANGLE_STRIP ); 518 gGL.begin( LLRender::TRIANGLE_STRIP );
518 gGL.texCoord2i( 1, 0 ); gGL.vertex3fv( bottomRight.mV ); 519 gGL.texCoord2i( 1, 0 ); gGL.vertex3fv( bottomRight.mV );
519 gGL.texCoord2i( 1, 1 ); gGL.vertex3fv( topRight.mV ); 520 gGL.texCoord2i( 1, 1 ); gGL.vertex3fv( topRight.mV );
520 gGL.texCoord2i( 0, 1 ); gGL.vertex3fv( topLeft.mV ); 521 gGL.texCoord2i( 0, 1 ); gGL.vertex3fv( topLeft.mV );
@@ -550,8 +551,8 @@ VoiceGesticulationLevel LLVoiceVisualizer::getCurrentGesticulationLevel()
550 //----------------------------------------------------------------------------------------- 551 //-----------------------------------------------------------------------------------------
551 F32 range = mMaxGesticulationAmplitude - mMinGesticulationAmplitude; 552 F32 range = mMaxGesticulationAmplitude - mMinGesticulationAmplitude;
552 553
553 if ( mSpeakingAmplitude > mMinGesticulationAmplitude + range * 0.66666f ) { gesticulationLevel = VOICE_GESTICULATION_LEVEL_HIGH; } 554 if ( mSpeakingAmplitude > mMinGesticulationAmplitude + range * 0.5f ) { gesticulationLevel = VOICE_GESTICULATION_LEVEL_HIGH; }
554 else if ( mSpeakingAmplitude > mMinGesticulationAmplitude + range * 0.33333f ) { gesticulationLevel = VOICE_GESTICULATION_LEVEL_MEDIUM; } 555 else if ( mSpeakingAmplitude > mMinGesticulationAmplitude + range * 0.25f ) { gesticulationLevel = VOICE_GESTICULATION_LEVEL_MEDIUM; }
555 else if ( mSpeakingAmplitude > mMinGesticulationAmplitude + range * 0.00000f ) { gesticulationLevel = VOICE_GESTICULATION_LEVEL_LOW; } 556 else if ( mSpeakingAmplitude > mMinGesticulationAmplitude + range * 0.00000f ) { gesticulationLevel = VOICE_GESTICULATION_LEVEL_LOW; }
556 557
557 return gesticulationLevel; 558 return gesticulationLevel;
diff --git a/linden/indra/newview/llvoicevisualizer.h b/linden/indra/newview/llvoicevisualizer.h
index 76eb282..1519a83 100644
--- a/linden/indra/newview/llvoicevisualizer.h
+++ b/linden/indra/newview/llvoicevisualizer.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvoinventorylistener.cpp b/linden/indra/newview/llvoinventorylistener.cpp
index 78d3052..7adac80 100644
--- a/linden/indra/newview/llvoinventorylistener.cpp
+++ b/linden/indra/newview/llvoinventorylistener.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvoinventorylistener.h b/linden/indra/newview/llvoinventorylistener.h
index e19102c..a3567c6 100644
--- a/linden/indra/newview/llvoinventorylistener.h
+++ b/linden/indra/newview/llvoinventorylistener.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvopartgroup.cpp b/linden/indra/newview/llvopartgroup.cpp
index 11d7341..a91b59f 100644
--- a/linden/indra/newview/llvopartgroup.cpp
+++ b/linden/indra/newview/llvopartgroup.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -95,7 +95,7 @@ void LLVOPartGroup::setPixelAreaAndAngle(LLAgent &agent)
95{ 95{
96 // mPixelArea is calculated during render 96 // mPixelArea is calculated during render
97 F32 mid_scale = getMidScale(); 97 F32 mid_scale = getMidScale();
98 F32 range = (getRenderPosition()-LLViewerCamera::getInstance()->getOrigin()).magVec(); 98 F32 range = (getRenderPosition()-LLViewerCamera::getInstance()->getOrigin()).length();
99 99
100 if (range < 0.001f || isHUDAttachment()) // range == zero 100 if (range < 0.001f || isHUDAttachment()) // range == zero
101 { 101 {
@@ -133,15 +133,16 @@ F32 LLVOPartGroup::getPartSize(S32 idx)
133 return 0.f; 133 return 0.f;
134} 134}
135 135
136LLVector3 LLVOPartGroup::getCameraPosition() const
137{
138 return gAgent.getCameraPositionAgent();
139}
140
136BOOL LLVOPartGroup::updateGeometry(LLDrawable *drawable) 141BOOL LLVOPartGroup::updateGeometry(LLDrawable *drawable)
137{ 142{
138 LLFastTimer ftm(LLFastTimer::FTM_UPDATE_PARTICLES); 143 LLFastTimer ftm(LLFastTimer::FTM_UPDATE_PARTICLES);
139 144
140 dirtySpatialGroup(); 145 dirtySpatialGroup();
141
142 LLVector3 at;
143 LLVector3 position_agent;
144 LLVector3 camera_agent = LLViewerCamera::getInstance()->getOrigin();
145 146
146 S32 num_parts = mViewerPartGroupp->getCount(); 147 S32 num_parts = mViewerPartGroupp->getCount();
147 LLFace *facep; 148 LLFace *facep;
@@ -179,6 +180,8 @@ BOOL LLVOPartGroup::updateGeometry(LLDrawable *drawable)
179 F32 pixel_meter_ratio = LLViewerCamera::getInstance()->getPixelMeterRatio(); 180 F32 pixel_meter_ratio = LLViewerCamera::getInstance()->getPixelMeterRatio();
180 pixel_meter_ratio *= pixel_meter_ratio; 181 pixel_meter_ratio *= pixel_meter_ratio;
181 182
183 LLViewerPartSim::checkParticleCount(mViewerPartGroupp->mParticles.size()) ;
184
182 S32 count=0; 185 S32 count=0;
183 mDepth = 0.f; 186 mDepth = 0.f;
184 S32 i = 0 ; 187 S32 i = 0 ;
@@ -187,9 +190,9 @@ BOOL LLVOPartGroup::updateGeometry(LLDrawable *drawable)
187 const LLViewerPart *part = mViewerPartGroupp->mParticles[i]; 190 const LLViewerPart *part = mViewerPartGroupp->mParticles[i];
188 191
189 LLVector3 part_pos_agent(part->mPosAgent); 192 LLVector3 part_pos_agent(part->mPosAgent);
190 at = part_pos_agent - camera_agent; 193 LLVector3 at(part_pos_agent - LLViewerCamera::getInstance()->getOrigin());
191 194
192 F32 camera_dist_squared = at.magVecSquared(); 195 F32 camera_dist_squared = at.lengthSquared();
193 F32 inv_camera_dist_squared; 196 F32 inv_camera_dist_squared;
194 if (camera_dist_squared > 1.f) 197 if (camera_dist_squared > 1.f)
195 inv_camera_dist_squared = 1.f / camera_dist_squared; 198 inv_camera_dist_squared = 1.f / camera_dist_squared;
@@ -278,36 +281,38 @@ void LLVOPartGroup::getGeometry(S32 idx,
278 281
279 282
280 LLVector3 part_pos_agent(part.mPosAgent); 283 LLVector3 part_pos_agent(part.mPosAgent);
281 LLVector3 camera_agent = gAgent.getCameraPositionAgent(); 284 LLVector3 camera_agent = getCameraPosition();
282 LLVector3 at = part_pos_agent - camera_agent; 285 LLVector3 at = part_pos_agent - camera_agent;
283 LLVector3 up, right; 286 LLVector3 up;
287 LLVector3 right;
284 288
285 right = at % LLVector3(0.f, 0.f, 1.f); 289 right = at % LLVector3(0.f, 0.f, 1.f);
286 right.normVec(); 290 right.normalize();
287 up = right % at; 291 up = right % at;
288 up.normVec(); 292 up.normalize();
289 293
290 if (part.mFlags & LLPartData::LL_PART_FOLLOW_VELOCITY_MASK) 294 if (part.mFlags & LLPartData::LL_PART_FOLLOW_VELOCITY_MASK)
291 { 295 {
292 LLVector3 normvel = part.mVelocity; 296 LLVector3 normvel = part.mVelocity;
293 normvel.normVec(); 297 normvel.normalize();
294 LLVector2 up_fracs; 298 LLVector2 up_fracs;
295 up_fracs.mV[0] = normvel*right; 299 up_fracs.mV[0] = normvel*right;
296 up_fracs.mV[1] = normvel*up; 300 up_fracs.mV[1] = normvel*up;
297 up_fracs.normVec(); 301 up_fracs.normalize();
298 LLVector3 new_up; 302 LLVector3 new_up;
299 LLVector3 new_right; 303 LLVector3 new_right;
300 new_up = up_fracs.mV[0] * right + up_fracs.mV[1]*up; 304 new_up = up_fracs.mV[0] * right + up_fracs.mV[1]*up;
301 new_right = up_fracs.mV[1] * right - up_fracs.mV[0]*up; 305 new_right = up_fracs.mV[1] * right - up_fracs.mV[0]*up;
302 up = new_up; 306 up = new_up;
303 right = new_right; 307 right = new_right;
304 up.normVec(); 308 up.normalize();
305 right.normVec(); 309 right.normalize();
306 } 310 }
307 311
308 right *= 0.5f*part.mScale.mV[0]; 312 right *= 0.5f*part.mScale.mV[0];
309 up *= 0.5f*part.mScale.mV[1]; 313 up *= 0.5f*part.mScale.mV[1];
310 314
315
311 const LLVector3& normal = -LLViewerCamera::getInstance()->getXAxis(); 316 const LLVector3& normal = -LLViewerCamera::getInstance()->getXAxis();
312 317
313 *verticesp++ = part_pos_agent + up - right; 318 *verticesp++ = part_pos_agent + up - right;
@@ -355,6 +360,13 @@ LLParticlePartition::LLParticlePartition()
355 mLODPeriod = 1; 360 mLODPeriod = 1;
356} 361}
357 362
363LLHUDParticlePartition::LLHUDParticlePartition() :
364 LLParticlePartition()
365{
366 mDrawableType = LLPipeline::RENDER_TYPE_HUD;
367 mPartitionType = LLViewerRegion::PARTITION_HUD_PARTICLE;
368}
369
358void LLParticlePartition::addGeometryCount(LLSpatialGroup* group, U32& vertex_count, U32& index_count) 370void LLParticlePartition::addGeometryCount(LLSpatialGroup* group, U32& vertex_count, U32& index_count)
359{ 371{
360 group->mBufferUsage = mBufferUsage; 372 group->mBufferUsage = mBufferUsage;
@@ -480,3 +492,24 @@ F32 LLParticlePartition::calcPixelArea(LLSpatialGroup* group, LLCamera& camera)
480 return 1024.f; 492 return 1024.f;
481} 493}
482 494
495U32 LLVOHUDPartGroup::getPartitionType() const
496{
497 // Commenting out and returning PARTITION_NONE because DEV-16909
498 // (SVC-2396: Particles not handled properly as hud) didn't work completely
499 // so this disables HUD particles until they can be fixed properly. -MG
500 //return LLViewerRegion::PARTITION_HUD_PARTICLE;
501 return LLViewerRegion::PARTITION_NONE;
502}
503
504LLDrawable* LLVOHUDPartGroup::createDrawable(LLPipeline *pipeline)
505{
506 pipeline->allocDrawable(this);
507 mDrawable->setLit(FALSE);
508 mDrawable->setRenderType(LLPipeline::RENDER_TYPE_HUD);
509 return mDrawable;
510}
511
512LLVector3 LLVOHUDPartGroup::getCameraPosition() const
513{
514 return LLVector3(-1,0,0);
515}
diff --git a/linden/indra/newview/llvopartgroup.h b/linden/indra/newview/llvopartgroup.h
index 5fe6750..c5596bb 100644
--- a/linden/indra/newview/llvopartgroup.h
+++ b/linden/indra/newview/llvopartgroup.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -80,6 +80,23 @@ protected:
80 ~LLVOPartGroup(); 80 ~LLVOPartGroup();
81 81
82 LLViewerPartGroup *mViewerPartGroupp; 82 LLViewerPartGroup *mViewerPartGroupp;
83
84 virtual LLVector3 getCameraPosition() const;
85
86};
87
88
89class LLVOHUDPartGroup : public LLVOPartGroup
90{
91public:
92 LLVOHUDPartGroup(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp) :
93 LLVOPartGroup(id, pcode, regionp)
94 {
95 }
96protected:
97 LLDrawable* createDrawable(LLPipeline *pipeline);
98 U32 getPartitionType() const;
99 virtual LLVector3 getCameraPosition() const;
83}; 100};
84 101
85#endif // LL_LLVOPARTGROUP_H 102#endif // LL_LLVOPARTGROUP_H
diff --git a/linden/indra/newview/llvosky.cpp b/linden/indra/newview/llvosky.cpp
index 60f674e..336d409 100644
--- a/linden/indra/newview/llvosky.cpp
+++ b/linden/indra/newview/llvosky.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -294,7 +294,7 @@ void LLSkyTex::createGLImage(S32 which)
294 294
295void LLSkyTex::bindTexture(BOOL curr) 295void LLSkyTex::bindTexture(BOOL curr)
296{ 296{
297 mImageGL[getWhich(curr)]->bind(); 297 gGL.getTexUnit(0)->bind(mImageGL[getWhich(curr)]);
298} 298}
299 299
300/*************************************** 300/***************************************
@@ -308,7 +308,7 @@ S32 LLVOSky::sTileResX = sResolution/NUM_TILES_X;
308S32 LLVOSky::sTileResY = sResolution/NUM_TILES_Y; 308S32 LLVOSky::sTileResY = sResolution/NUM_TILES_Y;
309 309
310LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp) 310LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
311: LLStaticViewerObject(id, pcode, regionp), 311: LLStaticViewerObject(id, pcode, regionp, TRUE),
312 mSun(SUN_DISK_RADIUS), mMoon(MOON_DISK_RADIUS), 312 mSun(SUN_DISK_RADIUS), mMoon(MOON_DISK_RADIUS),
313 mBrightnessScale(1.f), 313 mBrightnessScale(1.f),
314 mBrightnessScaleNew(0.f), 314 mBrightnessScaleNew(0.f),
@@ -528,7 +528,7 @@ void LLVOSky::initSkyTextureDirs(const S32 side, const S32 tile)
528 coeff[x_coef] = F32((x<<1) + 1) * inv_res - 1.f; 528 coeff[x_coef] = F32((x<<1) + 1) * inv_res - 1.f;
529 coeff[y_coef] = F32((y<<1) + 1) * inv_res - 1.f; 529 coeff[y_coef] = F32((y<<1) + 1) * inv_res - 1.f;
530 LLVector3 dir(coeff[0], coeff[1], coeff[2]); 530 LLVector3 dir(coeff[0], coeff[1], coeff[2]);
531 dir.normVec(); 531 dir.normalize();
532 mSkyTex[side].setDir(dir, x, y); 532 mSkyTex[side].setDir(dir, x, y);
533 mShinyTex[side].setDir(dir, x, y); 533 mShinyTex[side].setDir(dir, x, y);
534 } 534 }
@@ -762,7 +762,7 @@ void LLVOSky::calcSkyColorWLVert(LLVector3 & Pn, LLColor3 & vary_HazeColor, LLCo
762 Pn *= (-32000.f / Pn[1]); 762 Pn *= (-32000.f / Pn[1]);
763 } 763 }
764 764
765 Plen = Pn.magVec(); 765 Plen = Pn.length();
766 Pn /= Plen; 766 Pn /= Plen;
767 767
768 // Initialize temp variables 768 // Initialize temp variables
@@ -1082,7 +1082,7 @@ BOOL LLVOSky::updateSky()
1082 const static F32 COLOR_CHANGE_THRESHOLD = 0.01f; 1082 const static F32 COLOR_CHANGE_THRESHOLD = 0.01f;
1083 1083
1084 LLVector3 direction = mSun.getDirection(); 1084 LLVector3 direction = mSun.getDirection();
1085 direction.normVec(); 1085 direction.normalize();
1086 const F32 dot_lighting = direction * mLastLightingDirection; 1086 const F32 dot_lighting = direction * mLastLightingDirection;
1087 1087
1088 LLColor3 delta_color; 1088 LLColor3 delta_color;
@@ -1092,7 +1092,7 @@ BOOL LLVOSky::updateSky()
1092 1092
1093 if ( mForceUpdate 1093 if ( mForceUpdate
1094 || ((dot_lighting < LIGHT_DIRECTION_THRESHOLD) 1094 || ((dot_lighting < LIGHT_DIRECTION_THRESHOLD)
1095 || (delta_color.magVec() > COLOR_CHANGE_THRESHOLD) 1095 || (delta_color.length() > COLOR_CHANGE_THRESHOLD)
1096 || !mInitialized) 1096 || !mInitialized)
1097 && !direction.isExactlyZero()) 1097 && !direction.isExactlyZero())
1098 { 1098 {
@@ -1336,8 +1336,8 @@ BOOL LLVOSky::updateGeometry(LLDrawable *drawable)
1336 const LLVector3 &look_at = LLViewerCamera::getInstance()->getAtAxis(); 1336 const LLVector3 &look_at = LLViewerCamera::getInstance()->getAtAxis();
1337 LLVector3 right = look_at % LLVector3::z_axis; 1337 LLVector3 right = look_at % LLVector3::z_axis;
1338 LLVector3 up = right % look_at; 1338 LLVector3 up = right % look_at;
1339 right.normVec(); 1339 right.normalize();
1340 up.normVec(); 1340 up.normalize();
1341 1341
1342 const static F32 elevation_factor = 0.0f/sResolution; 1342 const static F32 elevation_factor = 0.0f/sResolution;
1343 const F32 cos_max_angle = cosHorizon(elevation_factor); 1343 const F32 cos_max_angle = cosHorizon(elevation_factor);
@@ -1417,8 +1417,8 @@ BOOL LLVOSky::updateHeavenlyBodyGeometry(LLDrawable *drawable, const S32 f, cons
1417 1417
1418 LLVector3 hb_right = to_dir % LLVector3::z_axis; 1418 LLVector3 hb_right = to_dir % LLVector3::z_axis;
1419 LLVector3 hb_up = hb_right % to_dir; 1419 LLVector3 hb_up = hb_right % to_dir;
1420 hb_right.normVec(); 1420 hb_right.normalize();
1421 hb_up.normVec(); 1421 hb_up.normalize();
1422 1422
1423 //const static F32 cos_max_turn = sqrt(3.f) / 2; // 30 degrees 1423 //const static F32 cos_max_turn = sqrt(3.f) / 2; // 30 degrees
1424 //const F32 cos_turn_right = 1. / (llmax(cos_max_turn, hb_right * right)); 1424 //const F32 cos_turn_right = 1. / (llmax(cos_max_turn, hb_right * right));
@@ -1601,8 +1601,8 @@ void LLVOSky::updateSunHaloGeometry(LLDrawable *drawable )
1601 1601
1602 const LLVector3 right = 2 * (v_corner[2] - v_corner[0]); 1602 const LLVector3 right = 2 * (v_corner[2] - v_corner[0]);
1603 LLVector3 up = 2 * (v_corner[2] - v_corner[3]); 1603 LLVector3 up = 2 * (v_corner[2] - v_corner[3]);
1604 up.normVec(); 1604 up.normalize();
1605 F32 size = right.magVec(); 1605 F32 size = right.length();
1606 up = size * up; 1606 up = size * up;
1607 const LLVector3 draw_pos = 0.25 * (v_corner[0] + v_corner[1] + v_corner[2] + v_corner[3]); 1607 const LLVector3 draw_pos = 0.25 * (v_corner[0] + v_corner[1] + v_corner[2] + v_corner[3]);
1608 1608
@@ -1654,7 +1654,7 @@ void LLVOSky::updateSunHaloGeometry(LLDrawable *drawable )
1654F32 dtReflection(const LLVector3& p, F32 cos_dir_from_top, F32 sin_dir_from_top, F32 diff_angl_dir) 1654F32 dtReflection(const LLVector3& p, F32 cos_dir_from_top, F32 sin_dir_from_top, F32 diff_angl_dir)
1655{ 1655{
1656 LLVector3 P = p; 1656 LLVector3 P = p;
1657 P.normVec(); 1657 P.normalize();
1658 1658
1659 const F32 cos_dir_angle = -P.mV[VZ]; 1659 const F32 cos_dir_angle = -P.mV[VZ];
1660 const F32 sin_dir_angle = sqrt(1 - cos_dir_angle * cos_dir_angle); 1660 const F32 sin_dir_angle = sqrt(1 - cos_dir_angle * cos_dir_angle);
@@ -1679,9 +1679,9 @@ F32 dtClip(const LLVector3& v0, const LLVector3& v1, F32 far_clip2)
1679{ 1679{
1680 F32 dt_clip; 1680 F32 dt_clip;
1681 const LLVector3 otrezok = v1 - v0; 1681 const LLVector3 otrezok = v1 - v0;
1682 const F32 A = otrezok.magVecSquared(); 1682 const F32 A = otrezok.lengthSquared();
1683 const F32 B = v0 * otrezok; 1683 const F32 B = v0 * otrezok;
1684 const F32 C = v0.magVecSquared() - far_clip2; 1684 const F32 C = v0.lengthSquared() - far_clip2;
1685 const F32 det = sqrt(B*B - A*C); 1685 const F32 det = sqrt(B*B - A*C);
1686 dt_clip = (-B - det) / A; 1686 dt_clip = (-B - det) / A;
1687 if ((dt_clip < 0) || (dt_clip > 1)) 1687 if ((dt_clip < 0) || (dt_clip > 1))
@@ -1701,16 +1701,16 @@ void LLVOSky::updateReflectionGeometry(LLDrawable *drawable, F32 H,
1701 LLVector3 hb_pos = to_dir * (HORIZON_DIST - 10); 1701 LLVector3 hb_pos = to_dir * (HORIZON_DIST - 10);
1702 LLVector3 to_dir_proj = to_dir; 1702 LLVector3 to_dir_proj = to_dir;
1703 to_dir_proj.mV[VZ] = 0; 1703 to_dir_proj.mV[VZ] = 0;
1704 to_dir_proj.normVec(); 1704 to_dir_proj.normalize();
1705 1705
1706 LLVector3 Right = to_dir % LLVector3::z_axis; 1706 LLVector3 Right = to_dir % LLVector3::z_axis;
1707 LLVector3 Up = Right % to_dir; 1707 LLVector3 Up = Right % to_dir;
1708 Right.normVec(); 1708 Right.normalize();
1709 Up.normVec(); 1709 Up.normalize();
1710 1710
1711 // finding angle between look direction and sprite. 1711 // finding angle between look direction and sprite.
1712 LLVector3 look_at_right = look_at % LLVector3::z_axis; 1712 LLVector3 look_at_right = look_at % LLVector3::z_axis;
1713 look_at_right.normVec(); 1713 look_at_right.normalize();
1714 1714
1715 const static F32 cos_horizon_angle = cosHorizon(0.0f/sResolution); 1715 const static F32 cos_horizon_angle = cosHorizon(0.0f/sResolution);
1716 //const static F32 horizon_angle = acos(cos_horizon_angle); 1716 //const static F32 horizon_angle = acos(cos_horizon_angle);
@@ -1745,7 +1745,7 @@ void LLVOSky::updateReflectionGeometry(LLDrawable *drawable, F32 H,
1745 else 1745 else
1746 dt_hor = llmax(0.0f, llmin(1.0f, dt_hor)); 1746 dt_hor = llmax(0.0f, llmin(1.0f, dt_hor));
1747 1747
1748 top_hb.normVec(); 1748 top_hb.normalize();
1749 const F32 cos_angle_of_view = fabs(top_hb.mV[VZ]); 1749 const F32 cos_angle_of_view = fabs(top_hb.mV[VZ]);
1750 const F32 extension = llmin (5.0f, 1.0f / cos_angle_of_view); 1750 const F32 extension = llmin (5.0f, 1.0f / cos_angle_of_view);
1751 1751
@@ -1762,11 +1762,11 @@ void LLVOSky::updateReflectionGeometry(LLDrawable *drawable, F32 H,
1762 F32 cos_dir_from_top[2]; 1762 F32 cos_dir_from_top[2];
1763 1763
1764 LLVector3 dir = stretch_corner[0]; 1764 LLVector3 dir = stretch_corner[0];
1765 dir.normVec(); 1765 dir.normalize();
1766 cos_dir_from_top[0] = dir.mV[VZ]; 1766 cos_dir_from_top[0] = dir.mV[VZ];
1767 1767
1768 dir = stretch_corner[1]; 1768 dir = stretch_corner[1];
1769 dir.normVec(); 1769 dir.normalize();
1770 cos_dir_from_top[1] = dir.mV[VZ]; 1770 cos_dir_from_top[1] = dir.mV[VZ];
1771 1771
1772 const F32 sin_dir_from_top = sqrt(1 - cos_dir_from_top[0] * cos_dir_from_top[0]); 1772 const F32 sin_dir_from_top = sqrt(1 - cos_dir_from_top[0] * cos_dir_from_top[0]);
@@ -1789,7 +1789,7 @@ void LLVOSky::updateReflectionGeometry(LLDrawable *drawable, F32 H,
1789 for (vtx = 0; vtx < 2; ++vtx) 1789 for (vtx = 0; vtx < 2; ++vtx)
1790 { 1790 {
1791 LLVector3 light_proj = v_corner[vtx]; 1791 LLVector3 light_proj = v_corner[vtx];
1792 light_proj.normVec(); 1792 light_proj.normalize();
1793 1793
1794 const F32 z = light_proj.mV[VZ]; 1794 const F32 z = light_proj.mV[VZ];
1795 const F32 sin_angle = sqrt(1 - z * z); 1795 const F32 sin_angle = sqrt(1 - z * z);
@@ -1813,9 +1813,9 @@ void LLVOSky::updateReflectionGeometry(LLDrawable *drawable, F32 H,
1813 S32 side = 0; 1813 S32 side = 0;
1814 LLVector3 refl_corn_norm[2]; 1814 LLVector3 refl_corn_norm[2];
1815 refl_corn_norm[0] = v_refl_corner[1]; 1815 refl_corn_norm[0] = v_refl_corner[1];
1816 refl_corn_norm[0].normVec(); 1816 refl_corn_norm[0].normalize();
1817 refl_corn_norm[1] = v_refl_corner[3]; 1817 refl_corn_norm[1] = v_refl_corner[3];
1818 refl_corn_norm[1].normVec(); 1818 refl_corn_norm[1].normalize();
1819 1819
1820 F32 cos_refl_look_at[2]; 1820 F32 cos_refl_look_at[2];
1821 cos_refl_look_at[0] = refl_corn_norm[0] * look_at; 1821 cos_refl_look_at[0] = refl_corn_norm[0] * look_at;
@@ -1833,13 +1833,13 @@ void LLVOSky::updateReflectionGeometry(LLDrawable *drawable, F32 H,
1833 F32 dt_clip; 1833 F32 dt_clip;
1834 F32 vtx_near2, vtx_far2; 1834 F32 vtx_near2, vtx_far2;
1835 1835
1836 if ((vtx_far2 = v_refl_corner[side].magVecSquared()) > far_clip2) 1836 if ((vtx_far2 = v_refl_corner[side].lengthSquared()) > far_clip2)
1837 { 1837 {
1838 // whole thing is sprite: reflection is beyond far clip plane. 1838 // whole thing is sprite: reflection is beyond far clip plane.
1839 dt_clip = 1.1f; 1839 dt_clip = 1.1f;
1840 quads = 1; 1840 quads = 1;
1841 } 1841 }
1842 else if ((vtx_near2 = v_refl_corner[side+1].magVecSquared()) > far_clip2) 1842 else if ((vtx_near2 = v_refl_corner[side+1].lengthSquared()) > far_clip2)
1843 { 1843 {
1844 // part is reflection, the rest is sprite. 1844 // part is reflection, the rest is sprite.
1845 dt_clip = dtClip(v_refl_corner[side + 1], v_refl_corner[side], far_clip2); 1845 dt_clip = dtClip(v_refl_corner[side + 1], v_refl_corner[side], far_clip2);
@@ -1903,7 +1903,7 @@ void LLVOSky::updateReflectionGeometry(LLDrawable *drawable, F32 H,
1903 { 1903 {
1904 for (S32 vtx = 0; vtx < 4; ++vtx) 1904 for (S32 vtx = 0; vtx < 4; ++vtx)
1905 { 1905 {
1906 F32 ratio = far_clip / v_refl_corner[vtx].magVec(); 1906 F32 ratio = far_clip / v_refl_corner[vtx].length();
1907 *(verticesp++) = v_refl_corner[vtx] = ratio * v_refl_corner[vtx] + mCameraPosAgent; 1907 *(verticesp++) = v_refl_corner[vtx] = ratio * v_refl_corner[vtx] + mCameraPosAgent;
1908 } 1908 }
1909 const LLVector3 draw_pos = 0.25 * 1909 const LLVector3 draw_pos = 0.25 *
@@ -1912,10 +1912,10 @@ void LLVOSky::updateReflectionGeometry(LLDrawable *drawable, F32 H,
1912 } 1912 }
1913 else 1913 else
1914 { 1914 {
1915 F32 ratio = far_clip / v_refl_corner[1].magVec(); 1915 F32 ratio = far_clip / v_refl_corner[1].length();
1916 v_sprite_corner[1] = v_refl_corner[1] * ratio; 1916 v_sprite_corner[1] = v_refl_corner[1] * ratio;
1917 1917
1918 ratio = far_clip / v_refl_corner[3].magVec(); 1918 ratio = far_clip / v_refl_corner[3].length();
1919 v_sprite_corner[3] = v_refl_corner[3] * ratio; 1919 v_sprite_corner[3] = v_refl_corner[3] * ratio;
1920 1920
1921 v_refl_corner[1] = (1 - dt_clip) * v_refl_corner[1] + dt_clip * v_refl_corner[0]; 1921 v_refl_corner[1] = (1 - dt_clip) * v_refl_corner[1] + dt_clip * v_refl_corner[0];
@@ -2039,20 +2039,20 @@ void LLVOSky::updateFog(const F32 distance)
2039 LLVector3 tosun = getToSunLast(); 2039 LLVector3 tosun = getToSunLast();
2040 const F32 tosun_z = tosun.mV[VZ]; 2040 const F32 tosun_z = tosun.mV[VZ];
2041 tosun.mV[VZ] = 0.f; 2041 tosun.mV[VZ] = 0.f;
2042 tosun.normVec(); 2042 tosun.normalize();
2043 LLVector3 perp_tosun; 2043 LLVector3 perp_tosun;
2044 perp_tosun.mV[VX] = -tosun.mV[VY]; 2044 perp_tosun.mV[VX] = -tosun.mV[VY];
2045 perp_tosun.mV[VY] = tosun.mV[VX]; 2045 perp_tosun.mV[VY] = tosun.mV[VX];
2046 LLVector3 tosun_45 = tosun + perp_tosun; 2046 LLVector3 tosun_45 = tosun + perp_tosun;
2047 tosun_45.normVec(); 2047 tosun_45.normalize();
2048 2048
2049 F32 delta = 0.06f; 2049 F32 delta = 0.06f;
2050 tosun.mV[VZ] = delta; 2050 tosun.mV[VZ] = delta;
2051 perp_tosun.mV[VZ] = delta; 2051 perp_tosun.mV[VZ] = delta;
2052 tosun_45.mV[VZ] = delta; 2052 tosun_45.mV[VZ] = delta;
2053 tosun.normVec(); 2053 tosun.normalize();
2054 perp_tosun.normVec(); 2054 perp_tosun.normalize();
2055 tosun_45.normVec(); 2055 tosun_45.normalize();
2056 2056
2057 // Sky colors, just slightly above the horizon in the direction of the sun, perpendicular to the sun, and at a 45 degree angle to the sun. 2057 // Sky colors, just slightly above the horizon in the direction of the sun, perpendicular to the sun, and at a 45 degree angle to the sun.
2058 initAtmospherics(); 2058 initAtmospherics();
@@ -2202,8 +2202,8 @@ F32 azimuth(const LLVector3 &v)
2202 2202
2203void LLVOSky::initSunDirection(const LLVector3 &sun_dir, const LLVector3 &sun_ang_velocity) 2203void LLVOSky::initSunDirection(const LLVector3 &sun_dir, const LLVector3 &sun_ang_velocity)
2204{ 2204{
2205 LLVector3 sun_direction = (sun_dir.magVec() == 0) ? LLVector3::x_axis : sun_dir; 2205 LLVector3 sun_direction = (sun_dir.length() == 0) ? LLVector3::x_axis : sun_dir;
2206 sun_direction.normVec(); 2206 sun_direction.normalize();
2207 mSun.setDirection(sun_direction); 2207 mSun.setDirection(sun_direction);
2208 mSun.renewDirection(); 2208 mSun.renewDirection();
2209 mSun.setAngularVelocity(sun_ang_velocity); 2209 mSun.setAngularVelocity(sun_ang_velocity);
@@ -2222,8 +2222,8 @@ void LLVOSky::initSunDirection(const LLVector3 &sun_dir, const LLVector3 &sun_an
2222 2222
2223void LLVOSky::setSunDirection(const LLVector3 &sun_dir, const LLVector3 &sun_ang_velocity) 2223void LLVOSky::setSunDirection(const LLVector3 &sun_dir, const LLVector3 &sun_ang_velocity)
2224{ 2224{
2225 LLVector3 sun_direction = (sun_dir.magVec() == 0) ? LLVector3::x_axis : sun_dir; 2225 LLVector3 sun_direction = (sun_dir.length() == 0) ? LLVector3::x_axis : sun_dir;
2226 sun_direction.normVec(); 2226 sun_direction.normalize();
2227 2227
2228 // Push the sun "South" as it approaches directly overhead so that we can always see bump mapping 2228 // Push the sun "South" as it approaches directly overhead so that we can always see bump mapping
2229 // on the upward facing faces of cubes. 2229 // on the upward facing faces of cubes.
@@ -2239,7 +2239,7 @@ void LLVOSky::setSunDirection(const LLVector3 &sun_dir, const LLVector3 &sun_ang
2239 // Blend between normal sun dir and adjusted sun dir based on how close we are 2239 // Blend between normal sun dir and adjusted sun dir based on how close we are
2240 // to having the sun overhead. 2240 // to having the sun overhead.
2241 mBumpSunDir = adjustedDir * sunDot + newDir * (1.0f - sunDot); 2241 mBumpSunDir = adjustedDir * sunDot + newDir * (1.0f - sunDot);
2242 mBumpSunDir.normVec(); 2242 mBumpSunDir.normalize();
2243 2243
2244 F32 dp = mLastLightingDirection * sun_direction; 2244 F32 dp = mLastLightingDirection * sun_direction;
2245 mSun.setDirection(sun_direction); 2245 mSun.setDirection(sun_direction);
diff --git a/linden/indra/newview/llvosky.h b/linden/indra/newview/llvosky.h
index b213322..25c075e 100644
--- a/linden/indra/newview/llvosky.h
+++ b/linden/indra/newview/llvosky.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvosurfacepatch.cpp b/linden/indra/newview/llvosurfacepatch.cpp
index 310a745..66c8dac 100644
--- a/linden/indra/newview/llvosurfacepatch.cpp
+++ b/linden/indra/newview/llvosurfacepatch.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -916,6 +916,97 @@ void LLVOSurfacePatch::getGeomSizesEast(const S32 stride, const S32 east_stride,
916 } 916 }
917} 917}
918 918
919BOOL LLVOSurfacePatch::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, S32 face, BOOL pick_transparent, S32 *face_hitp,
920 LLVector3* intersection,LLVector2* tex_coord, LLVector3* normal, LLVector3* bi_normal)
921
922{
923
924 if (!lineSegmentBoundingBox(start, end))
925 {
926 return FALSE;
927 }
928
929 LLVector3 delta = end-start;
930
931 LLVector3 pdelta = delta;
932 pdelta.mV[2] = 0;
933
934 F32 plength = pdelta.length();
935
936 F32 tdelta = 1.f/plength;
937
938 LLVector3 origin = start - mRegionp->getOriginAgent();
939
940 if (mRegionp->getLandHeightRegion(origin) > origin.mV[2])
941 {
942 //origin is under ground, treat as no intersection
943 return FALSE;
944 }
945
946 //step one meter at a time until intersection point found
947
948 const LLVector3* ext = mDrawable->getSpatialExtents();
949 F32 rad = (delta*tdelta).magVecSquared();
950
951 F32 t = 0.f;
952 while ( t <= 1.f)
953 {
954 LLVector3 sample = origin + delta*t;
955
956 if (AABBSphereIntersectR2(ext[0], ext[1], sample+mRegionp->getOriginAgent(), rad))
957 {
958 F32 height = mRegionp->getLandHeightRegion(sample);
959 if (height > sample.mV[2])
960 { //ray went below ground, positive intersection
961 //quick and dirty binary search to get impact point
962 tdelta = -tdelta*0.5f;
963 F32 err_dist = 0.001f;
964 F32 dist = fabsf(sample.mV[2] - height);
965
966 while (dist > err_dist && tdelta*tdelta > 0.0f)
967 {
968 t += tdelta;
969 sample = origin+delta*t;
970 height = mRegionp->getLandHeightRegion(sample);
971 if ((tdelta < 0 && height < sample.mV[2]) ||
972 (height > sample.mV[2] && tdelta > 0))
973 { //jumped over intersection point, go back
974 tdelta = -tdelta;
975 }
976 tdelta *= 0.5f;
977 dist = fabsf(sample.mV[2] - height);
978 }
979
980 if (intersection)
981 {
982 F32 height = mRegionp->getLandHeightRegion(sample);
983 if (fabsf(sample.mV[2]-height) < delta.length()*tdelta)
984 {
985 sample.mV[2] = mRegionp->getLandHeightRegion(sample);
986 }
987 *intersection = sample + mRegionp->getOriginAgent();
988 }
989
990 if (normal)
991 {
992 *normal = mRegionp->getLand().resolveNormalGlobal(mRegionp->getPosGlobalFromRegion(sample));
993 }
994
995 return TRUE;
996 }
997 }
998
999 t += tdelta;
1000 if (t > 1 && t < 1.f+tdelta*0.99f)
1001 { //make sure end point is checked (saves vertical lines coming up negative)
1002 t = 1.f;
1003 }
1004 }
1005
1006
1007 return FALSE;
1008}
1009
919void LLVOSurfacePatch::updateSpatialExtents(LLVector3& newMin, LLVector3 &newMax) 1010void LLVOSurfacePatch::updateSpatialExtents(LLVector3& newMin, LLVector3 &newMax)
920{ 1011{
921 LLVector3 posAgent = getPositionAgent(); 1012 LLVector3 posAgent = getPositionAgent();
diff --git a/linden/indra/newview/llvosurfacepatch.h b/linden/indra/newview/llvosurfacepatch.h
index 52c11c9..abd015d 100644
--- a/linden/indra/newview/llvosurfacepatch.h
+++ b/linden/indra/newview/llvosurfacepatch.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -85,6 +85,16 @@ public:
85 void dirtyPatch(); 85 void dirtyPatch();
86 void dirtyGeom(); 86 void dirtyGeom();
87 87
88 /*virtual*/ BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
89 S32 face = -1, // which face to check, -1 = ALL_SIDES
90 BOOL pick_transparent = FALSE,
91 S32* face_hit = NULL, // which face was hit
92 LLVector3* intersection = NULL, // return the intersection point
93 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point
94 LLVector3* normal = NULL, // return the surface normal at the intersection point
95 LLVector3* bi_normal = NULL // return the surface bi-normal at the intersection point
96 );
97
88 BOOL mDirtiedPatch; 98 BOOL mDirtiedPatch;
89protected: 99protected:
90 ~LLVOSurfacePatch(); 100 ~LLVOSurfacePatch();
diff --git a/linden/indra/newview/llvotextbubble.cpp b/linden/indra/newview/llvotextbubble.cpp
index 5424cc8..ba53bd3 100644
--- a/linden/indra/newview/llvotextbubble.cpp
+++ b/linden/indra/newview/llvotextbubble.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -118,30 +118,16 @@ BOOL LLVOTextBubble::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
118void LLVOTextBubble::updateTextures(LLAgent &agent) 118void LLVOTextBubble::updateTextures(LLAgent &agent)
119{ 119{
120 // Update the image levels of all textures... 120 // Update the image levels of all textures...
121 // First we do some quick checks.
122 U32 i;
123 121
124 // This doesn't take into account whether the object is in front 122 for (U32 i = 0; i < getNumTEs(); i++)
125 // or behind...
126
127 LLVector3 position_local = getPositionAgent() - agent.getCameraPositionAgent();
128 F32 dot_product = position_local * agent.getFrameAgent().getAtAxis();
129 F32 cos_angle = dot_product / position_local.magVec();
130
131 if (cos_angle > 1.f)
132 {
133 cos_angle = 1.f;
134 }
135
136 for (i = 0; i < getNumTEs(); i++)
137 { 123 {
138 const LLTextureEntry *te = getTE(i); 124 const LLTextureEntry *te = getTE(i);
139 F32 texel_area_ratio = fabs(te->mScaleS * te->mScaleT); 125 F32 texel_area_ratio = fabs(te->mScaleS * te->mScaleT);
140 126 texel_area_ratio = llclamp(texel_area_ratio, .125f, 16.f);
141 LLViewerImage *imagep = getTEImage(i); 127 LLViewerImage *imagep = getTEImage(i);
142 if (imagep) 128 if (imagep)
143 { 129 {
144 imagep->addTextureStats(mPixelArea, texel_area_ratio, cos_angle); 130 imagep->addTextureStats(mPixelArea / texel_area_ratio);
145 } 131 }
146 } 132 }
147} 133}
diff --git a/linden/indra/newview/llvotextbubble.h b/linden/indra/newview/llvotextbubble.h
index cf50cb1..f4538ef 100644
--- a/linden/indra/newview/llvotextbubble.h
+++ b/linden/indra/newview/llvotextbubble.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvotree.cpp b/linden/indra/newview/llvotree.cpp
index c86803d..23c92ea 100644
--- a/linden/indra/newview/llvotree.cpp
+++ b/linden/indra/newview/llvotree.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -273,9 +273,9 @@ U32 LLVOTree::processUpdateMessage(LLMessageSystem *mesgsys,
273 // Do base class updates... 273 // Do base class updates...
274 U32 retval = LLViewerObject::processUpdateMessage(mesgsys, user_data, block_num, update_type, dp); 274 U32 retval = LLViewerObject::processUpdateMessage(mesgsys, user_data, block_num, update_type, dp);
275 275
276 if ( (getVelocity().magVecSquared() > 0.f) 276 if ( (getVelocity().lengthSquared() > 0.f)
277 ||(getAcceleration().magVecSquared() > 0.f) 277 ||(getAcceleration().lengthSquared() > 0.f)
278 ||(getAngularVelocity().magVecSquared() > 0.f)) 278 ||(getAngularVelocity().lengthSquared() > 0.f))
279 { 279 {
280 llinfos << "ACK! Moving tree!" << llendl; 280 llinfos << "ACK! Moving tree!" << llendl;
281 setVelocity(LLVector3::zero); 281 setVelocity(LLVector3::zero);
@@ -312,7 +312,7 @@ U32 LLVOTree::processUpdateMessage(LLMessageSystem *mesgsys,
312 mTreeImagep = gImageList.getImage(sSpeciesTable[mSpecies]->mTextureID); 312 mTreeImagep = gImageList.getImage(sSpeciesTable[mSpecies]->mTextureID);
313 if (mTreeImagep) 313 if (mTreeImagep)
314 { 314 {
315 mTreeImagep->bindTexture(0); 315 gGL.getTexUnit(0)->bind(mTreeImagep.get());
316 } 316 }
317 mBranchLength = sSpeciesTable[mSpecies]->mBranchLength; 317 mBranchLength = sSpeciesTable[mSpecies]->mBranchLength;
318 mTrunkLength = sSpeciesTable[mSpecies]->mTrunkLength; 318 mTrunkLength = sSpeciesTable[mSpecies]->mTrunkLength;
@@ -359,14 +359,14 @@ BOOL LLVOTree::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
359 mTrunkBend += mTrunkVel; 359 mTrunkBend += mTrunkVel;
360 mTrunkVel *= 0.99f; // Add damping 360 mTrunkVel *= 0.99f; // Add damping
361 361
362 if (mTrunkBend.magVec() > 1.f) 362 if (mTrunkBend.length() > 1.f)
363 { 363 {
364 mTrunkBend.normVec(); 364 mTrunkBend.normalize();
365 } 365 }
366 366
367 if (mTrunkVel.magVec() > 1.f) 367 if (mTrunkVel.length() > 1.f)
368 { 368 {
369 mTrunkVel.normVec(); 369 mTrunkVel.normalize();
370 } 370 }
371 371
372 return TRUE; 372 return TRUE;
@@ -391,7 +391,7 @@ void LLVOTree::setPixelAreaAndAngle(LLAgent &agent)
391 391
392 // This should be the camera's center, as soon as we move to all region-local. 392 // This should be the camera's center, as soon as we move to all region-local.
393 LLVector3 relative_position = getPositionAgent() - agent.getCameraPositionAgent(); 393 LLVector3 relative_position = getPositionAgent() - agent.getCameraPositionAgent();
394 F32 range = relative_position.magVec(); // ugh, square root 394 F32 range = relative_position.length(); // ugh, square root
395 395
396 F32 max_scale = mBillboardScale * getMaxScale(); 396 F32 max_scale = mBillboardScale * getMaxScale();
397 F32 area = max_scale * (max_scale*mBillboardRatio); 397 F32 area = max_scale * (max_scale*mBillboardRatio);
@@ -713,9 +713,9 @@ BOOL LLVOTree::updateGeometry(LLDrawable *drawable)
713 LLVector2 tc; 713 LLVector2 tc;
714 // This isn't totally accurate. Should compute based on slope as well. 714 // This isn't totally accurate. Should compute based on slope as well.
715 start_radius = r0 * (1.f + 1.2f*fabs(z - 0.66f*height)/height); 715 start_radius = r0 * (1.f + 1.2f*fabs(z - 0.66f*height)/height);
716 nvec.setVec( cos(nangle * DEG_TO_RAD)*start_radius*nvec_scale, 716 nvec.set( cos(nangle * DEG_TO_RAD)*start_radius*nvec_scale,
717 sin(nangle * DEG_TO_RAD)*start_radius*nvec_scale, 717 sin(nangle * DEG_TO_RAD)*start_radius*nvec_scale,
718 z*nvec_scalez); 718 z*nvec_scalez);
719 // First and last slice at 0 radius (to bring in top/bottom of structure) 719 // First and last slice at 0 radius (to bring in top/bottom of structure)
720 radius = start_radius + turbulence3((F32*)&nvec.mV, (F32)fractal_depth)*noise_scale; 720 radius = start_radius + turbulence3((F32*)&nvec.mV, (F32)fractal_depth)*noise_scale;
721 721
@@ -918,7 +918,7 @@ void LLVOTree::updateRadius()
918 918
919void LLVOTree::updateSpatialExtents(LLVector3& newMin, LLVector3& newMax) 919void LLVOTree::updateSpatialExtents(LLVector3& newMin, LLVector3& newMax)
920{ 920{
921 F32 radius = getScale().magVec()*0.05f; 921 F32 radius = getScale().length()*0.05f;
922 LLVector3 center = getRenderPosition(); 922 LLVector3 center = getRenderPosition();
923 923
924 F32 sz = mBillboardScale*mBillboardRatio*radius*0.5f; 924 F32 sz = mBillboardScale*mBillboardRatio*radius*0.5f;
@@ -926,11 +926,53 @@ void LLVOTree::updateSpatialExtents(LLVector3& newMin, LLVector3& newMax)
926 926
927 center += LLVector3(0, 0, size.mV[2]) * getRotation(); 927 center += LLVector3(0, 0, size.mV[2]) * getRotation();
928 928
929 newMin.setVec(center-size); 929 newMin.set(center-size);
930 newMax.setVec(center+size); 930 newMax.set(center+size);
931 mDrawable->setPositionGroup(center); 931 mDrawable->setPositionGroup(center);
932} 932}
933 933
934BOOL LLVOTree::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, S32 face, BOOL pick_transparent, S32 *face_hitp,
935 LLVector3* intersection,LLVector2* tex_coord, LLVector3* normal, LLVector3* bi_normal)
936
937{
938
939 if (!lineSegmentBoundingBox(start, end))
940 {
941 return FALSE;
942 }
943
944 const LLVector3* ext = mDrawable->getSpatialExtents();
945
946 LLVector3 center = (ext[1]+ext[0])*0.5f;
947 LLVector3 size = (ext[1]-ext[0]);
948
949 LLQuaternion quat = getRotation();
950
951 center -= LLVector3(0,0,size.magVec() * 0.25f)*quat;
952
953 size.scaleVec(LLVector3(0.25f, 0.25f, 1.f));
954 size.mV[0] = llmin(size.mV[0], 1.f);
955 size.mV[1] = llmin(size.mV[1], 1.f);
956
957 LLVector3 pos, norm;
958
959 if (linesegment_tetrahedron(start, end, center, size, quat, pos, norm))
960 {
961 if (intersection)
962 {
963 *intersection = pos;
964 }
965
966 if (normal)
967 {
968 *normal = norm;
969 }
970 return TRUE;
971 }
972
973 return FALSE;
974}
975
934U32 LLVOTree::getPartitionType() const 976U32 LLVOTree::getPartitionType() const
935{ 977{
936 return LLViewerRegion::PARTITION_TREE; 978 return LLViewerRegion::PARTITION_TREE;
diff --git a/linden/indra/newview/llvotree.h b/linden/indra/newview/llvotree.h
index 180e5b0..f34371e 100644
--- a/linden/indra/newview/llvotree.h
+++ b/linden/indra/newview/llvotree.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -80,6 +80,17 @@ public:
80 80
81 U32 drawBranchPipeline(LLMatrix4& matrix, U16* indicesp, S32 trunk_LOD, S32 stop_level, U16 depth, U16 trunk_depth, F32 scale, F32 twist, F32 droop, F32 branches, F32 alpha); 81 U32 drawBranchPipeline(LLMatrix4& matrix, U16* indicesp, S32 trunk_LOD, S32 stop_level, U16 depth, U16 trunk_depth, F32 scale, F32 twist, F32 droop, F32 branches, F32 alpha);
82 82
83
84 /*virtual*/ BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
85 S32 face = -1, // which face to check, -1 = ALL_SIDES
86 BOOL pick_transparent = FALSE,
87 S32* face_hit = NULL, // which face was hit
88 LLVector3* intersection = NULL, // return the intersection point
89 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point
90 LLVector3* normal = NULL, // return the surface normal at the intersection point
91 LLVector3* bi_normal = NULL // return the surface bi-normal at the intersection point
92 );
93
83 static S32 sMaxTreeSpecies; 94 static S32 sMaxTreeSpecies;
84 95
85 struct TreeSpeciesData 96 struct TreeSpeciesData
diff --git a/linden/indra/newview/llvotreenew.h b/linden/indra/newview/llvotreenew.h
index 5006c55..5288106 100644
--- a/linden/indra/newview/llvotreenew.h
+++ b/linden/indra/newview/llvotreenew.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvovolume.cpp b/linden/indra/newview/llvovolume.cpp
index 9d8369f..ad44356 100644
--- a/linden/indra/newview/llvovolume.cpp
+++ b/linden/indra/newview/llvovolume.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -68,8 +68,7 @@
68const S32 MIN_QUIET_FRAMES_COALESCE = 30; 68const S32 MIN_QUIET_FRAMES_COALESCE = 30;
69const F32 FORCE_SIMPLE_RENDER_AREA = 512.f; 69const F32 FORCE_SIMPLE_RENDER_AREA = 512.f;
70const F32 FORCE_CULL_AREA = 8.f; 70const F32 FORCE_CULL_AREA = 8.f;
71// sadly - we can't lower sculptie rez below b/c residents have a LOT of content that depends on the 128 71const S32 MAX_SCULPT_REZ = 128;
72const S32 SCULPT_REZ = 128;
73 72
74BOOL gAnimateTextures = TRUE; 73BOOL gAnimateTextures = TRUE;
75extern BOOL gHideSelectedObjects; 74extern BOOL gHideSelectedObjects;
@@ -90,7 +89,7 @@ LLVOVolume::LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *re
90 mLOD = MIN_LOD; 89 mLOD = MIN_LOD;
91 mSculptLevel = -2; 90 mSculptLevel = -2;
92 mTextureAnimp = NULL; 91 mTextureAnimp = NULL;
93 mVObjRadius = LLVector3(1,1,0.5f).magVec(); 92 mVObjRadius = LLVector3(1,1,0.5f).length();
94 mNumFaces = 0; 93 mNumFaces = 0;
95 mLODChanged = FALSE; 94 mLODChanged = FALSE;
96 mSculptChanged = FALSE; 95 mSculptChanged = FALSE;
@@ -498,6 +497,7 @@ void LLVOVolume::updateTextures()
498 else if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_TEXTURE_PRIORITY)) 497 else if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_TEXTURE_PRIORITY))
499 { 498 {
500 F32 pri = imagep->getDecodePriority(); 499 F32 pri = imagep->getDecodePriority();
500 pri = llmax(pri, 0.0f);
501 if (pri < min_vsize) min_vsize = pri; 501 if (pri < min_vsize) min_vsize = pri;
502 if (pri > max_vsize) max_vsize = pri; 502 if (pri > max_vsize) max_vsize = pri;
503 } 503 }
@@ -516,7 +516,10 @@ void LLVOVolume::updateTextures()
516 mSculptTexture = gImageList.getImage(id); 516 mSculptTexture = gImageList.getImage(id);
517 if (mSculptTexture.notNull()) 517 if (mSculptTexture.notNull())
518 { 518 {
519 mSculptTexture->addTextureStats(SCULPT_REZ * SCULPT_REZ); 519 S32 lod = llmin(mLOD, 3);
520 F32 lodf = ((F32)(lod + 1.0f)/4.f);
521 F32 tex_size = lodf * MAX_SCULPT_REZ;
522 mSculptTexture->addTextureStats(2.f * tex_size * tex_size);
520 mSculptTexture->setBoostLevel(llmax((S32)mSculptTexture->getBoostLevel(), 523 mSculptTexture->setBoostLevel(llmax((S32)mSculptTexture->getBoostLevel(),
521 (S32)LLViewerImage::BOOST_SCULPTED)); 524 (S32)LLViewerImage::BOOST_SCULPTED));
522 } 525 }
@@ -577,7 +580,7 @@ F32 LLVOVolume::getTextureVirtualSize(LLFace* face)
577 580
578 //get area of circle in texture space 581 //get area of circle in texture space
579 LLVector2 tdim = face->mTexExtents[1] - face->mTexExtents[0]; 582 LLVector2 tdim = face->mTexExtents[1] - face->mTexExtents[0];
580 F32 texel_area = (tdim * 0.5f).magVecSquared()*3.14159f; 583 F32 texel_area = (tdim * 0.5f).lengthSquared()*3.14159f;
581 if (texel_area <= 0) 584 if (texel_area <= 0)
582 { 585 {
583 // Probably animated, use default 586 // Probably animated, use default
@@ -605,7 +608,7 @@ BOOL LLVOVolume::setMaterial(const U8 material)
605void LLVOVolume::setTexture(const S32 face) 608void LLVOVolume::setTexture(const S32 face)
606{ 609{
607 llassert(face < getNumTEs()); 610 llassert(face < getNumTEs());
608 LLViewerImage::bindTexture(getTEImage(face)); 611 gGL.getTexUnit(0)->bind(getTEImage(face));
609} 612}
610 613
611void LLVOVolume::setScale(const LLVector3 &scale, BOOL damped) 614void LLVOVolume::setScale(const LLVector3 &scale, BOOL damped)
@@ -759,10 +762,10 @@ void LLVOVolume::sculpt()
759 // corrupted volume... don't update the sculpty 762 // corrupted volume... don't update the sculpty
760 return; 763 return;
761 } 764 }
762 else if (current_discard > max_discard) 765 else if (current_discard > MAX_DISCARD_LEVEL)
763 { 766 {
764 llwarns << "WARNING!!: Current discard of sculpty at " << current_discard 767 llwarns << "WARNING!!: Current discard of sculpty at " << current_discard
765 << " is more than than allowed max of " << max_discard << llendl; 768 << " is more than than allowed max of " << MAX_DISCARD_LEVEL << llendl;
766 769
767 // corrupted volume... don't update the sculpty 770 // corrupted volume... don't update the sculpty
768 return; 771 return;
@@ -828,7 +831,7 @@ BOOL LLVOVolume::calcLOD()
828 831
829 S32 cur_detail = 0; 832 S32 cur_detail = 0;
830 833
831 F32 radius = getVolume()->mLODScaleBias.scaledVec(getScale()).magVec(); 834 F32 radius = getVolume()->mLODScaleBias.scaledVec(getScale()).length();
832 F32 distance = mDrawable->mDistanceWRTCamera; 835 F32 distance = mDrawable->mDistanceWRTCamera;
833 distance *= sDistanceFactor; 836 distance *= sDistanceFactor;
834 837
@@ -1687,7 +1690,7 @@ void LLVOVolume::generateSilhouette(LLSelectNode* nodep, const LLVector3& view_p
1687 1690
1688 //transform view vector into volume space 1691 //transform view vector into volume space
1689 view_vector -= getRenderPosition(); 1692 view_vector -= getRenderPosition();
1690 mDrawable->mDistanceWRTCamera = view_vector.magVec(); 1693 mDrawable->mDistanceWRTCamera = view_vector.length();
1691 LLQuaternion worldRot = getRenderRotation(); 1694 LLQuaternion worldRot = getRenderRotation();
1692 view_vector = view_vector * ~worldRot; 1695 view_vector = view_vector * ~worldRot;
1693 if (!isVolumeGlobal()) 1696 if (!isVolumeGlobal())
@@ -1728,7 +1731,7 @@ void LLVOVolume::updateRadius()
1728 return; 1731 return;
1729 } 1732 }
1730 1733
1731 mVObjRadius = getScale().magVec(); 1734 mVObjRadius = getScale().length();
1732 mDrawable->setRadius(mVObjRadius); 1735 mDrawable->setRadius(mVObjRadius);
1733} 1736}
1734 1737
@@ -1841,7 +1844,7 @@ F32 LLVOVolume::getBinRadius()
1841 } 1844 }
1842 else if (shrink_wrap) 1845 else if (shrink_wrap)
1843 { 1846 {
1844 radius = (ext[1]-ext[0]).magVec()*0.5f; 1847 radius = (ext[1]-ext[0]).length()*0.5f;
1845 } 1848 }
1846 else if (mDrawable->isStatic()) 1849 else if (mDrawable->isStatic())
1847 { 1850 {
@@ -1934,10 +1937,20 @@ LLVector3 LLVOVolume::volumeDirectionToAgent(const LLVector3& dir) const
1934} 1937}
1935 1938
1936 1939
1937BOOL LLVOVolume::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, S32 face, S32 *face_hitp, 1940BOOL LLVOVolume::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, S32 face, BOOL pick_transparent, S32 *face_hitp,
1938 LLVector3* intersection,LLVector2* tex_coord, LLVector3* normal, LLVector3* bi_normal) 1941 LLVector3* intersection,LLVector2* tex_coord, LLVector3* normal, LLVector3* bi_normal)
1939 1942
1940{ 1943{
1944 if (!mbCanSelect ||
1945 (gHideSelectedObjects && isSelected()) ||
1946 mDrawable->isDead() ||
1947 !gPipeline.hasRenderType(mDrawable->getRenderType()))
1948 {
1949 return FALSE;
1950 }
1951
1952 BOOL ret = FALSE;
1953
1941 LLVolume* volume = getVolume(); 1954 LLVolume* volume = getVolume();
1942 if (volume) 1955 if (volume)
1943 { 1956 {
@@ -1946,38 +1959,91 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector3& start, const LLVector3& e
1946 v_start = agentPositionToVolume(start); 1959 v_start = agentPositionToVolume(start);
1947 v_end = agentPositionToVolume(end); 1960 v_end = agentPositionToVolume(end);
1948 1961
1949 S32 face_hit = volume->lineSegmentIntersect(v_start, v_end, face, 1962 LLVector3 p;
1950 intersection, tex_coord, normal, bi_normal); 1963 LLVector3 n;
1951 if (face_hit >= 0) 1964 LLVector2 tc;
1965 LLVector3 bn;
1966
1967 if (intersection != NULL)
1952 { 1968 {
1953 if (face_hitp != NULL) 1969 p = *intersection;
1954 { 1970 }
1955 *face_hitp = face_hit; 1971
1956 } 1972 if (tex_coord != NULL)
1973 {
1974 tc = *tex_coord;
1975 }
1976
1977 if (normal != NULL)
1978 {
1979 n = *normal;
1980 }
1981
1982 if (bi_normal != NULL)
1983 {
1984 bn = *bi_normal;
1985 }
1986
1987 S32 face_hit = -1;
1988
1989 S32 start_face, end_face;
1990 if (face == -1)
1991 {
1992 start_face = 0;
1993 end_face = volume->getNumFaces();
1994 }
1995 else
1996 {
1997 start_face = face;
1998 end_face = face+1;
1999 }
2000
2001 for (S32 i = start_face; i < end_face; ++i)
2002 {
2003 face_hit = volume->lineSegmentIntersect(v_start, v_end, i,
2004 &p, &tc, &n, &bn);
1957 2005
1958 if (intersection != NULL) 2006 if (face_hit >= 0 && mDrawable->getNumFaces() > face_hit)
1959 { 2007 {
1960 *intersection = volumePositionToAgent(*intersection); // must map back to agent space 2008 LLFace* face = mDrawable->getFace(face_hit);
1961 } 2009
2010 if (pick_transparent || !face->getTexture() || face->getTexture()->getMask(face->surfaceToTexture(tc, p, n)))
2011 {
2012 v_end = p;
2013 if (face_hitp != NULL)
2014 {
2015 *face_hitp = face_hit;
2016 }
2017
2018 if (intersection != NULL)
2019 {
2020 *intersection = volumePositionToAgent(p); // must map back to agent space
2021 }
1962 2022
1963 if (normal != NULL) 2023 if (normal != NULL)
1964 { 2024 {
1965 *normal = volumeDirectionToAgent(*normal); 2025 *normal = volumeDirectionToAgent(n);
1966 (*normal).normVec(); 2026 (*normal).normVec();
1967 } 2027 }
1968 2028
1969 if (bi_normal != NULL) 2029 if (bi_normal != NULL)
1970 { 2030 {
1971 *bi_normal = volumeDirectionToAgent(*bi_normal); 2031 *bi_normal = volumeDirectionToAgent(bn);
1972 (*bi_normal).normVec(); 2032 (*bi_normal).normVec();
1973 } 2033 }
1974 2034
1975 2035 if (tex_coord != NULL)
1976 return TRUE; 2036 {
2037 *tex_coord = tc;
2038 }
2039
2040 ret = TRUE;
2041 }
2042 }
1977 } 2043 }
1978 } 2044 }
1979 2045
1980 return FALSE; 2046 return ret;
1981} 2047}
1982 2048
1983U32 LLVOVolume::getPartitionType() const 2049U32 LLVOVolume::getPartitionType() const
diff --git a/linden/indra/newview/llvovolume.h b/linden/indra/newview/llvovolume.h
index d8828f0..b80171e 100644
--- a/linden/indra/newview/llvovolume.h
+++ b/linden/indra/newview/llvovolume.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -114,6 +114,7 @@ public:
114 114
115 /*virtual*/ BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end, 115 /*virtual*/ BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
116 S32 face = -1, // which face to check, -1 = ALL_SIDES 116 S32 face = -1, // which face to check, -1 = ALL_SIDES
117 BOOL pick_transparent = FALSE,
117 S32* face_hit = NULL, // which face was hit 118 S32* face_hit = NULL, // which face was hit
118 LLVector3* intersection = NULL, // return the intersection point 119 LLVector3* intersection = NULL, // return the intersection point
119 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point 120 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point
diff --git a/linden/indra/newview/llvowater.cpp b/linden/indra/newview/llvowater.cpp
index 1ab6fbd..421c283 100644
--- a/linden/indra/newview/llvowater.cpp
+++ b/linden/indra/newview/llvowater.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvowater.h b/linden/indra/newview/llvowater.h
index fce5258..6fe2d97 100644
--- a/linden/indra/newview/llvowater.h
+++ b/linden/indra/newview/llvowater.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llvowlsky.cpp b/linden/indra/newview/llvowlsky.cpp
index 159603e..8f9b58b 100644
--- a/linden/indra/newview/llvowlsky.cpp
+++ b/linden/indra/newview/llvowlsky.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -87,7 +87,7 @@ inline U32 LLVOWLSky::getStarsNumIndices(void)
87} 87}
88 88
89LLVOWLSky::LLVOWLSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp) 89LLVOWLSky::LLVOWLSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
90 : LLStaticViewerObject(id, pcode, regionp) 90 : LLStaticViewerObject(id, pcode, regionp, TRUE)
91{ 91{
92 initStars(); 92 initStars();
93} 93}
@@ -488,7 +488,7 @@ void LLVOWLSky::drawStars(void)
488 if (mStarsVerts.notNull()) 488 if (mStarsVerts.notNull())
489 { 489 {
490 mStarsVerts->setBuffer(LLDrawPoolWLSky::STAR_VERTEX_DATA_MASK); 490 mStarsVerts->setBuffer(LLDrawPoolWLSky::STAR_VERTEX_DATA_MASK);
491 mStarsVerts->draw(LLVertexBuffer::POINTS, getStarsNumIndices(), 0); 491 mStarsVerts->draw(LLRender::POINTS, getStarsNumIndices(), 0);
492 } 492 }
493} 493}
494 494
@@ -513,7 +513,7 @@ void LLVOWLSky::drawDome(void)
513 strips_segment->setBuffer(data_mask); 513 strips_segment->setBuffer(data_mask);
514 514
515 strips_segment->drawRange( 515 strips_segment->drawRange(
516 LLVertexBuffer::TRIANGLE_STRIP, 516 LLRender::TRIANGLE_STRIP,
517 0, strips_segment->getRequestedVerts()-1, strips_segment->getRequestedIndices(), 517 0, strips_segment->getRequestedVerts()-1, strips_segment->getRequestedIndices(),
518 0); 518 0);
519 gPipeline.addTrianglesDrawn(strips_segment->getRequestedIndices() - 2); 519 gPipeline.addTrianglesDrawn(strips_segment->getRequestedIndices() - 2);
diff --git a/linden/indra/newview/llvowlsky.h b/linden/indra/newview/llvowlsky.h
index 3a5cb3a..b507ba3 100644
--- a/linden/indra/newview/llvowlsky.h
+++ b/linden/indra/newview/llvowlsky.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwatchdog.cpp b/linden/indra/newview/llwatchdog.cpp
index 55975ee..cc49848 100644
--- a/linden/indra/newview/llwatchdog.cpp
+++ b/linden/indra/newview/llwatchdog.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -35,6 +35,15 @@
35 35
36const U32 WATCHDOG_SLEEP_TIME_USEC = 1000000; 36const U32 WATCHDOG_SLEEP_TIME_USEC = 1000000;
37 37
38void default_killer_callback()
39{
40#ifdef LL_WINDOWS
41 RaiseException(0,0,0,0);
42#else
43 raise(SIGQUIT);
44#endif
45}
46
38// This class runs the watchdog timing thread. 47// This class runs the watchdog timing thread.
39class LLWatchdogTimerThread : public LLThread 48class LLWatchdogTimerThread : public LLThread
40{ 49{
@@ -52,7 +61,7 @@ public:
52 void stop() 61 void stop()
53 { 62 {
54 mStopping = true; 63 mStopping = true;
55 ms_sleep(1); 64 mSleepMsecs = 1;
56 } 65 }
57 66
58 /* virtual */ void run() 67 /* virtual */ void run()
@@ -146,7 +155,8 @@ void LLWatchdogTimeout::ping(const std::string& state)
146LLWatchdog::LLWatchdog() : 155LLWatchdog::LLWatchdog() :
147 mSuspectsAccessMutex(NULL), 156 mSuspectsAccessMutex(NULL),
148 mTimer(NULL), 157 mTimer(NULL),
149 mLastClockCount(0) 158 mLastClockCount(0),
159 mKillerCallback(&default_killer_callback)
150{ 160{
151} 161}
152 162
@@ -168,8 +178,9 @@ void LLWatchdog::remove(LLWatchdogEntry* e)
168 unlockThread(); 178 unlockThread();
169} 179}
170 180
171void LLWatchdog::init() 181void LLWatchdog::init(killer_event_callback func)
172{ 182{
183 mKillerCallback = func;
173 if(!mSuspectsAccessMutex && !mTimer) 184 if(!mSuspectsAccessMutex && !mTimer)
174 { 185 {
175 mSuspectsAccessMutex = new LLMutex(NULL); 186 mSuspectsAccessMutex = new LLMutex(NULL);
@@ -238,11 +249,7 @@ void LLWatchdog::run()
238 } 249 }
239 250
240 llinfos << "Watchdog detected error:" << llendl; 251 llinfos << "Watchdog detected error:" << llendl;
241#ifdef LL_WINDOWS 252 mKillerCallback();
242 RaiseException(0,0,0,0);
243#else
244 raise(SIGQUIT);
245#endif
246 } 253 }
247 } 254 }
248 255
diff --git a/linden/indra/newview/llwatchdog.h b/linden/indra/newview/llwatchdog.h
index d196486..d102a4a 100644
--- a/linden/indra/newview/llwatchdog.h
+++ b/linden/indra/newview/llwatchdog.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -32,6 +32,8 @@
32#ifndef LL_LLTHREADWATCHDOG_H 32#ifndef LL_LLTHREADWATCHDOG_H
33#define LL_LLTHREADWATCHDOG_H 33#define LL_LLTHREADWATCHDOG_H
34 34
35#include <boost/function.hpp>
36
35#ifndef LL_TIMER_H 37#ifndef LL_TIMER_H
36 #include "lltimer.h" 38 #include "lltimer.h"
37#endif 39#endif
@@ -85,7 +87,9 @@ public:
85 void add(LLWatchdogEntry* e); 87 void add(LLWatchdogEntry* e);
86 void remove(LLWatchdogEntry* e); 88 void remove(LLWatchdogEntry* e);
87 89
88 void init(); 90 typedef boost::function<void (void)> killer_event_callback;
91
92 void init(killer_event_callback func = NULL);
89 void run(); 93 void run();
90 void cleanup(); 94 void cleanup();
91 95
@@ -98,6 +102,8 @@ private:
98 LLMutex* mSuspectsAccessMutex; 102 LLMutex* mSuspectsAccessMutex;
99 LLWatchdogTimerThread* mTimer; 103 LLWatchdogTimerThread* mTimer;
100 U64 mLastClockCount; 104 U64 mLastClockCount;
105
106 killer_event_callback mKillerCallback;
101}; 107};
102 108
103#endif // LL_LLTHREADWATCHDOG_H 109#endif // LL_LLTHREADWATCHDOG_H
diff --git a/linden/indra/newview/llwaterparammanager.cpp b/linden/indra/newview/llwaterparammanager.cpp
index f4f1163..83bf555 100644
--- a/linden/indra/newview/llwaterparammanager.cpp
+++ b/linden/indra/newview/llwaterparammanager.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -89,48 +89,57 @@ LLWaterParamManager::~LLWaterParamManager()
89void LLWaterParamManager::loadAllPresets(const std::string& file_name) 89void LLWaterParamManager::loadAllPresets(const std::string& file_name)
90{ 90{
91 std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", "")); 91 std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", ""));
92 LL_INFOS2("AppInit", "Shaders") << "Loading water settings from " << path_name << LL_ENDL; 92 LL_INFOS2("AppInit", "Shaders") << "Loading Default water settings from " << path_name << LL_ENDL;
93 93
94 //mParamList.clear();
95
96 bool found = true; 94 bool found = true;
97 while(found) 95 while(found)
98 { 96 {
99 std::string name; 97 std::string name;
100 found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name, false); 98 found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name, false);
101 99 if(found)
102 LL_DEBUGS2("AppInit", "Shaders") << "name: " << name << LL_ENDL;
103
104 // if we have one
105 if(found)
106 { 100 {
101
102 name=name.erase(name.length()-4);
103
107 // bugfix for SL-46920: preventing filenames that break stuff. 104 // bugfix for SL-46920: preventing filenames that break stuff.
108 char * curl_str = curl_unescape(name.c_str(), name.size()); 105 char * curl_str = curl_unescape(name.c_str(), name.size());
109 std::string unescaped_name(curl_str); 106 std::string unescaped_name(curl_str);
110 curl_free(curl_str); 107 curl_free(curl_str);
111 curl_str = NULL; 108 curl_str = NULL;
112 109
113 // not much error checking here since we're getting rid of this 110 LL_DEBUGS2("AppInit", "Shaders") << "name: " << name << LL_ENDL;
114 std::string water_name = unescaped_name.substr(0, unescaped_name.size() - 4); 111 loadPreset(unescaped_name,FALSE);
115 112 }
116 std::string cur_path(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", name)); 113 }
117 LL_DEBUGS2("AppInit", "Shaders") << "Loading water from " << cur_path << LL_ENDL; 114
115 // And repeat for user presets, note the user presets will modify any system presets already loaded
116
117 std::string path_name2(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/water", ""));
118 LL_INFOS2("AppInit", "Shaders") << "Loading User water settings from " << path_name2 << LL_ENDL;
118 119
119 llifstream water_xml(cur_path); 120 found = true;
120 if (water_xml) 121 while(found)
121 { 122 {
122 LLSD water_data(LLSD::emptyMap()); 123 std::string name;
123 LLPointer<LLSDParser> parser = new LLSDXMLParser(); 124 found = gDirUtilp->getNextFileInDir(path_name2, "*.xml", name, false);
124 parser->parse(water_xml, water_data, LLSDSerialize::SIZE_UNLIMITED); 125 if(found)
126 {
127 name=name.erase(name.length()-4);
125 128
126 addParamSet(water_name, water_data); 129 // bugfix for SL-46920: preventing filenames that break stuff.
127 water_xml.close(); 130 char * curl_str = curl_unescape(name.c_str(), name.size());
128 } 131 std::string unescaped_name(curl_str);
132 curl_free(curl_str);
133 curl_str = NULL;
134
135 LL_DEBUGS2("AppInit", "Shaders") << "name: " << name << LL_ENDL;
136 loadPreset(unescaped_name,FALSE);
129 } 137 }
130 } 138 }
139
131} 140}
132 141
133void LLWaterParamManager::loadPreset(const std::string & name) 142void LLWaterParamManager::loadPreset(const std::string & name,bool propagate)
134{ 143{
135 // bugfix for SL-46920: preventing filenames that break stuff. 144 // bugfix for SL-46920: preventing filenames that break stuff.
136 char * curl_str = curl_escape(name.c_str(), name.size()); 145 char * curl_str = curl_escape(name.c_str(), name.size());
@@ -142,8 +151,17 @@ void LLWaterParamManager::loadPreset(const std::string & name)
142 151
143 std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", escaped_filename)); 152 std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", escaped_filename));
144 llinfos << "Loading water settings from " << pathName << llendl; 153 llinfos << "Loading water settings from " << pathName << llendl;
145 154
146 llifstream presetsXML(pathName); 155 std::ifstream presetsXML;
156 presetsXML.open(pathName.c_str());
157
158 // That failed, try loading from the users area instead.
159 if(!presetsXML)
160 {
161 pathName=gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/water", escaped_filename);
162 llinfos << "Loading User water setting from " << pathName << llendl;
163 presetsXML.open(pathName.c_str());
164 }
147 165
148 if (presetsXML) 166 if (presetsXML)
149 { 167 {
@@ -170,10 +188,12 @@ void LLWaterParamManager::loadPreset(const std::string & name)
170 return; 188 return;
171 } 189 }
172 190
173 getParamSet(name, mCurParams); 191 if(propagate)
174 192 {
175 propagateParameters(); 193 getParamSet(name, mCurParams);
176} 194 propagateParameters();
195 }
196}
177 197
178void LLWaterParamManager::savePreset(const std::string & name) 198void LLWaterParamManager::savePreset(const std::string & name)
179{ 199{
@@ -187,7 +207,7 @@ void LLWaterParamManager::savePreset(const std::string & name)
187 207
188 // make an empty llsd 208 // make an empty llsd
189 LLSD paramsData(LLSD::emptyMap()); 209 LLSD paramsData(LLSD::emptyMap());
190 std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", escaped_filename)); 210 std::string pathName(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/water", escaped_filename));
191 211
192 // fill it with LLSD windlight params 212 // fill it with LLSD windlight params
193 paramsData = mParamList[name].getAll(); 213 paramsData = mParamList[name].getAll();
@@ -390,7 +410,8 @@ bool LLWaterParamManager::removeParamSet(const std::string& name, bool delete_fr
390 410
391 if(delete_from_disk) 411 if(delete_from_disk)
392 { 412 {
393 std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", "")); 413
414 std::string path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/water", ""));
394 415
395 // use full curl escaped name 416 // use full curl escaped name
396 char * curl_str = curl_escape(name.c_str(), name.size()); 417 char * curl_str = curl_escape(name.c_str(), name.size());
diff --git a/linden/indra/newview/llwaterparammanager.h b/linden/indra/newview/llwaterparammanager.h
index 872725e..0b98560 100644
--- a/linden/indra/newview/llwaterparammanager.h
+++ b/linden/indra/newview/llwaterparammanager.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -228,7 +228,8 @@ public:
228 void loadAllPresets(const std::string & fileName); 228 void loadAllPresets(const std::string & fileName);
229 229
230 /// load an individual preset into the sky 230 /// load an individual preset into the sky
231 void loadPreset(const std::string & name); 231
232 void loadPreset(const std::string & name,bool propagate=true);
232 233
233 /// save the parameter presets to file 234 /// save the parameter presets to file
234 void savePreset(const std::string & name); 235 void savePreset(const std::string & name);
diff --git a/linden/indra/newview/llwaterparamset.cpp b/linden/indra/newview/llwaterparamset.cpp
index e7a05f4..a66d363 100644
--- a/linden/indra/newview/llwaterparamset.cpp
+++ b/linden/indra/newview/llwaterparamset.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwaterparamset.h b/linden/indra/newview/llwaterparamset.h
index 17ee1df..4069550 100644
--- a/linden/indra/newview/llwaterparamset.h
+++ b/linden/indra/newview/llwaterparamset.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwearable.cpp b/linden/indra/newview/llwearable.cpp
index a746ebd..6bdc50f 100644
--- a/linden/indra/newview/llwearable.cpp
+++ b/linden/indra/newview/llwearable.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwearable.h b/linden/indra/newview/llwearable.h
index 00a53d3..ea16d20 100644
--- a/linden/indra/newview/llwearable.h
+++ b/linden/indra/newview/llwearable.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwearablelist.cpp b/linden/indra/newview/llwearablelist.cpp
index cf5d91b..2d4f26a 100644
--- a/linden/indra/newview/llwearablelist.cpp
+++ b/linden/indra/newview/llwearablelist.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwearablelist.h b/linden/indra/newview/llwearablelist.h
index 1ee03e8..b85b775 100644
--- a/linden/indra/newview/llwearablelist.h
+++ b/linden/indra/newview/llwearablelist.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2002&license=viewergpl$ 5 * $LicenseInfo:firstyear=2002&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2002-2008, Linden Research, Inc. 7 * Copyright (c) 2002-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llweb.cpp b/linden/indra/newview/llweb.cpp
index a3ccab3..2eee2d3 100644
--- a/linden/indra/newview/llweb.cpp
+++ b/linden/indra/newview/llweb.cpp
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llweb.h b/linden/indra/newview/llweb.h
index 8dbddaf..3028721 100644
--- a/linden/indra/newview/llweb.h
+++ b/linden/indra/newview/llweb.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
7 * 7 *
8 * Copyright (c) 2006-2008, Linden Research, Inc. 8 * Copyright (c) 2006-2009, Linden Research, Inc.
9 * 9 *
10 * Second Life Viewer Source Code 10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab 11 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwebbrowserctrl.cpp b/linden/indra/newview/llwebbrowserctrl.cpp
index c4a2b2b..7a9194c 100644
--- a/linden/indra/newview/llwebbrowserctrl.cpp
+++ b/linden/indra/newview/llwebbrowserctrl.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -483,13 +483,7 @@ void LLWebBrowserCtrl::navigateTo( std::string urlIn )
483 483
484void LLWebBrowserCtrl::navigateToLocalPage( const std::string& subdir, const std::string& filename_in ) 484void LLWebBrowserCtrl::navigateToLocalPage( const std::string& subdir, const std::string& filename_in )
485{ 485{
486 std::string language = gSavedSettings.getString("Language"); 486 std::string language = LLUI::getLanguage();
487
488 if(language == "default")
489 {
490 language = gSavedSettings.getString("SystemLanguage");
491 }
492
493 std::string delim = gDirUtilp->getDirDelimiter(); 487 std::string delim = gDirUtilp->getDirDelimiter();
494 std::string filename; 488 std::string filename;
495 489
@@ -596,14 +590,14 @@ void LLWebBrowserCtrl::draw()
596 } 590 }
597 591
598 // scale texture to fit the space using texture coords 592 // scale texture to fit the space using texture coords
599 mWebBrowserImage->bindTexture(); 593 gGL.getTexUnit(0)->bind(mWebBrowserImage->getTexture());
600 gGL.color4fv( LLColor4::white.mV ); 594 gGL.color4fv( LLColor4::white.mV );
601 F32 max_u = ( F32 )mWebBrowserImage->getBrowserWidth() / ( F32 )mWebBrowserImage->getWidth(); 595 F32 max_u = ( F32 )mWebBrowserImage->getBrowserWidth() / ( F32 )mWebBrowserImage->getWidth();
602 F32 max_v = ( F32 )mWebBrowserImage->getBrowserHeight() / ( F32 )mWebBrowserImage->getHeight(); 596 F32 max_v = ( F32 )mWebBrowserImage->getBrowserHeight() / ( F32 )mWebBrowserImage->getHeight();
603 597
604 // draw the browser 598 // draw the browser
605 gGL.setSceneBlendType(LLRender::BT_REPLACE); 599 gGL.setSceneBlendType(LLRender::BT_REPLACE);
606 gGL.begin( LLVertexBuffer::QUADS ); 600 gGL.begin( LLRender::QUADS );
607 { 601 {
608 // render using web browser reported width and height, instead of trying to invert GL scale 602 // render using web browser reported width and height, instead of trying to invert GL scale
609 gGL.texCoord2f( max_u, max_v ); 603 gGL.texCoord2f( max_u, max_v );
diff --git a/linden/indra/newview/llwebbrowserctrl.h b/linden/indra/newview/llwebbrowserctrl.h
index 8a31421..e4ecea7 100644
--- a/linden/indra/newview/llwebbrowserctrl.h
+++ b/linden/indra/newview/llwebbrowserctrl.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwind.cpp b/linden/indra/newview/llwind.cpp
index 3b18835..06684ec 100644
--- a/linden/indra/newview/llwind.cpp
+++ b/linden/indra/newview/llwind.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwind.h b/linden/indra/newview/llwind.h
index 5481fdc..bffb810 100644
--- a/linden/indra/newview/llwind.h
+++ b/linden/indra/newview/llwind.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwindebug.cpp b/linden/indra/newview/llwindebug.cpp
index e48b7bf..129d925 100644
--- a/linden/indra/newview/llwindebug.cpp
+++ b/linden/indra/newview/llwindebug.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -42,6 +42,7 @@
42#pragma warning(disable: 4200) //nonstandard extension used : zero-sized array in struct/union 42#pragma warning(disable: 4200) //nonstandard extension used : zero-sized array in struct/union
43#pragma warning(disable: 4100) //unreferenced formal parameter 43#pragma warning(disable: 4100) //unreferenced formal parameter
44 44
45
45/* 46/*
46LLSD Block for Windows Dump Information 47LLSD Block for Windows Dump Information
47<llsd> 48<llsd>
@@ -120,8 +121,18 @@ MODULE32_NEST Module32Next_;
120#define CALL_TRACE_MAX ((DUMP_SIZE_MAX - 2000) / (MAX_PATH + 40)) //max number of traced calls 121#define CALL_TRACE_MAX ((DUMP_SIZE_MAX - 2000) / (MAX_PATH + 40)) //max number of traced calls
121#define NL L"\r\n" //new line 122#define NL L"\r\n" //new line
122 123
123BOOL WINAPI Get_Module_By_Ret_Addr(PBYTE Ret_Addr, LPWSTR Module_Name, PBYTE & Module_Addr);
124 124
125typedef struct STACK
126{
127 STACK * Ebp;
128 PBYTE Ret_Addr;
129 DWORD Param[0];
130} STACK, * PSTACK;
131
132BOOL WINAPI Get_Module_By_Ret_Addr(PBYTE Ret_Addr, LPWSTR Module_Name, PBYTE & Module_Addr);
133void WINAPI Get_Call_Stack(const EXCEPTION_RECORD* exception_record,
134 const CONTEXT* context_record,
135 LLSD& info);
125 136
126void printError( CHAR* msg ) 137void printError( CHAR* msg )
127{ 138{
@@ -184,69 +195,6 @@ BOOL GetProcessThreadIDs(DWORD process_id, std::vector<DWORD>& thread_ids)
184 return( TRUE ); 195 return( TRUE );
185} 196}
186 197
187void WINAPI GetCallStackData(const CONTEXT* context_struct, LLSD& info)
188{
189 // Fill Str with call stack info.
190 // pException can be either GetExceptionInformation() or NULL.
191 // If pException = NULL - get current call stack.
192
193 LPWSTR Module_Name = new WCHAR[MAX_PATH];
194 PBYTE Module_Addr = 0;
195
196 typedef struct STACK
197 {
198 STACK * Ebp;
199 PBYTE Ret_Addr;
200 DWORD Param[0];
201 } STACK, * PSTACK;
202
203 PSTACK Ebp;
204
205 if(context_struct)
206 {
207 Ebp = (PSTACK)context_struct->Ebp;
208 }
209 else
210 {
211 // The context struct is NULL,
212 // so we will use the current stack.
213 Ebp = (PSTACK)&context_struct - 1;
214
215 // Skip frame of GetCallStackData().
216 if (!IsBadReadPtr(Ebp, sizeof(PSTACK)))
217 Ebp = Ebp->Ebp; //caller ebp
218 }
219
220 // Trace CALL_TRACE_MAX calls maximum - not to exceed DUMP_SIZE_MAX.
221 // Break trace on wrong stack frame.
222 for (int Ret_Addr_I = 0, i = 0;
223 (Ret_Addr_I < CALL_TRACE_MAX) && !IsBadReadPtr(Ebp, sizeof(PSTACK)) && !IsBadCodePtr(FARPROC(Ebp->Ret_Addr));
224 Ret_Addr_I++, Ebp = Ebp->Ebp, ++i)
225 {
226 // If module with Ebp->Ret_Addr found.
227
228 if (Get_Module_By_Ret_Addr(Ebp->Ret_Addr, Module_Name, Module_Addr))
229 {
230 // Save module's address and full path.
231 info["CallStack"][i]["ModuleName"] = ll_convert_wide_to_string(Module_Name);
232 info["CallStack"][i]["ModuleAddress"] = (int)Module_Addr;
233 info["CallStack"][i]["CallOffset"] = (int)(Ebp->Ret_Addr - Module_Addr);
234
235 LLSD params;
236 // Save 5 params of the call. We don't know the real number of params.
237 if (!IsBadReadPtr(Ebp, sizeof(PSTACK) + 5 * sizeof(DWORD)))
238 {
239 for(int j = 0; j < 5; ++j)
240 {
241 params[j] = (int)Ebp->Param[j];
242 }
243 }
244 info["CallStack"][i]["Parameters"] = params;
245 }
246 info["CallStack"][i]["ReturnAddress"] = (int)Ebp->Ret_Addr;
247 }
248}
249
250BOOL GetThreadCallStack(DWORD thread_id, LLSD& info) 198BOOL GetThreadCallStack(DWORD thread_id, LLSD& info)
251{ 199{
252 if(GetCurrentThreadId() == thread_id) 200 if(GetCurrentThreadId() == thread_id)
@@ -271,7 +219,7 @@ BOOL GetThreadCallStack(DWORD thread_id, LLSD& info)
271 context_struct.ContextFlags = CONTEXT_FULL; 219 context_struct.ContextFlags = CONTEXT_FULL;
272 if(GetThreadContext(thread_handle, &context_struct)) 220 if(GetThreadContext(thread_handle, &context_struct))
273 { 221 {
274 GetCallStackData(&context_struct, info); 222 Get_Call_Stack(NULL, &context_struct, info);
275 result = true; 223 result = true;
276 } 224 }
277 ResumeThread(thread_handle); 225 ResumeThread(thread_handle);
@@ -326,35 +274,143 @@ BOOL WINAPI Get_Module_By_Ret_Addr(PBYTE Ret_Addr, LPWSTR Module_Name, PBYTE & M
326 return found; 274 return found;
327} //Get_Module_By_Ret_Addr 275} //Get_Module_By_Ret_Addr
328 276
277bool has_valid_call_before(PDWORD cur_stack_loc)
278{
279 PBYTE p_first_byte = (PBYTE)(*cur_stack_loc - 1);
280 PBYTE p_second_byte = (PBYTE)(*cur_stack_loc -2);
281 PBYTE p_fifth_byte = (PBYTE)(*cur_stack_loc - 5);
282 PBYTE p_sixth_byte = (PBYTE)(*cur_stack_loc - 6);
283
284 // make sure we can read it
285 if(IsBadReadPtr(p_sixth_byte, 6 * sizeof(BYTE)))
286 {
287 return false;
288 }
289
290 // check for 9a + 4 bytes
291 if(*p_fifth_byte == 0x9A)
292 {
293 return true;
294 }
295
296 // Check for E8 + 4 bytes and last byte is 00 or FF
297 if(*p_fifth_byte == 0xE8 && (*p_first_byte == 0x00 || *p_first_byte == 0xFF))
298 {
299 return true;
300 }
301
302 // the other is six bytes
303 if(*p_sixth_byte == 0xFF || *p_second_byte == 0xFF)
304 {
305 return true;
306 }
307
308 return false;
309}
310
311PBYTE get_valid_frame(PBYTE esp)
312{
313 PDWORD cur_stack_loc = NULL;
314 const int max_search = 400;
315 WCHAR module_name[MAX_PATH];
316 PBYTE module_addr = 0;
317
318 // round to highest multiple of four
319 esp = (esp + (4 - ((int)esp % 4)) % 4);
320
321 // scroll through stack a few hundred places.
322 for (cur_stack_loc = (PDWORD) esp; cur_stack_loc < (PDWORD)esp + max_search; cur_stack_loc += 1)
323 {
324 // if you can read the pointer,
325 if (IsBadReadPtr(cur_stack_loc, sizeof(PDWORD)))
326 {
327 continue;
328 }
329
330 // check if it's in a module
331 if (!Get_Module_By_Ret_Addr((PBYTE)*cur_stack_loc, module_name, module_addr))
332 {
333 continue;
334 }
335
336 // check if the code before the instruction ptr is a call
337 if(!has_valid_call_before(cur_stack_loc))
338 {
339 continue;
340 }
341
342 // if these all pass, return that ebp, otherwise continue till we're dead
343 return (PBYTE)(cur_stack_loc - 1);
344 }
345
346 return NULL;
347}
348
349bool shouldUseStackWalker(PSTACK Ebp, int max_depth)
350{
351 WCHAR Module_Name[MAX_PATH];
352 PBYTE Module_Addr = 0;
353 int depth = 0;
354
355 while (depth < max_depth)
356 {
357 if (IsBadReadPtr(Ebp, sizeof(PSTACK)) ||
358 IsBadReadPtr(Ebp->Ebp, sizeof(PSTACK)) ||
359 Ebp->Ebp < Ebp ||
360 Ebp->Ebp - Ebp > 0xFFFFFF ||
361 IsBadCodePtr(FARPROC(Ebp->Ebp->Ret_Addr)) ||
362 !Get_Module_By_Ret_Addr(Ebp->Ebp->Ret_Addr, Module_Name, Module_Addr))
363 {
364 return true;
365 }
366 depth++;
367 Ebp = Ebp->Ebp;
368 }
369
370 return false;
371}
372
329//****************************************************************** 373//******************************************************************
330void WINAPI Get_Call_Stack(PEXCEPTION_POINTERS pException, LLSD& info) 374void WINAPI Get_Call_Stack(const EXCEPTION_RECORD* exception_record,
375 const CONTEXT* context_record,
376 LLSD& info)
331//****************************************************************** 377//******************************************************************
332// Fill Str with call stack info. 378// Fill Str with call stack info.
333// pException can be either GetExceptionInformation() or NULL. 379// pException can be either GetExceptionInformation() or NULL.
334// If pException = NULL - get current call stack. 380// If pException = NULL - get current call stack.
335{ 381{
336 LPWSTR Module_Name = new WCHAR[MAX_PATH]; 382 LPWSTR Module_Name = new WCHAR[MAX_PATH];
337 PBYTE Module_Addr = 0; 383 PBYTE Module_Addr = 0;
338 384 LLSD params;
339 typedef struct STACK 385 PBYTE Esp = NULL;
340 { 386 LLSD tmp_info;
341 STACK * Ebp; 387
342 PBYTE Ret_Addr; 388 bool fake_frame = false;
343 DWORD Param[0]; 389 bool ebp_used = false;
344 } STACK, * PSTACK; 390 const int HEURISTIC_MAX_WALK = 20;
391 int heuristic_walk_i = 0;
392 int Ret_Addr_I = 0;
345 393
346 STACK Stack = {0, 0}; 394 STACK Stack = {0, 0};
347 PSTACK Ebp; 395 PSTACK Ebp;
348 396
349 if (pException) //fake frame for exception address 397 if (exception_record && context_record) //fake frame for exception address
350 { 398 {
351 Stack.Ebp = (PSTACK)pException->ContextRecord->Ebp; 399 Stack.Ebp = (PSTACK)(context_record->Ebp);
352 Stack.Ret_Addr = (PBYTE)pException->ExceptionRecord->ExceptionAddress; 400 Stack.Ret_Addr = (PBYTE)exception_record->ExceptionAddress;
353 Ebp = &Stack; 401 Ebp = &Stack;
402 Esp = (PBYTE) context_record->Esp;
403 fake_frame = true;
404 }
405 else if(context_record)
406 {
407 Ebp = (PSTACK)(context_record->Ebp);
408 Esp = (PBYTE)(context_record->Esp);
354 } 409 }
355 else 410 else
356 { 411 {
357 Ebp = (PSTACK)&pException - 1; //frame addr of Get_Call_Stack() 412 Ebp = (PSTACK)&exception_record - 1; //frame addr of Get_Call_Stack()
413 Esp = (PBYTE)&exception_record;
358 414
359 // Skip frame of Get_Call_Stack(). 415 // Skip frame of Get_Call_Stack().
360 if (!IsBadReadPtr(Ebp, sizeof(PSTACK))) 416 if (!IsBadReadPtr(Ebp, sizeof(PSTACK)))
@@ -363,22 +419,21 @@ void WINAPI Get_Call_Stack(PEXCEPTION_POINTERS pException, LLSD& info)
363 419
364 // Trace CALL_TRACE_MAX calls maximum - not to exceed DUMP_SIZE_MAX. 420 // Trace CALL_TRACE_MAX calls maximum - not to exceed DUMP_SIZE_MAX.
365 // Break trace on wrong stack frame. 421 // Break trace on wrong stack frame.
366 for (int Ret_Addr_I = 0, i = 0; 422 for (Ret_Addr_I = 0;
367 (Ret_Addr_I < CALL_TRACE_MAX) && !IsBadReadPtr(Ebp, sizeof(PSTACK)) && !IsBadCodePtr(FARPROC(Ebp->Ret_Addr)); 423 heuristic_walk_i < HEURISTIC_MAX_WALK &&
368 Ret_Addr_I++, Ebp = Ebp->Ebp, ++i) 424 Ret_Addr_I < CALL_TRACE_MAX && !IsBadReadPtr(Ebp, sizeof(PSTACK)) && !IsBadCodePtr(FARPROC(Ebp->Ret_Addr));
425 Ret_Addr_I++)
369 { 426 {
370 // If module with Ebp->Ret_Addr found. 427 // If module with Ebp->Ret_Addr found.
371
372 if (Get_Module_By_Ret_Addr(Ebp->Ret_Addr, Module_Name, Module_Addr)) 428 if (Get_Module_By_Ret_Addr(Ebp->Ret_Addr, Module_Name, Module_Addr))
373 { 429 {
374 // Save module's address and full path. 430 // Save module's address and full path.
375 info["CallStack"][i]["ModuleName"] = ll_convert_wide_to_string(Module_Name); 431 tmp_info["CallStack"][Ret_Addr_I]["ModuleName"] = ll_convert_wide_to_string(Module_Name);
376 info["CallStack"][i]["ModuleAddress"] = (int)Module_Addr; 432 tmp_info["CallStack"][Ret_Addr_I]["ModuleAddress"] = (int)Module_Addr;
377 info["CallStack"][i]["CallOffset"] = (int)(Ebp->Ret_Addr - Module_Addr); 433 tmp_info["CallStack"][Ret_Addr_I]["CallOffset"] = (int)(Ebp->Ret_Addr - Module_Addr);
378 434
379 LLSD params;
380 // Save 5 params of the call. We don't know the real number of params. 435 // Save 5 params of the call. We don't know the real number of params.
381 if (pException && !Ret_Addr_I) //fake frame for exception address 436 if (fake_frame && !Ret_Addr_I) //fake frame for exception address
382 params[0] = "Exception Offset"; 437 params[0] = "Exception Offset";
383 else if (!IsBadReadPtr(Ebp, sizeof(PSTACK) + 5 * sizeof(DWORD))) 438 else if (!IsBadReadPtr(Ebp, sizeof(PSTACK) + 5 * sizeof(DWORD)))
384 { 439 {
@@ -387,10 +442,64 @@ void WINAPI Get_Call_Stack(PEXCEPTION_POINTERS pException, LLSD& info)
387 params[j] = (int)Ebp->Param[j]; 442 params[j] = (int)Ebp->Param[j];
388 } 443 }
389 } 444 }
390 info["CallStack"][i]["Parameters"] = params; 445 tmp_info["CallStack"][Ret_Addr_I]["Parameters"] = params;
391 } 446 }
392 info["CallStack"][i]["ReturnAddress"] = (int)Ebp->Ret_Addr; 447
448 tmp_info["CallStack"][Ret_Addr_I]["ReturnAddress"] = (int)Ebp->Ret_Addr;
449
450 // get ready for next frame
451 // Set ESP to just after return address. Not the real esp, but just enough after the return address
452 if(!fake_frame) {
453 Esp = (PBYTE)Ebp + 8;
454 }
455 else
456 {
457 fake_frame = false;
458 }
459
460 // is next ebp valid?
461 // only run if we've never found a good ebp
462 // and make sure the one after is valid as well
463 if( !ebp_used &&
464 shouldUseStackWalker(Ebp, 2))
465 {
466 heuristic_walk_i++;
467 PBYTE new_ebp = get_valid_frame(Esp);
468 if (new_ebp != NULL)
469 {
470 Ebp = (PSTACK)new_ebp;
471 }
472 }
473 else
474 {
475 ebp_used = true;
476 Ebp = Ebp->Ebp;
477 }
478 }
479/* TODO remove or turn this code back on to edit the stack after i see a few raw ones. -Palmer
480 // Now go back through and edit out heuristic stacks that could very well be bogus.
481 // Leave the top and the last 3 stack chosen by the heuristic, however.
482 if(heuristic_walk_i > 2)
483 {
484 info["CallStack"][0] = tmp_info["CallStack"][0];
485 std::string ttest = info["CallStack"][0]["ModuleName"];
486 for(int cur_frame = 1;
487 (cur_frame + heuristic_walk_i - 2 < Ret_Addr_I);
488 ++cur_frame)
489 {
490 // edit out the middle heuristic found frames
491 info["CallStack"][cur_frame] = tmp_info["CallStack"][cur_frame + heuristic_walk_i - 2];
492 }
493 }
494 else
495 {
496 info = tmp_info;
393 } 497 }
498*/
499 info = tmp_info;
500 info["HeuristicWalkI"] = heuristic_walk_i;
501 info["EbpUsed"] = ebp_used;
502
394} //Get_Call_Stack 503} //Get_Call_Stack
395 504
396//*********************************** 505//***********************************
@@ -429,7 +538,7 @@ LLSD WINAPI Get_Exception_Info(PEXCEPTION_POINTERS pException)
429 FILETIME Last_Write_Time; 538 FILETIME Last_Write_Time;
430 FILETIME Local_File_Time; 539 FILETIME Local_File_Time;
431 SYSTEMTIME T; 540 SYSTEMTIME T;
432 541
433 Str = new WCHAR[DUMP_SIZE_MAX]; 542 Str = new WCHAR[DUMP_SIZE_MAX];
434 Str_Len = 0; 543 Str_Len = 0;
435 if (!Str) 544 if (!Str)
@@ -439,6 +548,7 @@ LLSD WINAPI Get_Exception_Info(PEXCEPTION_POINTERS pException)
439 548
440 GetModuleFileName(NULL, Str, MAX_PATH); 549 GetModuleFileName(NULL, Str, MAX_PATH);
441 info["Process"] = ll_convert_wide_to_string(Str); 550 info["Process"] = ll_convert_wide_to_string(Str);
551 info["ThreadID"] = (S32)GetCurrentThreadId();
442 552
443 // If exception occurred. 553 // If exception occurred.
444 if (pException) 554 if (pException)
@@ -506,7 +616,7 @@ LLSD WINAPI Get_Exception_Info(PEXCEPTION_POINTERS pException)
506 } //if (pException) 616 } //if (pException)
507 617
508 // Save call stack info. 618 // Save call stack info.
509 Get_Call_Stack(pException, info); 619 Get_Call_Stack(pException->ExceptionRecord, pException->ContextRecord, info);
510 620
511 return info; 621 return info;
512} //Get_Exception_Info 622} //Get_Exception_Info
@@ -552,6 +662,58 @@ void LLMemoryReserve::release()
552 662
553static LLMemoryReserve gEmergencyMemoryReserve; 663static LLMemoryReserve gEmergencyMemoryReserve;
554 664
665#ifndef _M_IX86
666 #error "The following code only works for x86!"
667#endif
668LPTOP_LEVEL_EXCEPTION_FILTER WINAPI MyDummySetUnhandledExceptionFilter(
669 LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter)
670{
671 if(lpTopLevelExceptionFilter == gFilterFunc)
672 return gFilterFunc;
673
674 llinfos << "Someone tried to set the exception filter. Listing call stack modules" << llendl;
675 LLSD cs_info;
676 Get_Call_Stack(NULL, NULL, cs_info);
677
678 if(cs_info.has("CallStack") && cs_info["CallStack"].isArray())
679 {
680 LLSD cs = cs_info["CallStack"];
681 for(LLSD::array_iterator i = cs.beginArray();
682 i != cs.endArray();
683 ++i)
684 {
685 llinfos << "Module: " << (*i)["ModuleName"] << llendl;
686 }
687 }
688
689 return gFilterFunc;
690}
691
692BOOL PreventSetUnhandledExceptionFilter()
693{
694 HMODULE hKernel32 = LoadLibrary(_T("kernel32.dll"));
695 if (hKernel32 == NULL)
696 return FALSE;
697
698 void *pOrgEntry = GetProcAddress(hKernel32, "SetUnhandledExceptionFilter");
699 if(pOrgEntry == NULL)
700 return FALSE;
701
702 unsigned char newJump[ 100 ];
703 DWORD dwOrgEntryAddr = (DWORD)pOrgEntry;
704 dwOrgEntryAddr += 5; // add 5 for 5 op-codes for jmp far
705 void *pNewFunc = &MyDummySetUnhandledExceptionFilter;
706 DWORD dwNewEntryAddr = (DWORD) pNewFunc;
707 DWORD dwRelativeAddr = dwNewEntryAddr - dwOrgEntryAddr;
708
709 newJump[ 0 ] = 0xE9; // JMP absolute
710 memcpy(&newJump[ 1 ], &dwRelativeAddr, sizeof(pNewFunc));
711 SIZE_T bytesWritten;
712 BOOL bRet = WriteProcessMemory(GetCurrentProcess(),
713 pOrgEntry, newJump, sizeof(pNewFunc) + 1, &bytesWritten);
714 return bRet;
715}
716
555// static 717// static
556void LLWinDebug::initExceptionHandler(LPTOP_LEVEL_EXCEPTION_FILTER filter_func) 718void LLWinDebug::initExceptionHandler(LPTOP_LEVEL_EXCEPTION_FILTER filter_func)
557{ 719{
@@ -602,6 +764,9 @@ void LLWinDebug::initExceptionHandler(LPTOP_LEVEL_EXCEPTION_FILTER filter_func)
602 LPTOP_LEVEL_EXCEPTION_FILTER prev_filter; 764 LPTOP_LEVEL_EXCEPTION_FILTER prev_filter;
603 prev_filter = SetUnhandledExceptionFilter(filter_func); 765 prev_filter = SetUnhandledExceptionFilter(filter_func);
604 766
767 // *REMOVE:Mani
768 //PreventSetUnhandledExceptionFilter();
769
605 if(prev_filter != gFilterFunc) 770 if(prev_filter != gFilterFunc)
606 { 771 {
607 LL_WARNS("AppInit") 772 LL_WARNS("AppInit")
@@ -737,3 +902,10 @@ void LLWinDebug::generateCrashStacks(struct _EXCEPTION_POINTERS *exception_infop
737 LLSDSerialize::toPrettyXML(info, out_file); 902 LLSDSerialize::toPrettyXML(info, out_file);
738 out_file.close(); 903 out_file.close();
739} 904}
905
906void LLWinDebug::clearCrashStacks()
907{
908 LLSD info;
909 std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "SecondLifeException.log");
910 LLFile::remove(dump_path);
911}
diff --git a/linden/indra/newview/llwindebug.h b/linden/indra/newview/llwindebug.h
index eef2340..13a580c 100644
--- a/linden/indra/newview/llwindebug.h
+++ b/linden/indra/newview/llwindebug.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2004&license=viewergpl$ 5 * $LicenseInfo:firstyear=2004&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2004-2008, Linden Research, Inc. 7 * Copyright (c) 2004-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -39,7 +39,6 @@ class LLWinDebug
39{ 39{
40public: 40public:
41 41
42
43 /** 42 /**
44 * @brief initialize the llwindebug exception filter callback 43 * @brief initialize the llwindebug exception filter callback
45 * 44 *
@@ -66,6 +65,8 @@ public:
66 static bool checkExceptionHandler(); 65 static bool checkExceptionHandler();
67 66
68 static void generateCrashStacks(struct _EXCEPTION_POINTERS *pExceptionInfo = NULL); 67 static void generateCrashStacks(struct _EXCEPTION_POINTERS *pExceptionInfo = NULL);
68 static void clearCrashStacks(); // Delete the crash stack file(s).
69
69 static void writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMATION *ExInfop, const std::string& filename); 70 static void writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMATION *ExInfop, const std::string& filename);
70private: 71private:
71}; 72};
diff --git a/linden/indra/newview/llwlanimator.cpp b/linden/indra/newview/llwlanimator.cpp
index d87c379..4a4ec2f 100644
--- a/linden/indra/newview/llwlanimator.cpp
+++ b/linden/indra/newview/llwlanimator.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwlanimator.h b/linden/indra/newview/llwlanimator.h
index 18c730a..16cd6c5 100644
--- a/linden/indra/newview/llwlanimator.h
+++ b/linden/indra/newview/llwlanimator.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwldaycycle.cpp b/linden/indra/newview/llwldaycycle.cpp
index 2bf9e58..e7168fb 100644
--- a/linden/indra/newview/llwldaycycle.cpp
+++ b/linden/indra/newview/llwldaycycle.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwldaycycle.h b/linden/indra/newview/llwldaycycle.h
index 1438306..d344067 100644
--- a/linden/indra/newview/llwldaycycle.h
+++ b/linden/indra/newview/llwldaycycle.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwlparammanager.cpp b/linden/indra/newview/llwlparammanager.cpp
index 1707fe9..c1723f7 100644
--- a/linden/indra/newview/llwlparammanager.cpp
+++ b/linden/indra/newview/llwlparammanager.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -106,84 +106,65 @@ LLWLParamManager::~LLWLParamManager()
106 106
107void LLWLParamManager::loadPresets(const std::string& file_name) 107void LLWLParamManager::loadPresets(const std::string& file_name)
108{ 108{
109 // if fileName exists, use legacy loading form the big file, otherwise, search the sky 109 std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", ""));
110 // directory, and add the list 110 LL_INFOS2("AppInit", "Shaders") << "Loading Default WindLight settings from " << path_name << LL_ENDL;
111 if(file_name != "") 111
112 bool found = true;
113 while(found)
112 { 114 {
113 std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight", file_name)); 115 std::string name;
114 LL_INFOS2("AppInit", "Shaders") << "Loading WindLight settings from " << path_name << LL_ENDL; 116 found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name, false);
115 117 if(found)
116 llifstream presetsXML(path_name);
117
118 if (presetsXML)
119 { 118 {
120 LLSD paramsData(LLSD::emptyMap());
121 119
122 LLPointer<LLSDParser> parser = new LLSDXMLParser(); 120 name=name.erase(name.length()-4);
123 121
124 parser->parse(presetsXML, paramsData, LLSDSerialize::SIZE_UNLIMITED); 122 // bugfix for SL-46920: preventing filenames that break stuff.
123 char * curl_str = curl_unescape(name.c_str(), name.size());
124 std::string unescaped_name(curl_str);
125 curl_free(curl_str);
126 curl_str = NULL;
125 127
126 LLSD::map_const_iterator endParams = paramsData.endMap(); 128 LL_DEBUGS2("AppInit", "Shaders") << "name: " << name << LL_ENDL;
127 for(LLSD::map_const_iterator curParams = paramsData.beginMap(); 129 loadPreset(unescaped_name,FALSE);
128 curParams != endParams;
129 ++curParams)
130 {
131 addParamSet(curParams->first, curParams->second);
132 }
133 } 130 }
134 } 131 }
135 132
136 // otherwise, search the sky directory and find things there 133 // And repeat for user presets, note the user presets will modify any system presets already loaded
137 else 134
135 std::string path_name2(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/skies", ""));
136 LL_INFOS2("AppInit", "Shaders") << "Loading User WindLight settings from " << path_name2 << LL_ENDL;
137
138 found = true;
139 while(found)
138 { 140 {
139 std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", "")); 141 std::string name;
140 LL_INFOS2("AppInit", "Shaders") << "Loading WindLight settings from " << path_name << LL_ENDL; 142 found = gDirUtilp->getNextFileInDir(path_name2, "*.xml", name, false);
141 143 if(found)
142 //mParamList.clear();
143
144 bool found = true;
145 while(found)
146 { 144 {
147 std::string name; 145 name=name.erase(name.length()-4);
148 found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name, false); 146
147 // bugfix for SL-46920: preventing filenames that break stuff.
148 char * curl_str = curl_unescape(name.c_str(), name.size());
149 std::string unescaped_name(curl_str);
150 curl_free(curl_str);
151 curl_str = NULL;
149 152
150 LL_DEBUGS2("AppInit", "Shaders") << "name: " << name << LL_ENDL; 153 LL_DEBUGS2("AppInit", "Shaders") << "name: " << name << LL_ENDL;
151 154 loadPreset(unescaped_name,FALSE);
152 // if we have one
153 if(found)
154 {
155 // bugfix for SL-46920: preventing filenames that break stuff.
156 char * curl_str = curl_unescape(name.c_str(), name.size());
157 std::string unescaped_name(curl_str);
158 curl_free(curl_str);
159 curl_str = NULL;
160
161 // not much error checking here since we're getting rid of this
162 std::string sky_name = unescaped_name.substr(0, unescaped_name.size() - 4);
163
164 std::string cur_path(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", name));
165 LL_DEBUGS2("AppInit", "Shaders") << "Loading sky from " << cur_path << LL_ENDL;
166
167 llifstream sky_xml(cur_path);
168 if (sky_xml)
169 {
170 LLSD sky_data(LLSD::emptyMap());
171 LLPointer<LLSDParser> parser = new LLSDXMLParser();
172 parser->parse(sky_xml, sky_data, LLSDSerialize::SIZE_UNLIMITED);
173
174 addParamSet(sky_name, sky_data);
175 sky_xml.close();
176 }
177 }
178 } 155 }
179 } 156 }
157
180} 158}
181 159
182void LLWLParamManager::savePresets(const std::string & fileName) 160void LLWLParamManager::savePresets(const std::string & fileName)
183{ 161{
162 //Nobody currently calls me, but if they did, then its reasonable to write the data out to the user's folder
163 //and not over the RO system wide version.
164
184 LLSD paramsData(LLSD::emptyMap()); 165 LLSD paramsData(LLSD::emptyMap());
185 166
186 std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight", fileName)); 167 std::string pathName(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight", fileName));
187 168
188 for(std::map<std::string, LLWLParamSet>::iterator mIt = mParamList.begin(); 169 for(std::map<std::string, LLWLParamSet>::iterator mIt = mParamList.begin();
189 mIt != mParamList.end(); 170 mIt != mParamList.end();
@@ -201,8 +182,9 @@ void LLWLParamManager::savePresets(const std::string & fileName)
201 presetsXML.close(); 182 presetsXML.close();
202} 183}
203 184
204void LLWLParamManager::loadPreset(const std::string & name) 185void LLWLParamManager::loadPreset(const std::string & name,bool propagate)
205{ 186{
187
206 // bugfix for SL-46920: preventing filenames that break stuff. 188 // bugfix for SL-46920: preventing filenames that break stuff.
207 char * curl_str = curl_escape(name.c_str(), name.size()); 189 char * curl_str = curl_escape(name.c_str(), name.size());
208 std::string escaped_filename(curl_str); 190 std::string escaped_filename(curl_str);
@@ -214,7 +196,16 @@ void LLWLParamManager::loadPreset(const std::string & name)
214 std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", escaped_filename)); 196 std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", escaped_filename));
215 llinfos << "Loading WindLight sky setting from " << pathName << llendl; 197 llinfos << "Loading WindLight sky setting from " << pathName << llendl;
216 198
217 llifstream presetsXML(pathName); 199 llifstream presetsXML;
200 presetsXML.open(pathName.c_str());
201
202 // That failed, try loading from the users area instead.
203 if(!presetsXML)
204 {
205 pathName=gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/skies", escaped_filename);
206 llinfos << "Loading User WindLight sky setting from " << pathName << llendl;
207 presetsXML.open(pathName.c_str());
208 }
218 209
219 if (presetsXML) 210 if (presetsXML)
220 { 211 {
@@ -241,10 +232,13 @@ void LLWLParamManager::loadPreset(const std::string & name)
241 return; 232 return;
242 } 233 }
243 234
244 getParamSet(name, mCurParams); 235
245 236 if(propagate)
246 propagateParameters(); 237 {
247} 238 getParamSet(name, mCurParams);
239 propagateParameters();
240 }
241}
248 242
249void LLWLParamManager::savePreset(const std::string & name) 243void LLWLParamManager::savePreset(const std::string & name)
250{ 244{
@@ -258,7 +252,7 @@ void LLWLParamManager::savePreset(const std::string & name)
258 252
259 // make an empty llsd 253 // make an empty llsd
260 LLSD paramsData(LLSD::emptyMap()); 254 LLSD paramsData(LLSD::emptyMap());
261 std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", escaped_filename)); 255 std::string pathName(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/skies", escaped_filename));
262 256
263 // fill it with LLSD windlight params 257 // fill it with LLSD windlight params
264 paramsData = mParamList[name].getAll(); 258 paramsData = mParamList[name].getAll();
@@ -533,7 +527,7 @@ bool LLWLParamManager::removeParamSet(const std::string& name, bool delete_from_
533 527
534 if(delete_from_disk) 528 if(delete_from_disk)
535 { 529 {
536 std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", "")); 530 std::string path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/skies", ""));
537 531
538 // use full curl escaped name 532 // use full curl escaped name
539 char * curl_str = curl_escape(name.c_str(), name.size()); 533 char * curl_str = curl_escape(name.c_str(), name.size());
diff --git a/linden/indra/newview/llwlparammanager.h b/linden/indra/newview/llwlparammanager.h
index 7094051..1d9291c 100644
--- a/linden/indra/newview/llwlparammanager.h
+++ b/linden/indra/newview/llwlparammanager.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$ 5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc. 7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -135,7 +135,7 @@ public:
135 void savePresets(const std::string & fileName); 135 void savePresets(const std::string & fileName);
136 136
137 /// load an individual preset into the sky 137 /// load an individual preset into the sky
138 void loadPreset(const std::string & name); 138 void loadPreset(const std::string & name,bool propogate=true);
139 139
140 /// save the parameter presets to file 140 /// save the parameter presets to file
141 void savePreset(const std::string & name); 141 void savePreset(const std::string & name);
@@ -195,7 +195,6 @@ public:
195 // singleton pattern implementation 195 // singleton pattern implementation
196 static LLWLParamManager * instance(); 196 static LLWLParamManager * instance();
197 197
198
199public: 198public:
200 199
201 // helper variables 200 // helper variables
diff --git a/linden/indra/newview/llwlparamset.cpp b/linden/indra/newview/llwlparamset.cpp
index 5cb93fb..023d5b1 100644
--- a/linden/indra/newview/llwlparamset.cpp
+++ b/linden/indra/newview/llwlparamset.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llwlparamset.h b/linden/indra/newview/llwlparamset.h
index 721627a..b9a3013 100644
--- a/linden/indra/newview/llwlparamset.h
+++ b/linden/indra/newview/llwlparamset.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llworld.cpp b/linden/indra/newview/llworld.cpp
index 4dee103..04f9e25 100644
--- a/linden/indra/newview/llworld.cpp
+++ b/linden/indra/newview/llworld.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -32,6 +32,7 @@
32#include "llviewerprecompiledheaders.h" 32#include "llviewerprecompiledheaders.h"
33 33
34#include "llworld.h" 34#include "llworld.h"
35#include "llrender.h"
35 36
36#include "indra_constants.h" 37#include "indra_constants.h"
37#include "llstl.h" 38#include "llstl.h"
@@ -108,7 +109,7 @@ LLWorld::LLWorld() :
108 *(default_texture++) = MAX_WATER_COLOR.mV[3]; 109 *(default_texture++) = MAX_WATER_COLOR.mV[3];
109 110
110 mDefaultWaterTexturep = new LLViewerImage(raw, FALSE); 111 mDefaultWaterTexturep = new LLViewerImage(raw, FALSE);
111 mDefaultWaterTexturep->bind(); 112 gGL.getTexUnit(0)->bind(mDefaultWaterTexturep.get());
112 mDefaultWaterTexturep->setClamp(TRUE, TRUE); 113 mDefaultWaterTexturep->setClamp(TRUE, TRUE);
113 114
114} 115}
diff --git a/linden/indra/newview/llworld.h b/linden/indra/newview/llworld.h
index 8936a58..7e50bc4 100644
--- a/linden/indra/newview/llworld.h
+++ b/linden/indra/newview/llworld.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llworldmap.cpp b/linden/indra/newview/llworldmap.cpp
index 1048fe9..7311989 100644
--- a/linden/indra/newview/llworldmap.cpp
+++ b/linden/indra/newview/llworldmap.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -498,7 +498,8 @@ void LLWorldMap::processMapLayerReply(LLMessageSystem* msg, void**)
498 new_layer.LayerDefined = TRUE; 498 new_layer.LayerDefined = TRUE;
499 msg->getUUIDFast(_PREHASH_LayerData, _PREHASH_ImageID, new_layer.LayerImageID, block); 499 msg->getUUIDFast(_PREHASH_LayerData, _PREHASH_ImageID, new_layer.LayerImageID, block);
500 new_layer.LayerImage = gImageList.getImage(new_layer.LayerImageID, MIPMAP_TRUE, FALSE); 500 new_layer.LayerImage = gImageList.getImage(new_layer.LayerImageID, MIPMAP_TRUE, FALSE);
501 new_layer.LayerImage->bindTexture(0); 501
502 gGL.getTexUnit(0)->bind(new_layer.LayerImage.get());
502 new_layer.LayerImage->setClamp(TRUE, TRUE); 503 new_layer.LayerImage->setClamp(TRUE, TRUE);
503 504
504 U32 left, right, top, bottom; 505 U32 left, right, top, bottom;
@@ -610,7 +611,7 @@ void LLWorldMap::processMapBlockReply(LLMessageSystem* msg, void**)
610 siminfo->mWaterHeight = (F32) water_height; 611 siminfo->mWaterHeight = (F32) water_height;
611 siminfo->mMapImageID[agent_flags] = image_id; 612 siminfo->mMapImageID[agent_flags] = image_id;
612 siminfo->mCurrentImage = gImageList.getImage(siminfo->mMapImageID[LLWorldMap::getInstance()->mCurrentMap], MIPMAP_TRUE, FALSE); 613 siminfo->mCurrentImage = gImageList.getImage(siminfo->mMapImageID[LLWorldMap::getInstance()->mCurrentMap], MIPMAP_TRUE, FALSE);
613 siminfo->mCurrentImage->bindTexture(0); 614 gGL.getTexUnit(0)->bind(siminfo->mCurrentImage.get());
614 siminfo->mCurrentImage->setClamp(TRUE, TRUE); 615 siminfo->mCurrentImage->setClamp(TRUE, TRUE);
615 616
616 if (siminfo->mMapImageID[2].notNull()) 617 if (siminfo->mMapImageID[2].notNull())
diff --git a/linden/indra/newview/llworldmap.h b/linden/indra/newview/llworldmap.h
index e522acc..33039a5 100644
--- a/linden/indra/newview/llworldmap.h
+++ b/linden/indra/newview/llworldmap.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp
index 0d266dd..244ee22 100644
--- a/linden/indra/newview/llworldmapview.cpp
+++ b/linden/indra/newview/llworldmapview.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -303,7 +303,7 @@ void LLWorldMapView::draw()
303 303
304 LLLocalClipRect clip(getLocalRect()); 304 LLLocalClipRect clip(getLocalRect());
305 { 305 {
306 LLGLSNoTexture no_texture; 306 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
307 307
308 glMatrixMode(GL_MODELVIEW); 308 glMatrixMode(GL_MODELVIEW);
309 309
@@ -379,7 +379,7 @@ void LLWorldMapView::draw()
379 379
380 // Draw using the texture. If we don't clamp we get artifact at 380 // Draw using the texture. If we don't clamp we get artifact at
381 // the edge. 381 // the edge.
382 LLViewerImage::bindTexture(current_image); 382 gGL.getTexUnit(0)->bind(current_image);
383 383
384 // Draw map image into RGB 384 // Draw map image into RGB
385 //gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 385 //gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@@ -387,7 +387,7 @@ void LLWorldMapView::draw()
387 gGL.setColorMask(true, false); 387 gGL.setColorMask(true, false);
388 gGL.color4f(1.f, 1.f, 1.f, layer_alpha); 388 gGL.color4f(1.f, 1.f, 1.f, layer_alpha);
389 389
390 gGL.begin(LLVertexBuffer::QUADS); 390 gGL.begin(LLRender::QUADS);
391 gGL.texCoord2f(0.0f, 1.0f); 391 gGL.texCoord2f(0.0f, 1.0f);
392 gGL.vertex3f(left, top, -1.0f); 392 gGL.vertex3f(left, top, -1.0f);
393 gGL.texCoord2f(0.0f, 0.0f); 393 gGL.texCoord2f(0.0f, 0.0f);
@@ -403,7 +403,7 @@ void LLWorldMapView::draw()
403 gGL.setColorMask(false, true); 403 gGL.setColorMask(false, true);
404 gGL.color4f(1.f, 1.f, 1.f, 1.f); 404 gGL.color4f(1.f, 1.f, 1.f, 1.f);
405 405
406 gGL.begin(LLVertexBuffer::QUADS); 406 gGL.begin(LLRender::QUADS);
407 gGL.texCoord2f(0.0f, 1.0f); 407 gGL.texCoord2f(0.0f, 1.0f);
408 gGL.vertex2f(left, top); 408 gGL.vertex2f(left, top);
409 gGL.texCoord2f(0.0f, 0.0f); 409 gGL.texCoord2f(0.0f, 0.0f);
@@ -436,7 +436,7 @@ void LLWorldMapView::draw()
436 if (info->mOverlayImage.isNull() && info->mMapImageID[2].notNull()) 436 if (info->mOverlayImage.isNull() && info->mMapImageID[2].notNull())
437 { 437 {
438 info->mOverlayImage = gImageList.getImage(info->mMapImageID[2], MIPMAP_TRUE, FALSE); 438 info->mOverlayImage = gImageList.getImage(info->mMapImageID[2], MIPMAP_TRUE, FALSE);
439 info->mOverlayImage->bind(0); 439 gGL.getTexUnit(0)->bind(info->mOverlayImage.get());
440 info->mOverlayImage->setClamp(TRUE, TRUE); 440 info->mOverlayImage->setClamp(TRUE, TRUE);
441 } 441 }
442 442
@@ -538,13 +538,13 @@ void LLWorldMapView::draw()
538 // Draw using the texture. If we don't clamp we get artifact at 538 // Draw using the texture. If we don't clamp we get artifact at
539 // the edge. 539 // the edge.
540 LLGLSUIDefault gls_ui; 540 LLGLSUIDefault gls_ui;
541 LLViewerImage::bindTexture(simimage); 541 gGL.getTexUnit(0)->bind(simimage);
542 542
543 gGL.setSceneBlendType(LLRender::BT_ALPHA); 543 gGL.setSceneBlendType(LLRender::BT_ALPHA);
544 F32 alpha = sim_alpha * info->mAlpha; 544 F32 alpha = sim_alpha * info->mAlpha;
545 gGL.color4f(1.f, 1.0f, 1.0f, alpha); 545 gGL.color4f(1.f, 1.0f, 1.0f, alpha);
546 546
547 gGL.begin(LLVertexBuffer::QUADS); 547 gGL.begin(LLRender::QUADS);
548 gGL.texCoord2f(0.f, 1.f); 548 gGL.texCoord2f(0.f, 1.f);
549 gGL.vertex3f(left, top, 0.f); 549 gGL.vertex3f(left, top, 0.f);
550 gGL.texCoord2f(0.f, 0.f); 550 gGL.texCoord2f(0.f, 0.f);
@@ -557,9 +557,9 @@ void LLWorldMapView::draw()
557 557
558 if (gSavedSettings.getBOOL("MapShowLandForSale") && overlayimage && overlayimage->getHasGLTexture()) 558 if (gSavedSettings.getBOOL("MapShowLandForSale") && overlayimage && overlayimage->getHasGLTexture())
559 { 559 {
560 LLViewerImage::bindTexture(overlayimage); 560 gGL.getTexUnit(0)->bind(overlayimage);
561 gGL.color4f(1.f, 1.f, 1.f, alpha); 561 gGL.color4f(1.f, 1.f, 1.f, alpha);
562 gGL.begin(LLVertexBuffer::QUADS); 562 gGL.begin(LLRender::QUADS);
563 gGL.texCoord2f(0.f, 1.f); 563 gGL.texCoord2f(0.f, 1.f);
564 gGL.vertex3f(left, top, -0.5f); 564 gGL.vertex3f(left, top, -0.5f);
565 gGL.texCoord2f(0.f, 0.f); 565 gGL.texCoord2f(0.f, 0.f);
@@ -579,8 +579,8 @@ void LLWorldMapView::draw()
579 gGL.setColorMask(false, true); 579 gGL.setColorMask(false, true);
580 gGL.color4f(1.f, 1.f, 1.f, 1.f); 580 gGL.color4f(1.f, 1.f, 1.f, 1.f);
581 581
582 LLGLSNoTexture gls_no_texture; 582 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
583 gGL.begin(LLVertexBuffer::QUADS); 583 gGL.begin(LLRender::QUADS);
584 gGL.vertex2f(left, top); 584 gGL.vertex2f(left, top);
585 gGL.vertex2f(left, bottom); 585 gGL.vertex2f(left, bottom);
586 gGL.vertex2f(right, bottom); 586 gGL.vertex2f(right, bottom);
@@ -598,8 +598,8 @@ void LLWorldMapView::draw()
598 gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_SOURCE_ALPHA); 598 gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_SOURCE_ALPHA);
599 gGL.color4f(0.2f, 0.0f, 0.0f, 0.4f); 599 gGL.color4f(0.2f, 0.0f, 0.0f, 0.4f);
600 600
601 LLGLSNoTexture gls_no_texture; 601 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
602 gGL.begin(LLVertexBuffer::QUADS); 602 gGL.begin(LLRender::QUADS);
603 gGL.vertex2f(left, top); 603 gGL.vertex2f(left, top);
604 gGL.vertex2f(left, bottom); 604 gGL.vertex2f(left, bottom);
605 gGL.vertex2f(right, bottom); 605 gGL.vertex2f(right, bottom);
@@ -614,9 +614,9 @@ void LLWorldMapView::draw()
614 { 614 {
615 gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ZERO); 615 gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ZERO);
616 616
617 LLGLSNoTexture gls_no_texture; 617 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
618 gGL.color3f(1.f, 0.f, 0.f); 618 gGL.color3f(1.f, 0.f, 0.f);
619 gGL.begin(LLVertexBuffer::LINES); 619 gGL.begin(LLRender::LINES);
620 gGL.vertex2f(left, top); 620 gGL.vertex2f(left, top);
621 gGL.vertex2f(right, bottom); 621 gGL.vertex2f(right, bottom);
622 gGL.vertex2f(left, bottom); 622 gGL.vertex2f(left, bottom);
@@ -685,7 +685,7 @@ void LLWorldMapView::draw()
685 // Draw background rectangle 685 // Draw background rectangle
686 LLGLSUIDefault gls_ui; 686 LLGLSUIDefault gls_ui;
687 { 687 {
688 LLGLSNoTexture gls_no_texture; 688 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
689 gGL.setAlphaRejectSettings(LLRender::CF_GREATER_EQUAL, 0.f); 689 gGL.setAlphaRejectSettings(LLRender::CF_GREATER_EQUAL, 0.f);
690 gGL.blendFunc(LLRender::BF_ONE_MINUS_DEST_ALPHA, LLRender::BF_DEST_ALPHA); 690 gGL.blendFunc(LLRender::BF_ONE_MINUS_DEST_ALPHA, LLRender::BF_DEST_ALPHA);
691 gGL.color4fv( mBackgroundColor.mV ); 691 gGL.color4fv( mBackgroundColor.mV );
@@ -971,7 +971,7 @@ void LLWorldMapView::drawFrustum()
971 F32 ctr_x = getRect().getWidth() * 0.5f + sPanX; 971 F32 ctr_x = getRect().getWidth() * 0.5f + sPanX;
972 F32 ctr_y = getRect().getHeight() * 0.5f + sPanY; 972 F32 ctr_y = getRect().getHeight() * 0.5f + sPanY;
973 973
974 LLGLSNoTexture gls_no_texture; 974 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
975 975
976 // Since we don't rotate the map, we have to rotate the frustum. 976 // Since we don't rotate the map, we have to rotate the frustum.
977 gGL.pushMatrix(); 977 gGL.pushMatrix();
@@ -980,7 +980,7 @@ void LLWorldMapView::drawFrustum()
980 980
981 // Draw triangle with more alpha in far pixels to make it 981 // Draw triangle with more alpha in far pixels to make it
982 // fade out in distance. 982 // fade out in distance.
983 gGL.begin( LLVertexBuffer::TRIANGLES ); 983 gGL.begin( LLRender::TRIANGLES );
984 gGL.color4f(1.f, 1.f, 1.f, 0.25f); 984 gGL.color4f(1.f, 1.f, 1.f, 0.25f);
985 gGL.vertex2f( 0, 0 ); 985 gGL.vertex2f( 0, 0 );
986 986
@@ -1186,11 +1186,11 @@ static void drawDot(F32 x_pixels, F32 y_pixels,
1186 F32 top = y_pixels + dot_radius; 1186 F32 top = y_pixels + dot_radius;
1187 F32 bottom = y_pixels - dot_radius; 1187 F32 bottom = y_pixels - dot_radius;
1188 1188
1189 LLGLSNoTexture gls_no_texture; 1189 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1190 gGL.color4fv( color.mV ); 1190 gGL.color4fv( color.mV );
1191 LLUI::setLineWidth(1.5f); 1191 LLUI::setLineWidth(1.5f);
1192 F32 h_bar = relative_z > HEIGHT_THRESHOLD ? top : bottom; // horizontal bar Y 1192 F32 h_bar = relative_z > HEIGHT_THRESHOLD ? top : bottom; // horizontal bar Y
1193 gGL.begin( LLVertexBuffer::LINES ); 1193 gGL.begin( LLRender::LINES );
1194 gGL.vertex2f(center, top); 1194 gGL.vertex2f(center, top);
1195 gGL.vertex2f(left, h_bar); 1195 gGL.vertex2f(left, h_bar);
1196 gGL.vertex2f(right, h_bar); 1196 gGL.vertex2f(right, h_bar);
diff --git a/linden/indra/newview/llworldmapview.h b/linden/indra/newview/llworldmapview.h
index 53f0bdd..7e94e19 100644
--- a/linden/indra/newview/llworldmapview.h
+++ b/linden/indra/newview/llworldmapview.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llxmlrpctransaction.cpp b/linden/indra/newview/llxmlrpctransaction.cpp
index f58a506..1324c61 100644
--- a/linden/indra/newview/llxmlrpctransaction.cpp
+++ b/linden/indra/newview/llxmlrpctransaction.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/llxmlrpctransaction.h b/linden/indra/newview/llxmlrpctransaction.h
index 843ca24..eb096f9 100644
--- a/linden/indra/newview/llxmlrpctransaction.h
+++ b/linden/indra/newview/llxmlrpctransaction.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2006&license=viewergpl$ 5 * $LicenseInfo:firstyear=2006&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2006-2008, Linden Research, Inc. 7 * Copyright (c) 2006-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/lsl_guide.html b/linden/indra/newview/lsl_guide.html
deleted file mode 100644
index aa660b8..0000000
--- a/linden/indra/newview/lsl_guide.html
+++ /dev/null
@@ -1,22078 +0,0 @@
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
2<HTML
3><HEAD
4><TITLE
5>Linden Scripting Language Guide</TITLE
6><META
7NAME="GENERATOR"
8CONTENT="Modular DocBook HTML Stylesheet Version 1.79"></HEAD
9><BODY
10CLASS="book"
11BGCOLOR="#FFFFFF"
12TEXT="#000000"
13LINK="#0000FF"
14VLINK="#840084"
15ALINK="#0000FF"
16><DIV
17CLASS="BOOK"
18><A
19NAME="AEN1"
20></A
21><DIV
22CLASS="TITLEPAGE"
23><H1
24CLASS="title"
25><A
26NAME="AEN2"
27>Linden Scripting Language Guide</A
28></H1
29><H3
30CLASS="author"
31><A
32NAME="AEN4"
33></A
34>Aaron Brashears</H3
35><H3
36CLASS="author"
37><A
38NAME="AEN7"
39></A
40>Andrew Meadows</H3
41><H3
42CLASS="author"
43><A
44NAME="AEN10"
45></A
46>Cory Ondrejka</H3
47><H3
48CLASS="author"
49><A
50NAME="AEN13"
51></A
52>Doug Soo</H3
53><H3
54CLASS="author"
55><A
56NAME="AEN16"
57></A
58>Donald Kjer</H3
59><P
60CLASS="copyright"
61>Copyright &copy; 2007 Linden Lab</P
62><DIV
63CLASS="legalnotice"
64><P
65></P
66><A
67NAME="AEN22"
68></A
69><P
70><SPAN
71CLASS="trademark"
72>Linden Lab</SPAN
73>&reg; and
74 <SPAN
75CLASS="trademark"
76>Second Life</SPAN
77>&reg; are registered
78 trademarks of Linden Research, Inc.</P
79><P
80></P
81></DIV
82><HR></DIV
83><DIV
84CLASS="TOC"
85><DL
86><DT
87><B
88>Table of Contents</B
89></DT
90><DT
91>1. <A
92HREF="#AEN27"
93>Introduction</A
94></DT
95><DT
96>2. <A
97HREF="#AEN33"
98>Getting Started</A
99></DT
100><DD
101><DL
102><DT
103>2.1. <A
104HREF="#AEN36"
105>Hello Avatar</A
106></DT
107><DD
108><DL
109><DT
110>2.1.1. <A
111HREF="#AEN50"
112>Creating the Script</A
113></DT
114><DT
115>2.1.2. <A
116HREF="#AEN56"
117>Default State</A
118></DT
119><DT
120>2.1.3. <A
121HREF="#AEN67"
122>Functions</A
123></DT
124><DT
125>2.1.4. <A
126HREF="#AEN82"
127>Touch Event</A
128></DT
129><DT
130>2.1.5. <A
131HREF="#AEN90"
132>Try it Out</A
133></DT
134></DL
135></DD
136><DT
137>2.2. <A
138HREF="#AEN103"
139>Using The Built-In Editor</A
140></DT
141><DT
142>2.3. <A
143HREF="#AEN106"
144>Using Alternative Editors</A
145></DT
146></DL
147></DD
148><DT
149>3. <A
150HREF="#AEN109"
151>Basics</A
152></DT
153><DD
154><DL
155><DT
156>3.1. <A
157HREF="#AEN112"
158>Comments</A
159></DT
160><DT
161>3.2. <A
162HREF="#AEN129"
163>Arithmetic Operations</A
164></DT
165><DD
166><DL
167><DT
168>3.2.1. <A
169HREF="#AEN132"
170>Assignment</A
171></DT
172><DT
173>3.2.2. <A
174HREF="#AEN139"
175>Hexadecimal Entry</A
176></DT
177><DT
178>3.2.3. <A
179HREF="#AEN145"
180>Binary Arithmetic Operators</A
181></DT
182><DT
183>3.2.4. <A
184HREF="#AEN185"
185>Boolean Operators</A
186></DT
187><DT
188>3.2.5. <A
189HREF="#AEN217"
190>Bitwise Operators</A
191></DT
192></DL
193></DD
194><DT
195>3.3. <A
196HREF="#AEN237"
197>Types</A
198></DT
199><DD
200><DL
201><DT
202>3.3.1. <A
203HREF="#AEN318"
204>Type Conversion</A
205></DT
206></DL
207></DD
208><DT
209>3.4. <A
210HREF="#AEN360"
211>Global Functions</A
212></DT
213><DT
214>3.5. <A
215HREF="#AEN365"
216>Global Variables</A
217></DT
218><DT
219>3.6. <A
220HREF="#AEN373"
221>Local Variables</A
222></DT
223></DL
224></DD
225><DT
226>4. <A
227HREF="#AEN378"
228>Flow Control</A
229></DT
230><DD
231><DL
232><DT
233>4.1. <A
234HREF="#AEN381"
235>Conditional Statements</A
236></DT
237><DT
238>4.2. <A
239HREF="#AEN394"
240>Loop Constructs</A
241></DT
242><DD
243><DL
244><DT
245>4.2.1. <A
246HREF="#AEN397"
247>for loop</A
248></DT
249><DT
250>4.2.2. <A
251HREF="#AEN403"
252>do-while loop</A
253></DT
254><DT
255>4.2.3. <A
256HREF="#AEN409"
257>while loop</A
258></DT
259></DL
260></DD
261><DT
262>4.3. <A
263HREF="#AEN415"
264>Jumps</A
265></DT
266><DT
267>4.4. <A
268HREF="#AEN421"
269>State Change</A
270></DT
271></DL
272></DD
273><DT
274>5. <A
275HREF="#AEN427"
276>States</A
277></DT
278><DD
279><DL
280><DT
281>5.1. <A
282HREF="#AEN431"
283>state_entry()</A
284></DT
285><DT
286>5.2. <A
287HREF="#AEN440"
288>state_exit()</A
289></DT
290><DT
291>5.3. <A
292HREF="#AEN449"
293>States vs. Global variables</A
294></DT
295></DL
296></DD
297><DT
298>6. <A
299HREF="#AEN452"
300>Math</A
301></DT
302><DD
303><DL
304><DT
305>6.1. <A
306HREF="#AEN454"
307>Tables of Functions</A
308></DT
309></DL
310></DD
311><DT
312>7. <A
313HREF="#AEN561"
314>Strings</A
315></DT
316><DD
317><DL
318><DT
319>7.1. <A
320HREF="#AEN563"
321>Tables of Functions</A
322></DT
323></DL
324></DD
325><DT
326>8. <A
327HREF="#AEN605"
328>Lists</A
329></DT
330><DD
331><DL
332><DT
333>8.1. <A
334HREF="#AEN607"
335>Tables of Functions</A
336></DT
337></DL
338></DD
339><DT
340>9. <A
341HREF="#AEN670"
342>Communication</A
343></DT
344><DD
345><DL
346><DT
347>9.1. <A
348HREF="#AEN672"
349>Tables of Functions</A
350></DT
351></DL
352></DD
353><DT
354>10. <A
355HREF="#AEN715"
356>Inventory</A
357></DT
358><DD
359><DL
360><DT
361>10.1. <A
362HREF="#AEN717"
363>Tables of Functions</A
364></DT
365></DL
366></DD
367><DT
368>11. <A
369HREF="#AEN768"
370>Vehicles</A
371></DT
372><DD
373><DL
374><DT
375>11.1. <A
376HREF="#AEN790"
377>Overview</A
378></DT
379><DT
380>11.2. <A
381HREF="#AEN801"
382>Warnings</A
383></DT
384><DT
385>11.3. <A
386HREF="#AEN815"
387>Definitions</A
388></DT
389><DT
390>11.4. <A
391HREF="#AEN826"
392>Setting the Vehicle Type</A
393></DT
394><DT
395>11.5. <A
396HREF="#AEN837"
397>Linear and Angular Deflection</A
398></DT
399><DT
400>11.6. <A
401HREF="#AEN853"
402>Moving and Steering the Vehicle</A
403></DT
404><DT
405>11.7. <A
406HREF="#AEN866"
407>The Linear Motor</A
408></DT
409><DT
410>11.8. <A
411HREF="#AEN898"
412>The Angular Motor</A
413></DT
414><DT
415>11.9. <A
416HREF="#AEN921"
417>Using the Camera to Steer</A
418></DT
419><DT
420>11.10. <A
421HREF="#AEN938"
422>The Vertical Attractor</A
423></DT
424><DT
425>11.11. <A
426HREF="#AEN949"
427>Banking</A
428></DT
429><DT
430>11.12. <A
431HREF="#AEN956"
432>Friction Timescales</A
433></DT
434><DT
435>11.13. <A
436HREF="#AEN972"
437>Buoyancy</A
438></DT
439><DT
440>11.14. <A
441HREF="#AEN979"
442>Hover</A
443></DT
444><DT
445>11.15. <A
446HREF="#AEN990"
447>Reference Frame</A
448></DT
449></DL
450></DD
451><DT
452>A. <A
453HREF="#AEN999"
454>Linden Library Functions</A
455></DT
456><DD
457><DL
458><DT
459>A.1. <A
460HREF="#AEN1002"
461>llAbs</A
462></DT
463><DT
464>A.2. <A
465HREF="#AEN1012"
466>llAcos</A
467></DT
468><DT
469>A.3. <A
470HREF="#AEN1022"
471>llAddToLandPassList</A
472></DT
473><DT
474>A.4. <A
475HREF="#AEN1035"
476>llAdjustSoundVolume</A
477></DT
478><DT
479>A.5. <A
480HREF="#AEN1047"
481>llAllowInventoryDrop</A
482></DT
483><DT
484>A.6. <A
485HREF="#AEN1057"
486>llAngleBetween</A
487></DT
488><DT
489>A.7. <A
490HREF="#AEN1070"
491>llApplyImpulse</A
492></DT
493><DT
494>A.8. <A
495HREF="#AEN1083"
496>llApplyRotationalImpulse</A
497></DT
498><DT
499>A.9. <A
500HREF="#AEN1096"
501>llAsin</A
502></DT
503><DT
504>A.10. <A
505HREF="#AEN1106"
506>llAtan2</A
507></DT
508><DT
509>A.11. <A
510HREF="#AEN1119"
511>llAttachToAvatar</A
512></DT
513><DT
514>A.12. <A
515HREF="#AEN1134"
516>llAvatarOnSitTarget</A
517></DT
518><DT
519>A.13. <A
520HREF="#AEN1144"
521>llAxes2Rot</A
522></DT
523><DT
524>A.14. <A
525HREF="#AEN1160"
526>llAxisAngle2Rot</A
527></DT
528><DT
529>A.15. <A
530HREF="#AEN1173"
531>llBase64ToString</A
532></DT
533><DT
534>A.16. <A
535HREF="#AEN1182"
536>llBreakAllLinks</A
537></DT
538><DT
539>A.17. <A
540HREF="#AEN1191"
541>llBreakLink</A
542></DT
543><DT
544>A.18. <A
545HREF="#AEN1202"
546>llCSV2List</A
547></DT
548><DT
549>A.19. <A
550HREF="#AEN1212"
551>llCeil</A
552></DT
553><DT
554>A.20. <A
555HREF="#AEN1222"
556>llCloseRemoteDataChannel</A
557></DT
558><DT
559>A.21. <A
560HREF="#AEN1231"
561>llCloud</A
562></DT
563><DT
564>A.22. <A
565HREF="#AEN1241"
566>llCollisionFilter</A
567></DT
568><DT
569>A.23. <A
570HREF="#AEN1260"
571>llCollisionSound</A
572></DT
573><DT
574>A.24. <A
575HREF="#AEN1272"
576>llCollisionSprite</A
577></DT
578><DT
579>A.25. <A
580HREF="#AEN1282"
581>llCos</A
582></DT
583><DT
584>A.26. <A
585HREF="#AEN1292"
586>llCreateLink</A
587></DT
588><DT
589>A.27. <A
590HREF="#AEN1306"
591>llDeleteSubList</A
592></DT
593><DT
594>A.28. <A
595HREF="#AEN1326"
596>llDeleteSubString</A
597></DT
598><DT
599>A.29. <A
600HREF="#AEN1345"
601>llDetachFromAvatar</A
602></DT
603><DT
604>A.30. <A
605HREF="#lib_lldetected"
606>llDetectedGrab</A
607></DT
608><DT
609>A.31. <A
610HREF="#AEN1365"
611>llDetectedGroup</A
612></DT
613><DT
614>A.32. <A
615HREF="#AEN1375"
616>llDetectedKey</A
617></DT
618><DT
619>A.33. <A
620HREF="#AEN1386"
621>llDetectedLinkNumber</A
622></DT
623><DT
624>A.34. <A
625HREF="#AEN1395"
626>llDetectedName</A
627></DT
628><DT
629>A.35. <A
630HREF="#AEN1406"
631>llDetectedOwner</A
632></DT
633><DT
634>A.36. <A
635HREF="#AEN1417"
636>llDetectedPos</A
637></DT
638><DT
639>A.37. <A
640HREF="#AEN1428"
641>llDetectedRot</A
642></DT
643><DT
644>A.38. <A
645HREF="#AEN1439"
646>llDetectedType</A
647></DT
648><DT
649>A.39. <A
650HREF="#AEN1453"
651>llDetectedVel</A
652></DT
653><DT
654>A.40. <A
655HREF="#AEN1464"
656>llDialog</A
657></DT
658><DT
659>A.41. <A
660HREF="#AEN1481"
661>llDie</A
662></DT
663><DT
664>A.42. <A
665HREF="#AEN1489"
666>llDumpList2String</A
667></DT
668><DT
669>A.43. <A
670HREF="#AEN1500"
671>llEscapeURL</A
672></DT
673><DT
674>A.44. <A
675HREF="#AEN1510"
676>llEdgeOfWorld</A
677></DT
678><DT
679>A.45. <A
680HREF="#AEN1523"
681>llEjectFromLand</A
682></DT
683><DT
684>A.46. <A
685HREF="#AEN1533"
686>llEmail</A
687></DT
688><DT
689>A.47. <A
690HREF="#AEN1549"
691>llEuler2Rot</A
692></DT
693><DT
694>A.48. <A
695HREF="#AEN1559"
696>llFabs</A
697></DT
698><DT
699>A.49. <A
700HREF="#AEN1569"
701>llFloor</A
702></DT
703><DT
704>A.50. <A
705HREF="#AEN1579"
706>llFrand</A
707></DT
708><DT
709>A.51. <A
710HREF="#AEN1589"
711>llGetAccel</A
712></DT
713><DT
714>A.52. <A
715HREF="#AEN1597"
716>llGetAttached</A
717></DT
718><DT
719>A.53. <A
720HREF="#AEN1605"
721>llGetAgentInfo</A
722></DT
723><DT
724>A.54. <A
725HREF="#AEN1616"
726>llGetAgentSize</A
727></DT
728><DT
729>A.55. <A
730HREF="#AEN1626"
731>llGetAlpha</A
732></DT
733><DT
734>A.56. <A
735HREF="#AEN1638"
736>llGetAndResetTime</A
737></DT
738><DT
739>A.57. <A
740HREF="#AEN1648"
741>llGetAnimation</A
742></DT
743><DT
744>A.58. <A
745HREF="#AEN1658"
746>llGetAnimationList</A
747></DT
748><DT
749>A.59. <A
750HREF="#AEN1668"
751>llGetBoundingBox</A
752></DT
753><DT
754>A.60. <A
755HREF="#AEN1678"
756>llGetCenterOfMass</A
757></DT
758><DT
759>A.61. <A
760HREF="#AEN1686"
761>llGetColor</A
762></DT
763><DT
764>A.62. <A
765HREF="#AEN1698"
766>llGetCreator</A
767></DT
768><DT
769>A.63. <A
770HREF="#AEN1706"
771>llGetDate</A
772></DT
773><DT
774>A.64. <A
775HREF="#AEN1714"
776>llGetEnergy</A
777></DT
778><DT
779>A.65. <A
780HREF="#AEN1722"
781>llGetForce</A
782></DT
783><DT
784>A.66. <A
785HREF="#AEN1730"
786>llGetFreeMemory</A
787></DT
788><DT
789>A.67. <A
790HREF="#AEN1738"
791>llGetGeometricCenter</A
792></DT
793><DT
794>A.68. <A
795HREF="#AEN1746"
796>llGetGMTclock</A
797></DT
798><DT
799>A.69. <A
800HREF="#AEN1754"
801>llGetInventoryCreator</A
802></DT
803><DT
804>A.70. <A
805HREF="#AEN1764"
806>llGetInventoryKey</A
807></DT
808><DT
809>A.71. <A
810HREF="#AEN1774"
811>llGetInventoryName</A
812></DT
813><DT
814>A.72. <A
815HREF="#AEN1789"
816>llGetInventoryNumber</A
817></DT
818><DT
819>A.73. <A
820HREF="#AEN1801"
821>llGetInventoryPermMask</A
822></DT
823><DT
824>A.74. <A
825HREF="#AEN1816"
826>llGetInventoryType</A
827></DT
828><DT
829>A.75. <A
830HREF="#AEN1828"
831>llGetKey</A
832></DT
833><DT
834>A.76. <A
835HREF="#AEN1836"
836>llGetLandOwnerAt</A
837></DT
838><DT
839>A.77. <A
840HREF="#AEN1847"
841>llGetLinkKey</A
842></DT
843><DT
844>A.78. <A
845HREF="#AEN1857"
846>llGetLinkName</A
847></DT
848><DT
849>A.79. <A
850HREF="#AEN1867"
851>llGetLinkNumber</A
852></DT
853><DT
854>A.80. <A
855HREF="#AEN1875"
856>llGetListEntryType</A
857></DT
858><DT
859>A.81. <A
860HREF="#AEN1889"
861>llGetListLength</A
862></DT
863><DT
864>A.82. <A
865HREF="#AEN1899"
866>llGetLocalPos</A
867></DT
868><DT
869>A.83. <A
870HREF="#AEN1907"
871>llGetLocalRot</A
872></DT
873><DT
874>A.84. <A
875HREF="#AEN1915"
876>llGetMass</A
877></DT
878><DT
879>A.85. <A
880HREF="#AEN1923"
881>llGetObjectMass</A
882></DT
883><DT
884>A.86. <A
885HREF="#AEN1933"
886>llGetNextEmail</A
887></DT
888><DT
889>A.87. <A
890HREF="#AEN1946"
891>llGetNotecardLine</A
892></DT
893><DT
894>A.88. <A
895HREF="#AEN1964"
896>llGetNumberOfNotecardLines</A
897></DT
898><DT
899>A.89. <A
900HREF="#AEN1977"
901>llGetNumberOfPrims</A
902></DT
903><DT
904>A.90. <A
905HREF="#AEN1985"
906>llGetNumberOfSides</A
907></DT
908><DT
909>A.91. <A
910HREF="#AEN1993"
911>llGetObjectDesc</A
912></DT
913><DT
914>A.92. <A
915HREF="#AEN2001"
916>llGetObjectName</A
917></DT
918><DT
919>A.93. <A
920HREF="#AEN2009"
921>llGetObjectPermMask</A
922></DT
923><DT
924>A.94. <A
925HREF="#AEN2022"
926>llGetOmega</A
927></DT
928><DT
929>A.95. <A
930HREF="#AEN2030"
931>llGetOwner</A
932></DT
933><DT
934>A.96. <A
935HREF="#AEN2038"
936>llGetOwnerKey</A
937></DT
938><DT
939>A.97. <A
940HREF="#AEN2048"
941>llGetPermissions</A
942></DT
943><DT
944>A.98. <A
945HREF="#AEN2058"
946>llGetPermissionsKey</A
947></DT
948><DT
949>A.99. <A
950HREF="#AEN2067"
951>llGetPos</A
952></DT
953><DT
954>A.100. <A
955HREF="#AEN2075"
956>llGetPrimitiveParams</A
957></DT
958><DT
959>A.101. <A
960HREF="#AEN2092"
961>llGetRegionCorner</A
962></DT
963><DT
964>A.102. <A
965HREF="#AEN2100"
966>llGetRegionFPS</A
967></DT
968><DT
969>A.103. <A
970HREF="#AEN2108"
971>llGetRegionName</A
972></DT
973><DT
974>A.104. <A
975HREF="#AEN2116"
976>llGetRegionTimeDilation</A
977></DT
978><DT
979>A.105. <A
980HREF="#AEN2124"
981>llGetRootPosition</A
982></DT
983><DT
984>A.106. <A
985HREF="#AEN2132"
986>llGetRootRotation</A
987></DT
988><DT
989>A.107. <A
990HREF="#AEN2140"
991>llGetRot</A
992></DT
993><DT
994>A.108. <A
995HREF="#AEN2148"
996>llGetScale</A
997></DT
998><DT
999>A.109. <A
1000HREF="#AEN2156"
1001>llGetScriptName</A
1002></DT
1003><DT
1004>A.110. <A
1005HREF="#AEN2164"
1006>llGetStartParameter</A
1007></DT
1008><DT
1009>A.111. <A
1010HREF="#AEN2174"
1011>llGetScriptState</A
1012></DT
1013><DT
1014>A.112. <A
1015HREF="#AEN2184"
1016>llGetStatus</A
1017></DT
1018><DT
1019>A.113. <A
1020HREF="#AEN2195"
1021>llGetSubString</A
1022></DT
1023><DT
1024>A.114. <A
1025HREF="#AEN2214"
1026>llGetSunDirection</A
1027></DT
1028><DT
1029>A.115. <A
1030HREF="#AEN2222"
1031>llGetTexture</A
1032></DT
1033><DT
1034>A.116. <A
1035HREF="#AEN2232"
1036>llGetTextureOffset</A
1037></DT
1038><DT
1039>A.117. <A
1040HREF="#AEN2242"
1041>llGetTextureRot</A
1042></DT
1043><DT
1044>A.118. <A
1045HREF="#AEN2252"
1046>llGetTextureScale</A
1047></DT
1048><DT
1049>A.119. <A
1050HREF="#AEN2262"
1051>llGetTime</A
1052></DT
1053><DT
1054>A.120. <A
1055HREF="#AEN2273"
1056>llGetTimeOfDay</A
1057></DT
1058><DT
1059>A.121. <A
1060HREF="#AEN2281"
1061>llGetTimestamp</A
1062></DT
1063><DT
1064>A.122. <A
1065HREF="#AEN2289"
1066>llGetTorque</A
1067></DT
1068><DT
1069>A.123. <A
1070HREF="#AEN2297"
1071>llGetVel</A
1072></DT
1073><DT
1074>A.124. <A
1075HREF="#AEN2306"
1076>llGetWallclock</A
1077></DT
1078><DT
1079>A.125. <A
1080HREF="#AEN2314"
1081>llGiveInventory</A
1082></DT
1083><DT
1084>A.126. <A
1085HREF="#AEN2326"
1086>llGiveInventoryList</A
1087></DT
1088><DT
1089>A.127. <A
1090HREF="#AEN2342"
1091>llGiveMoney</A
1092></DT
1093><DT
1094>A.128. <A
1095HREF="#AEN2356"
1096>llGround</A
1097></DT
1098><DT
1099>A.129. <A
1100HREF="#AEN2366"
1101>llGroundContour</A
1102></DT
1103><DT
1104>A.130. <A
1105HREF="#AEN2376"
1106>llGroundNormal</A
1107></DT
1108><DT
1109>A.131. <A
1110HREF="#AEN2386"
1111>llGroundRepel</A
1112></DT
1113><DT
1114>A.132. <A
1115HREF="#AEN2405"
1116>llGroundSlope</A
1117></DT
1118><DT
1119>A.133. <A
1120HREF="#AEN2415"
1121>llInsertString</A
1122></DT
1123><DT
1124>A.134. <A
1125HREF="#AEN2431"
1126>llInstantMessage</A
1127></DT
1128><DT
1129>A.135. <A
1130HREF="#AEN2444"
1131>llKey2Name</A
1132></DT
1133><DT
1134>A.136. <A
1135HREF="#AEN2454"
1136>llList2CSV</A
1137></DT
1138><DT
1139>A.137. <A
1140HREF="#AEN2464"
1141>llList2Float</A
1142></DT
1143><DT
1144>A.138. <A
1145HREF="#AEN2477"
1146>llList2Integer</A
1147></DT
1148><DT
1149>A.139. <A
1150HREF="#AEN2490"
1151>llList2Key</A
1152></DT
1153><DT
1154>A.140. <A
1155HREF="#AEN2503"
1156>llList2List</A
1157></DT
1158><DT
1159>A.141. <A
1160HREF="#AEN2526"
1161>llList2ListStrided</A
1162></DT
1163><DT
1164>A.142. <A
1165HREF="#AEN2544"
1166>llList2Rot</A
1167></DT
1168><DT
1169>A.143. <A
1170HREF="#AEN2557"
1171>llList2String</A
1172></DT
1173><DT
1174>A.144. <A
1175HREF="#AEN2570"
1176>llList2Vector</A
1177></DT
1178><DT
1179>A.145. <A
1180HREF="#AEN2583"
1181>llListFindList</A
1182></DT
1183><DT
1184>A.146. <A
1185HREF="#AEN2598"
1186>llListInsertList</A
1187></DT
1188><DT
1189>A.147. <A
1190HREF="#AEN2614"
1191>llListRandomize</A
1192></DT
1193><DT
1194>A.148. <A
1195HREF="#AEN2629"
1196>llListReplaceList</A
1197></DT
1198><DT
1199>A.149. <A
1200HREF="#AEN2648"
1201>llListSort</A
1202></DT
1203><DT
1204>A.150. <A
1205HREF="#AEN2665"
1206>llListen</A
1207></DT
1208><DT
1209>A.151. <A
1210HREF="#AEN2686"
1211>llListenControl</A
1212></DT
1213><DT
1214>A.152. <A
1215HREF="#AEN2701"
1216>llListenRemove</A
1217></DT
1218><DT
1219>A.153. <A
1220HREF="#AEN2712"
1221>llLoadURL</A
1222></DT
1223><DT
1224>A.154. <A
1225HREF="#AEN2731"
1226>llLog</A
1227></DT
1228><DT
1229>A.155. <A
1230HREF="#AEN2742"
1231>llLog10</A
1232></DT
1233><DT
1234>A.156. <A
1235HREF="#AEN2753"
1236>llLookAt</A
1237></DT
1238><DT
1239>A.157. <A
1240HREF="#AEN2773"
1241>llLoopSound</A
1242></DT
1243><DT
1244>A.158. <A
1245HREF="#AEN2790"
1246>llLoopSoundMaster</A
1247></DT
1248><DT
1249>A.159. <A
1250HREF="#AEN2802"
1251>llLoopSoundSlave</A
1252></DT
1253><DT
1254>A.160. <A
1255HREF="#AEN2814"
1256>llMakeExplosion</A
1257></DT
1258><DT
1259>A.161. <A
1260HREF="#AEN2836"
1261>llMakeFire</A
1262></DT
1263><DT
1264>A.162. <A
1265HREF="#AEN2858"
1266>llMakeFountain</A
1267></DT
1268><DT
1269>A.163. <A
1270HREF="#AEN2880"
1271>llMakeSmoke</A
1272></DT
1273><DT
1274>A.164. <A
1275HREF="#AEN2902"
1276>llMD5String</A
1277></DT
1278><DT
1279>A.165. <A
1280HREF="#AEN2919"
1281>llMessageLinked</A
1282></DT
1283><DT
1284>A.166. <A
1285HREF="#AEN2940"
1286>llMinEventDelay</A
1287></DT
1288><DT
1289>A.167. <A
1290HREF="#AEN2949"
1291>llModifyLand</A
1292></DT
1293><DT
1294>A.168. <A
1295HREF="#AEN2963"
1296>llModPow</A
1297></DT
1298><DT
1299>A.169. <A
1300HREF="#AEN2980"
1301>llMoveToTarget</A
1302></DT
1303><DT
1304>A.170. <A
1305HREF="#AEN2995"
1306>llOffsetTexture</A
1307></DT
1308><DT
1309>A.171. <A
1310HREF="#AEN3011"
1311>llOpenRemoteDataChannel</A
1312></DT
1313><DT
1314>A.172. <A
1315HREF="#AEN3019"
1316>llOverMyLand</A
1317></DT
1318><DT
1319>A.173. <A
1320HREF="#AEN3031"
1321>llParcelMediaCommandList</A
1322></DT
1323><DT
1324>A.174. <A
1325HREF="#AEN3091"
1326>llParcelMediaQuery</A
1327></DT
1328><DT
1329>A.175. <A
1330HREF="#AEN3105"
1331>llParseString2List</A
1332></DT
1333><DT
1334>A.176. <A
1335HREF="#AEN3127"
1336>llParseStringKeepNulls</A
1337></DT
1338><DT
1339>A.177. <A
1340HREF="#AEN3149"
1341>llParticleSystem</A
1342></DT
1343><DT
1344>A.178. <A
1345HREF="#AEN3162"
1346>llPassCollisions</A
1347></DT
1348><DT
1349>A.179. <A
1350HREF="#AEN3173"
1351>llPassTouches</A
1352></DT
1353><DT
1354>A.180. <A
1355HREF="#AEN3184"
1356>llPlaySound</A
1357></DT
1358><DT
1359>A.181. <A
1360HREF="#AEN3198"
1361>llPlaySoundSlave</A
1362></DT
1363><DT
1364>A.182. <A
1365HREF="#AEN3210"
1366>llPointAt</A
1367></DT
1368><DT
1369>A.183. <A
1370HREF="#AEN3220"
1371>llPow</A
1372></DT
1373><DT
1374>A.184. <A
1375HREF="#AEN3233"
1376>llPreloadSound</A
1377></DT
1378><DT
1379>A.185. <A
1380HREF="#AEN3243"
1381>llPushObject</A
1382></DT
1383><DT
1384>A.186. <A
1385HREF="#AEN3261"
1386>llReleaseControls</A
1387></DT
1388><DT
1389>A.187. <A
1390HREF="#AEN3271"
1391>llRemoteDataReply</A
1392></DT
1393><DT
1394>A.188. <A
1395HREF="#AEN3284"
1396>llRemoteDataSetRegion</A
1397></DT
1398><DT
1399>A.189. <A
1400HREF="#AEN3292"
1401>llRemoteLoadScript</A
1402></DT
1403><DT
1404>A.190. <A
1405HREF="#AEN3300"
1406>llRemoteLoadScriptPin</A
1407></DT
1408><DT
1409>A.191. <A
1410HREF="#AEN3325"
1411>llRemoveInventory</A
1412></DT
1413><DT
1414>A.192. <A
1415HREF="#AEN3335"
1416>llRemoveVehicleFlags</A
1417></DT
1418><DT
1419>A.193. <A
1420HREF="#AEN3346"
1421>llRequestAgentData</A
1422></DT
1423><DT
1424>A.194. <A
1425HREF="#AEN3363"
1426>llRequestInventoryData</A
1427></DT
1428><DT
1429>A.195. <A
1430HREF="#AEN3375"
1431>llRequestPermissions</A
1432></DT
1433><DT
1434>A.196. <A
1435HREF="#AEN3391"
1436>llRequestSimulatorData</A
1437></DT
1438><DT
1439>A.197. <A
1440HREF="#AEN3408"
1441>llResetScript</A
1442></DT
1443><DT
1444>A.198. <A
1445HREF="#AEN3416"
1446>llResetOtherScript</A
1447></DT
1448><DT
1449>A.199. <A
1450HREF="#AEN3426"
1451>llResetTime</A
1452></DT
1453><DT
1454>A.200. <A
1455HREF="#AEN3434"
1456>llRezAtRoot</A
1457></DT
1458><DT
1459>A.201. <A
1460HREF="#AEN3461"
1461>llRezObject</A
1462></DT
1463><DT
1464>A.202. <A
1465HREF="#AEN3486"
1466>llRot2Angle</A
1467></DT
1468><DT
1469>A.203. <A
1470HREF="#AEN3496"
1471>llRot2Axis</A
1472></DT
1473><DT
1474>A.204. <A
1475HREF="#AEN3506"
1476>llRot2Euler</A
1477></DT
1478><DT
1479>A.205. <A
1480HREF="#AEN3516"
1481>llRot2Fwd</A
1482></DT
1483><DT
1484>A.206. <A
1485HREF="#AEN3526"
1486>llRot2Left</A
1487></DT
1488><DT
1489>A.207. <A
1490HREF="#AEN3536"
1491>llRot2Up</A
1492></DT
1493><DT
1494>A.208. <A
1495HREF="#AEN3546"
1496>llRotBetween</A
1497></DT
1498><DT
1499>A.209. <A
1500HREF="#AEN3559"
1501>llRotLookAt</A
1502></DT
1503><DT
1504>A.210. <A
1505HREF="#AEN3579"
1506>llRotTarget</A
1507></DT
1508><DT
1509>A.211. <A
1510HREF="#AEN3593"
1511>llRotTargetRemove</A
1512></DT
1513><DT
1514>A.212. <A
1515HREF="#AEN3603"
1516>llRotateTexture</A
1517></DT
1518><DT
1519>A.213. <A
1520HREF="#AEN3618"
1521>llRound</A
1522></DT
1523><DT
1524>A.214. <A
1525HREF="#AEN3628"
1526>llSameGroup</A
1527></DT
1528><DT
1529>A.215. <A
1530HREF="#AEN3640"
1531>llSay</A
1532></DT
1533><DT
1534>A.216. <A
1535HREF="#AEN3654"
1536>llScaleTexture</A
1537></DT
1538><DT
1539>A.217. <A
1540HREF="#AEN3671"
1541>llScriptDanger</A
1542></DT
1543><DT
1544>A.218. <A
1545HREF="#AEN3680"
1546>llSendRemoteData</A
1547></DT
1548><DT
1549>A.219. <A
1550HREF="#AEN3693"
1551>llSensor</A
1552></DT
1553><DT
1554>A.220. <A
1555HREF="#AEN3720"
1556>llSensorRemove</A
1557></DT
1558><DT
1559>A.221. <A
1560HREF="#AEN3728"
1561>llSensorRepeat</A
1562></DT
1563><DT
1564>A.222. <A
1565HREF="#AEN3758"
1566>llSetAlpha</A
1567></DT
1568><DT
1569>A.223. <A
1570HREF="#AEN3773"
1571>llSetBuoyancy</A
1572></DT
1573><DT
1574>A.224. <A
1575HREF="#AEN3782"
1576>llSetCameraAtOffset</A
1577></DT
1578><DT
1579>A.225. <A
1580HREF="#AEN3791"
1581>llSetClickAction</A
1582></DT
1583><DT
1584>A.226. <A
1585HREF="#AEN3800"
1586>llForceMouselook</A
1587></DT
1588><DT
1589>A.227. <A
1590HREF="#AEN3809"
1591>llSetCameraEyeOffset</A
1592></DT
1593><DT
1594>A.228. <A
1595HREF="#AEN3818"
1596>llSetColor</A
1597></DT
1598><DT
1599>A.229. <A
1600HREF="#AEN3832"
1601>llSetDamage</A
1602></DT
1603><DT
1604>A.230. <A
1605HREF="#AEN3841"
1606>llSetForce</A
1607></DT
1608><DT
1609>A.231. <A
1610HREF="#AEN3855"
1611>llSetForceAndTorque</A
1612></DT
1613><DT
1614>A.232. <A
1615HREF="#AEN3872"
1616>llSetHoverHeight</A
1617></DT
1618><DT
1619>A.233. <A
1620HREF="#AEN3887"
1621>llSetLinkAlpha</A
1622></DT
1623><DT
1624>A.234. <A
1625HREF="#AEN3906"
1626>llSetLinkColor</A
1627></DT
1628><DT
1629>A.235. <A
1630HREF="#AEN3925"
1631>llSetLinkPrimitiveParams</A
1632></DT
1633><DT
1634>A.236. <A
1635HREF="#AEN3941"
1636>llSetLinkTexture</A
1637></DT
1638><DT
1639>A.237. <A
1640HREF="#AEN3960"
1641>llSetLocalRot</A
1642></DT
1643><DT
1644>A.238. <A
1645HREF="#AEN3969"
1646>llSetObjectDesc</A
1647></DT
1648><DT
1649>A.239. <A
1650HREF="#AEN3979"
1651>llSetObjectName</A
1652></DT
1653><DT
1654>A.240. <A
1655HREF="#AEN3989"
1656>llSetParcelMusicURL</A
1657></DT
1658><DT
1659>A.241. <A
1660HREF="#AEN3999"
1661>llSetPayPrice</A
1662></DT
1663><DT
1664>A.242. <A
1665HREF="#AEN4011"
1666>llSetPos</A
1667></DT
1668><DT
1669>A.243. <A
1670HREF="#AEN4020"
1671>llSetPrimitiveParams</A
1672></DT
1673><DT
1674>A.244. <A
1675HREF="#AEN4034"
1676>llSetRemoteScriptAccessPin</A
1677></DT
1678><DT
1679>A.245. <A
1680HREF="#AEN4043"
1681>llSetRot</A
1682></DT
1683><DT
1684>A.246. <A
1685HREF="#AEN4052"
1686>llSetScale</A
1687></DT
1688><DT
1689>A.247. <A
1690HREF="#AEN4061"
1691>llSetScriptState</A
1692></DT
1693><DT
1694>A.248. <A
1695HREF="#AEN4072"
1696>llSetSitText</A
1697></DT
1698><DT
1699>A.249. <A
1700HREF="#AEN4082"
1701>llSetSoundQueueing</A
1702></DT
1703><DT
1704>A.250. <A
1705HREF="#AEN4095"
1706>llSetStatus</A
1707></DT
1708><DT
1709>A.251. <A
1710HREF="#AEN4110"
1711>llSetText</A
1712></DT
1713><DT
1714>A.252. <A
1715HREF="#AEN4126"
1716>llSetTexture</A
1717></DT
1718><DT
1719>A.253. <A
1720HREF="#AEN4140"
1721>llSetTextureAnim</A
1722></DT
1723><DT
1724>A.254. <A
1725HREF="#AEN4188"
1726>llSetTimerEvent</A
1727></DT
1728><DT
1729>A.255. <A
1730HREF="#AEN4200"
1731>llSetTorque</A
1732></DT
1733><DT
1734>A.256. <A
1735HREF="#AEN4214"
1736>llSetTouchText</A
1737></DT
1738><DT
1739>A.257. <A
1740HREF="#AEN4224"
1741>llSetVehicleFlags</A
1742></DT
1743><DT
1744>A.258. <A
1745HREF="#AEN4235"
1746>llSetVehicleFloatParam</A
1747></DT
1748><DT
1749>A.259. <A
1750HREF="#AEN4249"
1751>llSetVehicleType</A
1752></DT
1753><DT
1754>A.260. <A
1755HREF="#AEN4260"
1756>llSetVehicleRotationParam</A
1757></DT
1758><DT
1759>A.261. <A
1760HREF="#AEN4274"
1761>llSetVehicleVectorParam</A
1762></DT
1763><DT
1764>A.262. <A
1765HREF="#AEN4288"
1766>llShout</A
1767></DT
1768><DT
1769>A.263. <A
1770HREF="#AEN4302"
1771>llSin</A
1772></DT
1773><DT
1774>A.264. <A
1775HREF="#AEN4312"
1776>llSitTarget</A
1777></DT
1778><DT
1779>A.265. <A
1780HREF="#AEN4325"
1781>llSleep</A
1782></DT
1783><DT
1784>A.266. <A
1785HREF="#AEN4335"
1786>llSqrt</A
1787></DT
1788><DT
1789>A.267. <A
1790HREF="#AEN4346"
1791>llStartAnimation</A
1792></DT
1793><DT
1794>A.268. <A
1795HREF="#AEN4578"
1796>llStopAnimation</A
1797></DT
1798><DT
1799>A.269. <A
1800HREF="#AEN4588"
1801>llStopHover</A
1802></DT
1803><DT
1804>A.270. <A
1805HREF="#AEN4596"
1806>llStopLookAt</A
1807></DT
1808><DT
1809>A.271. <A
1810HREF="#AEN4604"
1811>llStopMoveToTarget</A
1812></DT
1813><DT
1814>A.272. <A
1815HREF="#AEN4612"
1816>llStopPointAt</A
1817></DT
1818><DT
1819>A.273. <A
1820HREF="#AEN4620"
1821>llStopSound</A
1822></DT
1823><DT
1824>A.274. <A
1825HREF="#AEN4631"
1826>llStringLength</A
1827></DT
1828><DT
1829>A.275. <A
1830HREF="#AEN4641"
1831>llSubStringIndex</A
1832></DT
1833><DT
1834>A.276. <A
1835HREF="#AEN4652"
1836>llStringToBase64</A
1837></DT
1838><DT
1839>A.277. <A
1840HREF="#AEN4661"
1841>llTakeControls</A
1842></DT
1843><DT
1844>A.278. <A
1845HREF="#AEN4678"
1846>llTan</A
1847></DT
1848><DT
1849>A.279. <A
1850HREF="#AEN4688"
1851>llTarget</A
1852></DT
1853><DT
1854>A.280. <A
1855HREF="#AEN4701"
1856>llTargetOmega</A
1857></DT
1858><DT
1859>A.281. <A
1860HREF="#AEN4718"
1861>llTargetRemove</A
1862></DT
1863><DT
1864>A.282. <A
1865HREF="#AEN4728"
1866>llTeleportAgentHome</A
1867></DT
1868><DT
1869>A.283. <A
1870HREF="#AEN4737"
1871>llToLower</A
1872></DT
1873><DT
1874>A.284. <A
1875HREF="#AEN4746"
1876>llToUpper</A
1877></DT
1878><DT
1879>A.285. <A
1880HREF="#AEN4756"
1881>llTriggerSound</A
1882></DT
1883><DT
1884>A.286. <A
1885HREF="#AEN4770"
1886>llTriggerSoundLimited</A
1887></DT
1888><DT
1889>A.287. <A
1890HREF="#AEN4790"
1891>llUnescapeURL</A
1892></DT
1893><DT
1894>A.288. <A
1895HREF="#AEN4800"
1896>llUnSit</A
1897></DT
1898><DT
1899>A.289. <A
1900HREF="#AEN4810"
1901>llVecDist</A
1902></DT
1903><DT
1904>A.290. <A
1905HREF="#AEN4823"
1906>llVecMag</A
1907></DT
1908><DT
1909>A.291. <A
1910HREF="#AEN4833"
1911>llVecNorm</A
1912></DT
1913><DT
1914>A.292. <A
1915HREF="#AEN4843"
1916>llVolumeDetect</A
1917></DT
1918><DT
1919>A.293. <A
1920HREF="#AEN4852"
1921>llWater</A
1922></DT
1923><DT
1924>A.294. <A
1925HREF="#AEN4862"
1926>llWhisper</A
1927></DT
1928><DT
1929>A.295. <A
1930HREF="#AEN4876"
1931>llWind</A
1932></DT
1933><DT
1934>A.296. <A
1935HREF="#AEN4886"
1936>llXorBase64Strings</A
1937></DT
1938></DL
1939></DD
1940><DT
1941>B. <A
1942HREF="#AEN4899"
1943>Events</A
1944></DT
1945><DD
1946><DL
1947><DT
1948>B.1. <A
1949HREF="#AEN4902"
1950>at_rot_target</A
1951></DT
1952><DT
1953>B.2. <A
1954HREF="#AEN4916"
1955>at_target</A
1956></DT
1957><DT
1958>B.3. <A
1959HREF="#AEN4930"
1960>attach</A
1961></DT
1962><DT
1963>B.4. <A
1964HREF="#AEN4940"
1965>changed</A
1966></DT
1967><DT
1968>B.5. <A
1969HREF="#AEN4951"
1970>collision</A
1971></DT
1972><DT
1973>B.6. <A
1974HREF="#AEN4961"
1975>collision_end</A
1976></DT
1977><DT
1978>B.7. <A
1979HREF="#AEN4971"
1980>collision_start</A
1981></DT
1982><DT
1983>B.8. <A
1984HREF="#AEN4981"
1985>control</A
1986></DT
1987><DT
1988>B.9. <A
1989HREF="#AEN4997"
1990>dataserver</A
1991></DT
1992><DT
1993>B.10. <A
1994HREF="#AEN5012"
1995>email</A
1996></DT
1997><DT
1998>B.11. <A
1999HREF="#AEN5030"
2000>land_collision</A
2001></DT
2002><DT
2003>B.12. <A
2004HREF="#AEN5039"
2005>land_collision_end</A
2006></DT
2007><DT
2008>B.13. <A
2009HREF="#AEN5048"
2010>land_collision_start</A
2011></DT
2012><DT
2013>B.14. <A
2014HREF="#AEN5057"
2015>link_message</A
2016></DT
2017><DT
2018>B.15. <A
2019HREF="#AEN5073"
2020>listen</A
2021></DT
2022><DT
2023>B.16. <A
2024HREF="#AEN5092"
2025>money</A
2026></DT
2027><DT
2028>B.17. <A
2029HREF="#AEN5105"
2030>moving_end</A
2031></DT
2032><DT
2033>B.18. <A
2034HREF="#AEN5113"
2035>moving_start</A
2036></DT
2037><DT
2038>B.19. <A
2039HREF="#AEN5121"
2040>no_sensor</A
2041></DT
2042><DT
2043>B.20. <A
2044HREF="#AEN5130"
2045>not_at_rot_target</A
2046></DT
2047><DT
2048>B.21. <A
2049HREF="#AEN5139"
2050>not_at_target</A
2051></DT
2052><DT
2053>B.22. <A
2054HREF="#AEN5148"
2055>object_rez</A
2056></DT
2057><DT
2058>B.23. <A
2059HREF="#AEN5159"
2060>on_rez</A
2061></DT
2062><DT
2063>B.24. <A
2064HREF="#AEN5171"
2065>run_time_permissions</A
2066></DT
2067><DT
2068>B.25. <A
2069HREF="#AEN5183"
2070>sensor</A
2071></DT
2072><DT
2073>B.26. <A
2074HREF="#AEN5195"
2075>state_entry</A
2076></DT
2077><DT
2078>B.27. <A
2079HREF="#AEN5203"
2080>state_exit</A
2081></DT
2082><DT
2083>B.28. <A
2084HREF="#AEN5211"
2085>timer</A
2086></DT
2087><DT
2088>B.29. <A
2089HREF="#AEN5220"
2090>touch</A
2091></DT
2092><DT
2093>B.30. <A
2094HREF="#AEN5231"
2095>touch_end</A
2096></DT
2097><DT
2098>B.31. <A
2099HREF="#AEN5242"
2100>touch_start</A
2101></DT
2102><DT
2103>B.32. <A
2104HREF="#AEN5253"
2105>remote_data</A
2106></DT
2107></DL
2108></DD
2109><DT
2110>C. <A
2111HREF="#AEN5292"
2112>Constants</A
2113></DT
2114><DD
2115><DL
2116><DT
2117>C.1. <A
2118HREF="#AEN5295"
2119>Boolean Constants</A
2120></DT
2121><DT
2122>C.2. <A
2123HREF="#AEN5304"
2124>Status Constants</A
2125></DT
2126><DT
2127>C.3. <A
2128HREF="#AEN5338"
2129>Object Type Constants</A
2130></DT
2131><DT
2132>C.4. <A
2133HREF="#AEN5360"
2134>Permission Constants</A
2135></DT
2136><DT
2137>C.5. <A
2138HREF="#AEN5411"
2139>Inventory Constants</A
2140></DT
2141><DT
2142>C.6. <A
2143HREF="#AEN5434"
2144>Pay Price Constants</A
2145></DT
2146><DT
2147>C.7. <A
2148HREF="#AEN5448"
2149>Attachment Constants</A
2150></DT
2151><DT
2152>C.8. <A
2153HREF="#AEN5574"
2154>Land Constants</A
2155></DT
2156><DT
2157>C.9. <A
2158HREF="#AEN5616"
2159>Link Constants</A
2160></DT
2161><DT
2162>C.10. <A
2163HREF="#AEN5643"
2164>Control Constants</A
2165></DT
2166><DT
2167>C.11. <A
2168HREF="#AEN5690"
2169>Change Constants</A
2170></DT
2171><DT
2172>C.12. <A
2173HREF="#AEN5733"
2174>Type Constants</A
2175></DT
2176><DT
2177>C.13. <A
2178HREF="#AEN5767"
2179>Agent Info Constants</A
2180></DT
2181><DT
2182>C.14. <A
2183HREF="#AEN5817"
2184>Texture Animation
2185 Constants</A
2186></DT
2187><DT
2188>C.15. <A
2189HREF="#AEN5851"
2190>Particle System Constants</A
2191></DT
2192><DT
2193>C.16. <A
2194HREF="#AEN6005"
2195>Agent Data Constants</A
2196></DT
2197><DT
2198>C.17. <A
2199HREF="#AEN6041"
2200>Float Constants</A
2201></DT
2202><DT
2203>C.18. <A
2204HREF="#AEN6070"
2205>Key Constant</A
2206></DT
2207><DT
2208>C.19. <A
2209HREF="#AEN6073"
2210>Miscellaneous Integer Constants</A
2211></DT
2212><DT
2213>C.20. <A
2214HREF="#AEN6076"
2215>Miscellaneous String
2216 Constants</A
2217></DT
2218><DT
2219>C.21. <A
2220HREF="#AEN6080"
2221>Vector Constant</A
2222></DT
2223><DT
2224>C.22. <A
2225HREF="#AEN6083"
2226>Rotation Constant</A
2227></DT
2228><DT
2229>C.23. <A
2230HREF="#AEN6086"
2231>Simulator Data Constants</A
2232></DT
2233><DT
2234>C.24. <A
2235HREF="#AEN6112"
2236>Vehicle Parameters</A
2237></DT
2238><DT
2239>C.25. <A
2240HREF="#AEN6231"
2241>Vehicle Flags</A
2242></DT
2243><DT
2244>C.26. <A
2245HREF="#AEN6288"
2246>Vehicle Types</A
2247></DT
2248><DT
2249>C.27. <A
2250HREF="#AEN6323"
2251>Primitive Constants</A
2252></DT
2253><DT
2254>C.28. <A
2255HREF="#AEN6409"
2256>XML-RPC Constants</A
2257></DT
2258><DT
2259>C.29. <A
2260HREF="#AEN6412"
2261>Permission Mask Constants</A
2262></DT
2263><DT
2264>C.30. <A
2265HREF="#AEN6459"
2266>Parcel Media Constants</A
2267></DT
2268><DT
2269>C.31. <A
2270HREF="#AEN6521"
2271>Click Action Constants</A
2272></DT
2273></DL
2274></DD
2275></DL
2276></DIV
2277><DIV
2278CLASS="LOT"
2279><DL
2280CLASS="LOT"
2281><DT
2282><B
2283>List of Tables</B
2284></DT
2285><DT
2286>3-1. <A
2287HREF="#AEN148"
2288>Binary Arithmetic Operators</A
2289></DT
2290><DT
2291>3-2. <A
2292HREF="#AEN188"
2293>Boolean Operators</A
2294></DT
2295><DT
2296>3-3. <A
2297HREF="#AEN220"
2298>Bitwise Operators</A
2299></DT
2300><DT
2301>3-4. <A
2302HREF="#AEN258"
2303>Vector Arithmetic Operators</A
2304></DT
2305><DT
2306>3-5. <A
2307HREF="#AEN282"
2308>Rotation Arithmetic Operators</A
2309></DT
2310><DT
2311>6-1. <A
2312HREF="#AEN456"
2313>Trigonometry Functions</A
2314></DT
2315><DT
2316>6-2. <A
2317HREF="#AEN505"
2318>Vector Functions</A
2319></DT
2320><DT
2321>6-3. <A
2322HREF="#AEN521"
2323>Rotation Functions</A
2324></DT
2325><DT
2326>7-1. <A
2327HREF="#AEN565"
2328>String Functions</A
2329></DT
2330><DT
2331>8-1. <A
2332HREF="#AEN609"
2333>List Functions</A
2334></DT
2335><DT
2336>9-1. <A
2337HREF="#AEN674"
2338>In World Functions</A
2339></DT
2340><DT
2341>9-2. <A
2342HREF="#AEN699"
2343>Messaging Functions</A
2344></DT
2345><DT
2346>10-1. <A
2347HREF="#AEN719"
2348>Inventory Functions</A
2349></DT
2350></DL
2351></DIV
2352><DIV
2353CLASS="chapter"
2354><HR><H1
2355><A
2356NAME="AEN27"
2357></A
2358>Chapter 1. Introduction</H1
2359><P
2360>The Linden Scripting Language (LSL) is a simple, powerful
2361 language used to attach behaviors to the objects found in Second
2362 Life. It follows the familiar syntax of a c/Java style language,
2363 with an implicit state machine for every script.</P
2364><P
2365>Multiple scripts may also be attached to the same object,
2366 allowing a style of small, single-function scripts to evolve. This
2367 leads to scripts that perform specific functions ("hover", "follow",
2368 etc.) and allows them to be combined to form new behaviors.</P
2369><P
2370>The text of the script is compiled into an executable byte
2371 code, much like Java. This byte code is then run within a virtual
2372 machine on the simulator. Each script receives a time slice of the
2373 total simulator time allocated to scripts, so a simulator with many
2374 scripts would allow each individual script less time rather than
2375 degrading its own performance. In addition, each script executes
2376 within its own chunk of memory, preventing scripts from writing into
2377 protected simulator memory or into other scripts, making it much
2378 harder for scripts to crash the simulator.</P
2379><P
2380>This tutorial introduces the reader to the basic features of
2381 LSL, how to edit and apply your scripts, and a complete reference
2382 for standard linden constants, events, and library functions.</P
2383></DIV
2384><DIV
2385CLASS="chapter"
2386><HR><H1
2387><A
2388NAME="AEN33"
2389></A
2390>Chapter 2. Getting Started</H1
2391><P
2392>You're probably wondering what you can do with LSL, and how
2393 quickly you can do it. We'll start with some simple examples, dissect
2394 them, and introduce you the script development process while
2395 we're at it.</P
2396><DIV
2397CLASS="section"
2398><HR><H2
2399CLASS="section"
2400><A
2401NAME="AEN36"
2402>2.1. Hello Avatar</A
2403></H2
2404><P
2405>Continuing a long tradition of getting started by looking at
2406 a script that says "Hello", we'll do just that. Though obviously
2407 not a particularly useful example on it's own, this example will
2408 introduce us to:</P
2409><P
2410></P
2411><UL
2412><LI
2413><P
2414>Creating a basic script</P
2415></LI
2416><LI
2417><P
2418>Script states</P
2419></LI
2420><LI
2421><P
2422>Calling functions</P
2423></LI
2424><LI
2425><P
2426>Script events</P
2427></LI
2428><LI
2429><P
2430>Applying a script to an object</P
2431></LI
2432></UL
2433><DIV
2434CLASS="section"
2435><HR><H3
2436CLASS="section"
2437><A
2438NAME="AEN50"
2439>2.1.1. Creating the Script</A
2440></H3
2441><P
2442>Start by opening your inventory and selecting 'Create|New
2443 Script' from the inventory pull down menu. This will create an
2444 empty script called 'New Script' in your 'Scripts'
2445 folder. Double click on the text or icon of the script to open
2446 the script in the built in editor. When you open the script, the
2447 viewer will automatically insert a basic skeleton for lsl. It
2448 should look like:</P
2449><P
2450><PRE
2451CLASS="programlisting"
2452>&#13;default
2453{
2454 state_entry()
2455 {
2456 llSay(0, "Hello, Avatar!");
2457 }
2458
2459 touch_start(integer total_number)
2460 {
2461 llSay(0, "Touched.");
2462 }
2463}
2464 </PRE
2465></P
2466><P
2467>A casual inspection of this script reveals that this script
2468 probably says 'Hello, Avatar!' when it enters some state, and it
2469 says 'Touched.' when it is touched. But since this is also
2470 probably the first time you have seen a script we'll dissect this
2471 short listing, explaining each segment individually.</P
2472></DIV
2473><DIV
2474CLASS="section"
2475><HR><H3
2476CLASS="section"
2477><A
2478NAME="AEN56"
2479>2.1.2. Default State</A
2480></H3
2481><P
2482><DIV
2483CLASS="informalexample"
2484><P
2485></P
2486><A
2487NAME="AEN59"
2488></A
2489><PRE
2490CLASS="programlisting"
2491>&#13;default
2492{
2493...
2494}
2495 </PRE
2496><P
2497></P
2498></DIV
2499></P
2500><P
2501>All LSL scripts have a simple implicit state machine with
2502 one or more states. All scripts must have a default state, so
2503 if there is only one state, it will be the 'default'
2504 state. When a script is first started or reset, it will start
2505 out in the default state.</P
2506><P
2507>The default state is declared by placing the default at
2508 the root level of the document, and marking the beginning with
2509 an open brace '{' and ending with a close brace '}'. Because of
2510 it's privileged status, you do not declare that it is fact a
2511 state like you normally would with other states.</P
2512><P
2513>Every time you enter a state, the script engine will
2514 automatically call the state_entry() event and execute the code
2515 found there. On state exit, the script engine will automatically
2516 call the state_exit() event before calling the next state's
2517 state_entry handler. In our example, we call the
2518 <A
2519HREF="#AEN3640"
2520>llSay()</A
2521>
2522 function in state_entry() and do not bother to define a
2523 state_exit() handler. the state entry and exit handlers are a
2524 convenient place to initialize state data and clean up state
2525 specific data such as listen event callback.</P
2526><P
2527>You can read more about the default state, and how to
2528 create and utilize other states in the <A
2529HREF="#AEN427"
2530>states chapter</A
2531>.</P
2532></DIV
2533><DIV
2534CLASS="section"
2535><HR><H3
2536CLASS="section"
2537><A
2538NAME="AEN67"
2539>2.1.3. Functions</A
2540></H3
2541><P
2542>The language comes with well over 200 <A
2543HREF="#AEN999"
2544>built in functions</A
2545> which allow scripts and
2546 objects to interact with their environment. All of the built in
2547 functions start with 'll'.</P
2548><P
2549>The example calls the <A
2550HREF="#AEN3640"
2551>llSay()</A
2552>
2553 function twice, which is used to emit text on the specified channel.
2554 </P
2555><DIV
2556CLASS="funcsynopsis"
2557><P
2558></P
2559><A
2560NAME="AEN73"
2561></A
2562><P
2563><CODE
2564><CODE
2565CLASS="FUNCDEF"
2566>llSay</CODE
2567>(
2568 integer channel
2569 string text
2570 );</CODE
2571></P
2572><P
2573></P
2574></DIV
2575><P
2576>Say text on channel. Channel 0 is the public chat channel
2577 that all avatars see as chat text. Channels 1 to 2,147,483,648
2578 are private channels that aren't sent to avatars but other
2579 scripts can listen for.</P
2580><P
2581>You can define your own functions as long as the name does
2582 not conflict with a reserved word, built in constant, or built
2583 in function.</P
2584></DIV
2585><DIV
2586CLASS="section"
2587><HR><H3
2588CLASS="section"
2589><A
2590NAME="AEN82"
2591>2.1.4. Touch Event</A
2592></H3
2593><P
2594><DIV
2595CLASS="informalexample"
2596><P
2597></P
2598><A
2599NAME="AEN85"
2600></A
2601><PRE
2602CLASS="programlisting"
2603>&#13;touch_start(integer total_number)
2604{
2605 llSay(0, "Touched.");
2606}
2607 </PRE
2608><P
2609></P
2610></DIV
2611></P
2612><P
2613>There are many <A
2614HREF="#AEN4899"
2615>events</A
2616> that can
2617 be detected in your scripts by declaring a handler. The
2618 <A
2619HREF="#AEN5242"
2620> touch_start()</A
2621>
2622 event is raised when a
2623 user touches the object through the user interface.</P
2624></DIV
2625><DIV
2626CLASS="section"
2627><HR><H3
2628CLASS="section"
2629><A
2630NAME="AEN90"
2631>2.1.5. Try it Out</A
2632></H3
2633><P
2634>Now that we have seen the default script, and examined it
2635 in some detail, it is time to see the script in action. Save
2636 the script by clicking on <SPAN
2637CLASS="guibutton"
2638>Save</SPAN
2639>. During
2640 the save process, the editor will save the text of the script
2641 and compile the script into bytecode and then save that. When
2642 you see message 'Compile successful!' in the preview window, you
2643 know the compile and save is done.</P
2644><P
2645>To test the script you will have to apply it to an object
2646 in the world. Create a new object in the world by
2647 <SPAN
2648CLASS="mousebutton"
2649>context clicking</SPAN
2650> in the main world
2651 view and selecting <SPAN
2652CLASS="guimenu"
2653>Create</SPAN
2654>. When the wand
2655 appears, you can create a simple primitive by
2656 <SPAN
2657CLASS="mousebutton"
2658>clicking</SPAN
2659> in the world. Once the
2660 object appears, you can drag your newly created script onto the
2661 object to start the script.</P
2662><P
2663>Soon after dragging the script onto the object, you will
2664 see the message <SAMP
2665CLASS="computeroutput"
2666>Object: Hello
2667 Avatar!</SAMP
2668></P
2669><P
2670>Make sure the touch event is working by
2671 <SPAN
2672CLASS="mousebutton"
2673>clicking</SPAN
2674> on the object. You should
2675 see the message <SAMP
2676CLASS="computeroutput"
2677>Touched printed into the chat
2678 history.</SAMP
2679></P
2680></DIV
2681></DIV
2682><DIV
2683CLASS="section"
2684><HR><H2
2685CLASS="section"
2686><A
2687NAME="AEN103"
2688>2.2. Using The Built-In Editor</A
2689></H2
2690><P
2691>The built in editor comes with most of the typical features
2692 you would expect from a basic text editor. Highlight text with the
2693 mouse, or by holding down the shift key while using the arrow
2694 keys. You can cut, copy, paste, and delete your selection using
2695 the 'Edit' pull down menu or by pressing the usual shortcut
2696 key.</P
2697></DIV
2698><DIV
2699CLASS="section"
2700><HR><H2
2701CLASS="section"
2702><A
2703NAME="AEN106"
2704>2.3. Using Alternative Editors</A
2705></H2
2706><P
2707>Since the built-in editor supports pasting text from the
2708 clipboard, you can employ a different editor to edit your scripts,
2709 copying them into Second Life when you're ready to save them.</P
2710></DIV
2711></DIV
2712><DIV
2713CLASS="chapter"
2714><HR><H1
2715><A
2716NAME="AEN109"
2717></A
2718>Chapter 3. Basics</H1
2719><P
2720>Now that we have seen a very simple script in action, we need
2721 to look at the our toolchest for writing scripts. The next set of
2722 tools we will consider are the basic building blocks for programming
2723 a script, and will be used in every non-trivial script you write.</P
2724><DIV
2725CLASS="section"
2726><HR><H2
2727CLASS="section"
2728><A
2729NAME="AEN112"
2730>3.1. Comments</A
2731></H2
2732><P
2733>Commenting your scripts is a good idea, and will help when
2734 you update and modify the script, or when you adapt parts of it
2735 into other scripts. Unless the meaning is obvious, you should add
2736 comments:</P
2737><P
2738><P
2739></P
2740><UL
2741><LI
2742><P
2743>at the start of the script to explain the
2744 purpose of the script</P
2745></LI
2746><LI
2747><P
2748>before every global variable to describe what
2749 it holds</P
2750></LI
2751><LI
2752><P
2753>before every global function to describe what
2754 it does</P
2755></LI
2756><LI
2757><P
2758>sprinkled through your script wherever the code
2759 solves a problem that took you more than a few minutes to
2760 figure out.</P
2761></LI
2762></UL
2763></P
2764><P
2765>LSL uses Java/C++ style single line comments.</P
2766><P
2767><DIV
2768CLASS="informalexample"
2769><P
2770></P
2771><A
2772NAME="AEN127"
2773></A
2774><PRE
2775CLASS="programlisting"
2776>&#13;// This script toggles a the rotation of an object
2777
2778// g_is_rotating stores the current state of the rotation. TRUE is
2779// rotating, FALSE otherwise.
2780integer g_is_rotating = FALSE;
2781default
2782{
2783 // toggle state during the touch handler
2784 touch(integer num)
2785 {
2786 if(g_is_rotating)
2787 {
2788 // turn off rotation
2789 llTargetOmega(&#60;0,0,1&#62;, 0, 0);
2790 g_is_rotating = FALSE;
2791 }
2792 else
2793 {
2794 // rotate around the positive z axis - up.
2795 llTargetOmega(&#60;0,0,1&#62;, 4, 1);
2796 g_is_rotating = TRUE;
2797 }
2798 }
2799}
2800 </PRE
2801><P
2802></P
2803></DIV
2804></P
2805></DIV
2806><DIV
2807CLASS="section"
2808><HR><H2
2809CLASS="section"
2810><A
2811NAME="AEN129"
2812>3.2. Arithmetic Operations</A
2813></H2
2814><P
2815>Most of the common arithmetic operations are supported in
2816 lsl, and follow the C/Java syntax.</P
2817><DIV
2818CLASS="section"
2819><HR><H3
2820CLASS="section"
2821><A
2822NAME="AEN132"
2823>3.2.1. Assignment</A
2824></H3
2825><P
2826>The most common arithmetic operation is assignment,
2827 denoted with the '=' sign. Loosely translated, it means, take
2828 what you find on the right hand side of the equal sign and
2829 assign it to the left hand side. Any expression that evaluates
2830 to a basic type can be used as the right hand side of an
2831 assignment, but the left hand side must be a normal
2832 variable.</P
2833><P
2834>All basic types support assignment '=', equality '==' and
2835 inequality '!=' operators.</P
2836><P
2837><DIV
2838CLASS="informalexample"
2839><P
2840></P
2841><A
2842NAME="AEN137"
2843></A
2844><PRE
2845CLASS="programlisting"
2846>&#13;// variables to hold a information about the target
2847key g_target;
2848vector g_target_postion;
2849float g_target_distance;
2850
2851// function that demonstrates assignment
2852set_globals(key target, vector pos)
2853{
2854 g_target = target;
2855 g_target_position = pos;
2856
2857 // assignment from the return value of a function
2858 vector my_pos = llGetPos();
2859 g_target_distance = llVecDist(g_target_position, my_pos);
2860}
2861 </PRE
2862><P
2863></P
2864></DIV
2865></P
2866></DIV
2867><DIV
2868CLASS="section"
2869><HR><H3
2870CLASS="section"
2871><A
2872NAME="AEN139"
2873>3.2.2. Hexadecimal Entry</A
2874></H3
2875><P
2876>Integers may be entered in hex form (e.g. 0xffff). For example:</P
2877><P
2878><DIV
2879CLASS="informalexample"
2880><P
2881></P
2882><A
2883NAME="AEN143"
2884></A
2885><PRE
2886CLASS="programlisting"
2887>&#13;integer Mask = 0xff; // Equivalent to integer Mask = 255;
2888integer Bit = 0x0100 // Equivalent to integer Mask = 256;
2889 </PRE
2890><P
2891></P
2892></DIV
2893></P
2894></DIV
2895><DIV
2896CLASS="section"
2897><HR><H3
2898CLASS="section"
2899><A
2900NAME="AEN145"
2901>3.2.3. Binary Arithmetic Operators</A
2902></H3
2903><P
2904>Binary arithmetic operators behave like a function call
2905 that accepts two parameters of the same type, and then return
2906 that type; however, the syntax is slightly different.</P
2907><DIV
2908CLASS="table"
2909><A
2910NAME="AEN148"
2911></A
2912><P
2913><B
2914>Table 3-1. Binary Arithmetic Operators</B
2915></P
2916><TABLE
2917BORDER="1"
2918CLASS="CALSTABLE"
2919><COL><COL><THEAD
2920><TR
2921><TH
2922>Operator</TH
2923><TH
2924>Meaning</TH
2925></TR
2926></THEAD
2927><TBODY
2928><TR
2929><TD
2930>+</TD
2931><TD
2932>Addition</TD
2933></TR
2934><TR
2935><TD
2936>-</TD
2937><TD
2938>Subtraction</TD
2939></TR
2940><TR
2941><TD
2942>*</TD
2943><TD
2944>Multiplication</TD
2945></TR
2946><TR
2947><TD
2948>/</TD
2949><TD
2950>Division</TD
2951></TR
2952><TR
2953><TD
2954>%</TD
2955><TD
2956>Modulo (remainder)</TD
2957></TR
2958><TR
2959><TD
2960>^</TD
2961><TD
2962>Exclusive OR</TD
2963></TR
2964><TR
2965><TD
2966>&#60;&#60;</TD
2967><TD
2968>Shift Left</TD
2969></TR
2970><TR
2971><TD
2972>&#62;&#62;</TD
2973><TD
2974>Shift Right</TD
2975></TR
2976></TBODY
2977></TABLE
2978></DIV
2979><P
2980>Where noted, each type may have a special interpretation
2981 of a binary arithmetic operator. See the <A
2982HREF="#AEN237"
2983>lsl types</A
2984> section for more
2985 details.</P
2986><P
2987><DIV
2988CLASS="informalexample"
2989><P
2990></P
2991><A
2992NAME="AEN183"
2993></A
2994><PRE
2995CLASS="programlisting"
2996>&#13; </PRE
2997><P
2998></P
2999></DIV
3000></P
3001></DIV
3002><DIV
3003CLASS="section"
3004><HR><H3
3005CLASS="section"
3006><A
3007NAME="AEN185"
3008>3.2.4. Boolean Operators</A
3009></H3
3010><P
3011></P
3012><DIV
3013CLASS="table"
3014><A
3015NAME="AEN188"
3016></A
3017><P
3018><B
3019>Table 3-2. Boolean Operators</B
3020></P
3021><TABLE
3022BORDER="1"
3023CLASS="CALSTABLE"
3024><COL><COL><THEAD
3025><TR
3026><TH
3027>Operator</TH
3028><TH
3029>Meaning</TH
3030></TR
3031></THEAD
3032><TBODY
3033><TR
3034><TD
3035>&#60;</TD
3036><TD
3037>Operator returns TRUE if the left hand side is less
3038 than the right hand side.</TD
3039></TR
3040><TR
3041><TD
3042>&#62;</TD
3043><TD
3044>Operator returns TRUE if the left hand side is greater
3045 than the right hand side.</TD
3046></TR
3047><TR
3048><TD
3049>&#60;=</TD
3050><TD
3051>Operator returns TRUE if the left hand side is less
3052 than or equal to the right hand side.</TD
3053></TR
3054><TR
3055><TD
3056>&#62;=</TD
3057><TD
3058>Operator returns TRUE if the left hand side is greater
3059 than or equal to the right hand side.</TD
3060></TR
3061><TR
3062><TD
3063>&#38;&#38;</TD
3064><TD
3065>Operator returns TRUE if the left hand side and right
3066 hand side are both true.</TD
3067></TR
3068><TR
3069><TD
3070>||</TD
3071><TD
3072>Operator returns TRUE if either the left hand or right
3073 hand side are true.</TD
3074></TR
3075><TR
3076><TD
3077>!</TD
3078><TD
3079>Unary operator returns the logical negation of the
3080 expression to the right.</TD
3081></TR
3082></TBODY
3083></TABLE
3084></DIV
3085></DIV
3086><DIV
3087CLASS="section"
3088><HR><H3
3089CLASS="section"
3090><A
3091NAME="AEN217"
3092>3.2.5. Bitwise Operators</A
3093></H3
3094><P
3095></P
3096><DIV
3097CLASS="table"
3098><A
3099NAME="AEN220"
3100></A
3101><P
3102><B
3103>Table 3-3. Bitwise Operators</B
3104></P
3105><TABLE
3106BORDER="1"
3107CLASS="CALSTABLE"
3108><COL><COL><THEAD
3109><TR
3110><TH
3111>Operator</TH
3112><TH
3113>Meaning</TH
3114></TR
3115></THEAD
3116><TBODY
3117><TR
3118><TD
3119>&#38;</TD
3120><TD
3121>Returns the bitwise and of the left and right hand
3122 side.</TD
3123></TR
3124><TR
3125><TD
3126>|</TD
3127><TD
3128>Returns the bitwise or of the left and right hand
3129 side.</TD
3130></TR
3131><TR
3132><TD
3133>~</TD
3134><TD
3135>Unary operator returns the bitwise complement of the
3136 expression to the right.</TD
3137></TR
3138></TBODY
3139></TABLE
3140></DIV
3141></DIV
3142></DIV
3143><DIV
3144CLASS="section"
3145><HR><H2
3146CLASS="section"
3147><A
3148NAME="AEN237"
3149>3.3. Types</A
3150></H2
3151><P
3152>Variables, return values, and parameters have type
3153 information. LSL provides a small set of basic types that are used
3154 throughout the language.</P
3155><P
3156></P
3157><DIV
3158CLASS="variablelist"
3159><P
3160><B
3161>LSL Types</B
3162></P
3163><DL
3164><DT
3165>integer</DT
3166><DD
3167><P
3168>A signed, 32-bit integer value with valid range from
3169 -2147483648 to 2147483647.</P
3170></DD
3171><DT
3172>float</DT
3173><DD
3174><P
3175>An IEEE 32-bit floating point value with
3176 values ranging from 1.175494351E-38 to
3177 3.402823466E+38.</P
3178></DD
3179><DT
3180>key</DT
3181><DD
3182><P
3183>A unique identifier that can be used to
3184 reference objects and agents in Second Life.</P
3185></DD
3186><DT
3187>vector</DT
3188><DD
3189><P
3190>3 floats that are used together as a single
3191 item. A vector can be used to represent a 3 dimensional
3192 position, direction, velocity, force, impulse, or a
3193 color. Each component can be accessed via '.x', '.y', and
3194 '.z'.</P
3195><DIV
3196CLASS="table"
3197><A
3198NAME="AEN258"
3199></A
3200><P
3201><B
3202>Table 3-4. Vector Arithmetic Operators</B
3203></P
3204><TABLE
3205BORDER="1"
3206CLASS="CALSTABLE"
3207><COL><COL><THEAD
3208><TR
3209><TH
3210>Operator</TH
3211><TH
3212>Meaning</TH
3213></TR
3214></THEAD
3215><TBODY
3216><TR
3217><TD
3218>+</TD
3219><TD
3220>Add two vectors together</TD
3221></TR
3222><TR
3223><TD
3224>-</TD
3225><TD
3226>Subtract one vector from another</TD
3227></TR
3228><TR
3229><TD
3230>*</TD
3231><TD
3232>Vector dot product</TD
3233></TR
3234><TR
3235><TD
3236>%</TD
3237><TD
3238>Vector cross product</TD
3239></TR
3240></TBODY
3241></TABLE
3242></DIV
3243></DD
3244><DT
3245>rotation</DT
3246><DD
3247><P
3248>4 floats that are used together as a single
3249 item to represent a rotation. This data is interpreted as a
3250 quaternion. Each component can be accessed via '.x', '.y',
3251 '.z', and '.s'.</P
3252><DIV
3253CLASS="table"
3254><A
3255NAME="AEN282"
3256></A
3257><P
3258><B
3259>Table 3-5. Rotation Arithmetic Operators</B
3260></P
3261><TABLE
3262BORDER="1"
3263CLASS="CALSTABLE"
3264><COL><COL><THEAD
3265><TR
3266><TH
3267>Operator</TH
3268><TH
3269>Meaning</TH
3270></TR
3271></THEAD
3272><TBODY
3273><TR
3274><TD
3275>+</TD
3276><TD
3277>Add two rotations together</TD
3278></TR
3279><TR
3280><TD
3281>-</TD
3282><TD
3283>Subtract one rotation from another</TD
3284></TR
3285><TR
3286><TD
3287>*</TD
3288><TD
3289>Rotate the first rotation by the second</TD
3290></TR
3291><TR
3292><TD
3293>/</TD
3294><TD
3295>Rotate the first rotation by the inverse of the second</TD
3296></TR
3297></TBODY
3298></TABLE
3299></DIV
3300></DD
3301><DT
3302>list</DT
3303><DD
3304><P
3305>A heterogeneous list of the other data types. Lists are
3306 created via comma separated values of the other data types
3307 enclosed by '[' and ']'.</P
3308><P
3309><DIV
3310CLASS="informalexample"
3311><P
3312></P
3313><A
3314NAME="AEN307"
3315></A
3316><PRE
3317CLASS="programlisting"
3318>&#13;string StringVar = "Hello, Carbon Unit";
3319list MyList = [ 1234, ZERO_ROTATION, StringVar ];
3320 </PRE
3321><P
3322></P
3323></DIV
3324>
3325 Yields the list: <SAMP
3326CLASS="computeroutput"
3327>[ 1234, &#60;0,0,0,1&#62;, "Hello,
3328 Carbon Unit" ]</SAMP
3329>
3330 </P
3331><P
3332>Lists can be combined with other lists. For example:
3333 <DIV
3334CLASS="informalexample"
3335><P
3336></P
3337><A
3338NAME="AEN311"
3339></A
3340><PRE
3341CLASS="programlisting"
3342>&#13;MyList = 3.14159 + MyList;
3343 </PRE
3344><P
3345></P
3346></DIV
3347>
3348 Yields the list: <SAMP
3349CLASS="computeroutput"
3350>[ 3.14159, 1234, &#60;0,0,0,1&#62;,
3351 "Hello, Carbon Unit" ]</SAMP
3352>
3353 And similarly,
3354 <DIV
3355CLASS="informalexample"
3356><P
3357></P
3358><A
3359NAME="AEN314"
3360></A
3361><PRE
3362CLASS="programlisting"
3363>&#13;MyList = MyList + MyList;
3364 </PRE
3365><P
3366></P
3367></DIV
3368>
3369 Yields: <SAMP
3370CLASS="computeroutput"
3371>[ 3.14159, 1234, &#60;0,0,0,1&#62;, "Hello,
3372 Carbon Unit", 3.14159, 1234, &#60;0,0,0,1&#62;, "Hello, Carbon Unit"
3373 ]</SAMP
3374>
3375 </P
3376><P
3377>Library functions exist used to copy data from lists,
3378 sort lists, copy/remove sublists.</P
3379></DD
3380></DL
3381></DIV
3382><DIV
3383CLASS="section"
3384><HR><H3
3385CLASS="section"
3386><A
3387NAME="AEN318"
3388>3.3.1. Type Conversion</A
3389></H3
3390><P
3391>Type conversion can either occur implicitly or explicitly.
3392 Explicit type casts are accomplished using C syntax:
3393 <DIV
3394CLASS="informalexample"
3395><P
3396></P
3397><A
3398NAME="AEN321"
3399></A
3400><PRE
3401CLASS="programlisting"
3402>&#13;float foo_float = 1.0;
3403integer foo_int = (integer)foo_float;
3404 </PRE
3405><P
3406></P
3407></DIV
3408>
3409 </P
3410><DIV
3411CLASS="section"
3412><HR><H4
3413CLASS="section"
3414><A
3415NAME="AEN323"
3416>3.3.1.1. Implicit Casting</A
3417></H4
3418><P
3419>LSL only supports two implicit type casts: integer to
3420 float and string to key. Thus, any place you see a float
3421 specified you can supply an integer, and any place you see a
3422 key specified, you can supply a string.</P
3423></DIV
3424><DIV
3425CLASS="section"
3426><HR><H4
3427CLASS="section"
3428><A
3429NAME="AEN326"
3430>3.3.1.2. Explicit Casting</A
3431></H4
3432><P
3433>LSL supports the following explicit casts:
3434 <P
3435></P
3436><UL
3437><LI
3438STYLE="list-style-type: opencircle"
3439><P
3440>Integer to String</P
3441></LI
3442><LI
3443STYLE="list-style-type: opencircle"
3444><P
3445>Float to Integer</P
3446></LI
3447><LI
3448STYLE="list-style-type: opencircle"
3449><P
3450>Float to String</P
3451></LI
3452><LI
3453STYLE="list-style-type: opencircle"
3454><P
3455>Vector to String</P
3456></LI
3457><LI
3458STYLE="list-style-type: opencircle"
3459><P
3460>Rotation to String</P
3461></LI
3462><LI
3463STYLE="list-style-type: opencircle"
3464><P
3465>Integer to List</P
3466></LI
3467><LI
3468STYLE="list-style-type: opencircle"
3469><P
3470>Float to List</P
3471></LI
3472><LI
3473STYLE="list-style-type: opencircle"
3474><P
3475>Key to List</P
3476></LI
3477><LI
3478STYLE="list-style-type: opencircle"
3479><P
3480>String to List</P
3481></LI
3482><LI
3483STYLE="list-style-type: opencircle"
3484><P
3485>Vector to List</P
3486></LI
3487><LI
3488STYLE="list-style-type: opencircle"
3489><P
3490>Rotation to List</P
3491></LI
3492><LI
3493STYLE="list-style-type: opencircle"
3494><P
3495>String to Integer</P
3496></LI
3497><LI
3498STYLE="list-style-type: opencircle"
3499><P
3500>String to Float</P
3501></LI
3502><LI
3503STYLE="list-style-type: opencircle"
3504><P
3505>String to Vector</P
3506></LI
3507><LI
3508STYLE="list-style-type: opencircle"
3509><P
3510>String to Rotation</P
3511></LI
3512></UL
3513>
3514 </P
3515></DIV
3516></DIV
3517></DIV
3518><DIV
3519CLASS="section"
3520><HR><H2
3521CLASS="section"
3522><A
3523NAME="AEN360"
3524>3.4. Global Functions</A
3525></H2
3526><P
3527>Global functions are also declared much like Java/C, with
3528 the exception that no 'void' return value exists. Instead, if no
3529 return value is needed, just don't specify one:
3530
3531 <DIV
3532CLASS="informalexample"
3533><P
3534></P
3535><A
3536NAME="AEN363"
3537></A
3538><PRE
3539CLASS="programlisting"
3540>&#13;make_physical_and_spin(vector torque)
3541{
3542 // double the torque
3543 vector double_torque = 2.0*torque;
3544 llSetStatus(STATUS_PHYSICS, TRUE);
3545 llApplyTorque(double_torque);
3546}
3547 </PRE
3548><P
3549></P
3550></DIV
3551></P
3552></DIV
3553><DIV
3554CLASS="section"
3555><HR><H2
3556CLASS="section"
3557><A
3558NAME="AEN365"
3559>3.5. Global Variables</A
3560></H2
3561><P
3562>Global variables and functions are accessible from anywhere
3563 in the file. Global variables are declared much like Java or C,
3564 although only one declaration may be made per line:
3565 <DIV
3566CLASS="informalexample"
3567><P
3568></P
3569><A
3570NAME="AEN368"
3571></A
3572><PRE
3573CLASS="programlisting"
3574>&#13;vector gStartPosition;
3575 </PRE
3576><P
3577></P
3578></DIV
3579></P
3580><P
3581>Global variables may also be initialized if desired,
3582 although uninitialized global and local variables are initialized
3583 to legal zero values:
3584 <DIV
3585CLASS="informalexample"
3586><P
3587></P
3588><A
3589NAME="AEN371"
3590></A
3591><PRE
3592CLASS="programlisting"
3593>&#13;vector gStartPosition = &#60;10.0,10.0,10.0&#62;
3594 </PRE
3595><P
3596></P
3597></DIV
3598></P
3599></DIV
3600><DIV
3601CLASS="section"
3602><HR><H2
3603CLASS="section"
3604><A
3605NAME="AEN373"
3606>3.6. Local Variables</A
3607></H2
3608><P
3609>Local variables are scoped below their declaration within
3610 the block of code they are declared in and may be declared within
3611 any block of code. Thus the following code is legal and will work
3612 like C:
3613 <DIV
3614CLASS="informalexample"
3615><P
3616></P
3617><A
3618NAME="AEN376"
3619></A
3620><PRE
3621CLASS="programlisting"
3622>&#13;integer test_function()
3623{
3624 // Test vector that we can use anywhere in the function
3625 vector test = &#60;1,2,3&#62;;
3626 integer j;
3627 for (j = 0; j &#60; 10; j++)
3628 {
3629 // This vector is a different variable than the one declared above
3630 // This IS NOT good coding practice
3631 vector test = &#60;j, j, j&#62;;
3632 }
3633 // this test fails
3634 if (test == &#60;9,9,9&#62;)
3635 {
3636 // never reached
3637 }
3638}
3639 </PRE
3640><P
3641></P
3642></DIV
3643></P
3644></DIV
3645></DIV
3646><DIV
3647CLASS="chapter"
3648><HR><H1
3649><A
3650NAME="AEN378"
3651></A
3652>Chapter 4. Flow Control</H1
3653><P
3654>LSL comes with a complete complement of constructs meant to
3655 deal with conditional processing, looping, as well as simply jumping
3656 to a different point in the script.</P
3657><DIV
3658CLASS="section"
3659><HR><H2
3660CLASS="section"
3661><A
3662NAME="AEN381"
3663>4.1. Conditional Statements</A
3664></H2
3665><P
3666>The 'if' statement operates and has the
3667 same syntax as the Java/C version.</P
3668><P
3669><DIV
3670CLASS="informalexample"
3671><P
3672></P
3673><A
3674NAME="AEN385"
3675></A
3676><PRE
3677CLASS="programlisting"
3678>&#13;check_message(string message)
3679{
3680 if(message == "open")
3681 {
3682 open();
3683 }
3684 else if(message == "close")
3685 {
3686 close();
3687 }
3688 else
3689 {
3690 llSay(0, "Unknown command: " + message);
3691 }
3692}
3693 </PRE
3694><P
3695></P
3696></DIV
3697></P
3698><P
3699>The statements between the open and close curly brace are
3700 performed if the conditional inside the parentheses evaluates to a
3701 non-zero integer. Once a conditional is determined to be true
3702 (non-zero), no further processing of 'else' conditionals will be
3703 considered. The <A
3704HREF="#AEN6070"
3705>NULL_KEY</A
3706> constant
3707 is counted as FALSE by conditional expressions.</P
3708><P
3709>There can be zero or more 'else if' statements, and an
3710 optional final 'else' to handle the case when none of the if
3711 statements evaluate to a non-zero integer.</P
3712><P
3713>The usual set of integer arithmetic and comparison operators
3714 are available.</P
3715><P
3716><DIV
3717CLASS="informalexample"
3718><P
3719></P
3720><A
3721NAME="AEN392"
3722></A
3723><PRE
3724CLASS="programlisting"
3725>&#13;// a function that accepts some information about its environment and
3726// determines the 'best' next step. This kind of code might be
3727// part of a simple box meant to move close to an agent and attach to
3728// them once near. This code sample relies on the standard linden
3729// library functions as well as two other methods not defined here.
3730assess_next_step(integer perm, integer attached, integer balance, float dist)
3731{
3732 string msg;
3733 if(!attached)
3734 {
3735 if((perm &#38; PERMISSION_ATTACH) &#38;&#38; (dist &#60; 10.0))
3736 {
3737 attach();
3738 }
3739 else if((dist &#62; 10.0) || ((dist &#62; 20.0) &#38;&#38; (balance &#62; 1000)))
3740 {
3741 move_closer();
3742 }
3743 else
3744 {
3745 llRequestPermissions(llGetOwner(), PERMISSION_ATTACH);
3746 }
3747 }
3748}
3749 </PRE
3750><P
3751></P
3752></DIV
3753></P
3754></DIV
3755><DIV
3756CLASS="section"
3757><HR><H2
3758CLASS="section"
3759><A
3760NAME="AEN394"
3761>4.2. Loop Constructs</A
3762></H2
3763><P
3764>Loops are a basic building block of most useful programming
3765 languages, and LSL offers the same loop constructs as found in
3766 Java or C.</P
3767><DIV
3768CLASS="section"
3769><HR><H3
3770CLASS="section"
3771><A
3772NAME="AEN397"
3773>4.2.1. for loop</A
3774></H3
3775><P
3776>A for loop is most useful for when you know how many times
3777 you need to iterate over an operation. Just like a Java or C for
3778 loop, the parentheses have three parts, the initializer, the
3779 continuation condition, and the increment. The loop continues
3780 while the middle term evaluates to true, and the increment step
3781 is performed at the end of every loop.</P
3782><P
3783><DIV
3784CLASS="informalexample"
3785><P
3786></P
3787><A
3788NAME="AEN401"
3789></A
3790><PRE
3791CLASS="programlisting"
3792>&#13;// move a non-physical block smoothly upward (positive z) the total
3793// distance specified divided into steps discrete moves.
3794move_up(float distance, integer steps)
3795{
3796 float step_distance = distance / (float)steps;
3797 vector offset = &#60;0.0, 0.0, step_distance&#62;;
3798 vector base_pos = llGetPos();
3799 integer i;
3800 for(i = 0; i &#60;= steps; ++i)
3801 {
3802 llSetPos(base_pos + i * offset);
3803 llSleep(0.1);
3804 }
3805}
3806 </PRE
3807><P
3808></P
3809></DIV
3810></P
3811></DIV
3812><DIV
3813CLASS="section"
3814><HR><H3
3815CLASS="section"
3816><A
3817NAME="AEN403"
3818>4.2.2. do-while loop</A
3819></H3
3820><P
3821>The do-while loop construct is most useful when you are
3822 sure that you want to perform an operation at least once, but
3823 you are not sure how many times you want to loop. The syntax is
3824 the same as you would find in a Java or C program. A simple
3825 English translation would be 'do the code inside the curly braces
3826 and continue doing it if the statement after the while is
3827 true.</P
3828><P
3829><DIV
3830CLASS="informalexample"
3831><P
3832></P
3833><A
3834NAME="AEN407"
3835></A
3836><PRE
3837CLASS="programlisting"
3838>&#13;// output the name of all inventory items attached to this object
3839talk_about_inventory(integer type)
3840{
3841 string name;
3842 integer i = 0;
3843 integer continue = TRUE;
3844 do
3845 {
3846 name = llGetInventoryName(type, i);
3847 if(llStringLength(name) &#62; 0)
3848 {
3849 llSay(0, "Inventory " + (string)i + ": " + name);
3850 }
3851 else
3852 {
3853 llSay(0, "No more inventory items");
3854 continue = FALSE;
3855 }
3856 i++;
3857 } while(continue);
3858}
3859 </PRE
3860><P
3861></P
3862></DIV
3863></P
3864></DIV
3865><DIV
3866CLASS="section"
3867><HR><H3
3868CLASS="section"
3869><A
3870NAME="AEN409"
3871>4.2.3. while loop</A
3872></H3
3873><P
3874>The while loop behaves similarly to the do-while loop,
3875 except it allows you to exit the loop without doing a single
3876 iteration inside.</P
3877><P
3878><DIV
3879CLASS="informalexample"
3880><P
3881></P
3882><A
3883NAME="AEN413"
3884></A
3885><PRE
3886CLASS="programlisting"
3887>&#13;mention_inventory_type(integer type)
3888{
3889 integer i = llGetInventoryNumber(type);
3890 while(i--)
3891 {
3892 llSay(0, "item: " + llGetInventory(i));
3893 }
3894}
3895 </PRE
3896><P
3897></P
3898></DIV
3899></P
3900></DIV
3901></DIV
3902><DIV
3903CLASS="section"
3904><HR><H2
3905CLASS="section"
3906><A
3907NAME="AEN415"
3908>4.3. Jumps</A
3909></H2
3910><P
3911>A jump is used to move the running script to a new point
3912 inside of a function or event handler. You cannot jump into other
3913 functions or event handlers. Usually, you will want to use a jump
3914 for in situations where the if..else statements would become too
3915 cumbersome. For example, you may want to check several
3916 preconditions, and exit if any of them are not met.</P
3917><P
3918><DIV
3919CLASS="informalexample"
3920><P
3921></P
3922><A
3923NAME="AEN419"
3924></A
3925><PRE
3926CLASS="programlisting"
3927>&#13;attach_if_ready(vector target_pos)
3928{
3929 // make sure we have permission
3930 integer perm = llGetPerm();
3931 if(!(perm &#38; PERMISSION_ATTACH))
3932 {
3933 jump early_exit;
3934 }
3935
3936 // make sure we're 10 or less meters away
3937 vector pos = llGetPos()
3938 float dist = llVecDist(pos, target_pos);
3939 if(dist &#62; 10.0)
3940 {
3941 jump early_exit;
3942 }
3943
3944 // make sure we're roughly pointed toward the target.
3945 // the calculation of max_cos_theta could be precomputed
3946 // as a constant, but is manually computed here to
3947 // illustrate the math.
3948 float max_cos_theta = llCos(PI / 4.0);
3949 vector toward_target = llVecNorm(target_pos - pos);
3950 rotation rot = llGetRot();
3951 vector fwd = llRot2Fwd(rot);
3952 float cos_theta = toward_target * fwd;
3953 if(cos_theta &#62; max_cos_theta)
3954 {
3955 jump early_exit;
3956 }
3957
3958 // at this point, we've done all the checks.
3959 attach();
3960
3961 @early_exit;
3962}
3963 </PRE
3964><P
3965></P
3966></DIV
3967></P
3968></DIV
3969><DIV
3970CLASS="section"
3971><HR><H2
3972CLASS="section"
3973><A
3974NAME="AEN421"
3975>4.4. State Change</A
3976></H2
3977><P
3978>State change allow you to move through the lsl virtual
3979 machine's flexible state machine by transitioning your script to
3980 and from user defined states and the default state. You can define
3981 your own script state by placing the keyword 'state' before its
3982 name and enclosing the event handlers with open and close curly
3983 braces ('{' and '}'.) You can invoke the transition to a new state
3984 by calling it with the syntax: 'state &#60;statename&#62;'.</P
3985><P
3986><DIV
3987CLASS="informalexample"
3988><P
3989></P
3990><A
3991NAME="AEN425"
3992></A
3993><PRE
3994CLASS="programlisting"
3995>&#13;default
3996{
3997 state_entry()
3998 {
3999 llSay(0, "I am in the default state");
4000 llSetTimer(1.0);
4001 }
4002
4003 timer()
4004 {
4005 state SpinState;
4006 }
4007}
4008
4009state SpinState
4010{
4011 state_entry()
4012 {
4013 llSay(0, "I am in SpinState!");
4014 llTargetOmega(&#60;0,0,1&#62;, 4, 1.0);
4015 llSetTimer(2.0);
4016 }
4017
4018 timer()
4019 {
4020 state default;
4021 }
4022
4023 state_exit()
4024 {
4025 llTargetOmega(&#60;0,0,1&#62;, 0, 0.0);
4026 }
4027}
4028 </PRE
4029><P
4030></P
4031></DIV
4032></P
4033></DIV
4034></DIV
4035><DIV
4036CLASS="chapter"
4037><HR><H1
4038><A
4039NAME="AEN427"
4040></A
4041>Chapter 5. States</H1
4042><P
4043>All scripts must have a 'default' state, which is the first
4044 state entered when the script starts. States contain event handlers
4045 that are triggered by the LSL virtual machine. All states must
4046 supply at least one event handler - it's not really a state without
4047 one.</P
4048><P
4049>When state changes, all callback settings are retained and all
4050 pending events are cleared.</P
4051><DIV
4052CLASS="section"
4053><HR><H2
4054CLASS="section"
4055><A
4056NAME="AEN431"
4057>5.1. state_entry()</A
4058></H2
4059><P
4060>The <A
4061HREF="#AEN5195"
4062>state_entry</A
4063>
4064 event occurs whenever a new state is
4065 entered, including program start, and is always the first event
4066 handled. No data is passed to this event handler.</P
4067><P
4068>You will usually want to set callbacks for things such as
4069 timers and sensor in the state_entry() callback of the state to
4070 put your object into a useful condition for that state.</P
4071><P
4072>Warning: It is a common mistake to assume that the state_entry()
4073 callback is called when you rez an object out of your
4074 inventory. When you derez an object into your inventory the
4075 current state of the script is saved, so there will not be a
4076 call to state_entry() during the rez. If you need to provide
4077 startup code every time an object is created, you should create
4078 a global function and call it from both state_entry() and the
4079 on_rez() callbacks.</P
4080><P
4081><DIV
4082CLASS="informalexample"
4083><P
4084></P
4085><A
4086NAME="AEN438"
4087></A
4088><PRE
4089CLASS="programlisting"
4090>&#13;// global initialization function.
4091init()
4092{
4093 // Set up a listen callback for whoever owns this object.
4094 key owner = llGetOwner();
4095 llListen(0, "", owner, "");
4096}
4097
4098default
4099{
4100 state_entry()
4101 {
4102 init();
4103 }
4104
4105 on_rez(integer start_param)
4106 {
4107 init();
4108 }
4109
4110 listen(integer channel, string name, key id, string message)
4111 {
4112 llSay(0, "Hi " + name + "! You own me.");
4113 }
4114}
4115 </PRE
4116><P
4117></P
4118></DIV
4119></P
4120></DIV
4121><DIV
4122CLASS="section"
4123><HR><H2
4124CLASS="section"
4125><A
4126NAME="AEN440"
4127>5.2. state_exit()</A
4128></H2
4129><P
4130>You will want to provide a <A
4131HREF="#AEN5203"
4132>&#13; state_exit()</A
4133> if you need to clean
4134 up any events that you have requested in the current state, but do
4135 not expect in the next state.</P
4136><P
4137><DIV
4138CLASS="informalexample"
4139><P
4140></P
4141><A
4142NAME="AEN445"
4143></A
4144><PRE
4145CLASS="programlisting"
4146>&#13;default
4147{
4148 state_entry()
4149 {
4150 state TimerState;
4151 }
4152}
4153
4154state TimerState
4155{
4156 state_entry()
4157 {
4158 // set a timer event for 5 seconds in the future.
4159 llSetTimerEvent(5.0);
4160 }
4161
4162 timer()
4163 {
4164 llSay(0, "timer");
4165 state ListenState;
4166 }
4167
4168 state_exit()
4169 {
4170 // turn off future timer events.
4171 llSetTimerEvent(0.0);
4172 }
4173}
4174
4175integer g_listen_control;
4176
4177state ListenState
4178{
4179 state_entry()
4180 {
4181 // listen for anything on the public channel
4182 g_listen_control = llListen(0, "", NULL_KEY, "");
4183 }
4184
4185 listen(integer channel, string name, key id, string message)
4186 {
4187 llSay(0, "listen");
4188 state TimerState;
4189 }
4190
4191 state_exit()
4192 {
4193 // turn off the listener
4194 llListenRemove(g_listen_control);
4195 }
4196}
4197 </PRE
4198><P
4199></P
4200></DIV
4201></P
4202><P
4203>The <A
4204HREF="#AEN5203"
4205>state_exit()</A
4206>
4207 handler is not called when an object is
4208 being deleted - all callbacks, handlers, sounds, etc, will be
4209 cleaned up automatically for you.</P
4210></DIV
4211><DIV
4212CLASS="section"
4213><HR><H2
4214CLASS="section"
4215><A
4216NAME="AEN449"
4217>5.3. States vs. Global variables</A
4218></H2
4219><P
4220>A state and a set of global variables can serve the same
4221 purpose, and each can be expressed in terms of the other. In
4222 general, you should prefer the use of states over global variables
4223 since states allow you to immediately assume script state without
4224 making comparisons. The less comparisons a script makes, the more
4225 regular code statements it can run.</P
4226></DIV
4227></DIV
4228><DIV
4229CLASS="chapter"
4230><HR><H1
4231><A
4232NAME="AEN452"
4233></A
4234>Chapter 6. Math</H1
4235><DIV
4236CLASS="section"
4237><H2
4238CLASS="section"
4239><A
4240NAME="AEN454"
4241>6.1. Tables of Functions</A
4242></H2
4243><DIV
4244CLASS="table"
4245><A
4246NAME="AEN456"
4247></A
4248><P
4249><B
4250>Table 6-1. Trigonometry Functions</B
4251></P
4252><TABLE
4253BORDER="1"
4254CLASS="CALSTABLE"
4255><COL><THEAD
4256><TR
4257><TH
4258>Function</TH
4259></TR
4260></THEAD
4261><TBODY
4262><TR
4263><TD
4264><A
4265HREF="#AEN1002"
4266>llAbs</A
4267></TD
4268></TR
4269><TR
4270><TD
4271><A
4272HREF="#AEN1012"
4273>llAcos</A
4274></TD
4275></TR
4276><TR
4277><TD
4278><A
4279HREF="#AEN1096"
4280>llAsin</A
4281></TD
4282></TR
4283><TR
4284><TD
4285><A
4286HREF="#AEN1106"
4287>llAtan2</A
4288></TD
4289></TR
4290><TR
4291><TD
4292><A
4293HREF="#AEN1212"
4294>llCeil</A
4295></TD
4296></TR
4297><TR
4298><TD
4299><A
4300HREF="#AEN1282"
4301>llCos</A
4302></TD
4303></TR
4304><TR
4305><TD
4306><A
4307HREF="#AEN1559"
4308>llFabs</A
4309></TD
4310></TR
4311><TR
4312><TD
4313><A
4314HREF="#AEN1569"
4315>llFloor</A
4316></TD
4317></TR
4318><TR
4319><TD
4320><A
4321HREF="#AEN1579"
4322>llFrand</A
4323></TD
4324></TR
4325><TR
4326><TD
4327><A
4328HREF="#AEN3220"
4329>llPow</A
4330></TD
4331></TR
4332><TR
4333><TD
4334><A
4335HREF="#AEN3618"
4336>llRound</A
4337></TD
4338></TR
4339><TR
4340><TD
4341><A
4342HREF="#AEN4302"
4343>llSin</A
4344></TD
4345></TR
4346><TR
4347><TD
4348><A
4349HREF="#AEN4335"
4350>llSqrt</A
4351></TD
4352></TR
4353><TR
4354><TD
4355><A
4356HREF="#AEN4678"
4357>llTan</A
4358></TD
4359></TR
4360></TBODY
4361></TABLE
4362></DIV
4363><DIV
4364CLASS="table"
4365><A
4366NAME="AEN505"
4367></A
4368><P
4369><B
4370>Table 6-2. Vector Functions</B
4371></P
4372><TABLE
4373BORDER="1"
4374CLASS="CALSTABLE"
4375><COL><THEAD
4376><TR
4377><TH
4378>Function</TH
4379></TR
4380></THEAD
4381><TBODY
4382><TR
4383><TD
4384><A
4385HREF="#AEN4810"
4386>llVecDist</A
4387></TD
4388></TR
4389><TR
4390><TD
4391><A
4392HREF="#AEN4823"
4393>llVecMag</A
4394></TD
4395></TR
4396><TR
4397><TD
4398><A
4399HREF="#AEN4833"
4400>llVecNorm</A
4401></TD
4402></TR
4403></TBODY
4404></TABLE
4405></DIV
4406><DIV
4407CLASS="table"
4408><A
4409NAME="AEN521"
4410></A
4411><P
4412><B
4413>Table 6-3. Rotation Functions</B
4414></P
4415><TABLE
4416BORDER="1"
4417CLASS="CALSTABLE"
4418><COL><THEAD
4419><TR
4420><TH
4421>Function</TH
4422></TR
4423></THEAD
4424><TBODY
4425><TR
4426><TD
4427><A
4428HREF="#AEN1057"
4429>llAngleBetween</A
4430></TD
4431></TR
4432><TR
4433><TD
4434><A
4435HREF="#AEN1144"
4436>llAxes2Rot</A
4437></TD
4438></TR
4439><TR
4440><TD
4441><A
4442HREF="#AEN1160"
4443>llAxisAngle2Rot</A
4444></TD
4445></TR
4446><TR
4447><TD
4448><A
4449HREF="#AEN1549"
4450>llEuler2Rot</A
4451></TD
4452></TR
4453><TR
4454><TD
4455><A
4456HREF="#AEN3486"
4457>llRot2Angle</A
4458></TD
4459></TR
4460><TR
4461><TD
4462><A
4463HREF="#AEN3496"
4464>llRot2Axis</A
4465></TD
4466></TR
4467><TR
4468><TD
4469><A
4470HREF="#AEN3506"
4471>llRot2Euler</A
4472></TD
4473></TR
4474><TR
4475><TD
4476><A
4477HREF="#AEN3516"
4478>llRot2Fwd</A
4479></TD
4480></TR
4481><TR
4482><TD
4483><A
4484HREF="#AEN3526"
4485>llRot2Left</A
4486></TD
4487></TR
4488><TR
4489><TD
4490><A
4491HREF="#AEN3536"
4492>llRot2Up</A
4493></TD
4494></TR
4495><TR
4496><TD
4497><A
4498HREF="#AEN3546"
4499>llRotBetween</A
4500></TD
4501></TR
4502></TBODY
4503></TABLE
4504></DIV
4505></DIV
4506></DIV
4507><DIV
4508CLASS="chapter"
4509><HR><H1
4510><A
4511NAME="AEN561"
4512></A
4513>Chapter 7. Strings</H1
4514><DIV
4515CLASS="section"
4516><H2
4517CLASS="section"
4518><A
4519NAME="AEN563"
4520>7.1. Tables of Functions</A
4521></H2
4522><DIV
4523CLASS="table"
4524><A
4525NAME="AEN565"
4526></A
4527><P
4528><B
4529>Table 7-1. String Functions</B
4530></P
4531><TABLE
4532BORDER="1"
4533CLASS="CALSTABLE"
4534><COL><THEAD
4535><TR
4536><TH
4537>Function</TH
4538></TR
4539></THEAD
4540><TBODY
4541><TR
4542><TD
4543><A
4544HREF="#AEN1173"
4545>llBase64ToString</A
4546></TD
4547></TR
4548><TR
4549><TD
4550><A
4551HREF="#AEN1326"
4552>llDeleteSubString</A
4553></TD
4554></TR
4555><TR
4556><TD
4557><A
4558HREF="#AEN2195"
4559>llGetSubString</A
4560></TD
4561></TR
4562><TR
4563><TD
4564><A
4565HREF="#AEN2415"
4566>llInsertString</A
4567></TD
4568></TR
4569><TR
4570><TD
4571><A
4572HREF="#AEN2902"
4573>llMD5String</A
4574></TD
4575></TR
4576><TR
4577><TD
4578><A
4579HREF="#AEN4631"
4580>llStringLength</A
4581></TD
4582></TR
4583><TR
4584><TD
4585><A
4586HREF="#AEN4641"
4587>llSubStringIndex</A
4588></TD
4589></TR
4590><TR
4591><TD
4592><A
4593HREF="#AEN4652"
4594>llStringToBase64</A
4595></TD
4596></TR
4597><TR
4598><TD
4599><A
4600HREF="#AEN4737"
4601>llToLower</A
4602></TD
4603></TR
4604><TR
4605><TD
4606><A
4607HREF="#AEN4746"
4608>llToUpper</A
4609></TD
4610></TR
4611><TR
4612><TD
4613><A
4614HREF="#AEN4886"
4615>llXorBase64Strings</A
4616></TD
4617></TR
4618></TBODY
4619></TABLE
4620></DIV
4621></DIV
4622></DIV
4623><DIV
4624CLASS="chapter"
4625><HR><H1
4626><A
4627NAME="AEN605"
4628></A
4629>Chapter 8. Lists</H1
4630><DIV
4631CLASS="section"
4632><H2
4633CLASS="section"
4634><A
4635NAME="AEN607"
4636>8.1. Tables of Functions</A
4637></H2
4638><DIV
4639CLASS="table"
4640><A
4641NAME="AEN609"
4642></A
4643><P
4644><B
4645>Table 8-1. List Functions</B
4646></P
4647><TABLE
4648BORDER="1"
4649CLASS="CALSTABLE"
4650><COL><THEAD
4651><TR
4652><TH
4653>Function</TH
4654></TR
4655></THEAD
4656><TBODY
4657><TR
4658><TD
4659><A
4660HREF="#AEN1202"
4661>llCSV2List</A
4662></TD
4663></TR
4664><TR
4665><TD
4666><A
4667HREF="#AEN1306"
4668>llDeleteSubList</A
4669></TD
4670></TR
4671><TR
4672><TD
4673><A
4674HREF="#AEN1875"
4675>llGetListEntryType</A
4676></TD
4677></TR
4678><TR
4679><TD
4680><A
4681HREF="#AEN1889"
4682>llGetListLength</A
4683></TD
4684></TR
4685><TR
4686><TD
4687><A
4688HREF="#AEN2454"
4689>llList2CSV</A
4690></TD
4691></TR
4692><TR
4693><TD
4694><A
4695HREF="#AEN2464"
4696>llList2Float</A
4697></TD
4698></TR
4699><TR
4700><TD
4701><A
4702HREF="#AEN2477"
4703>llList2Integer</A
4704></TD
4705></TR
4706><TR
4707><TD
4708><A
4709HREF="#AEN2490"
4710>llList2Key</A
4711></TD
4712></TR
4713><TR
4714><TD
4715><A
4716HREF="#AEN2503"
4717>llList2List</A
4718></TD
4719></TR
4720><TR
4721><TD
4722><A
4723HREF="#AEN2526"
4724>llList2ListStrided</A
4725></TD
4726></TR
4727><TR
4728><TD
4729><A
4730HREF="#AEN2544"
4731>llList2Rot</A
4732></TD
4733></TR
4734><TR
4735><TD
4736><A
4737HREF="#AEN2557"
4738>llList2String</A
4739></TD
4740></TR
4741><TR
4742><TD
4743><A
4744HREF="#AEN2570"
4745>llList2Vector</A
4746></TD
4747></TR
4748><TR
4749><TD
4750><A
4751HREF="#AEN2583"
4752>llListFindList</A
4753></TD
4754></TR
4755><TR
4756><TD
4757><A
4758HREF="#AEN2598"
4759>llListInsertList</A
4760></TD
4761></TR
4762><TR
4763><TD
4764><A
4765HREF="#AEN2614"
4766>llListRandomize</A
4767></TD
4768></TR
4769><TR
4770><TD
4771><A
4772HREF="#AEN2648"
4773>llListSort</A
4774></TD
4775></TR
4776><TR
4777><TD
4778><A
4779HREF="#AEN3105"
4780>llParseString2List</A
4781></TD
4782></TR
4783></TBODY
4784></TABLE
4785></DIV
4786></DIV
4787></DIV
4788><DIV
4789CLASS="chapter"
4790><HR><H1
4791><A
4792NAME="AEN670"
4793></A
4794>Chapter 9. Communication</H1
4795><DIV
4796CLASS="section"
4797><H2
4798CLASS="section"
4799><A
4800NAME="AEN672"
4801>9.1. Tables of Functions</A
4802></H2
4803><DIV
4804CLASS="table"
4805><A
4806NAME="AEN674"
4807></A
4808><P
4809><B
4810>Table 9-1. In World Functions</B
4811></P
4812><TABLE
4813BORDER="1"
4814CLASS="CALSTABLE"
4815><COL><THEAD
4816><TR
4817><TH
4818>Function</TH
4819></TR
4820></THEAD
4821><TBODY
4822><TR
4823><TD
4824><A
4825HREF="#AEN2665"
4826>llListen</A
4827></TD
4828></TR
4829><TR
4830><TD
4831><A
4832HREF="#AEN2686"
4833>llListenControl</A
4834></TD
4835></TR
4836><TR
4837><TD
4838><A
4839HREF="#AEN2701"
4840>llListenRemove</A
4841></TD
4842></TR
4843><TR
4844><TD
4845><A
4846HREF="#AEN3640"
4847>llSay</A
4848></TD
4849></TR
4850><TR
4851><TD
4852><A
4853HREF="#AEN4288"
4854>llShout</A
4855></TD
4856></TR
4857><TR
4858><TD
4859><A
4860HREF="#AEN4862"
4861>llWhisper</A
4862></TD
4863></TR
4864></TBODY
4865></TABLE
4866></DIV
4867><DIV
4868CLASS="table"
4869><A
4870NAME="AEN699"
4871></A
4872><P
4873><B
4874>Table 9-2. Messaging Functions</B
4875></P
4876><TABLE
4877BORDER="1"
4878CLASS="CALSTABLE"
4879><COL><THEAD
4880><TR
4881><TH
4882>Function</TH
4883></TR
4884></THEAD
4885><TBODY
4886><TR
4887><TD
4888><A
4889HREF="#AEN1533"
4890>llEmail</A
4891></TD
4892></TR
4893><TR
4894><TD
4895><A
4896HREF="#AEN1933"
4897>llGetNextEmail</A
4898></TD
4899></TR
4900><TR
4901><TD
4902><A
4903HREF="#AEN2431"
4904>llInstantMessage</A
4905></TD
4906></TR
4907></TBODY
4908></TABLE
4909></DIV
4910></DIV
4911></DIV
4912><DIV
4913CLASS="chapter"
4914><HR><H1
4915><A
4916NAME="AEN715"
4917></A
4918>Chapter 10. Inventory</H1
4919><DIV
4920CLASS="section"
4921><H2
4922CLASS="section"
4923><A
4924NAME="AEN717"
4925>10.1. Tables of Functions</A
4926></H2
4927><DIV
4928CLASS="table"
4929><A
4930NAME="AEN719"
4931></A
4932><P
4933><B
4934>Table 10-1. Inventory Functions</B
4935></P
4936><TABLE
4937BORDER="1"
4938CLASS="CALSTABLE"
4939><COL><THEAD
4940><TR
4941><TH
4942>Function</TH
4943></TR
4944></THEAD
4945><TBODY
4946><TR
4947><TD
4948><A
4949HREF="#AEN1047"
4950>llAllowInventoryDrop</A
4951></TD
4952></TR
4953><TR
4954><TD
4955><A
4956HREF="#AEN1754"
4957>llGetInventoryCreator</A
4958></TD
4959></TR
4960><TR
4961><TD
4962><A
4963HREF="#AEN1764"
4964>llGetInventoryKey</A
4965></TD
4966></TR
4967><TR
4968><TD
4969><A
4970HREF="#AEN1774"
4971>llGetInventoryName</A
4972></TD
4973></TR
4974><TR
4975><TD
4976><A
4977HREF="#AEN1816"
4978>llGetInventoryType</A
4979></TD
4980></TR
4981><TR
4982><TD
4983><A
4984HREF="#AEN1789"
4985>llGetInventoryNumber</A
4986></TD
4987></TR
4988><TR
4989><TD
4990><A
4991HREF="#AEN1801"
4992>llGetInventoryPermMask</A
4993></TD
4994></TR
4995><TR
4996><TD
4997><A
4998HREF="#AEN1946"
4999>llGetNotecardLine</A
5000></TD
5001></TR
5002><TR
5003><TD
5004><A
5005HREF="#AEN2314"
5006>llGiveInventory</A
5007></TD
5008></TR
5009><TR
5010><TD
5011><A
5012HREF="#AEN2326"
5013>llGiveInventoryList</A
5014></TD
5015></TR
5016><TR
5017><TD
5018><A
5019HREF="#AEN3325"
5020>llRemoveInventory</A
5021></TD
5022></TR
5023><TR
5024><TD
5025><A
5026HREF="#AEN3363"
5027>llRequestInventoryData</A
5028></TD
5029></TR
5030><TR
5031><TD
5032><A
5033HREF="#AEN3461"
5034>llRezObject</A
5035></TD
5036></TR
5037><TR
5038><TD
5039><A
5040HREF="#AEN3434"
5041>llRezAtRoot</A
5042></TD
5043></TR
5044></TBODY
5045></TABLE
5046></DIV
5047></DIV
5048></DIV
5049><DIV
5050CLASS="chapter"
5051><HR><H1
5052><A
5053NAME="AEN768"
5054></A
5055>Chapter 11. Vehicles</H1
5056><P
5057>Custom Vehicles can be constructed and controlled using the LSL.
5058 This chapter will cover the basics of how vehicles work, the
5059 terms used when describing vehicles, and a more thorough examination
5060 of the api available.</P
5061><P
5062>There are several ways to make scripted objects move
5063 themselves around. One way is to turn the object into a
5064 "vehicle". This feature is versatile enough to make things
5065 that slide, hover, fly, and float. Some of the behaviors that can be
5066 enabled are:</P
5067><P
5068><P
5069></P
5070><UL
5071><LI
5072STYLE="list-style-type: opencircle"
5073><P
5074>deflection of linear and angular velocity to
5075 preferred axis of motion</P
5076></LI
5077><LI
5078STYLE="list-style-type: opencircle"
5079><P
5080>&#13; <A
5081HREF="#AEN956"
5082>asymmetric linear
5083 and angular friction</A
5084></P
5085></LI
5086><LI
5087STYLE="list-style-type: opencircle"
5088><P
5089>&#13; <A
5090HREF="#AEN979"
5091>hovering</A
5092> over terrain/water or
5093 at a global height</P
5094></LI
5095><LI
5096STYLE="list-style-type: opencircle"
5097><P
5098>&#13; <A
5099HREF="#AEN949"
5100>banking</A
5101> on turns
5102 </P
5103></LI
5104><LI
5105STYLE="list-style-type: opencircle"
5106><P
5107>&#13; <A
5108HREF="#AEN866"
5109>linear</A
5110> and
5111 <A
5112HREF="#AEN898"
5113>angular</A
5114> motor for
5115 <A
5116HREF="#AEN853"
5117>push and turning</A
5118>
5119 </P
5120></LI
5121></UL
5122></P
5123><DIV
5124CLASS="section"
5125><HR><H2
5126CLASS="section"
5127><A
5128NAME="AEN790"
5129>11.1. Overview</A
5130></H2
5131><P
5132>Each scripted object can have one vehicle behavior that is
5133 configurable through the <A
5134HREF="#AEN4249"
5135>llSetVehicleType</A
5136>, <A
5137HREF="#AEN4235"
5138>llSetVehicleFloatParam</A
5139>,
5140 <A
5141HREF="#AEN4274"
5142>llSetVehicleVectorParam</A
5143>,
5144 <A
5145HREF="#AEN4260"
5146>llSetVehicleRotationParam</A
5147>,
5148 <A
5149HREF="#AEN4224"
5150>llSetVehicleFlags</A
5151>,
5152 and <A
5153HREF="#AEN3335"
5154>llRemoveVehicleFlags</A
5155>
5156 library calls.</P
5157><P
5158>These script calls are described in more detail below, but
5159 the important thing to notice here is that the vehicle behavior
5160 has several parameters that can be adjusted to change how the
5161 vehicle handles. Depending on the values chosen the vehicle can
5162 veer like a boat in water, or ride like a sled on rails.</P
5163><P
5164>Setting the vehicle flags allow you to make exceptions to
5165 some default behaviors. Some of these flags only have an effect
5166 when certain behaviors are enabled. For example, the
5167 VEHICLE_FLAG_HOVER_WATER_ONLY will make the vehicle ignore the
5168 height of the terrain, however it only makes a difference if the
5169 vehicle is hovering.</P
5170></DIV
5171><DIV
5172CLASS="section"
5173><HR><H2
5174CLASS="section"
5175><A
5176NAME="AEN801"
5177>11.2. Warnings</A
5178></H2
5179><P
5180>Vehicles are a work in progress and will
5181 likely experience changes in future versions of Second Life.
5182 Some of the details of vehicle behavior may be changed
5183 as necessary to ensure stability
5184 and user safety. In particular, many of the limits and defaults
5185 described in the appendices will probably change and should not be
5186 relied upon in the long term.</P
5187><P
5188>It is not recommended that you mix vehicle behavior with
5189 some of the other script calls that provide impulse and forces to
5190 the object, especially <A
5191HREF="#AEN3773"
5192>llSetBuoyancy</A
5193>, <A
5194HREF="#AEN3841"
5195>llSetForce</A
5196>, <A
5197HREF="#AEN4200"
5198>llSetTorque</A
5199>, and <A
5200HREF="#AEN3872"
5201>llSetHoverHeight</A
5202>.</P
5203><P
5204>While the following methods probably don't cause any
5205 instabilities, their behavior may conflict with vehicles and cause
5206 undesired and/or inconsistent results, so use <A
5207HREF="#AEN2753"
5208>llLookAt</A
5209>, <A
5210HREF="#AEN3559"
5211>llRotLookAt</A
5212>, <A
5213HREF="#AEN2980"
5214>llMoveToTarget</A
5215>, and <A
5216HREF="#AEN4701"
5217>llTargetOmega</A
5218> at your own
5219 risk.</P
5220><P
5221>If you think you have found a bug relating to how vehicle's
5222 work, one way to submit the problem is to give a copy of the
5223 vehicle and script to Andrew Linden with comments or a notecard
5224 describing the problem. Please name all submissions "Bugged
5225 Vehicle XX" where XX are your Second Life initials. The
5226 vehicle and script will be examined at the earliest
5227 convenience.</P
5228></DIV
5229><DIV
5230CLASS="section"
5231><HR><H2
5232CLASS="section"
5233><A
5234NAME="AEN815"
5235>11.3. Definitions</A
5236></H2
5237><P
5238>&#13; The terms "roll", "pitch", and
5239 "yaw" are often used to describe the modes of rotations
5240 that can happen to a airplane or boat. They correspond to
5241 rotations about the local x-, y-, and z-axis respectively.</P
5242><P
5243><DIV
5244CLASS="informalexample"
5245><P
5246></P
5247><A
5248NAME="AEN819"
5249></A
5250><PRE
5251CLASS="programlisting"
5252>&#13; z-axis .
5253 yaw-axis /|\
5254 | __. y-axis
5255 ._ ___| /| pitch-axis
5256 _||\ \\ |\. /
5257 \|| \_______\_|__\_/_______
5258 | _ _ o o o o o o o |\_ ______\ x-axis
5259 // ./_______,----,__________) / roll-axis
5260 /_,/ // ./
5261 /__,/
5262 </PRE
5263><P
5264></P
5265></DIV
5266></P
5267><P
5268>&#13; The right-hand-rule, often introduced in beginning physics
5269 courses, is used to define the direction of positive rotation
5270 about any axis. As an example of how to use the right hand rule,
5271 consider a positive rotation about the roll axis. To help
5272 visualize how such a rotation would move the airplane, place your
5273 right thumb parallel to the plane's roll-axis such that the thumb
5274 points in the positive x-direction, then curl the four fingers
5275 into a fist. Your fingers will be pointing in the direction that
5276 the plane will spin.</P
5277><P
5278><DIV
5279CLASS="informalexample"
5280><P
5281></P
5282><A
5283NAME="AEN823"
5284></A
5285><PRE
5286CLASS="programlisting"
5287>&#13; .-.--.--.--. __
5288 / / / / _ \ / \
5289 (-(- (- (- ( | _________|______\ axis of
5290 \.\._\._\._) | | / rotation
5291 | \:__,---. \|/
5292 | | + positive
5293 \ .,_.___.' rotation
5294 \_ ^ `.__,/
5295 | /
5296 | |
5297 </PRE
5298><P
5299></P
5300></DIV
5301></P
5302><P
5303>&#13; Many of the parameters that control a vehicle's behavior are
5304 of the form: VEHICLE_BEHAVIOR_TIMESCALE. A behavior's
5305 "timescale" can usually be understood as the time for
5306 the behavior to push, twist, or otherwise affect the vehicle such
5307 that the difference between what it is doing, and what it is
5308 supposed to be doing, has been reduced to 1/e of what it was,
5309 where "e" is the natural exponent (approximately
5310 2.718281828). In other words, it is the timescale for exponential
5311 decay toward full compliance to the desired behavior. When you
5312 want the vehicle to be very responsive use a short timescale of
5313 one second or less, and if you want to disable a behavior then set
5314 the timescale to a very large number like 300 (5 minutes) or
5315 more. Note, for stability reasons, there is usually a limit to how
5316 small a timescale is allowed to be, and is usually on the order of
5317 a tenth of a second. Setting a timescale to zero is safe and is
5318 always equivalent to setting it to its minimum. Any feature with a
5319 timescale can be effectively disabled by setting the timescale so
5320 large that it would take them all day to have any
5321 effect.</P
5322></DIV
5323><DIV
5324CLASS="section"
5325><HR><H2
5326CLASS="section"
5327><A
5328NAME="AEN826"
5329>11.4. Setting the Vehicle Type</A
5330></H2
5331><P
5332>Before any vehicle parameters can be set the vehicle
5333 behavior must first be enabled. It is enabled by calling <A
5334HREF="#AEN4249"
5335>llSetVehicleType</A
5336> with any
5337 VEHICLE_TYPE_*, except VEHICLE_TYPE_NONE which will disable the
5338 vehicle. See the <A
5339HREF="#AEN6288"
5340>vehicle type
5341 constants</A
5342> section for currently available types. More types
5343 will be available soon.</P
5344><P
5345>Setting the vehicle type is necessary for enabling the
5346 vehicle behavior and sets all of the parameters to its default
5347 values. For each vehicle type listed we provide the corresponding
5348 equivalent code in long format. Is is
5349 <SPAN
5350CLASS="emphasis"
5351><I
5352CLASS="emphasis"
5353>important</I
5354></SPAN
5355> to realize that the defaults are
5356 <SPAN
5357CLASS="emphasis"
5358><I
5359CLASS="emphasis"
5360>not</I
5361></SPAN
5362> the optimal settings for any of these
5363 vehicle types and that they will definitely be changed in the
5364 future. Do not rely on these values to be constant until
5365 specified.</P
5366><P
5367>Should you want to make a unique or experimental vehicle you
5368 will still have to enable the vehicle behavior with one of the
5369 default types first, after which you will be able to change any of
5370 the parameters or flags within the allowed ranges.</P
5371><P
5372>Setting the vehicle type does not automatically take
5373 controls or otherwise move the object. However should you enable
5374 the vehicle behavior while the object is free to move and parked
5375 on a hill then it may start to slide away.</P
5376><P
5377>We're looking for new and better default vehicle types. If
5378 you think you've found a set of parameters that make a better car,
5379 boat, or any other default type of vehicle then you may submit
5380 your proposed list of settings to Andrew Linden via a script or
5381 notecard.</P
5382></DIV
5383><DIV
5384CLASS="section"
5385><HR><H2
5386CLASS="section"
5387><A
5388NAME="AEN837"
5389>11.5. Linear and Angular Deflection</A
5390></H2
5391><P
5392>A common feature of real vehicles is their tendency to move
5393 along "preferred axes of motion". That is, due to
5394 their wheels, wings, shape, or method of propulsion they tend to
5395 push or redirect themselves along axes that are static in the
5396 vehicle's local frame. This general feature defines a
5397 class of vehicles and included in this category a common
5398 dart is a "vehicle": it
5399 has fins in the back such that if it were to tumble in the air it
5400 would eventually align itself to move point-forward -- we'll call
5401 this alignment effect <SPAN
5402CLASS="emphasis"
5403><I
5404CLASS="emphasis"
5405>angular
5406 deflection</I
5407></SPAN
5408>.</P
5409><P
5410>A wheeled craft exhibits a
5411 different effect: when a
5412 skateboard is pushed in some direction it will tend to redirect
5413 the resultant motion along that which it is free to roll -- we'll
5414 call this effect <SPAN
5415CLASS="emphasis"
5416><I
5417CLASS="emphasis"
5418>&#13; linear deflection</I
5419></SPAN
5420>.</P
5421><P
5422>So a typical Second Life vehicle is an object that
5423 exhibits linear and/or angular deflection along the
5424 "preferential axes of motion". The default
5425 preferential axes of motion are the local x- (at), y- (left), and
5426 z- (up) axes of the <SPAN
5427CLASS="emphasis"
5428><I
5429CLASS="emphasis"
5430>local frame</I
5431></SPAN
5432> of the
5433 vehicle's root primitive. The deflection behaviors relate to the
5434 x-axis (at): linear deflection will tend to rotate its velocity
5435 until it points along it's positive local x-axis while the
5436 angular deflection will tend to reorient the vehicle such that
5437 it's x-axis points in the direction that it is moving. The other
5438 axes are relevant to vehicle behaviors that are described later,
5439 such as the
5440 <A
5441HREF="#AEN938"
5442>vertical attractor</A
5443>
5444 which tries to keep a vehicle's
5445 local z-axis pointed toward the world z-axis (up). The vehicle
5446 axes can be rotated relative to the object's actual local axes by
5447 using the
5448 <A
5449HREF="#AEN990"
5450>VEHICLE_REFERENCE_FRAME</A
5451>
5452 parameter, however that is an
5453 advanced feature and is covered in detail in a later section of
5454 these documents.</P
5455><P
5456>Depending on the vehicle it might be desirable to have lots
5457 of linear and/or angular deflection or not. The speed of the
5458 deflections are controlled by setting the relevant parameters
5459 using the <A
5460HREF="#AEN4235"
5461>llSetVehicleFloatParam</A
5462>
5463 script call. Each variety of deflection has a
5464 "timescale" parameter that determines how quickly a
5465 full deflection happens. Basically the timescale it the time
5466 coefficient for exponential decay toward full deflection. So, a
5467 vehicle that deflects quickly should have a small timescale. For
5468 instance, a typical dart might have a angular deflection
5469 timescale of a couple of seconds but a linear deflection of
5470 several seconds; it will tend to reorient itself before it
5471 changes direction. To set the deflection timescales of a dart
5472 you might use the lines below:</P
5473><P
5474><DIV
5475CLASS="informalexample"
5476><P
5477></P
5478><A
5479NAME="AEN850"
5480></A
5481><PRE
5482CLASS="programlisting"
5483>&#13;llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0);
5484llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 6.0);
5485 </PRE
5486><P
5487></P
5488></DIV
5489></P
5490><P
5491> Each variety of deflection has an "efficiency"
5492 parameter that is a slider between 0.0 and 1.0. Unlike the other
5493 efficiency parameters of other vehicle behaviors, the deflection
5494 efficiencies do not slide between "bouncy" and
5495 "damped", but instead slide from "no deflection
5496 whatsoever" (0.0) to "maximum deflection" (1.0).
5497 That is, they behave much like the deflection timescales, however
5498 they are normalized to the range between 0.0 and 1.0.</P
5499></DIV
5500><DIV
5501CLASS="section"
5502><HR><H2
5503CLASS="section"
5504><A
5505NAME="AEN853"
5506>11.6. Moving and Steering the Vehicle</A
5507></H2
5508><P
5509>Once enabled, a vehicle can be pushed and rotated by
5510 external forces and/or from script calls such as
5511 <A
5512HREF="#AEN1070"
5513>llApplyImpulse</A
5514>,
5515 however linear and angular motors have been built in
5516 to make motion smoother and easier to control.
5517 Their directions can be set using the
5518 <A
5519HREF="#AEN4274"
5520>llSetVehicleVectorParam</A
5521>
5522 call. For example, to make the vehicle try to move at 5
5523 meters/second along its local x-axis (the default look-at
5524 direction) you would put the following line in your script:</P
5525><P
5526><DIV
5527CLASS="informalexample"
5528><P
5529></P
5530><A
5531NAME="AEN859"
5532></A
5533><PRE
5534CLASS="programlisting"
5535>&#13;llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &#60;5, 0, 0&#62;);
5536 </PRE
5537><P
5538></P
5539></DIV
5540></P
5541><P
5542>The motor strength is not the full story, since you can also
5543 control how fast the motor engages (VEHICLE_LINEAR_MOTOR_TIMESCALE)
5544 and there is a parameter that causes the motor's effectiveness to
5545 decay over time (VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE).</P
5546><P
5547>Steering the vehicle involves setting the
5548 VEHICLE_ANGULAR_MOTOR_DIRECTION and related parameters.
5549 It is also possible to set some flags that allow the angular
5550 motor slave to your camera view when in mouselook.</P
5551><P
5552>For more details about the vehicle motors
5553 read the sections on the <A
5554HREF="#AEN866"
5555>linear
5556 </A
5557> and <A
5558HREF="#AEN898"
5559>angular</A
5560>
5561 motors below.</P
5562></DIV
5563><DIV
5564CLASS="section"
5565><HR><H2
5566CLASS="section"
5567><A
5568NAME="AEN866"
5569>11.7. The Linear Motor</A
5570></H2
5571><P
5572>The parameters that control the linear motor are:</P
5573><P
5574><P
5575></P
5576><UL
5577><LI
5578STYLE="list-style-type: opencircle"
5579><P
5580>&#13; VEHICLE_LINEAR_MOTOR_DIRECTION</P
5581><P
5582>A vector.
5583 It is the velocity (meters/sec) that the vehicle will
5584 try to attain. It points in the vehicle's local frame, and has a
5585 maximum length of 40.</P
5586></LI
5587><LI
5588STYLE="list-style-type: opencircle"
5589><P
5590>&#13; VEHICLE_LINEAR_MOTOR_OFFSET</P
5591><P
5592>A vector.
5593 It is the offset point from the vehicle's center of mass at which
5594 the linear motor's impulse is applied. This allows the linear motor
5595 to also cause rotational torque. It is in the vehicle's local
5596 frame and its maximum length is 100 meters! No need to worry
5597 about stability -- if the vehicle starts to spin too fast
5598 (greater than about 4*PI radians per second) then angular
5599 velocity damping will kick in. The reason the offset is allowed
5600 to be so large is so that it can compete with the other vehicle
5601 behaviors such as <A
5602HREF="#vehicle_angular_deflection"
5603>angular deflection</A
5604>
5605 and the <A
5606HREF="#AEN938"
5607>vertical
5608 attractor</A
5609>. Some of the other vehicle behaviors may
5610 drastically reduce the effective torque from the linear motor
5611 offset, in which case a longer leverage arm may help.</P
5612></LI
5613><LI
5614STYLE="list-style-type: opencircle"
5615><P
5616>&#13; VEHICLE_LINEAR_MOTOR_TIMESCALE</P
5617><P
5618>A float. Determines how long it takes for the motor to
5619 push the vehicle to full speed. Its minimum value is approximately
5620 0.06 seconds.</P
5621></LI
5622><LI
5623STYLE="list-style-type: opencircle"
5624><P
5625>&#13; VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</P
5626><P
5627>A float. The effectiveness of the motor will exponentially
5628 decay over this timescale, but the effectiveness will be reset
5629 whenever the motor's value is explicitly set. The maximum value
5630 of this decay timescale is 120 seconds,
5631 and this timescale is always in effect.</P
5632></LI
5633></UL
5634></P
5635><P
5636>The flags that affect the linear motor are:</P
5637><P
5638><P
5639></P
5640><UL
5641><LI
5642STYLE="list-style-type: opencircle"
5643><P
5644>VEHICLE_FLAG_LIMIT_MOTOR_UP</P
5645><P
5646>Useful for "ground vehicles".
5647 Setting this flag will clamp the z-component of the linear
5648 motor (in world frame) to prevent it from defeating gravity.</P
5649></LI
5650></UL
5651></P
5652><P
5653>Setting the motor speed is not enough to enable all
5654 interesting vehicles. For example, some will want a car that
5655 immediately gets up to the speed they want, while others will want
5656 a boat that slowly climbs up to its maximum velocity. To control
5657 this effect the VEHICLE_LINEAR_MOTOR_TIMESCALE parameter can be
5658 used. Basically the "timescale" of a motor is the
5659 time constant for the vehicle to exponentially accelerate toward
5660 its full speed.</P
5661><P
5662>What would happen if you were to accidentally set the
5663 vehicle's linear velocity to maximum possible speed and then let
5664 go? It would run away and never stop, right? Not necessarily: an
5665 automatic "motor decay" has been built in such that all
5666 motors will gradually decrease their effectiveness after being
5667 set.</P
5668><P
5669>Each time the linear motor's vector is set its
5670 "grip"
5671 immediately starts to decay exponentially with a timescale
5672 determined by the VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, such
5673 that after enough time the motor ceases to have any effect.
5674 This decay timescale serves two purposes. First, since it
5675 <SPAN
5676CLASS="emphasis"
5677><I
5678CLASS="emphasis"
5679>cannot</I
5680></SPAN
5681> be set longer than 120 seconds,
5682 and is <SPAN
5683CLASS="emphasis"
5684><I
5685CLASS="emphasis"
5686>always</I
5687></SPAN
5688> enabled it
5689 guarantees that a vehicle will not push itself about forever
5690 in the absence
5691 of active control (from keyboard commands or some logic loop in
5692 the script). Second, it can be used to push some vehicles around
5693 using a simple impulse model. That is, rather than setting the
5694 motor "on" or "off" depending on whether
5695 a particular key is pressed "down" or "up"
5696 the decay timescale can be set short and the motor can be set
5697 "on" whenever the key transitions from "up"
5698 to "down" and allowed to automatically decay.</P
5699><P
5700> Since the motor's effectiveness is reset whenever the
5701 motor's vector is set, then setting it to a vector of length zero
5702 is different from allowing it to decay completely. The first case
5703 will cause the vehicle to try to reach zero velocity, while the
5704 second will leave the motor impotent.</P
5705><P
5706>The two motor timescales have very similar names, but have
5707 different effects, so try not to get them confused.
5708 VEHICLE_LINEAR_MOTOR_TIMESCALE is the time for motor to
5709 "win", and VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE is the
5710 time for the motor's "effectiveness" to decay toward
5711 zero. If you set one when you think you are changing the other
5712 you will have frustrating results. Also, if the motor's decay
5713 timescale is shorter than the regular timescale, then the
5714 effective magnitude of the motor vector will be
5715 diminished.</P
5716></DIV
5717><DIV
5718CLASS="section"
5719><HR><H2
5720CLASS="section"
5721><A
5722NAME="AEN898"
5723>11.8. The Angular Motor</A
5724></H2
5725><P
5726>The parameters that control the angular motor are:</P
5727><P
5728><P
5729></P
5730><UL
5731><LI
5732STYLE="list-style-type: opencircle"
5733><P
5734>&#13; VEHICLE_ANGULAR_MOTOR_DIRECTION</P
5735><P
5736>A vector. It is the angular velocity (radians/sec)
5737 that the vehicle will try to rotate. It points in the vehicle's
5738 local frame, and has a maximum value of 4*PI (two revolutions
5739 per second).</P
5740></LI
5741><LI
5742STYLE="list-style-type: opencircle"
5743><P
5744>&#13; VEHICLE_ANGULAR_MOTOR_TIMESCALE</P
5745><P
5746>A float. Determines how long it takes for the motor to
5747 spin the vehicle to full speed. Its minimum value is approximately
5748 0.06 seconds.</P
5749></LI
5750><LI
5751STYLE="list-style-type: opencircle"
5752><P
5753>&#13; VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</P
5754><P
5755>A float. The effectiveness of the motor will exponentially
5756 decay over this timescale, but the effectiveness will be reset
5757 whenever the motor's value is explicitly set. The maximum value
5758 of this decay timescale is 120 seconds,
5759 and this timescale is always in effect.</P
5760></LI
5761></UL
5762></P
5763><P
5764>Like the linear motor the angular motor can be set explicitly,
5765 and has magnitude/direction, a timescale, and a decay timescale. </P
5766><P
5767>When it comes to actually steering a vehicle there are
5768 several ways to do it. One way would be for the script to grab
5769 keyboard input and to explicitly turn the motor on/off based on
5770 which keys are pressed. When steering this way you probably
5771 don't want it to turn very far or for very long. One way to do
5772 it using the angular motor would be to leave the decay timescale
5773 long, enable a significant amount of angular friction (to
5774 quickly slow the vehicle down when the motor is turned off) then
5775 set the angular motor to a large vector on a key press, and set
5776 it to zero when the key is released. That has the effect of
5777 making the vehicle unresponsive to external collisions, due to
5778 the angular friction.</P
5779><P
5780>Another way to do it is to set the
5781 VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE to a short value and push
5782 the vehicle about with a more impulsive method that sets the
5783 motor fast on a key press down (and optionally setting the motor
5784 to zero on a key up) relying on the automatic exponential decay
5785 of the motor's effectiveness rather than a constant angular
5786 friction.</P
5787><P
5788>Finally, it may be possible to discard the angular motor
5789 entirely and use the VEHICLE_LINEAR_MOTOR_OFFSET. Whenever the
5790 offset has a component that is perpendicular to the direction
5791 of the linear motor the vehicle will rotate as it travels.
5792 Note, with the incorrect values for offset and strength the
5793 linear motor effect can easily cause the vehicle to tumble
5794 and spin uncontrollably, so experiement with small offsets
5795 first!.</P
5796><P
5797>Setting the angular motor to zero magnitude is different
5798 from allowing it to decay. When the motor completely decays
5799 it no longer affects the motion of the vehicle, however setting
5800 it to zero will reset the "grip" of the vehicle and
5801 will make the vehicle try to achieve zero angular velocity.
5802 </P
5803><P
5804>Many real vehicles bank (roll about their
5805 forward axis) to effect a turn, such as motorcycles and airplanes.
5806 To make it easier to build banking vehicles there is
5807 <A
5808HREF="#AEN949"
5809>banking behavior</A
5810>
5811 available which can be controlled by setting other parameters and is
5812 described in more detail here.</P
5813><P
5814>It is also possible to make a
5815 <A
5816HREF="#AEN921"
5817>vehicle turn in response
5818 to changing the camera view</A
5819>
5820 (right now this only works in mouselook).</P
5821></DIV
5822><DIV
5823CLASS="section"
5824><HR><H2
5825CLASS="section"
5826><A
5827NAME="AEN921"
5828>11.9. Using the Camera to Steer</A
5829></H2
5830><P
5831>The vehicle can be instructed to rotate its forward axis
5832 to point in the same direction as the camera view. This
5833 is achieved by setting some flags that change how the
5834 VEHICLE_ANGULAR_MOTOR_DIRECTION is interpreted. When used properly
5835 this feature has the advantage of being able to provide simple
5836 and stable steering that is resilient to bad render frame rates
5837 on the client. </P
5838><P
5839>The flags that affect the angular motor are:</P
5840><P
5841><P
5842></P
5843><UL
5844><LI
5845STYLE="list-style-type: opencircle"
5846><P
5847>&#13; VEHICLE_FLAG_MOUSELOOK_STEER</P
5848><P
5849>Steer the vehicle using the mouse. Use this flag to make
5850 the angular motor try to make the vehicle
5851 turn such that its local x-axis points in the same direction as
5852 the client-side camera.</P
5853></LI
5854><LI
5855STYLE="list-style-type: opencircle"
5856><P
5857>&#13; VEHICLE_FLAG_MOUSELOOK_BANK</P
5858><P
5859>Same as above, but relies on banking. It remaps left-right
5860 motions of the client camera (also known as "yaw") to rotations about
5861 the vehicle's local x-axis (also known as "roll"). </P
5862></LI
5863><LI
5864STYLE="list-style-type: opencircle"
5865><P
5866>&#13; VEHICLE_FLAG_CAMERA_DECOUPLED</P
5867><P
5868>Makes mouselook camera rotate independently of the vehicle.
5869 By default the client mouselook camera will rotate about
5870 with the vehicle, however when this flag is set the camera
5871 direction is independent of the vehicle's rotation.</P
5872></LI
5873></UL
5874></P
5875><P
5876>When using the VEHICLE_FLAG_MOUSELOOK_STEER (or
5877 VEHICLE_FLAG_MOUSELOOK_BANK) the meaning of the
5878 VEHICLE_ANGULAR_MOTOR_DIRECTION parameter subtly changes. Instead
5879 of representing the "angular velocity" of the motor
5880 the components of the parameter scale the "measured angular
5881 velocity" (as determined by the rotation between
5882 the client's camera view direction and the forward-axis of the vehicle)
5883 to compute the "final angular velocity". That is,
5884 suppose you set the angular motor to &#60;0, 0, 5&#62;, then moved the
5885 camera view to be PI/4 radians to the left of the vehicle's forward axis,
5886 and down PI/8 toward the ground.
5887 The measured angular velocity would be &#60;0, -PI/8, PI/4&#62;
5888 radians/second, but the final velocity would be &#60;0, 0, 5*PI/4&#62;...
5889 the vehicle will turn left, but will not dip its nose down.
5890 Thus, by setting a component of the VEHICLE_ANGULAR_MOTOR_DIRECTION
5891 to zero, one can negate the pitch or yaw response of the motor,
5892 or even scale one to be much more responsive than the other.
5893 </P
5894><P
5895>The VEHICLE_ANGULAR_MOTOR_TIMESCALE still has an effect when
5896 using mouselook control, and scales the global responsiveness of the
5897 angular motor. The VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, on the other
5898 hand, is ignored when using mouselook controls.</P
5899></DIV
5900><DIV
5901CLASS="section"
5902><HR><H2
5903CLASS="section"
5904><A
5905NAME="AEN938"
5906>11.10. The Vertical Attractor</A
5907></H2
5908><P
5909>Some vehicles, like boats, should always keep their up-side
5910 up. This can be done by enabling the "vertical
5911 attractor" behavior that springs the vehicle's local z-axis
5912 to the world z-axis (a.k.a. "up"). To take advantage of
5913 this feature you would set the VEHICLE_VERTICAL_ATTRACTION_TIMESCALE
5914 to control the period of the spring frequency, and then set the
5915 VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY to control the damping. An
5916 efficiency of 0.0 will cause the spring to wobble around its
5917 equilibrium, while an efficiency of 1.0 will cause the spring to
5918 reach it's equilibrium with exponential decay.</P
5919><P
5920><DIV
5921CLASS="informalexample"
5922><P
5923></P
5924><A
5925NAME="AEN942"
5926></A
5927><PRE
5928CLASS="programlisting"
5929>&#13;llSetVehicleVectorParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 4.0);
5930llSetVehicleVectorParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5);
5931 </PRE
5932><P
5933></P
5934></DIV
5935></P
5936><P
5937>The vertical attractor is disabled by setting its timescale
5938 to anything larger than 300 seconds.</P
5939><P
5940>Note that by default the vertical attractor will prevent the
5941 vehicle from diving and climbing. So, if you wanted to make a
5942 airplane you would probably want to unlock the attractor around the
5943 pitch axis by setting the VEHICLE_FLAG_LIMIT_ROLL_ONLY bit:</P
5944><P
5945><DIV
5946CLASS="informalexample"
5947><P
5948></P
5949><A
5950NAME="AEN947"
5951></A
5952><PRE
5953CLASS="programlisting"
5954>&#13;llSetVehicleFlags(VEHICLE_FLAG_LIMIT_ROLL_ONLY);
5955 </PRE
5956><P
5957></P
5958></DIV
5959></P
5960></DIV
5961><DIV
5962CLASS="section"
5963><HR><H2
5964CLASS="section"
5965><A
5966NAME="AEN949"
5967>11.11. Banking</A
5968></H2
5969><P
5970>The <A
5971HREF="#AEN938"
5972>&#13; vertical attractor</A
5973> feature must be enabled in order for
5974 the banking behavior to function. The way banking works is this: a
5975 rotation around the vehicle's roll-axis will produce a angular
5976 velocity around the yaw-axis, causing the vehicle to turn. The
5977 magnitude of the yaw effect will be proportional to the
5978 VEHICLE_BANKING_EFFICIENCY, the angle of the roll rotation, and
5979 sometimes the vehicle's velocity along it's preferred axis of
5980 motion.</P
5981><P
5982>The VEHICLE_BANKING_EFFICIENCY can vary between -1 and +1. When
5983 it's positive then any positive rotation (by the right-hand rule)
5984 about the roll-axis will effect a (negative) torque around the
5985 yaw-axis, making it turn to the right -- that is the vehicle will
5986 lean into the turn, which is how real airplanes and motorcycle's
5987 work. Negating the banking coefficient will make it so that the
5988 vehicle leans to the outside of the turn (not very
5989 "physical" but might allow interesting vehicles so why
5990 not?).</P
5991><P
5992>The VEHICLE_BANKING_MIX is a fake (i.e. non-physical)
5993 parameter that is useful for making banking vehicles do what you
5994 want rather than what the laws of physics allow. For example,
5995 consider a real motorcycle... it must be moving forward in order
5996 for it to turn while banking, however video-game motorcycles are
5997 often configured to turn in place when at a dead stop -- because
5998 they're often easier to control that way using the limited
5999 interface of the keyboard or game controller. The
6000 VEHICLE_BANKING_MIX enables combinations of both realistic and
6001 non-realistic banking by functioning as a slider between a banking
6002 that is correspondingly totally static (0.0) and totally dynamic
6003 (1.0). By "static" we mean that the banking effect
6004 depends only on the vehicle's rotation about it's roll-axis
6005 compared to "dynamic" where the banking is also
6006 proportional to it's velocity along it's roll-axis. Finding the
6007 best value of the "mixture" will probably require trial
6008 and error.</P
6009><P
6010>The time it takes for the
6011 banking behavior to defeat a
6012 pre-existing angular velocity about the world z-axis is determined
6013 by the VEHICLE_BANKING_TIMESCALE. So if you want the vehicle to
6014 bank quickly then give it a banking timescale of about a second or
6015 less, otherwise you can make a sluggish vehicle by giving it a
6016 timescale of several seconds.</P
6017></DIV
6018><DIV
6019CLASS="section"
6020><HR><H2
6021CLASS="section"
6022><A
6023NAME="AEN956"
6024>11.12. Friction Timescales</A
6025></H2
6026><P
6027>&#13; VEHICLE_LINEAR_FRICTION_TIMESCALE is a vector parameter that
6028 defines the timescales for the vehicle to come to a complete stop
6029 along the three local axes of the
6030 <A
6031HREF="#AEN990"
6032>vehicle's reference frame</A
6033>.
6034 The timescale along each axis is independent of the others.
6035 For example, a sliding ground car would probably have very little
6036 friction along its x- and z-axes (so it can easily slide forward
6037 and fall down) while there would usually significant friction
6038 along its y-axis:</P
6039><P
6040><DIV
6041CLASS="informalexample"
6042><P
6043></P
6044><A
6045NAME="AEN961"
6046></A
6047><PRE
6048CLASS="programlisting"
6049>&#13;llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &#60;1000, 1000, 3&#62;);
6050 </PRE
6051><P
6052></P
6053></DIV
6054></P
6055><P
6056>Remember that a longer timescale corresponds to a weaker
6057 friction, hence to effectively disable all linear friction you
6058 would set all of the timescales to large values.</P
6059><P
6060>Setting the linear friction as a scalar is allowed, and has
6061 the effect of setting all of the timescales to the same
6062 value. Both code snippets below are equivalent, and both make friction
6063 negligible:</P
6064><P
6065><DIV
6066CLASS="informalexample"
6067><P
6068></P
6069><A
6070NAME="AEN966"
6071></A
6072><PRE
6073CLASS="programlisting"
6074>&#13;// set all linear friction timescales to 1000
6075llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &#60;1000, 1000, 1000&#62;);
6076 </PRE
6077><P
6078></P
6079></DIV
6080></P
6081><P
6082><DIV
6083CLASS="informalexample"
6084><P
6085></P
6086><A
6087NAME="AEN969"
6088></A
6089><PRE
6090CLASS="programlisting"
6091>&#13;// same as above, but fewer characters
6092llSetVehicleFloatParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, 1000);
6093 </PRE
6094><P
6095></P
6096></DIV
6097></P
6098><P
6099>&#13; VEHICLE_ANGULAR_FRICTION_TIMESCALE is also a vector
6100 parameter that defines the timescales for the vehicle to stop
6101 rotating about the x-, y-, and z-axes, and are set and disabled in
6102 the same way as the linear friction.</P
6103></DIV
6104><DIV
6105CLASS="section"
6106><HR><H2
6107CLASS="section"
6108><A
6109NAME="AEN972"
6110>11.13. Buoyancy</A
6111></H2
6112><P
6113>The vehicle has a built-in buoyancy feature that is
6114 independent of the <A
6115HREF="#AEN3773"
6116>llSetBuoyancy</A
6117> call. It
6118 is recommended that the two buoyancies do not mix! To make
6119 a vehicle buoyant, set the VEHICLE_BUOYANCY parameter to something
6120 between -1.0 (extra gravity) to 1.0 (full anti-gravity).
6121 </P
6122><P
6123>The buoyancy behavior is independent of hover, however
6124 in order for hover to work without a large offset of the
6125 VEHICLE_HOVER_HEIGHT, the VEHICLE_BUOYANCY should be set to 1.0.
6126 </P
6127><P
6128>It is not recommended that you mix vehicle buoyancy with
6129 the <A
6130HREF="#AEN3773"
6131>llSetBuoyancy</A
6132> script call.
6133 It would probably cause the object to fly up into space.</P
6134></DIV
6135><DIV
6136CLASS="section"
6137><HR><H2
6138CLASS="section"
6139><A
6140NAME="AEN979"
6141>11.14. Hover</A
6142></H2
6143><P
6144>The hover behavior is enabled by setting the
6145 VEHICLE_HOVER_TIMESCALE to a value less than 300 seconds; larger
6146 timescales totally disable it. Most vehicles will work
6147 best with short hover timescales of a few seconds or less.
6148 The shorter the timescale, the faster the vehicle will
6149 slave to is target height. Note, that if the values of
6150 VEHICLE_LINEAR_FRICTION_TIMESCALE may affect the speed of
6151 the hover.</P
6152><P
6153>Hover is independent of buoyancy, however the
6154 VEHICLE_BUOYANCY should be set to 1.0, otherwise the vehicle
6155 will not lift itself off of the ground until the
6156 VEHICLE_HOVER_HEIGHT is made large enough to counter the
6157 acceleration of gravity, and the vehicle will never float
6158 all the way to its target height. </P
6159><P
6160>The VEHICLE_HOVER_EFFICIENCY can be thought of as a slider
6161 between bouncy (0.0) and smoothed (1.0). When in the
6162 bouncy range the vehicle will tend to hover a little lower than
6163 its target height and the VEHICLE_HOVER_TIMESCALE will be
6164 approximately the oscillation period of the bounce (the real
6165 period will tend to be a little longer than the timescale).</P
6166><P
6167>For performance reasons, until improvements are made to the
6168 Second Life physics engine the vehicles can only hover over the
6169 terrain and water, so they will not be able to hover above
6170 objects made out of primitives, such as bridges and houses. By
6171 default the hover behavior will float over terrain and water,
6172 however this can be changed by setting some flags: </P
6173><P
6174>If you wanted to make a boat you should set the
6175 <A
6176HREF="#const_vehicle_flag_hover_water_only"
6177>&#13; VEHICLE_HOVER_WATER_ONLY </A
6178> flag, or if you wanted to drive a hover
6179 tank under water you would use the
6180 <A
6181HREF="#const_vehicle_flag_hover_terrain_only"
6182>&#13; VEHICLE_HOVER_TERRAIN_ONLY </A
6183> flag instead.
6184 Finally, if you wanted to make a submarine or a balloon you would use the
6185 <A
6186HREF="#const_vehicle_flag_hover_global_height"
6187>&#13; VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</A
6188>. Note that
6189 the flags are independent of each other and that setting two
6190 contradictory flags will have undefined behavior. The flags are
6191 set using the script call llSetVehicleFlags().</P
6192><P
6193>The VEHICLE_HOVER_HEIGHT determines
6194 how high the vehicle
6195 will hover over the terrain and/or water, or the global height,
6196 and has a maximum value of 100 meters. Note that for hovering
6197 purposes the "center" of the vehicle is its "center of mass"
6198 which is not always obvious to the untrained eye, and it
6199 changes when avatar's sit on the vehicle.</P
6200></DIV
6201><DIV
6202CLASS="section"
6203><HR><H2
6204CLASS="section"
6205><A
6206NAME="AEN990"
6207>11.15. Reference Frame</A
6208></H2
6209><P
6210>The vehicle relies on the x- (at), y- (left), and z- (up)
6211 axes in order to figure out which way it prefers to move and
6212 which end is up. By default these axes are identical to the
6213 local axes of the root primitive of the object, however this
6214 means that the vehicle's root primitive must, by default, be
6215 oriented to agree with the designed at, left, and up axes of the
6216 vehicle. But, what if the vehicle object was already pre-built
6217 with the root primitive in some non-trivial orientation
6218 relative to where the vehicle as a whole should move? This is
6219 where the VEHICLE_REFERENCE_FRAME parameter becomes useful; the
6220 vehicle's axes can be arbitrarily reoriented by setting this
6221 parameter. </P
6222><P
6223>As an example, suppose you had built a rocket out of a big
6224 cylinder, a cone for the nose, and some stretched cut boxes for
6225 the fins, then linked them all together with the cylinder as the
6226 root primitive. Ideally the rocket would move nose-first,
6227 however the cylinder's axis of symmetry is its local z-axis while
6228 the default "at-axis" of the vehicle, the axis it will
6229 want to deflect to forward under angular deflection, is the local
6230 x-axis and points out from the curved surface of the cylinder.
6231 The script code below will rotate the vehicle's axes such that
6232 the local z-axis becomes the "at-axis" and the local
6233 negative x-axis becomes the "up-axis":</P
6234><P
6235><DIV
6236CLASS="informalexample"
6237><P
6238></P
6239><A
6240NAME="AEN995"
6241></A
6242><PRE
6243CLASS="programlisting"
6244>&#13;// rotate the vehicle frame -PI/2 about the local y-axis (left-axis)
6245rotation rot = llEuler2Rot(0, PI/2, 0);
6246llSetVehicleRotationParam(VEHICLE_REFERENCE_FRAME, rot);
6247</PRE
6248><P
6249></P
6250></DIV
6251></P
6252><P
6253>Another example of how the reference frame parameter could
6254 be used is to consider flying craft that uses the vertical
6255 attractor for stability during flying but wants to use VTOL
6256 (vertical takeoff and landing). During flight the craft's dorsal
6257 axis should point up, but during landing its nose-axis should be
6258 up. To land the vehicle: while the
6259 <A
6260HREF="#AEN938"
6261>vertical attractor</A
6262>
6263 is in effect, rotate the existing VEHICLE_REFERENCE_FRAME by +PI/2
6264 about the left-axis, then the vehicle will pitch up such that
6265 it's nose points toward the sky. The vehicle could be allowed to
6266 fall to the landing pad under friction, or a decreasing hover
6267 effect. </P
6268></DIV
6269></DIV
6270><DIV
6271CLASS="appendix"
6272><HR><H1
6273><A
6274NAME="AEN999"
6275></A
6276>Appendix A. Linden Library Functions</H1
6277><P
6278>Complete listing of the Linden Library function calls
6279 available in lsl.</P
6280><DIV
6281CLASS="section"
6282><HR><H2
6283CLASS="section"
6284><A
6285NAME="AEN1002"
6286>A.1. llAbs</A
6287></H2
6288><DIV
6289CLASS="funcsynopsis"
6290><P
6291></P
6292><A
6293NAME="AEN1004"
6294></A
6295><P
6296><CODE
6297><CODE
6298CLASS="FUNCDEF"
6299>integer llAbs</CODE
6300>(integer val);</CODE
6301></P
6302><P
6303></P
6304></DIV
6305><P
6306>Returns the absolute value of
6307 <CODE
6308CLASS="parameter"
6309>val</CODE
6310>.</P
6311></DIV
6312><DIV
6313CLASS="section"
6314><HR><H2
6315CLASS="section"
6316><A
6317NAME="AEN1012"
6318>A.2. llAcos</A
6319></H2
6320><DIV
6321CLASS="funcsynopsis"
6322><P
6323></P
6324><A
6325NAME="AEN1014"
6326></A
6327><P
6328><CODE
6329><CODE
6330CLASS="FUNCDEF"
6331>float llAcos</CODE
6332>(float val);</CODE
6333></P
6334><P
6335></P
6336></DIV
6337><P
6338>Returns the arccosine in radians of
6339 <CODE
6340CLASS="parameter"
6341>val</CODE
6342>.</P
6343></DIV
6344><DIV
6345CLASS="section"
6346><HR><H2
6347CLASS="section"
6348><A
6349NAME="AEN1022"
6350>A.3. llAddToLandPassList</A
6351></H2
6352><DIV
6353CLASS="funcsynopsis"
6354><P
6355></P
6356><A
6357NAME="AEN1024"
6358></A
6359><P
6360><CODE
6361><CODE
6362CLASS="FUNCDEF"
6363>llAddToLandPassList</CODE
6364>(key avatar, float hours);</CODE
6365></P
6366><P
6367></P
6368></DIV
6369><P
6370>Add <CODE
6371CLASS="parameter"
6372>avatar</CODE
6373> to the land pass list for
6374 <CODE
6375CLASS="parameter"
6376>hours</CODE
6377>.</P
6378></DIV
6379><DIV
6380CLASS="section"
6381><HR><H2
6382CLASS="section"
6383><A
6384NAME="AEN1035"
6385>A.4. llAdjustSoundVolume</A
6386></H2
6387><DIV
6388CLASS="funcsynopsis"
6389><P
6390></P
6391><A
6392NAME="AEN1037"
6393></A
6394><P
6395><CODE
6396><CODE
6397CLASS="FUNCDEF"
6398>llAdjustSoundVolume</CODE
6399>(float volume);</CODE
6400></P
6401><P
6402></P
6403></DIV
6404><P
6405>Adjusts the volume of the currently playing attached sound
6406 started with <A
6407HREF="#AEN3184"
6408>llPlaySound</A
6409> or
6410 <A
6411HREF="#AEN2773"
6412>llLoopSound</A
6413>. This function
6414 Has no effect on sounds started with <A
6415HREF="#AEN4756"
6416>llTriggerSound</A
6417>.</P
6418></DIV
6419><DIV
6420CLASS="section"
6421><HR><H2
6422CLASS="section"
6423><A
6424NAME="AEN1047"
6425>A.5. llAllowInventoryDrop</A
6426></H2
6427><DIV
6428CLASS="funcsynopsis"
6429><P
6430></P
6431><A
6432NAME="AEN1049"
6433></A
6434><P
6435><CODE
6436><CODE
6437CLASS="FUNCDEF"
6438>llAllowInventoryDrop</CODE
6439>(integer add);</CODE
6440></P
6441><P
6442></P
6443></DIV
6444><P
6445>If <CODE
6446CLASS="parameter"
6447>add</CODE
6448> == TRUE, users that do no have
6449 object modify permissions can still drop inventory items onto
6450 object.</P
6451></DIV
6452><DIV
6453CLASS="section"
6454><HR><H2
6455CLASS="section"
6456><A
6457NAME="AEN1057"
6458>A.6. llAngleBetween</A
6459></H2
6460><DIV
6461CLASS="funcsynopsis"
6462><P
6463></P
6464><A
6465NAME="AEN1059"
6466></A
6467><P
6468><CODE
6469><CODE
6470CLASS="FUNCDEF"
6471>float llAngleBetween</CODE
6472>(rotation a, rotation b);</CODE
6473></P
6474><P
6475></P
6476></DIV
6477><P
6478>Returns the angle in radians between rotations
6479 <CODE
6480CLASS="parameter"
6481>a</CODE
6482> and <CODE
6483CLASS="parameter"
6484>b</CODE
6485>.</P
6486></DIV
6487><DIV
6488CLASS="section"
6489><HR><H2
6490CLASS="section"
6491><A
6492NAME="AEN1070"
6493>A.7. llApplyImpulse</A
6494></H2
6495><DIV
6496CLASS="funcsynopsis"
6497><P
6498></P
6499><A
6500NAME="AEN1072"
6501></A
6502><P
6503><CODE
6504><CODE
6505CLASS="FUNCDEF"
6506>llApplyImpulse</CODE
6507>(vector force, integer local);</CODE
6508></P
6509><P
6510></P
6511></DIV
6512><P
6513>Applies the <CODE
6514CLASS="parameter"
6515>impulse</CODE
6516> in local
6517 coordinates if <CODE
6518CLASS="parameter"
6519>local</CODE
6520> == TRUE. Otherwise the
6521 impulse is applied in global coordinates. This function only works
6522 on physical objects.</P
6523></DIV
6524><DIV
6525CLASS="section"
6526><HR><H2
6527CLASS="section"
6528><A
6529NAME="AEN1083"
6530>A.8. llApplyRotationalImpulse</A
6531></H2
6532><DIV
6533CLASS="funcsynopsis"
6534><P
6535></P
6536><A
6537NAME="AEN1085"
6538></A
6539><P
6540><CODE
6541><CODE
6542CLASS="FUNCDEF"
6543>llApplyRotationalImpulse</CODE
6544>(vector force, integer local);</CODE
6545></P
6546><P
6547></P
6548></DIV
6549><P
6550>Applies a rotational <CODE
6551CLASS="parameter"
6552>impulse</CODE
6553> force in
6554 local coordinates if <CODE
6555CLASS="parameter"
6556>local</CODE
6557> ==
6558 TRUE. Otherwise the impulse is applied in global coordinates. This
6559 function only works on physical objects.</P
6560></DIV
6561><DIV
6562CLASS="section"
6563><HR><H2
6564CLASS="section"
6565><A
6566NAME="AEN1096"
6567>A.9. llAsin</A
6568></H2
6569><DIV
6570CLASS="funcsynopsis"
6571><P
6572></P
6573><A
6574NAME="AEN1098"
6575></A
6576><P
6577><CODE
6578><CODE
6579CLASS="FUNCDEF"
6580>float llAsin</CODE
6581>(float val);</CODE
6582></P
6583><P
6584></P
6585></DIV
6586><P
6587>Returns the arcsine in radians of
6588 <CODE
6589CLASS="parameter"
6590>val</CODE
6591>.</P
6592></DIV
6593><DIV
6594CLASS="section"
6595><HR><H2
6596CLASS="section"
6597><A
6598NAME="AEN1106"
6599>A.10. llAtan2</A
6600></H2
6601><DIV
6602CLASS="funcsynopsis"
6603><P
6604></P
6605><A
6606NAME="AEN1108"
6607></A
6608><P
6609><CODE
6610><CODE
6611CLASS="FUNCDEF"
6612>float llAtan2</CODE
6613>(float y, float x);</CODE
6614></P
6615><P
6616></P
6617></DIV
6618><P
6619>returns the arctangent2 of <CODE
6620CLASS="parameter"
6621>y</CODE
6622>,
6623 <CODE
6624CLASS="parameter"
6625>x</CODE
6626></P
6627></DIV
6628><DIV
6629CLASS="section"
6630><HR><H2
6631CLASS="section"
6632><A
6633NAME="AEN1119"
6634>A.11. llAttachToAvatar</A
6635></H2
6636><DIV
6637CLASS="funcsynopsis"
6638><P
6639></P
6640><A
6641NAME="AEN1121"
6642></A
6643><P
6644><CODE
6645><CODE
6646CLASS="FUNCDEF"
6647>llAttachToAvatar</CODE
6648>(key avatar, integer attachment);</CODE
6649></P
6650><P
6651></P
6652></DIV
6653><P
6654>Attach to <CODE
6655CLASS="parameter"
6656>avatar</CODE
6657> at point <A
6658HREF="#AEN5448"
6659><CODE
6660CLASS="parameter"
6661>attachment</CODE
6662></A
6663>.
6664 Requires the <A
6665HREF="#const_permission_attach"
6666>PERMISSION_ATTACH</A
6667> runtime
6668 permission.</P
6669></DIV
6670><DIV
6671CLASS="section"
6672><HR><H2
6673CLASS="section"
6674><A
6675NAME="AEN1134"
6676>A.12. llAvatarOnSitTarget</A
6677></H2
6678><DIV
6679CLASS="funcsynopsis"
6680><P
6681></P
6682><A
6683NAME="AEN1136"
6684></A
6685><P
6686><CODE
6687><CODE
6688CLASS="FUNCDEF"
6689>key llAvatarOnSitTarget</CODE
6690>(void);</CODE
6691></P
6692><P
6693></P
6694></DIV
6695><P
6696>If an avatar is sitting on the sit target, return
6697 the avatar's key, <A
6698HREF="#AEN6070"
6699>NULL_KEY</A
6700> otherwise.
6701 This only will detect avatars sitting on sit targets defined with <A
6702HREF="#AEN4312"
6703>llSitTarget</A
6704>.</P
6705></DIV
6706><DIV
6707CLASS="section"
6708><HR><H2
6709CLASS="section"
6710><A
6711NAME="AEN1144"
6712>A.13. llAxes2Rot</A
6713></H2
6714><DIV
6715CLASS="funcsynopsis"
6716><P
6717></P
6718><A
6719NAME="AEN1146"
6720></A
6721><P
6722><CODE
6723><CODE
6724CLASS="FUNCDEF"
6725>rotation llAxes2Rot</CODE
6726>(vector fwd, vector left, vector up);</CODE
6727></P
6728><P
6729></P
6730></DIV
6731><P
6732>Returns the rotation represented by coordinate axes
6733 <CODE
6734CLASS="parameter"
6735>fwd</CODE
6736>, <CODE
6737CLASS="parameter"
6738>left</CODE
6739>, and
6740 <CODE
6741CLASS="parameter"
6742>up</CODE
6743>.</P
6744></DIV
6745><DIV
6746CLASS="section"
6747><HR><H2
6748CLASS="section"
6749><A
6750NAME="AEN1160"
6751>A.14. llAxisAngle2Rot</A
6752></H2
6753><DIV
6754CLASS="funcsynopsis"
6755><P
6756></P
6757><A
6758NAME="AEN1162"
6759></A
6760><P
6761><CODE
6762><CODE
6763CLASS="FUNCDEF"
6764>rotation llAxisAngle2Rot</CODE
6765>(vector axis, float angle);</CODE
6766></P
6767><P
6768></P
6769></DIV
6770><P
6771>Returns the rotation generated <CODE
6772CLASS="parameter"
6773>angle</CODE
6774>
6775 about <CODE
6776CLASS="parameter"
6777>axis</CODE
6778>.</P
6779></DIV
6780><DIV
6781CLASS="section"
6782><HR><H2
6783CLASS="section"
6784><A
6785NAME="AEN1173"
6786>A.15. llBase64ToString</A
6787></H2
6788><DIV
6789CLASS="funcsynopsis"
6790><P
6791></P
6792><A
6793NAME="AEN1175"
6794></A
6795><P
6796><CODE
6797><CODE
6798CLASS="FUNCDEF"
6799>string llBase64ToString</CODE
6800>(string str);</CODE
6801></P
6802><P
6803></P
6804></DIV
6805><P
6806>Converts a Base 64 string to a conventional string. If the
6807 conversion creates any unprintable characters, they are converted to
6808 spaces.</P
6809></DIV
6810><DIV
6811CLASS="section"
6812><HR><H2
6813CLASS="section"
6814><A
6815NAME="AEN1182"
6816>A.16. llBreakAllLinks</A
6817></H2
6818><DIV
6819CLASS="funcsynopsis"
6820><P
6821></P
6822><A
6823NAME="AEN1184"
6824></A
6825><P
6826><CODE
6827><CODE
6828CLASS="FUNCDEF"
6829>llBreakAllLinks</CODE
6830>(void);</CODE
6831></P
6832><P
6833></P
6834></DIV
6835><P
6836>Delinks all objects in the link set. Requires the permission
6837 <A
6838HREF="#const_permission_change_links"
6839>PERMISSION_CHANGE_LINKS</A
6840>
6841 be set.</P
6842></DIV
6843><DIV
6844CLASS="section"
6845><HR><H2
6846CLASS="section"
6847><A
6848NAME="AEN1191"
6849>A.17. llBreakLink</A
6850></H2
6851><DIV
6852CLASS="funcsynopsis"
6853><P
6854></P
6855><A
6856NAME="AEN1193"
6857></A
6858><P
6859><CODE
6860><CODE
6861CLASS="FUNCDEF"
6862>llBreakLink</CODE
6863>(integer linknum);</CODE
6864></P
6865><P
6866></P
6867></DIV
6868><P
6869>Delinks the object with the given
6870 <CODE
6871CLASS="parameter"
6872>link</CODE
6873> number. Requires permission <A
6874HREF="#const_permission_change_links"
6875>PERMISSION_CHANGE_LINKS</A
6876>
6877 be set.</P
6878></DIV
6879><DIV
6880CLASS="section"
6881><HR><H2
6882CLASS="section"
6883><A
6884NAME="AEN1202"
6885>A.18. llCSV2List</A
6886></H2
6887><DIV
6888CLASS="funcsynopsis"
6889><P
6890></P
6891><A
6892NAME="AEN1204"
6893></A
6894><P
6895><CODE
6896><CODE
6897CLASS="FUNCDEF"
6898>list llCSV2List</CODE
6899>(string src);</CODE
6900></P
6901><P
6902></P
6903></DIV
6904><P
6905>Create a list from a string of comma separated values
6906 specified in <CODE
6907CLASS="parameter"
6908>src</CODE
6909>.</P
6910></DIV
6911><DIV
6912CLASS="section"
6913><HR><H2
6914CLASS="section"
6915><A
6916NAME="AEN1212"
6917>A.19. llCeil</A
6918></H2
6919><DIV
6920CLASS="funcsynopsis"
6921><P
6922></P
6923><A
6924NAME="AEN1214"
6925></A
6926><P
6927><CODE
6928><CODE
6929CLASS="FUNCDEF"
6930>integer llCeil</CODE
6931>(float val);</CODE
6932></P
6933><P
6934></P
6935></DIV
6936><P
6937>Returns largest integer value &#62;=
6938 <CODE
6939CLASS="parameter"
6940>val</CODE
6941>.</P
6942></DIV
6943><DIV
6944CLASS="section"
6945><HR><H2
6946CLASS="section"
6947><A
6948NAME="AEN1222"
6949>A.20. llCloseRemoteDataChannel</A
6950></H2
6951><DIV
6952CLASS="funcsynopsis"
6953><P
6954></P
6955><A
6956NAME="AEN1224"
6957></A
6958><P
6959><CODE
6960><CODE
6961CLASS="FUNCDEF"
6962>llCloseRemoteDataChannel</CODE
6963>(key channel);</CODE
6964></P
6965><P
6966></P
6967></DIV
6968><P
6969>Closes XML-RPC channel.</P
6970></DIV
6971><DIV
6972CLASS="section"
6973><HR><H2
6974CLASS="section"
6975><A
6976NAME="AEN1231"
6977>A.21. llCloud</A
6978></H2
6979><DIV
6980CLASS="funcsynopsis"
6981><P
6982></P
6983><A
6984NAME="AEN1233"
6985></A
6986><P
6987><CODE
6988><CODE
6989CLASS="FUNCDEF"
6990>float llCloud</CODE
6991>(vector offset);</CODE
6992></P
6993><P
6994></P
6995></DIV
6996><P
6997>Returns the cloud density at the object position +
6998 <CODE
6999CLASS="parameter"
7000>offset</CODE
7001>.</P
7002></DIV
7003><DIV
7004CLASS="section"
7005><HR><H2
7006CLASS="section"
7007><A
7008NAME="AEN1241"
7009>A.22. llCollisionFilter</A
7010></H2
7011><DIV
7012CLASS="funcsynopsis"
7013><P
7014></P
7015><A
7016NAME="AEN1243"
7017></A
7018><P
7019><CODE
7020><CODE
7021CLASS="FUNCDEF"
7022>llCollisionFilter</CODE
7023>(string name, key id, integer accept);</CODE
7024></P
7025><P
7026></P
7027></DIV
7028><P
7029>If <CODE
7030CLASS="parameter"
7031>accept</CODE
7032> == TRUE, only accept
7033 collisions with objects <CODE
7034CLASS="parameter"
7035>name</CODE
7036> and
7037 <CODE
7038CLASS="parameter"
7039>id</CODE
7040>, otherwise with objects not
7041 <CODE
7042CLASS="parameter"
7043>name</CODE
7044> or <CODE
7045CLASS="parameter"
7046>id</CODE
7047>. Specify
7048 an empty string or <A
7049HREF="#AEN6070"
7050>NULL_KEY</A
7051> to
7052 not filter on the corresponding parameter.</P
7053></DIV
7054><DIV
7055CLASS="section"
7056><HR><H2
7057CLASS="section"
7058><A
7059NAME="AEN1260"
7060>A.23. llCollisionSound</A
7061></H2
7062><DIV
7063CLASS="funcsynopsis"
7064><P
7065></P
7066><A
7067NAME="AEN1262"
7068></A
7069><P
7070><CODE
7071><CODE
7072CLASS="FUNCDEF"
7073>llCollisionSound</CODE
7074>(string impact_sound, float impact_volume);</CODE
7075></P
7076><P
7077></P
7078></DIV
7079><P
7080>Suppress default collision sounds, replace default impact
7081 sounds with <CODE
7082CLASS="parameter"
7083>impact_sound</CODE
7084> found in the
7085 object inventory. Supply an empty string to suppress collision
7086 sounds.</P
7087></DIV
7088><DIV
7089CLASS="section"
7090><HR><H2
7091CLASS="section"
7092><A
7093NAME="AEN1272"
7094>A.24. llCollisionSprite</A
7095></H2
7096><DIV
7097CLASS="funcsynopsis"
7098><P
7099></P
7100><A
7101NAME="AEN1274"
7102></A
7103><P
7104><CODE
7105><CODE
7106CLASS="FUNCDEF"
7107>llCollisionSprite</CODE
7108>(string impact_sprite);</CODE
7109></P
7110><P
7111></P
7112></DIV
7113><P
7114>Suppress default collision sprites, replace default impact
7115 sprite with <CODE
7116CLASS="parameter"
7117>impact_sprite</CODE
7118> found in the
7119 object inventory. Supply an empty string to just suppress.</P
7120></DIV
7121><DIV
7122CLASS="section"
7123><HR><H2
7124CLASS="section"
7125><A
7126NAME="AEN1282"
7127>A.25. llCos</A
7128></H2
7129><DIV
7130CLASS="funcsynopsis"
7131><P
7132></P
7133><A
7134NAME="AEN1284"
7135></A
7136><P
7137><CODE
7138><CODE
7139CLASS="FUNCDEF"
7140>float llCos</CODE
7141>(float theta);</CODE
7142></P
7143><P
7144></P
7145></DIV
7146><P
7147>Returns the cosine of <CODE
7148CLASS="parameter"
7149>theta</CODE
7150>
7151 radians.</P
7152></DIV
7153><DIV
7154CLASS="section"
7155><HR><H2
7156CLASS="section"
7157><A
7158NAME="AEN1292"
7159>A.26. llCreateLink</A
7160></H2
7161><DIV
7162CLASS="funcsynopsis"
7163><P
7164></P
7165><A
7166NAME="AEN1294"
7167></A
7168><P
7169><CODE
7170><CODE
7171CLASS="FUNCDEF"
7172>llCreateLink</CODE
7173>(key target, integer parent);</CODE
7174></P
7175><P
7176></P
7177></DIV
7178><P
7179>Attempt to link object script is attached to and
7180 <CODE
7181CLASS="parameter"
7182>target</CODE
7183>. Requires permission <A
7184HREF="#const_permission_change_links"
7185>PERMISSION_CHANGE_LINKS</A
7186>
7187 be set. If <CODE
7188CLASS="parameter"
7189>parent</CODE
7190> == TRUE, object script is
7191 attached to is the root.</P
7192></DIV
7193><DIV
7194CLASS="section"
7195><HR><H2
7196CLASS="section"
7197><A
7198NAME="AEN1306"
7199>A.27. llDeleteSubList</A
7200></H2
7201><DIV
7202CLASS="funcsynopsis"
7203><P
7204></P
7205><A
7206NAME="AEN1308"
7207></A
7208><P
7209><CODE
7210><CODE
7211CLASS="FUNCDEF"
7212>list llDeleteSubList</CODE
7213>(list src, integer start, integer end);</CODE
7214></P
7215><P
7216></P
7217></DIV
7218><P
7219>Remove the slice from the list and return the remainder.
7220 The <CODE
7221CLASS="parameter"
7222>start</CODE
7223> and <CODE
7224CLASS="parameter"
7225>end</CODE
7226>
7227 are inclusive, so 0, length - 1 would delete the entire list and
7228 0,0 would delete the first list entry. Using negative numbers for
7229 <CODE
7230CLASS="parameter"
7231>start</CODE
7232> and/or <CODE
7233CLASS="parameter"
7234>end</CODE
7235>
7236 causes the index to count backwards from the length of the list,
7237 so 0,-1 would delete the entire list. If
7238 <CODE
7239CLASS="parameter"
7240>start</CODE
7241> is larger than
7242 <CODE
7243CLASS="parameter"
7244>end</CODE
7245> the list deleted is the exclusion of the
7246 entries, so 6,4 would delete the entire list except for the
7247 5<SUP
7248>th</SUP
7249> list entry.</P
7250></DIV
7251><DIV
7252CLASS="section"
7253><HR><H2
7254CLASS="section"
7255><A
7256NAME="AEN1326"
7257>A.28. llDeleteSubString</A
7258></H2
7259><DIV
7260CLASS="funcsynopsis"
7261><P
7262></P
7263><A
7264NAME="AEN1328"
7265></A
7266><P
7267><CODE
7268><CODE
7269CLASS="FUNCDEF"
7270>string llDeleteSubString</CODE
7271>(string src, integer start, integer end);</CODE
7272></P
7273><P
7274></P
7275></DIV
7276><P
7277>Removes the indicated substring and returns the result. The
7278 <CODE
7279CLASS="parameter"
7280>start</CODE
7281> and <CODE
7282CLASS="parameter"
7283>end</CODE
7284> are
7285 inclusive, so 0,length-1 would delete the entire string and 0,0
7286 would delete the first character. Using negative numbers for
7287 <CODE
7288CLASS="parameter"
7289>start</CODE
7290> and/or <CODE
7291CLASS="parameter"
7292>end</CODE
7293>
7294 causes the index to count backwards from the length of the string,
7295 so 0,-1 would delete the entire string. If
7296 <CODE
7297CLASS="parameter"
7298>start</CODE
7299> is larger than end the sub string is
7300 the exclusion of the entries, so 6,4 would delete the entire
7301 string except for the 5<SUP
7302>th</SUP
7303>
7304 character.</P
7305></DIV
7306><DIV
7307CLASS="section"
7308><HR><H2
7309CLASS="section"
7310><A
7311NAME="AEN1345"
7312>A.29. llDetachFromAvatar</A
7313></H2
7314><DIV
7315CLASS="funcsynopsis"
7316><P
7317></P
7318><A
7319NAME="AEN1347"
7320></A
7321><P
7322><CODE
7323><CODE
7324CLASS="FUNCDEF"
7325>llDetachFromAvatar</CODE
7326>(key avatar);</CODE
7327></P
7328><P
7329></P
7330></DIV
7331><P
7332>Drop off of <CODE
7333CLASS="parameter"
7334>avatar</CODE
7335>.</P
7336></DIV
7337><DIV
7338CLASS="section"
7339><HR><H2
7340CLASS="section"
7341><A
7342NAME="lib_lldetected"
7343>A.30. llDetectedGrab</A
7344></H2
7345><DIV
7346CLASS="funcsynopsis"
7347><P
7348></P
7349><A
7350NAME="AEN1357"
7351></A
7352><P
7353><CODE
7354><CODE
7355CLASS="FUNCDEF"
7356>vector llDetectedGrab</CODE
7357>(integer number);</CODE
7358></P
7359><P
7360></P
7361></DIV
7362><P
7363>Returns the grab offset of detected object
7364 <CODE
7365CLASS="parameter"
7366>number</CODE
7367>. Returns &#60;0,0,0&#62; if number is
7368 not valid sensed object.</P
7369></DIV
7370><DIV
7371CLASS="section"
7372><HR><H2
7373CLASS="section"
7374><A
7375NAME="AEN1365"
7376>A.31. llDetectedGroup</A
7377></H2
7378><DIV
7379CLASS="funcsynopsis"
7380><P
7381></P
7382><A
7383NAME="AEN1367"
7384></A
7385><P
7386><CODE
7387><CODE
7388CLASS="FUNCDEF"
7389>integer llDetectedGroup</CODE
7390>(integer number);</CODE
7391></P
7392><P
7393></P
7394></DIV
7395><P
7396>Returns TRUE if detected object
7397 <CODE
7398CLASS="parameter"
7399>number</CODE
7400> is part of same group as
7401 owner.</P
7402></DIV
7403><DIV
7404CLASS="section"
7405><HR><H2
7406CLASS="section"
7407><A
7408NAME="AEN1375"
7409>A.32. llDetectedKey</A
7410></H2
7411><DIV
7412CLASS="funcsynopsis"
7413><P
7414></P
7415><A
7416NAME="AEN1377"
7417></A
7418><P
7419><CODE
7420><CODE
7421CLASS="FUNCDEF"
7422>key llDetectedKey</CODE
7423>(integer number);</CODE
7424></P
7425><P
7426></P
7427></DIV
7428><P
7429>Returns the key of detected object
7430 <CODE
7431CLASS="parameter"
7432>number</CODE
7433>. Returns <A
7434HREF="#AEN6070"
7435>NULL_KEY</A
7436> if number is not valid sensed
7437 object.</P
7438></DIV
7439><DIV
7440CLASS="section"
7441><HR><H2
7442CLASS="section"
7443><A
7444NAME="AEN1386"
7445>A.33. llDetectedLinkNumber</A
7446></H2
7447><DIV
7448CLASS="funcsynopsis"
7449><P
7450></P
7451><A
7452NAME="AEN1388"
7453></A
7454><P
7455><CODE
7456><CODE
7457CLASS="FUNCDEF"
7458>integer llDetectedLinkNumber</CODE
7459>(integer number);</CODE
7460></P
7461><P
7462></P
7463></DIV
7464><P
7465>Returns the link position of the triggered event for
7466 touches. 0 for a non-linked object, 1 for the root of a linked
7467 object, 2 for the first child, etc.</P
7468></DIV
7469><DIV
7470CLASS="section"
7471><HR><H2
7472CLASS="section"
7473><A
7474NAME="AEN1395"
7475>A.34. llDetectedName</A
7476></H2
7477><DIV
7478CLASS="funcsynopsis"
7479><P
7480></P
7481><A
7482NAME="AEN1397"
7483></A
7484><P
7485><CODE
7486><CODE
7487CLASS="FUNCDEF"
7488>string llDetectedName</CODE
7489>(integer number);</CODE
7490></P
7491><P
7492></P
7493></DIV
7494><P
7495>Returns the name of detected object
7496 <CODE
7497CLASS="parameter"
7498>number</CODE
7499>. Returns empty string if
7500 <CODE
7501CLASS="parameter"
7502>number</CODE
7503> is not valid sensed object.</P
7504></DIV
7505><DIV
7506CLASS="section"
7507><HR><H2
7508CLASS="section"
7509><A
7510NAME="AEN1406"
7511>A.35. llDetectedOwner</A
7512></H2
7513><DIV
7514CLASS="funcsynopsis"
7515><P
7516></P
7517><A
7518NAME="AEN1408"
7519></A
7520><P
7521><CODE
7522><CODE
7523CLASS="FUNCDEF"
7524>key llDetectedOwner</CODE
7525>(integer number);</CODE
7526></P
7527><P
7528></P
7529></DIV
7530><P
7531>Returns the key of detected <CODE
7532CLASS="parameter"
7533>number</CODE
7534>
7535 object's owner. Returns invalid key if
7536 <CODE
7537CLASS="parameter"
7538>number</CODE
7539> is not valid sensed object.</P
7540></DIV
7541><DIV
7542CLASS="section"
7543><HR><H2
7544CLASS="section"
7545><A
7546NAME="AEN1417"
7547>A.36. llDetectedPos</A
7548></H2
7549><DIV
7550CLASS="funcsynopsis"
7551><P
7552></P
7553><A
7554NAME="AEN1419"
7555></A
7556><P
7557><CODE
7558><CODE
7559CLASS="FUNCDEF"
7560>vector llDetectedPos</CODE
7561>(integer number);</CODE
7562></P
7563><P
7564></P
7565></DIV
7566><P
7567>Returns the position of detected object
7568 <CODE
7569CLASS="parameter"
7570>number</CODE
7571>. Returns &#60;0,0,0&#62; if
7572 <CODE
7573CLASS="parameter"
7574>number</CODE
7575> is not valid sensed object.</P
7576></DIV
7577><DIV
7578CLASS="section"
7579><HR><H2
7580CLASS="section"
7581><A
7582NAME="AEN1428"
7583>A.37. llDetectedRot</A
7584></H2
7585><DIV
7586CLASS="funcsynopsis"
7587><P
7588></P
7589><A
7590NAME="AEN1430"
7591></A
7592><P
7593><CODE
7594><CODE
7595CLASS="FUNCDEF"
7596>rotation llDetectedRot</CODE
7597>(integer number);</CODE
7598></P
7599><P
7600></P
7601></DIV
7602><P
7603>Returns the rotation of detected object
7604 <CODE
7605CLASS="parameter"
7606>number</CODE
7607>. Returns &#60;0,0,0,1&#62; if
7608 <CODE
7609CLASS="parameter"
7610>number</CODE
7611> is not valid sensed object).</P
7612></DIV
7613><DIV
7614CLASS="section"
7615><HR><H2
7616CLASS="section"
7617><A
7618NAME="AEN1439"
7619>A.38. llDetectedType</A
7620></H2
7621><DIV
7622CLASS="funcsynopsis"
7623><P
7624></P
7625><A
7626NAME="AEN1441"
7627></A
7628><P
7629><CODE
7630><CODE
7631CLASS="FUNCDEF"
7632>integer llDetectedType</CODE
7633>(integer number);</CODE
7634></P
7635><P
7636></P
7637></DIV
7638><P
7639>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of
7640 detected object <CODE
7641CLASS="parameter"
7642>number</CODE
7643>. Returns 0 if
7644 <CODE
7645CLASS="parameter"
7646>number</CODE
7647> is not valid sensed object. Note
7648 that <CODE
7649CLASS="parameter"
7650>number</CODE
7651> is a bitfield, so comparisons
7652 need to be a bitwise and check. eg:
7653<DIV
7654CLASS="informalexample"
7655><P
7656></P
7657><A
7658NAME="AEN1451"
7659></A
7660><PRE
7661CLASS="programlisting"
7662>&#13;integer type = llDetectedType(0);
7663if (type &#38; AGENT)
7664{
7665 // ...do stuff with the agent
7666}
7667</PRE
7668><P
7669></P
7670></DIV
7671>
7672 </P
7673></DIV
7674><DIV
7675CLASS="section"
7676><HR><H2
7677CLASS="section"
7678><A
7679NAME="AEN1453"
7680>A.39. llDetectedVel</A
7681></H2
7682><DIV
7683CLASS="funcsynopsis"
7684><P
7685></P
7686><A
7687NAME="AEN1455"
7688></A
7689><P
7690><CODE
7691><CODE
7692CLASS="FUNCDEF"
7693>vector llDetectedVel</CODE
7694>(integer number);</CODE
7695></P
7696><P
7697></P
7698></DIV
7699><P
7700>Returns the velocity of detected object
7701 <CODE
7702CLASS="parameter"
7703>number</CODE
7704>. Returns &#60;0,0,0&#62; if
7705 <CODE
7706CLASS="parameter"
7707>number</CODE
7708> is not valid sensed object.</P
7709></DIV
7710><DIV
7711CLASS="section"
7712><HR><H2
7713CLASS="section"
7714><A
7715NAME="AEN1464"
7716>A.40. llDialog</A
7717></H2
7718><DIV
7719CLASS="funcsynopsis"
7720><P
7721></P
7722><A
7723NAME="AEN1466"
7724></A
7725><P
7726><CODE
7727><CODE
7728CLASS="FUNCDEF"
7729>llDialog</CODE
7730>(key avatar, string message, list buttons, integer channel);</CODE
7731></P
7732><P
7733></P
7734></DIV
7735><P
7736>Opens a "notify box" in the top-right corner of the given avatar's screen displaying the message. Up to twelve buttons can be specified in a list of strings. When the player clicks a button, the name of the button is chatted on the specified channel. Channels work just like llSay(), so channel 0 can be heard by everyone. The chat originates at the object's position, not the avatar's position. e.g.
7737<DIV
7738CLASS="informalexample"
7739><P
7740></P
7741><A
7742NAME="AEN1479"
7743></A
7744><PRE
7745CLASS="programlisting"
7746>&#13;LLDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], 4913);
7747LLDialog(who, "This shows only an OK button.", [], 192);
7748llDialog(who, "This chats so you can hear it.", ["Hooray"], 0);
7749</PRE
7750><P
7751></P
7752></DIV
7753>
7754 </P
7755></DIV
7756><DIV
7757CLASS="section"
7758><HR><H2
7759CLASS="section"
7760><A
7761NAME="AEN1481"
7762>A.41. llDie</A
7763></H2
7764><DIV
7765CLASS="funcsynopsis"
7766><P
7767></P
7768><A
7769NAME="AEN1483"
7770></A
7771><P
7772><CODE
7773><CODE
7774CLASS="FUNCDEF"
7775>llDie</CODE
7776>(void);</CODE
7777></P
7778><P
7779></P
7780></DIV
7781><P
7782>Delete the object which holds the script.</P
7783></DIV
7784><DIV
7785CLASS="section"
7786><HR><H2
7787CLASS="section"
7788><A
7789NAME="AEN1489"
7790>A.42. llDumpList2String</A
7791></H2
7792><DIV
7793CLASS="funcsynopsis"
7794><P
7795></P
7796><A
7797NAME="AEN1491"
7798></A
7799><P
7800><CODE
7801><CODE
7802CLASS="FUNCDEF"
7803>string llDumpList2String</CODE
7804>(list src, string separator);</CODE
7805></P
7806><P
7807></P
7808></DIV
7809><P
7810>Write the list out in a single string using separator between values.</P
7811></DIV
7812><DIV
7813CLASS="section"
7814><HR><H2
7815CLASS="section"
7816><A
7817NAME="AEN1500"
7818>A.43. llEscapeURL</A
7819></H2
7820><DIV
7821CLASS="funcsynopsis"
7822><P
7823></P
7824><A
7825NAME="AEN1502"
7826></A
7827><P
7828><CODE
7829><CODE
7830CLASS="FUNCDEF"
7831>string llEscapeURL</CODE
7832>(string url);</CODE
7833></P
7834><P
7835></P
7836></DIV
7837><P
7838>Returns the string that is the URL escaped version of <CODE
7839CLASS="parameter"
7840>url</CODE
7841>,
7842 replacing spaces with %20 etc.</P
7843></DIV
7844><DIV
7845CLASS="section"
7846><HR><H2
7847CLASS="section"
7848><A
7849NAME="AEN1510"
7850>A.44. llEdgeOfWorld</A
7851></H2
7852><DIV
7853CLASS="funcsynopsis"
7854><P
7855></P
7856><A
7857NAME="AEN1512"
7858></A
7859><P
7860><CODE
7861><CODE
7862CLASS="FUNCDEF"
7863>integer llEdgeOfWorld</CODE
7864>(vector pos, vector dir);</CODE
7865></P
7866><P
7867></P
7868></DIV
7869><P
7870>Returns TRUE if the line along <CODE
7871CLASS="parameter"
7872>dir</CODE
7873>
7874 from <CODE
7875CLASS="parameter"
7876>pos</CODE
7877> hits the edge of the world in the
7878 current simulator and returns FALSE if that edge crosses into
7879 another simulator.</P
7880></DIV
7881><DIV
7882CLASS="section"
7883><HR><H2
7884CLASS="section"
7885><A
7886NAME="AEN1523"
7887>A.45. llEjectFromLand</A
7888></H2
7889><DIV
7890CLASS="funcsynopsis"
7891><P
7892></P
7893><A
7894NAME="AEN1525"
7895></A
7896><P
7897><CODE
7898><CODE
7899CLASS="FUNCDEF"
7900>llEjectFromLand</CODE
7901>(key pest);</CODE
7902></P
7903><P
7904></P
7905></DIV
7906><P
7907>Ejects <CODE
7908CLASS="parameter"
7909>pest</CODE
7910> from land that you
7911 own.</P
7912></DIV
7913><DIV
7914CLASS="section"
7915><HR><H2
7916CLASS="section"
7917><A
7918NAME="AEN1533"
7919>A.46. llEmail</A
7920></H2
7921><DIV
7922CLASS="funcsynopsis"
7923><P
7924></P
7925><A
7926NAME="AEN1535"
7927></A
7928><P
7929><CODE
7930><CODE
7931CLASS="FUNCDEF"
7932>llEmail</CODE
7933>(string address, string subject, string message);</CODE
7934></P
7935><P
7936></P
7937></DIV
7938><P
7939>Sends email to <CODE
7940CLASS="parameter"
7941>address</CODE
7942> with
7943 <CODE
7944CLASS="parameter"
7945>subject</CODE
7946> and
7947 <CODE
7948CLASS="parameter"
7949>message</CODE
7950>.</P
7951></DIV
7952><DIV
7953CLASS="section"
7954><HR><H2
7955CLASS="section"
7956><A
7957NAME="AEN1549"
7958>A.47. llEuler2Rot</A
7959></H2
7960><DIV
7961CLASS="funcsynopsis"
7962><P
7963></P
7964><A
7965NAME="AEN1551"
7966></A
7967><P
7968><CODE
7969><CODE
7970CLASS="FUNCDEF"
7971>rotation llEuler2Rot</CODE
7972>(vector vec);</CODE
7973></P
7974><P
7975></P
7976></DIV
7977><P
7978>Returns the rotation represented by Euler Angle
7979 <CODE
7980CLASS="parameter"
7981>vec</CODE
7982>.</P
7983></DIV
7984><DIV
7985CLASS="section"
7986><HR><H2
7987CLASS="section"
7988><A
7989NAME="AEN1559"
7990>A.48. llFabs</A
7991></H2
7992><DIV
7993CLASS="funcsynopsis"
7994><P
7995></P
7996><A
7997NAME="AEN1561"
7998></A
7999><P
8000><CODE
8001><CODE
8002CLASS="FUNCDEF"
8003>float llFabs</CODE
8004>(float val);</CODE
8005></P
8006><P
8007></P
8008></DIV
8009><P
8010>Returns the absolute value of
8011 <CODE
8012CLASS="parameter"
8013>val</CODE
8014>.</P
8015></DIV
8016><DIV
8017CLASS="section"
8018><HR><H2
8019CLASS="section"
8020><A
8021NAME="AEN1569"
8022>A.49. llFloor</A
8023></H2
8024><DIV
8025CLASS="funcsynopsis"
8026><P
8027></P
8028><A
8029NAME="AEN1571"
8030></A
8031><P
8032><CODE
8033><CODE
8034CLASS="FUNCDEF"
8035>integer llFloor</CODE
8036>(float val);</CODE
8037></P
8038><P
8039></P
8040></DIV
8041><P
8042>Returns largest integer value &#60;=
8043 <CODE
8044CLASS="parameter"
8045>val</CODE
8046>.</P
8047></DIV
8048><DIV
8049CLASS="section"
8050><HR><H2
8051CLASS="section"
8052><A
8053NAME="AEN1579"
8054>A.50. llFrand</A
8055></H2
8056><DIV
8057CLASS="funcsynopsis"
8058><P
8059></P
8060><A
8061NAME="AEN1581"
8062></A
8063><P
8064><CODE
8065><CODE
8066CLASS="FUNCDEF"
8067>float llFrand</CODE
8068>(float mag);</CODE
8069></P
8070><P
8071></P
8072></DIV
8073><P
8074>Returns a pseudo-random number between [0,
8075 <CODE
8076CLASS="parameter"
8077>mag</CODE
8078>).</P
8079></DIV
8080><DIV
8081CLASS="section"
8082><HR><H2
8083CLASS="section"
8084><A
8085NAME="AEN1589"
8086>A.51. llGetAccel</A
8087></H2
8088><DIV
8089CLASS="funcsynopsis"
8090><P
8091></P
8092><A
8093NAME="AEN1591"
8094></A
8095><P
8096><CODE
8097><CODE
8098CLASS="FUNCDEF"
8099>vector llGetAccel</CODE
8100>(void);</CODE
8101></P
8102><P
8103></P
8104></DIV
8105><P
8106>Gets the acceleration.</P
8107></DIV
8108><DIV
8109CLASS="section"
8110><HR><H2
8111CLASS="section"
8112><A
8113NAME="AEN1597"
8114>A.52. llGetAttached</A
8115></H2
8116><DIV
8117CLASS="funcsynopsis"
8118><P
8119></P
8120><A
8121NAME="AEN1599"
8122></A
8123><P
8124><CODE
8125><CODE
8126CLASS="FUNCDEF"
8127>integer llGetAttached</CODE
8128>(void);</CODE
8129></P
8130><P
8131></P
8132></DIV
8133><P
8134>Returns the object attachment point or 0 if not attached.</P
8135></DIV
8136><DIV
8137CLASS="section"
8138><HR><H2
8139CLASS="section"
8140><A
8141NAME="AEN1605"
8142>A.53. llGetAgentInfo</A
8143></H2
8144><DIV
8145CLASS="funcsynopsis"
8146><P
8147></P
8148><A
8149NAME="AEN1607"
8150></A
8151><P
8152><CODE
8153><CODE
8154CLASS="FUNCDEF"
8155>integer llGetAgentInfo</CODE
8156>(key id);</CODE
8157></P
8158><P
8159></P
8160></DIV
8161><P
8162>Returns information about the given agent
8163 <CODE
8164CLASS="parameter"
8165>id</CODE
8166>. Returns a bitfield of <A
8167HREF="#AEN5767"
8168>agent info constants</A
8169>.</P
8170></DIV
8171><DIV
8172CLASS="section"
8173><HR><H2
8174CLASS="section"
8175><A
8176NAME="AEN1616"
8177>A.54. llGetAgentSize</A
8178></H2
8179><DIV
8180CLASS="funcsynopsis"
8181><P
8182></P
8183><A
8184NAME="AEN1618"
8185></A
8186><P
8187><CODE
8188><CODE
8189CLASS="FUNCDEF"
8190>vector llGetAgentSize</CODE
8191>(key id);</CODE
8192></P
8193><P
8194></P
8195></DIV
8196><P
8197>If the agent <CODE
8198CLASS="parameter"
8199>id</CODE
8200> is in the same sim as
8201 the object, returns the size of the avatar.</P
8202></DIV
8203><DIV
8204CLASS="section"
8205><HR><H2
8206CLASS="section"
8207><A
8208NAME="AEN1626"
8209>A.55. llGetAlpha</A
8210></H2
8211><DIV
8212CLASS="funcsynopsis"
8213><P
8214></P
8215><A
8216NAME="AEN1628"
8217></A
8218><P
8219><CODE
8220><CODE
8221CLASS="FUNCDEF"
8222>float llGetAlpha</CODE
8223>(integer face);</CODE
8224></P
8225><P
8226></P
8227></DIV
8228><P
8229>Returns the alpha of the given
8230 <CODE
8231CLASS="parameter"
8232>face</CODE
8233>. If <CODE
8234CLASS="parameter"
8235>face</CODE
8236> is
8237 <A
8238HREF="#AEN6073"
8239>ALL_SIDES</A
8240> the value returned is
8241 the mean average of all faces.</P
8242></DIV
8243><DIV
8244CLASS="section"
8245><HR><H2
8246CLASS="section"
8247><A
8248NAME="AEN1638"
8249>A.56. llGetAndResetTime</A
8250></H2
8251><DIV
8252CLASS="funcsynopsis"
8253><P
8254></P
8255><A
8256NAME="AEN1640"
8257></A
8258><P
8259><CODE
8260><CODE
8261CLASS="FUNCDEF"
8262>float llGetAndResetTime</CODE
8263>(void);</CODE
8264></P
8265><P
8266></P
8267></DIV
8268><P
8269>Returns the seconds of elapsed time from an internal timer
8270 associated with the script. The timer is reset to zero during the
8271 call. The timer is also reset on rez, simulator restart, script
8272 reset, and in calls to <A
8273HREF="#AEN3426"
8274>llResetTime</A
8275>. Use <A
8276HREF="#AEN4188"
8277>llSetTimerEvent</A
8278> if you want a
8279 reliable timing mechanism.</P
8280></DIV
8281><DIV
8282CLASS="section"
8283><HR><H2
8284CLASS="section"
8285><A
8286NAME="AEN1648"
8287>A.57. llGetAnimation</A
8288></H2
8289><DIV
8290CLASS="funcsynopsis"
8291><P
8292></P
8293><A
8294NAME="AEN1650"
8295></A
8296><P
8297><CODE
8298><CODE
8299CLASS="FUNCDEF"
8300>string llGetAnimation</CODE
8301>(key id);</CODE
8302></P
8303><P
8304></P
8305></DIV
8306><P
8307>Returns the currently playing animation for avatar
8308 <CODE
8309CLASS="parameter"
8310>id</CODE
8311>.</P
8312></DIV
8313><DIV
8314CLASS="section"
8315><HR><H2
8316CLASS="section"
8317><A
8318NAME="AEN1658"
8319>A.58. llGetAnimationList</A
8320></H2
8321><DIV
8322CLASS="funcsynopsis"
8323><P
8324></P
8325><A
8326NAME="AEN1660"
8327></A
8328><P
8329><CODE
8330><CODE
8331CLASS="FUNCDEF"
8332>list llGetAnimationList</CODE
8333>(key id);</CODE
8334></P
8335><P
8336></P
8337></DIV
8338><P
8339>Returns a list of currently playing animations for avatar
8340 <CODE
8341CLASS="parameter"
8342>id</CODE
8343>.</P
8344></DIV
8345><DIV
8346CLASS="section"
8347><HR><H2
8348CLASS="section"
8349><A
8350NAME="AEN1668"
8351>A.59. llGetBoundingBox</A
8352></H2
8353><DIV
8354CLASS="funcsynopsis"
8355><P
8356></P
8357><A
8358NAME="AEN1670"
8359></A
8360><P
8361><CODE
8362><CODE
8363CLASS="FUNCDEF"
8364>list llGetBoundingBox</CODE
8365>(key object);</CODE
8366></P
8367><P
8368></P
8369></DIV
8370><P
8371>Returns the bounding box around <CODE
8372CLASS="parameter"
8373>object</CODE
8374> (including any linked prims)
8375 relative to the root prim. Returned value is a list of the form:
8376 [ (vector) min_corner, (vector) max_corner ]</P
8377></DIV
8378><DIV
8379CLASS="section"
8380><HR><H2
8381CLASS="section"
8382><A
8383NAME="AEN1678"
8384>A.60. llGetCenterOfMass</A
8385></H2
8386><DIV
8387CLASS="funcsynopsis"
8388><P
8389></P
8390><A
8391NAME="AEN1680"
8392></A
8393><P
8394><CODE
8395><CODE
8396CLASS="FUNCDEF"
8397>vector llGetCenterOfMass</CODE
8398>(void);</CODE
8399></P
8400><P
8401></P
8402></DIV
8403><P
8404>Returns the center of mass of the root object.</P
8405></DIV
8406><DIV
8407CLASS="section"
8408><HR><H2
8409CLASS="section"
8410><A
8411NAME="AEN1686"
8412>A.61. llGetColor</A
8413></H2
8414><DIV
8415CLASS="funcsynopsis"
8416><P
8417></P
8418><A
8419NAME="AEN1688"
8420></A
8421><P
8422><CODE
8423><CODE
8424CLASS="FUNCDEF"
8425>vector llGetColor</CODE
8426>(integer face);</CODE
8427></P
8428><P
8429></P
8430></DIV
8431><P
8432>Returns the color of <CODE
8433CLASS="parameter"
8434>face</CODE
8435> as a vector
8436 of red, green, and blue values between 0 and 1. If
8437 <CODE
8438CLASS="parameter"
8439>face</CODE
8440> is <A
8441HREF="#AEN6073"
8442>ALL_SIDES</A
8443> the color returned is the
8444 mean average of each channel.</P
8445></DIV
8446><DIV
8447CLASS="section"
8448><HR><H2
8449CLASS="section"
8450><A
8451NAME="AEN1698"
8452>A.62. llGetCreator</A
8453></H2
8454><DIV
8455CLASS="funcsynopsis"
8456><P
8457></P
8458><A
8459NAME="AEN1700"
8460></A
8461><P
8462><CODE
8463><CODE
8464CLASS="FUNCDEF"
8465>key llGetCreator</CODE
8466>(void);</CODE
8467></P
8468><P
8469></P
8470></DIV
8471><P
8472>Returns the creator of the object which has the script.</P
8473></DIV
8474><DIV
8475CLASS="section"
8476><HR><H2
8477CLASS="section"
8478><A
8479NAME="AEN1706"
8480>A.63. llGetDate</A
8481></H2
8482><DIV
8483CLASS="funcsynopsis"
8484><P
8485></P
8486><A
8487NAME="AEN1708"
8488></A
8489><P
8490><CODE
8491><CODE
8492CLASS="FUNCDEF"
8493>string llGetDate</CODE
8494>(void);</CODE
8495></P
8496><P
8497></P
8498></DIV
8499><P
8500>Returns the current UTC date as YYYY-MM-DD.</P
8501></DIV
8502><DIV
8503CLASS="section"
8504><HR><H2
8505CLASS="section"
8506><A
8507NAME="AEN1714"
8508>A.64. llGetEnergy</A
8509></H2
8510><DIV
8511CLASS="funcsynopsis"
8512><P
8513></P
8514><A
8515NAME="AEN1716"
8516></A
8517><P
8518><CODE
8519><CODE
8520CLASS="FUNCDEF"
8521>float llGetEnergy</CODE
8522>(void);</CODE
8523></P
8524><P
8525></P
8526></DIV
8527><P
8528>Returns how much energy is in the object as a percentage of
8529 maximum.</P
8530></DIV
8531><DIV
8532CLASS="section"
8533><HR><H2
8534CLASS="section"
8535><A
8536NAME="AEN1722"
8537>A.65. llGetForce</A
8538></H2
8539><DIV
8540CLASS="funcsynopsis"
8541><P
8542></P
8543><A
8544NAME="AEN1724"
8545></A
8546><P
8547><CODE
8548><CODE
8549CLASS="FUNCDEF"
8550>vector llGetForce</CODE
8551>(void);</CODE
8552></P
8553><P
8554></P
8555></DIV
8556><P
8557>Returns the current force if the script is physical.</P
8558></DIV
8559><DIV
8560CLASS="section"
8561><HR><H2
8562CLASS="section"
8563><A
8564NAME="AEN1730"
8565>A.66. llGetFreeMemory</A
8566></H2
8567><DIV
8568CLASS="funcsynopsis"
8569><P
8570></P
8571><A
8572NAME="AEN1732"
8573></A
8574><P
8575><CODE
8576><CODE
8577CLASS="FUNCDEF"
8578>integer llGetFreeMemory</CODE
8579>(void);</CODE
8580></P
8581><P
8582></P
8583></DIV
8584><P
8585>Returns the available heap space for the current script.</P
8586></DIV
8587><DIV
8588CLASS="section"
8589><HR><H2
8590CLASS="section"
8591><A
8592NAME="AEN1738"
8593>A.67. llGetGeometricCenter</A
8594></H2
8595><DIV
8596CLASS="funcsynopsis"
8597><P
8598></P
8599><A
8600NAME="AEN1740"
8601></A
8602><P
8603><CODE
8604><CODE
8605CLASS="FUNCDEF"
8606>vector llGetGeometricCenter</CODE
8607>(void);</CODE
8608></P
8609><P
8610></P
8611></DIV
8612><P
8613>Returns the geometric center of the linked set the script is attached to.</P
8614></DIV
8615><DIV
8616CLASS="section"
8617><HR><H2
8618CLASS="section"
8619><A
8620NAME="AEN1746"
8621>A.68. llGetGMTclock</A
8622></H2
8623><DIV
8624CLASS="funcsynopsis"
8625><P
8626></P
8627><A
8628NAME="AEN1748"
8629></A
8630><P
8631><CODE
8632><CODE
8633CLASS="FUNCDEF"
8634>float llGetGMTclock</CODE
8635>(void);</CODE
8636></P
8637><P
8638></P
8639></DIV
8640><P
8641>Returns the time in seconds since GMT midnight.</P
8642></DIV
8643><DIV
8644CLASS="section"
8645><HR><H2
8646CLASS="section"
8647><A
8648NAME="AEN1754"
8649>A.69. llGetInventoryCreator</A
8650></H2
8651><DIV
8652CLASS="funcsynopsis"
8653><P
8654></P
8655><A
8656NAME="AEN1756"
8657></A
8658><P
8659><CODE
8660><CODE
8661CLASS="FUNCDEF"
8662>key llGetInventoryCreator</CODE
8663>(string name);</CODE
8664></P
8665><P
8666></P
8667></DIV
8668><P
8669>Returns the key for the creator of the inventory
8670 <CODE
8671CLASS="parameter"
8672>name</CODE
8673>.</P
8674></DIV
8675><DIV
8676CLASS="section"
8677><HR><H2
8678CLASS="section"
8679><A
8680NAME="AEN1764"
8681>A.70. llGetInventoryKey</A
8682></H2
8683><DIV
8684CLASS="funcsynopsis"
8685><P
8686></P
8687><A
8688NAME="AEN1766"
8689></A
8690><P
8691><CODE
8692><CODE
8693CLASS="FUNCDEF"
8694>key llGetInventoryKey</CODE
8695>(string name);</CODE
8696></P
8697><P
8698></P
8699></DIV
8700><P
8701>Returns the key of the inventory
8702 <CODE
8703CLASS="parameter"
8704>name</CODE
8705>.</P
8706></DIV
8707><DIV
8708CLASS="section"
8709><HR><H2
8710CLASS="section"
8711><A
8712NAME="AEN1774"
8713>A.71. llGetInventoryName</A
8714></H2
8715><DIV
8716CLASS="funcsynopsis"
8717><P
8718></P
8719><A
8720NAME="AEN1776"
8721></A
8722><P
8723><CODE
8724><CODE
8725CLASS="FUNCDEF"
8726>string llGetInventoryName</CODE
8727>(integer type, integer number);</CODE
8728></P
8729><P
8730></P
8731></DIV
8732><P
8733>Get the name of the inventory item
8734 <CODE
8735CLASS="parameter"
8736>number</CODE
8737> of <CODE
8738CLASS="parameter"
8739>type</CODE
8740>. Use
8741 the <A
8742HREF="#AEN5411"
8743>inventory constants</A
8744> to
8745 specify the <CODE
8746CLASS="parameter"
8747>type</CODE
8748>.</P
8749></DIV
8750><DIV
8751CLASS="section"
8752><HR><H2
8753CLASS="section"
8754><A
8755NAME="AEN1789"
8756>A.72. llGetInventoryNumber</A
8757></H2
8758><DIV
8759CLASS="funcsynopsis"
8760><P
8761></P
8762><A
8763NAME="AEN1791"
8764></A
8765><P
8766><CODE
8767><CODE
8768CLASS="FUNCDEF"
8769>integer llGetInventoryNumber</CODE
8770>(integer type);</CODE
8771></P
8772><P
8773></P
8774></DIV
8775><P
8776>Get the number of items of <CODE
8777CLASS="parameter"
8778>type</CODE
8779> in
8780 the object inventory. Use the <A
8781HREF="#AEN5411"
8782>inventory constants</A
8783> to specify
8784 the <CODE
8785CLASS="parameter"
8786>type</CODE
8787>.</P
8788></DIV
8789><DIV
8790CLASS="section"
8791><HR><H2
8792CLASS="section"
8793><A
8794NAME="AEN1801"
8795>A.73. llGetInventoryPermMask</A
8796></H2
8797><DIV
8798CLASS="funcsynopsis"
8799><P
8800></P
8801><A
8802NAME="AEN1803"
8803></A
8804><P
8805><CODE
8806><CODE
8807CLASS="FUNCDEF"
8808>integer llGetInventoryPermMask</CODE
8809>(string item, integer mask);</CODE
8810></P
8811><P
8812></P
8813></DIV
8814><P
8815>Returns the requested permission <CODE
8816CLASS="parameter"
8817>mask</CODE
8818> for the
8819 specified inventory item. See <A
8820HREF="#AEN6412"
8821>Permission Mask Constants</A
8822>
8823 for more information. Example usage:
8824<DIV
8825CLASS="informalexample"
8826><P
8827></P
8828><A
8829NAME="AEN1814"
8830></A
8831><PRE
8832CLASS="programlisting"
8833>&#13;integer JeansPerms = llGetInventoryPermMask("Black Jeans", MASK_NEXT);
8834if (JeansPerms &#38; PERM_COPY)
8835{
8836 llSay(0, "The next owner may copy the 'Black Jeans'");
8837}
8838</PRE
8839><P
8840></P
8841></DIV
8842></P
8843></DIV
8844><DIV
8845CLASS="section"
8846><HR><H2
8847CLASS="section"
8848><A
8849NAME="AEN1816"
8850>A.74. llGetInventoryType</A
8851></H2
8852><DIV
8853CLASS="funcsynopsis"
8854><P
8855></P
8856><A
8857NAME="AEN1818"
8858></A
8859><P
8860><CODE
8861><CODE
8862CLASS="FUNCDEF"
8863>integer llGetInventoryType</CODE
8864>(string name);</CODE
8865></P
8866><P
8867></P
8868></DIV
8869><P
8870>Returns the type of the inventory
8871 <CODE
8872CLASS="parameter"
8873>name</CODE
8874>. INVENTORY_NONE is returned if no
8875 inventory matching <CODE
8876CLASS="parameter"
8877>name</CODE
8878> is found. Use the <A
8879HREF="#AEN5411"
8880>inventory constants</A
8881> to compare
8882 against the return value.</P
8883></DIV
8884><DIV
8885CLASS="section"
8886><HR><H2
8887CLASS="section"
8888><A
8889NAME="AEN1828"
8890>A.75. llGetKey</A
8891></H2
8892><DIV
8893CLASS="funcsynopsis"
8894><P
8895></P
8896><A
8897NAME="AEN1830"
8898></A
8899><P
8900><CODE
8901><CODE
8902CLASS="FUNCDEF"
8903>key llGetKey</CODE
8904>(void);</CODE
8905></P
8906><P
8907></P
8908></DIV
8909><P
8910>Get the key for the object which has this script.</P
8911></DIV
8912><DIV
8913CLASS="section"
8914><HR><H2
8915CLASS="section"
8916><A
8917NAME="AEN1836"
8918>A.76. llGetLandOwnerAt</A
8919></H2
8920><DIV
8921CLASS="funcsynopsis"
8922><P
8923></P
8924><A
8925NAME="AEN1838"
8926></A
8927><P
8928><CODE
8929><CODE
8930CLASS="FUNCDEF"
8931>key llGetLandOwnerAt</CODE
8932>(vector pos);</CODE
8933></P
8934><P
8935></P
8936></DIV
8937><P
8938>Returns the key of the land owner at
8939 <CODE
8940CLASS="parameter"
8941>pos</CODE
8942> or <A
8943HREF="#AEN6070"
8944>NULL_KEY</A
8945> if public.</P
8946></DIV
8947><DIV
8948CLASS="section"
8949><HR><H2
8950CLASS="section"
8951><A
8952NAME="AEN1847"
8953>A.77. llGetLinkKey</A
8954></H2
8955><DIV
8956CLASS="funcsynopsis"
8957><P
8958></P
8959><A
8960NAME="AEN1849"
8961></A
8962><P
8963><CODE
8964><CODE
8965CLASS="FUNCDEF"
8966>key llGetLinkKey</CODE
8967>(integer linknum);</CODE
8968></P
8969><P
8970></P
8971></DIV
8972><P
8973>Returns the key of <CODE
8974CLASS="parameter"
8975>linknum</CODE
8976> in the link
8977 set.</P
8978></DIV
8979><DIV
8980CLASS="section"
8981><HR><H2
8982CLASS="section"
8983><A
8984NAME="AEN1857"
8985>A.78. llGetLinkName</A
8986></H2
8987><DIV
8988CLASS="funcsynopsis"
8989><P
8990></P
8991><A
8992NAME="AEN1859"
8993></A
8994><P
8995><CODE
8996><CODE
8997CLASS="FUNCDEF"
8998>string llGetLinkName</CODE
8999>(integer linknum);</CODE
9000></P
9001><P
9002></P
9003></DIV
9004><P
9005>Returns the name of <CODE
9006CLASS="parameter"
9007>linknum</CODE
9008> in the
9009 link set.</P
9010></DIV
9011><DIV
9012CLASS="section"
9013><HR><H2
9014CLASS="section"
9015><A
9016NAME="AEN1867"
9017>A.79. llGetLinkNumber</A
9018></H2
9019><DIV
9020CLASS="funcsynopsis"
9021><P
9022></P
9023><A
9024NAME="AEN1869"
9025></A
9026><P
9027><CODE
9028><CODE
9029CLASS="FUNCDEF"
9030>integer llGetLinkNumber</CODE
9031>(void);</CODE
9032></P
9033><P
9034></P
9035></DIV
9036><P
9037>Returns what link number in a link set the for the object
9038 which has this script. 0 means no link, 1 the root, 2 for first
9039 child, etc.</P
9040></DIV
9041><DIV
9042CLASS="section"
9043><HR><H2
9044CLASS="section"
9045><A
9046NAME="AEN1875"
9047>A.80. llGetListEntryType</A
9048></H2
9049><DIV
9050CLASS="funcsynopsis"
9051><P
9052></P
9053><A
9054NAME="AEN1877"
9055></A
9056><P
9057><CODE
9058><CODE
9059CLASS="FUNCDEF"
9060>integer llGetListEntryType</CODE
9061>(list src, integer index);</CODE
9062></P
9063><P
9064></P
9065></DIV
9066><P
9067>Returns the <A
9068HREF="#AEN5733"
9069>type</A
9070> of the
9071 variable at <CODE
9072CLASS="parameter"
9073>index</CODE
9074> in
9075 <CODE
9076CLASS="parameter"
9077>src</CODE
9078>.</P
9079></DIV
9080><DIV
9081CLASS="section"
9082><HR><H2
9083CLASS="section"
9084><A
9085NAME="AEN1889"
9086>A.81. llGetListLength</A
9087></H2
9088><DIV
9089CLASS="funcsynopsis"
9090><P
9091></P
9092><A
9093NAME="AEN1891"
9094></A
9095><P
9096><CODE
9097><CODE
9098CLASS="FUNCDEF"
9099>integer llGetListLength</CODE
9100>(list src);</CODE
9101></P
9102><P
9103></P
9104></DIV
9105><P
9106>Returns the number of elements in
9107 <CODE
9108CLASS="parameter"
9109>src</CODE
9110>.</P
9111></DIV
9112><DIV
9113CLASS="section"
9114><HR><H2
9115CLASS="section"
9116><A
9117NAME="AEN1899"
9118>A.82. llGetLocalPos</A
9119></H2
9120><DIV
9121CLASS="funcsynopsis"
9122><P
9123></P
9124><A
9125NAME="AEN1901"
9126></A
9127><P
9128><CODE
9129><CODE
9130CLASS="FUNCDEF"
9131>vector llGetLocalPos</CODE
9132>(void);</CODE
9133></P
9134><P
9135></P
9136></DIV
9137><P
9138>Returns the local position of a child object relative to the
9139 root.</P
9140></DIV
9141><DIV
9142CLASS="section"
9143><HR><H2
9144CLASS="section"
9145><A
9146NAME="AEN1907"
9147>A.83. llGetLocalRot</A
9148></H2
9149><DIV
9150CLASS="funcsynopsis"
9151><P
9152></P
9153><A
9154NAME="AEN1909"
9155></A
9156><P
9157><CODE
9158><CODE
9159CLASS="FUNCDEF"
9160>rotation llGetLocalRot</CODE
9161>(void);</CODE
9162></P
9163><P
9164></P
9165></DIV
9166><P
9167>Returns the local rotation of a child object relative to the
9168 root.</P
9169></DIV
9170><DIV
9171CLASS="section"
9172><HR><H2
9173CLASS="section"
9174><A
9175NAME="AEN1915"
9176>A.84. llGetMass</A
9177></H2
9178><DIV
9179CLASS="funcsynopsis"
9180><P
9181></P
9182><A
9183NAME="AEN1917"
9184></A
9185><P
9186><CODE
9187><CODE
9188CLASS="FUNCDEF"
9189>float llGetMass</CODE
9190>(void);</CODE
9191></P
9192><P
9193></P
9194></DIV
9195><P
9196>Returns the mass of the object in Kilograms. Most materials
9197 in Second Life are less dense than their first life counterparts,
9198 so the returned mass may be less than you might expect.</P
9199></DIV
9200><DIV
9201CLASS="section"
9202><HR><H2
9203CLASS="section"
9204><A
9205NAME="AEN1923"
9206>A.85. llGetObjectMass</A
9207></H2
9208><DIV
9209CLASS="funcsynopsis"
9210><P
9211></P
9212><A
9213NAME="AEN1925"
9214></A
9215><P
9216><CODE
9217><CODE
9218CLASS="FUNCDEF"
9219>float llGetObjectMass</CODE
9220>(key id);</CODE
9221></P
9222><P
9223></P
9224></DIV
9225><P
9226>Returns the mass of the object specified by <CODE
9227CLASS="parameter"
9228>id</CODE
9229> in Kilograms. Most materials
9230 in Second Life are less dense than their first life counterparts,
9231 so the returned mass may be less than you might expect.</P
9232></DIV
9233><DIV
9234CLASS="section"
9235><HR><H2
9236CLASS="section"
9237><A
9238NAME="AEN1933"
9239>A.86. llGetNextEmail</A
9240></H2
9241><DIV
9242CLASS="funcsynopsis"
9243><P
9244></P
9245><A
9246NAME="AEN1935"
9247></A
9248><P
9249><CODE
9250><CODE
9251CLASS="FUNCDEF"
9252>llGetNextEmail</CODE
9253>(string address, string subject);</CODE
9254></P
9255><P
9256></P
9257></DIV
9258><P
9259>Get the next waiting email with appropriate
9260 <CODE
9261CLASS="parameter"
9262>address</CODE
9263> and/or
9264 <CODE
9265CLASS="parameter"
9266>subject</CODE
9267>. If the parameters are blank, they
9268 are not used for filtering.</P
9269></DIV
9270><DIV
9271CLASS="section"
9272><HR><H2
9273CLASS="section"
9274><A
9275NAME="AEN1946"
9276>A.87. llGetNotecardLine</A
9277></H2
9278><DIV
9279CLASS="funcsynopsis"
9280><P
9281></P
9282><A
9283NAME="AEN1948"
9284></A
9285><P
9286><CODE
9287><CODE
9288CLASS="FUNCDEF"
9289>key llGetNotecardLine</CODE
9290>(string name, integer line);</CODE
9291></P
9292><P
9293></P
9294></DIV
9295><P
9296>This function fetches line number
9297 <CODE
9298CLASS="parameter"
9299>line</CODE
9300> of notecard
9301 <CODE
9302CLASS="parameter"
9303>name</CODE
9304> and returns the data through the <A
9305HREF="#AEN4997"
9306>dataserver</A
9307> event. The line count
9308 starts at zero. If the requested line is past the end of the
9309 notecard the <A
9310HREF="#AEN4997"
9311>dataserver</A
9312>
9313 event will return the constant <A
9314HREF="#AEN6076"
9315>EOF</A
9316> string. The key returned by
9317 this function is a unique identifier which will be supplied to the
9318 <A
9319HREF="#AEN4997"
9320>dataserver</A
9321> event in the
9322 <CODE
9323CLASS="parameter"
9324>requested</CODE
9325> parameter.</P
9326></DIV
9327><DIV
9328CLASS="section"
9329><HR><H2
9330CLASS="section"
9331><A
9332NAME="AEN1964"
9333>A.88. llGetNumberOfNotecardLines</A
9334></H2
9335><DIV
9336CLASS="funcsynopsis"
9337><P
9338></P
9339><A
9340NAME="AEN1966"
9341></A
9342><P
9343><CODE
9344><CODE
9345CLASS="FUNCDEF"
9346>key llGetNumberOfNotecardLines</CODE
9347>(string name);</CODE
9348></P
9349><P
9350></P
9351></DIV
9352><P
9353>This function reads the number of lines in notecard <CODE
9354CLASS="parameter"
9355>name</CODE
9356>
9357 and returns this information through the <A
9358HREF="#AEN4997"
9359>dataserver</A
9360> event.
9361 The key returned by this function is a unique identifier which will be supplied to the
9362 <A
9363HREF="#AEN4997"
9364>dataserver</A
9365> event in the <CODE
9366CLASS="parameter"
9367>requested</CODE
9368>
9369 parameter. You will need to cast the returned string to an integer.</P
9370></DIV
9371><DIV
9372CLASS="section"
9373><HR><H2
9374CLASS="section"
9375><A
9376NAME="AEN1977"
9377>A.89. llGetNumberOfPrims</A
9378></H2
9379><DIV
9380CLASS="funcsynopsis"
9381><P
9382></P
9383><A
9384NAME="AEN1979"
9385></A
9386><P
9387><CODE
9388><CODE
9389CLASS="FUNCDEF"
9390>integer llGetNumberOfPrims</CODE
9391>(void);</CODE
9392></P
9393><P
9394></P
9395></DIV
9396><P
9397>Returns the number of prims in the linked set the script is attached to.</P
9398></DIV
9399><DIV
9400CLASS="section"
9401><HR><H2
9402CLASS="section"
9403><A
9404NAME="AEN1985"
9405>A.90. llGetNumberOfSides</A
9406></H2
9407><DIV
9408CLASS="funcsynopsis"
9409><P
9410></P
9411><A
9412NAME="AEN1987"
9413></A
9414><P
9415><CODE
9416><CODE
9417CLASS="FUNCDEF"
9418>key llGetNumberOfSides</CODE
9419>(void);</CODE
9420></P
9421><P
9422></P
9423></DIV
9424><P
9425>Returns the number of sides of the current which has the
9426 script.</P
9427></DIV
9428><DIV
9429CLASS="section"
9430><HR><H2
9431CLASS="section"
9432><A
9433NAME="AEN1993"
9434>A.91. llGetObjectDesc</A
9435></H2
9436><DIV
9437CLASS="funcsynopsis"
9438><P
9439></P
9440><A
9441NAME="AEN1995"
9442></A
9443><P
9444><CODE
9445><CODE
9446CLASS="FUNCDEF"
9447>string llGetObjectDesc</CODE
9448>(void);</CODE
9449></P
9450><P
9451></P
9452></DIV
9453><P
9454>Returns the description of the object which has the script.</P
9455></DIV
9456><DIV
9457CLASS="section"
9458><HR><H2
9459CLASS="section"
9460><A
9461NAME="AEN2001"
9462>A.92. llGetObjectName</A
9463></H2
9464><DIV
9465CLASS="funcsynopsis"
9466><P
9467></P
9468><A
9469NAME="AEN2003"
9470></A
9471><P
9472><CODE
9473><CODE
9474CLASS="FUNCDEF"
9475>string llGetObjectName</CODE
9476>(void);</CODE
9477></P
9478><P
9479></P
9480></DIV
9481><P
9482>Returns the name of the object which has the script.</P
9483></DIV
9484><DIV
9485CLASS="section"
9486><HR><H2
9487CLASS="section"
9488><A
9489NAME="AEN2009"
9490>A.93. llGetObjectPermMask</A
9491></H2
9492><DIV
9493CLASS="funcsynopsis"
9494><P
9495></P
9496><A
9497NAME="AEN2011"
9498></A
9499><P
9500><CODE
9501><CODE
9502CLASS="FUNCDEF"
9503>integer llGetObjectPermMask</CODE
9504>(integer mask);</CODE
9505></P
9506><P
9507></P
9508></DIV
9509><P
9510>Returns the requested permission <CODE
9511CLASS="parameter"
9512>mask</CODE
9513> for the root object the
9514 task is attached to. See <A
9515HREF="#AEN6412"
9516>Permission Mask Constants</A
9517>
9518 for more information. Example usage:
9519<DIV
9520CLASS="informalexample"
9521><P
9522></P
9523><A
9524NAME="AEN2020"
9525></A
9526><PRE
9527CLASS="programlisting"
9528>&#13;integer ObjectPerms = llGetObjectPermMask(MASK_NEXT);
9529if (ObjectPerms &#38; PERM_COPY)
9530{
9531 llSay(0, "The next owner may copy this item");
9532}
9533</PRE
9534><P
9535></P
9536></DIV
9537></P
9538></DIV
9539><DIV
9540CLASS="section"
9541><HR><H2
9542CLASS="section"
9543><A
9544NAME="AEN2022"
9545>A.94. llGetOmega</A
9546></H2
9547><DIV
9548CLASS="funcsynopsis"
9549><P
9550></P
9551><A
9552NAME="AEN2024"
9553></A
9554><P
9555><CODE
9556><CODE
9557CLASS="FUNCDEF"
9558>vector llGetOmega</CODE
9559>(void);</CODE
9560></P
9561><P
9562></P
9563></DIV
9564><P
9565>Returns the omega.</P
9566></DIV
9567><DIV
9568CLASS="section"
9569><HR><H2
9570CLASS="section"
9571><A
9572NAME="AEN2030"
9573>A.95. llGetOwner</A
9574></H2
9575><DIV
9576CLASS="funcsynopsis"
9577><P
9578></P
9579><A
9580NAME="AEN2032"
9581></A
9582><P
9583><CODE
9584><CODE
9585CLASS="FUNCDEF"
9586>key llGetOwner</CODE
9587>(void);</CODE
9588></P
9589><P
9590></P
9591></DIV
9592><P
9593>Returns the owner of the object.</P
9594></DIV
9595><DIV
9596CLASS="section"
9597><HR><H2
9598CLASS="section"
9599><A
9600NAME="AEN2038"
9601>A.96. llGetOwnerKey</A
9602></H2
9603><DIV
9604CLASS="funcsynopsis"
9605><P
9606></P
9607><A
9608NAME="AEN2040"
9609></A
9610><P
9611><CODE
9612><CODE
9613CLASS="FUNCDEF"
9614>key llGetOwnerKey</CODE
9615>(key id);</CODE
9616></P
9617><P
9618></P
9619></DIV
9620><P
9621>Returns the owner of object
9622 <CODE
9623CLASS="parameter"
9624>id</CODE
9625>.</P
9626></DIV
9627><DIV
9628CLASS="section"
9629><HR><H2
9630CLASS="section"
9631><A
9632NAME="AEN2048"
9633>A.97. llGetPermissions</A
9634></H2
9635><DIV
9636CLASS="funcsynopsis"
9637><P
9638></P
9639><A
9640NAME="AEN2050"
9641></A
9642><P
9643><CODE
9644><CODE
9645CLASS="FUNCDEF"
9646>integer llGetPermissions</CODE
9647>(void);</CODE
9648></P
9649><P
9650></P
9651></DIV
9652><P
9653>Returns what permissions have been enabled. eg:
9654<DIV
9655CLASS="informalexample"
9656><P
9657></P
9658><A
9659NAME="AEN2056"
9660></A
9661><PRE
9662CLASS="programlisting"
9663>&#13;integer perm = llGetPermissions();
9664if((perm &#38; PERMISSION_DEBIT) == PERMISSION_DEBIT)
9665{
9666 // code goes here
9667}
9668</PRE
9669><P
9670></P
9671></DIV
9672></P
9673></DIV
9674><DIV
9675CLASS="section"
9676><HR><H2
9677CLASS="section"
9678><A
9679NAME="AEN2058"
9680>A.98. llGetPermissionsKey</A
9681></H2
9682><DIV
9683CLASS="funcsynopsis"
9684><P
9685></P
9686><A
9687NAME="AEN2060"
9688></A
9689><P
9690><CODE
9691><CODE
9692CLASS="FUNCDEF"
9693>key llGetPermissionsKey</CODE
9694>(void);</CODE
9695></P
9696><P
9697></P
9698></DIV
9699><P
9700>Returns avatar that has enabled permissions. Returns <A
9701HREF="#AEN6070"
9702>NULL_KEY</A
9703> if not enabled.</P
9704></DIV
9705><DIV
9706CLASS="section"
9707><HR><H2
9708CLASS="section"
9709><A
9710NAME="AEN2067"
9711>A.99. llGetPos</A
9712></H2
9713><DIV
9714CLASS="funcsynopsis"
9715><P
9716></P
9717><A
9718NAME="AEN2069"
9719></A
9720><P
9721><CODE
9722><CODE
9723CLASS="FUNCDEF"
9724>vector llGetPos</CODE
9725>(void);</CODE
9726></P
9727><P
9728></P
9729></DIV
9730><P
9731>Returns the position.</P
9732></DIV
9733><DIV
9734CLASS="section"
9735><HR><H2
9736CLASS="section"
9737><A
9738NAME="AEN2075"
9739>A.100. llGetPrimitiveParams</A
9740></H2
9741><DIV
9742CLASS="funcsynopsis"
9743><P
9744></P
9745><A
9746NAME="AEN2077"
9747></A
9748><P
9749><CODE
9750><CODE
9751CLASS="FUNCDEF"
9752>list llGetPrimitiveParams</CODE
9753>(list parameters);</CODE
9754></P
9755><P
9756></P
9757></DIV
9758><P
9759>Get primitive parameters specified in <CODE
9760CLASS="parameter"
9761>parameters</CODE
9762>. The
9763 <CODE
9764CLASS="parameter"
9765>parameters</CODE
9766> are identical to the rules of <A
9767HREF="#AEN4020"
9768>llSetPrimitiveParams</A
9769>, and the returned list is ordered as such. Most requested parameters do not require a value to be associated, except for texture-related requests (PRIM_TEXTURE, PRIM_COLOR, and PRIM_BUMP_SHINY) which require a side number to be specified as well.
9770
9771 Valid parameters can be found in the <A
9772HREF="#AEN6323"
9773>Primitive Constants</A
9774>.
9775 Here is a simple example:
9776<DIV
9777CLASS="informalexample"
9778><P
9779></P
9780><A
9781NAME="AEN2088"
9782></A
9783><PRE
9784CLASS="programlisting"
9785>&#13;llGetPrimitiveParams([PRIM_TYPE, PRIM_MATERIAL, PRIM_COLOR, ALL_SIDES, PRIM_POSITION]);
9786</PRE
9787><P
9788></P
9789></DIV
9790>
9791 This would return a list similar to this:
9792<DIV
9793CLASS="informalexample"
9794><P
9795></P
9796><A
9797NAME="AEN2090"
9798></A
9799><PRE
9800CLASS="programlisting"
9801>&#13; [PRIM_TYPE_BOX, PRIM_HOLE_DEFAULT, &#60;0, 1, 0&#62;, 0.0, &#60;0, 0, 0&#62;, &#60;1, 1, 0&#62;, &#60;0, 0, 0&#62;, // PRIM_TYPE
9802 PRIM_MATERIAL_WOOD, // PRIM_MATERIAL
9803 0, &#60;1, 1, 1&#62;, 1.0, // PRIM_COLOR (ALL_SIDES specified, so all 6 sides returned)
9804 1, &#60;1, 0, 0&#62;, 0.5,
9805 2, &#60;0, 0, 1&#62;, 1.0,
9806 3, &#60;0, 1, 0&#62;, 1.0,
9807 4, &#60;0, 0, 0&#62;, 0.5,
9808 5, &#60;1, 1, 1&#62;, 1.0,
9809 &#60;37.341, 195.283, 31.239&#62;] // PRIM_POSITION
9810</PRE
9811><P
9812></P
9813></DIV
9814></P
9815></DIV
9816><DIV
9817CLASS="section"
9818><HR><H2
9819CLASS="section"
9820><A
9821NAME="AEN2092"
9822>A.101. llGetRegionCorner</A
9823></H2
9824><DIV
9825CLASS="funcsynopsis"
9826><P
9827></P
9828><A
9829NAME="AEN2094"
9830></A
9831><P
9832><CODE
9833><CODE
9834CLASS="FUNCDEF"
9835>llGetRegionCorner</CODE
9836>(void);</CODE
9837></P
9838><P
9839></P
9840></DIV
9841><P
9842>Returns a vector with the south west corner position of the
9843 current region.</P
9844></DIV
9845><DIV
9846CLASS="section"
9847><HR><H2
9848CLASS="section"
9849><A
9850NAME="AEN2100"
9851>A.102. llGetRegionFPS</A
9852></H2
9853><DIV
9854CLASS="funcsynopsis"
9855><P
9856></P
9857><A
9858NAME="AEN2102"
9859></A
9860><P
9861><CODE
9862><CODE
9863CLASS="FUNCDEF"
9864>llGetRegionFPS</CODE
9865>(void);</CODE
9866></P
9867><P
9868></P
9869></DIV
9870><P
9871>Returns the mean region frames per second.</P
9872></DIV
9873><DIV
9874CLASS="section"
9875><HR><H2
9876CLASS="section"
9877><A
9878NAME="AEN2108"
9879>A.103. llGetRegionName</A
9880></H2
9881><DIV
9882CLASS="funcsynopsis"
9883><P
9884></P
9885><A
9886NAME="AEN2110"
9887></A
9888><P
9889><CODE
9890><CODE
9891CLASS="FUNCDEF"
9892>string llGetRegionName</CODE
9893>(void);</CODE
9894></P
9895><P
9896></P
9897></DIV
9898><P
9899>Returns the current region name.</P
9900></DIV
9901><DIV
9902CLASS="section"
9903><HR><H2
9904CLASS="section"
9905><A
9906NAME="AEN2116"
9907>A.104. llGetRegionTimeDilation</A
9908></H2
9909><DIV
9910CLASS="funcsynopsis"
9911><P
9912></P
9913><A
9914NAME="AEN2118"
9915></A
9916><P
9917><CODE
9918><CODE
9919CLASS="FUNCDEF"
9920>float llGetRegionTimeDilation</CODE
9921>(void);</CODE
9922></P
9923><P
9924></P
9925></DIV
9926><P
9927>Returns the current time dilation as a float between 0 and 1.</P
9928></DIV
9929><DIV
9930CLASS="section"
9931><HR><H2
9932CLASS="section"
9933><A
9934NAME="AEN2124"
9935>A.105. llGetRootPosition</A
9936></H2
9937><DIV
9938CLASS="funcsynopsis"
9939><P
9940></P
9941><A
9942NAME="AEN2126"
9943></A
9944><P
9945><CODE
9946><CODE
9947CLASS="FUNCDEF"
9948>vector llGetRootPosition</CODE
9949>(void);</CODE
9950></P
9951><P
9952></P
9953></DIV
9954><P
9955>Returns the global position of the root object of the object the script is attached to.</P
9956></DIV
9957><DIV
9958CLASS="section"
9959><HR><H2
9960CLASS="section"
9961><A
9962NAME="AEN2132"
9963>A.106. llGetRootRotation</A
9964></H2
9965><DIV
9966CLASS="funcsynopsis"
9967><P
9968></P
9969><A
9970NAME="AEN2134"
9971></A
9972><P
9973><CODE
9974><CODE
9975CLASS="FUNCDEF"
9976>rotation llGetRootRotation</CODE
9977>(void);</CODE
9978></P
9979><P
9980></P
9981></DIV
9982><P
9983>Returns the global rotation of the root object of the object the script is attached to.</P
9984></DIV
9985><DIV
9986CLASS="section"
9987><HR><H2
9988CLASS="section"
9989><A
9990NAME="AEN2140"
9991>A.107. llGetRot</A
9992></H2
9993><DIV
9994CLASS="funcsynopsis"
9995><P
9996></P
9997><A
9998NAME="AEN2142"
9999></A
10000><P
10001><CODE
10002><CODE
10003CLASS="FUNCDEF"
10004>rotation llGetRot</CODE
10005>(void);</CODE
10006></P
10007><P
10008></P
10009></DIV
10010><P
10011>Returns the rotation.</P
10012></DIV
10013><DIV
10014CLASS="section"
10015><HR><H2
10016CLASS="section"
10017><A
10018NAME="AEN2148"
10019>A.108. llGetScale</A
10020></H2
10021><DIV
10022CLASS="funcsynopsis"
10023><P
10024></P
10025><A
10026NAME="AEN2150"
10027></A
10028><P
10029><CODE
10030><CODE
10031CLASS="FUNCDEF"
10032>vector llGetScale</CODE
10033>(void);</CODE
10034></P
10035><P
10036></P
10037></DIV
10038><P
10039>Returns the scale.</P
10040></DIV
10041><DIV
10042CLASS="section"
10043><HR><H2
10044CLASS="section"
10045><A
10046NAME="AEN2156"
10047>A.109. llGetScriptName</A
10048></H2
10049><DIV
10050CLASS="funcsynopsis"
10051><P
10052></P
10053><A
10054NAME="AEN2158"
10055></A
10056><P
10057><CODE
10058><CODE
10059CLASS="FUNCDEF"
10060>string llGetScriptName</CODE
10061>(void);</CODE
10062></P
10063><P
10064></P
10065></DIV
10066><P
10067>Returns the name of this script.</P
10068></DIV
10069><DIV
10070CLASS="section"
10071><HR><H2
10072CLASS="section"
10073><A
10074NAME="AEN2164"
10075>A.110. llGetStartParameter</A
10076></H2
10077><DIV
10078CLASS="funcsynopsis"
10079><P
10080></P
10081><A
10082NAME="AEN2166"
10083></A
10084><P
10085><CODE
10086><CODE
10087CLASS="FUNCDEF"
10088>integer llGetStartParameter</CODE
10089>(void);</CODE
10090></P
10091><P
10092></P
10093></DIV
10094><P
10095>Returns the start parameter passed to <A
10096HREF="#AEN3461"
10097>llRezObject</A
10098> or <A
10099HREF="#AEN3434"
10100>llRezAtRoot</A
10101>. If the object was
10102 created from agent inventory, this function returns 0.</P
10103></DIV
10104><DIV
10105CLASS="section"
10106><HR><H2
10107CLASS="section"
10108><A
10109NAME="AEN2174"
10110>A.111. llGetScriptState</A
10111></H2
10112><DIV
10113CLASS="funcsynopsis"
10114><P
10115></P
10116><A
10117NAME="AEN2176"
10118></A
10119><P
10120><CODE
10121><CODE
10122CLASS="FUNCDEF"
10123>integer llGetScriptState</CODE
10124>(string name);</CODE
10125></P
10126><P
10127></P
10128></DIV
10129><P
10130>Resets TRUE if script <CODE
10131CLASS="parameter"
10132>name</CODE
10133> is running</P
10134></DIV
10135><DIV
10136CLASS="section"
10137><HR><H2
10138CLASS="section"
10139><A
10140NAME="AEN2184"
10141>A.112. llGetStatus</A
10142></H2
10143><DIV
10144CLASS="funcsynopsis"
10145><P
10146></P
10147><A
10148NAME="AEN2186"
10149></A
10150><P
10151><CODE
10152><CODE
10153CLASS="FUNCDEF"
10154>integer llGetStatus</CODE
10155>(integer status);</CODE
10156></P
10157><P
10158></P
10159></DIV
10160><P
10161>Returns the value of <CODE
10162CLASS="parameter"
10163>status</CODE
10164>. The
10165 value will be one of the <A
10166HREF="#AEN5304"
10167>status
10168 constants</A
10169>.</P
10170></DIV
10171><DIV
10172CLASS="section"
10173><HR><H2
10174CLASS="section"
10175><A
10176NAME="AEN2195"
10177>A.113. llGetSubString</A
10178></H2
10179><DIV
10180CLASS="funcsynopsis"
10181><P
10182></P
10183><A
10184NAME="AEN2197"
10185></A
10186><P
10187><CODE
10188><CODE
10189CLASS="FUNCDEF"
10190>string llGetSubString</CODE
10191>(string src, integer start, integer end);</CODE
10192></P
10193><P
10194></P
10195></DIV
10196><P
10197>Returns the indicated substring from
10198 <CODE
10199CLASS="parameter"
10200>src</CODE
10201>. The <CODE
10202CLASS="parameter"
10203>start</CODE
10204> and
10205 <CODE
10206CLASS="parameter"
10207>end</CODE
10208> are inclusive, so 0,length-1 would
10209 capture the entire string and 0,0 would capture the first
10210 character. Using negative numbers for <CODE
10211CLASS="parameter"
10212>start</CODE
10213>
10214 and/or <CODE
10215CLASS="parameter"
10216>end</CODE
10217> causes the index to count
10218 backwards from the length of the string, so 0,-1 would capture the
10219 entire string. If start is larger than end the sub string is the
10220 exclusion of the entries, so 6,4 would give the entire string
10221 except for the 5<SUP
10222>th</SUP
10223> character.</P
10224></DIV
10225><DIV
10226CLASS="section"
10227><HR><H2
10228CLASS="section"
10229><A
10230NAME="AEN2214"
10231>A.114. llGetSunDirection</A
10232></H2
10233><DIV
10234CLASS="funcsynopsis"
10235><P
10236></P
10237><A
10238NAME="AEN2216"
10239></A
10240><P
10241><CODE
10242><CODE
10243CLASS="FUNCDEF"
10244>vector llGetSunDirection</CODE
10245>(void);</CODE
10246></P
10247><P
10248></P
10249></DIV
10250><P
10251>Returns the sun direction on the simulator.</P
10252></DIV
10253><DIV
10254CLASS="section"
10255><HR><H2
10256CLASS="section"
10257><A
10258NAME="AEN2222"
10259>A.115. llGetTexture</A
10260></H2
10261><DIV
10262CLASS="funcsynopsis"
10263><P
10264></P
10265><A
10266NAME="AEN2224"
10267></A
10268><P
10269><CODE
10270><CODE
10271CLASS="FUNCDEF"
10272>string llGetTexture</CODE
10273>(integer face);</CODE
10274></P
10275><P
10276></P
10277></DIV
10278><P
10279>Returns the texture of <CODE
10280CLASS="parameter"
10281>face</CODE
10282> if it is
10283 found in object inventory.</P
10284></DIV
10285><DIV
10286CLASS="section"
10287><HR><H2
10288CLASS="section"
10289><A
10290NAME="AEN2232"
10291>A.116. llGetTextureOffset</A
10292></H2
10293><DIV
10294CLASS="funcsynopsis"
10295><P
10296></P
10297><A
10298NAME="AEN2234"
10299></A
10300><P
10301><CODE
10302><CODE
10303CLASS="FUNCDEF"
10304>vector llGetTextureOffset</CODE
10305>(integer side);</CODE
10306></P
10307><P
10308></P
10309></DIV
10310><P
10311>Returns the texture offset of <CODE
10312CLASS="parameter"
10313>side</CODE
10314> in
10315 the x and y components of a vector.</P
10316></DIV
10317><DIV
10318CLASS="section"
10319><HR><H2
10320CLASS="section"
10321><A
10322NAME="AEN2242"
10323>A.117. llGetTextureRot</A
10324></H2
10325><DIV
10326CLASS="funcsynopsis"
10327><P
10328></P
10329><A
10330NAME="AEN2244"
10331></A
10332><P
10333><CODE
10334><CODE
10335CLASS="FUNCDEF"
10336>float llGetTextureRot</CODE
10337>(integer side);</CODE
10338></P
10339><P
10340></P
10341></DIV
10342><P
10343>Returns the texture rotation of
10344 <CODE
10345CLASS="parameter"
10346>side</CODE
10347>.</P
10348></DIV
10349><DIV
10350CLASS="section"
10351><HR><H2
10352CLASS="section"
10353><A
10354NAME="AEN2252"
10355>A.118. llGetTextureScale</A
10356></H2
10357><DIV
10358CLASS="funcsynopsis"
10359><P
10360></P
10361><A
10362NAME="AEN2254"
10363></A
10364><P
10365><CODE
10366><CODE
10367CLASS="FUNCDEF"
10368>vector llGetTextureScale</CODE
10369>(integer side);</CODE
10370></P
10371><P
10372></P
10373></DIV
10374><P
10375>Returns the texture scale of <CODE
10376CLASS="parameter"
10377>side</CODE
10378> in
10379 the x and y components of a vector.</P
10380></DIV
10381><DIV
10382CLASS="section"
10383><HR><H2
10384CLASS="section"
10385><A
10386NAME="AEN2262"
10387>A.119. llGetTime</A
10388></H2
10389><DIV
10390CLASS="funcsynopsis"
10391><P
10392></P
10393><A
10394NAME="AEN2264"
10395></A
10396><P
10397><CODE
10398><CODE
10399CLASS="FUNCDEF"
10400>float llGetTime</CODE
10401>(void);</CODE
10402></P
10403><P
10404></P
10405></DIV
10406><P
10407>Returns the seconds of elapsed time from an internal timer
10408 associated with the script. The timer is reset on rez, simulator
10409 restart, script reset, and in calls to <A
10410HREF="#AEN1638"
10411>llGetAndResetTime</A
10412> or <A
10413HREF="#AEN3426"
10414>llResetTime</A
10415>. Use <A
10416HREF="#AEN4188"
10417>llSetTimerEvent</A
10418> if you want a
10419 reliable timing mechanism.</P
10420></DIV
10421><DIV
10422CLASS="section"
10423><HR><H2
10424CLASS="section"
10425><A
10426NAME="AEN2273"
10427>A.120. llGetTimeOfDay</A
10428></H2
10429><DIV
10430CLASS="funcsynopsis"
10431><P
10432></P
10433><A
10434NAME="AEN2275"
10435></A
10436><P
10437><CODE
10438><CODE
10439CLASS="FUNCDEF"
10440>float llGetTimeOfDay</CODE
10441>(void);</CODE
10442></P
10443><P
10444></P
10445></DIV
10446><P
10447>Gets the time in seconds since midnight in Second Life.</P
10448></DIV
10449><DIV
10450CLASS="section"
10451><HR><H2
10452CLASS="section"
10453><A
10454NAME="AEN2281"
10455>A.121. llGetTimestamp</A
10456></H2
10457><DIV
10458CLASS="funcsynopsis"
10459><P
10460></P
10461><A
10462NAME="AEN2283"
10463></A
10464><P
10465><CODE
10466><CODE
10467CLASS="FUNCDEF"
10468>string llGetTimestamp</CODE
10469>(void);</CODE
10470></P
10471><P
10472></P
10473></DIV
10474><P
10475>Returns a timestamp in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.</P
10476></DIV
10477><DIV
10478CLASS="section"
10479><HR><H2
10480CLASS="section"
10481><A
10482NAME="AEN2289"
10483>A.122. llGetTorque</A
10484></H2
10485><DIV
10486CLASS="funcsynopsis"
10487><P
10488></P
10489><A
10490NAME="AEN2291"
10491></A
10492><P
10493><CODE
10494><CODE
10495CLASS="FUNCDEF"
10496>vector llGetTorque</CODE
10497>(void);</CODE
10498></P
10499><P
10500></P
10501></DIV
10502><P
10503>Returns the torque if the script is physical.</P
10504></DIV
10505><DIV
10506CLASS="section"
10507><HR><H2
10508CLASS="section"
10509><A
10510NAME="AEN2297"
10511>A.123. llGetVel</A
10512></H2
10513><DIV
10514CLASS="funcsynopsis"
10515><P
10516></P
10517><A
10518NAME="AEN2299"
10519></A
10520><P
10521><CODE
10522><CODE
10523CLASS="FUNCDEF"
10524>vector llGetVel</CODE
10525>();</CODE
10526></P
10527><P
10528></P
10529></DIV
10530><P
10531>Returns the velocity.</P
10532></DIV
10533><DIV
10534CLASS="section"
10535><HR><H2
10536CLASS="section"
10537><A
10538NAME="AEN2306"
10539>A.124. llGetWallclock</A
10540></H2
10541><DIV
10542CLASS="funcsynopsis"
10543><P
10544></P
10545><A
10546NAME="AEN2308"
10547></A
10548><P
10549><CODE
10550><CODE
10551CLASS="FUNCDEF"
10552>float llGetWallclock</CODE
10553>(void);</CODE
10554></P
10555><P
10556></P
10557></DIV
10558><P
10559>Returns the time in seconds since simulator timezone
10560 midnight. Currently this is PST.</P
10561></DIV
10562><DIV
10563CLASS="section"
10564><HR><H2
10565CLASS="section"
10566><A
10567NAME="AEN2314"
10568>A.125. llGiveInventory</A
10569></H2
10570><DIV
10571CLASS="funcsynopsis"
10572><P
10573></P
10574><A
10575NAME="AEN2316"
10576></A
10577><P
10578><CODE
10579><CODE
10580CLASS="FUNCDEF"
10581>llGiveInventory</CODE
10582>(key destination, string inventory);</CODE
10583></P
10584><P
10585></P
10586></DIV
10587><P
10588>Give the named inventory item to the keyed avatar or object
10589 in the same simulator as the giver. If the recipient is an avatar,
10590 the avatar then follows the normal procedure of accepting or
10591 denying the offer. If the recipient is an object, the same
10592 permissions apply as if you were dragging inventory onto the
10593 object by hand, ie if <A
10594HREF="#AEN1047"
10595>llAllowInventoryDrop</A
10596> has
10597 been called with TRUE, any other object can pass objects to its
10598 inventory.</P
10599></DIV
10600><DIV
10601CLASS="section"
10602><HR><H2
10603CLASS="section"
10604><A
10605NAME="AEN2326"
10606>A.126. llGiveInventoryList</A
10607></H2
10608><DIV
10609CLASS="funcsynopsis"
10610><P
10611></P
10612><A
10613NAME="AEN2328"
10614></A
10615><P
10616><CODE
10617><CODE
10618CLASS="FUNCDEF"
10619>llGiveInventoryList</CODE
10620>(key destination, string category, list inventory);</CODE
10621></P
10622><P
10623></P
10624></DIV
10625><P
10626>Give the list of named inventory items to the keyed avatar
10627 or object in the same simulator as the giver. If the recipient is
10628 an avatar, the avatar then follows the normal procedure of
10629 accepting or denying the offer. The offered inventory is then
10630 placed in a folder named <CODE
10631CLASS="parameter"
10632>category</CODE
10633> in the
10634 recipients inventory. If the recipient is an object, the same
10635 permissions apply as if you were dragging inventory onto the
10636 object by hand, ie if <A
10637HREF="#AEN1047"
10638>llAllowInventoryDrop</A
10639> has
10640 been called with TRUE, any other object can pass objects to its
10641 inventory.If the recipient is an object, the
10642 <CODE
10643CLASS="parameter"
10644>category</CODE
10645> parameter is ignored.</P
10646></DIV
10647><DIV
10648CLASS="section"
10649><HR><H2
10650CLASS="section"
10651><A
10652NAME="AEN2342"
10653>A.127. llGiveMoney</A
10654></H2
10655><DIV
10656CLASS="funcsynopsis"
10657><P
10658></P
10659><A
10660NAME="AEN2344"
10661></A
10662><P
10663><CODE
10664><CODE
10665CLASS="FUNCDEF"
10666>llGiveMoney</CODE
10667>(key destination, integer amount);</CODE
10668></P
10669><P
10670></P
10671></DIV
10672><P
10673>Transfer <CODE
10674CLASS="parameter"
10675>amount</CODE
10676> from the script owner
10677 to <CODE
10678CLASS="parameter"
10679>destination</CODE
10680>. This call will fail if
10681 <A
10682HREF="#AEN5360"
10683>PERMISSION_DEBIT</A
10684> has not
10685 been set.</P
10686></DIV
10687><DIV
10688CLASS="section"
10689><HR><H2
10690CLASS="section"
10691><A
10692NAME="AEN2356"
10693>A.128. llGround</A
10694></H2
10695><DIV
10696CLASS="funcsynopsis"
10697><P
10698></P
10699><A
10700NAME="AEN2358"
10701></A
10702><P
10703><CODE
10704><CODE
10705CLASS="FUNCDEF"
10706>float llGround</CODE
10707>(vector offset);</CODE
10708></P
10709><P
10710></P
10711></DIV
10712><P
10713>Returns the ground height at the object position +
10714 <CODE
10715CLASS="parameter"
10716>offset</CODE
10717>.</P
10718></DIV
10719><DIV
10720CLASS="section"
10721><HR><H2
10722CLASS="section"
10723><A
10724NAME="AEN2366"
10725>A.129. llGroundContour</A
10726></H2
10727><DIV
10728CLASS="funcsynopsis"
10729><P
10730></P
10731><A
10732NAME="AEN2368"
10733></A
10734><P
10735><CODE
10736><CODE
10737CLASS="FUNCDEF"
10738>vector llGroundContour</CODE
10739>(vector offset);</CODE
10740></P
10741><P
10742></P
10743></DIV
10744><P
10745>Returns the ground contour at the object position +
10746 <CODE
10747CLASS="parameter"
10748>offset</CODE
10749>.</P
10750></DIV
10751><DIV
10752CLASS="section"
10753><HR><H2
10754CLASS="section"
10755><A
10756NAME="AEN2376"
10757>A.130. llGroundNormal</A
10758></H2
10759><DIV
10760CLASS="funcsynopsis"
10761><P
10762></P
10763><A
10764NAME="AEN2378"
10765></A
10766><P
10767><CODE
10768><CODE
10769CLASS="FUNCDEF"
10770>vector llGroundNormal</CODE
10771>(vector offset);</CODE
10772></P
10773><P
10774></P
10775></DIV
10776><P
10777>Returns the ground contour at the object position +
10778 <CODE
10779CLASS="parameter"
10780>offset</CODE
10781>.</P
10782></DIV
10783><DIV
10784CLASS="section"
10785><HR><H2
10786CLASS="section"
10787><A
10788NAME="AEN2386"
10789>A.131. llGroundRepel</A
10790></H2
10791><DIV
10792CLASS="funcsynopsis"
10793><P
10794></P
10795><A
10796NAME="AEN2388"
10797></A
10798><P
10799><CODE
10800><CODE
10801CLASS="FUNCDEF"
10802>llGroundRepel</CODE
10803>(float height, integer water, float tau);</CODE
10804></P
10805><P
10806></P
10807></DIV
10808><P
10809>Critically damps to <CODE
10810CLASS="parameter"
10811>height</CODE
10812> if within
10813 <CODE
10814CLASS="parameter"
10815>height</CODE
10816> * 0.5 of
10817 <CODE
10818CLASS="parameter"
10819>level</CODE
10820>. The <CODE
10821CLASS="parameter"
10822>height</CODE
10823>
10824 is above ground level if <CODE
10825CLASS="parameter"
10826>water</CODE
10827> is FALSE or
10828 above the higher of land and water if <CODE
10829CLASS="parameter"
10830>water</CODE
10831>
10832 is TRUE.</P
10833></DIV
10834><DIV
10835CLASS="section"
10836><HR><H2
10837CLASS="section"
10838><A
10839NAME="AEN2405"
10840>A.132. llGroundSlope</A
10841></H2
10842><DIV
10843CLASS="funcsynopsis"
10844><P
10845></P
10846><A
10847NAME="AEN2407"
10848></A
10849><P
10850><CODE
10851><CODE
10852CLASS="FUNCDEF"
10853>vector llGroundSlope</CODE
10854>(vector offset);</CODE
10855></P
10856><P
10857></P
10858></DIV
10859><P
10860>Returns the ground slope at the object position +
10861 <CODE
10862CLASS="parameter"
10863>offset</CODE
10864>.</P
10865></DIV
10866><DIV
10867CLASS="section"
10868><HR><H2
10869CLASS="section"
10870><A
10871NAME="AEN2415"
10872>A.133. llInsertString</A
10873></H2
10874><DIV
10875CLASS="funcsynopsis"
10876><P
10877></P
10878><A
10879NAME="AEN2417"
10880></A
10881><P
10882><CODE
10883><CODE
10884CLASS="FUNCDEF"
10885>string llInsertString</CODE
10886>(string dst, integer position, string src);</CODE
10887></P
10888><P
10889></P
10890></DIV
10891><P
10892>Inserts <CODE
10893CLASS="parameter"
10894>src</CODE
10895> into
10896 <CODE
10897CLASS="parameter"
10898>dst</CODE
10899> at <CODE
10900CLASS="parameter"
10901>position</CODE
10902> and
10903 returns the result.</P
10904></DIV
10905><DIV
10906CLASS="section"
10907><HR><H2
10908CLASS="section"
10909><A
10910NAME="AEN2431"
10911>A.134. llInstantMessage</A
10912></H2
10913><DIV
10914CLASS="funcsynopsis"
10915><P
10916></P
10917><A
10918NAME="AEN2433"
10919></A
10920><P
10921><CODE
10922><CODE
10923CLASS="FUNCDEF"
10924>llInstantMessage</CODE
10925>(key user, string message);</CODE
10926></P
10927><P
10928></P
10929></DIV
10930><P
10931>Send <CODE
10932CLASS="parameter"
10933>message</CODE
10934> to the
10935 <CODE
10936CLASS="parameter"
10937>user</CODE
10938> as an instant message.</P
10939></DIV
10940><DIV
10941CLASS="section"
10942><HR><H2
10943CLASS="section"
10944><A
10945NAME="AEN2444"
10946>A.135. llKey2Name</A
10947></H2
10948><DIV
10949CLASS="funcsynopsis"
10950><P
10951></P
10952><A
10953NAME="AEN2446"
10954></A
10955><P
10956><CODE
10957><CODE
10958CLASS="FUNCDEF"
10959>string llKey2Name</CODE
10960>(key id);</CODE
10961></P
10962><P
10963></P
10964></DIV
10965><P
10966>If object <CODE
10967CLASS="parameter"
10968>id</CODE
10969> is in the same
10970 simulator, return the name of the object.</P
10971></DIV
10972><DIV
10973CLASS="section"
10974><HR><H2
10975CLASS="section"
10976><A
10977NAME="AEN2454"
10978>A.136. llList2CSV</A
10979></H2
10980><DIV
10981CLASS="funcsynopsis"
10982><P
10983></P
10984><A
10985NAME="AEN2456"
10986></A
10987><P
10988><CODE
10989><CODE
10990CLASS="FUNCDEF"
10991>string llList2CSV</CODE
10992>(list src);</CODE
10993></P
10994><P
10995></P
10996></DIV
10997><P
10998>Create a string of comma separated values from
10999 <CODE
11000CLASS="parameter"
11001>list</CODE
11002>.</P
11003></DIV
11004><DIV
11005CLASS="section"
11006><HR><H2
11007CLASS="section"
11008><A
11009NAME="AEN2464"
11010>A.137. llList2Float</A
11011></H2
11012><DIV
11013CLASS="funcsynopsis"
11014><P
11015></P
11016><A
11017NAME="AEN2466"
11018></A
11019><P
11020><CODE
11021><CODE
11022CLASS="FUNCDEF"
11023>float llList2Float</CODE
11024>(list src, integer index);</CODE
11025></P
11026><P
11027></P
11028></DIV
11029><P
11030>Returns the float at <CODE
11031CLASS="parameter"
11032>index</CODE
11033> in the
11034 list <CODE
11035CLASS="parameter"
11036>src</CODE
11037>.</P
11038></DIV
11039><DIV
11040CLASS="section"
11041><HR><H2
11042CLASS="section"
11043><A
11044NAME="AEN2477"
11045>A.138. llList2Integer</A
11046></H2
11047><DIV
11048CLASS="funcsynopsis"
11049><P
11050></P
11051><A
11052NAME="AEN2479"
11053></A
11054><P
11055><CODE
11056><CODE
11057CLASS="FUNCDEF"
11058>integer llList2Integer</CODE
11059>(list src, integer index);</CODE
11060></P
11061><P
11062></P
11063></DIV
11064><P
11065>Returns the integer at <CODE
11066CLASS="parameter"
11067>index</CODE
11068> in the list
11069 <CODE
11070CLASS="parameter"
11071>src</CODE
11072>.</P
11073></DIV
11074><DIV
11075CLASS="section"
11076><HR><H2
11077CLASS="section"
11078><A
11079NAME="AEN2490"
11080>A.139. llList2Key</A
11081></H2
11082><DIV
11083CLASS="funcsynopsis"
11084><P
11085></P
11086><A
11087NAME="AEN2492"
11088></A
11089><P
11090><CODE
11091><CODE
11092CLASS="FUNCDEF"
11093>key llList2Key</CODE
11094>(list src, integer index);</CODE
11095></P
11096><P
11097></P
11098></DIV
11099><P
11100>Returns the key at <CODE
11101CLASS="parameter"
11102>index</CODE
11103> in the list
11104 <CODE
11105CLASS="parameter"
11106>src</CODE
11107>.</P
11108></DIV
11109><DIV
11110CLASS="section"
11111><HR><H2
11112CLASS="section"
11113><A
11114NAME="AEN2503"
11115>A.140. llList2List</A
11116></H2
11117><DIV
11118CLASS="funcsynopsis"
11119><P
11120></P
11121><A
11122NAME="AEN2505"
11123></A
11124><P
11125><CODE
11126><CODE
11127CLASS="FUNCDEF"
11128>list llList2List</CODE
11129>(list src, integer start, integer end);</CODE
11130></P
11131><P
11132></P
11133></DIV
11134><P
11135>Returns the slice of the list from
11136 <CODE
11137CLASS="parameter"
11138>start</CODE
11139> to <CODE
11140CLASS="parameter"
11141>end</CODE
11142> from
11143 the list <CODE
11144CLASS="parameter"
11145>src</CODE
11146> as a new list. The
11147 <CODE
11148CLASS="parameter"
11149>start</CODE
11150> and <CODE
11151CLASS="parameter"
11152>end</CODE
11153>
11154 parameters are inclusive, so 0,length-1 would copy the entire list
11155 and 0,0 would capture the first list entry. Using negative numbers
11156 for <CODE
11157CLASS="parameter"
11158>start</CODE
11159> and/or <CODE
11160CLASS="parameter"
11161>end</CODE
11162>
11163 causes the index to count backwards from the length of the list,
11164 so 0,-1 would capture the entire list. If
11165 <CODE
11166CLASS="parameter"
11167>start</CODE
11168> is larger than
11169 <CODE
11170CLASS="parameter"
11171>end</CODE
11172> the list returned is the exclusion of
11173 the entries, so 6,4 would give the entire list except for the
11174 5<SUP
11175>th</SUP
11176> entry.</P
11177></DIV
11178><DIV
11179CLASS="section"
11180><HR><H2
11181CLASS="section"
11182><A
11183NAME="AEN2526"
11184>A.141. llList2ListStrided</A
11185></H2
11186><DIV
11187CLASS="funcsynopsis"
11188><P
11189></P
11190><A
11191NAME="AEN2528"
11192></A
11193><P
11194><CODE
11195><CODE
11196CLASS="FUNCDEF"
11197>list llList2ListStrided</CODE
11198>(list src, integer start, integer end, integer stride);</CODE
11199></P
11200><P
11201></P
11202></DIV
11203><P
11204>Copy the strided slice of <CODE
11205CLASS="parameter"
11206>src</CODE
11207> from
11208 <CODE
11209CLASS="parameter"
11210>start</CODE
11211> to <CODE
11212CLASS="parameter"
11213>end</CODE
11214>.</P
11215></DIV
11216><DIV
11217CLASS="section"
11218><HR><H2
11219CLASS="section"
11220><A
11221NAME="AEN2544"
11222>A.142. llList2Rot</A
11223></H2
11224><DIV
11225CLASS="funcsynopsis"
11226><P
11227></P
11228><A
11229NAME="AEN2546"
11230></A
11231><P
11232><CODE
11233><CODE
11234CLASS="FUNCDEF"
11235>rotation llList2Rot</CODE
11236>(list src, integer index);</CODE
11237></P
11238><P
11239></P
11240></DIV
11241><P
11242>Returns the rotation at <CODE
11243CLASS="parameter"
11244>index</CODE
11245> in
11246 <CODE
11247CLASS="parameter"
11248>src</CODE
11249>.</P
11250></DIV
11251><DIV
11252CLASS="section"
11253><HR><H2
11254CLASS="section"
11255><A
11256NAME="AEN2557"
11257>A.143. llList2String</A
11258></H2
11259><DIV
11260CLASS="funcsynopsis"
11261><P
11262></P
11263><A
11264NAME="AEN2559"
11265></A
11266><P
11267><CODE
11268><CODE
11269CLASS="FUNCDEF"
11270>string llList2String</CODE
11271>(list src, integer index);</CODE
11272></P
11273><P
11274></P
11275></DIV
11276><P
11277>Returns the string at <CODE
11278CLASS="parameter"
11279>index</CODE
11280> in
11281 <CODE
11282CLASS="parameter"
11283>src</CODE
11284>.</P
11285></DIV
11286><DIV
11287CLASS="section"
11288><HR><H2
11289CLASS="section"
11290><A
11291NAME="AEN2570"
11292>A.144. llList2Vector</A
11293></H2
11294><DIV
11295CLASS="funcsynopsis"
11296><P
11297></P
11298><A
11299NAME="AEN2572"
11300></A
11301><P
11302><CODE
11303><CODE
11304CLASS="FUNCDEF"
11305>llList2Vector</CODE
11306>(list src, integer index);</CODE
11307></P
11308><P
11309></P
11310></DIV
11311><P
11312>Returns the string at <CODE
11313CLASS="parameter"
11314>index</CODE
11315> in
11316 <CODE
11317CLASS="parameter"
11318>src</CODE
11319>.</P
11320></DIV
11321><DIV
11322CLASS="section"
11323><HR><H2
11324CLASS="section"
11325><A
11326NAME="AEN2583"
11327>A.145. llListFindList</A
11328></H2
11329><DIV
11330CLASS="funcsynopsis"
11331><P
11332></P
11333><A
11334NAME="AEN2585"
11335></A
11336><P
11337><CODE
11338><CODE
11339CLASS="FUNCDEF"
11340>integer llListFindList</CODE
11341>(list src, list test);</CODE
11342></P
11343><P
11344></P
11345></DIV
11346><P
11347>Returns the position of the first instance of
11348 <CODE
11349CLASS="parameter"
11350>test</CODE
11351> in <CODE
11352CLASS="parameter"
11353>src</CODE
11354>. Returns
11355 -1 if <CODE
11356CLASS="parameter"
11357>test</CODE
11358> is not in
11359 <CODE
11360CLASS="parameter"
11361>src</CODE
11362>.</P
11363></DIV
11364><DIV
11365CLASS="section"
11366><HR><H2
11367CLASS="section"
11368><A
11369NAME="AEN2598"
11370>A.146. llListInsertList</A
11371></H2
11372><DIV
11373CLASS="funcsynopsis"
11374><P
11375></P
11376><A
11377NAME="AEN2600"
11378></A
11379><P
11380><CODE
11381><CODE
11382CLASS="FUNCDEF"
11383>list llListInsertList</CODE
11384>(list dest, list src, integer pos);</CODE
11385></P
11386><P
11387></P
11388></DIV
11389><P
11390>Returns the list created by inserting
11391 <CODE
11392CLASS="parameter"
11393>src</CODE
11394> into <CODE
11395CLASS="parameter"
11396>dest</CODE
11397> at
11398 <CODE
11399CLASS="parameter"
11400>pos</CODE
11401>.</P
11402></DIV
11403><DIV
11404CLASS="section"
11405><HR><H2
11406CLASS="section"
11407><A
11408NAME="AEN2614"
11409>A.147. llListRandomize</A
11410></H2
11411><DIV
11412CLASS="funcsynopsis"
11413><P
11414></P
11415><A
11416NAME="AEN2616"
11417></A
11418><P
11419><CODE
11420><CODE
11421CLASS="FUNCDEF"
11422>list llListRandomize</CODE
11423>(list src, integer stride);</CODE
11424></P
11425><P
11426></P
11427></DIV
11428><P
11429>Returns <CODE
11430CLASS="parameter"
11431>src</CODE
11432> randomized into blocks of
11433 size <CODE
11434CLASS="parameter"
11435>stride</CODE
11436>. If the length of
11437 <CODE
11438CLASS="parameter"
11439>src</CODE
11440> divided by
11441 <CODE
11442CLASS="parameter"
11443>stride</CODE
11444> is non-zero, this function does
11445 not randomize the list.</P
11446></DIV
11447><DIV
11448CLASS="section"
11449><HR><H2
11450CLASS="section"
11451><A
11452NAME="AEN2629"
11453>A.148. llListReplaceList</A
11454></H2
11455><DIV
11456CLASS="funcsynopsis"
11457><P
11458></P
11459><A
11460NAME="AEN2631"
11461></A
11462><P
11463><CODE
11464><CODE
11465CLASS="FUNCDEF"
11466>list llListReplaceList</CODE
11467>(list dest, list src, integer start, integer end);</CODE
11468></P
11469><P
11470></P
11471></DIV
11472><P
11473>Returns the list created by replacing the segment of <CODE
11474CLASS="parameter"
11475>dest</CODE
11476> from
11477 <CODE
11478CLASS="parameter"
11479>start</CODE
11480> to <CODE
11481CLASS="parameter"
11482>end</CODE
11483> with <CODE
11484CLASS="parameter"
11485>src</CODE
11486>.</P
11487></DIV
11488><DIV
11489CLASS="section"
11490><HR><H2
11491CLASS="section"
11492><A
11493NAME="AEN2648"
11494>A.149. llListSort</A
11495></H2
11496><DIV
11497CLASS="funcsynopsis"
11498><P
11499></P
11500><A
11501NAME="AEN2650"
11502></A
11503><P
11504><CODE
11505><CODE
11506CLASS="FUNCDEF"
11507>list llListSort</CODE
11508>(list src, integer stride, integer ascending);</CODE
11509></P
11510><P
11511></P
11512></DIV
11513><P
11514>Returns <CODE
11515CLASS="parameter"
11516>src</CODE
11517> sorted into blocks of
11518 <CODE
11519CLASS="parameter"
11520>stride</CODE
11521> in ascending order if
11522 <CODE
11523CLASS="parameter"
11524>ascending</CODE
11525> is <A
11526HREF="#AEN5295"
11527>TRUE</A
11528>. Note that sort only works in
11529 the head of each sort block is the same type.</P
11530></DIV
11531><DIV
11532CLASS="section"
11533><HR><H2
11534CLASS="section"
11535><A
11536NAME="AEN2665"
11537>A.150. llListen</A
11538></H2
11539><DIV
11540CLASS="funcsynopsis"
11541><P
11542></P
11543><A
11544NAME="AEN2667"
11545></A
11546><P
11547><CODE
11548><CODE
11549CLASS="FUNCDEF"
11550>integer llListen</CODE
11551>(integer channel, string name, key id, string msg);</CODE
11552></P
11553><P
11554></P
11555></DIV
11556><P
11557>Sets a listen event callback for <CODE
11558CLASS="parameter"
11559>msg</CODE
11560>
11561 on <CODE
11562CLASS="parameter"
11563>channel</CODE
11564> from <CODE
11565CLASS="parameter"
11566>name</CODE
11567>
11568 and returns an identifier that can be used to deactivate or remove
11569 the listen. The <CODE
11570CLASS="parameter"
11571>name</CODE
11572>,
11573 <CODE
11574CLASS="parameter"
11575>id</CODE
11576> and/or <CODE
11577CLASS="parameter"
11578>msg</CODE
11579>
11580 parameters can be blank to indicate not to filter on that
11581 argument. Channel 0 is the public chat channel that all avatars
11582 see as chat text. Channels 1 to 2,147,483,648 are hidden channels
11583 that are not sent to avatars.</P
11584></DIV
11585><DIV
11586CLASS="section"
11587><HR><H2
11588CLASS="section"
11589><A
11590NAME="AEN2686"
11591>A.151. llListenControl</A
11592></H2
11593><DIV
11594CLASS="funcsynopsis"
11595><P
11596></P
11597><A
11598NAME="AEN2688"
11599></A
11600><P
11601><CODE
11602><CODE
11603CLASS="FUNCDEF"
11604>llListenControl</CODE
11605>(integer number, integer active);</CODE
11606></P
11607><P
11608></P
11609></DIV
11610><P
11611>Make a listen event callback active or inactive. Pass in the
11612 value returned from <A
11613HREF="#AEN2665"
11614>llListen</A
11615>
11616 to the <CODE
11617CLASS="parameter"
11618>number</CODE
11619> parameter to specify which
11620 event you are controlling. Use <A
11621HREF="#AEN5295"
11622>boolean</A
11623> values to specify
11624 <CODE
11625CLASS="parameter"
11626>active</CODE
11627>.</P
11628></DIV
11629><DIV
11630CLASS="section"
11631><HR><H2
11632CLASS="section"
11633><A
11634NAME="AEN2701"
11635>A.152. llListenRemove</A
11636></H2
11637><DIV
11638CLASS="funcsynopsis"
11639><P
11640></P
11641><A
11642NAME="AEN2703"
11643></A
11644><P
11645><CODE
11646><CODE
11647CLASS="FUNCDEF"
11648>llListenRemove</CODE
11649>(integer number);</CODE
11650></P
11651><P
11652></P
11653></DIV
11654><P
11655>Removes a listen event callback. Pass in the value returned
11656 from <A
11657HREF="#AEN2665"
11658>llListen</A
11659> to the
11660 <CODE
11661CLASS="parameter"
11662>number</CODE
11663> parameter to specify which event you
11664 are removing.</P
11665></DIV
11666><DIV
11667CLASS="section"
11668><HR><H2
11669CLASS="section"
11670><A
11671NAME="AEN2712"
11672>A.153. llLoadURL</A
11673></H2
11674><DIV
11675CLASS="funcsynopsis"
11676><P
11677></P
11678><A
11679NAME="AEN2714"
11680></A
11681><P
11682><CODE
11683><CODE
11684CLASS="FUNCDEF"
11685>llLoadURL</CODE
11686>(key avatar_id, string message, string url);</CODE
11687></P
11688><P
11689></P
11690></DIV
11691><P
11692>Displays a dialog to user <CODE
11693CLASS="parameter"
11694>avatar_id</CODE
11695>
11696 with <CODE
11697CLASS="parameter"
11698>message</CODE
11699> offering to
11700 go to the web page at <CODE
11701CLASS="parameter"
11702>url</CODE
11703>. If the user clicks the
11704 "Go to page" button, their default web browser is launched and
11705 directed to <CODE
11706CLASS="parameter"
11707>url</CODE
11708>.</P
11709><P
11710>The <CODE
11711CLASS="parameter"
11712>url</CODE
11713> must begin with "http:" or
11714 "https:", other protocols are not currently supported.
11715 The dialog box shows the name of the object's
11716 owner so that abuse (e.g. spamming) can be easily reported.
11717 This function has a 10 second implicit sleep.</P
11718></DIV
11719><DIV
11720CLASS="section"
11721><HR><H2
11722CLASS="section"
11723><A
11724NAME="AEN2731"
11725>A.154. llLog</A
11726></H2
11727><DIV
11728CLASS="funcsynopsis"
11729><P
11730></P
11731><A
11732NAME="AEN2733"
11733></A
11734><P
11735><CODE
11736><CODE
11737CLASS="FUNCDEF"
11738>float llLog</CODE
11739>(float val);</CODE
11740></P
11741><P
11742></P
11743></DIV
11744><P
11745>Returns the natural logarithm (base e) of
11746 <CODE
11747CLASS="parameter"
11748>val</CODE
11749> if <CODE
11750CLASS="parameter"
11751>val</CODE
11752> &#62; 0,
11753 otherwise returns 0.</P
11754></DIV
11755><DIV
11756CLASS="section"
11757><HR><H2
11758CLASS="section"
11759><A
11760NAME="AEN2742"
11761>A.155. llLog10</A
11762></H2
11763><DIV
11764CLASS="funcsynopsis"
11765><P
11766></P
11767><A
11768NAME="AEN2744"
11769></A
11770><P
11771><CODE
11772><CODE
11773CLASS="FUNCDEF"
11774>float llLog10</CODE
11775>(float val);</CODE
11776></P
11777><P
11778></P
11779></DIV
11780><P
11781>Returns the base 10 log of <CODE
11782CLASS="parameter"
11783>val</CODE
11784> if
11785 <CODE
11786CLASS="parameter"
11787>val</CODE
11788> &#62; 0, otherwise returns 0.</P
11789></DIV
11790><DIV
11791CLASS="section"
11792><HR><H2
11793CLASS="section"
11794><A
11795NAME="AEN2753"
11796>A.156. llLookAt</A
11797></H2
11798><DIV
11799CLASS="funcsynopsis"
11800><P
11801></P
11802><A
11803NAME="AEN2755"
11804></A
11805><P
11806><CODE
11807><CODE
11808CLASS="FUNCDEF"
11809>llLookAt</CODE
11810>(vector target, float strength, float damping);</CODE
11811></P
11812><P
11813></P
11814></DIV
11815><P
11816>Cause object to point the forward axis toward
11817 <CODE
11818CLASS="parameter"
11819>target</CODE
11820>. Good
11821 <CODE
11822CLASS="parameter"
11823>strength</CODE
11824> values are around half the mass of
11825 the object and good <CODE
11826CLASS="parameter"
11827>damping</CODE
11828> values are less
11829 than 1/10<SUP
11830>th</SUP
11831> of the
11832 <CODE
11833CLASS="parameter"
11834>strength</CODE
11835>. Asymmetrical shapes require
11836 smaller <CODE
11837CLASS="parameter"
11838>damping</CODE
11839>. A
11840 <CODE
11841CLASS="parameter"
11842>strength</CODE
11843> of 0.0 cancels the look at.</P
11844></DIV
11845><DIV
11846CLASS="section"
11847><HR><H2
11848CLASS="section"
11849><A
11850NAME="AEN2773"
11851>A.157. llLoopSound</A
11852></H2
11853><DIV
11854CLASS="funcsynopsis"
11855><P
11856></P
11857><A
11858NAME="AEN2775"
11859></A
11860><P
11861><CODE
11862><CODE
11863CLASS="FUNCDEF"
11864>llLoopSound</CODE
11865>(string sound, float volume);</CODE
11866></P
11867><P
11868></P
11869></DIV
11870><P
11871>Similar to <A
11872HREF="#AEN3184"
11873>llPlaySound</A
11874>, this function plays
11875 a sound attached to an object, but will continuously loop that
11876 sound until <A
11877HREF="#AEN4620"
11878>llStopSound</A
11879> or
11880 <A
11881HREF="#AEN3184"
11882>llPlaySound</A
11883> is called. Only
11884 one sound may be attached to an object at a time. A second call to
11885 llLoopSound with the same key will not restart the sound, but the
11886 new volume will be used. This allows control over the volume of
11887 already playing sounds. Setting the <CODE
11888CLASS="parameter"
11889>volume</CODE
11890>
11891 to 0 is not the same as calling <A
11892HREF="#AEN4620"
11893>llStopSound</A
11894>; a sound with 0
11895 volume will continue to loop. To restart the sound from the
11896 beginning, call <A
11897HREF="#AEN4620"
11898>llStopSound</A
11899>
11900 before calling llLoopSound again.</P
11901></DIV
11902><DIV
11903CLASS="section"
11904><HR><H2
11905CLASS="section"
11906><A
11907NAME="AEN2790"
11908>A.158. llLoopSoundMaster</A
11909></H2
11910><DIV
11911CLASS="funcsynopsis"
11912><P
11913></P
11914><A
11915NAME="AEN2792"
11916></A
11917><P
11918><CODE
11919><CODE
11920CLASS="FUNCDEF"
11921>llLoopSoundMaster</CODE
11922>(string sound, float volume);</CODE
11923></P
11924><P
11925></P
11926></DIV
11927><P
11928>Behaviour is identical to <A
11929HREF="#AEN2773"
11930>llLoopSound</A
11931>, with the addition of
11932 marking the source as a "Sync Master", causing "Slave" sounds to
11933 sync to it. If there are multiple masters within a viewer's
11934 interest area, the most audible one (a function of both distance
11935 and volume) will win out as the master. The use of multiple
11936 masters within a small area is unlikely to produce the desired
11937 effect.</P
11938></DIV
11939><DIV
11940CLASS="section"
11941><HR><H2
11942CLASS="section"
11943><A
11944NAME="AEN2802"
11945>A.159. llLoopSoundSlave</A
11946></H2
11947><DIV
11948CLASS="funcsynopsis"
11949><P
11950></P
11951><A
11952NAME="AEN2804"
11953></A
11954><P
11955><CODE
11956><CODE
11957CLASS="FUNCDEF"
11958>llLoopSoundSlave</CODE
11959>(string sound, float volume);</CODE
11960></P
11961><P
11962></P
11963></DIV
11964><P
11965>Behaviour is identical to <A
11966HREF="#AEN2773"
11967>llLoopSound</A
11968>, unless there is a
11969 "Sync Master" present. If a Sync Master is already playing the
11970 Slave sound will begin playing from the same point the master is
11971 in its loop synchronizing the loop points of both sounds. If a
11972 Sync Master is started when the Slave is already playing, the
11973 Slave will skip to the correct position to sync with the
11974 Master.</P
11975></DIV
11976><DIV
11977CLASS="section"
11978><HR><H2
11979CLASS="section"
11980><A
11981NAME="AEN2814"
11982>A.160. llMakeExplosion</A
11983></H2
11984><DIV
11985CLASS="funcsynopsis"
11986><P
11987></P
11988><A
11989NAME="AEN2816"
11990></A
11991><P
11992><CODE
11993><CODE
11994CLASS="FUNCDEF"
11995>llMakeExplosion</CODE
11996>(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);</CODE
11997></P
11998><P
11999></P
12000></DIV
12001><P
12002>Make a round explosion of particles using
12003 <CODE
12004CLASS="parameter"
12005>texture</CODE
12006> from the object's inventory.</P
12007></DIV
12008><DIV
12009CLASS="section"
12010><HR><H2
12011CLASS="section"
12012><A
12013NAME="AEN2836"
12014>A.161. llMakeFire</A
12015></H2
12016><DIV
12017CLASS="funcsynopsis"
12018><P
12019></P
12020><A
12021NAME="AEN2838"
12022></A
12023><P
12024><CODE
12025><CODE
12026CLASS="FUNCDEF"
12027>llMakeFire</CODE
12028>(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);</CODE
12029></P
12030><P
12031></P
12032></DIV
12033><P
12034>Make fire particles using <CODE
12035CLASS="parameter"
12036>texture</CODE
12037>
12038 from the object's inventory.</P
12039></DIV
12040><DIV
12041CLASS="section"
12042><HR><H2
12043CLASS="section"
12044><A
12045NAME="AEN2858"
12046>A.162. llMakeFountain</A
12047></H2
12048><DIV
12049CLASS="funcsynopsis"
12050><P
12051></P
12052><A
12053NAME="AEN2860"
12054></A
12055><P
12056><CODE
12057><CODE
12058CLASS="FUNCDEF"
12059>llMakeFountain</CODE
12060>(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);</CODE
12061></P
12062><P
12063></P
12064></DIV
12065><P
12066>Make a fountain of particles using
12067 <CODE
12068CLASS="parameter"
12069>texture</CODE
12070> from the object's inventory.</P
12071></DIV
12072><DIV
12073CLASS="section"
12074><HR><H2
12075CLASS="section"
12076><A
12077NAME="AEN2880"
12078>A.163. llMakeSmoke</A
12079></H2
12080><DIV
12081CLASS="funcsynopsis"
12082><P
12083></P
12084><A
12085NAME="AEN2882"
12086></A
12087><P
12088><CODE
12089><CODE
12090CLASS="FUNCDEF"
12091>llMakeSmoke</CODE
12092>(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);</CODE
12093></P
12094><P
12095></P
12096></DIV
12097><P
12098>Make smoky particles using <CODE
12099CLASS="parameter"
12100>texture</CODE
12101>
12102 from the object's inventory.</P
12103></DIV
12104><DIV
12105CLASS="section"
12106><HR><H2
12107CLASS="section"
12108><A
12109NAME="AEN2902"
12110>A.164. llMD5String</A
12111></H2
12112><DIV
12113CLASS="funcsynopsis"
12114><P
12115></P
12116><A
12117NAME="AEN2904"
12118></A
12119><P
12120><CODE
12121><CODE
12122CLASS="FUNCDEF"
12123>string llMD5String</CODE
12124>(string str, integer nonce);</CODE
12125></P
12126><P
12127></P
12128></DIV
12129><P
12130>Performs a RSA Data Security, Inc. MD5 Message-Digest
12131 Algorithm on <CODE
12132CLASS="parameter"
12133>str</CODE
12134> with
12135 <CODE
12136CLASS="parameter"
12137>nonce</CODE
12138>. The function returns the digest as a
12139 32 character hex string. The digest is computed on the string in
12140 the following format:
12141<DIV
12142CLASS="informalexample"
12143><P
12144></P
12145><A
12146NAME="AEN2915"
12147></A
12148><PRE
12149CLASS="programlisting"
12150>&#13;<CODE
12151CLASS="parameter"
12152>str</CODE
12153> + ":" + (string)<CODE
12154CLASS="parameter"
12155>nonce</CODE
12156>
12157</PRE
12158><P
12159></P
12160></DIV
12161>
12162 </P
12163></DIV
12164><DIV
12165CLASS="section"
12166><HR><H2
12167CLASS="section"
12168><A
12169NAME="AEN2919"
12170>A.165. llMessageLinked</A
12171></H2
12172><DIV
12173CLASS="funcsynopsis"
12174><P
12175></P
12176><A
12177NAME="AEN2921"
12178></A
12179><P
12180><CODE
12181><CODE
12182CLASS="FUNCDEF"
12183>llMessageLinked</CODE
12184>(integer linknum, integer num, string str, key id);</CODE
12185></P
12186><P
12187></P
12188></DIV
12189><P
12190>Sends <CODE
12191CLASS="parameter"
12192>num</CODE
12193>,
12194 <CODE
12195CLASS="parameter"
12196>str</CODE
12197>, and <CODE
12198CLASS="parameter"
12199>id</CODE
12200> to
12201 members of the link set. The <CODE
12202CLASS="parameter"
12203>linknum</CODE
12204>
12205 parameter is either the linked number available through <A
12206HREF="#AEN1867"
12207>llGetLinkNumber</A
12208> or a <A
12209HREF="#AEN5616"
12210>link constant</A
12211>.</P
12212></DIV
12213><DIV
12214CLASS="section"
12215><HR><H2
12216CLASS="section"
12217><A
12218NAME="AEN2940"
12219>A.166. llMinEventDelay</A
12220></H2
12221><DIV
12222CLASS="funcsynopsis"
12223><P
12224></P
12225><A
12226NAME="AEN2942"
12227></A
12228><P
12229><CODE
12230><CODE
12231CLASS="FUNCDEF"
12232>llMinEventDelay</CODE
12233>(float delay);</CODE
12234></P
12235><P
12236></P
12237></DIV
12238><P
12239>Set the minimum time between events being handled.</P
12240></DIV
12241><DIV
12242CLASS="section"
12243><HR><H2
12244CLASS="section"
12245><A
12246NAME="AEN2949"
12247>A.167. llModifyLand</A
12248></H2
12249><DIV
12250CLASS="funcsynopsis"
12251><P
12252></P
12253><A
12254NAME="AEN2951"
12255></A
12256><P
12257><CODE
12258><CODE
12259CLASS="FUNCDEF"
12260>llModifyLand</CODE
12261>(integer action, integer size);</CODE
12262></P
12263><P
12264></P
12265></DIV
12266><P
12267>Modify land with <CODE
12268CLASS="parameter"
12269>action</CODE
12270> on
12271 <CODE
12272CLASS="parameter"
12273>size</CODE
12274> area. The parameters can be chosen
12275 from the <A
12276HREF="#AEN5574"
12277>land constants</A
12278>.</P
12279></DIV
12280><DIV
12281CLASS="section"
12282><HR><H2
12283CLASS="section"
12284><A
12285NAME="AEN2963"
12286>A.168. llModPow</A
12287></H2
12288><DIV
12289CLASS="funcsynopsis"
12290><P
12291></P
12292><A
12293NAME="AEN2965"
12294></A
12295><P
12296><CODE
12297><CODE
12298CLASS="FUNCDEF"
12299>integer llModPow</CODE
12300>(integer a, integer b, integer c);</CODE
12301></P
12302><P
12303></P
12304></DIV
12305><P
12306>Raise <CODE
12307CLASS="parameter"
12308>a</CODE
12309> to the <CODE
12310CLASS="parameter"
12311>b</CODE
12312> power, modulo <CODE
12313CLASS="parameter"
12314>c</CODE
12315>.
12316 <CODE
12317CLASS="parameter"
12318>b</CODE
12319> is capped at 0xFFFF (16 bits).</P
12320></DIV
12321><DIV
12322CLASS="section"
12323><HR><H2
12324CLASS="section"
12325><A
12326NAME="AEN2980"
12327>A.169. llMoveToTarget</A
12328></H2
12329><DIV
12330CLASS="funcsynopsis"
12331><P
12332></P
12333><A
12334NAME="AEN2982"
12335></A
12336><P
12337><CODE
12338><CODE
12339CLASS="FUNCDEF"
12340>llMoveToTarget</CODE
12341>(vector target, float tau);</CODE
12342></P
12343><P
12344></P
12345></DIV
12346><P
12347>Critically damp to position <CODE
12348CLASS="parameter"
12349>target</CODE
12350> in
12351 <CODE
12352CLASS="parameter"
12353>tau</CODE
12354> seconds if the script is physical. Good
12355 <CODE
12356CLASS="parameter"
12357>tau</CODE
12358> values are greater than 0.2. A
12359 <CODE
12360CLASS="parameter"
12361>tau</CODE
12362> of 0.0 stops the critical
12363 damping.</P
12364></DIV
12365><DIV
12366CLASS="section"
12367><HR><H2
12368CLASS="section"
12369><A
12370NAME="AEN2995"
12371>A.170. llOffsetTexture</A
12372></H2
12373><DIV
12374CLASS="funcsynopsis"
12375><P
12376></P
12377><A
12378NAME="AEN2997"
12379></A
12380><P
12381><CODE
12382><CODE
12383CLASS="FUNCDEF"
12384>llOffsetTexture</CODE
12385>(float offset_s, float offset_t, integer face);</CODE
12386></P
12387><P
12388></P
12389></DIV
12390><P
12391>Sets the texture s and t offsets of
12392 <CODE
12393CLASS="parameter"
12394>face</CODE
12395>. If <CODE
12396CLASS="parameter"
12397>face</CODE
12398> is
12399 <A
12400HREF="#AEN6073"
12401>ALL_SIDES</A
12402> this
12403 function sets the texture offsets for all faces.</P
12404></DIV
12405><DIV
12406CLASS="section"
12407><HR><H2
12408CLASS="section"
12409><A
12410NAME="AEN3011"
12411>A.171. llOpenRemoteDataChannel</A
12412></H2
12413><DIV
12414CLASS="funcsynopsis"
12415><P
12416></P
12417><A
12418NAME="AEN3013"
12419></A
12420><P
12421><CODE
12422><CODE
12423CLASS="FUNCDEF"
12424>llOpenRemoteDataChannel</CODE
12425>(void);</CODE
12426></P
12427><P
12428></P
12429></DIV
12430><P
12431>Creates a channel to listen for XML-RPC calls.
12432 Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel id once it is available.</P
12433></DIV
12434><DIV
12435CLASS="section"
12436><HR><H2
12437CLASS="section"
12438><A
12439NAME="AEN3019"
12440>A.172. llOverMyLand</A
12441></H2
12442><DIV
12443CLASS="funcsynopsis"
12444><P
12445></P
12446><A
12447NAME="AEN3021"
12448></A
12449><P
12450><CODE
12451><CODE
12452CLASS="FUNCDEF"
12453>integer llOverMyLand</CODE
12454>(key id);</CODE
12455></P
12456><P
12457></P
12458></DIV
12459><P
12460>Returns <A
12461HREF="#AEN5295"
12462>TRUE</A
12463> if
12464 <CODE
12465CLASS="parameter"
12466>id</CODE
12467> is over land owned by the object owner,
12468 <A
12469HREF="#AEN5295"
12470>FALSE</A
12471> otherwise.</P
12472></DIV
12473><DIV
12474CLASS="section"
12475><HR><H2
12476CLASS="section"
12477><A
12478NAME="AEN3031"
12479>A.173. llParcelMediaCommandList</A
12480></H2
12481><DIV
12482CLASS="funcsynopsis"
12483><P
12484></P
12485><A
12486NAME="AEN3033"
12487></A
12488><P
12489><CODE
12490><CODE
12491CLASS="FUNCDEF"
12492>llParcelMediaCommandList</CODE
12493>(list command_list);</CODE
12494></P
12495><P
12496></P
12497></DIV
12498><P
12499>Controls the playback of movies and other multimedia resources on a land parcel.
12500 <CODE
12501CLASS="parameter"
12502>command</CODE
12503> can be one of
12504 <A
12505HREF="#AEN6459"
12506>PARCEL_MEDIA_COMMAND_STOP</A
12507>,
12508 <A
12509HREF="#AEN6459"
12510>PARCEL_MEDIA_COMMAND_PAUSE</A
12511>,
12512 <A
12513HREF="#AEN6459"
12514>PARCEL_MEDIA_COMMAND_PLAY</A
12515>,
12516 <A
12517HREF="#AEN6459"
12518>PARCEL_MEDIA_COMMAND_LOOP</A
12519>,
12520 <A
12521HREF="#AEN6459"
12522>PARCEL_MEDIA_COMMAND_TEXTURE</A
12523>,
12524 <A
12525HREF="#AEN6459"
12526>PARCEL_MEDIA_COMMAND_URL</A
12527>,
12528 <A
12529HREF="#AEN6459"
12530>PARCEL_MEDIA_COMMAND_TYPE</A
12531>,
12532 <A
12533HREF="#AEN6459"
12534>PARCEL_MEDIA_COMMAND_DESC</A
12535>,
12536 <A
12537HREF="#AEN6459"
12538>PARCEL_MEDIA_COMMAND_SIZE</A
12539>,
12540 <A
12541HREF="#AEN6459"
12542>PARCEL_MEDIA_COMMAND_TIME</A
12543>,
12544 <A
12545HREF="#AEN6459"
12546>PARCEL_MEDIA_COMMAND_AGENT</A
12547>,
12548 <A
12549HREF="#AEN6459"
12550>PARCEL_MEDIA_COMMAND_UNLOAD</A
12551>, or
12552 <A
12553HREF="#AEN6459"
12554>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</A
12555>.
12556 </P
12557><P
12558>You are allowed one movie (or "media" resource) per land parcel.
12559 The movie will be played by replacing a texture on an object with the
12560 movie. Users will only see the movie when they are standing on your
12561 land parcel. Otherwise they will see the static texture.</P
12562><P
12563>Most of the QuickTime media formats are supported including:
12564 <P
12565></P
12566><UL
12567><LI
12568><P
12569>QuickTime movies (.mov)</P
12570></LI
12571><LI
12572><P
12573>Streamable stored QuickTime movies (.mov)</P
12574></LI
12575><LI
12576><P
12577>Real time QuickTime streams (rtsp://)</P
12578></LI
12579><LI
12580><P
12581>MPEG4 movies (.mp4, .mpeg4) (simple profile only)</P
12582></LI
12583><LI
12584><P
12585>QuickTime VR scenes and objects (.mov)</P
12586></LI
12587><LI
12588><P
12589>Flash movies (.swf) (only non-interative, version 5 and earlier</P
12590></LI
12591><LI
12592><P
12593>and many others from http://www.apple.com/quicktime/products/qt/specifications.html</P
12594></LI
12595></UL
12596>
12597 A good rule of thumb is if it plays in the QuickTime Media Player, it will play in Second Life.
12598 </P
12599><P
12600>You can set up a movie for playback as follows:
12601 <P
12602></P
12603><UL
12604><LI
12605><P
12606>First, select a texture from your inventory to be the static texture. It should not be a common texture -- a test pattern would be better than the default plywood.</P
12607></LI
12608><LI
12609><P
12610>Apply that texture to an object.</P
12611></LI
12612><LI
12613><P
12614>Right click on your land and select "About Land..."</P
12615></LI
12616><LI
12617><P
12618>Under "Options" use the GUI to select the static texture.</P
12619></LI
12620><LI
12621><P
12622>Enter the URL of your movie or media stream.</P
12623></LI
12624><LI
12625><P
12626>Create objects you want to click on for PLAY, STOP, PAUSE and LOOP (play forever)</P
12627></LI
12628><LI
12629><P
12630>Attach the following script (or similar) to each.</P
12631></LI
12632></UL
12633>
12634<DIV
12635CLASS="informalexample"
12636><P
12637></P
12638><A
12639NAME="AEN3087"
12640></A
12641><PRE
12642CLASS="programlisting"
12643>&#13;default
12644{
12645 touch_start ( integer total_number )
12646 {
12647 // This will play the current movie for all agents in the parcel.
12648 llParcelMediaCommandList( [PARCEL_MEDIA_COMMAND_LOOP] );
12649 }
12650}
12651</PRE
12652><P
12653></P
12654></DIV
12655>
12656Or a more advanced example:
12657<DIV
12658CLASS="informalexample"
12659><P
12660></P
12661><A
12662NAME="AEN3089"
12663></A
12664><PRE
12665CLASS="programlisting"
12666>&#13;float START_TIME = 30.0;
12667float RUN_LENGTH = 10.0;
12668
12669default
12670{
12671 state_entry()
12672 {
12673 llParcelMediaCommandList( [
12674 PARCEL_MEDIA_COMMAND_URL, "http://enter_your.url/here",
12675 PARCEL_MEDIA_COMMAND_TEXTURE, (key) llGetTexture(0) ] );
12676 }
12677
12678 touch_start(integer num_detected)
12679 {
12680 llParcelMediaCommandList( [
12681 PARCEL_MEDIA_COMMAND_AGENT, llDetectedKey(0),
12682 PARCEL_MEDIA_COMMAND_TIME, START_TIME,
12683 PARCEL_MEDIA_COMMAND_PLAY ] );
12684 list Info = llParcelMediaQuery([PARCEL_MEDIA_COMMAND_URL, PARCEL_MEDIA_COMMAND_TEXTURE]);
12685 llSay(0, "Playing '" + llList2String(Info, 0) + "' on texture '" + (string)llList2Key(Info, 1) + "' for agent " + llDetectedName(0));
12686 llSetTimerEvent(RUN_LENGTH);
12687 }
12688
12689 timer()
12690 {
12691 llParcelMediaCommandList( [ PARCEL_MEDIA_COMMAND_STOP ] );
12692 llSetTimerEvent(0.0);
12693 }
12694}
12695</PRE
12696><P
12697></P
12698></DIV
12699>
12700
12701
12702 </P
12703></DIV
12704><DIV
12705CLASS="section"
12706><HR><H2
12707CLASS="section"
12708><A
12709NAME="AEN3091"
12710>A.174. llParcelMediaQuery</A
12711></H2
12712><DIV
12713CLASS="funcsynopsis"
12714><P
12715></P
12716><A
12717NAME="AEN3093"
12718></A
12719><P
12720><CODE
12721><CODE
12722CLASS="FUNCDEF"
12723>list llParcelMediaQuery</CODE
12724>(list query_list);</CODE
12725></P
12726><P
12727></P
12728></DIV
12729><P
12730>Controls the playback of movies and other multimedia resources on a land parcel.
12731 <CODE
12732CLASS="parameter"
12733>command</CODE
12734> can be one of
12735 <A
12736HREF="#AEN6459"
12737>PARCEL_MEDIA_COMMAND_TEXTURE</A
12738> or
12739 <A
12740HREF="#AEN6459"
12741>PARCEL_MEDIA_COMMAND_URL</A
12742>.
12743 </P
12744><P
12745>This allows you to query the texture or url for media on the parcel.
12746 See <A
12747HREF="#AEN3031"
12748>llParcelMediaCommandList</A
12749> for an example
12750 of usage.</P
12751></DIV
12752><DIV
12753CLASS="section"
12754><HR><H2
12755CLASS="section"
12756><A
12757NAME="AEN3105"
12758>A.175. llParseString2List</A
12759></H2
12760><DIV
12761CLASS="funcsynopsis"
12762><P
12763></P
12764><A
12765NAME="AEN3107"
12766></A
12767><P
12768><CODE
12769><CODE
12770CLASS="FUNCDEF"
12771>list llParseString2List</CODE
12772>(string src, list separators, list spacers);</CODE
12773></P
12774><P
12775></P
12776></DIV
12777><P
12778>Breaks <CODE
12779CLASS="parameter"
12780>src</CODE
12781> into a list, discarding
12782 anything in <CODE
12783CLASS="parameter"
12784>separators</CODE
12785>, keeping any entry
12786 in <CODE
12787CLASS="parameter"
12788>spacers</CODE
12789>. The
12790 <CODE
12791CLASS="parameter"
12792>separators</CODE
12793> and
12794 <CODE
12795CLASS="parameter"
12796>spacers</CODE
12797> must be lists of strings with a
12798 maximum of 8 entries each. So, if you had made the call:
12799<DIV
12800CLASS="informalexample"
12801><P
12802></P
12803><A
12804NAME="AEN3123"
12805></A
12806><PRE
12807CLASS="programlisting"
12808>&#13;llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);
12809</PRE
12810><P
12811></P
12812></DIV
12813>
12814 You would get the list:
12815<DIV
12816CLASS="informalexample"
12817><P
12818></P
12819><A
12820NAME="AEN3125"
12821></A
12822><PRE
12823CLASS="programlisting"
12824>&#13;["Parse", "now", "I", "dare", ":", "you", "to"]
12825</PRE
12826><P
12827></P
12828></DIV
12829></P
12830></DIV
12831><DIV
12832CLASS="section"
12833><HR><H2
12834CLASS="section"
12835><A
12836NAME="AEN3127"
12837>A.176. llParseStringKeepNulls</A
12838></H2
12839><DIV
12840CLASS="funcsynopsis"
12841><P
12842></P
12843><A
12844NAME="AEN3129"
12845></A
12846><P
12847><CODE
12848><CODE
12849CLASS="FUNCDEF"
12850>list llParseStringKeepNulls</CODE
12851>(string src, list separators, list spacers);</CODE
12852></P
12853><P
12854></P
12855></DIV
12856><P
12857>Breaks <CODE
12858CLASS="parameter"
12859>src</CODE
12860> into a list, discarding
12861 anything in <CODE
12862CLASS="parameter"
12863>separators</CODE
12864>, keeping any entry
12865 in <CODE
12866CLASS="parameter"
12867>spacers</CODE
12868>. Any resulting null values
12869 are kept. The <CODE
12870CLASS="parameter"
12871>separators</CODE
12872> and
12873 <CODE
12874CLASS="parameter"
12875>spacers</CODE
12876> must be lists of strings with a
12877 maximum of 8 entries each. So, if you had made the call:
12878<DIV
12879CLASS="informalexample"
12880><P
12881></P
12882><A
12883NAME="AEN3145"
12884></A
12885><PRE
12886CLASS="programlisting"
12887>&#13;llParseString2List("!Parsethisthisnow I dare::you to.", ["this", "!", " "], [":"]);
12888</PRE
12889><P
12890></P
12891></DIV
12892>
12893 You would get the list:
12894<DIV
12895CLASS="informalexample"
12896><P
12897></P
12898><A
12899NAME="AEN3147"
12900></A
12901><PRE
12902CLASS="programlisting"
12903>&#13;[NULL, "Parse", NULL, "now", "I", "dare", ":", NULL, ":", "you", "to"]
12904</PRE
12905><P
12906></P
12907></DIV
12908></P
12909></DIV
12910><DIV
12911CLASS="section"
12912><HR><H2
12913CLASS="section"
12914><A
12915NAME="AEN3149"
12916>A.177. llParticleSystem</A
12917></H2
12918><DIV
12919CLASS="funcsynopsis"
12920><P
12921></P
12922><A
12923NAME="AEN3151"
12924></A
12925><P
12926><CODE
12927><CODE
12928CLASS="FUNCDEF"
12929>llParticleSystem</CODE
12930>(list parameters);</CODE
12931></P
12932><P
12933></P
12934></DIV
12935><P
12936>Makes a particle system based on the parameter list. The
12937 <CODE
12938CLASS="parameter"
12939>parameters</CODE
12940> are specified as an ordered list
12941 of parameter and value. Valid parameters and their expected values
12942 can be found in the <A
12943HREF="#AEN5851"
12944>particle system
12945 constants</A
12946>. Here is a simple example:
12947<DIV
12948CLASS="informalexample"
12949><P
12950></P
12951><A
12952NAME="AEN3160"
12953></A
12954><PRE
12955CLASS="programlisting"
12956>&#13;llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK,
12957 PSYS_PART_START_COLOR, &#60;1,0,0&#62;,
12958 PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);
12959</PRE
12960><P
12961></P
12962></DIV
12963></P
12964></DIV
12965><DIV
12966CLASS="section"
12967><HR><H2
12968CLASS="section"
12969><A
12970NAME="AEN3162"
12971>A.178. llPassCollisions</A
12972></H2
12973><DIV
12974CLASS="funcsynopsis"
12975><P
12976></P
12977><A
12978NAME="AEN3164"
12979></A
12980><P
12981><CODE
12982><CODE
12983CLASS="FUNCDEF"
12984>llPassCollisions</CODE
12985>(integer pass);</CODE
12986></P
12987><P
12988></P
12989></DIV
12990><P
12991>If <CODE
12992CLASS="parameter"
12993>pass</CODE
12994> is <A
12995HREF="#AEN5295"
12996>TRUE</A
12997>, land and object collisions
12998 are passed from children on to parents.</P
12999></DIV
13000><DIV
13001CLASS="section"
13002><HR><H2
13003CLASS="section"
13004><A
13005NAME="AEN3173"
13006>A.179. llPassTouches</A
13007></H2
13008><DIV
13009CLASS="funcsynopsis"
13010><P
13011></P
13012><A
13013NAME="AEN3175"
13014></A
13015><P
13016><CODE
13017><CODE
13018CLASS="FUNCDEF"
13019>llPassTouches</CODE
13020>(integer pass);</CODE
13021></P
13022><P
13023></P
13024></DIV
13025><P
13026>If <CODE
13027CLASS="parameter"
13028>pass</CODE
13029> is <A
13030HREF="#AEN5295"
13031>TRUE</A
13032>, touches are passed from
13033 children on to parents.</P
13034></DIV
13035><DIV
13036CLASS="section"
13037><HR><H2
13038CLASS="section"
13039><A
13040NAME="AEN3184"
13041>A.180. llPlaySound</A
13042></H2
13043><DIV
13044CLASS="funcsynopsis"
13045><P
13046></P
13047><A
13048NAME="AEN3186"
13049></A
13050><P
13051><CODE
13052><CODE
13053CLASS="FUNCDEF"
13054>llPlaySound</CODE
13055>(string sound, float volume);</CODE
13056></P
13057><P
13058></P
13059></DIV
13060><P
13061>Plays a sound once. The sound will be attached to an object
13062 and follow object movement. Only one sound may be attached to an
13063 object at a time, and attaching a new sound or calling <A
13064HREF="#AEN4620"
13065>llStopSound</A
13066> will stop the
13067 previously attached sound. A second call to llPlaySound with the
13068 same <CODE
13069CLASS="parameter"
13070>sound</CODE
13071> will not restart the sound, but
13072 the new volume will be used, which allows control over the volume
13073 of already playing sounds. To restart the sound from the
13074 beginning, call <A
13075HREF="#AEN4620"
13076>llStopSound</A
13077>
13078 before calling llPlaySound again.</P
13079></DIV
13080><DIV
13081CLASS="section"
13082><HR><H2
13083CLASS="section"
13084><A
13085NAME="AEN3198"
13086>A.181. llPlaySoundSlave</A
13087></H2
13088><DIV
13089CLASS="funcsynopsis"
13090><P
13091></P
13092><A
13093NAME="AEN3200"
13094></A
13095><P
13096><CODE
13097><CODE
13098CLASS="FUNCDEF"
13099>llPlaySoundSlave</CODE
13100>(string sound, float volume);</CODE
13101></P
13102><P
13103></P
13104></DIV
13105><P
13106>Behaviour is identical to llPlaySound, unless there is a
13107 "Sync Master" present. If a Sync Master is already
13108 playing the Slave sound will not be played until the Master hits
13109 its loop point and returns to the beginning. llPlaySoundSlave will
13110 play the sound exactly once; if it is desired to have the sound
13111 play every time the Master loops, either use <A
13112HREF="#AEN2802"
13113>llLoopSoundSlave</A
13114> with extra
13115 silence padded on the end of the sound or ensure that
13116 llPlaySoundSlave is called at least once per loop of the
13117 Master.</P
13118></DIV
13119><DIV
13120CLASS="section"
13121><HR><H2
13122CLASS="section"
13123><A
13124NAME="AEN3210"
13125>A.182. llPointAt</A
13126></H2
13127><DIV
13128CLASS="funcsynopsis"
13129><P
13130></P
13131><A
13132NAME="AEN3212"
13133></A
13134><P
13135><CODE
13136><CODE
13137CLASS="FUNCDEF"
13138>llPointAt</CODE
13139>(vector pos);</CODE
13140></P
13141><P
13142></P
13143></DIV
13144><P
13145>Make avatar that owns object point at
13146 <CODE
13147CLASS="parameter"
13148>pos</CODE
13149>.</P
13150></DIV
13151><DIV
13152CLASS="section"
13153><HR><H2
13154CLASS="section"
13155><A
13156NAME="AEN3220"
13157>A.183. llPow</A
13158></H2
13159><DIV
13160CLASS="funcsynopsis"
13161><P
13162></P
13163><A
13164NAME="AEN3222"
13165></A
13166><P
13167><CODE
13168><CODE
13169CLASS="FUNCDEF"
13170>llPow</CODE
13171>(float base, float exp);</CODE
13172></P
13173><P
13174></P
13175></DIV
13176><P
13177>Returns <CODE
13178CLASS="parameter"
13179>base</CODE
13180> raised to the
13181 <CODE
13182CLASS="parameter"
13183>exp</CODE
13184>.</P
13185></DIV
13186><DIV
13187CLASS="section"
13188><HR><H2
13189CLASS="section"
13190><A
13191NAME="AEN3233"
13192>A.184. llPreloadSound</A
13193></H2
13194><DIV
13195CLASS="funcsynopsis"
13196><P
13197></P
13198><A
13199NAME="AEN3235"
13200></A
13201><P
13202><CODE
13203><CODE
13204CLASS="FUNCDEF"
13205>llPreloadSound</CODE
13206>(string sound);</CODE
13207></P
13208><P
13209></P
13210></DIV
13211><P
13212>Preloads <CODE
13213CLASS="parameter"
13214>sound</CODE
13215> from object inventory
13216 on nearby viewers.</P
13217></DIV
13218><DIV
13219CLASS="section"
13220><HR><H2
13221CLASS="section"
13222><A
13223NAME="AEN3243"
13224>A.185. llPushObject</A
13225></H2
13226><DIV
13227CLASS="funcsynopsis"
13228><P
13229></P
13230><A
13231NAME="AEN3245"
13232></A
13233><P
13234><CODE
13235><CODE
13236CLASS="FUNCDEF"
13237>llPushObject</CODE
13238>(key id, vector impulse, vector angular_impulse, integer local);</CODE
13239></P
13240><P
13241></P
13242></DIV
13243><P
13244>Applies <CODE
13245CLASS="parameter"
13246>impulse</CODE
13247> and
13248 <CODE
13249CLASS="parameter"
13250>angular_impulse</CODE
13251> to object
13252 <CODE
13253CLASS="parameter"
13254>id</CODE
13255>.</P
13256></DIV
13257><DIV
13258CLASS="section"
13259><HR><H2
13260CLASS="section"
13261><A
13262NAME="AEN3261"
13263>A.186. llReleaseControls</A
13264></H2
13265><DIV
13266CLASS="funcsynopsis"
13267><P
13268></P
13269><A
13270NAME="AEN3263"
13271></A
13272><P
13273><CODE
13274><CODE
13275CLASS="FUNCDEF"
13276>llReleaseControls</CODE
13277>(key avatar);</CODE
13278></P
13279><P
13280></P
13281></DIV
13282><P
13283>Stop taking inputs from <CODE
13284CLASS="parameter"
13285>avatar</CODE
13286>.</P
13287></DIV
13288><DIV
13289CLASS="section"
13290><HR><H2
13291CLASS="section"
13292><A
13293NAME="AEN3271"
13294>A.187. llRemoteDataReply</A
13295></H2
13296><DIV
13297CLASS="funcsynopsis"
13298><P
13299></P
13300><A
13301NAME="AEN3273"
13302></A
13303><P
13304><CODE
13305><CODE
13306CLASS="FUNCDEF"
13307>llRemoteDataReply</CODE
13308>(key channel, key message_id, string sdata);</CODE
13309></P
13310><P
13311></P
13312></DIV
13313><P
13314>Send an XML-RPC reply to message_id on channel with payload of string sdata.</P
13315></DIV
13316><DIV
13317CLASS="section"
13318><HR><H2
13319CLASS="section"
13320><A
13321NAME="AEN3284"
13322>A.188. llRemoteDataSetRegion</A
13323></H2
13324><DIV
13325CLASS="funcsynopsis"
13326><P
13327></P
13328><A
13329NAME="AEN3286"
13330></A
13331><P
13332><CODE
13333><CODE
13334CLASS="FUNCDEF"
13335>llRemoteDataSetRegion</CODE
13336>(void);</CODE
13337></P
13338><P
13339></P
13340></DIV
13341><P
13342>If an object using remote data channels changes regions, you
13343 must call this function to reregister the remote data
13344 channels. You do not need to make this call if your object does
13345 not change regions or use remote data channels.</P
13346></DIV
13347><DIV
13348CLASS="section"
13349><HR><H2
13350CLASS="section"
13351><A
13352NAME="AEN3292"
13353>A.189. llRemoteLoadScript</A
13354></H2
13355><DIV
13356CLASS="funcsynopsis"
13357><P
13358></P
13359><A
13360NAME="AEN3294"
13361></A
13362><P
13363><CODE
13364><CODE
13365CLASS="FUNCDEF"
13366>llRemoteLoadScript</CODE
13367>(void);</CODE
13368></P
13369><P
13370></P
13371></DIV
13372><P
13373>Deprecated. Please use llRemoteLoadScriptPin instead.</P
13374></DIV
13375><DIV
13376CLASS="section"
13377><HR><H2
13378CLASS="section"
13379><A
13380NAME="AEN3300"
13381>A.190. llRemoteLoadScriptPin</A
13382></H2
13383><DIV
13384CLASS="funcsynopsis"
13385><P
13386></P
13387><A
13388NAME="AEN3302"
13389></A
13390><P
13391><CODE
13392><CODE
13393CLASS="FUNCDEF"
13394>llRemoteLoadScriptPin</CODE
13395>(key target, string name, integer pin, integer running, integer param);</CODE
13396></P
13397><P
13398></P
13399></DIV
13400><P
13401>If the owner of the object this script is attached can modify <CODE
13402CLASS="parameter"
13403>target</CODE
13404>, it has the correct <CODE
13405CLASS="parameter"
13406>pin</CODE
13407> and the objects are in the same region, copy script <CODE
13408CLASS="parameter"
13409>name</CODE
13410> onto <CODE
13411CLASS="parameter"
13412>target</CODE
13413>, if <CODE
13414CLASS="parameter"
13415>running</CODE
13416> == TRUE, start the script with <CODE
13417CLASS="parameter"
13418>param</CODE
13419>. If <CODE
13420CLASS="parameter"
13421>name</CODE
13422> already exists on <CODE
13423CLASS="parameter"
13424>target</CODE
13425>, it is replaced.</P
13426></DIV
13427><DIV
13428CLASS="section"
13429><HR><H2
13430CLASS="section"
13431><A
13432NAME="AEN3325"
13433>A.191. llRemoveInventory</A
13434></H2
13435><DIV
13436CLASS="funcsynopsis"
13437><P
13438></P
13439><A
13440NAME="AEN3327"
13441></A
13442><P
13443><CODE
13444><CODE
13445CLASS="FUNCDEF"
13446>llRemoveInventory</CODE
13447>(string inventory);</CODE
13448></P
13449><P
13450></P
13451></DIV
13452><P
13453>Remove the name <CODE
13454CLASS="parameter"
13455>inventory</CODE
13456> item from
13457 the object inventory.</P
13458></DIV
13459><DIV
13460CLASS="section"
13461><HR><H2
13462CLASS="section"
13463><A
13464NAME="AEN3335"
13465>A.192. llRemoveVehicleFlags</A
13466></H2
13467><DIV
13468CLASS="funcsynopsis"
13469><P
13470></P
13471><A
13472NAME="AEN3337"
13473></A
13474><P
13475><CODE
13476><CODE
13477CLASS="FUNCDEF"
13478>llRemoveVehicleFlags</CODE
13479>(integer flags);</CODE
13480></P
13481><P
13482></P
13483></DIV
13484><P
13485>Sets the vehicle <CODE
13486CLASS="parameter"
13487>flags</CODE
13488> to
13489 FALSE. Valid parameters can be found in the <A
13490HREF="#AEN6231"
13491>vehicle flags constants</A
13492>
13493 section.</P
13494></DIV
13495><DIV
13496CLASS="section"
13497><HR><H2
13498CLASS="section"
13499><A
13500NAME="AEN3346"
13501>A.193. llRequestAgentData</A
13502></H2
13503><DIV
13504CLASS="funcsynopsis"
13505><P
13506></P
13507><A
13508NAME="AEN3348"
13509></A
13510><P
13511><CODE
13512><CODE
13513CLASS="FUNCDEF"
13514>key llRequestAgentData</CODE
13515>(key id, integer data);</CODE
13516></P
13517><P
13518></P
13519></DIV
13520><P
13521>This function requests data about agent
13522 <CODE
13523CLASS="parameter"
13524>id</CODE
13525>. If and when the information is
13526 collected, the <A
13527HREF="#AEN4997"
13528>dataserver</A
13529>
13530 event is called with the returned key returned from this function
13531 passed in the <CODE
13532CLASS="parameter"
13533>requested</CODE
13534> parameter. See the
13535 <A
13536HREF="#AEN6005"
13537>agent data constants</A
13538> for
13539 details about valid values of <CODE
13540CLASS="parameter"
13541>data</CODE
13542> and what
13543 each will return in the <A
13544HREF="#AEN4997"
13545>dataserver</A
13546> event.</P
13547></DIV
13548><DIV
13549CLASS="section"
13550><HR><H2
13551CLASS="section"
13552><A
13553NAME="AEN3363"
13554>A.194. llRequestInventoryData</A
13555></H2
13556><DIV
13557CLASS="funcsynopsis"
13558><P
13559></P
13560><A
13561NAME="AEN3365"
13562></A
13563><P
13564><CODE
13565><CODE
13566CLASS="FUNCDEF"
13567>key llRequestInventoryData</CODE
13568>(string name);</CODE
13569></P
13570><P
13571></P
13572></DIV
13573><P
13574>Requests data from object inventory item
13575 <CODE
13576CLASS="parameter"
13577>name</CODE
13578>. When data is available the <A
13579HREF="#AEN4997"
13580>dataserver</A
13581> event will be raised
13582 with the key returned from this function in the
13583 <CODE
13584CLASS="parameter"
13585>requested</CODE
13586> parameter. The only request
13587 currently implemented is to request data from landmarks, where the
13588 data returned is in the form "&#60;float, float,
13589 float&#62;" which can be cast to a vector. This position is in
13590 region local coordinates of the region the script call is made
13591 (possible even resulting in negative values). So, to
13592 convert this value into a global position, just add the result of
13593 llGetRegionCorner.</P
13594></DIV
13595><DIV
13596CLASS="section"
13597><HR><H2
13598CLASS="section"
13599><A
13600NAME="AEN3375"
13601>A.195. llRequestPermissions</A
13602></H2
13603><DIV
13604CLASS="funcsynopsis"
13605><P
13606></P
13607><A
13608NAME="AEN3377"
13609></A
13610><P
13611><CODE
13612><CODE
13613CLASS="FUNCDEF"
13614>integer llRequestPermissions</CODE
13615>(key avatar, integer perm);</CODE
13616></P
13617><P
13618></P
13619></DIV
13620><P
13621>Ask <CODE
13622CLASS="parameter"
13623>avatar</CODE
13624> to allow the script to do
13625 <CODE
13626CLASS="parameter"
13627>perm</CODE
13628>. The <CODE
13629CLASS="parameter"
13630>perm</CODE
13631>
13632 parameter should be a <A
13633HREF="#AEN5360"
13634>permission
13635 constant</A
13636>. Multiple permissions can be requested
13637 simultaneously by or'ing the constants together. Many of the
13638 permissions requests can only go to object owner. This call will
13639 not stop script execution - if the specified avatar grants the
13640 requested permissions, the <A
13641HREF="#AEN5171"
13642>run_time_permissions</A
13643>
13644 event will be called.</P
13645></DIV
13646><DIV
13647CLASS="section"
13648><HR><H2
13649CLASS="section"
13650><A
13651NAME="AEN3391"
13652>A.196. llRequestSimulatorData</A
13653></H2
13654><DIV
13655CLASS="funcsynopsis"
13656><P
13657></P
13658><A
13659NAME="AEN3393"
13660></A
13661><P
13662><CODE
13663><CODE
13664CLASS="FUNCDEF"
13665>key llRequestSimulatorData</CODE
13666>(string sim_name, integer data);</CODE
13667></P
13668><P
13669></P
13670></DIV
13671><P
13672>This function requests data about simulator
13673 <CODE
13674CLASS="parameter"
13675>sim_name</CODE
13676>. When the information is
13677 collected, the <A
13678HREF="#AEN4997"
13679>dataserver</A
13680>
13681 event is called with the returned key returned from this function
13682 passed in the <CODE
13683CLASS="parameter"
13684>requested</CODE
13685> parameter. See the
13686 <A
13687HREF="#AEN6086"
13688>simulator data constants</A
13689> for
13690 details about valid values of <CODE
13691CLASS="parameter"
13692>data</CODE
13693> and what
13694 each will return in the <A
13695HREF="#AEN4997"
13696>dataserver</A
13697> event.</P
13698></DIV
13699><DIV
13700CLASS="section"
13701><HR><H2
13702CLASS="section"
13703><A
13704NAME="AEN3408"
13705>A.197. llResetScript</A
13706></H2
13707><DIV
13708CLASS="funcsynopsis"
13709><P
13710></P
13711><A
13712NAME="AEN3410"
13713></A
13714><P
13715><CODE
13716><CODE
13717CLASS="FUNCDEF"
13718>llResetScript</CODE
13719>(void);</CODE
13720></P
13721><P
13722></P
13723></DIV
13724><P
13725>Resets this script.</P
13726></DIV
13727><DIV
13728CLASS="section"
13729><HR><H2
13730CLASS="section"
13731><A
13732NAME="AEN3416"
13733>A.198. llResetOtherScript</A
13734></H2
13735><DIV
13736CLASS="funcsynopsis"
13737><P
13738></P
13739><A
13740NAME="AEN3418"
13741></A
13742><P
13743><CODE
13744><CODE
13745CLASS="FUNCDEF"
13746>llResetOtherScript</CODE
13747>(string name);</CODE
13748></P
13749><P
13750></P
13751></DIV
13752><P
13753>Resets the script <CODE
13754CLASS="parameter"
13755>name</CODE
13756>.</P
13757></DIV
13758><DIV
13759CLASS="section"
13760><HR><H2
13761CLASS="section"
13762><A
13763NAME="AEN3426"
13764>A.199. llResetTime</A
13765></H2
13766><DIV
13767CLASS="funcsynopsis"
13768><P
13769></P
13770><A
13771NAME="AEN3428"
13772></A
13773><P
13774><CODE
13775><CODE
13776CLASS="FUNCDEF"
13777>llResetTime</CODE
13778>(void);</CODE
13779></P
13780><P
13781></P
13782></DIV
13783><P
13784>Sets the internal script timer to zero.</P
13785></DIV
13786><DIV
13787CLASS="section"
13788><HR><H2
13789CLASS="section"
13790><A
13791NAME="AEN3434"
13792>A.200. llRezAtRoot</A
13793></H2
13794><DIV
13795CLASS="funcsynopsis"
13796><P
13797></P
13798><A
13799NAME="AEN3436"
13800></A
13801><P
13802><CODE
13803><CODE
13804CLASS="FUNCDEF"
13805>llRezAtRoot</CODE
13806>(string inventory, vector pos, vector vel, rotation rot, integer param);</CODE
13807></P
13808><P
13809></P
13810></DIV
13811><P
13812>Creates object's <CODE
13813CLASS="parameter"
13814>inventory</CODE
13815> object at
13816 position <CODE
13817CLASS="parameter"
13818>pos</CODE
13819> with velocity
13820 <CODE
13821CLASS="parameter"
13822>vel</CODE
13823> and rotation
13824 <CODE
13825CLASS="parameter"
13826>rot</CODE
13827>. The last selected root object's location
13828 in a multi-object selection will be placed at <CODE
13829CLASS="parameter"
13830>pos</CODE
13831>.
13832 All other objects in a selection will be created relative to the last
13833 selected root's position, taking <CODE
13834CLASS="parameter"
13835>rot</CODE
13836> into account.
13837 The <CODE
13838CLASS="parameter"
13839>param</CODE
13840> value
13841 will be available to the newly created object in the <A
13842HREF="#AEN5159"
13843>on_rez</A
13844> event or through the <A
13845HREF="#AEN2164"
13846>llGetStartParameter</A
13847>
13848 library function. The <CODE
13849CLASS="parameter"
13850>vel</CODE
13851> parameter is
13852 ignored if the rezzed object is not physical.</P
13853></DIV
13854><DIV
13855CLASS="section"
13856><HR><H2
13857CLASS="section"
13858><A
13859NAME="AEN3461"
13860>A.201. llRezObject</A
13861></H2
13862><DIV
13863CLASS="funcsynopsis"
13864><P
13865></P
13866><A
13867NAME="AEN3463"
13868></A
13869><P
13870><CODE
13871><CODE
13872CLASS="FUNCDEF"
13873>llRezObject</CODE
13874>(string inventory, vector pos, vector vel, rotation rot, integer param);</CODE
13875></P
13876><P
13877></P
13878></DIV
13879><P
13880>Creates object's <CODE
13881CLASS="parameter"
13882>inventory</CODE
13883> object at
13884 position <CODE
13885CLASS="parameter"
13886>pos</CODE
13887> with velocity
13888 <CODE
13889CLASS="parameter"
13890>vel</CODE
13891> and rotation
13892 <CODE
13893CLASS="parameter"
13894>rot</CODE
13895>. The <CODE
13896CLASS="parameter"
13897>param</CODE
13898> value
13899 will be available to the newly created object in the <A
13900HREF="#AEN5159"
13901>on_rez</A
13902> event or through the <A
13903HREF="#AEN2164"
13904>llGetStartParameter</A
13905>
13906 library function. The <CODE
13907CLASS="parameter"
13908>vel</CODE
13909> parameter is
13910 ignored if the rezzed object is not physical.</P
13911></DIV
13912><DIV
13913CLASS="section"
13914><HR><H2
13915CLASS="section"
13916><A
13917NAME="AEN3486"
13918>A.202. llRot2Angle</A
13919></H2
13920><DIV
13921CLASS="funcsynopsis"
13922><P
13923></P
13924><A
13925NAME="AEN3488"
13926></A
13927><P
13928><CODE
13929><CODE
13930CLASS="FUNCDEF"
13931>float llRot2Angle</CODE
13932>(rotation rot);</CODE
13933></P
13934><P
13935></P
13936></DIV
13937><P
13938>Returns the rotation angle represented by
13939 <CODE
13940CLASS="parameter"
13941>rot</CODE
13942>.</P
13943></DIV
13944><DIV
13945CLASS="section"
13946><HR><H2
13947CLASS="section"
13948><A
13949NAME="AEN3496"
13950>A.203. llRot2Axis</A
13951></H2
13952><DIV
13953CLASS="funcsynopsis"
13954><P
13955></P
13956><A
13957NAME="AEN3498"
13958></A
13959><P
13960><CODE
13961><CODE
13962CLASS="FUNCDEF"
13963>vector llRot2Axis</CODE
13964>(rotation rot);</CODE
13965></P
13966><P
13967></P
13968></DIV
13969><P
13970>Returns the rotation axis represented by
13971 <CODE
13972CLASS="parameter"
13973>rot</CODE
13974>.</P
13975></DIV
13976><DIV
13977CLASS="section"
13978><HR><H2
13979CLASS="section"
13980><A
13981NAME="AEN3506"
13982>A.204. llRot2Euler</A
13983></H2
13984><DIV
13985CLASS="funcsynopsis"
13986><P
13987></P
13988><A
13989NAME="AEN3508"
13990></A
13991><P
13992><CODE
13993><CODE
13994CLASS="FUNCDEF"
13995>vector llRot2Euler</CODE
13996>(rotation rot);</CODE
13997></P
13998><P
13999></P
14000></DIV
14001><P
14002>Returns the Euler Angle representation of
14003 <CODE
14004CLASS="parameter"
14005>rot</CODE
14006>.</P
14007></DIV
14008><DIV
14009CLASS="section"
14010><HR><H2
14011CLASS="section"
14012><A
14013NAME="AEN3516"
14014>A.205. llRot2Fwd</A
14015></H2
14016><DIV
14017CLASS="funcsynopsis"
14018><P
14019></P
14020><A
14021NAME="AEN3518"
14022></A
14023><P
14024><CODE
14025><CODE
14026CLASS="FUNCDEF"
14027>vector llRot2Fwd</CODE
14028>(rotation rot);</CODE
14029></P
14030><P
14031></P
14032></DIV
14033><P
14034>Returns the forward axis represented by
14035 <CODE
14036CLASS="parameter"
14037>rot</CODE
14038>.</P
14039></DIV
14040><DIV
14041CLASS="section"
14042><HR><H2
14043CLASS="section"
14044><A
14045NAME="AEN3526"
14046>A.206. llRot2Left</A
14047></H2
14048><DIV
14049CLASS="funcsynopsis"
14050><P
14051></P
14052><A
14053NAME="AEN3528"
14054></A
14055><P
14056><CODE
14057><CODE
14058CLASS="FUNCDEF"
14059>llRot2Left</CODE
14060>(rotation rot);</CODE
14061></P
14062><P
14063></P
14064></DIV
14065><P
14066>Returns the left axis represented by
14067 <CODE
14068CLASS="parameter"
14069>rot</CODE
14070>.</P
14071></DIV
14072><DIV
14073CLASS="section"
14074><HR><H2
14075CLASS="section"
14076><A
14077NAME="AEN3536"
14078>A.207. llRot2Up</A
14079></H2
14080><DIV
14081CLASS="funcsynopsis"
14082><P
14083></P
14084><A
14085NAME="AEN3538"
14086></A
14087><P
14088><CODE
14089><CODE
14090CLASS="FUNCDEF"
14091>llRot2Up</CODE
14092>(rotation rot);</CODE
14093></P
14094><P
14095></P
14096></DIV
14097><P
14098>Returns the up axis represented by
14099 <CODE
14100CLASS="parameter"
14101>rot</CODE
14102>.</P
14103></DIV
14104><DIV
14105CLASS="section"
14106><HR><H2
14107CLASS="section"
14108><A
14109NAME="AEN3546"
14110>A.208. llRotBetween</A
14111></H2
14112><DIV
14113CLASS="funcsynopsis"
14114><P
14115></P
14116><A
14117NAME="AEN3548"
14118></A
14119><P
14120><CODE
14121><CODE
14122CLASS="FUNCDEF"
14123>rotation llRotBetween</CODE
14124>(vector a, vector b);</CODE
14125></P
14126><P
14127></P
14128></DIV
14129><P
14130>Returns the rotation needed to rotate
14131 <CODE
14132CLASS="parameter"
14133>a</CODE
14134> to <CODE
14135CLASS="parameter"
14136>b</CODE
14137>.</P
14138></DIV
14139><DIV
14140CLASS="section"
14141><HR><H2
14142CLASS="section"
14143><A
14144NAME="AEN3559"
14145>A.209. llRotLookAt</A
14146></H2
14147><DIV
14148CLASS="funcsynopsis"
14149><P
14150></P
14151><A
14152NAME="AEN3561"
14153></A
14154><P
14155><CODE
14156><CODE
14157CLASS="FUNCDEF"
14158>llRotLookAt</CODE
14159>(rotation rot, float strength, float damping);</CODE
14160></P
14161><P
14162></P
14163></DIV
14164><P
14165>Cause object to rotate to <CODE
14166CLASS="parameter"
14167>rot</CODE
14168>. Good
14169 <CODE
14170CLASS="parameter"
14171>strength</CODE
14172> values are around half the mass of
14173 the object and good <CODE
14174CLASS="parameter"
14175>damping</CODE
14176> values are less
14177 than 1/10<SUP
14178>th</SUP
14179> of the
14180 <CODE
14181CLASS="parameter"
14182>strength</CODE
14183>. Asymmetrical shapes require
14184 smaller <CODE
14185CLASS="parameter"
14186>damping</CODE
14187>. A
14188 <CODE
14189CLASS="parameter"
14190>strength</CODE
14191> of 0.0 cancels the look at.</P
14192></DIV
14193><DIV
14194CLASS="section"
14195><HR><H2
14196CLASS="section"
14197><A
14198NAME="AEN3579"
14199>A.210. llRotTarget</A
14200></H2
14201><DIV
14202CLASS="funcsynopsis"
14203><P
14204></P
14205><A
14206NAME="AEN3581"
14207></A
14208><P
14209><CODE
14210><CODE
14211CLASS="FUNCDEF"
14212>integer llRotTarget</CODE
14213>(rotation rot, float error);</CODE
14214></P
14215><P
14216></P
14217></DIV
14218><P
14219>Set object rotation within <CODE
14220CLASS="parameter"
14221>error</CODE
14222> of
14223 <CODE
14224CLASS="parameter"
14225>rotation</CODE
14226> as a rotational target and return
14227 an integer number for the target. The number can be used in <A
14228HREF="#AEN3593"
14229>llRotTargetRemove</A
14230>.</P
14231></DIV
14232><DIV
14233CLASS="section"
14234><HR><H2
14235CLASS="section"
14236><A
14237NAME="AEN3593"
14238>A.211. llRotTargetRemove</A
14239></H2
14240><DIV
14241CLASS="funcsynopsis"
14242><P
14243></P
14244><A
14245NAME="AEN3595"
14246></A
14247><P
14248><CODE
14249><CODE
14250CLASS="FUNCDEF"
14251>llRotTargetRemove</CODE
14252>(integer number);</CODE
14253></P
14254><P
14255></P
14256></DIV
14257><P
14258>Remove rotational target
14259 <CODE
14260CLASS="parameter"
14261>number</CODE
14262>.</P
14263></DIV
14264><DIV
14265CLASS="section"
14266><HR><H2
14267CLASS="section"
14268><A
14269NAME="AEN3603"
14270>A.212. llRotateTexture</A
14271></H2
14272><DIV
14273CLASS="funcsynopsis"
14274><P
14275></P
14276><A
14277NAME="AEN3605"
14278></A
14279><P
14280><CODE
14281><CODE
14282CLASS="FUNCDEF"
14283>llRotateTexture</CODE
14284>(float radians, integer face);</CODE
14285></P
14286><P
14287></P
14288></DIV
14289><P
14290>Sets the texture rotation of <CODE
14291CLASS="parameter"
14292>face</CODE
14293> to
14294 <CODE
14295CLASS="parameter"
14296>radians</CODE
14297>. If <CODE
14298CLASS="parameter"
14299>face</CODE
14300>
14301 <A
14302HREF="#AEN6073"
14303>ALL_SIDES</A
14304>, rotate the
14305 texture of all faces.</P
14306></DIV
14307><DIV
14308CLASS="section"
14309><HR><H2
14310CLASS="section"
14311><A
14312NAME="AEN3618"
14313>A.213. llRound</A
14314></H2
14315><DIV
14316CLASS="funcsynopsis"
14317><P
14318></P
14319><A
14320NAME="AEN3620"
14321></A
14322><P
14323><CODE
14324><CODE
14325CLASS="FUNCDEF"
14326>integer llRound</CODE
14327>(float val);</CODE
14328></P
14329><P
14330></P
14331></DIV
14332><P
14333>returns <CODE
14334CLASS="parameter"
14335>val</CODE
14336> rounded to the nearest
14337 integer.</P
14338></DIV
14339><DIV
14340CLASS="section"
14341><HR><H2
14342CLASS="section"
14343><A
14344NAME="AEN3628"
14345>A.214. llSameGroup</A
14346></H2
14347><DIV
14348CLASS="funcsynopsis"
14349><P
14350></P
14351><A
14352NAME="AEN3630"
14353></A
14354><P
14355><CODE
14356><CODE
14357CLASS="FUNCDEF"
14358>integer llSameGroup</CODE
14359>(key id);</CODE
14360></P
14361><P
14362></P
14363></DIV
14364><P
14365>Returns <A
14366HREF="#AEN5295"
14367>TRUE</A
14368> if the
14369 object or agent <CODE
14370CLASS="parameter"
14371>id</CODE
14372> is in the same simulator
14373 and has the same active group as this object. Otherwise, returns
14374 <A
14375HREF="#AEN5295"
14376>FALSE</A
14377>.</P
14378></DIV
14379><DIV
14380CLASS="section"
14381><HR><H2
14382CLASS="section"
14383><A
14384NAME="AEN3640"
14385>A.215. llSay</A
14386></H2
14387><DIV
14388CLASS="funcsynopsis"
14389><P
14390></P
14391><A
14392NAME="AEN3642"
14393></A
14394><P
14395><CODE
14396><CODE
14397CLASS="FUNCDEF"
14398>llSay</CODE
14399>(integer channel, string text);</CODE
14400></P
14401><P
14402></P
14403></DIV
14404><P
14405>Say <CODE
14406CLASS="parameter"
14407>text</CODE
14408> on
14409 <CODE
14410CLASS="parameter"
14411>channel</CODE
14412>. Channel 0 is the public chat
14413 channel that all avatars see as chat text. Channels 1 to
14414 2,147,483,648 are private channels that are not sent to avatars
14415 but other scripts can listen for through the <A
14416HREF="#AEN2665"
14417>llListen</A
14418> api.</P
14419></DIV
14420><DIV
14421CLASS="section"
14422><HR><H2
14423CLASS="section"
14424><A
14425NAME="AEN3654"
14426>A.216. llScaleTexture</A
14427></H2
14428><DIV
14429CLASS="funcsynopsis"
14430><P
14431></P
14432><A
14433NAME="AEN3656"
14434></A
14435><P
14436><CODE
14437><CODE
14438CLASS="FUNCDEF"
14439>llScaleTexture</CODE
14440>(integer scale_s, integer scale_t, integer face);</CODE
14441></P
14442><P
14443></P
14444></DIV
14445><P
14446>Sets the texture s and t scales of
14447 <CODE
14448CLASS="parameter"
14449>face</CODE
14450> to <CODE
14451CLASS="parameter"
14452>scale_s</CODE
14453> and
14454 <CODE
14455CLASS="parameter"
14456>scale_t</CODE
14457> respectively. If face is <A
14458HREF="#AEN6073"
14459>ALL_SIDES</A
14460>, scale the texture
14461 to all faces.</P
14462></DIV
14463><DIV
14464CLASS="section"
14465><HR><H2
14466CLASS="section"
14467><A
14468NAME="AEN3671"
14469>A.217. llScriptDanger</A
14470></H2
14471><DIV
14472CLASS="funcsynopsis"
14473><P
14474></P
14475><A
14476NAME="AEN3673"
14477></A
14478><P
14479><CODE
14480><CODE
14481CLASS="FUNCDEF"
14482>integer llScriptDanger</CODE
14483>(vector pos);</CODE
14484></P
14485><P
14486></P
14487></DIV
14488><P
14489>Returns true if pos is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</P
14490></DIV
14491><DIV
14492CLASS="section"
14493><HR><H2
14494CLASS="section"
14495><A
14496NAME="AEN3680"
14497>A.218. llSendRemoteData</A
14498></H2
14499><DIV
14500CLASS="funcsynopsis"
14501><P
14502></P
14503><A
14504NAME="AEN3682"
14505></A
14506><P
14507><CODE
14508><CODE
14509CLASS="FUNCDEF"
14510>key llSendRemoteData</CODE
14511>(string dest, integer idata, string sdata);</CODE
14512></P
14513><P
14514></P
14515></DIV
14516><P
14517>Send an XML-RPC request to dest through channel with payload
14518 of channel (in a string), integer idata and string sdata. An
14519 XML-RPC reply will trigger a remote_data event with type =
14520 REMOTE_DATA_REPLY. The call returns a message_id that can be used
14521 to identify XML-RPC replies.</P
14522></DIV
14523><DIV
14524CLASS="section"
14525><HR><H2
14526CLASS="section"
14527><A
14528NAME="AEN3693"
14529>A.219. llSensor</A
14530></H2
14531><DIV
14532CLASS="funcsynopsis"
14533><P
14534></P
14535><A
14536NAME="AEN3695"
14537></A
14538><P
14539><CODE
14540><CODE
14541CLASS="FUNCDEF"
14542>llSensor</CODE
14543>(string name, key id, integer type, float range, float arc);</CODE
14544></P
14545><P
14546></P
14547></DIV
14548><P
14549>Performs a single scan for <CODE
14550CLASS="parameter"
14551>name</CODE
14552> and
14553 <CODE
14554CLASS="parameter"
14555>id</CODE
14556> with <CODE
14557CLASS="parameter"
14558>type</CODE
14559> within
14560 <CODE
14561CLASS="parameter"
14562>range</CODE
14563> meters and <CODE
14564CLASS="parameter"
14565>arc</CODE
14566>
14567 radians of forward vector. Specifying a blank name or <A
14568HREF="#AEN6070"
14569>NULL_KEY</A
14570> id will not filter results for
14571 any particular name or id. A range of 0.0 does not perform a
14572 scan. Range is limited to 96.0. The <CODE
14573CLASS="parameter"
14574>type</CODE
14575> parameter should be an <A
14576HREF="#AEN5338"
14577>object type constant</A
14578> value. If anything is found
14579 during the scan, a <A
14580HREF="#AEN5183"
14581>sensor</A
14582> event is triggered. A maximum
14583 of 16 items are passed to this event. If nothing is found during the scan, a
14584 <A
14585HREF="#AEN5121"
14586>no sensor</A
14587> event is triggered instead.</P
14588></DIV
14589><DIV
14590CLASS="section"
14591><HR><H2
14592CLASS="section"
14593><A
14594NAME="AEN3720"
14595>A.220. llSensorRemove</A
14596></H2
14597><DIV
14598CLASS="funcsynopsis"
14599><P
14600></P
14601><A
14602NAME="AEN3722"
14603></A
14604><P
14605><CODE
14606><CODE
14607CLASS="FUNCDEF"
14608>llSensorRemove</CODE
14609>(void);</CODE
14610></P
14611><P
14612></P
14613></DIV
14614><P
14615>Removes the sensor.</P
14616></DIV
14617><DIV
14618CLASS="section"
14619><HR><H2
14620CLASS="section"
14621><A
14622NAME="AEN3728"
14623>A.221. llSensorRepeat</A
14624></H2
14625><DIV
14626CLASS="funcsynopsis"
14627><P
14628></P
14629><A
14630NAME="AEN3730"
14631></A
14632><P
14633><CODE
14634><CODE
14635CLASS="FUNCDEF"
14636>llSensorRepeat</CODE
14637>(string name, key id, integer type, float range, float arc, float rate);</CODE
14638></P
14639><P
14640></P
14641></DIV
14642><P
14643>Performs a single scan for <CODE
14644CLASS="parameter"
14645>name</CODE
14646> and
14647 <CODE
14648CLASS="parameter"
14649>id</CODE
14650> with <CODE
14651CLASS="parameter"
14652>type</CODE
14653> within
14654 <CODE
14655CLASS="parameter"
14656>range</CODE
14657> meters and <CODE
14658CLASS="parameter"
14659>arc</CODE
14660>
14661 radians of forward vector and repeats every
14662 <CODE
14663CLASS="parameter"
14664>rate</CODE
14665> seconds. Specifying a blank name or
14666 <A
14667HREF="#AEN6070"
14668>NULL_KEY</A
14669> id will not filter
14670 results for any particular name or id. A range of 0.0 cancels the
14671 scan. Range is limited to 96.0. The <CODE
14672CLASS="parameter"
14673>type</CODE
14674> parameter should be an <A
14675HREF="#AEN5338"
14676>object type constant</A
14677>
14678 value. If anything is found during the scan, a <A
14679HREF="#AEN5183"
14680>sensor</A
14681>
14682 event is triggered. A maximum of 16 items are passed to this event. If nothing is found
14683 during the scan, a <A
14684HREF="#AEN5121"
14685>no sensor</A
14686> event is triggered instead.</P
14687></DIV
14688><DIV
14689CLASS="section"
14690><HR><H2
14691CLASS="section"
14692><A
14693NAME="AEN3758"
14694>A.222. llSetAlpha</A
14695></H2
14696><DIV
14697CLASS="funcsynopsis"
14698><P
14699></P
14700><A
14701NAME="AEN3760"
14702></A
14703><P
14704><CODE
14705><CODE
14706CLASS="FUNCDEF"
14707>llSetAlpha</CODE
14708>(float alpha, integer face);</CODE
14709></P
14710><P
14711></P
14712></DIV
14713><P
14714>Sets the alpha value for <CODE
14715CLASS="parameter"
14716>face</CODE
14717>. If
14718 face is <A
14719HREF="#AEN6073"
14720>ALL_SIDES</A
14721>, set
14722 the alpha to all faces. The <CODE
14723CLASS="parameter"
14724>alpha</CODE
14725> value is
14726 interpreted as an opacity percentage - 1.0 is fully opaque, and
14727 0.2 is mostly transparent. This api will clamp
14728 <CODE
14729CLASS="parameter"
14730>alpha</CODE
14731> values less 0.1 to .1 and greater
14732 than 1.0 to 1.</P
14733></DIV
14734><DIV
14735CLASS="section"
14736><HR><H2
14737CLASS="section"
14738><A
14739NAME="AEN3773"
14740>A.223. llSetBuoyancy</A
14741></H2
14742><DIV
14743CLASS="funcsynopsis"
14744><P
14745></P
14746><A
14747NAME="AEN3775"
14748></A
14749><P
14750><CODE
14751><CODE
14752CLASS="FUNCDEF"
14753>llSetBuoyancy</CODE
14754>(float buoyancy);</CODE
14755></P
14756><P
14757></P
14758></DIV
14759><P
14760>Set the object buoyancy. A value of 0 is none, less than 1.0 sinks,
14761 1.0 floats, and greater than 1.0 rises.</P
14762></DIV
14763><DIV
14764CLASS="section"
14765><HR><H2
14766CLASS="section"
14767><A
14768NAME="AEN3782"
14769>A.224. llSetCameraAtOffset</A
14770></H2
14771><DIV
14772CLASS="funcsynopsis"
14773><P
14774></P
14775><A
14776NAME="AEN3784"
14777></A
14778><P
14779><CODE
14780><CODE
14781CLASS="FUNCDEF"
14782>llSetCameraAtOffset</CODE
14783>(vector offset);</CODE
14784></P
14785><P
14786></P
14787></DIV
14788><P
14789>Sets the camera at offset used in this object if an avatar
14790 sits on it.</P
14791></DIV
14792><DIV
14793CLASS="section"
14794><HR><H2
14795CLASS="section"
14796><A
14797NAME="AEN3791"
14798>A.225. llSetClickAction</A
14799></H2
14800><DIV
14801CLASS="funcsynopsis"
14802><P
14803></P
14804><A
14805NAME="AEN3793"
14806></A
14807><P
14808><CODE
14809><CODE
14810CLASS="FUNCDEF"
14811>llSetClickAction</CODE
14812>(integer action);</CODE
14813></P
14814><P
14815></P
14816></DIV
14817><P
14818>Sets which action is invoked when a resident clicks a prim.</P
14819></DIV
14820><DIV
14821CLASS="section"
14822><HR><H2
14823CLASS="section"
14824><A
14825NAME="AEN3800"
14826>A.226. llForceMouselook</A
14827></H2
14828><DIV
14829CLASS="funcsynopsis"
14830><P
14831></P
14832><A
14833NAME="AEN3802"
14834></A
14835><P
14836><CODE
14837><CODE
14838CLASS="FUNCDEF"
14839>llForceMouselook</CODE
14840>(integer mouselook);</CODE
14841></P
14842><P
14843></P
14844></DIV
14845><P
14846>Puts the camera into mouselook mode if an avatar
14847 sits on this object.</P
14848></DIV
14849><DIV
14850CLASS="section"
14851><HR><H2
14852CLASS="section"
14853><A
14854NAME="AEN3809"
14855>A.227. llSetCameraEyeOffset</A
14856></H2
14857><DIV
14858CLASS="funcsynopsis"
14859><P
14860></P
14861><A
14862NAME="AEN3811"
14863></A
14864><P
14865><CODE
14866><CODE
14867CLASS="FUNCDEF"
14868>llSetCameraEyeOffset</CODE
14869>(vector offset);</CODE
14870></P
14871><P
14872></P
14873></DIV
14874><P
14875>Sets the camera eye offset used in this object if an avatar
14876 sits on it.</P
14877></DIV
14878><DIV
14879CLASS="section"
14880><HR><H2
14881CLASS="section"
14882><A
14883NAME="AEN3818"
14884>A.228. llSetColor</A
14885></H2
14886><DIV
14887CLASS="funcsynopsis"
14888><P
14889></P
14890><A
14891NAME="AEN3820"
14892></A
14893><P
14894><CODE
14895><CODE
14896CLASS="FUNCDEF"
14897>llSetColor</CODE
14898>(vector color, integer face);</CODE
14899></P
14900><P
14901></P
14902></DIV
14903><P
14904>Sets the <CODE
14905CLASS="parameter"
14906>color</CODE
14907> of
14908 <CODE
14909CLASS="parameter"
14910>face</CODE
14911>. If face is <A
14912HREF="#AEN6073"
14913>ALL_SIDES</A
14914>, set the alpha to
14915 all faces.</P
14916></DIV
14917><DIV
14918CLASS="section"
14919><HR><H2
14920CLASS="section"
14921><A
14922NAME="AEN3832"
14923>A.229. llSetDamage</A
14924></H2
14925><DIV
14926CLASS="funcsynopsis"
14927><P
14928></P
14929><A
14930NAME="AEN3834"
14931></A
14932><P
14933><CODE
14934><CODE
14935CLASS="FUNCDEF"
14936>llSetDamage</CODE
14937>(float damage);</CODE
14938></P
14939><P
14940></P
14941></DIV
14942><P
14943>Sets the amount of damage that will be done to an object
14944 that this object hits. This object will be destroyed on damaging
14945 another object.</P
14946></DIV
14947><DIV
14948CLASS="section"
14949><HR><H2
14950CLASS="section"
14951><A
14952NAME="AEN3841"
14953>A.230. llSetForce</A
14954></H2
14955><DIV
14956CLASS="funcsynopsis"
14957><P
14958></P
14959><A
14960NAME="AEN3843"
14961></A
14962><P
14963><CODE
14964><CODE
14965CLASS="FUNCDEF"
14966>llSetForce</CODE
14967>(vector force, integer local);</CODE
14968></P
14969><P
14970></P
14971></DIV
14972><P
14973>If the object is physical, this function sets the
14974 <CODE
14975CLASS="parameter"
14976>force</CODE
14977>. The vector is in local coordinates if
14978 local is <A
14979HREF="#AEN5295"
14980>TRUE</A
14981>, global if
14982 <A
14983HREF="#AEN5295"
14984>FALSE</A
14985>.</P
14986></DIV
14987><DIV
14988CLASS="section"
14989><HR><H2
14990CLASS="section"
14991><A
14992NAME="AEN3855"
14993>A.231. llSetForceAndTorque</A
14994></H2
14995><DIV
14996CLASS="funcsynopsis"
14997><P
14998></P
14999><A
15000NAME="AEN3857"
15001></A
15002><P
15003><CODE
15004><CODE
15005CLASS="FUNCDEF"
15006>llSetForceAndTorque</CODE
15007>(vector force, vector torque, integer local);</CODE
15008></P
15009><P
15010></P
15011></DIV
15012><P
15013>If the object is physical, this function sets the
15014 <CODE
15015CLASS="parameter"
15016>force</CODE
15017> and
15018 <CODE
15019CLASS="parameter"
15020>torque</CODE
15021>. The vectors are in local coordinates
15022 if local is <A
15023HREF="#AEN5295"
15024>TRUE</A
15025>, global if
15026 <A
15027HREF="#AEN5295"
15028>FALSE</A
15029>.</P
15030></DIV
15031><DIV
15032CLASS="section"
15033><HR><H2
15034CLASS="section"
15035><A
15036NAME="AEN3872"
15037>A.232. llSetHoverHeight</A
15038></H2
15039><DIV
15040CLASS="funcsynopsis"
15041><P
15042></P
15043><A
15044NAME="AEN3874"
15045></A
15046><P
15047><CODE
15048><CODE
15049CLASS="FUNCDEF"
15050>llSetHoverHeight</CODE
15051>(float height, float water, float tau);</CODE
15052></P
15053><P
15054></P
15055></DIV
15056><P
15057>Critically damps to a height. The height is above ground and
15058 water if <CODE
15059CLASS="parameter"
15060>water</CODE
15061> is <A
15062HREF="#AEN5295"
15063>TRUE</A
15064>.</P
15065></DIV
15066><DIV
15067CLASS="section"
15068><HR><H2
15069CLASS="section"
15070><A
15071NAME="AEN3887"
15072>A.233. llSetLinkAlpha</A
15073></H2
15074><DIV
15075CLASS="funcsynopsis"
15076><P
15077></P
15078><A
15079NAME="AEN3889"
15080></A
15081><P
15082><CODE
15083><CODE
15084CLASS="FUNCDEF"
15085>llSetLinkAlpha</CODE
15086>(integer linknumber, float alpha, integer face);</CODE
15087></P
15088><P
15089></P
15090></DIV
15091><P
15092>Sets the <CODE
15093CLASS="parameter"
15094>alpha</CODE
15095> of a prim in the link set.
15096 The <CODE
15097CLASS="parameter"
15098>linknum</CODE
15099>
15100 parameter is either the linked number available through <A
15101HREF="#AEN1867"
15102>llGetLinkNumber</A
15103> or a <A
15104HREF="#AEN5616"
15105>link constant</A
15106>.
15107 If <CODE
15108CLASS="parameter"
15109>face</CODE
15110> is
15111 <A
15112HREF="#AEN6073"
15113>ALL_SIDES</A
15114>, set the alpha
15115 of all faces.</P
15116></DIV
15117><DIV
15118CLASS="section"
15119><HR><H2
15120CLASS="section"
15121><A
15122NAME="AEN3906"
15123>A.234. llSetLinkColor</A
15124></H2
15125><DIV
15126CLASS="funcsynopsis"
15127><P
15128></P
15129><A
15130NAME="AEN3908"
15131></A
15132><P
15133><CODE
15134><CODE
15135CLASS="FUNCDEF"
15136>llSetLinkColor</CODE
15137>(integer linknumber, vector color, integer face);</CODE
15138></P
15139><P
15140></P
15141></DIV
15142><P
15143>Sets the <CODE
15144CLASS="parameter"
15145>color</CODE
15146> of a prim in the link set.
15147 The <CODE
15148CLASS="parameter"
15149>linknum</CODE
15150>
15151 parameter is either the linked number available through <A
15152HREF="#AEN1867"
15153>llGetLinkNumber</A
15154> or a <A
15155HREF="#AEN5616"
15156>link constant</A
15157>.
15158 If <CODE
15159CLASS="parameter"
15160>face</CODE
15161> is
15162 <A
15163HREF="#AEN6073"
15164>ALL_SIDES</A
15165>, set the color
15166 of all faces.</P
15167></DIV
15168><DIV
15169CLASS="section"
15170><HR><H2
15171CLASS="section"
15172><A
15173NAME="AEN3925"
15174>A.235. llSetLinkPrimitiveParams</A
15175></H2
15176><DIV
15177CLASS="funcsynopsis"
15178><P
15179></P
15180><A
15181NAME="AEN3927"
15182></A
15183><P
15184><CODE
15185><CODE
15186CLASS="FUNCDEF"
15187>llSetLinkPrimitiveParams</CODE
15188>(integer linknumber, list rules);</CODE
15189></P
15190><P
15191></P
15192></DIV
15193><P
15194>Sets the primitive parameters of a prim in the link set.
15195 The <CODE
15196CLASS="parameter"
15197>linknum</CODE
15198>
15199 parameter is either the linked number available through <A
15200HREF="#AEN1867"
15201>llGetLinkNumber</A
15202> or a <A
15203HREF="#AEN5616"
15204>link constant</A
15205>.
15206 The <CODE
15207CLASS="parameter"
15208>rules</CODE
15209>
15210 list is identical to that of
15211 <A
15212HREF="#AEN4020"
15213>llSetPrimitiveParams</A
15214>.</P
15215></DIV
15216><DIV
15217CLASS="section"
15218><HR><H2
15219CLASS="section"
15220><A
15221NAME="AEN3941"
15222>A.236. llSetLinkTexture</A
15223></H2
15224><DIV
15225CLASS="funcsynopsis"
15226><P
15227></P
15228><A
15229NAME="AEN3943"
15230></A
15231><P
15232><CODE
15233><CODE
15234CLASS="FUNCDEF"
15235>llSetLinkTexture</CODE
15236>(integer linknumber, string texture, integer face);</CODE
15237></P
15238><P
15239></P
15240></DIV
15241><P
15242>Sets the <CODE
15243CLASS="parameter"
15244>texture</CODE
15245> of a prim in the link set.
15246 The <CODE
15247CLASS="parameter"
15248>linknum</CODE
15249>
15250 parameter is either the linked number available through <A
15251HREF="#AEN1867"
15252>llGetLinkNumber</A
15253> or a <A
15254HREF="#AEN5616"
15255>link constant</A
15256>.
15257 If <CODE
15258CLASS="parameter"
15259>face</CODE
15260> is
15261 <A
15262HREF="#AEN6073"
15263>ALL_SIDES</A
15264>, set the texture
15265 of all faces.</P
15266></DIV
15267><DIV
15268CLASS="section"
15269><HR><H2
15270CLASS="section"
15271><A
15272NAME="AEN3960"
15273>A.237. llSetLocalRot</A
15274></H2
15275><DIV
15276CLASS="funcsynopsis"
15277><P
15278></P
15279><A
15280NAME="AEN3962"
15281></A
15282><P
15283><CODE
15284><CODE
15285CLASS="FUNCDEF"
15286>llSetLocalRot</CODE
15287>(rotation rot);</CODE
15288></P
15289><P
15290></P
15291></DIV
15292><P
15293>If the object is not physical, this function sets the
15294 rotation of a child prim relative to the root prim, and the
15295 linked set is adjusted.</P
15296></DIV
15297><DIV
15298CLASS="section"
15299><HR><H2
15300CLASS="section"
15301><A
15302NAME="AEN3969"
15303>A.238. llSetObjectDesc</A
15304></H2
15305><DIV
15306CLASS="funcsynopsis"
15307><P
15308></P
15309><A
15310NAME="AEN3971"
15311></A
15312><P
15313><CODE
15314><CODE
15315CLASS="FUNCDEF"
15316>llSetObjectDesc</CODE
15317>(string description);</CODE
15318></P
15319><P
15320></P
15321></DIV
15322><P
15323>Sets the object description to <CODE
15324CLASS="parameter"
15325>description</CODE
15326>.</P
15327></DIV
15328><DIV
15329CLASS="section"
15330><HR><H2
15331CLASS="section"
15332><A
15333NAME="AEN3979"
15334>A.239. llSetObjectName</A
15335></H2
15336><DIV
15337CLASS="funcsynopsis"
15338><P
15339></P
15340><A
15341NAME="AEN3981"
15342></A
15343><P
15344><CODE
15345><CODE
15346CLASS="FUNCDEF"
15347>llSetObjectName</CODE
15348>(string name);</CODE
15349></P
15350><P
15351></P
15352></DIV
15353><P
15354>Sets the object name to <CODE
15355CLASS="parameter"
15356>name</CODE
15357>.</P
15358></DIV
15359><DIV
15360CLASS="section"
15361><HR><H2
15362CLASS="section"
15363><A
15364NAME="AEN3989"
15365>A.240. llSetParcelMusicURL</A
15366></H2
15367><DIV
15368CLASS="funcsynopsis"
15369><P
15370></P
15371><A
15372NAME="AEN3991"
15373></A
15374><P
15375><CODE
15376><CODE
15377CLASS="FUNCDEF"
15378>llSetParcelMusicURL</CODE
15379>(string url);</CODE
15380></P
15381><P
15382></P
15383></DIV
15384><P
15385>Sets the streaming audio URL for the parcel where the object
15386 is currently located. The <CODE
15387CLASS="parameter"
15388>url</CODE
15389> must be an
15390 http streaming source of mp3 or ogg data.</P
15391></DIV
15392><DIV
15393CLASS="section"
15394><HR><H2
15395CLASS="section"
15396><A
15397NAME="AEN3999"
15398>A.241. llSetPayPrice</A
15399></H2
15400><DIV
15401CLASS="funcsynopsis"
15402><P
15403></P
15404><A
15405NAME="AEN4001"
15406></A
15407><P
15408><CODE
15409><CODE
15410CLASS="FUNCDEF"
15411>llSetPayPrice</CODE
15412>(integer default_price, list quick_pay_buttons);</CODE
15413></P
15414><P
15415></P
15416></DIV
15417><P
15418>Sets the default pay price and optionally the quick pay buttons
15419 for the 'Pay' window when someone pays this object.
15420 See also <A
15421HREF="#AEN5434"
15422>Pay Button Constants</A
15423>. </P
15424></DIV
15425><DIV
15426CLASS="section"
15427><HR><H2
15428CLASS="section"
15429><A
15430NAME="AEN4011"
15431>A.242. llSetPos</A
15432></H2
15433><DIV
15434CLASS="funcsynopsis"
15435><P
15436></P
15437><A
15438NAME="AEN4013"
15439></A
15440><P
15441><CODE
15442><CODE
15443CLASS="FUNCDEF"
15444>llSetPos</CODE
15445>(vector pos);</CODE
15446></P
15447><P
15448></P
15449></DIV
15450><P
15451>If the object is not physical, this function sets the
15452 position in region coordinates. If the object is a child, the
15453 position is treated as root relative and the linked set is
15454 adjusted.</P
15455></DIV
15456><DIV
15457CLASS="section"
15458><HR><H2
15459CLASS="section"
15460><A
15461NAME="AEN4020"
15462>A.243. llSetPrimitiveParams</A
15463></H2
15464><DIV
15465CLASS="funcsynopsis"
15466><P
15467></P
15468><A
15469NAME="AEN4022"
15470></A
15471><P
15472><CODE
15473><CODE
15474CLASS="FUNCDEF"
15475>llSetPrimitiveParams</CODE
15476>(list rules);</CODE
15477></P
15478><P
15479></P
15480></DIV
15481><P
15482>Set primitive parameters based on <CODE
15483CLASS="parameter"
15484>rules</CODE
15485>. The
15486 <CODE
15487CLASS="parameter"
15488>rules</CODE
15489> are specified as an ordered list
15490 of parameter and value(s). Valid parameters and their expected values
15491 can be found in the <A
15492HREF="#AEN6323"
15493>Primitive Constants</A
15494>.
15495 Here is a simple example:
15496<DIV
15497CLASS="informalexample"
15498><P
15499></P
15500><A
15501NAME="AEN4032"
15502></A
15503><PRE
15504CLASS="programlisting"
15505>&#13;llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_BOX, PRIM_HOLE_DEFAULT, &#60;0,1,0&#62;,
15506 0.5, &#60;-0.2, 0.2, 0&#62;, &#60;0.5,0.5,0&#62;,&#60;-0.5,0.5,0&#62;]);
15507</PRE
15508><P
15509></P
15510></DIV
15511></P
15512></DIV
15513><DIV
15514CLASS="section"
15515><HR><H2
15516CLASS="section"
15517><A
15518NAME="AEN4034"
15519>A.244. llSetRemoteScriptAccessPin</A
15520></H2
15521><DIV
15522CLASS="funcsynopsis"
15523><P
15524></P
15525><A
15526NAME="AEN4036"
15527></A
15528><P
15529><CODE
15530><CODE
15531CLASS="FUNCDEF"
15532>llSetRemoteScriptAccessPin</CODE
15533>(integer pin);</CODE
15534></P
15535><P
15536></P
15537></DIV
15538><P
15539>If pin is set to a non-zero number, the task will accept remote script
15540 loads via llRemoteLoadScriptPin if it passes in the correct pin.
15541 Otherwise, llRemoteLoadScriptPin is ignored.</P
15542></DIV
15543><DIV
15544CLASS="section"
15545><HR><H2
15546CLASS="section"
15547><A
15548NAME="AEN4043"
15549>A.245. llSetRot</A
15550></H2
15551><DIV
15552CLASS="funcsynopsis"
15553><P
15554></P
15555><A
15556NAME="AEN4045"
15557></A
15558><P
15559><CODE
15560><CODE
15561CLASS="FUNCDEF"
15562>llSetRot</CODE
15563>(rotation rot);</CODE
15564></P
15565><P
15566></P
15567></DIV
15568><P
15569>If the object is not physical, this function sets the
15570 rotation. If the object is a child, the position is treated as
15571 root relative and the linked set is adjusted.</P
15572></DIV
15573><DIV
15574CLASS="section"
15575><HR><H2
15576CLASS="section"
15577><A
15578NAME="AEN4052"
15579>A.246. llSetScale</A
15580></H2
15581><DIV
15582CLASS="funcsynopsis"
15583><P
15584></P
15585><A
15586NAME="AEN4054"
15587></A
15588><P
15589><CODE
15590><CODE
15591CLASS="FUNCDEF"
15592>llSetScale</CODE
15593>(vector scale);</CODE
15594></P
15595><P
15596></P
15597></DIV
15598><P
15599>Sets the object scale.</P
15600></DIV
15601><DIV
15602CLASS="section"
15603><HR><H2
15604CLASS="section"
15605><A
15606NAME="AEN4061"
15607>A.247. llSetScriptState</A
15608></H2
15609><DIV
15610CLASS="funcsynopsis"
15611><P
15612></P
15613><A
15614NAME="AEN4063"
15615></A
15616><P
15617><CODE
15618><CODE
15619CLASS="FUNCDEF"
15620>llSetScriptState</CODE
15621>(string name, integer run);</CODE
15622></P
15623><P
15624></P
15625></DIV
15626><P
15627>Control the state of a script on the object.</P
15628></DIV
15629><DIV
15630CLASS="section"
15631><HR><H2
15632CLASS="section"
15633><A
15634NAME="AEN4072"
15635>A.248. llSetSitText</A
15636></H2
15637><DIV
15638CLASS="funcsynopsis"
15639><P
15640></P
15641><A
15642NAME="AEN4074"
15643></A
15644><P
15645><CODE
15646><CODE
15647CLASS="FUNCDEF"
15648>llSetSitText</CODE
15649>(string text);</CODE
15650></P
15651><P
15652></P
15653></DIV
15654><P
15655>Displays <CODE
15656CLASS="parameter"
15657>text</CODE
15658> rather than 'sit' in
15659 viewer pie menu.</P
15660></DIV
15661><DIV
15662CLASS="section"
15663><HR><H2
15664CLASS="section"
15665><A
15666NAME="AEN4082"
15667>A.249. llSetSoundQueueing</A
15668></H2
15669><DIV
15670CLASS="funcsynopsis"
15671><P
15672></P
15673><A
15674NAME="AEN4084"
15675></A
15676><P
15677><CODE
15678><CODE
15679CLASS="FUNCDEF"
15680>llSetSoundQueueing</CODE
15681>(integer queue);</CODE
15682></P
15683><P
15684></P
15685></DIV
15686><P
15687>Sets whether successive calls to <A
15688HREF="#AEN3184"
15689>llPlaySound</A
15690>, <A
15691HREF="#AEN2773"
15692>llLoopSound</A
15693>, etc., (attached
15694 sounds) interrupt the playing sound. The default for objects is
15695 <A
15696HREF="#AEN5295"
15697>FALSE</A
15698>. Setting this value to
15699 <A
15700HREF="#AEN5295"
15701>TRUE</A
15702> will make the sound wait
15703 until the current playing sound reaches its end. The queue is one
15704 level deep.</P
15705></DIV
15706><DIV
15707CLASS="section"
15708><HR><H2
15709CLASS="section"
15710><A
15711NAME="AEN4095"
15712>A.250. llSetStatus</A
15713></H2
15714><DIV
15715CLASS="funcsynopsis"
15716><P
15717></P
15718><A
15719NAME="AEN4097"
15720></A
15721><P
15722><CODE
15723><CODE
15724CLASS="FUNCDEF"
15725>llSetStatus</CODE
15726>(integer status, integer value);</CODE
15727></P
15728><P
15729></P
15730></DIV
15731><P
15732>Sets the <CODE
15733CLASS="parameter"
15734>status</CODE
15735> to
15736 <CODE
15737CLASS="parameter"
15738>value</CODE
15739>. Use <A
15740HREF="#AEN5304"
15741>status constants</A
15742> for the values of
15743 <CODE
15744CLASS="parameter"
15745>status</CODE
15746>.</P
15747></DIV
15748><DIV
15749CLASS="section"
15750><HR><H2
15751CLASS="section"
15752><A
15753NAME="AEN4110"
15754>A.251. llSetText</A
15755></H2
15756><DIV
15757CLASS="funcsynopsis"
15758><P
15759></P
15760><A
15761NAME="AEN4112"
15762></A
15763><P
15764><CODE
15765><CODE
15766CLASS="FUNCDEF"
15767>llSetText</CODE
15768>(string text, vector color, float alpha);</CODE
15769></P
15770><P
15771></P
15772></DIV
15773><P
15774>Sets text that floats above object to
15775 <CODE
15776CLASS="parameter"
15777>text</CODE
15778>, using the specified
15779 <CODE
15780CLASS="parameter"
15781>color</CODE
15782> and
15783 <CODE
15784CLASS="parameter"
15785>alpha</CODE
15786>.</P
15787></DIV
15788><DIV
15789CLASS="section"
15790><HR><H2
15791CLASS="section"
15792><A
15793NAME="AEN4126"
15794>A.252. llSetTexture</A
15795></H2
15796><DIV
15797CLASS="funcsynopsis"
15798><P
15799></P
15800><A
15801NAME="AEN4128"
15802></A
15803><P
15804><CODE
15805><CODE
15806CLASS="FUNCDEF"
15807>llSetTexture</CODE
15808>(string texture, integer face);</CODE
15809></P
15810><P
15811></P
15812></DIV
15813><P
15814>Sets the <CODE
15815CLASS="parameter"
15816>texture</CODE
15817> from object
15818 inventory of <CODE
15819CLASS="parameter"
15820>face</CODE
15821>. If face is <A
15822HREF="#AEN6073"
15823>ALL_SIDES</A
15824>, set the texture to
15825 all faces.</P
15826></DIV
15827><DIV
15828CLASS="section"
15829><HR><H2
15830CLASS="section"
15831><A
15832NAME="AEN4140"
15833>A.253. llSetTextureAnim</A
15834></H2
15835><DIV
15836CLASS="funcsynopsis"
15837><P
15838></P
15839><A
15840NAME="AEN4142"
15841></A
15842><P
15843><CODE
15844><CODE
15845CLASS="FUNCDEF"
15846>llSetTextureAnim</CODE
15847>(integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate);</CODE
15848></P
15849><P
15850></P
15851></DIV
15852><P
15853>Animates a texture by setting the texture scale and
15854 offset. The mode is a mask of <A
15855HREF="#AEN5817"
15856>texture animation
15857 constants</A
15858>. You can only have one texture animation on an
15859 object, calling llSetTextureAnim more than once on an object will
15860 reset it.</P
15861><P
15862>You can only do one traditional animation, <A
15863HREF="#AEN5817"
15864>ROTATE</A
15865> or <A
15866HREF="#AEN5817"
15867>SCALE</A
15868> at a time, you
15869 cannot combine masks. In the case of <A
15870HREF="#AEN5817"
15871>ROTATE</A
15872> or <A
15873HREF="#AEN5817"
15874>SCALE</A
15875>,
15876 <CODE
15877CLASS="parameter"
15878>sizex</CODE
15879> and <CODE
15880CLASS="parameter"
15881>sizey</CODE
15882> are
15883 ignored, and <CODE
15884CLASS="parameter"
15885>start</CODE
15886> and
15887 <CODE
15888CLASS="parameter"
15889>length</CODE
15890> are used as the start and length
15891 values of the animation. For rotation,
15892 <CODE
15893CLASS="parameter"
15894>start</CODE
15895> and <CODE
15896CLASS="parameter"
15897>length</CODE
15898> are
15899 in radians.</P
15900><P
15901>The <CODE
15902CLASS="parameter"
15903>face</CODE
15904> specified which face to
15905 animate. If <CODE
15906CLASS="parameter"
15907>face</CODE
15908> is <A
15909HREF="#AEN6073"
15910>ALL_SIDES</A
15911>, all textures on the
15912 object are animated. </P
15913><P
15914>The <CODE
15915CLASS="parameter"
15916>sizex</CODE
15917> and
15918 <CODE
15919CLASS="parameter"
15920>sizey</CODE
15921> describe the layout of the frames
15922 within the texture. <CODE
15923CLASS="parameter"
15924>sizex</CODE
15925> specifies how
15926 many horizontal frames and <CODE
15927CLASS="parameter"
15928>sizey</CODE
15929> is how
15930 many vertical frames.</P
15931><P
15932><CODE
15933CLASS="parameter"
15934>start</CODE
15935> is the frame number to begin
15936 the animation on. Frames are numbered from left to right, top to
15937 bottom, starting at 0.</P
15938><P
15939><CODE
15940CLASS="parameter"
15941>length</CODE
15942> is the number of frames to
15943 animate. 0 means to animate all frames after the start
15944 frame.</P
15945><P
15946><CODE
15947CLASS="parameter"
15948>rate</CODE
15949> is the frame rate to animate
15950 at. 1.0 means 1 frame per second, 10.0 means 10
15951 frames per second, etc.</P
15952></DIV
15953><DIV
15954CLASS="section"
15955><HR><H2
15956CLASS="section"
15957><A
15958NAME="AEN4188"
15959>A.254. llSetTimerEvent</A
15960></H2
15961><DIV
15962CLASS="funcsynopsis"
15963><P
15964></P
15965><A
15966NAME="AEN4190"
15967></A
15968><P
15969><CODE
15970><CODE
15971CLASS="FUNCDEF"
15972>llSetTimerEvent</CODE
15973>(float sec);</CODE
15974></P
15975><P
15976></P
15977></DIV
15978><P
15979>Sets the <A
15980HREF="#AEN5211"
15981>timer</A
15982> event to
15983 be triggered every <CODE
15984CLASS="parameter"
15985>sec</CODE
15986> seconds. Passing in
15987 0.0 stops further <A
15988HREF="#AEN5211"
15989>timer</A
15990>
15991 events.</P
15992></DIV
15993><DIV
15994CLASS="section"
15995><HR><H2
15996CLASS="section"
15997><A
15998NAME="AEN4200"
15999>A.255. llSetTorque</A
16000></H2
16001><DIV
16002CLASS="funcsynopsis"
16003><P
16004></P
16005><A
16006NAME="AEN4202"
16007></A
16008><P
16009><CODE
16010><CODE
16011CLASS="FUNCDEF"
16012>llSetTorque</CODE
16013>(vector torque, integer local);</CODE
16014></P
16015><P
16016></P
16017></DIV
16018><P
16019>If the object is physical, this function sets the
16020 <CODE
16021CLASS="parameter"
16022>torque</CODE
16023>. The vector is in local coordinates
16024 if local is <A
16025HREF="#AEN5295"
16026>TRUE</A
16027>, global if
16028 <A
16029HREF="#AEN5295"
16030>FALSE</A
16031>.</P
16032></DIV
16033><DIV
16034CLASS="section"
16035><HR><H2
16036CLASS="section"
16037><A
16038NAME="AEN4214"
16039>A.256. llSetTouchText</A
16040></H2
16041><DIV
16042CLASS="funcsynopsis"
16043><P
16044></P
16045><A
16046NAME="AEN4216"
16047></A
16048><P
16049><CODE
16050><CODE
16051CLASS="FUNCDEF"
16052>llSetTouchText</CODE
16053>(string text);</CODE
16054></P
16055><P
16056></P
16057></DIV
16058><P
16059>Displays <CODE
16060CLASS="parameter"
16061>text</CODE
16062> in viewer pie menu that
16063 acts as a touch.</P
16064></DIV
16065><DIV
16066CLASS="section"
16067><HR><H2
16068CLASS="section"
16069><A
16070NAME="AEN4224"
16071>A.257. llSetVehicleFlags</A
16072></H2
16073><DIV
16074CLASS="funcsynopsis"
16075><P
16076></P
16077><A
16078NAME="AEN4226"
16079></A
16080><P
16081><CODE
16082><CODE
16083CLASS="FUNCDEF"
16084>llSetVehicleFlags</CODE
16085>(integer flags);</CODE
16086></P
16087><P
16088></P
16089></DIV
16090><P
16091>Sets the vehicle <CODE
16092CLASS="parameter"
16093>flags</CODE
16094> to TRUE. Valid
16095 parameters can be found in the <A
16096HREF="#AEN6231"
16097>vehicle flags constants</A
16098>
16099 section.</P
16100></DIV
16101><DIV
16102CLASS="section"
16103><HR><H2
16104CLASS="section"
16105><A
16106NAME="AEN4235"
16107>A.258. llSetVehicleFloatParam</A
16108></H2
16109><DIV
16110CLASS="funcsynopsis"
16111><P
16112></P
16113><A
16114NAME="AEN4237"
16115></A
16116><P
16117><CODE
16118><CODE
16119CLASS="FUNCDEF"
16120>llSetVehicleFloatParam</CODE
16121>(integer param_name, float param_value);</CODE
16122></P
16123><P
16124></P
16125></DIV
16126><P
16127>Sets the vehicle floating point parameter
16128 <CODE
16129CLASS="parameter"
16130>param_name</CODE
16131> to
16132 <CODE
16133CLASS="parameter"
16134>param_value</CODE
16135>. Valid parameters and their
16136 expected values can be found in the <A
16137HREF="#AEN6112"
16138>vehicle parameter
16139 constants</A
16140> section.</P
16141></DIV
16142><DIV
16143CLASS="section"
16144><HR><H2
16145CLASS="section"
16146><A
16147NAME="AEN4249"
16148>A.259. llSetVehicleType</A
16149></H2
16150><DIV
16151CLASS="funcsynopsis"
16152><P
16153></P
16154><A
16155NAME="AEN4251"
16156></A
16157><P
16158><CODE
16159><CODE
16160CLASS="FUNCDEF"
16161>llSetVehicleType</CODE
16162>(integer type);</CODE
16163></P
16164><P
16165></P
16166></DIV
16167><P
16168>Activates the vehicle action and choose vehicle
16169 <CODE
16170CLASS="parameter"
16171>type</CODE
16172>. Valid types and an explanation of
16173 their characteristics can be found in the <A
16174HREF="#AEN6288"
16175>vehicle type constants</A
16176>
16177 section.</P
16178></DIV
16179><DIV
16180CLASS="section"
16181><HR><H2
16182CLASS="section"
16183><A
16184NAME="AEN4260"
16185>A.260. llSetVehicleRotationParam</A
16186></H2
16187><DIV
16188CLASS="funcsynopsis"
16189><P
16190></P
16191><A
16192NAME="AEN4262"
16193></A
16194><P
16195><CODE
16196><CODE
16197CLASS="FUNCDEF"
16198>llSetVehicleRotationParam</CODE
16199>(integer param_name, rotation param_value);</CODE
16200></P
16201><P
16202></P
16203></DIV
16204><P
16205>Sets the vehicle rotation parameter
16206 <CODE
16207CLASS="parameter"
16208>param_name</CODE
16209> to
16210 <CODE
16211CLASS="parameter"
16212>param_value</CODE
16213>. Valid parameters can be found
16214 in the <A
16215HREF="#AEN6112"
16216>vehicle parameter
16217 constants</A
16218> section.</P
16219></DIV
16220><DIV
16221CLASS="section"
16222><HR><H2
16223CLASS="section"
16224><A
16225NAME="AEN4274"
16226>A.261. llSetVehicleVectorParam</A
16227></H2
16228><DIV
16229CLASS="funcsynopsis"
16230><P
16231></P
16232><A
16233NAME="AEN4276"
16234></A
16235><P
16236><CODE
16237><CODE
16238CLASS="FUNCDEF"
16239>llSetVehicleVectorParam</CODE
16240>(integer param_name, vector param_value);</CODE
16241></P
16242><P
16243></P
16244></DIV
16245><P
16246>Sets the vehicle vector parameter
16247 <CODE
16248CLASS="parameter"
16249>param_name</CODE
16250> to
16251 <CODE
16252CLASS="parameter"
16253>param_value</CODE
16254>. Valid parameters can be found
16255 in the <A
16256HREF="#AEN6112"
16257>vehicle parameter
16258 constants</A
16259> section.</P
16260></DIV
16261><DIV
16262CLASS="section"
16263><HR><H2
16264CLASS="section"
16265><A
16266NAME="AEN4288"
16267>A.262. llShout</A
16268></H2
16269><DIV
16270CLASS="funcsynopsis"
16271><P
16272></P
16273><A
16274NAME="AEN4290"
16275></A
16276><P
16277><CODE
16278><CODE
16279CLASS="FUNCDEF"
16280>llShout</CODE
16281>(integer channel, string text);</CODE
16282></P
16283><P
16284></P
16285></DIV
16286><P
16287>Shout <CODE
16288CLASS="parameter"
16289>text</CODE
16290> on
16291 <CODE
16292CLASS="parameter"
16293>channel</CODE
16294>. Channel 0 is the public chat
16295 channel that all avatars see as chat text. Channels 1 to
16296 2,147,483,648 are private channels that are not sent to avatars
16297 but other scripts can listen for through the <A
16298HREF="#AEN2665"
16299>llListen</A
16300> api.</P
16301></DIV
16302><DIV
16303CLASS="section"
16304><HR><H2
16305CLASS="section"
16306><A
16307NAME="AEN4302"
16308>A.263. llSin</A
16309></H2
16310><DIV
16311CLASS="funcsynopsis"
16312><P
16313></P
16314><A
16315NAME="AEN4304"
16316></A
16317><P
16318><CODE
16319><CODE
16320CLASS="FUNCDEF"
16321>float llSin</CODE
16322>(float theta);</CODE
16323></P
16324><P
16325></P
16326></DIV
16327><P
16328>Returns the sine of <CODE
16329CLASS="parameter"
16330>theta</CODE
16331> in
16332 radians.</P
16333></DIV
16334><DIV
16335CLASS="section"
16336><HR><H2
16337CLASS="section"
16338><A
16339NAME="AEN4312"
16340>A.264. llSitTarget</A
16341></H2
16342><DIV
16343CLASS="funcsynopsis"
16344><P
16345></P
16346><A
16347NAME="AEN4314"
16348></A
16349><P
16350><CODE
16351><CODE
16352CLASS="FUNCDEF"
16353>llSitTarget</CODE
16354>(vector offset, rotation rot);</CODE
16355></P
16356><P
16357></P
16358></DIV
16359><P
16360>Set the sit location for this object. If
16361 <CODE
16362CLASS="parameter"
16363>offset</CODE
16364> == <A
16365HREF="#AEN6080"
16366>ZERO_VECTOR</A
16367>
16368 clear the sit target.</P
16369></DIV
16370><DIV
16371CLASS="section"
16372><HR><H2
16373CLASS="section"
16374><A
16375NAME="AEN4325"
16376>A.265. llSleep</A
16377></H2
16378><DIV
16379CLASS="funcsynopsis"
16380><P
16381></P
16382><A
16383NAME="AEN4327"
16384></A
16385><P
16386><CODE
16387><CODE
16388CLASS="FUNCDEF"
16389>llSleep</CODE
16390>(float sec);</CODE
16391></P
16392><P
16393></P
16394></DIV
16395><P
16396>Puts the script to sleep for <CODE
16397CLASS="parameter"
16398>sec</CODE
16399>
16400 seconds.</P
16401></DIV
16402><DIV
16403CLASS="section"
16404><HR><H2
16405CLASS="section"
16406><A
16407NAME="AEN4335"
16408>A.266. llSqrt</A
16409></H2
16410><DIV
16411CLASS="funcsynopsis"
16412><P
16413></P
16414><A
16415NAME="AEN4337"
16416></A
16417><P
16418><CODE
16419><CODE
16420CLASS="FUNCDEF"
16421>float llSqrt</CODE
16422>(float val);</CODE
16423></P
16424><P
16425></P
16426></DIV
16427><P
16428>Returns the square root of <CODE
16429CLASS="parameter"
16430>val</CODE
16431>. If
16432 <CODE
16433CLASS="parameter"
16434>val</CODE
16435> is less than 0.0, this function returns
16436 0.0 and raises a math runtime error.</P
16437></DIV
16438><DIV
16439CLASS="section"
16440><HR><H2
16441CLASS="section"
16442><A
16443NAME="AEN4346"
16444>A.267. llStartAnimation</A
16445></H2
16446><DIV
16447CLASS="funcsynopsis"
16448><P
16449></P
16450><A
16451NAME="AEN4348"
16452></A
16453><P
16454><CODE
16455><CODE
16456CLASS="FUNCDEF"
16457>llStartAnimation</CODE
16458>(string anim);</CODE
16459></P
16460><P
16461></P
16462></DIV
16463><P
16464>This function starts animation <CODE
16465CLASS="parameter"
16466>anim</CODE
16467>
16468 for the avatar that owns the object.</P
16469><P
16470></P
16471><DIV
16472CLASS="variablelist"
16473><P
16474><B
16475>Valid strings for <CODE
16476CLASS="parameter"
16477>anim</CODE
16478></B
16479></P
16480><DL
16481><DT
16482>hold_R_bazooka, hold_R_handgun, hold_R_rifle</DT
16483><DD
16484><P
16485>Holds the appropriately shaped weapon in the
16486 right hand. Automatically switches to the aims (below) when
16487 user enters mouse look</P
16488></DD
16489><DT
16490>aim_R_bazooka, aim_R_handgun, aim_R_rifle</DT
16491><DD
16492><P
16493>Aims the appropriately shaped weapon along the
16494 direction the avatar is looking.</P
16495></DD
16496><DT
16497>away</DT
16498><DD
16499><P
16500>Flops over in "away from keyboard"
16501 state.</P
16502></DD
16503><DT
16504>backflip</DT
16505><DD
16506><P
16507>Performs a backflip.</P
16508></DD
16509><DT
16510>bow</DT
16511><DD
16512><P
16513>Bows at waist.</P
16514></DD
16515><DT
16516>brush</DT
16517><DD
16518><P
16519>Brushes dirt from shirt.</P
16520></DD
16521><DT
16522>clap</DT
16523><DD
16524><P
16525>Applauds.</P
16526></DD
16527><DT
16528>courtbow</DT
16529><DD
16530><P
16531>Bows with a courtly flourish.</P
16532></DD
16533><DT
16534>crouch</DT
16535><DD
16536><P
16537>Crouches in place.</P
16538></DD
16539><DT
16540>crouchwalk</DT
16541><DD
16542><P
16543>Walks in place while crouching.</P
16544></DD
16545><DT
16546>dance1, dance2, dance3, dance4, dance5, dance6, dance7, dance8</DT
16547><DD
16548><P
16549>Various dance maneuvers.</P
16550></DD
16551><DT
16552>falldown</DT
16553><DD
16554><P
16555>Freefall falling animation.</P
16556></DD
16557><DT
16558>female_walk</DT
16559><DD
16560><P
16561>Walks with hip sway.</P
16562></DD
16563><DT
16564>fly</DT
16565><DD
16566><P
16567>Flies forward.</P
16568></DD
16569><DT
16570>flyslow</DT
16571><DD
16572><P
16573>Flies forward at a less aggressive
16574 angle.</P
16575></DD
16576><DT
16577>hello</DT
16578><DD
16579><P
16580>Waves.</P
16581></DD
16582><DT
16583>hold_throw_R</DT
16584><DD
16585><P
16586>Hold object in right hand, prepared to throw
16587 it.</P
16588></DD
16589><DT
16590>hover</DT
16591><DD
16592><P
16593>Hovers in place.</P
16594></DD
16595><DT
16596>hover_down</DT
16597><DD
16598><P
16599>Pretends to hover straight
16600 down.</P
16601></DD
16602><DT
16603>hover_up</DT
16604><DD
16605><P
16606>Pretends to hover straight
16607 up.</P
16608></DD
16609><DT
16610>jump</DT
16611><DD
16612><P
16613>Midair jump position.</P
16614></DD
16615><DT
16616>kick_roundhouse_R</DT
16617><DD
16618><P
16619>Roundhouse kick with right
16620 leg.</P
16621></DD
16622><DT
16623>land</DT
16624><DD
16625><P
16626>Lands after flying.</P
16627></DD
16628><DT
16629>prejump</DT
16630><DD
16631><P
16632>Prepares to jump.</P
16633></DD
16634><DT
16635>punch_L</DT
16636><DD
16637><P
16638>Punch with left hand.</P
16639></DD
16640><DT
16641>punch_R</DT
16642><DD
16643><P
16644>Punch with right hand.</P
16645></DD
16646><DT
16647>punch_onetwo</DT
16648><DD
16649><P
16650>Punch with one hand then the
16651 other.</P
16652></DD
16653><DT
16654>run</DT
16655><DD
16656><P
16657>Runs in place.</P
16658></DD
16659><DT
16660>salute</DT
16661><DD
16662><P
16663>Salutes with right hand.</P
16664></DD
16665><DT
16666>sit</DT
16667><DD
16668><P
16669>Sits on object at knee
16670 height.</P
16671></DD
16672><DT
16673>sit_ground</DT
16674><DD
16675><P
16676>Sits down on ground.</P
16677></DD
16678><DT
16679>slowwalk</DT
16680><DD
16681><P
16682>Walks in place slowly.</P
16683></DD
16684><DT
16685>smoke_idle</DT
16686><DD
16687><P
16688>Leans on imaginary prop while holding
16689 cigarette.</P
16690></DD
16691><DT
16692>smoke_inhale</DT
16693><DD
16694><P
16695>Leans on imaginary prop and smokes a
16696 cigarette.</P
16697></DD
16698><DT
16699>smoke_throw_down</DT
16700><DD
16701><P
16702>Leans on imaginary prop, throws down a
16703 cigarette, and stamps it out.</P
16704></DD
16705><DT
16706>snapshot</DT
16707><DD
16708><P
16709>Pantomimes taking a picture.</P
16710></DD
16711><DT
16712>soft_land</DT
16713><DD
16714><P
16715>Stumbles a bit as if
16716 landing.</P
16717></DD
16718><DT
16719>stand</DT
16720><DD
16721><P
16722>Stands in place.</P
16723></DD
16724><DT
16725>standup</DT
16726><DD
16727><P
16728>Falls on face and stands up.</P
16729></DD
16730><DT
16731>stride</DT
16732><DD
16733><P
16734>Legs extended as if stepping off of a
16735 ledge.</P
16736></DD
16737><DT
16738>sword_strike_R</DT
16739><DD
16740><P
16741>Strike with sword in right
16742 hand.</P
16743></DD
16744><DT
16745>talk</DT
16746><DD
16747><P
16748>Head moves as if talking.</P
16749></DD
16750><DT
16751>throw_R</DT
16752><DD
16753><P
16754>Throws object in right hand.</P
16755></DD
16756><DT
16757>tryon_shirt</DT
16758><DD
16759><P
16760>Turns around and models a new
16761 shirt.</P
16762></DD
16763><DT
16764>turnleft</DT
16765><DD
16766><P
16767>Pretends to turn left.</P
16768></DD
16769><DT
16770>turnright</DT
16771><DD
16772><P
16773>Pretends to turn right.</P
16774></DD
16775><DT
16776>type</DT
16777><DD
16778><P
16779>Makes typing motion.</P
16780></DD
16781><DT
16782>uphillwalk</DT
16783><DD
16784><P
16785>Walks uphill in place.</P
16786></DD
16787><DT
16788>walk</DT
16789><DD
16790><P
16791>Walks in place.</P
16792></DD
16793><DT
16794>whisper</DT
16795><DD
16796><P
16797>Whispers behind hand.</P
16798></DD
16799><DT
16800>whistle</DT
16801><DD
16802><P
16803>Whistles with hands in
16804 mouth.</P
16805></DD
16806><DT
16807>yell</DT
16808><DD
16809><P
16810>Shouts between cupped hands.</P
16811></DD
16812></DL
16813></DIV
16814></DIV
16815><DIV
16816CLASS="section"
16817><HR><H2
16818CLASS="section"
16819><A
16820NAME="AEN4578"
16821>A.268. llStopAnimation</A
16822></H2
16823><DIV
16824CLASS="funcsynopsis"
16825><P
16826></P
16827><A
16828NAME="AEN4580"
16829></A
16830><P
16831><CODE
16832><CODE
16833CLASS="FUNCDEF"
16834>llStopAnimation</CODE
16835>(string anim);</CODE
16836></P
16837><P
16838></P
16839></DIV
16840><P
16841>Stop animation <CODE
16842CLASS="parameter"
16843>anim</CODE
16844> for avatar that
16845 owns object.</P
16846></DIV
16847><DIV
16848CLASS="section"
16849><HR><H2
16850CLASS="section"
16851><A
16852NAME="AEN4588"
16853>A.269. llStopHover</A
16854></H2
16855><DIV
16856CLASS="funcsynopsis"
16857><P
16858></P
16859><A
16860NAME="AEN4590"
16861></A
16862><P
16863><CODE
16864><CODE
16865CLASS="FUNCDEF"
16866>llStopHover</CODE
16867>(void);</CODE
16868></P
16869><P
16870></P
16871></DIV
16872><P
16873>Stop hover to a height.</P
16874></DIV
16875><DIV
16876CLASS="section"
16877><HR><H2
16878CLASS="section"
16879><A
16880NAME="AEN4596"
16881>A.270. llStopLookAt</A
16882></H2
16883><DIV
16884CLASS="funcsynopsis"
16885><P
16886></P
16887><A
16888NAME="AEN4598"
16889></A
16890><P
16891><CODE
16892><CODE
16893CLASS="FUNCDEF"
16894>llStopLookAt</CODE
16895>(void);</CODE
16896></P
16897><P
16898></P
16899></DIV
16900><P
16901>Stop causing object to look at target.</P
16902></DIV
16903><DIV
16904CLASS="section"
16905><HR><H2
16906CLASS="section"
16907><A
16908NAME="AEN4604"
16909>A.271. llStopMoveToTarget</A
16910></H2
16911><DIV
16912CLASS="funcsynopsis"
16913><P
16914></P
16915><A
16916NAME="AEN4606"
16917></A
16918><P
16919><CODE
16920><CODE
16921CLASS="FUNCDEF"
16922>llStopMoveToTarget</CODE
16923>(void);</CODE
16924></P
16925><P
16926></P
16927></DIV
16928><P
16929>Stops critically damped motion.</P
16930></DIV
16931><DIV
16932CLASS="section"
16933><HR><H2
16934CLASS="section"
16935><A
16936NAME="AEN4612"
16937>A.272. llStopPointAt</A
16938></H2
16939><DIV
16940CLASS="funcsynopsis"
16941><P
16942></P
16943><A
16944NAME="AEN4614"
16945></A
16946><P
16947><CODE
16948><CODE
16949CLASS="FUNCDEF"
16950>llStopPointAt</CODE
16951>(void);</CODE
16952></P
16953><P
16954></P
16955></DIV
16956><P
16957>Stop avatar that owns object pointing.</P
16958></DIV
16959><DIV
16960CLASS="section"
16961><HR><H2
16962CLASS="section"
16963><A
16964NAME="AEN4620"
16965>A.273. llStopSound</A
16966></H2
16967><DIV
16968CLASS="funcsynopsis"
16969><P
16970></P
16971><A
16972NAME="AEN4622"
16973></A
16974><P
16975><CODE
16976><CODE
16977CLASS="FUNCDEF"
16978>llStopSound</CODE
16979>(void);</CODE
16980></P
16981><P
16982></P
16983></DIV
16984><P
16985>Stops a currently playing attached sound started with <A
16986HREF="#AEN3184"
16987>llPlaySound</A
16988> or <A
16989HREF="#AEN2773"
16990>llLoopSound</A
16991>. Has no effect on
16992 sounds started with <A
16993HREF="#AEN4756"
16994>llTriggerSound</A
16995>.</P
16996></DIV
16997><DIV
16998CLASS="section"
16999><HR><H2
17000CLASS="section"
17001><A
17002NAME="AEN4631"
17003>A.274. llStringLength</A
17004></H2
17005><DIV
17006CLASS="funcsynopsis"
17007><P
17008></P
17009><A
17010NAME="AEN4633"
17011></A
17012><P
17013><CODE
17014><CODE
17015CLASS="FUNCDEF"
17016>integer llStringLength</CODE
17017>(string src);</CODE
17018></P
17019><P
17020></P
17021></DIV
17022><P
17023>Returns the number of characters in
17024 <CODE
17025CLASS="parameter"
17026>src</CODE
17027>.</P
17028></DIV
17029><DIV
17030CLASS="section"
17031><HR><H2
17032CLASS="section"
17033><A
17034NAME="AEN4641"
17035>A.275. llSubStringIndex</A
17036></H2
17037><DIV
17038CLASS="funcsynopsis"
17039><P
17040></P
17041><A
17042NAME="AEN4643"
17043></A
17044><P
17045><CODE
17046><CODE
17047CLASS="FUNCDEF"
17048>integer llSubStringIndex</CODE
17049>(string source, string pattern);</CODE
17050></P
17051><P
17052></P
17053></DIV
17054><P
17055>Finds index in source where pattern first appears. Returns
17056 -1 if no match is found.</P
17057></DIV
17058><DIV
17059CLASS="section"
17060><HR><H2
17061CLASS="section"
17062><A
17063NAME="AEN4652"
17064>A.276. llStringToBase64</A
17065></H2
17066><DIV
17067CLASS="funcsynopsis"
17068><P
17069></P
17070><A
17071NAME="AEN4654"
17072></A
17073><P
17074><CODE
17075><CODE
17076CLASS="FUNCDEF"
17077>string llStringToBase64</CODE
17078>(string str);</CODE
17079></P
17080><P
17081></P
17082></DIV
17083><P
17084>Converts a string to the Base 64 representation of the string.</P
17085></DIV
17086><DIV
17087CLASS="section"
17088><HR><H2
17089CLASS="section"
17090><A
17091NAME="AEN4661"
17092>A.277. llTakeControls</A
17093></H2
17094><DIV
17095CLASS="funcsynopsis"
17096><P
17097></P
17098><A
17099NAME="AEN4663"
17100></A
17101><P
17102><CODE
17103><CODE
17104CLASS="FUNCDEF"
17105>llTakeControls</CODE
17106>(integer controls, integer accept, integer pass_on);</CODE
17107></P
17108><P
17109></P
17110></DIV
17111><P
17112>If (<CODE
17113CLASS="parameter"
17114>accept</CODE
17115> ==
17116 (<CODE
17117CLASS="parameter"
17118>controls</CODE
17119> &#38; input)), send input to
17120 object. If the boolean <CODE
17121CLASS="parameter"
17122>pass_on</CODE
17123> is <A
17124HREF="#AEN5295"
17125>TRUE</A
17126>, also send input to
17127 avatar.</P
17128></DIV
17129><DIV
17130CLASS="section"
17131><HR><H2
17132CLASS="section"
17133><A
17134NAME="AEN4678"
17135>A.278. llTan</A
17136></H2
17137><DIV
17138CLASS="funcsynopsis"
17139><P
17140></P
17141><A
17142NAME="AEN4680"
17143></A
17144><P
17145><CODE
17146><CODE
17147CLASS="FUNCDEF"
17148>float llTan</CODE
17149>(float theta);</CODE
17150></P
17151><P
17152></P
17153></DIV
17154><P
17155>Returns the tangent of <CODE
17156CLASS="parameter"
17157>theta</CODE
17158>
17159 radians.</P
17160></DIV
17161><DIV
17162CLASS="section"
17163><HR><H2
17164CLASS="section"
17165><A
17166NAME="AEN4688"
17167>A.279. llTarget</A
17168></H2
17169><DIV
17170CLASS="funcsynopsis"
17171><P
17172></P
17173><A
17174NAME="AEN4690"
17175></A
17176><P
17177><CODE
17178><CODE
17179CLASS="FUNCDEF"
17180>integer llTarget</CODE
17181>(vector position, float range);</CODE
17182></P
17183><P
17184></P
17185></DIV
17186><P
17187>Set object position within <CODE
17188CLASS="parameter"
17189>range</CODE
17190> of
17191 <CODE
17192CLASS="parameter"
17193>position</CODE
17194> as a target and returns an integer
17195 ID for the target.</P
17196></DIV
17197><DIV
17198CLASS="section"
17199><HR><H2
17200CLASS="section"
17201><A
17202NAME="AEN4701"
17203>A.280. llTargetOmega</A
17204></H2
17205><DIV
17206CLASS="funcsynopsis"
17207><P
17208></P
17209><A
17210NAME="AEN4703"
17211></A
17212><P
17213><CODE
17214><CODE
17215CLASS="FUNCDEF"
17216>llTargetOmega</CODE
17217>(vector axis, float spinrate, float gain);</CODE
17218></P
17219><P
17220></P
17221></DIV
17222><P
17223>Attempt to spin at <CODE
17224CLASS="parameter"
17225>spinrate</CODE
17226> with
17227 strength <CODE
17228CLASS="parameter"
17229>gain</CODE
17230> on
17231 <CODE
17232CLASS="parameter"
17233>axis</CODE
17234>. A <CODE
17235CLASS="parameter"
17236>spinrate</CODE
17237> of
17238 0.0 cancels the spin. This function works in object local
17239 coordinates for child objects and works in world coordinates for
17240 root objects.</P
17241></DIV
17242><DIV
17243CLASS="section"
17244><HR><H2
17245CLASS="section"
17246><A
17247NAME="AEN4718"
17248>A.281. llTargetRemove</A
17249></H2
17250><DIV
17251CLASS="funcsynopsis"
17252><P
17253></P
17254><A
17255NAME="AEN4720"
17256></A
17257><P
17258><CODE
17259><CODE
17260CLASS="FUNCDEF"
17261>llTargetRemove</CODE
17262>(integer tnumber);</CODE
17263></P
17264><P
17265></P
17266></DIV
17267><P
17268>Remove target number <CODE
17269CLASS="parameter"
17270>tnumber</CODE
17271>.</P
17272></DIV
17273><DIV
17274CLASS="section"
17275><HR><H2
17276CLASS="section"
17277><A
17278NAME="AEN4728"
17279>A.282. llTeleportAgentHome</A
17280></H2
17281><DIV
17282CLASS="funcsynopsis"
17283><P
17284></P
17285><A
17286NAME="AEN4730"
17287></A
17288><P
17289><CODE
17290><CODE
17291CLASS="FUNCDEF"
17292>llTeleportAgentHome</CODE
17293>(key id);</CODE
17294></P
17295><P
17296></P
17297></DIV
17298><P
17299>Teleport agent on the owner's land to agent's home
17300 location.</P
17301></DIV
17302><DIV
17303CLASS="section"
17304><HR><H2
17305CLASS="section"
17306><A
17307NAME="AEN4737"
17308>A.283. llToLower</A
17309></H2
17310><DIV
17311CLASS="funcsynopsis"
17312><P
17313></P
17314><A
17315NAME="AEN4739"
17316></A
17317><P
17318><CODE
17319><CODE
17320CLASS="FUNCDEF"
17321>llToLower</CODE
17322>();</CODE
17323></P
17324><P
17325></P
17326></DIV
17327><P
17328></P
17329></DIV
17330><DIV
17331CLASS="section"
17332><HR><H2
17333CLASS="section"
17334><A
17335NAME="AEN4746"
17336>A.284. llToUpper</A
17337></H2
17338><DIV
17339CLASS="funcsynopsis"
17340><P
17341></P
17342><A
17343NAME="AEN4748"
17344></A
17345><P
17346><CODE
17347><CODE
17348CLASS="FUNCDEF"
17349>string llToUpper</CODE
17350>(string src);</CODE
17351></P
17352><P
17353></P
17354></DIV
17355><P
17356>Returns <CODE
17357CLASS="parameter"
17358>src</CODE
17359> in all lower case.</P
17360></DIV
17361><DIV
17362CLASS="section"
17363><HR><H2
17364CLASS="section"
17365><A
17366NAME="AEN4756"
17367>A.285. llTriggerSound</A
17368></H2
17369><DIV
17370CLASS="funcsynopsis"
17371><P
17372></P
17373><A
17374NAME="AEN4758"
17375></A
17376><P
17377><CODE
17378><CODE
17379CLASS="FUNCDEF"
17380>llTriggerSound</CODE
17381>(string sound, float volume);</CODE
17382></P
17383><P
17384></P
17385></DIV
17386><P
17387>Plays a transient sound NOT attached to an object. The sound
17388 plays from a stationary position located at the center of the
17389 object at the time of the trigger. There is no limit to the number
17390 of triggered sounds which can be generated by an object, and
17391 calling <A
17392HREF="#AEN4756"
17393>llTriggerSound</A
17394>
17395 does not affect the attached sounds created by <A
17396HREF="#AEN3184"
17397>llPlaySound</A
17398> and <A
17399HREF="#AEN2773"
17400>llLoopSound</A
17401>. This is very useful
17402 for things like collision noises, explosions, etc. There is no
17403 way to stop or alter the volume of a sound triggered by
17404 this function.</P
17405></DIV
17406><DIV
17407CLASS="section"
17408><HR><H2
17409CLASS="section"
17410><A
17411NAME="AEN4770"
17412>A.286. llTriggerSoundLimited</A
17413></H2
17414><DIV
17415CLASS="funcsynopsis"
17416><P
17417></P
17418><A
17419NAME="AEN4772"
17420></A
17421><P
17422><CODE
17423><CODE
17424CLASS="FUNCDEF"
17425>llTriggerSoundLimited</CODE
17426>(string sound, float volume, vector tne, vector bsw);</CODE
17427></P
17428><P
17429></P
17430></DIV
17431><P
17432>Plays a transient sound NOT attached to an object with its
17433 audible range limited by the axis aligned bounding box define by
17434 <CODE
17435CLASS="parameter"
17436>tne</CODE
17437> (top-north-eash) and
17438 <CODE
17439CLASS="parameter"
17440>bsw</CODE
17441> (bottom-south-west). The sound plays
17442 from a stationary position located at the center of the object at
17443 the time of the trigger. There is no limit to the number of
17444 triggered sounds which can be generated by an object, and calling
17445 <A
17446HREF="#AEN4756"
17447>llTriggerSound</A
17448> does not
17449 affect the attached sounds created by <A
17450HREF="#AEN3184"
17451>llPlaySound</A
17452> and <A
17453HREF="#AEN2773"
17454>llLoopSound</A
17455>. This is very useful
17456 for things like collision noises, explosions, etc. There is no way
17457 to stop or alter the volume of a sound triggered by this
17458 function.</P
17459></DIV
17460><DIV
17461CLASS="section"
17462><HR><H2
17463CLASS="section"
17464><A
17465NAME="AEN4790"
17466>A.287. llUnescapeURL</A
17467></H2
17468><DIV
17469CLASS="funcsynopsis"
17470><P
17471></P
17472><A
17473NAME="AEN4792"
17474></A
17475><P
17476><CODE
17477><CODE
17478CLASS="FUNCDEF"
17479>string llUnescapeURL</CODE
17480>(string url);</CODE
17481></P
17482><P
17483></P
17484></DIV
17485><P
17486>Returns the string that is the URL unescaped version of <CODE
17487CLASS="parameter"
17488>url</CODE
17489>,
17490 replacing %20 with spaces etc.</P
17491></DIV
17492><DIV
17493CLASS="section"
17494><HR><H2
17495CLASS="section"
17496><A
17497NAME="AEN4800"
17498>A.288. llUnSit</A
17499></H2
17500><DIV
17501CLASS="funcsynopsis"
17502><P
17503></P
17504><A
17505NAME="AEN4802"
17506></A
17507><P
17508><CODE
17509><CODE
17510CLASS="FUNCDEF"
17511>llUnSit</CODE
17512>(key id);</CODE
17513></P
17514><P
17515></P
17516></DIV
17517><P
17518>If agent identified by <CODE
17519CLASS="parameter"
17520>id</CODE
17521> is sitting
17522 on the object the script is attached to or is over land owned by
17523 the objects owner, the agent is forced to stand up.</P
17524></DIV
17525><DIV
17526CLASS="section"
17527><HR><H2
17528CLASS="section"
17529><A
17530NAME="AEN4810"
17531>A.289. llVecDist</A
17532></H2
17533><DIV
17534CLASS="funcsynopsis"
17535><P
17536></P
17537><A
17538NAME="AEN4812"
17539></A
17540><P
17541><CODE
17542><CODE
17543CLASS="FUNCDEF"
17544>float llVecDist</CODE
17545>(vector a, vector b);</CODE
17546></P
17547><P
17548></P
17549></DIV
17550><P
17551>Returns the distance from <CODE
17552CLASS="parameter"
17553>a</CODE
17554> to
17555 <CODE
17556CLASS="parameter"
17557>b</CODE
17558></P
17559></DIV
17560><DIV
17561CLASS="section"
17562><HR><H2
17563CLASS="section"
17564><A
17565NAME="AEN4823"
17566>A.290. llVecMag</A
17567></H2
17568><DIV
17569CLASS="funcsynopsis"
17570><P
17571></P
17572><A
17573NAME="AEN4825"
17574></A
17575><P
17576><CODE
17577><CODE
17578CLASS="FUNCDEF"
17579>float llVecMag</CODE
17580>(vector vec);</CODE
17581></P
17582><P
17583></P
17584></DIV
17585><P
17586>Returns the magnitude of <CODE
17587CLASS="parameter"
17588>vec</CODE
17589>.</P
17590></DIV
17591><DIV
17592CLASS="section"
17593><HR><H2
17594CLASS="section"
17595><A
17596NAME="AEN4833"
17597>A.291. llVecNorm</A
17598></H2
17599><DIV
17600CLASS="funcsynopsis"
17601><P
17602></P
17603><A
17604NAME="AEN4835"
17605></A
17606><P
17607><CODE
17608><CODE
17609CLASS="FUNCDEF"
17610>vector llVecNorm</CODE
17611>(vector vec);</CODE
17612></P
17613><P
17614></P
17615></DIV
17616><P
17617>Returns normalized <CODE
17618CLASS="parameter"
17619>vec</CODE
17620>.</P
17621></DIV
17622><DIV
17623CLASS="section"
17624><HR><H2
17625CLASS="section"
17626><A
17627NAME="AEN4843"
17628>A.292. llVolumeDetect</A
17629></H2
17630><DIV
17631CLASS="funcsynopsis"
17632><P
17633></P
17634><A
17635NAME="AEN4845"
17636></A
17637><P
17638><CODE
17639><CODE
17640CLASS="FUNCDEF"
17641>llVolumeDetect</CODE
17642>(integer detect);</CODE
17643></P
17644><P
17645></P
17646></DIV
17647><P
17648>When detect = TRUE, this makes the entire link set the script is attached to phantom but if another object interpenetrates it, it will get a collision_start event. When an object stops interpenetrating, a collision_end event is generated. While the other is interpenetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events. Collision filters work normally.</P
17649></DIV
17650><DIV
17651CLASS="section"
17652><HR><H2
17653CLASS="section"
17654><A
17655NAME="AEN4852"
17656>A.293. llWater</A
17657></H2
17658><DIV
17659CLASS="funcsynopsis"
17660><P
17661></P
17662><A
17663NAME="AEN4854"
17664></A
17665><P
17666><CODE
17667><CODE
17668CLASS="FUNCDEF"
17669>float llWater</CODE
17670>(vector offset);</CODE
17671></P
17672><P
17673></P
17674></DIV
17675><P
17676>Returns the water height at the object position +
17677 <CODE
17678CLASS="parameter"
17679>offset</CODE
17680>.</P
17681></DIV
17682><DIV
17683CLASS="section"
17684><HR><H2
17685CLASS="section"
17686><A
17687NAME="AEN4862"
17688>A.294. llWhisper</A
17689></H2
17690><DIV
17691CLASS="funcsynopsis"
17692><P
17693></P
17694><A
17695NAME="AEN4864"
17696></A
17697><P
17698><CODE
17699><CODE
17700CLASS="FUNCDEF"
17701>llWhisper</CODE
17702>(integer channel, string text);</CODE
17703></P
17704><P
17705></P
17706></DIV
17707><P
17708>Whisper <CODE
17709CLASS="parameter"
17710>text</CODE
17711> on
17712 <CODE
17713CLASS="parameter"
17714>channel</CODE
17715>. Channel 0 is the public chat
17716 channel that all avatars see as chat text. Channels 1 to
17717 2,147,483,648 are private channels that are not sent to avatars
17718 but other scripts can listen for through the <A
17719HREF="#AEN2665"
17720>llListen</A
17721> api.</P
17722></DIV
17723><DIV
17724CLASS="section"
17725><HR><H2
17726CLASS="section"
17727><A
17728NAME="AEN4876"
17729>A.295. llWind</A
17730></H2
17731><DIV
17732CLASS="funcsynopsis"
17733><P
17734></P
17735><A
17736NAME="AEN4878"
17737></A
17738><P
17739><CODE
17740><CODE
17741CLASS="FUNCDEF"
17742>vector llWind</CODE
17743>(vector offset);</CODE
17744></P
17745><P
17746></P
17747></DIV
17748><P
17749>Returns the wind velocity below the object position +
17750 <CODE
17751CLASS="parameter"
17752>offset</CODE
17753>.</P
17754></DIV
17755><DIV
17756CLASS="section"
17757><HR><H2
17758CLASS="section"
17759><A
17760NAME="AEN4886"
17761>A.296. llXorBase64Strings</A
17762></H2
17763><DIV
17764CLASS="funcsynopsis"
17765><P
17766></P
17767><A
17768NAME="AEN4888"
17769></A
17770><P
17771><CODE
17772><CODE
17773CLASS="FUNCDEF"
17774>string llXorBase64Strings</CODE
17775>(string s1, string s2);</CODE
17776></P
17777><P
17778></P
17779></DIV
17780><P
17781>Performs an exclusive or on two Base 64 strings and returns
17782 a Base 64 string. The <CODE
17783CLASS="parameter"
17784>s2</CODE
17785> parameter repeats if
17786 it is shorter than <CODE
17787CLASS="parameter"
17788>s1</CODE
17789>.</P
17790></DIV
17791></DIV
17792><DIV
17793CLASS="appendix"
17794><HR><H1
17795><A
17796NAME="AEN4899"
17797></A
17798>Appendix B. Events</H1
17799><P
17800>Every state must have at least one handler. You can choose to
17801 handle an event by defining one of the reserved event
17802 handlers named here.</P
17803><DIV
17804CLASS="section"
17805><HR><H2
17806CLASS="section"
17807><A
17808NAME="AEN4902"
17809>B.1. at_rot_target</A
17810></H2
17811><DIV
17812CLASS="funcsynopsis"
17813><P
17814></P
17815><A
17816NAME="AEN4904"
17817></A
17818><P
17819><CODE
17820><CODE
17821CLASS="FUNCDEF"
17822>at_rot_target</CODE
17823>(integer number, rotation target_rotation, rotation our_rotation);</CODE
17824></P
17825><P
17826></P
17827></DIV
17828><P
17829>This event is triggered when a script comes within a defined
17830 angle of a target rotation. The range is set by a call to <A
17831HREF="#AEN3579"
17832>llRotTarget</A
17833>.</P
17834></DIV
17835><DIV
17836CLASS="section"
17837><HR><H2
17838CLASS="section"
17839><A
17840NAME="AEN4916"
17841>B.2. at_target</A
17842></H2
17843><DIV
17844CLASS="funcsynopsis"
17845><P
17846></P
17847><A
17848NAME="AEN4918"
17849></A
17850><P
17851><CODE
17852><CODE
17853CLASS="FUNCDEF"
17854>not_at_target</CODE
17855>(integer number, vector target_position, vector our_position);</CODE
17856></P
17857><P
17858></P
17859></DIV
17860><P
17861>This event is triggered when a script comes within a defined
17862 range from a target position. The range and position are set by a
17863 call to <A
17864HREF="#AEN4688"
17865>llTarget</A
17866>.</P
17867></DIV
17868><DIV
17869CLASS="section"
17870><HR><H2
17871CLASS="section"
17872><A
17873NAME="AEN4930"
17874>B.3. attach</A
17875></H2
17876><DIV
17877CLASS="funcsynopsis"
17878><P
17879></P
17880><A
17881NAME="AEN4932"
17882></A
17883><P
17884><CODE
17885><CODE
17886CLASS="FUNCDEF"
17887>attach</CODE
17888>(key attached);</CODE
17889></P
17890><P
17891></P
17892></DIV
17893><P
17894>This event is triggered whenever a object with this script
17895 is attached or detached from an avatar. If it is attached,
17896 attached is the key of the avatar it is attached to, otherwise
17897 attached is <A
17898HREF="#AEN6070"
17899>NULL_KEY</A
17900>.</P
17901></DIV
17902><DIV
17903CLASS="section"
17904><HR><H2
17905CLASS="section"
17906><A
17907NAME="AEN4940"
17908>B.4. changed</A
17909></H2
17910><DIV
17911CLASS="funcsynopsis"
17912><P
17913></P
17914><A
17915NAME="AEN4942"
17916></A
17917><P
17918><CODE
17919><CODE
17920CLASS="FUNCDEF"
17921>changed</CODE
17922>(integer changed);</CODE
17923></P
17924><P
17925></P
17926></DIV
17927><P
17928>Triggered when various events change the object. The
17929 <CODE
17930CLASS="parameter"
17931>changed</CODE
17932> will be a bitfield of <A
17933HREF="#AEN5690"
17934>change constants</A
17935>.</P
17936></DIV
17937><DIV
17938CLASS="section"
17939><HR><H2
17940CLASS="section"
17941><A
17942NAME="AEN4951"
17943>B.5. collision</A
17944></H2
17945><DIV
17946CLASS="funcsynopsis"
17947><P
17948></P
17949><A
17950NAME="AEN4953"
17951></A
17952><P
17953><CODE
17954><CODE
17955CLASS="FUNCDEF"
17956>collision</CODE
17957>(integer total_number);</CODE
17958></P
17959><P
17960></P
17961></DIV
17962><P
17963>This event is raised while another object is colliding with
17964 the object the script is attached to. The number of detected
17965 objects is passed to the script. Information on those objects may
17966 be gathered via the <A
17967HREF="#lib_lldetected"
17968>llDetected*</A
17969> library
17970 functions. (Collisions are also generated if a user walks into an
17971 object.)</P
17972></DIV
17973><DIV
17974CLASS="section"
17975><HR><H2
17976CLASS="section"
17977><A
17978NAME="AEN4961"
17979>B.6. collision_end</A
17980></H2
17981><DIV
17982CLASS="funcsynopsis"
17983><P
17984></P
17985><A
17986NAME="AEN4963"
17987></A
17988><P
17989><CODE
17990><CODE
17991CLASS="FUNCDEF"
17992>collision_end</CODE
17993>(integer total_number);</CODE
17994></P
17995><P
17996></P
17997></DIV
17998><P
17999>This event is raised when another object stops colliding
18000 with the object the script is attached to. The number of detected
18001 objects is passed to the script. Information on those objects may
18002 be gathered via the <A
18003HREF="#lib_lldetected"
18004>llDetected*</A
18005> library
18006 functions. (Collisions are also generated if a user walks into an
18007 object.)</P
18008></DIV
18009><DIV
18010CLASS="section"
18011><HR><H2
18012CLASS="section"
18013><A
18014NAME="AEN4971"
18015>B.7. collision_start</A
18016></H2
18017><DIV
18018CLASS="funcsynopsis"
18019><P
18020></P
18021><A
18022NAME="AEN4973"
18023></A
18024><P
18025><CODE
18026><CODE
18027CLASS="FUNCDEF"
18028>collision_start</CODE
18029>(integer total_number);</CODE
18030></P
18031><P
18032></P
18033></DIV
18034><P
18035>This event is raised when another object begins to collide
18036 with the object the script is attached to. The number of detected
18037 objects is passed to the script. Information on those objects may
18038 be gathered via the <A
18039HREF="#lib_lldetected"
18040>llDetected*</A
18041> library
18042 functions. (Collisions are also generated if a user walks into an
18043 object.)</P
18044></DIV
18045><DIV
18046CLASS="section"
18047><HR><H2
18048CLASS="section"
18049><A
18050NAME="AEN4981"
18051>B.8. control</A
18052></H2
18053><DIV
18054CLASS="funcsynopsis"
18055><P
18056></P
18057><A
18058NAME="AEN4983"
18059></A
18060><P
18061><CODE
18062><CODE
18063CLASS="FUNCDEF"
18064>control</CODE
18065>(key name, integer levels, integer edges);</CODE
18066></P
18067><P
18068></P
18069></DIV
18070><P
18071>Once a script has the ability to grab control inputs from
18072 the avatar, this event will be used to pass the commands into the
18073 script. The <CODE
18074CLASS="parameter"
18075>levels</CODE
18076> and
18077 <CODE
18078CLASS="parameter"
18079>edges</CODE
18080> are bitfields of <A
18081HREF="#AEN5643"
18082>control constants</A
18083>.</P
18084></DIV
18085><DIV
18086CLASS="section"
18087><HR><H2
18088CLASS="section"
18089><A
18090NAME="AEN4997"
18091>B.9. dataserver</A
18092></H2
18093><DIV
18094CLASS="funcsynopsis"
18095><P
18096></P
18097><A
18098NAME="AEN4999"
18099></A
18100><P
18101><CODE
18102><CODE
18103CLASS="FUNCDEF"
18104>dataserver</CODE
18105>(key requested, string data);</CODE
18106></P
18107><P
18108></P
18109></DIV
18110><P
18111>This event is triggered when the requested data is returned
18112 to the script. Data may be requested by the <A
18113HREF="#AEN3346"
18114>llRequestAgentData</A
18115>, the <A
18116HREF="#AEN3391"
18117>llRequestSimulatorData</A
18118>, the
18119 <A
18120HREF="#AEN3363"
18121>llRequestInventoryData</A
18122>,
18123 and the <A
18124HREF="#AEN1946"
18125>llGetNotecardLine</A
18126> function
18127 calls.</P
18128></DIV
18129><DIV
18130CLASS="section"
18131><HR><H2
18132CLASS="section"
18133><A
18134NAME="AEN5012"
18135>B.10. email</A
18136></H2
18137><DIV
18138CLASS="funcsynopsis"
18139><P
18140></P
18141><A
18142NAME="AEN5014"
18143></A
18144><P
18145><CODE
18146><CODE
18147CLASS="FUNCDEF"
18148>email</CODE
18149>(string time, string address, string subject, string body, integer remaining);</CODE
18150></P
18151><P
18152></P
18153></DIV
18154><P
18155>This event is triggered when an email sent to this script
18156 arrives. The <CODE
18157CLASS="parameter"
18158>remaining</CODE
18159> tells how many more
18160 emails are known as still pending.</P
18161></DIV
18162><DIV
18163CLASS="section"
18164><HR><H2
18165CLASS="section"
18166><A
18167NAME="AEN5030"
18168>B.11. land_collision</A
18169></H2
18170><DIV
18171CLASS="funcsynopsis"
18172><P
18173></P
18174><A
18175NAME="AEN5032"
18176></A
18177><P
18178><CODE
18179><CODE
18180CLASS="FUNCDEF"
18181>land_collision</CODE
18182>(vector position);</CODE
18183></P
18184><P
18185></P
18186></DIV
18187><P
18188>This event is raised when the object the script is attached
18189 to is colliding with the ground.</P
18190></DIV
18191><DIV
18192CLASS="section"
18193><HR><H2
18194CLASS="section"
18195><A
18196NAME="AEN5039"
18197>B.12. land_collision_end</A
18198></H2
18199><DIV
18200CLASS="funcsynopsis"
18201><P
18202></P
18203><A
18204NAME="AEN5041"
18205></A
18206><P
18207><CODE
18208><CODE
18209CLASS="FUNCDEF"
18210>land_collision_end</CODE
18211>(vector position);</CODE
18212></P
18213><P
18214></P
18215></DIV
18216><P
18217>This event is raised when the object the script is attached
18218 to stops colliding with the ground.</P
18219></DIV
18220><DIV
18221CLASS="section"
18222><HR><H2
18223CLASS="section"
18224><A
18225NAME="AEN5048"
18226>B.13. land_collision_start</A
18227></H2
18228><DIV
18229CLASS="funcsynopsis"
18230><P
18231></P
18232><A
18233NAME="AEN5050"
18234></A
18235><P
18236><CODE
18237><CODE
18238CLASS="FUNCDEF"
18239>land_collision_start</CODE
18240>(vector position);</CODE
18241></P
18242><P
18243></P
18244></DIV
18245><P
18246>This event is raised when the object the script is attached
18247 to begins to collide with the ground.</P
18248></DIV
18249><DIV
18250CLASS="section"
18251><HR><H2
18252CLASS="section"
18253><A
18254NAME="AEN5057"
18255>B.14. link_message</A
18256></H2
18257><DIV
18258CLASS="funcsynopsis"
18259><P
18260></P
18261><A
18262NAME="AEN5059"
18263></A
18264><P
18265><CODE
18266><CODE
18267CLASS="FUNCDEF"
18268>link_message</CODE
18269>(integer sender_number, integer number, string message, key id);</CODE
18270></P
18271><P
18272></P
18273></DIV
18274><P
18275>Triggered when object receives a link message via <A
18276HREF="#AEN2919"
18277>llMessageLinked</A
18278> library
18279 function call.</P
18280></DIV
18281><DIV
18282CLASS="section"
18283><HR><H2
18284CLASS="section"
18285><A
18286NAME="AEN5073"
18287>B.15. listen</A
18288></H2
18289><DIV
18290CLASS="funcsynopsis"
18291><P
18292></P
18293><A
18294NAME="AEN5075"
18295></A
18296><P
18297><CODE
18298><CODE
18299CLASS="FUNCDEF"
18300>listen</CODE
18301>(integer channel, string name, key id, string message);</CODE
18302></P
18303><P
18304></P
18305></DIV
18306><P
18307>This event is raised whenever a chat message matching the
18308 constraints passed in the <A
18309HREF="#AEN2665"
18310>llListen</A
18311>
18312 command is heard. The <CODE
18313CLASS="parameter"
18314>name</CODE
18315> and
18316 <CODE
18317CLASS="parameter"
18318>id</CODE
18319> of the speaker as well as the
18320 <CODE
18321CLASS="parameter"
18322>message</CODE
18323> are passed in as parameters.
18324 Channel 0 is the public chat channel that all avatars see as chat
18325 text. Channels 1 through 2,147,483,648 are private channels that
18326 are not sent to avatars but other scripts can listen on those
18327 channels.</P
18328></DIV
18329><DIV
18330CLASS="section"
18331><HR><H2
18332CLASS="section"
18333><A
18334NAME="AEN5092"
18335>B.16. money</A
18336></H2
18337><DIV
18338CLASS="funcsynopsis"
18339><P
18340></P
18341><A
18342NAME="AEN5094"
18343></A
18344><P
18345><CODE
18346><CODE
18347CLASS="FUNCDEF"
18348>money</CODE
18349>(key giver, integer amount);</CODE
18350></P
18351><P
18352></P
18353></DIV
18354><P
18355>This event is triggered when user
18356 <CODE
18357CLASS="parameter"
18358>giver</CODE
18359> has given an
18360 <CODE
18361CLASS="parameter"
18362>amount</CODE
18363> of Linden dollars to the
18364 object.</P
18365></DIV
18366><DIV
18367CLASS="section"
18368><HR><H2
18369CLASS="section"
18370><A
18371NAME="AEN5105"
18372>B.17. moving_end</A
18373></H2
18374><DIV
18375CLASS="funcsynopsis"
18376><P
18377></P
18378><A
18379NAME="AEN5107"
18380></A
18381><P
18382><CODE
18383><CODE
18384CLASS="FUNCDEF"
18385>moving_end</CODE
18386>(void);</CODE
18387></P
18388><P
18389></P
18390></DIV
18391><P
18392>Triggered whenever a object with this script stops
18393 moving.</P
18394></DIV
18395><DIV
18396CLASS="section"
18397><HR><H2
18398CLASS="section"
18399><A
18400NAME="AEN5113"
18401>B.18. moving_start</A
18402></H2
18403><DIV
18404CLASS="funcsynopsis"
18405><P
18406></P
18407><A
18408NAME="AEN5115"
18409></A
18410><P
18411><CODE
18412><CODE
18413CLASS="FUNCDEF"
18414>moving_start</CODE
18415>(void);</CODE
18416></P
18417><P
18418></P
18419></DIV
18420><P
18421>Triggered whenever a object with this script starts
18422 moving.</P
18423></DIV
18424><DIV
18425CLASS="section"
18426><HR><H2
18427CLASS="section"
18428><A
18429NAME="AEN5121"
18430>B.19. no_sensor</A
18431></H2
18432><DIV
18433CLASS="funcsynopsis"
18434><P
18435></P
18436><A
18437NAME="AEN5123"
18438></A
18439><P
18440><CODE
18441><CODE
18442CLASS="FUNCDEF"
18443>no_sensor</CODE
18444>(void);</CODE
18445></P
18446><P
18447></P
18448></DIV
18449><P
18450>This event is raised when sensors are active (via the <A
18451HREF="#AEN3693"
18452>llSensor</A
18453> library call) but are not
18454 sensing anything.</P
18455></DIV
18456><DIV
18457CLASS="section"
18458><HR><H2
18459CLASS="section"
18460><A
18461NAME="AEN5130"
18462>B.20. not_at_rot_target</A
18463></H2
18464><DIV
18465CLASS="funcsynopsis"
18466><P
18467></P
18468><A
18469NAME="AEN5132"
18470></A
18471><P
18472><CODE
18473><CODE
18474CLASS="FUNCDEF"
18475>not_at_rot_target</CODE
18476>(void);</CODE
18477></P
18478><P
18479></P
18480></DIV
18481><P
18482>When a target is set via the <A
18483HREF="#AEN3579"
18484>llRotTarget</A
18485> library call, but the
18486 script is outside the specified angle this event is raised.</P
18487></DIV
18488><DIV
18489CLASS="section"
18490><HR><H2
18491CLASS="section"
18492><A
18493NAME="AEN5139"
18494>B.21. not_at_target</A
18495></H2
18496><DIV
18497CLASS="funcsynopsis"
18498><P
18499></P
18500><A
18501NAME="AEN5141"
18502></A
18503><P
18504><CODE
18505><CODE
18506CLASS="FUNCDEF"
18507>not_at_target</CODE
18508>(void);</CODE
18509></P
18510><P
18511></P
18512></DIV
18513><P
18514>When a target is set via the <A
18515HREF="#AEN4688"
18516>llTarget</A
18517> library call, but the
18518 script is outside the specified range this event is raised.</P
18519></DIV
18520><DIV
18521CLASS="section"
18522><HR><H2
18523CLASS="section"
18524><A
18525NAME="AEN5148"
18526>B.22. object_rez</A
18527></H2
18528><DIV
18529CLASS="funcsynopsis"
18530><P
18531></P
18532><A
18533NAME="AEN5150"
18534></A
18535><P
18536><CODE
18537><CODE
18538CLASS="FUNCDEF"
18539>object_rez</CODE
18540>(key id);</CODE
18541></P
18542><P
18543></P
18544></DIV
18545><P
18546>Triggered when object rezzes another object from its
18547 inventory via the <A
18548HREF="#AEN3461"
18549>llRezObject</A
18550> api. The
18551 <CODE
18552CLASS="parameter"
18553>id</CODE
18554> is the globally unique key for the
18555 object.</P
18556></DIV
18557><DIV
18558CLASS="section"
18559><HR><H2
18560CLASS="section"
18561><A
18562NAME="AEN5159"
18563>B.23. on_rez</A
18564></H2
18565><DIV
18566CLASS="funcsynopsis"
18567><P
18568></P
18569><A
18570NAME="AEN5161"
18571></A
18572><P
18573><CODE
18574><CODE
18575CLASS="FUNCDEF"
18576>on_rez</CODE
18577>(integer start_param);</CODE
18578></P
18579><P
18580></P
18581></DIV
18582><P
18583>Triggered whenever a object is rezzed from inventory or by
18584 another object. The <CODE
18585CLASS="parameter"
18586>start_param</CODE
18587> is the
18588 parameter passed in from the call to <A
18589HREF="#AEN3461"
18590>llRezObject</A
18591> or <A
18592HREF="#AEN3434"
18593>llRezAtRoot</A
18594>.</P
18595></DIV
18596><DIV
18597CLASS="section"
18598><HR><H2
18599CLASS="section"
18600><A
18601NAME="AEN5171"
18602>B.24. run_time_permissions</A
18603></H2
18604><DIV
18605CLASS="funcsynopsis"
18606><P
18607></P
18608><A
18609NAME="AEN5173"
18610></A
18611><P
18612><CODE
18613><CODE
18614CLASS="FUNCDEF"
18615>run_time_permissions</CODE
18616>(integer permissions);</CODE
18617></P
18618><P
18619></P
18620></DIV
18621><P
18622>Scripts need permission from either the owner or the avatar
18623 they wish to act on before they perform certain functions, such as
18624 debiting money from their owner's account, triggering an animation
18625 on an avatar, or capturing control inputs. The <A
18626HREF="#AEN3375"
18627>llRequestPermissions</A
18628>
18629 library function is used to request these permissions and the
18630 various <A
18631HREF="#AEN5360"
18632>permissions integer
18633 constants</A
18634> can be supplied. The integer returned to this
18635 event handler contains the current set of permissions flags, so if
18636 <CODE
18637CLASS="parameter"
18638>permissions</CODE
18639> equal 0 then no permissions are
18640 set.</P
18641></DIV
18642><DIV
18643CLASS="section"
18644><HR><H2
18645CLASS="section"
18646><A
18647NAME="AEN5183"
18648>B.25. sensor</A
18649></H2
18650><DIV
18651CLASS="funcsynopsis"
18652><P
18653></P
18654><A
18655NAME="AEN5185"
18656></A
18657><P
18658><CODE
18659><CODE
18660CLASS="FUNCDEF"
18661>sensor</CODE
18662>(integer total_number);</CODE
18663></P
18664><P
18665></P
18666></DIV
18667><P
18668>This event is raised whenever objects matching the
18669 constraints of the <A
18670HREF="#AEN3693"
18671>llSensor</A
18672>
18673 command are detected. The number of detected objects is passed to
18674 the script in the <CODE
18675CLASS="parameter"
18676>total_number</CODE
18677>
18678 parameter. A maximum of 16 objects are passed to this event.
18679 Information on those objects may be gathered via the
18680 <A
18681HREF="#lib_lldetected"
18682>llDetected*</A
18683> library
18684 functions.</P
18685></DIV
18686><DIV
18687CLASS="section"
18688><HR><H2
18689CLASS="section"
18690><A
18691NAME="AEN5195"
18692>B.26. state_entry</A
18693></H2
18694><DIV
18695CLASS="funcsynopsis"
18696><P
18697></P
18698><A
18699NAME="AEN5197"
18700></A
18701><P
18702><CODE
18703><CODE
18704CLASS="FUNCDEF"
18705>state_entry</CODE
18706>(void);</CODE
18707></P
18708><P
18709></P
18710></DIV
18711><P
18712>The state_entry event occurs whenever a new state is
18713 entered, including program start, and is always the first event
18714 handled.</P
18715></DIV
18716><DIV
18717CLASS="section"
18718><HR><H2
18719CLASS="section"
18720><A
18721NAME="AEN5203"
18722>B.27. state_exit</A
18723></H2
18724><DIV
18725CLASS="funcsynopsis"
18726><P
18727></P
18728><A
18729NAME="AEN5205"
18730></A
18731><P
18732><CODE
18733><CODE
18734CLASS="FUNCDEF"
18735>state_exit</CODE
18736>(void);</CODE
18737></P
18738><P
18739></P
18740></DIV
18741><P
18742>The state_exit event occurs whenever the state command is
18743 used to transition to another state. It is handled before the new
18744 state's state_entry event.</P
18745></DIV
18746><DIV
18747CLASS="section"
18748><HR><H2
18749CLASS="section"
18750><A
18751NAME="AEN5211"
18752>B.28. timer</A
18753></H2
18754><DIV
18755CLASS="funcsynopsis"
18756><P
18757></P
18758><A
18759NAME="AEN5213"
18760></A
18761><P
18762><CODE
18763><CODE
18764CLASS="FUNCDEF"
18765>timer</CODE
18766>(void);</CODE
18767></P
18768><P
18769></P
18770></DIV
18771><P
18772>This event is raised at regular intervals set by the <A
18773HREF="#AEN4188"
18774>llSetTimerEvent</A
18775> library
18776 function.</P
18777></DIV
18778><DIV
18779CLASS="section"
18780><HR><H2
18781CLASS="section"
18782><A
18783NAME="AEN5220"
18784>B.29. touch</A
18785></H2
18786><DIV
18787CLASS="funcsynopsis"
18788><P
18789></P
18790><A
18791NAME="AEN5222"
18792></A
18793><P
18794><CODE
18795><CODE
18796CLASS="FUNCDEF"
18797>touch</CODE
18798>(integer total_number);</CODE
18799></P
18800><P
18801></P
18802></DIV
18803><P
18804>This event is raised while a user is touching the object the
18805 script is attached to. The number of touching objects is passed to
18806 the script in the <CODE
18807CLASS="parameter"
18808>total_number</CODE
18809>
18810 parameter. Information on those objects may be gathered via the
18811 <A
18812HREF="#lib_lldetected"
18813>llDetected*</A
18814> library
18815 functions.</P
18816></DIV
18817><DIV
18818CLASS="section"
18819><HR><H2
18820CLASS="section"
18821><A
18822NAME="AEN5231"
18823>B.30. touch_end</A
18824></H2
18825><DIV
18826CLASS="funcsynopsis"
18827><P
18828></P
18829><A
18830NAME="AEN5233"
18831></A
18832><P
18833><CODE
18834><CODE
18835CLASS="FUNCDEF"
18836>touch_end</CODE
18837>(integer total_number);</CODE
18838></P
18839><P
18840></P
18841></DIV
18842><P
18843>This event is raised when a user stops touching the object
18844 the script is attached to. The number of touching objects is
18845 passed to the script in the <CODE
18846CLASS="parameter"
18847>total_number</CODE
18848>
18849 parameter. Information on those objects may be gathered via the
18850 <A
18851HREF="#lib_lldetected"
18852>llDetected*</A
18853> library
18854 functions.</P
18855></DIV
18856><DIV
18857CLASS="section"
18858><HR><H2
18859CLASS="section"
18860><A
18861NAME="AEN5242"
18862>B.31. touch_start</A
18863></H2
18864><DIV
18865CLASS="funcsynopsis"
18866><P
18867></P
18868><A
18869NAME="AEN5244"
18870></A
18871><P
18872><CODE
18873><CODE
18874CLASS="FUNCDEF"
18875>touch_start</CODE
18876>(integer total_number);</CODE
18877></P
18878><P
18879></P
18880></DIV
18881><P
18882>This event is raised when a user first touches the object
18883 the script is attached to. The number of touching objects is
18884 passed to the script in the <CODE
18885CLASS="parameter"
18886>total_number</CODE
18887>
18888 parameter. Information on those objects may be gathered via the
18889 <A
18890HREF="#lib_lldetected"
18891>llDetected*</A
18892> library
18893 functions.</P
18894></DIV
18895><DIV
18896CLASS="section"
18897><HR><H2
18898CLASS="section"
18899><A
18900NAME="AEN5253"
18901>B.32. remote_data</A
18902></H2
18903><DIV
18904CLASS="funcsynopsis"
18905><P
18906></P
18907><A
18908NAME="AEN5255"
18909></A
18910><P
18911><CODE
18912><CODE
18913CLASS="FUNCDEF"
18914>remote_data</CODE
18915>(integer type, key channel, key message_id, string sender, integer ival, string sval);</CODE
18916></P
18917><P
18918></P
18919></DIV
18920><P
18921>This event is raised when a user creates an XML-RPC
18922 channel via <A
18923HREF="#AEN3011"
18924>llOpenRemoteDataChannel</A
18925>,
18926 a remote XML-RPC server replies to a <A
18927HREF="#AEN3680"
18928>llSendRemoteData</A
18929>,
18930 or a remote XML-RPC client sends in an XML-RPC request. In the open case,
18931 <CODE
18932CLASS="parameter"
18933>type</CODE
18934> = REMOTE_DATA_CHANNEL, <CODE
18935CLASS="parameter"
18936>channel</CODE
18937> = NULL_KEY,
18938 <CODE
18939CLASS="parameter"
18940>message_id</CODE
18941> = NULL_KEY, <CODE
18942CLASS="parameter"
18943>sender</CODE
18944> is an empty string,
18945 <CODE
18946CLASS="parameter"
18947>ival</CODE
18948> = 0, and <CODE
18949CLASS="parameter"
18950>sval</CODE
18951> is an empty string. In the reply case,
18952 <CODE
18953CLASS="parameter"
18954>type</CODE
18955> = REMOTE_DATA_REPLY, <CODE
18956CLASS="parameter"
18957>channel</CODE
18958> is set to the channel that the request was sent on,
18959 <CODE
18960CLASS="parameter"
18961>message_id</CODE
18962> is set to the id of the message, <CODE
18963CLASS="parameter"
18964>sender</CODE
18965> is an empty string,
18966 <CODE
18967CLASS="parameter"
18968>ival</CODE
18969> = 0, and <CODE
18970CLASS="parameter"
18971>sval</CODE
18972> is a string. In the remote request case,
18973 <CODE
18974CLASS="parameter"
18975>type</CODE
18976> = REMOTE_DATA_REQUEST, <CODE
18977CLASS="parameter"
18978>channel</CODE
18979> is set to the channel that sent the message,
18980 <CODE
18981CLASS="parameter"
18982>message_id</CODE
18983> is set to the id of the message, <CODE
18984CLASS="parameter"
18985>sender</CODE
18986> is set by the sender,
18987 <CODE
18988CLASS="parameter"
18989>ival</CODE
18990> is an integer, and <CODE
18991CLASS="parameter"
18992>sval</CODE
18993> is a string.
18994 parameter.</P
18995></DIV
18996></DIV
18997><DIV
18998CLASS="appendix"
18999><HR><H1
19000><A
19001NAME="AEN5292"
19002></A
19003>Appendix C. Constants</H1
19004><P
19005>To ease scripting, many useful constants are defined by
19006 LSL.</P
19007><DIV
19008CLASS="section"
19009><HR><H2
19010CLASS="section"
19011><A
19012NAME="AEN5295"
19013>C.1. Boolean Constants</A
19014></H2
19015><P
19016>The boolean constants represent the values for TRUE and
19017 FALSE. LSL represents booleans as integer values 1 and 0
19018 respectively. Since there is no boolean type these constants act
19019 as a scripting aid usually employed for testing variables which
19020 conceptually represent boolean values.</P
19021><P
19022><P
19023></P
19024><UL
19025><LI
19026><P
19027>TRUE</P
19028></LI
19029><LI
19030><P
19031>FALSE</P
19032></LI
19033></UL
19034></P
19035></DIV
19036><DIV
19037CLASS="section"
19038><HR><H2
19039CLASS="section"
19040><A
19041NAME="AEN5304"
19042>C.2. Status Constants</A
19043></H2
19044><P
19045>The status constants are used in the <A
19046HREF="#AEN4095"
19047>llSetStatus</A
19048> and <A
19049HREF="#AEN2184"
19050>llGetStatus</A
19051> library calls. These
19052 constants can be bitwise or'ed together when calling the library
19053 functions to set the same value to more than one status
19054 flag</P
19055><P
19056></P
19057><DIV
19058CLASS="variablelist"
19059><P
19060><B
19061>Status Constants</B
19062></P
19063><DL
19064><DT
19065>STATUS_PHYSICS</DT
19066><DD
19067><P
19068>Controls whether the object moves
19069 physically. This controls the same flag that the ui checkbox
19070 for 'Physical' controls. The default is FALSE.</P
19071></DD
19072><DT
19073>STATUS_PHANTOM</DT
19074><DD
19075><P
19076>Controls whether the object collides or
19077 not. Setting the value to TRUE makes the object non-colliding
19078 with all objects. It is a good idea to use this for most
19079 objects that move or rotate, but are non-physical. It is also
19080 useful for simulating volumetric lighting. The default is
19081 FALSE.</P
19082></DD
19083><DT
19084>STATUS_ROTATE_X, STATUS_ROTATE_Y, STATUS_ROTATE_Z</DT
19085><DD
19086><P
19087>Controls whether the object can physically rotate
19088 around the specific axis or not. This flag has no meaning
19089 for non-physical objects. Set the value to FALSE
19090 to disable rotation around that axis. The default is TRUE
19091 for a physical object.</P
19092><P
19093>A useful example to think about when visualizing the
19094 effect is a 'sit-and-spin' device. They spin around the Z
19095 axis (up) but not around the X or Y axis.</P
19096></DD
19097><DT
19098>STATUS_BLOCK_GRAB</DT
19099><DD
19100><P
19101>Controls whether the object can be grabbed. A
19102 grab is the default action when in third person, and is
19103 available as the 'hand' tool in build mode. This is useful for
19104 physical objects that you don't want other people to be able
19105 to trivially disturb. The default if FALSE</P
19106></DD
19107><DT
19108>STATUS_SANDBOX</DT
19109><DD
19110><P
19111>Controls whether the object can cross region
19112 boundaries and move more than 20 meters from its creation
19113 point. The default if FALSE.</P
19114></DD
19115><DT
19116>STATUS_DIE_AT_EDGE</DT
19117><DD
19118><P
19119>Controls whether the object is returned to the
19120 owner's inventory if it wanders off the edge of the world. It
19121 is useful to set this status TRUE for things like bullets or
19122 rockets. The default is TRUE</P
19123></DD
19124></DL
19125></DIV
19126></DIV
19127><DIV
19128CLASS="section"
19129><HR><H2
19130CLASS="section"
19131><A
19132NAME="AEN5338"
19133>C.3. Object Type Constants</A
19134></H2
19135><P
19136>These constants can be combined using the binary '|'
19137 operator and are used in the <A
19138HREF="#AEN3693"
19139>llSensor</A
19140> and related calls.</P
19141><P
19142></P
19143><DIV
19144CLASS="variablelist"
19145><P
19146><B
19147>Object Type Constants</B
19148></P
19149><DL
19150><DT
19151>AGENT</DT
19152><DD
19153><P
19154>Objects in world that are agents.</P
19155></DD
19156><DT
19157>ACTIVE</DT
19158><DD
19159><P
19160>Objects in world that are running a script or
19161 currently physically moving.</P
19162></DD
19163><DT
19164>PASSIVE</DT
19165><DD
19166><P
19167>Static in-world objects.</P
19168></DD
19169><DT
19170>SCRIPTED</DT
19171><DD
19172><P
19173>Scripted in-world objects.</P
19174></DD
19175></DL
19176></DIV
19177></DIV
19178><DIV
19179CLASS="section"
19180><HR><H2
19181CLASS="section"
19182><A
19183NAME="AEN5360"
19184>C.4. Permission Constants</A
19185></H2
19186><P
19187>The permission constants are used for passing values to
19188 <A
19189HREF="#AEN3375"
19190>llRequestPermissions</A
19191>,
19192 determining the value of <A
19193HREF="#AEN2048"
19194>llGetPermissions</A
19195>, and
19196 explicitly passed to the <A
19197HREF="#AEN5171"
19198>run_time_permissions</A
19199>
19200 event. For many of the basic library functions to work, a
19201 specific permission must be enabled. The permission constants can
19202 be or'ed together to be used in conjunction.</P
19203><P
19204></P
19205><DIV
19206CLASS="variablelist"
19207><P
19208><B
19209>Permission Constants</B
19210></P
19211><DL
19212><DT
19213>PERMISSION_DEBIT</DT
19214><DD
19215><P
19216>If this permission is enabled, the object can
19217 successfully call <A
19218HREF="#AEN2342"
19219>llGiveMoney</A
19220> to debit the
19221 owner's account.</P
19222></DD
19223><DT
19224>PERMISSION_TAKE_CONTROLS</DT
19225><DD
19226><P
19227>If this permission enabled, the object can
19228 successfully call the <A
19229HREF="#AEN4661"
19230>llTakeControls</A
19231> library
19232 call.</P
19233></DD
19234><DT
19235>PERMISSION_REMAP_CONTROLS</DT
19236><DD
19237><P
19238>(not yet implemented)</P
19239></DD
19240><DT
19241>PERMISSION_TRIGGER_ANIMATION</DT
19242><DD
19243><P
19244>If this permission is enabled, the object can
19245 successfully call <A
19246HREF="#AEN4346"
19247>llStartAnimation</A
19248> for the
19249 avatar that owns this object.</P
19250></DD
19251><DT
19252><A
19253NAME="const_permission_attach"
19254></A
19255>PERMISSION_ATTACH</DT
19256><DD
19257><P
19258>If this permission is enabled, the object can
19259 successfully call <A
19260HREF="#AEN1119"
19261>llAttachToAvatar</A
19262> to attach
19263 to the given avatar.</P
19264></DD
19265><DT
19266>PERMISSION_RELEASE_OWNERSHIP</DT
19267><DD
19268><P
19269>(not yet implemented)</P
19270></DD
19271><DT
19272><A
19273NAME="const_permission_change_links"
19274></A
19275>PERMISSION_CHANGE_LINKS</DT
19276><DD
19277><P
19278>If this permission is enabled, the object can
19279 successfully call <A
19280HREF="#AEN1292"
19281>llCreateLink</A
19282>, <A
19283HREF="#AEN1191"
19284>llBreakLink</A
19285>, and <A
19286HREF="#AEN1182"
19287>llBreakAllLinks</A
19288> to change
19289 links to other objects.</P
19290></DD
19291><DT
19292>PERMISSION_CHANGE_JOINTS</DT
19293><DD
19294><P
19295>(not yet implemented)</P
19296></DD
19297><DT
19298>PERMISSION_CHANGE_PERMISSIONS</DT
19299><DD
19300><P
19301>(not yet implemented)</P
19302></DD
19303></DL
19304></DIV
19305></DIV
19306><DIV
19307CLASS="section"
19308><HR><H2
19309CLASS="section"
19310><A
19311NAME="AEN5411"
19312>C.5. Inventory Constants</A
19313></H2
19314><P
19315>These constants can be used to refer to a specific inventory
19316 type in calls to <A
19317HREF="#AEN1789"
19318>llGetInventoryNumber</A
19319> and
19320 <A
19321HREF="#AEN1774"
19322>llGetInventoryName</A
19323>. They
19324 are also returned by <A
19325HREF="#AEN1816"
19326>llGetInventoryType</A
19327>.
19328 </P
19329><P
19330></P
19331><DIV
19332CLASS="variablelist"
19333><P
19334><B
19335>Inventory Constants</B
19336></P
19337><DL
19338><DT
19339>INVENTORY_TEXTURE, INVENTORY_SOUND, INVENTORY_OBJECT, INVENTORY_SCRIPT, INVENTORY_LANDMARK, INVENTORY_CLOTHING, INVENTORY_NOTECARD, INVENTORY_BODYPART, INVENTORY_ANIMATION, INVENTORY_GESTURE, INVENTORY_ALL, INVENTORY_NONE</DT
19340><DD
19341><P
19342>Each constant refers to the named type of
19343 inventory.</P
19344></DD
19345></DL
19346></DIV
19347></DIV
19348><DIV
19349CLASS="section"
19350><HR><H2
19351CLASS="section"
19352><A
19353NAME="AEN5434"
19354>C.6. Pay Price Constants</A
19355></H2
19356><P
19357>These constants can be used in <A
19358HREF="#AEN1789"
19359>llSetPayPrice</A
19360></P
19361><P
19362></P
19363><DIV
19364CLASS="variablelist"
19365><P
19366><B
19367>Pay Price Constants</B
19368></P
19369><DL
19370><DT
19371>PAY_HIDE</DT
19372><DD
19373><P
19374>Do not show this quick pay button.</P
19375></DD
19376><DT
19377>PAY_DEFAULT</DT
19378><DD
19379><P
19380>Use the default value for this quick pay button.</P
19381></DD
19382></DL
19383></DIV
19384></DIV
19385><DIV
19386CLASS="section"
19387><HR><H2
19388CLASS="section"
19389><A
19390NAME="AEN5448"
19391>C.7. Attachment Constants</A
19392></H2
19393><P
19394>These constants are used to refer to attachment points in
19395 calls to <A
19396HREF="#AEN1119"
19397>llAttachToAvatar</A
19398>.</P
19399><P
19400></P
19401><DIV
19402CLASS="variablelist"
19403><P
19404><B
19405>Attachment Constants</B
19406></P
19407><DL
19408><DT
19409>ATTACH_CHEST</DT
19410><DD
19411><P
19412>Attach to the avatar chest.</P
19413></DD
19414><DT
19415>ATTACH_HEAD</DT
19416><DD
19417><P
19418>Attach to the avatar head.</P
19419></DD
19420><DT
19421>ATTACH_LSHOULDER</DT
19422><DD
19423><P
19424>Attach to the avatar left shoulder.</P
19425></DD
19426><DT
19427>ATTACH_RSHOULDER</DT
19428><DD
19429><P
19430>Attach to the avatar right shoulder.</P
19431></DD
19432><DT
19433>ATTACH_LHAND</DT
19434><DD
19435><P
19436>Attach to the avatar left hand.</P
19437></DD
19438><DT
19439>ATTACH_RHAND</DT
19440><DD
19441><P
19442>Attach to the avatar right hand.</P
19443></DD
19444><DT
19445>ATTACH_LFOOT</DT
19446><DD
19447><P
19448>Attach to the avatar left foot.</P
19449></DD
19450><DT
19451>ATTACH_RFOOT</DT
19452><DD
19453><P
19454>Attach to the avatar right foot.</P
19455></DD
19456><DT
19457>ATTACH_BACK</DT
19458><DD
19459><P
19460>Attach to the avatar back.</P
19461></DD
19462><DT
19463>ATTACH_PELVIS</DT
19464><DD
19465><P
19466>Attach to the avatar pelvis.</P
19467></DD
19468><DT
19469>ATTACH_MOUTH</DT
19470><DD
19471><P
19472>Attach to the avatar mouth.</P
19473></DD
19474><DT
19475>ATTACH_CHIN</DT
19476><DD
19477><P
19478>Attach to the avatar chin.</P
19479></DD
19480><DT
19481>ATTACH_LEAR</DT
19482><DD
19483><P
19484>Attach to the avatar left ear.</P
19485></DD
19486><DT
19487>ATTACH_REAR</DT
19488><DD
19489><P
19490>Attach to the avatar right ear.</P
19491></DD
19492><DT
19493>ATTACH_LEYE</DT
19494><DD
19495><P
19496>Attach to the avatar left eye.</P
19497></DD
19498><DT
19499>ATTACH_REYE</DT
19500><DD
19501><P
19502>Attach to the avatar right eye.</P
19503></DD
19504><DT
19505>ATTACH_NOSE</DT
19506><DD
19507><P
19508>Attach to the avatar nose.</P
19509></DD
19510><DT
19511>ATTACH_RUARM</DT
19512><DD
19513><P
19514>Attach to the avatar right upper arm.</P
19515></DD
19516><DT
19517>ATTACH_RLARM</DT
19518><DD
19519><P
19520>Attach to the avatar right lower arm.</P
19521></DD
19522><DT
19523>ATTACH_LUARM</DT
19524><DD
19525><P
19526>Attach to the avatar left upper arm.</P
19527></DD
19528><DT
19529>ATTACH_LLARM</DT
19530><DD
19531><P
19532>Attach to the avatar left lower arm.</P
19533></DD
19534><DT
19535>ATTACH_RHIP</DT
19536><DD
19537><P
19538>Attach to the avatar right hip.</P
19539></DD
19540><DT
19541>ATTACH_RULEG</DT
19542><DD
19543><P
19544>Attach to the avatar right upper leg.</P
19545></DD
19546><DT
19547>ATTACH_RLLEG</DT
19548><DD
19549><P
19550>Attach to the avatar right lower leg.</P
19551></DD
19552><DT
19553>ATTACH_LHIP</DT
19554><DD
19555><P
19556>Attach to the avatar left hip.</P
19557></DD
19558><DT
19559>ATTACH_LULEG</DT
19560><DD
19561><P
19562>Attach to the avatar lower upper leg.</P
19563></DD
19564><DT
19565>ATTACH_LLLEG</DT
19566><DD
19567><P
19568>Attach to the avatar lower left leg.</P
19569></DD
19570><DT
19571>ATTACH_BELLY</DT
19572><DD
19573><P
19574>Attach to the avatar belly.</P
19575></DD
19576><DT
19577>ATTACH_RPEC</DT
19578><DD
19579><P
19580>Attach to the avatar right pectoral.</P
19581></DD
19582><DT
19583>ATTACH_LPEC</DT
19584><DD
19585><P
19586>Attach to the avatar left pectoral.</P
19587></DD
19588></DL
19589></DIV
19590></DIV
19591><DIV
19592CLASS="section"
19593><HR><H2
19594CLASS="section"
19595><A
19596NAME="AEN5574"
19597>C.8. Land Constants</A
19598></H2
19599><P
19600>These constants are only used in calls to <A
19601HREF="#AEN2949"
19602>llModifyLand</A
19603>. The constants
19604 are equivalent to the similarly labelled user interface elements
19605 for editing land in the viewer.</P
19606><P
19607></P
19608><DIV
19609CLASS="variablelist"
19610><P
19611><B
19612>Land Constants</B
19613></P
19614><DL
19615><DT
19616>LAND_LEVEL</DT
19617><DD
19618><P
19619>Action to make the land flat and level.</P
19620></DD
19621><DT
19622>LAND_RAISE</DT
19623><DD
19624><P
19625>Action to raise the land.</P
19626></DD
19627><DT
19628>LAND_LOWER</DT
19629><DD
19630><P
19631>Action to lower the land.</P
19632></DD
19633><DT
19634>LAND_SMOOTH</DT
19635><DD
19636><P
19637>Action to smooth the land.</P
19638></DD
19639><DT
19640>LAND_NOISE</DT
19641><DD
19642><P
19643>Action to push the land toward a pseudo-random
19644 heightfield.</P
19645></DD
19646><DT
19647>LAND_REVERT</DT
19648><DD
19649><P
19650>Action to push the land toward the original
19651 shape from when it was first terraformed.</P
19652></DD
19653><DT
19654>LAND_SMALL_BRUSH</DT
19655><DD
19656><P
19657>Use a small brush size.</P
19658></DD
19659><DT
19660>LAND_MEDIUM_BRUSH</DT
19661><DD
19662><P
19663>Use a medium brush size.</P
19664></DD
19665><DT
19666>LAND_LARGE_BRUSH</DT
19667><DD
19668><P
19669>Use a large brush size.</P
19670></DD
19671></DL
19672></DIV
19673></DIV
19674><DIV
19675CLASS="section"
19676><HR><H2
19677CLASS="section"
19678><A
19679NAME="AEN5616"
19680>C.9. Link Constants</A
19681></H2
19682><P
19683>These constants are used in calls to <A
19684HREF="#AEN3906"
19685>llSetLinkColor</A
19686> and <A
19687HREF="#AEN2919"
19688>llMessageLinked</A
19689>.</P
19690><P
19691></P
19692><DIV
19693CLASS="variablelist"
19694><P
19695><B
19696>Link Constants</B
19697></P
19698><DL
19699><DT
19700>LINK_SET</DT
19701><DD
19702><P
19703>This targets every object in the linked
19704 set.</P
19705></DD
19706><DT
19707>LINK_ROOT</DT
19708><DD
19709><P
19710>This targets the root of the linked
19711 set.</P
19712></DD
19713><DT
19714>LINK_ALL_OTHERS</DT
19715><DD
19716><P
19717>This targets every object in the linked set
19718 except the object with the script.</P
19719></DD
19720><DT
19721>LINK_ALL_CHILDREN</DT
19722><DD
19723><P
19724>This targets every object except the root in
19725 the linked set.</P
19726></DD
19727><DT
19728>LINK_THIS</DT
19729><DD
19730><P
19731>This targets the object making the call only.
19732 </P
19733></DD
19734></DL
19735></DIV
19736></DIV
19737><DIV
19738CLASS="section"
19739><HR><H2
19740CLASS="section"
19741><A
19742NAME="AEN5643"
19743>C.10. Control Constants</A
19744></H2
19745><P
19746>These constants are used in <A
19747HREF="#AEN4661"
19748>llTakeControls</A
19749> as well as the
19750 <A
19751HREF="#AEN4981"
19752>control</A
19753> event handler.</P
19754><P
19755></P
19756><DIV
19757CLASS="variablelist"
19758><P
19759><B
19760>Control Constants</B
19761></P
19762><DL
19763><DT
19764>CONTROL_FWD</DT
19765><DD
19766><P
19767>Test for the avatar move forward
19768 control.</P
19769></DD
19770><DT
19771>CONTROL_BACK</DT
19772><DD
19773><P
19774>Test for the avatar move back
19775 control.</P
19776></DD
19777><DT
19778>CONTROL_LEFT</DT
19779><DD
19780><P
19781>Test for the avatar move left
19782 control.</P
19783></DD
19784><DT
19785>CONTROL_RIGHT</DT
19786><DD
19787><P
19788>Test for the avatar move right
19789 control.</P
19790></DD
19791><DT
19792>CONTROL_ROT_LEFT</DT
19793><DD
19794><P
19795>Test for the avatar rotate left
19796 control.</P
19797></DD
19798><DT
19799>CONTROL_ROT_RIGHT</DT
19800><DD
19801><P
19802>Test for the avatar rotate right
19803 control.</P
19804></DD
19805><DT
19806>CONTROL_UP</DT
19807><DD
19808><P
19809>Test for the avatar move up
19810 control.</P
19811></DD
19812><DT
19813>CONTROL_DOWN</DT
19814><DD
19815><P
19816>Test for the avatar move down
19817 control.</P
19818></DD
19819><DT
19820>CONTROL_LBUTTON</DT
19821><DD
19822><P
19823>Test for the avatar left button
19824 control.</P
19825></DD
19826><DT
19827>CONTROL_ML_BUTTON</DT
19828><DD
19829><P
19830>Test for the avatar left button control while
19831 in mouse look.</P
19832></DD
19833></DL
19834></DIV
19835></DIV
19836><DIV
19837CLASS="section"
19838><HR><H2
19839CLASS="section"
19840><A
19841NAME="AEN5690"
19842>C.11. Change Constants</A
19843></H2
19844><P
19845>These constants are used in the <A
19846HREF="#AEN4940"
19847>changed</A
19848> event handler.</P
19849><P
19850></P
19851><DIV
19852CLASS="variablelist"
19853><P
19854><B
19855>Change Constants</B
19856></P
19857><DL
19858><DT
19859>CHANGED_INVENTORY</DT
19860><DD
19861><P
19862>The object inventory has changed.</P
19863></DD
19864><DT
19865>CHANGED_ALLOWED_DROP</DT
19866><DD
19867><P
19868>The object inventory has changed because an item
19869 was added through the <A
19870HREF="#AEN1047"
19871>llAllowInventoryDrop</A
19872>
19873 interface.</P
19874></DD
19875><DT
19876>CHANGED_COLOR</DT
19877><DD
19878><P
19879>The object color has changed.</P
19880></DD
19881><DT
19882>CHANGED_SHAPE</DT
19883><DD
19884><P
19885>The object shape has changed, eg, a box to a
19886 cylinder</P
19887></DD
19888><DT
19889>CHANGED_SCALE</DT
19890><DD
19891><P
19892>The object scale has changed.</P
19893></DD
19894><DT
19895>CHANGED_TEXTURE</DT
19896><DD
19897><P
19898>The texture offset, scale rotation, or simply
19899 the object texture has changed.</P
19900></DD
19901><DT
19902>CHANGED_LINK</DT
19903><DD
19904><P
19905>The object has linked or its links were
19906 broken.</P
19907></DD
19908><DT
19909>CHANGED_REGION</DT
19910><DD
19911><P
19912>The object has changed regions.</P
19913></DD
19914><DT
19915>CHANGED_TELEPORT</DT
19916><DD
19917><P
19918>The object has been teleported.</P
19919></DD
19920></DL
19921></DIV
19922></DIV
19923><DIV
19924CLASS="section"
19925><HR><H2
19926CLASS="section"
19927><A
19928NAME="AEN5733"
19929>C.12. Type Constants</A
19930></H2
19931><P
19932>These constants are used to determine the variable type
19933 stored in a heterogeneous list. The value returned from <A
19934HREF="#AEN1875"
19935>llGetListEntryType</A
19936> can be
19937 used for comparison against these constants.</P
19938><P
19939></P
19940><DIV
19941CLASS="variablelist"
19942><P
19943><B
19944>Type Constants</B
19945></P
19946><DL
19947><DT
19948>TYPE_INTEGER</DT
19949><DD
19950><P
19951>The list entry is an integer.</P
19952></DD
19953><DT
19954>TYPE_FLOAT</DT
19955><DD
19956><P
19957>The list entry is a float.</P
19958></DD
19959><DT
19960>TYPE_STRING</DT
19961><DD
19962><P
19963>The list entry is a string.</P
19964></DD
19965><DT
19966>TYPE_KEY</DT
19967><DD
19968><P
19969>The list entry is a key.</P
19970></DD
19971><DT
19972>TYPE_VECTOR</DT
19973><DD
19974><P
19975>The list entry is a vector.</P
19976></DD
19977><DT
19978>TYPE_ROTATION</DT
19979><DD
19980><P
19981>The list entry is a rotation.</P
19982></DD
19983><DT
19984>TYPE_INVALID</DT
19985><DD
19986><P
19987>The list entry is invalid.</P
19988></DD
19989></DL
19990></DIV
19991></DIV
19992><DIV
19993CLASS="section"
19994><HR><H2
19995CLASS="section"
19996><A
19997NAME="AEN5767"
19998>C.13. Agent Info Constants</A
19999></H2
20000><P
20001>Each of these constants represents a bit in the integer
20002 returned from the <A
20003HREF="#AEN1605"
20004>llGetAgentInfo</A
20005> function and can
20006 be used in an expression to determine the specified information
20007 about an agent.</P
20008><P
20009></P
20010><DIV
20011CLASS="variablelist"
20012><P
20013><B
20014>Agent Info Constants</B
20015></P
20016><DL
20017><DT
20018>AGENT_FLYING</DT
20019><DD
20020><P
20021>The agent is flying.</P
20022></DD
20023><DT
20024>AGENT_ATTACHMENTS</DT
20025><DD
20026><P
20027>The agent has attachments.</P
20028></DD
20029><DT
20030>AGENT_SCRIPTED</DT
20031><DD
20032><P
20033>The agent has scripted attachments.</P
20034></DD
20035><DT
20036>AGENT_SITTING</DT
20037><DD
20038><P
20039>The agent is sitting.</P
20040></DD
20041><DT
20042>AGENT_ON_OBJECT</DT
20043><DD
20044><P
20045>The agent is sitting on an object.</P
20046></DD
20047><DT
20048>AGENT_WALKING</DT
20049><DD
20050><P
20051>The agent is walking.</P
20052></DD
20053><DT
20054>AGENT_IN_AIR</DT
20055><DD
20056><P
20057>The agent is in the air.</P
20058></DD
20059><DT
20060>AGENT_MOUSELOOK</DT
20061><DD
20062><P
20063>The agent is in mouselook.</P
20064></DD
20065><DT
20066>AGENT_AWAY</DT
20067><DD
20068><P
20069>The agent is away (AFK).</P
20070></DD
20071><DT
20072>AGENT_TYPING</DT
20073><DD
20074><P
20075>The agent is typing.</P
20076></DD
20077><DT
20078>AGENT_CROUCHING</DT
20079><DD
20080><P
20081>The agent is crouching.</P
20082></DD
20083></DL
20084></DIV
20085></DIV
20086><DIV
20087CLASS="section"
20088><HR><H2
20089CLASS="section"
20090><A
20091NAME="AEN5817"
20092>C.14. Texture Animation
20093 Constants</A
20094></H2
20095><P
20096>These constants are used in the <A
20097HREF="#AEN4140"
20098>llSetTextureAnim</A
20099> api to
20100 control the animation mode.</P
20101><P
20102></P
20103><DIV
20104CLASS="variablelist"
20105><P
20106><B
20107>Texture Animation Constants</B
20108></P
20109><DL
20110><DT
20111>ANIM_ON</DT
20112><DD
20113><P
20114>Texture animation is on.</P
20115></DD
20116><DT
20117>LOOP</DT
20118><DD
20119><P
20120>Loop the texture animation.</P
20121></DD
20122><DT
20123>REVERSE</DT
20124><DD
20125><P
20126>Play animation in reverse direction.</P
20127></DD
20128><DT
20129>PING_PONG</DT
20130><DD
20131><P
20132>play animation going forwards, then
20133 backwards.</P
20134></DD
20135><DT
20136>SMOOTH</DT
20137><DD
20138><P
20139>slide in the X direction, instead of playing
20140 separate frames.</P
20141></DD
20142><DT
20143>ROTATE</DT
20144><DD
20145><P
20146>Animate texture rotation.</P
20147></DD
20148><DT
20149>SCALE</DT
20150><DD
20151><P
20152>Animate the texture scale.</P
20153></DD
20154></DL
20155></DIV
20156></DIV
20157><DIV
20158CLASS="section"
20159><HR><H2
20160CLASS="section"
20161><A
20162NAME="AEN5851"
20163>C.15. Particle System Constants</A
20164></H2
20165><P
20166>These constants are used in calls to the <A
20167HREF="#AEN3149"
20168>llParticleSystem</A
20169> api to
20170 specify parameters.</P
20171><P
20172></P
20173><DIV
20174CLASS="variablelist"
20175><P
20176><B
20177>Particle System Parameters</B
20178></P
20179><DL
20180><DT
20181>PSYS_PART_FLAGS</DT
20182><DD
20183><P
20184>Each particle that is emitted by the particle system
20185 is simulated based on the following flags. To use multiple
20186 flags, bitwise or (|) them together.</P
20187><P
20188></P
20189><DIV
20190CLASS="variablelist"
20191><P
20192><B
20193>PSYS_PART_FLAGS Values</B
20194></P
20195><DL
20196><DT
20197>PSYS_PART_INTERP_COLOR_MASK</DT
20198><DD
20199><P
20200>Interpolate both the color and alpha
20201 from the start value to the end
20202 value.</P
20203></DD
20204><DT
20205>PSYS_PART_INTERP_SCALE_MASK</DT
20206><DD
20207><P
20208>Interpolate the particle scale from
20209 the start value to the end value.</P
20210></DD
20211><DT
20212>PSYS_PART_WIND_MASK</DT
20213><DD
20214><P
20215>Particles have their velocity damped
20216 towards the wind velocity.</P
20217></DD
20218><DT
20219>PSYS_PART_BOUNCE_MASK</DT
20220><DD
20221><P
20222>Particles bounce off of a plane at the
20223 object's Z height.</P
20224></DD
20225><DT
20226>PSYS_PART_FOLLOW_SRC_MASK</DT
20227><DD
20228><P
20229>The particle position is relative to
20230 the source object's position.</P
20231></DD
20232><DT
20233>PSYS_PART_FOLLOW_VELOCITY_MASK</DT
20234><DD
20235><P
20236>The particle orientation is rotated so
20237 the vertical axis faces towards the particle
20238 velocity.</P
20239></DD
20240><DT
20241>PSYS_PART_TARGET_POS_MASK</DT
20242><DD
20243><P
20244>The particle heads towards the
20245 location of the target object as defined by
20246 PSYS_SRC_TARGET_KEY.</P
20247></DD
20248><DT
20249>PSYS_PART_EMISSIVE_MASK</DT
20250><DD
20251><P
20252>The particle glows.</P
20253></DD
20254><DT
20255>PSYS_PART_RANDOM_ACCEL_MASK</DT
20256><DD
20257><P
20258>(not implemented)</P
20259></DD
20260><DT
20261>PSYS_PART_RANDOM_VEL_MASK</DT
20262><DD
20263><P
20264>(not implemented)</P
20265></DD
20266><DT
20267>PSYS_PART_TRAIL_MASK</DT
20268><DD
20269><P
20270>(not implemented)</P
20271></DD
20272></DL
20273></DIV
20274></DD
20275><DT
20276>PSYS_SRC_PATTERN</DT
20277><DD
20278><P
20279>The pattern which is used to generate particles. Use
20280 one of the following values:</P
20281><P
20282></P
20283><DIV
20284CLASS="variablelist"
20285><P
20286><B
20287>PSYS_SRC_PATTERN Values</B
20288></P
20289><DL
20290><DT
20291>PSYS_SRC_PATTERN_DROP</DT
20292><DD
20293><P
20294>Drop particles at the source
20295 position.</P
20296></DD
20297><DT
20298>PSYS_SRC_PATTERN_EXPLODE</DT
20299><DD
20300><P
20301>Shoot particles out in all directions,
20302 using the burst parameters.</P
20303></DD
20304><DT
20305>PSYS_SRC_PATTERN_ANGLE</DT
20306><DD
20307><P
20308>Shoot particles across a 2 dimensional
20309 area defined by the arc created from
20310 PSYS_SRC_OUTERANGLE. There will be an open area
20311 defined by PSYS_SRC_INNERANGLE within the larger
20312 arc.</P
20313></DD
20314><DT
20315>PSYS_SRC_PATTERN_ANGLE_CONE</DT
20316><DD
20317><P
20318>Shoot particles out in a 3 dimensional
20319 cone with an outer arc of PSYS_SRC_OUTERANGLE and an
20320 inner open area defined by
20321 PSYS_SRC_INNERANGLE.</P
20322></DD
20323></DL
20324></DIV
20325></DD
20326><DT
20327>PSYS_PART_START_COLOR</DT
20328><DD
20329><P
20330>a vector &#60;r,g,b&#62; which determines the starting
20331 color of the object.</P
20332></DD
20333><DT
20334>PSYS_PART_START_ALPHA</DT
20335><DD
20336><P
20337>a float which determines the starting alpha of
20338 the object.</P
20339></DD
20340><DT
20341>PSYS_PART_END_COLOR</DT
20342><DD
20343><P
20344>a vector &#60;r, g, b&#62; which determines the ending
20345 color of the object.</P
20346></DD
20347><DT
20348>PSYS_PART_END_ALPHA</DT
20349><DD
20350><P
20351>a float which determines the ending alpha of
20352 the object.</P
20353></DD
20354><DT
20355>PSYS_PART_START_SCALE</DT
20356><DD
20357><P
20358>a vector &#60;sx, sy, z&#62;, which is the starting
20359 size of the particle billboard in meters (z is
20360 ignored).</P
20361></DD
20362><DT
20363>PSYS_PART_END_SCALE</DT
20364><DD
20365><P
20366>a vector &#60;sx, sy, z&#62;, which is the ending size
20367 of the particle billboard in meters (z is
20368 ignored).</P
20369></DD
20370><DT
20371>PSYS_PART_MAX_AGE</DT
20372><DD
20373><P
20374>age in seconds of a particle at which it
20375 dies.</P
20376></DD
20377><DT
20378>PSYS_SRC_ACCEL</DT
20379><DD
20380><P
20381>a vector &#60;x, y, z&#62; which is the acceleration
20382 to apply on particles.</P
20383></DD
20384><DT
20385>PSYS_SRC_TEXTURE</DT
20386><DD
20387><P
20388>an asset name for the texture to use for the
20389 particles.</P
20390></DD
20391><DT
20392>PSYS_SRC_BURST_RATE</DT
20393><DD
20394><P
20395>how often to release a particle burst (float
20396 seconds).</P
20397></DD
20398><DT
20399>PSYS_SRC_INNERANGLE</DT
20400><DD
20401><P
20402>specifies the inner angle of the arc created
20403 by the PSYS_SRC_PATTERN_ANGLE or
20404 PSYS_SRC_PATTERN_ANGLE_CONE source pattern. The area
20405 specified will not have particles in it..</P
20406></DD
20407><DT
20408>PSYS_SRC_OUTERANGLE</DT
20409><DD
20410><P
20411>specifies the outer angle of the arc created
20412 by the PSYS_SRC_PATTERN_ANGLE or
20413 PSYS_SRC_PATTERN_ANGLE_CONE source pattern. The area
20414 between the outer and inner angle will be filled with
20415 particles..</P
20416></DD
20417><DT
20418>PSYS_SRC_BURST_PART_COUNT</DT
20419><DD
20420><P
20421>how many particles to release in a
20422 burst.</P
20423></DD
20424><DT
20425>PSYS_SRC_BURST_RADIUS</DT
20426><DD
20427><P
20428>what distance from the center of the object to
20429 create the particles.</P
20430></DD
20431><DT
20432>PSYS_SRC_BURST_SPEED_MIN</DT
20433><DD
20434><P
20435>minimum speed that a particle should be
20436 moving.</P
20437></DD
20438><DT
20439>PSYS_SRC_BURST_SPEED_MAX</DT
20440><DD
20441><P
20442>maximum speed that a particle should be
20443 moving.</P
20444></DD
20445><DT
20446>PSYS_SRC_MAX_AGE</DT
20447><DD
20448><P
20449>how long this particle system should last, 0.0
20450 means forever.</P
20451></DD
20452><DT
20453>PSYS_SRC_TARGET_KEY</DT
20454><DD
20455><P
20456>the key of a target object to move towards if
20457 PSYS_PART_TARGET_POS_MASK is enabled.</P
20458></DD
20459><DT
20460>PSYS_SRC_OMEGA</DT
20461><DD
20462><P
20463>Sets the angular velocity to rotate the axis
20464 that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE
20465 use..</P
20466></DD
20467></DL
20468></DIV
20469></DIV
20470><DIV
20471CLASS="section"
20472><HR><H2
20473CLASS="section"
20474><A
20475NAME="AEN6005"
20476>C.16. Agent Data Constants</A
20477></H2
20478><P
20479>These constants are used in calls to the <A
20480HREF="#AEN3346"
20481>llRequestAgentData</A
20482> api to
20483 collect information about an agent which will be provided in the
20484 <A
20485HREF="#AEN4997"
20486>dataserver event</A
20487>.</P
20488><P
20489></P
20490><DIV
20491CLASS="variablelist"
20492><P
20493><B
20494>Agent Data Constants</B
20495></P
20496><DL
20497><DT
20498>DATA_ONLINE</DT
20499><DD
20500><P
20501>"1" for online "0" for
20502 offline.</P
20503></DD
20504><DT
20505>DATA_NAME</DT
20506><DD
20507><P
20508>The name of the agent.</P
20509></DD
20510><DT
20511>DATA_BORN</DT
20512><DD
20513><P
20514>The date the agent was born returned in ISO
20515 8601 format of YYYY-MM-DD.</P
20516></DD
20517><DT
20518>DATA_RATING</DT
20519><DD
20520><P
20521>Returns the agent ratings as a comma separated
20522 string of six integers. They are:
20523 <P
20524></P
20525><OL
20526TYPE="1"
20527><LI
20528><P
20529>Positive rated behavior</P
20530></LI
20531><LI
20532><P
20533>Negative rated behavior</P
20534></LI
20535><LI
20536><P
20537>Positive rated appearance</P
20538></LI
20539><LI
20540><P
20541>Negative rated appearance</P
20542></LI
20543><LI
20544><P
20545>Positive rated building</P
20546></LI
20547><LI
20548><P
20549>Negative rated building</P
20550></LI
20551></OL
20552>
20553 </P
20554></DD
20555></DL
20556></DIV
20557></DIV
20558><DIV
20559CLASS="section"
20560><HR><H2
20561CLASS="section"
20562><A
20563NAME="AEN6041"
20564>C.17. Float Constants</A
20565></H2
20566><P
20567>LSL provides a small collection of floating point constants
20568 for use in float arithmetic. These constants are usually employed
20569 while performing trigonometric calculations, but are sometimes
20570 useful for other applications such as specifying arc radians to
20571 sensor or particle system functions.</P
20572><P
20573></P
20574><DIV
20575CLASS="variablelist"
20576><P
20577><B
20578>Float Constants</B
20579></P
20580><DL
20581><DT
20582>PI</DT
20583><DD
20584><P
20585>3.14159265 - The radians of a
20586 hemicircle.</P
20587></DD
20588><DT
20589>TWO_PI</DT
20590><DD
20591><P
20592>6.28318530 - The radians of a
20593 circle.</P
20594></DD
20595><DT
20596>PI_BY_TWO</DT
20597><DD
20598><P
20599>1.57079633 - The radians of a quarter
20600 circle.</P
20601></DD
20602><DT
20603>DEG_TO_RAD</DT
20604><DD
20605><P
20606>0.01745329 - Number of radians per degree.
20607 You can use this to convert degrees to radians by multiplying
20608 the degrees by this number.</P
20609></DD
20610><DT
20611>RAD_TO_DEG</DT
20612><DD
20613><P
20614>57.2957795 - Number of degrees per radian. You
20615 can use this number to convert radians to degrees by
20616 multiplying the radians by this number.</P
20617></DD
20618><DT
20619>SQRT2</DT
20620><DD
20621><P
20622>1.41421356 - The square root of 2.</P
20623></DD
20624></DL
20625></DIV
20626></DIV
20627><DIV
20628CLASS="section"
20629><HR><H2
20630CLASS="section"
20631><A
20632NAME="AEN6070"
20633>C.18. Key Constant</A
20634></H2
20635><P
20636>There is only one key constant which acts as an invalid
20637 key: NULL_KEY.</P
20638></DIV
20639><DIV
20640CLASS="section"
20641><HR><H2
20642CLASS="section"
20643><A
20644NAME="AEN6073"
20645>C.19. Miscellaneous Integer Constants</A
20646></H2
20647><P
20648>There is one uncategorized integer constant which is used in
20649 some of the texturing and coloring api: ALL_SIDES</P
20650></DIV
20651><DIV
20652CLASS="section"
20653><HR><H2
20654CLASS="section"
20655><A
20656NAME="AEN6076"
20657>C.20. Miscellaneous String
20658 Constants</A
20659></H2
20660><P
20661>There is one uncategorized string constant
20662 which is used in the <A
20663HREF="#AEN4997"
20664>dataserver</A
20665> event:
20666 EOF</P
20667></DIV
20668><DIV
20669CLASS="section"
20670><HR><H2
20671CLASS="section"
20672><A
20673NAME="AEN6080"
20674>C.21. Vector Constant</A
20675></H2
20676><P
20677>There is only one vector constant which acts as a zero
20678 vector: ZERO_VECTOR = &#60;0,0,0&#62;.</P
20679></DIV
20680><DIV
20681CLASS="section"
20682><HR><H2
20683CLASS="section"
20684><A
20685NAME="AEN6083"
20686>C.22. Rotation Constant</A
20687></H2
20688><P
20689>There is only one rotation constant which acts as a zero
20690 rotation: ZERO_ROTATION = &#60;0,0,0,1&#62;.</P
20691></DIV
20692><DIV
20693CLASS="section"
20694><HR><H2
20695CLASS="section"
20696><A
20697NAME="AEN6086"
20698>C.23. Simulator Data Constants</A
20699></H2
20700><P
20701>These constants are used in calls to the <A
20702HREF="#AEN3391"
20703>llRequestSimulatorData</A
20704> api to
20705 collect information about a simulator which will be provided in the
20706 <A
20707HREF="#AEN4997"
20708>dataserver event</A
20709>.</P
20710><P
20711></P
20712><DIV
20713CLASS="variablelist"
20714><P
20715><B
20716>Simulator Data Constants</B
20717></P
20718><DL
20719><DT
20720>DATA_SIM_POS</DT
20721><DD
20722><P
20723>The global position of the simulator. Cast the
20724 value to a vector.</P
20725></DD
20726><DT
20727>DATA_SIM_STATUS</DT
20728><DD
20729><P
20730>The status of the simulator. Currently, this may be one of the following:
20731 <P
20732></P
20733><UL
20734><LI
20735STYLE="list-style-type: opencircle"
20736><P
20737>up</P
20738></LI
20739><LI
20740STYLE="list-style-type: opencircle"
20741><P
20742>down</P
20743></LI
20744><LI
20745STYLE="list-style-type: opencircle"
20746><P
20747>stopping</P
20748></LI
20749><LI
20750STYLE="list-style-type: opencircle"
20751><P
20752>starting</P
20753></LI
20754><LI
20755STYLE="list-style-type: opencircle"
20756><P
20757>crashed</P
20758></LI
20759></UL
20760>
20761 </P
20762></DD
20763></DL
20764></DIV
20765></DIV
20766><DIV
20767CLASS="section"
20768><HR><H2
20769CLASS="section"
20770><A
20771NAME="AEN6112"
20772>C.24. Vehicle Parameters</A
20773></H2
20774><P
20775></P
20776><DIV
20777CLASS="variablelist"
20778><P
20779><B
20780>Parameters</B
20781></P
20782><DL
20783><DT
20784><A
20785HREF="#AEN956"
20786>VEHICLE_LINEAR_FRICTION_TIMESCALE</A
20787></DT
20788><DD
20789><P
20790>A vector of timescales for exponential decay of the
20791 vehicle's linear velocity along its preferred axes of motion (at, left,
20792 up). Range = [0.07, inf) seconds for each element of the vector.
20793 </P
20794></DD
20795><DT
20796><A
20797HREF="#AEN956"
20798>VEHICLE_ANGULAR_FRICTION_TIMESCALE</A
20799></DT
20800><DD
20801><P
20802>A vector of timescales for exponential decay of the
20803 vehicle's angular velocity about its preferred axes of motion (at,
20804 left, up). Range = [0.07, inf) seconds for each element of the vector.
20805 </P
20806></DD
20807><DT
20808><A
20809HREF="#AEN866"
20810>VEHICLE_LINEAR_MOTOR_DIRECTION</A
20811></DT
20812><DD
20813><P
20814>The direction and magnitude (in preferred frame) of the
20815 vehicle's linear motor. The vehicle will accelerate (or decelerate if
20816 necessary) to match its velocity to its motor. Range of magnitude =
20817 [0, 30] meters/second.
20818 </P
20819></DD
20820><DT
20821><A
20822HREF="#AEN866"
20823>VEHICLE_LINEAR_MOTOR_OFFSET</A
20824></DT
20825><DD
20826><P
20827>The offset point from the vehicle's center of mass at which
20828 the linear motor's impulse is applied. This allows the linear motor
20829 to also cause rotational torque. Range of magnitude = [0, 100]
20830 meters.</P
20831></DD
20832><DT
20833><A
20834HREF="#AEN866"
20835>VEHICLE_LINEAR_MOTOR_TIMESCALE</A
20836></DT
20837><DD
20838><P
20839>The timescale for exponential approach to full
20840 linear motor velocity.</P
20841></DD
20842><DT
20843><A
20844HREF="#AEN866"
20845>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</A
20846></DT
20847><DD
20848><P
20849>The timescale for exponential decay of the linear
20850 motor's magnitude.</P
20851></DD
20852><DT
20853><A
20854HREF="#AEN898"
20855>VEHICLE_ANGULAR_MOTOR_DIRECTION</A
20856></DT
20857><DD
20858><P
20859>The direction and magnitude (in preferred frame)
20860 of the vehicle's angular motor.The vehicle will accelerate (or
20861 decelerate if necessary) to match its velocity to its
20862 motor.</P
20863></DD
20864><DT
20865><A
20866HREF="#AEN898"
20867>VEHICLE_ANGULAR_MOTOR_TIMESCALE</A
20868></DT
20869><DD
20870><P
20871>The timescale for exponential approach to full
20872 angular motor velocity.</P
20873></DD
20874><DT
20875><A
20876HREF="#AEN898"
20877>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</A
20878></DT
20879><DD
20880><P
20881>The timescale for exponential decay of the angular
20882 motor's magnitude.</P
20883></DD
20884><DT
20885><A
20886HREF="#AEN979"
20887>VEHICLE_HOVER_HEIGHT</A
20888></DT
20889><DD
20890><P
20891>The height (above the terrain or water, or global)
20892 at which the vehicle will try to hover.</P
20893></DD
20894><DT
20895><A
20896HREF="#AEN979"
20897>VEHICLE_HOVER_EFFICIENCY</A
20898></DT
20899><DD
20900><P
20901>A slider between minimum (0.0 = bouncy) and
20902 maximum (1.0 = fast as possible) damped motion of the hover
20903 behavior.</P
20904></DD
20905><DT
20906><A
20907HREF="#AEN979"
20908>VEHICLE_HOVER_TIMESCALE</A
20909></DT
20910><DD
20911><P
20912>The period of bounce (or timescale of exponential
20913 approach, depending on the hover efficiency) for the vehicle to
20914 hover to the proper height.</P
20915></DD
20916><DT
20917><A
20918HREF="#AEN972"
20919>VEHICLE_BUOYANCY</A
20920></DT
20921><DD
20922><P
20923>A slider between minimum (0.0) and maximum
20924 anti-gravity (1.0).</P
20925></DD
20926><DT
20927><A
20928HREF="#vehicle_linear_deflection"
20929>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</A
20930></DT
20931><DD
20932><P
20933>A slider between minimum (0.0) and maximum (1.0)
20934 deflection of linear velocity. That is, it's a simple scalar for
20935 modulating the strength of linear deflection.</P
20936></DD
20937><DT
20938><A
20939HREF="#vehicle_linear_deflection"
20940>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</A
20941></DT
20942><DD
20943><P
20944>The timescale for exponential success of linear
20945 deflection. It is another way to specify how much time
20946 it takes for the vehicle's linear velocity to be redirected to
20947 it's preferred axis of motion.</P
20948></DD
20949><DT
20950><A
20951HREF="#vehicle_angular_deflection"
20952>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</A
20953></DT
20954><DD
20955><P
20956>A slider between minimum (0.0) and maximum (1.0)
20957 deflection of angular orientation. That is, it's a simple scalar
20958 for modulating the strength of angular deflection such that the
20959 vehicle's preferred axis of motion points toward it's real
20960 velocity.</P
20961></DD
20962><DT
20963><A
20964HREF="#vehicle_angular_deflection"
20965>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</A
20966></DT
20967><DD
20968><P
20969>The timescale for exponential success of angular
20970 deflection. It's another way to specify the strength
20971 of the vehicle's tendency to reorient itself so that it's
20972 preferred axis of motion agrees with it's true
20973 velocity.</P
20974></DD
20975><DT
20976><A
20977HREF="#AEN938"
20978>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</A
20979></DT
20980><DD
20981><P
20982>A slider between minimum (0.0 = wobbly) and
20983 maximum (1.0 = firm as possible) stability of the vehicle to keep
20984 itself upright.</P
20985></DD
20986><DT
20987><A
20988HREF="#AEN938"
20989>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</A
20990></DT
20991><DD
20992><P
20993>The period of wobble, or timescale for exponential
20994 approach, of the vehicle to rotate such that it's preferred
20995 "up" axis is oriented along the world's "up"
20996 axis.</P
20997></DD
20998><DT
20999><A
21000HREF="#AEN949"
21001>VEHICLE_BANKING_EFFICIENCY</A
21002></DT
21003><DD
21004><P
21005>A slider between anti (-1.0), none (0.0), and
21006 maximum (1.0) banking strength.</P
21007></DD
21008><DT
21009><A
21010HREF="#AEN949"
21011>VEHICLE_BANKING_MIX</A
21012></DT
21013><DD
21014><P
21015>A slider between static (0.0) and dynamic (1.0)
21016 banking. "Static" means the banking scales only with the
21017 angle of roll, whereas "dynamic" is a term that also
21018 scales with the vehicle's linear speed.</P
21019></DD
21020><DT
21021><A
21022HREF="#AEN949"
21023>VEHICLE_BANKING_TIMESCALE</A
21024></DT
21025><DD
21026><P
21027>The timescale for banking to exponentially
21028 approach it's maximum effect. This is another way to scale the
21029 strength of the banking effect, however it affects the term that
21030 is proportional to the difference between what the banking
21031 behavior is trying to do, and what the vehicle is actually
21032 doing.</P
21033></DD
21034><DT
21035><A
21036HREF="#AEN990"
21037>VEHICLE_REFERENCE_FRAME</A
21038></DT
21039><DD
21040><P
21041>A rotation of the vehicle's preferred axes of
21042 motion and orientation (at, left, up) with respect to the
21043 vehicle's local frame (x, y, z).</P
21044></DD
21045></DL
21046></DIV
21047></DIV
21048><DIV
21049CLASS="section"
21050><HR><H2
21051CLASS="section"
21052><A
21053NAME="AEN6231"
21054>C.25. Vehicle Flags</A
21055></H2
21056><P
21057></P
21058><DIV
21059CLASS="variablelist"
21060><P
21061><B
21062>Flags</B
21063></P
21064><DL
21065><DT
21066><A
21067NAME="const_vehicle_flag_no_deflection_up"
21068></A
21069>VEHICLE_FLAG_NO_DEFLECTION_UP</DT
21070><DD
21071><P
21072>This flag prevents
21073 <A
21074HREF="#vehicle_linear_deflection"
21075>linear deflection</A
21076>
21077 parallel to world z-axis. This is useful for preventing ground
21078 vehicles with large linear deflection, like bumper cars, from climbing
21079 their linear deflection into the sky.</P
21080></DD
21081><DT
21082><A
21083NAME="const_vehicle_flag_limit_roll_only"
21084></A
21085>VEHICLE_FLAG_LIMIT_ROLL_ONLY</DT
21086><DD
21087><P
21088>For vehicles with
21089 <A
21090HREF="#AEN938"
21091>vertical attractor</A
21092>
21093 that want to be able to climb/dive, for instance, airplanes that want
21094 to use the <A
21095HREF="#AEN949"
21096>banking</A
21097>
21098 feature.</P
21099></DD
21100><DT
21101><A
21102NAME="const_vehicle_flag_hover_water_only"
21103></A
21104>VEHICLE_FLAG_HOVER_WATER_ONLY</DT
21105><DD
21106><P
21107>Ignore terrain height when
21108 <A
21109HREF="#AEN979"
21110>hovering</A
21111>.</P
21112></DD
21113><DT
21114><A
21115NAME="const_vehicle_flag_hover_terrain_only"
21116></A
21117>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</DT
21118><DD
21119><P
21120>Ignore water height when
21121 <A
21122HREF="#AEN979"
21123>hovering</A
21124>.</P
21125></DD
21126><DT
21127><A
21128NAME="const_vehicle_flag_hover_global_height"
21129></A
21130>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</DT
21131><DD
21132><P
21133><A
21134HREF="#AEN979"
21135>Hover</A
21136> at
21137 global height instead of height above ground or water.</P
21138></DD
21139><DT
21140><A
21141NAME="const_vehicle_flag_hover_up_only"
21142></A
21143>VEHICLE_FLAG_HOVER_UP_ONLY</DT
21144><DD
21145><P
21146><A
21147HREF="#AEN979"
21148>Hover</A
21149> doesn't
21150 push down. Use this flag for hovering
21151 vehicles that should be able to jump above their
21152 <A
21153HREF="#vehicle_hover_height"
21154>hover height</A
21155>.
21156 </P
21157></DD
21158><DT
21159>VEHICLE_FLAG_LIMIT_MOTOR_UP</DT
21160><DD
21161><P
21162>Prevents ground vehicles from motoring into the
21163 sky. This flag has a subtle effect when used with conjunction
21164 with <A
21165HREF="#AEN949"
21166>banking</A
21167>: the strength
21168 of the banking will decay when the vehicle no longer experiences
21169 collisions. The decay timescale is the same as
21170 <A
21171HREF="#vehicle_banking_timescale"
21172>VEHICLE_BANKING_TIMESCALE
21173 </A
21174>. This is to help prevent ground vehicles from steering
21175 when they are in mid jump.
21176 </P
21177></DD
21178><DT
21179><A
21180NAME="const_vehicle_flag_mouselook_steer"
21181></A
21182>VEHICLE_FLAG_MOUSELOOK_STEER</DT
21183><DD
21184><P
21185>Steer the vehicle using the mouse. Use this
21186 flag to make the angular motor try to make the vehicle
21187 turn such that its <A
21188HREF="#vehicle_roll_pitch_yaw"
21189>local
21190 x-axis</A
21191> points in the same direction as
21192 the client-side camera.</P
21193></DD
21194><DT
21195><A
21196NAME="const_vehicle_flag_mouselook_bank"
21197></A
21198>VEHICLE_FLAG_MOUSELOOK_BANK</DT
21199><DD
21200><P
21201>Same as above, but relies on
21202 <A
21203HREF="#AEN949"
21204>banking</A
21205>. It remaps
21206 left-right motions of the client camera (also known as "yaw") to
21207 rotations about the vehicle's <A
21208HREF="#vehicle_roll_pitch_yaw"
21209>&#13; local x-axis</A
21210>.
21211 </P
21212></DD
21213><DT
21214><A
21215NAME="const_vehicle_flag_camera_decoupled"
21216></A
21217>VEHICLE_FLAG_CAMERA_DECOUPLED</DT
21218><DD
21219><P
21220>Makes mouselook camera rotate independently of
21221 the vehicle. By default the client mouselook camera will rotate
21222 about with the vehicle, however when this flag is set the camera
21223 direction is independent of the vehicle's rotation.
21224 </P
21225></DD
21226></DL
21227></DIV
21228></DIV
21229><DIV
21230CLASS="section"
21231><HR><H2
21232CLASS="section"
21233><A
21234NAME="AEN6288"
21235>C.26. Vehicle Types</A
21236></H2
21237><P
21238></P
21239><DIV
21240CLASS="variablelist"
21241><P
21242><B
21243>Types</B
21244></P
21245><DL
21246><DT
21247>VEHICLE_TYPE_SLED</DT
21248><DD
21249><P
21250>Simple vehicle that bumps along the ground, and likes to move along
21251 it's local x-axis.</P
21252><DIV
21253CLASS="informalexample"
21254><P
21255></P
21256><A
21257NAME="AEN6296"
21258></A
21259><PRE
21260CLASS="programlisting"
21261>&#13;// most friction for left-right, least for up-down
21262llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &#60;30, 1, 1000&#62; );
21263
21264// no angular friction
21265llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &#60;1000, 1000, 1000&#62; );
21266
21267// no linear motor
21268llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &#60;0, 0, 0&#62; );
21269llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1000 );
21270llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 120 );
21271
21272// no angular motor
21273llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &#60;0, 0, 0&#62; );
21274llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1000 );
21275llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 120 );
21276
21277// no hover (but with timescale of 10 sec if enabled)
21278llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
21279llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 10 );
21280llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
21281llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
21282
21283// maximum linear deflection with timescale of 1 second
21284llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
21285llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1 );
21286
21287// no angular deflection
21288llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
21289llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
21290
21291// no vertical attractor (doesn't mind flipping over)
21292llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
21293llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
21294
21295// no banking
21296llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
21297llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
21298llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 10 );
21299
21300// default rotation of local frame
21301llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &#60;0, 0, 0, 1&#62; );
21302
21303// remove these flags
21304llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
21305 | VEHICLE_FLAG_HOVER_TERRAIN_ONLY
21306 | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
21307 | VEHICLE_FLAG_HOVER_UP_ONLY );
21308
21309// set these flags (the limit_roll flag will have no effect
21310// until banking is enabled, if ever)
21311llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
21312 | VEHICLE_FLAG_LIMIT_ROLL_ONLY
21313 | VEHICLE_FLAG_LIMIT_MOTOR_UP );
21314 </PRE
21315><P
21316></P
21317></DIV
21318></DD
21319><DT
21320>VEHICLE_TYPE_CAR</DT
21321><DD
21322><P
21323>Another vehicle that bounces along the ground but
21324 needs the motors to be driven from external controls or <A
21325HREF="#AEN5211"
21326>timer</A
21327> events.</P
21328><DIV
21329CLASS="informalexample"
21330><P
21331></P
21332><A
21333NAME="AEN6303"
21334></A
21335><PRE
21336CLASS="programlisting"
21337>&#13;// most friction for left-right, least for up-down
21338llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &#60;100, 2, 1000&#62; );
21339
21340// no angular friction
21341llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &#60;1000, 1000, 1000&#62; );
21342
21343// linear motor wins after about a second, decays after about a minute
21344llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &#60;0, 0, 0&#62; );
21345llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1 );
21346llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
21347
21348// angular motor wins after a second, decays in less time than that
21349llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &#60;0, 0, 0&#62; );
21350llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1 );
21351llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.8 );
21352
21353// no hover
21354llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
21355llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 );
21356llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
21357llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
21358
21359// maximum linear deflection with timescale of 2 seconds
21360llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
21361llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 2 );
21362
21363// no angular deflection
21364llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
21365llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
21366
21367// critically damped vertical attractor
21368llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
21369llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 10 );
21370
21371// weak negative critically damped banking
21372llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.2 );
21373llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
21374llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
21375
21376// default rotation of local frame
21377llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &#60;0, 0, 0, 1&#62; );
21378
21379// remove these flags
21380llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
21381 | VEHICLE_FLAG_HOVER_TERRAIN_ONLY
21382 | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
21383
21384// set these flags
21385llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
21386 | VEHICLE_FLAG_LIMIT_ROLL_ONLY
21387 | VEHICLE_FLAG_HOVER_UP_ONLY
21388 | VEHICLE_FLAG_LIMIT_MOTOR_UP );
21389 </PRE
21390><P
21391></P
21392></DIV
21393></DD
21394><DT
21395>VEHICLE_TYPE_BOAT</DT
21396><DD
21397><P
21398>Hovers over water with lots of friction and some angular deflection.</P
21399><DIV
21400CLASS="informalexample"
21401><P
21402></P
21403><A
21404NAME="AEN6309"
21405></A
21406><PRE
21407CLASS="programlisting"
21408>&#13;// least for forward-back, most friction for up-down
21409llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &#60;10, 3, 2&#62; );
21410
21411// uniform angular friction (setting it as a scalar rather than a vector)
21412llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
21413
21414// linear motor wins after about five seconds, decays after about a minute
21415llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &#60;0, 0, 0&#62; );
21416llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
21417llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
21418
21419// angular motor wins after four seconds, decays in same amount of time
21420llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &#60;0, 0, 0&#62; );
21421llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
21422llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 4 );
21423
21424// hover
21425llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
21426llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
21427llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 2.0 );
21428llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
21429
21430// halfway linear deflection with timescale of 3 seconds
21431llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
21432llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 3 );
21433
21434// angular deflection
21435llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.5 );
21436llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
21437
21438// somewhat bouncy vertical attractor
21439llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5 );
21440llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 5 );
21441
21442// weak negative damped banking
21443llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.3 );
21444llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.8 );
21445llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
21446
21447// default rotation of local frame
21448llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &#60;0, 0, 0, 1&#62; );
21449
21450// remove these flags
21451llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_TERRAIN_ONLY
21452 | VEHICLE_FLAG_LIMIT_ROLL_ONLY
21453 | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
21454
21455// set these flags
21456llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
21457 | VEHICLE_FLAG_HOVER_WATER_ONLY
21458 | VEHICLE_FLAG_HOVER_UP_ONLY
21459 | VEHICLE_FLAG_LIMIT_MOTOR_UP );
21460 </PRE
21461><P
21462></P
21463></DIV
21464></DD
21465><DT
21466>VEHICLE_TYPE_AIRPLANE</DT
21467><DD
21468><P
21469>Uses linear deflection for lift, no hover, and banking to turn.</P
21470><DIV
21471CLASS="informalexample"
21472><P
21473></P
21474><A
21475NAME="AEN6315"
21476></A
21477><PRE
21478CLASS="programlisting"
21479>&#13;// very little friction along forward-back axis
21480llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &#60;200, 10, 5&#62; );
21481
21482// uniform angular friction
21483llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 20 );
21484
21485// linear motor
21486llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &#60;0, 0, 0&#62; );
21487llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 );
21488llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
21489
21490// angular motor
21491llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &#60;0, 0, 0&#62; );
21492llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
21493llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 8 );
21494
21495// no hover
21496llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
21497llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
21498llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
21499llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
21500
21501// linear deflection
21502llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
21503llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.5 );
21504
21505// angular deflection
21506llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 1.0 );
21507llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0 );
21508
21509// vertical attractor
21510llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.9 );
21511llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 );
21512
21513// banking
21514llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1 );
21515llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
21516llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 2 );
21517
21518// default rotation of local frame
21519llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &#60;0, 0, 0, 1&#62; );
21520
21521// remove these flags
21522llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
21523 | VEHICLE_FLAG_HOVER_WATER_ONLY
21524 | VEHICLE_FLAG_HOVER_TERRAIN_ONLY
21525 | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
21526 | VEHICLE_FLAG_HOVER_UP_ONLY
21527 | VEHICLE_FLAG_LIMIT_MOTOR_UP );
21528
21529// set these flags
21530llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );
21531 </PRE
21532><P
21533></P
21534></DIV
21535></DD
21536><DT
21537>VEHICLE_TYPE_BALLOON</DT
21538><DD
21539><P
21540>Hover, and friction, but no deflection.</P
21541><DIV
21542CLASS="informalexample"
21543><P
21544></P
21545><A
21546NAME="AEN6321"
21547></A
21548><PRE
21549CLASS="programlisting"
21550>&#13;// uniform linear friction
21551llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );
21552
21553// uniform angular friction
21554llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
21555
21556// linear motor
21557llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &#60;0, 0, 0&#62; );
21558llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
21559llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
21560
21561// angular motor
21562llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &#60;0, 0, 0&#62; );
21563llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 6 );
21564llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 10 );
21565
21566// hover
21567llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 5 );
21568llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.8 );
21569llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
21570llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
21571
21572// no linear deflection
21573llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 );
21574llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 );
21575
21576// no angular deflection
21577llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
21578llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
21579
21580// no vertical attractor
21581llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
21582llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
21583
21584// no banking
21585llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
21586llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
21587llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 5 );
21588
21589// default rotation of local frame
21590llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &#60;0, 0, 0, 1&#62; );
21591
21592// remove all flags
21593llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
21594 | VEHICLE_FLAG_HOVER_WATER_ONLY
21595 | VEHICLE_FLAG_LIMIT_ROLL_ONLY
21596 | VEHICLE_FLAG_HOVER_TERRAIN_ONLY
21597 | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
21598 | VEHICLE_FLAG_HOVER_UP_ONLY
21599 | VEHICLE_FLAG_LIMIT_MOTOR_UP );
21600 </PRE
21601><P
21602></P
21603></DIV
21604></DD
21605></DL
21606></DIV
21607></DIV
21608><DIV
21609CLASS="section"
21610><HR><H2
21611CLASS="section"
21612><A
21613NAME="AEN6323"
21614>C.27. Primitive Constants</A
21615></H2
21616><P
21617>These constants are used in calls to the <A
21618HREF="#AEN4020"
21619>llSetPrimitiveParams</A
21620> and <A
21621HREF="#AEN2075"
21622>llGetPrimitiveParams</A
21623> api to
21624 specify parameters.</P
21625><P
21626></P
21627><DIV
21628CLASS="variablelist"
21629><P
21630><B
21631>Primitive Parameters</B
21632></P
21633><DL
21634><DT
21635>PRIM_TYPE</DT
21636><DD
21637><P
21638>This allows the various primitive shape parameters to be controlled. PRIM_TYPE must be followed by
21639 appropriate arguments based on which type is selected.</P
21640><P
21641></P
21642><DIV
21643CLASS="variablelist"
21644><P
21645><B
21646>PRIM_TYPE Values</B
21647></P
21648><DL
21649><DT
21650>PRIM_TYPE_BOX</DT
21651><DD
21652><P
21653>Sets the primitive to a box, followed by integer hole shape, vector cut, float hollow, vector twist, vector top size, and vector top shear.</P
21654></DD
21655><DT
21656>PRIM_TYPE_CYLINDER</DT
21657><DD
21658><P
21659>Sets the primitive to a cylinder, followed by integer hole shape, vector cut, float hollow, vector twist, vector top size, and vector top shear.</P
21660></DD
21661><DT
21662>PRIM_TYPE_PRISM</DT
21663><DD
21664><P
21665>Sets the primitive to a prism, followed by integer hole shape, vector cut, float hollow, vector twist, vector top size, and vector top shear.</P
21666></DD
21667><DT
21668>PRIM_TYPE_SPHERE</DT
21669><DD
21670><P
21671>Sets the primitive to a sphere, followed by integer hole shape, vector cut, float hollow, vector twist, and vector dimple.</P
21672></DD
21673><DT
21674>PRIM_TYPE_TORUS</DT
21675><DD
21676><P
21677>Sets the primitive to a torus, followed by integer hole shape, vector cut, float hollow, vector twist, vector hole size, vector top shear, vector advanced cut, vector taper, float revolutions, float radius offset, and float skew.</P
21678></DD
21679><DT
21680>PRIM_TYPE_TUBE</DT
21681><DD
21682><P
21683>Sets the primitive to a tube, followed by integer hole shape, vector cut, float hollow, vector twist, vector hole size, vector top shear, vector advanced cut, vector taper, float revolutions, float radius offset, and float skew.</P
21684></DD
21685><DT
21686>PRIM_TYPE_RING</DT
21687><DD
21688><P
21689>Sets the primitive to a ring, followed by integer hole shape, vector cut, float hollow, vector twist, vector hole size, vector top shear, vector advanced cut, vector taper, float revolutions, float radius offset, and float skew.</P
21690></DD
21691></DL
21692></DIV
21693><P
21694>Choose hole shape from one of PRIM_HOLE_DEFAULT, PRIM_HOLE_CIRCLE, PRIM_HOLE_SQUARE, or PRIM_HOLE_TRIANGLE.</P
21695></DD
21696><DT
21697>PRIM_MATERIAL</DT
21698><DD
21699><P
21700>Choose material from one of PRIM_MATERIAL_STONE, PRIM_MATERIAL_METAL, PRIM_MATERIAL_GLASS,
21701 PRIM_MATERIAL_WOOD, PRIM_MATERIAL_FLESH, PRIM_MATERIAL_PLASTIC, PRIM_MATERIAL_RUBBER, or PRIM_MATERIAL_LIGHT.</P
21702></DD
21703><DT
21704>PRIM_PHYSICS</DT
21705><DD
21706><P
21707>Set physics to TRUE or FALSE.</P
21708></DD
21709><DT
21710>PRIM_TEMP_ON_REZ</DT
21711><DD
21712><P
21713>Set temporary on rez to TRUE or FALSE.</P
21714></DD
21715><DT
21716>PRIM_PHANTOM</DT
21717><DD
21718><P
21719>Set phantom to TRUE or FALSE.</P
21720></DD
21721><DT
21722>PRIM_POSITION</DT
21723><DD
21724><P
21725>Sets the position with a vector.</P
21726></DD
21727><DT
21728>PRIM_SIZE</DT
21729><DD
21730><P
21731>Sets the size with a vector.</P
21732></DD
21733><DT
21734>PRIM_ROTATION</DT
21735><DD
21736><P
21737>Sets the rotation with a rotation.</P
21738></DD
21739><DT
21740>PRIM_TEXTURE</DT
21741><DD
21742><P
21743>Followed by an integer face, key id, vector repeats, vector offsets, and float rotation in radians.</P
21744></DD
21745><DT
21746>PRIM_COLOR</DT
21747><DD
21748><P
21749>Followed by an integer face, vector color, and float alpha.</P
21750></DD
21751><DT
21752>PRIM_BUMP_SHINY</DT
21753><DD
21754><P
21755>Followed by an integer face, one of PRIM_SHINY_NONE, PRIM_SHINY_LOW, PRIM_SHINY_MEDIUM, or PRIM_SHINY_HIGH,
21756 and one of PRIM_BUMP_NONE, PRIM_BUMP_BRIGHT, PRIM_BUMP_DARK, PRIM_BUMP_WOOD, PRIM_BUMP_BARK,
21757 PRIM_BUMP_BRICKS, PRIM_BUMP_CHECKER, PRIM_BUMP_CONCRETE, PRIM_BUMP_TILE, PRIM_BUMP_STONE, PRIM_BUMP_DISKS,
21758 PRIM_BUMP_GRAVEL, PRIM_BUMP_BLOBS, PRIM_BUMP_SIDING, PRIM_BUMP_LARGETILE, PRIM_BUMP_STUCCO, PRIM_BUMP_SUCTION,
21759 or PRIM_BUMP_WEAVE.</P
21760></DD
21761><DT
21762>PRIM_GLOW</DT
21763><DD
21764><P
21765>Followed by an integer face and a float glow value (in range 0.0 to 1.0).</P
21766></DD
21767></DL
21768></DIV
21769></DIV
21770><DIV
21771CLASS="section"
21772><HR><H2
21773CLASS="section"
21774><A
21775NAME="AEN6409"
21776>C.28. XML-RPC Constants</A
21777></H2
21778><P
21779>These constants are passed to the remote_data event: REMOTE_DATA_CHANNEL, REMOTE_DATA_REQUEST, and REMOTE_DATA_REPLY.</P
21780></DIV
21781><DIV
21782CLASS="section"
21783><HR><H2
21784CLASS="section"
21785><A
21786NAME="AEN6412"
21787>C.29. Permission Mask Constants</A
21788></H2
21789><P
21790>These MASK_* constants are used as arguments to <A
21791HREF="#AEN2009"
21792>llGetObjectPermMask</A
21793> and <A
21794HREF="#AEN1801"
21795>llGetInventoryPermMask</A
21796>. These functions return combinations of PERM_* constants.</P
21797><P
21798></P
21799><DIV
21800CLASS="variablelist"
21801><P
21802><B
21803>Mask and Permission Constants</B
21804></P
21805><DL
21806><DT
21807>MASK_BASE</DT
21808><DD
21809><P
21810>Specifies base permissions. These permissions are identical to owner permissions except in the case that the object is locked. When an object is locked, owner permissions are stripped of move/modify rights (thus, the 'locking'). On unlock, owner permissions revert back to base permissions.</P
21811></DD
21812><DT
21813>MASK_OWNER</DT
21814><DD
21815><P
21816>Specifies owner permissions. These are never more permissive than base permissions.</P
21817></DD
21818><DT
21819>MASK_GROUP</DT
21820><DD
21821><P
21822>Specifies group permissions. These are never more permissive than owner permissions.</P
21823></DD
21824><DT
21825>MASK_EVERYONE</DT
21826><DD
21827><P
21828>Specifies everyone permissions. These are never more permissive than owner permissions.</P
21829></DD
21830><DT
21831>MASK_NEXT</DT
21832><DD
21833><P
21834>Specifies next owner permissions. These are never more permissive than base permissions.</P
21835></DD
21836><DT
21837>PERM_MOVE</DT
21838><DD
21839><P
21840>Set if movement is allowed.</P
21841></DD
21842><DT
21843>PERM_MODIFY</DT
21844><DD
21845><P
21846>Set if modification is allowed.</P
21847></DD
21848><DT
21849>PERM_COPY</DT
21850><DD
21851><P
21852>Set if copying is allowed.</P
21853></DD
21854><DT
21855>PERM_TRANSFER</DT
21856><DD
21857><P
21858>Set if transfers are allowed.</P
21859></DD
21860><DT
21861>PERM_ALL</DT
21862><DD
21863><P
21864>This is returned if all other PERM_* are set.</P
21865></DD
21866></DL
21867></DIV
21868></DIV
21869><DIV
21870CLASS="section"
21871><HR><H2
21872CLASS="section"
21873><A
21874NAME="AEN6459"
21875>C.30. Parcel Media Constants</A
21876></H2
21877><P
21878>These constants are passed to the <A
21879HREF="#AEN3031"
21880>llParcelMediaCommand</A
21881> to control playback of movies and other multimedia within a land parcel.</P
21882><P
21883></P
21884><DIV
21885CLASS="variablelist"
21886><P
21887><B
21888>Parcel Media Constants</B
21889></P
21890><DL
21891><DT
21892>PARCEL_MEDIA_COMMAND_STOP</DT
21893><DD
21894><P
21895>Stop the media stream and go back to the first frame.</P
21896></DD
21897><DT
21898>PARCEL_MEDIA_COMMAND_PAUSE</DT
21899><DD
21900><P
21901>Pause the media stream (stop playing but stay on current frame).</P
21902></DD
21903><DT
21904>PARCEL_MEDIA_COMMAND_PLAY</DT
21905><DD
21906><P
21907>Start the media stream playing from the current frame and stop when the end is reached.</P
21908></DD
21909><DT
21910>PARCEL_MEDIA_COMMAND_LOOP_SET</DT
21911><DD
21912><P
21913>Used to get or set the parcel's media looping variable.
21914 </P
21915></DD
21916><DT
21917>PARCEL_MEDIA_COMMAND_TEXTURE</DT
21918><DD
21919><P
21920>Use this to get or set the parcel's media texture.
21921 </P
21922></DD
21923><DT
21924>PARCEL_MEDIA_COMMAND_URL</DT
21925><DD
21926><P
21927>Used to get or set the parcel's media url.
21928 </P
21929></DD
21930><DT
21931>PARCEL_MEDIA_COMMAND_TYPE</DT
21932><DD
21933><P
21934>Used to get or set the parcel's media mimetype.
21935 </P
21936></DD
21937><DT
21938>PARCEL_MEDIA_COMMAND_DESC</DT
21939><DD
21940><P
21941>Used to get or set the parcel's media description.
21942 </P
21943></DD
21944><DT
21945>PARCEL_MEDIA_COMMAND_SIZE</DT
21946><DD
21947><P
21948>Used to get or set the parcel's media pixel size.
21949 </P
21950></DD
21951><DT
21952>PARCEL_MEDIA_COMMAND_TIME</DT
21953><DD
21954><P
21955>Move a media stream to a specific time.
21956 </P
21957></DD
21958><DT
21959>PARCEL_MEDIA_COMMAND_AGENT</DT
21960><DD
21961><P
21962>Applies the media command to the specified agent only.
21963 </P
21964></DD
21965><DT
21966>PARCEL_MEDIA_COMMAND_UNLOAD</DT
21967><DD
21968><P
21969>Completely unloads the movie and restores the original texture.
21970 </P
21971></DD
21972><DT
21973>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</DT
21974><DD
21975><P
21976>Sets the parcel option 'Auto scale content'.
21977 </P
21978></DD
21979><DT
21980>PARCEL_MEDIA_COMMAND_LOOP</DT
21981><DD
21982><P
21983>This command has been depricated in favor of the PARCEL_MEDIA_COMMAND_LOOP_SET above.
21984 </P
21985></DD
21986></DL
21987></DIV
21988></DIV
21989><DIV
21990CLASS="section"
21991><HR><H2
21992CLASS="section"
21993><A
21994NAME="AEN6521"
21995>C.31. Click Action Constants</A
21996></H2
21997><P
21998>These constants are passed to <A
21999HREF="#AEN3791"
22000>llSetClickAction</A
22001> to define default behavior when a resident clicks upon a prim.</P
22002><P
22003></P
22004><DIV
22005CLASS="variablelist"
22006><P
22007><B
22008>Click Action Constants</B
22009></P
22010><DL
22011><DT
22012>CLICK_ACTION_NONE</DT
22013><DD
22014><P
22015>Disables the click action for this prim.</P
22016></DD
22017><DT
22018>CLICK_ACTION_TOUCH</DT
22019><DD
22020><P
22021>Sets the click-action behavior of this prim to touch.</P
22022></DD
22023><DT
22024>CLICK_ACTION_SIT</DT
22025><DD
22026><P
22027>Sets the click-action behavior of this prim to sit.</P
22028></DD
22029><DT
22030>CLICK_ACTION_BUY</DT
22031><DD
22032><P
22033>Sets the click-action behavior of this prim to buy.</P
22034></DD
22035><DT
22036>CLICK_ACTION_PAY</DT
22037><DD
22038><P
22039>Sets the click-action behavior of this prim to pay.</P
22040></DD
22041><DT
22042>CLICK_ACTION_OPEN</DT
22043><DD
22044><P
22045>Sets the click-action behavior of this prim to open.</P
22046></DD
22047><DT
22048>CLICK_ACTION_PLAY</DT
22049><DD
22050><P
22051>Sets the click-action behavior of this prim to play.</P
22052></DD
22053><DT
22054>CLICK_ACTION_OPEN_MEDIA</DT
22055><DD
22056><P
22057>Sets the click-action behavior of this prim to open-media.</P
22058></DD
22059><DT
22060>CLICK_ACTION_SIT</DT
22061><DD
22062><P
22063>Sets the click-action behavior of this prim to sit.</P
22064></DD
22065><DT
22066>CLICK_ACTION_SIT</DT
22067><DD
22068><P
22069>Sets the click-action behavior of this prim to sit.</P
22070></DD
22071></DL
22072></DIV
22073></DIV
22074></DIV
22075></DIV
22076></BODY
22077></HTML
22078> \ No newline at end of file
diff --git a/linden/indra/newview/macmain.h b/linden/indra/newview/macmain.h
index 941766e..c91b232 100644
--- a/linden/indra/newview/macmain.h
+++ b/linden/indra/newview/macmain.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/macutil_Prefix.h b/linden/indra/newview/macutil_Prefix.h
index 81918f3..cdc000f 100644
--- a/linden/indra/newview/macutil_Prefix.h
+++ b/linden/indra/newview/macutil_Prefix.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/macview_Prefix.h b/linden/indra/newview/macview_Prefix.h
index d71dc38..88aecda 100644
--- a/linden/indra/newview/macview_Prefix.h
+++ b/linden/indra/newview/macview_Prefix.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/noise.cpp b/linden/indra/newview/noise.cpp
index 6b8a9b4..4086ea8 100644
--- a/linden/indra/newview/noise.cpp
+++ b/linden/indra/newview/noise.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/noise.h b/linden/indra/newview/noise.h
index dad239c..cc14452 100644
--- a/linden/indra/newview/noise.h
+++ b/linden/indra/newview/noise.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2000&license=viewergpl$ 5 * $LicenseInfo:firstyear=2000&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2000-2008, Linden Research, Inc. 7 * Copyright (c) 2000-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp
index e7db166..0406520 100644
--- a/linden/indra/newview/pipeline.cpp
+++ b/linden/indra/newview/pipeline.cpp
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2005&license=viewergpl$ 5 * $LicenseInfo:firstyear=2005&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2005-2008, Linden Research, Inc. 7 * Copyright (c) 2005-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -220,6 +220,7 @@ void display_update_camera();
220 220
221S32 LLPipeline::sCompiles = 0; 221S32 LLPipeline::sCompiles = 0;
222 222
223BOOL LLPipeline::sPickAvatar = TRUE;
223BOOL LLPipeline::sDynamicLOD = TRUE; 224BOOL LLPipeline::sDynamicLOD = TRUE;
224BOOL LLPipeline::sShowHUDAttachments = TRUE; 225BOOL LLPipeline::sShowHUDAttachments = TRUE;
225BOOL LLPipeline::sRenderPhysicalBeacons = TRUE; 226BOOL LLPipeline::sRenderPhysicalBeacons = TRUE;
@@ -330,8 +331,15 @@ void LLPipeline::init()
330 mRenderDebugFeatureMask = 0xffffffff; // All debugging features on 331 mRenderDebugFeatureMask = 0xffffffff; // All debugging features on
331 mRenderDebugMask = 0; // All debug starts off 332 mRenderDebugMask = 0; // All debug starts off
332 333
334 // Don't turn on ground when this is set
335 // Mac Books with intel 950s need this
336 if(!gSavedSettings.getBOOL("RenderGround"))
337 {
338 toggleRenderType(RENDER_TYPE_GROUND);
339 }
340
333 mOldRenderDebugMask = mRenderDebugMask; 341 mOldRenderDebugMask = mRenderDebugMask;
334 342
335 mBackfaceCull = TRUE; 343 mBackfaceCull = TRUE;
336 344
337 stop_glerror(); 345 stop_glerror();
@@ -454,7 +462,7 @@ void LLPipeline::resizeScreenTexture()
454 } 462 }
455 463
456 mScreen.release(); 464 mScreen.release();
457 mScreen.allocate(resX, resY, GL_RGBA, TRUE, GL_TEXTURE_RECTANGLE_ARB); 465 mScreen.allocate(resX, resY, GL_RGBA, TRUE, LLTexUnit::TT_RECT_TEXTURE);
458 466
459 llinfos << "RESIZED SCREEN TEXTURE: " << resX << "x" << resY << llendl; 467 llinfos << "RESIZED SCREEN TEXTURE: " << resX << "x" << resY << llendl;
460 } 468 }
@@ -556,7 +564,7 @@ void LLPipeline::createGLBuffers()
556 564
557 for (U32 j = 0; j < 3; j++) 565 for (U32 j = 0; j < 3; j++)
558 { 566 {
559 glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, mBlurCubeTexture[j]); 567 gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_CUBE_MAP, mBlurCubeTexture[j]);
560 glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 568 glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
561 glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 569 glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
562 glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 570 glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
@@ -583,10 +591,11 @@ void LLPipeline::createGLBuffers()
583 mGlow[i].allocate(512,glow_res,GL_RGBA,FALSE); 591 mGlow[i].allocate(512,glow_res,GL_RGBA,FALSE);
584 } 592 }
585 593
594
586 GLuint resX = gViewerWindow->getWindowDisplayWidth(); 595 GLuint resX = gViewerWindow->getWindowDisplayWidth();
587 GLuint resY = gViewerWindow->getWindowDisplayHeight(); 596 GLuint resY = gViewerWindow->getWindowDisplayHeight();
588 597
589 mScreen.allocate(resX, resY, GL_RGBA, TRUE, GL_TEXTURE_RECTANGLE_ARB); 598 mScreen.allocate(resX, resY, GL_RGBA, TRUE, LLTexUnit::TT_RECT_TEXTURE);
590 } 599 }
591} 600}
592 601
@@ -1212,7 +1221,7 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl
1212 LLVertexBuffer::unbind(); 1221 LLVertexBuffer::unbind();
1213 LLGLDisable blend(GL_BLEND); 1222 LLGLDisable blend(GL_BLEND);
1214 LLGLDisable test(GL_ALPHA_TEST); 1223 LLGLDisable test(GL_ALPHA_TEST);
1215 LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); 1224 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1216 1225
1217 gGL.setColorMask(false, false); 1226 gGL.setColorMask(false, false);
1218 LLGLDepthTest depth(GL_TRUE, GL_FALSE); 1227 LLGLDepthTest depth(GL_TRUE, GL_FALSE);
@@ -1357,7 +1366,7 @@ void LLPipeline::doOcclusion(LLCamera& camera)
1357 } 1366 }
1358 LLGLDisable blend(GL_BLEND); 1367 LLGLDisable blend(GL_BLEND);
1359 LLGLDisable test(GL_ALPHA_TEST); 1368 LLGLDisable test(GL_ALPHA_TEST);
1360 LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); 1369 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
1361 LLGLDepthTest depth(GL_TRUE, GL_FALSE); 1370 LLGLDepthTest depth(GL_TRUE, GL_FALSE);
1362 1371
1363 if (LLPipeline::sUseOcclusion > 1) 1372 if (LLPipeline::sUseOcclusion > 1)
@@ -2334,7 +2343,7 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
2334 } 2343 }
2335 } 2344 }
2336 2345
2337 2346 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:ForceVBO");
2338 2347
2339 //by bao 2348 //by bao
2340 //fake vertex buffer updating 2349 //fake vertex buffer updating
@@ -2368,7 +2377,7 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
2368 sUnderWaterRender = FALSE; 2377 sUnderWaterRender = FALSE;
2369 } 2378 }
2370 2379
2371 LLViewerImage::sDefaultImagep->bind(0); 2380 gGL.getTexUnit(0)->bind(LLViewerImage::sDefaultImagep);
2372 LLViewerImage::sDefaultImagep->setClamp(FALSE, FALSE); 2381 LLViewerImage::sDefaultImagep->setClamp(FALSE, FALSE);
2373 2382
2374 ////////////////////////////////////////////// 2383 //////////////////////////////////////////////
@@ -2381,12 +2390,16 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
2381 2390
2382 U32 cur_type = 0; 2391 U32 cur_type = 0;
2383 2392
2393 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderDrawPools");
2394
2384 if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_PICKING)) 2395 if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_PICKING))
2385 { 2396 {
2397 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderForSelect");
2386 gObjectList.renderObjectsForSelect(camera, gViewerWindow->getVirtualWindowRect()); 2398 gObjectList.renderObjectsForSelect(camera, gViewerWindow->getVirtualWindowRect());
2387 } 2399 }
2388 else if (gSavedSettings.getBOOL("RenderDeferred")) 2400 else if (gSavedSettings.getBOOL("RenderDeferred"))
2389 { 2401 {
2402 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderDeferred");
2390 renderGeomDeferred(); 2403 renderGeomDeferred();
2391 } 2404 }
2392 else 2405 else
@@ -2474,6 +2487,8 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
2474 stop_glerror(); 2487 stop_glerror();
2475 } 2488 }
2476 } 2489 }
2490
2491 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderDrawPoolsEnd");
2477 2492
2478 LLVertexBuffer::unbind(); 2493 LLVertexBuffer::unbind();
2479 LLGLState::checkStates(); 2494 LLGLState::checkStates();
@@ -2497,6 +2512,8 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
2497 LLGLState::checkTextureChannels(); 2512 LLGLState::checkTextureChannels();
2498 LLGLState::checkClientArrays(); 2513 LLGLState::checkClientArrays();
2499 2514
2515 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderHighlights");
2516
2500 if (!sReflectionRender) 2517 if (!sReflectionRender)
2501 { 2518 {
2502 renderHighlights(); 2519 renderHighlights();
@@ -2506,6 +2523,8 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
2506 // have touch-handlers. 2523 // have touch-handlers.
2507 mHighlightFaces.clear(); 2524 mHighlightFaces.clear();
2508 2525
2526 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderDebug");
2527
2509 renderDebug(); 2528 renderDebug();
2510 2529
2511 LLVertexBuffer::unbind(); 2530 LLVertexBuffer::unbind();
@@ -2518,6 +2537,8 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
2518 gObjectList.resetObjectBeacons(); 2537 gObjectList.resetObjectBeacons();
2519 } 2538 }
2520 2539
2540 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomEnd");
2541
2521 //HACK: preserve/restore matrices around HUD render 2542 //HACK: preserve/restore matrices around HUD render
2522 if (gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_HUD)) 2543 if (gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_HUD))
2523 { 2544 {
@@ -2604,11 +2625,11 @@ void LLPipeline::renderDebug()
2604 // Debug composition layers 2625 // Debug composition layers
2605 F32 x, y; 2626 F32 x, y;
2606 2627
2607 LLGLSNoTexture gls_no_texture; 2628 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
2608 2629
2609 if (gAgent.getRegion()) 2630 if (gAgent.getRegion())
2610 { 2631 {
2611 gGL.begin(LLVertexBuffer::POINTS); 2632 gGL.begin(LLRender::POINTS);
2612 // Draw the composition layer for the region that I'm in. 2633 // Draw the composition layer for the region that I'm in.
2613 for (x = 0; x <= 260; x++) 2634 for (x = 0; x <= 260; x++)
2614 { 2635 {
@@ -2654,6 +2675,7 @@ void LLPipeline::renderForSelect(std::set<LLViewerObject*>& objects, BOOL render
2654 2675
2655 LLGLSDefault gls_default; 2676 LLGLSDefault gls_default;
2656 LLGLSObjectSelect gls_object_select; 2677 LLGLSObjectSelect gls_object_select;
2678 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
2657 LLGLDepthTest gls_depth(GL_TRUE,GL_TRUE); 2679 LLGLDepthTest gls_depth(GL_TRUE,GL_TRUE);
2658 disableLights(); 2680 disableLights();
2659 2681
@@ -3101,7 +3123,7 @@ void LLPipeline::setupAvatarLights(BOOL for_edit)
3101 camera_rot.invert(); 3123 camera_rot.invert();
3102 LLVector4 light_pos = light_pos_cam * camera_rot; 3124 LLVector4 light_pos = light_pos_cam * camera_rot;
3103 3125
3104 light_pos.normVec(); 3126 light_pos.normalize();
3105 3127
3106 mHWLightColors[1] = diffuse; 3128 mHWLightColors[1] = diffuse;
3107 glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse.mV); 3129 glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse.mV);
@@ -3119,7 +3141,7 @@ void LLPipeline::setupAvatarLights(BOOL for_edit)
3119 LLVector3 opposite_pos = -1.f * mSunDir; 3141 LLVector3 opposite_pos = -1.f * mSunDir;
3120 LLVector3 orthog_light_pos = mSunDir % LLVector3::z_axis; 3142 LLVector3 orthog_light_pos = mSunDir % LLVector3::z_axis;
3121 LLVector4 backlight_pos = LLVector4(lerp(opposite_pos, orthog_light_pos, 0.3f), 0.0f); 3143 LLVector4 backlight_pos = LLVector4(lerp(opposite_pos, orthog_light_pos, 0.3f), 0.0f);
3122 backlight_pos.normVec(); 3144 backlight_pos.normalize();
3123 3145
3124 LLColor4 light_diffuse = mSunDiffuse; 3146 LLColor4 light_diffuse = mSunDiffuse;
3125 LLColor4 backlight_diffuse(1.f - light_diffuse.mV[VRED], 1.f - light_diffuse.mV[VGREEN], 1.f - light_diffuse.mV[VBLUE], 1.f); 3147 LLColor4 backlight_diffuse(1.f - light_diffuse.mV[VRED], 1.f - light_diffuse.mV[VGREEN], 1.f - light_diffuse.mV[VBLUE], 1.f);
@@ -3458,7 +3480,7 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)
3458 atten = x / (light_radius); // % of brightness at radius 3480 atten = x / (light_radius); // % of brightness at radius
3459 quad = 0.0f; 3481 quad = 0.0f;
3460 } 3482 }
3461 //mHWLightColors[cur_light] = light_color; 3483 mHWLightColors[2] = light_color;
3462 S32 gllight = GL_LIGHT2; 3484 S32 gllight = GL_LIGHT2;
3463 glLightfv(gllight, GL_POSITION, light_pos_gl.mV); 3485 glLightfv(gllight, GL_POSITION, light_pos_gl.mV);
3464 glLightfv(gllight, GL_DIFFUSE, light_color.mV); 3486 glLightfv(gllight, GL_DIFFUSE, light_color.mV);
@@ -3999,6 +4021,7 @@ BOOL LLPipeline::getRenderHighlights(void*)
3999} 4021}
4000 4022
4001LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector3& start, const LLVector3& end, 4023LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector3& start, const LLVector3& end,
4024 BOOL pick_transparent,
4002 S32* face_hit, 4025 S32* face_hit,
4003 LLVector3* intersection, // return the intersection point 4026 LLVector3* intersection, // return the intersection point
4004 LLVector2* tex_coord, // return the texture coordinates of the intersection point 4027 LLVector2* tex_coord, // return the texture coordinates of the intersection point
@@ -4008,6 +4031,12 @@ LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector3& start,
4008{ 4031{
4009 LLDrawable* drawable = NULL; 4032 LLDrawable* drawable = NULL;
4010 4033
4034 LLVector3 local_end = end;
4035
4036 LLVector3 position;
4037
4038 sPickAvatar = FALSE; //LLToolMgr::getInstance()->inBuildMode() ? FALSE : TRUE;
4039
4011 for (LLWorld::region_list_t::iterator iter = LLWorld::getInstance()->getRegionList().begin(); 4040 for (LLWorld::region_list_t::iterator iter = LLWorld::getInstance()->getRegionList().begin();
4012 iter != LLWorld::getInstance()->getRegionList().end(); ++iter) 4041 iter != LLWorld::getInstance()->getRegionList().end(); ++iter)
4013 { 4042 {
@@ -4015,24 +4044,124 @@ LLViewerObject* LLPipeline::lineSegmentIntersectInWorld(const LLVector3& start,
4015 4044
4016 for (U32 j = 0; j < LLViewerRegion::NUM_PARTITIONS; j++) 4045 for (U32 j = 0; j < LLViewerRegion::NUM_PARTITIONS; j++)
4017 { 4046 {
4018 if ((j == LLViewerRegion::PARTITION_VOLUME) || (j == LLViewerRegion::PARTITION_BRIDGE)) // only check these partitions for now 4047 if ((j == LLViewerRegion::PARTITION_VOLUME) ||
4048 (j == LLViewerRegion::PARTITION_BRIDGE) ||
4049 (j == LLViewerRegion::PARTITION_TERRAIN) ||
4050 (j == LLViewerRegion::PARTITION_TREE) ||
4051 (j == LLViewerRegion::PARTITION_GRASS)) // only check these partitions for now
4019 { 4052 {
4020 LLSpatialPartition* part = region->getSpatialPartition(j); 4053 LLSpatialPartition* part = region->getSpatialPartition(j);
4021 if (part) 4054 if (part && hasRenderType(part->mDrawableType))
4022 { 4055 {
4023 LLDrawable* hit = part->lineSegmentIntersect(start, end, face_hit, intersection, tex_coord, normal, bi_normal); 4056 LLDrawable* hit = part->lineSegmentIntersect(start, local_end, pick_transparent, face_hit, &position, tex_coord, normal, bi_normal);
4024 if (hit) 4057 if (hit)
4025 { 4058 {
4026 drawable = hit; 4059 drawable = hit;
4060 local_end = position;
4061 }
4062 }
4063 }
4064 }
4065 }
4066
4067 if (!sPickAvatar)
4068 {
4069 //save hit info in case we need to restore
4070 //due to attachment override
4071 LLVector3 local_normal;
4072 LLVector3 local_binormal;
4073 LLVector2 local_texcoord;
4074 S32 local_face_hit = -1;
4075
4076 if (face_hit)
4077 {
4078 local_face_hit = *face_hit;
4079 }
4080 if (tex_coord)
4081 {
4082 local_texcoord = *tex_coord;
4083 }
4084 if (bi_normal)
4085 {
4086 local_binormal = *bi_normal;
4087 }
4088 if (normal)
4089 {
4090 local_normal = *normal;
4091 }
4092
4093 const F32 ATTACHMENT_OVERRIDE_DIST = 0.1f;
4094
4095 //check against avatars
4096 sPickAvatar = TRUE;
4097 for (LLWorld::region_list_t::iterator iter = LLWorld::getInstance()->getRegionList().begin();
4098 iter != LLWorld::getInstance()->getRegionList().end(); ++iter)
4099 {
4100 LLViewerRegion* region = *iter;
4101
4102 LLSpatialPartition* part = region->getSpatialPartition(LLViewerRegion::PARTITION_BRIDGE);
4103 if (part && hasRenderType(part->mDrawableType))
4104 {
4105 LLDrawable* hit = part->lineSegmentIntersect(start, local_end, pick_transparent, face_hit, &position, tex_coord, normal, bi_normal);
4106 if (hit)
4107 {
4108 if (!drawable ||
4109 !drawable->getVObj()->isAttachment() ||
4110 (position-local_end).magVec() > ATTACHMENT_OVERRIDE_DIST)
4111 { //avatar overrides if previously hit drawable is not an attachment or
4112 //attachment is far enough away from detected intersection
4113 drawable = hit;
4114 local_end = position;
4115 }
4116 else
4117 { //prioritize attachments over avatars
4118 position = local_end;
4119
4120 if (face_hit)
4121 {
4122 *face_hit = local_face_hit;
4123 }
4124 if (tex_coord)
4125 {
4126 *tex_coord = local_texcoord;
4127 }
4128 if (bi_normal)
4129 {
4130 *bi_normal = local_binormal;
4131 }
4132 if (normal)
4133 {
4134 *normal = local_normal;
4135 }
4027 } 4136 }
4028 } 4137 }
4029 } 4138 }
4030 } 4139 }
4031 } 4140 }
4141
4142 //check all avatar nametags (silly, isn't it?)
4143 for (std::vector< LLCharacter* >::iterator iter = LLCharacter::sInstances.begin();
4144 iter != LLCharacter::sInstances.end();
4145 ++iter)
4146 {
4147 LLVOAvatar* av = (LLVOAvatar*) *iter;
4148 if (av->mNameText.notNull() && av->mNameText->lineSegmentIntersect(start, local_end, position))
4149 {
4150 drawable = av->mDrawable;
4151 local_end = position;
4152 }
4153 }
4154
4155 if (intersection)
4156 {
4157 *intersection = position;
4158 }
4159
4032 return drawable ? drawable->getVObj().get() : NULL; 4160 return drawable ? drawable->getVObj().get() : NULL;
4033} 4161}
4034 4162
4035LLViewerObject* LLPipeline::lineSegmentIntersectInHUD(const LLVector3& start, const LLVector3& end, 4163LLViewerObject* LLPipeline::lineSegmentIntersectInHUD(const LLVector3& start, const LLVector3& end,
4164 BOOL pick_transparent,
4036 S32* face_hit, 4165 S32* face_hit,
4037 LLVector3* intersection, // return the intersection point 4166 LLVector3* intersection, // return the intersection point
4038 LLVector2* tex_coord, // return the texture coordinates of the intersection point 4167 LLVector2* tex_coord, // return the texture coordinates of the intersection point
@@ -4047,15 +4176,27 @@ LLViewerObject* LLPipeline::lineSegmentIntersectInHUD(const LLVector3& start, co
4047 { 4176 {
4048 LLViewerRegion* region = *iter; 4177 LLViewerRegion* region = *iter;
4049 4178
4179 BOOL toggle = FALSE;
4180 if (!hasRenderType(LLPipeline::RENDER_TYPE_HUD))
4181 {
4182 toggleRenderType(LLPipeline::RENDER_TYPE_HUD);
4183 toggle = TRUE;
4184 }
4185
4050 LLSpatialPartition* part = region->getSpatialPartition(LLViewerRegion::PARTITION_HUD); 4186 LLSpatialPartition* part = region->getSpatialPartition(LLViewerRegion::PARTITION_HUD);
4051 if (part) 4187 if (part)
4052 { 4188 {
4053 LLDrawable* hit = part->lineSegmentIntersect(start, end, face_hit, intersection, tex_coord, normal, bi_normal); 4189 LLDrawable* hit = part->lineSegmentIntersect(start, end, pick_transparent, face_hit, intersection, tex_coord, normal, bi_normal);
4054 if (hit) 4190 if (hit)
4055 { 4191 {
4056 drawable = hit; 4192 drawable = hit;
4057 } 4193 }
4058 } 4194 }
4195
4196 if (toggle)
4197 {
4198 toggleRenderType(LLPipeline::RENDER_TYPE_HUD);
4199 }
4059 } 4200 }
4060 return drawable ? drawable->getVObj().get() : NULL; 4201 return drawable ? drawable->getVObj().get() : NULL;
4061} 4202}
@@ -4209,7 +4350,8 @@ void LLPipeline::generateReflectionMap(LLCubeMap* cube_map, LLCamera& cube_cam)
4209 4350
4210 LLPipeline::sReflectionRender = TRUE; 4351 LLPipeline::sReflectionRender = TRUE;
4211 4352
4212 cube_map->bind(); 4353 gGL.getTexUnit(cube_map->getStage())->bind(cube_map);
4354 gGL.getTexUnit(0)->activate();
4213 GLint width; 4355 GLint width;
4214 glGetTexLevelParameteriv(GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL_TEXTURE_WIDTH, &width); 4356 glGetTexLevelParameteriv(GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL_TEXTURE_WIDTH, &width);
4215 if (width != res) 4357 if (width != res)
@@ -4221,8 +4363,10 @@ void LLPipeline::generateReflectionMap(LLCubeMap* cube_map, LLCamera& cube_cam)
4221 glTexImage2D(gl_cube_face[i], 0, GL_RGBA, res, res, 0, GL_RGBA, GL_FLOAT, NULL); 4363 glTexImage2D(gl_cube_face[i], 0, GL_RGBA, res, res, 0, GL_RGBA, GL_FLOAT, NULL);
4222 } 4364 }
4223 } 4365 }
4224 glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, 0); 4366 gGL.getTexUnit(cube_map->getStage())->unbind(LLTexUnit::TT_CUBE_MAP);
4225 cube_map->disable(); 4367 gGL.getTexUnit(cube_map->getStage())->disable();
4368 gGL.getTexUnit(0)->activate();
4369 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
4226 4370
4227 BOOL toggle_ui = gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI); 4371 BOOL toggle_ui = gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI);
4228 if (toggle_ui) 4372 if (toggle_ui)
@@ -4266,7 +4410,7 @@ void LLPipeline::generateReflectionMap(LLCubeMap* cube_map, LLCamera& cube_cam)
4266 gPipeline.calcNearbyLights(cube_cam); 4410 gPipeline.calcNearbyLights(cube_cam);
4267 4411
4268 stop_glerror(); 4412 stop_glerror();
4269 LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); 4413 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
4270 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mCubeFrameBuffer); 4414 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mCubeFrameBuffer);
4271 glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, 4415 glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
4272 GL_RENDERBUFFER_EXT, mCubeDepth); 4416 GL_RENDERBUFFER_EXT, mCubeDepth);
@@ -4422,7 +4566,8 @@ void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out)
4422 glPushMatrix(); 4566 glPushMatrix();
4423 4567
4424 cube_out->enableTexture(0); 4568 cube_out->enableTexture(0);
4425 cube_out->bind(); 4569 gGL.getTexUnit(cube_out->getStage())->bind(cube_out);
4570 gGL.getTexUnit(0)->activate();
4426 GLint width; 4571 GLint width;
4427 glGetTexLevelParameteriv(GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL_TEXTURE_WIDTH, &width); 4572 glGetTexLevelParameteriv(GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 0, GL_TEXTURE_WIDTH, &width);
4428 if (width != res) 4573 if (width != res)
@@ -4434,8 +4579,8 @@ void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out)
4434 glTexImage2D(gl_cube_face[i], 0, GL_RGBA, res, res, 0, GL_RGBA, GL_FLOAT, NULL); 4579 glTexImage2D(gl_cube_face[i], 0, GL_RGBA, res, res, 0, GL_RGBA, GL_FLOAT, NULL);
4435 } 4580 }
4436 } 4581 }
4437 glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, 0); 4582 gGL.getTexUnit(cube_out->getStage())->unbind(LLTexUnit::TT_CUBE_MAP);
4438 4583 gGL.getTexUnit(0)->activate();
4439 glViewport(0, 0, res, res); 4584 glViewport(0, 0, res, res);
4440 LLGLEnable blend(GL_BLEND); 4585 LLGLEnable blend(GL_BLEND);
4441 4586
@@ -4463,16 +4608,17 @@ void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out)
4463 4608
4464 if (j == 0) 4609 if (j == 0)
4465 { 4610 {
4466 cube_in->bind(); 4611 gGL.getTexUnit(cube_in->getStage())->bind(cube_in);
4467 } 4612 }
4468 else 4613 else
4469 { 4614 {
4470 glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, mBlurCubeTexture[j-1]); 4615 gGL.getTexUnit(cube_in->getStage())->bindManual(LLTexUnit::TT_CUBE_MAP, mBlurCubeTexture[j-1]);
4471 } 4616 }
4617 gGL.getTexUnit(0)->activate();
4472 4618
4473 stop_glerror(); 4619 stop_glerror();
4474 4620
4475 LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); 4621 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
4476 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mBlurCubeBuffer[j]); 4622 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mBlurCubeBuffer[j]);
4477 stop_glerror(); 4623 stop_glerror();
4478 4624
@@ -4501,7 +4647,7 @@ void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out)
4501 4647
4502 stop_glerror(); 4648 stop_glerror();
4503 4649
4504 glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, 0); 4650 gGL.getTexUnit(cube_in->getStage())->unbind(LLTexUnit::TT_CUBE_MAP);
4505 4651
4506 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); 4652 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
4507 gGL.setColorMask(true, false); 4653 gGL.setColorMask(true, false);
@@ -4510,7 +4656,8 @@ void LLPipeline::blurReflectionMap(LLCubeMap* cube_in, LLCubeMap* cube_out)
4510 glMatrixMode(GL_MODELVIEW); 4656 glMatrixMode(GL_MODELVIEW);
4511 glPopMatrix(); 4657 glPopMatrix();
4512 4658
4513 cube_in->disableTexture(); 4659 gGL.getTexUnit(cube_in->getStage())->disable();
4660 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
4514 gViewerWindow->setupViewport(); 4661 gViewerWindow->setupViewport();
4515 gGL.setSceneBlendType(LLRender::BT_ALPHA); 4662 gGL.setSceneBlendType(LLRender::BT_ALPHA);
4516 4663
@@ -4578,7 +4725,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
4578 4725
4579 if (for_snapshot) 4726 if (for_snapshot)
4580 { 4727 {
4581 mGlow[1].bindTexture(); 4728 gGL.getTexUnit(0)->bind(&mGlow[1]);
4582 { 4729 {
4583 //LLGLEnable stencil(GL_STENCIL_TEST); 4730 //LLGLEnable stencil(GL_STENCIL_TEST);
4584 //glStencilFunc(GL_NOTEQUAL, 255, 0xFFFFFFFF); 4731 //glStencilFunc(GL_NOTEQUAL, 255, 0xFFFFFFFF);
@@ -4587,7 +4734,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
4587 LLGLEnable blend(GL_BLEND); 4734 LLGLEnable blend(GL_BLEND);
4588 gGL.setSceneBlendType(LLRender::BT_ADD); 4735 gGL.setSceneBlendType(LLRender::BT_ADD);
4589 tc2.setVec(1,1); 4736 tc2.setVec(1,1);
4590 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); 4737 gGL.begin(LLRender::TRIANGLE_STRIP);
4591 gGL.color4f(1,1,1,1); 4738 gGL.color4f(1,1,1,1);
4592 gGL.texCoord2f(tc1.mV[0], tc1.mV[1]); 4739 gGL.texCoord2f(tc1.mV[0], tc1.mV[1]);
4593 gGL.vertex2f(-1,-1); 4740 gGL.vertex2f(-1,-1);
@@ -4637,15 +4784,15 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
4637 LLGLEnable test(GL_ALPHA_TEST); 4784 LLGLEnable test(GL_ALPHA_TEST);
4638 gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT); 4785 gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
4639 gGL.setSceneBlendType(LLRender::BT_ADD_WITH_ALPHA); 4786 gGL.setSceneBlendType(LLRender::BT_ADD_WITH_ALPHA);
4640 LLViewerImage::unbindTexture(0, GL_TEXTURE_2D);
4641 4787
4642 glDisable(GL_TEXTURE_2D); 4788 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
4643 glEnable(GL_TEXTURE_RECTANGLE_ARB); 4789 gGL.getTexUnit(0)->disable();
4644 mScreen.bindTexture(); 4790 gGL.getTexUnit(0)->enable(LLTexUnit::TT_RECT_TEXTURE);
4791 gGL.getTexUnit(0)->bind(&mScreen);
4645 4792
4646 gGL.color4f(1,1,1,1); 4793 gGL.color4f(1,1,1,1);
4647 gPipeline.enableLightsFullbright(LLColor4(1,1,1,1)); 4794 gPipeline.enableLightsFullbright(LLColor4(1,1,1,1));
4648 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); 4795 gGL.begin(LLRender::TRIANGLE_STRIP);
4649 gGL.texCoord2f(tc1.mV[0], tc1.mV[1]); 4796 gGL.texCoord2f(tc1.mV[0], tc1.mV[1]);
4650 gGL.vertex2f(-1,-1); 4797 gGL.vertex2f(-1,-1);
4651 4798
@@ -4659,8 +4806,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
4659 gGL.vertex2f(1,1); 4806 gGL.vertex2f(1,1);
4660 gGL.end(); 4807 gGL.end();
4661 4808
4662 glEnable(GL_TEXTURE_2D); 4809 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
4663 glDisable(GL_TEXTURE_RECTANGLE_ARB);
4664 4810
4665 mGlow[2].flush(); 4811 mGlow[2].flush();
4666 } 4812 }
@@ -4690,7 +4836,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
4690 4836
4691 for (S32 i = 0; i < kernel; i++) 4837 for (S32 i = 0; i < kernel; i++)
4692 { 4838 {
4693 LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); 4839 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
4694 { 4840 {
4695 LLFastTimer ftm(LLFastTimer::FTM_RENDER_BLOOM_FBO); 4841 LLFastTimer ftm(LLFastTimer::FTM_RENDER_BLOOM_FBO);
4696 mGlow[i%2].bindTarget(); 4842 mGlow[i%2].bindTarget();
@@ -4699,11 +4845,11 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
4699 4845
4700 if (i == 0) 4846 if (i == 0)
4701 { 4847 {
4702 mGlow[2].bindTexture(); 4848 gGL.getTexUnit(0)->bind(&mGlow[2]);
4703 } 4849 }
4704 else 4850 else
4705 { 4851 {
4706 mGlow[(i-1)%2].bindTexture(); 4852 gGL.getTexUnit(0)->bind(&mGlow[(i-1)%2]);
4707 } 4853 }
4708 4854
4709 if (i%2 == 0) 4855 if (i%2 == 0)
@@ -4715,7 +4861,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
4715 gGlowProgram.uniform2f("glowDelta", 0, delta); 4861 gGlowProgram.uniform2f("glowDelta", 0, delta);
4716 } 4862 }
4717 4863
4718 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); 4864 gGL.begin(LLRender::TRIANGLE_STRIP);
4719 gGL.texCoord2f(tc1.mV[0], tc1.mV[1]); 4865 gGL.texCoord2f(tc1.mV[0], tc1.mV[1]);
4720 gGL.vertex2f(-1,-1); 4866 gGL.vertex2f(-1,-1);
4721 4867
@@ -4780,8 +4926,8 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
4780 LLGLEnable blend(GL_BLEND); 4926 LLGLEnable blend(GL_BLEND);
4781 gGL.blendFunc(GL_ONE, GL_ONE); 4927 gGL.blendFunc(GL_ONE, GL_ONE);
4782 4928
4783 glDisable(GL_TEXTURE_2D); 4929 gGL.getTexUnit(0)->disable();
4784 glEnable(GL_TEXTURE_RECTANGLE_ARB); 4930 gGL.getTexUnit(0)->enable(LLTexUnit::TT_RECT_TEXTURE);
4785 mScreen.bindTexture(); 4931 mScreen.bindTexture();
4786 4932
4787 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP); 4933 gGL.begin(LLVertexBuffer::TRIANGLE_STRIP);
@@ -4801,8 +4947,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
4801 4947
4802 gGL.flush(); 4948 gGL.flush();
4803 4949
4804 glEnable(GL_TEXTURE_2D); 4950 gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
4805 glDisable(GL_TEXTURE_RECTANGLE_ARB);
4806 4951
4807 gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 4952 gGL.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
4808 }*/ 4953 }*/
@@ -4847,12 +4992,12 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
4847 4992
4848 //tex unit 0 4993 //tex unit 0
4849 gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_COLOR); 4994 gGL.getTexUnit(0)->setTextureColorBlend(LLTexUnit::TBO_REPLACE, LLTexUnit::TBS_TEX_COLOR);
4850 4995
4851 mGlow[1].bindTexture(); 4996 gGL.getTexUnit(0)->bind(&mGlow[1]);
4852 glEnableClientState(GL_TEXTURE_COORD_ARRAY); 4997 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
4853 glTexCoordPointer(2, GL_FLOAT, 0, uv0); 4998 glTexCoordPointer(2, GL_FLOAT, 0, uv0);
4854 gGL.getTexUnit(1)->activate(); 4999 gGL.getTexUnit(1)->activate();
4855 glEnable(GL_TEXTURE_RECTANGLE_ARB); 5000 gGL.getTexUnit(1)->enable(LLTexUnit::TT_RECT_TEXTURE);
4856 5001
4857 //tex unit 1 5002 //tex unit 1
4858 gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_ADD, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_PREV_COLOR); 5003 gGL.getTexUnit(1)->setTextureColorBlend(LLTexUnit::TBO_ADD, LLTexUnit::TBS_TEX_COLOR, LLTexUnit::TBS_PREV_COLOR);
@@ -4863,14 +5008,16 @@ void LLPipeline::renderBloom(BOOL for_snapshot)
4863 5008
4864 glVertexPointer(2, GL_FLOAT, 0, v); 5009 glVertexPointer(2, GL_FLOAT, 0, v);
4865 5010
4866 mScreen.bindTexture(); 5011 gGL.getTexUnit(1)->bind(&mScreen);
5012 gGL.getTexUnit(1)->activate();
4867 5013
4868 LLGLEnable multisample(GL_MULTISAMPLE_ARB); 5014 LLGLEnable multisample(GL_MULTISAMPLE_ARB);
4869 glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); 5015 glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
4870 5016
4871 glDisable(GL_TEXTURE_RECTANGLE_ARB); 5017 gGL.getTexUnit(1)->disable();
4872 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 5018 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
4873 gGL.getTexUnit(1)->setTextureBlendType(LLTexUnit::TB_MULT); 5019 gGL.getTexUnit(1)->setTextureBlendType(LLTexUnit::TB_MULT);
5020
4874 glClientActiveTextureARB(GL_TEXTURE0_ARB); 5021 glClientActiveTextureARB(GL_TEXTURE0_ARB);
4875 gGL.getTexUnit(0)->activate(); 5022 gGL.getTexUnit(0)->activate();
4876 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 5023 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -4948,7 +5095,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
4948 5095
4949 if (!LLViewerCamera::getInstance()->cameraUnderWater()) 5096 if (!LLViewerCamera::getInstance()->cameraUnderWater())
4950 { //generate planar reflection map 5097 { //generate planar reflection map
4951 LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); 5098 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
4952 glClearColor(0,0,0,0); 5099 glClearColor(0,0,0,0);
4953 gGL.setColorMask(true, true); 5100 gGL.setColorMask(true, true);
4954 mWaterRef.bindTarget(); 5101 mWaterRef.bindTarget();
@@ -5053,7 +5200,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
5053 } 5200 }
5054 LLViewerCamera::updateFrustumPlanes(camera); 5201 LLViewerCamera::updateFrustumPlanes(camera);
5055 5202
5056 LLViewerImage::unbindTexture(0, GL_TEXTURE_2D); 5203 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
5057 LLColor4& col = LLDrawPoolWater::sWaterFogColor; 5204 LLColor4& col = LLDrawPoolWater::sWaterFogColor;
5058 glClearColor(col.mV[0], col.mV[1], col.mV[2], 0.f); 5205 glClearColor(col.mV[0], col.mV[1], col.mV[2], 0.f);
5059 gGL.setColorMask(true, true); 5206 gGL.setColorMask(true, true);
@@ -5185,11 +5332,11 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar)
5185 5332
5186 LLVector3 left = camera.getLeftAxis(); 5333 LLVector3 left = camera.getLeftAxis();
5187 left *= left; 5334 left *= left;
5188 left.normVec(); 5335 left.normalize();
5189 5336
5190 LLVector3 up = camera.getUpAxis(); 5337 LLVector3 up = camera.getUpAxis();
5191 up *= up; 5338 up *= up;
5192 up.normVec(); 5339 up.normalize();
5193 5340
5194 tdim.mV[0] = fabsf(half_height * left); 5341 tdim.mV[0] = fabsf(half_height * left);
5195 tdim.mV[1] = fabsf(half_height * up); 5342 tdim.mV[1] = fabsf(half_height * up);
@@ -5230,10 +5377,10 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar)
5230 resY != avatar->mImpostor.getHeight()) 5377 resY != avatar->mImpostor.getHeight())
5231 { 5378 {
5232 avatar->mImpostor.allocate(resX,resY,GL_RGBA,TRUE); 5379 avatar->mImpostor.allocate(resX,resY,GL_RGBA,TRUE);
5233 avatar->mImpostor.bindTexture(); 5380 gGL.getTexUnit(0)->bind(&avatar->mImpostor);
5234 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 5381 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
5235 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 5382 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
5236 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 5383 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
5237 } 5384 }
5238 5385
5239 { 5386 {
@@ -5270,13 +5417,13 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar)
5270 } 5417 }
5271 5418
5272 gGL.setSceneBlendType(LLRender::BT_ADD); 5419 gGL.setSceneBlendType(LLRender::BT_ADD);
5273 LLImageGL::unbindTexture(0, GL_TEXTURE_2D); 5420 gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
5274 5421
5275 LLGLDepthTest depth(GL_FALSE, GL_FALSE); 5422 LLGLDepthTest depth(GL_FALSE, GL_FALSE);
5276 5423
5277 gGL.color4f(1,1,1,1); 5424 gGL.color4f(1,1,1,1);
5278 gGL.color4ub(64,64,64,255); 5425 gGL.color4ub(64,64,64,255);
5279 gGL.begin(LLVertexBuffer::QUADS); 5426 gGL.begin(LLRender::QUADS);
5280 gGL.vertex3fv((pos+left-up).mV); 5427 gGL.vertex3fv((pos+left-up).mV);
5281 gGL.vertex3fv((pos-left-up).mV); 5428 gGL.vertex3fv((pos-left-up).mV);
5282 gGL.vertex3fv((pos-left+up).mV); 5429 gGL.vertex3fv((pos-left+up).mV);
diff --git a/linden/indra/newview/pipeline.h b/linden/indra/newview/pipeline.h
index 5f94e37..e57ad7e 100644
--- a/linden/indra/newview/pipeline.h
+++ b/linden/indra/newview/pipeline.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2001&license=viewergpl$ 5 * $LicenseInfo:firstyear=2001&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2001-2008, Linden Research, Inc. 7 * Copyright (c) 2001-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
@@ -131,6 +131,7 @@ public:
131 131
132 //get the object between start and end that's closest to start. 132 //get the object between start and end that's closest to start.
133 LLViewerObject* lineSegmentIntersectInWorld(const LLVector3& start, const LLVector3& end, 133 LLViewerObject* lineSegmentIntersectInWorld(const LLVector3& start, const LLVector3& end,
134 BOOL pick_transparent,
134 S32* face_hit, // return the face hit 135 S32* face_hit, // return the face hit
135 LLVector3* intersection = NULL, // return the intersection point 136 LLVector3* intersection = NULL, // return the intersection point
136 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point 137 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point
@@ -138,6 +139,7 @@ public:
138 LLVector3* bi_normal = NULL // return the surface bi-normal at the intersection point 139 LLVector3* bi_normal = NULL // return the surface bi-normal at the intersection point
139 ); 140 );
140 LLViewerObject* lineSegmentIntersectInHUD(const LLVector3& start, const LLVector3& end, 141 LLViewerObject* lineSegmentIntersectInHUD(const LLVector3& start, const LLVector3& end,
142 BOOL pick_transparent,
141 S32* face_hit, // return the face hit 143 S32* face_hit, // return the face hit
142 LLVector3* intersection = NULL, // return the intersection point 144 LLVector3* intersection = NULL, // return the intersection point
143 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point 145 LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point
@@ -317,7 +319,6 @@ public:
317// RENDER_DEBUG_FEATURE_HW_LIGHTING = 0x0010, 319// RENDER_DEBUG_FEATURE_HW_LIGHTING = 0x0010,
318 RENDER_DEBUG_FEATURE_FLEXIBLE = 0x0010, 320 RENDER_DEBUG_FEATURE_FLEXIBLE = 0x0010,
319 RENDER_DEBUG_FEATURE_FOG = 0x0020, 321 RENDER_DEBUG_FEATURE_FOG = 0x0020,
320 RENDER_DEBUG_FEATURE_PALETTE = 0x0040,
321 RENDER_DEBUG_FEATURE_FR_INFO = 0x0080, 322 RENDER_DEBUG_FEATURE_FR_INFO = 0x0080,
322 RENDER_DEBUG_FEATURE_FOOT_SHADOWS = 0x0100, 323 RENDER_DEBUG_FEATURE_FOOT_SHADOWS = 0x0100,
323 }; 324 };
@@ -382,6 +383,7 @@ public:
382 static BOOL sSkipUpdate; //skip lod updates 383 static BOOL sSkipUpdate; //skip lod updates
383 static BOOL sWaterReflections; 384 static BOOL sWaterReflections;
384 static BOOL sDynamicLOD; 385 static BOOL sDynamicLOD;
386 static BOOL sPickAvatar;
385 static BOOL sReflectionRender; 387 static BOOL sReflectionRender;
386 static BOOL sImpostorRender; 388 static BOOL sImpostorRender;
387 static BOOL sUnderWaterRender; 389 static BOOL sUnderWaterRender;
diff --git a/linden/indra/newview/randgauss.h b/linden/indra/newview/randgauss.h
index ab2b07c..52d73d5 100644
--- a/linden/indra/newview/randgauss.h
+++ b/linden/indra/newview/randgauss.h
@@ -4,7 +4,7 @@
4 * 4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$ 5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 * 6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc. 7 * Copyright (c) 2003-2009, Linden Research, Inc.
8 * 8 *
9 * Second Life Viewer Source Code 9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab 10 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/res/resource.h b/linden/indra/newview/res/resource.h
index 9fcfa21..cfa014a 100644
--- a/linden/indra/newview/res/resource.h
+++ b/linden/indra/newview/res/resource.h
@@ -3,7 +3,7 @@
3 * 3 *
4 * $LicenseInfo:firstyear=2001&license=viewergpl$ 4 * $LicenseInfo:firstyear=2001&license=viewergpl$
5 * 5 *
6 * Copyright (c) 2001-2008, Linden Research, Inc. 6 * Copyright (c) 2001-2009, Linden Research, Inc.
7 * 7 *
8 * Second Life Viewer Source Code 8 * Second Life Viewer Source Code
9 * The source code in this file ("Source Code") is provided by Linden Lab 9 * The source code in this file ("Source Code") is provided by Linden Lab
diff --git a/linden/indra/newview/res/viewerRes.rc b/linden/indra/newview/res/viewerRes.rc
index 002830a..e0cde48 100644
--- a/linden/indra/newview/res/viewerRes.rc
+++ b/linden/indra/newview/res/viewerRes.rc
@@ -231,8 +231,8 @@ TOOLMEDIAOPEN CURSOR "toolmediaopen.cur"
231// 231//
232 232
233VS_VERSION_INFO VERSIONINFO 233VS_VERSION_INFO VERSIONINFO
234 FILEVERSION 1,20,9,87416 234 FILEVERSION 1,20,15,97417
235 PRODUCTVERSION 1,20,9,87416 235 PRODUCTVERSION 1,20,15,97417
236 FILEFLAGSMASK 0x3fL 236 FILEFLAGSMASK 0x3fL
237#ifdef _DEBUG 237#ifdef _DEBUG
238 FILEFLAGS 0x1L 238 FILEFLAGS 0x1L
diff --git a/linden/indra/newview/secondlife setup build dazzle.bat b/linden/indra/newview/secondlife setup build dazzle.bat
deleted file mode 100644
index f09f657..0000000
--- a/linden/indra/newview/secondlife setup build dazzle.bat
+++ /dev/null
@@ -1,4 +0,0 @@
1@rem Invoke the script which preps then runs the installer.
2@rem This batch file is customized per grid.
3
4@"secondlife setup build.bat" --channel="Second Life First Look Dazzle"
diff --git a/linden/indra/newview/skins/default/xui/de/alerts.xml b/linden/indra/newview/skins/default/xui/de/alerts.xml
index ab72b30..68b4507 100644
--- a/linden/indra/newview/skins/default/xui/de/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/de/alerts.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<alerts> 2<alerts>
3 <global name="skipnexttime"> 3 <global name="skipnexttime">
4 Nicht mehr anzeigen 4 Nicht mehr anzeigen
@@ -58,8 +58,7 @@
58 Verbindung mit [SECOND_LIFE] nicht möglich. 58 Verbindung mit [SECOND_LIFE] nicht möglich.
59Möglicherweise handelt es sich um einen Systemausfall. 59Möglicherweise handelt es sich um einen Systemausfall.
60 60
61Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie 61Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie für Unterstützung und einen Link auf die Systemstatus-Webseite auf „Hilfe“.
62für Unterstützung und einen Link auf die Systemstatus-Webseite auf &apos;Hilfe&apos;.
63 </message> 62 </message>
64 <option name="OK"> 63 <option name="OK">
65 OK 64 OK
@@ -141,9 +140,7 @@ Sie finden es in der Webpage Studio-Ausstellung.
141 </alert> 140 </alert>
142 <alert name="GrantModifyRights"> 141 <alert name="GrantModifyRights">
143 <message name="message"> 142 <message name="message">
144 Die Gewährung von Änderungsrechten an andere Einwohner ermöglicht es diesen, 143 Die Gewährung von Änderungsrechten an andere Einwohner ermöglicht es diesen, JEDES BELIEBIGE Objekt zu ändern oder an sich zu nehmen, das Sie in der Second Life-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen dieser Erlaubnis.
145JEDES BELIEBIGE Objekt zu ändern oder an sich zu nehmen, das Sie in der Second Life-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen
146dieser Erlaubnis.
147Möchten Sie [FIRST_NAME] [LAST_NAME] Änderungsrechte gewähren? 144Möchten Sie [FIRST_NAME] [LAST_NAME] Änderungsrechte gewähren?
148 </message> 145 </message>
149 <option name="Yes"> 146 <option name="Yes">
@@ -155,9 +152,7 @@ Möchten Sie [FIRST_NAME] [LAST_NAME] Änderungsrechte gewähren?
155 </alert> 152 </alert>
156 <alert name="GrantModifyRightsMultiple"> 153 <alert name="GrantModifyRightsMultiple">
157 <message name="message"> 154 <message name="message">
158 Die Gewährung von Änderungsrechten an andere Einwohner ermöglicht es diesen, 155 Die Gewährung von Änderungsrechten an andere Einwohner ermöglicht es diesen, JEDES BELIEBIGE Objekt zu ändern, das Sie in der Second Life-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen dieser Erlaubnis.
159JEDES BELIEBIGE Objekt zu ändern, das Sie in der Second Life-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen
160dieser Erlaubnis.
161Möchten Sie den ausgewählten Einwohnern Änderungsrechte gewähren? 156Möchten Sie den ausgewählten Einwohnern Änderungsrechte gewähren?
162 </message> 157 </message>
163 <option name="Yes"> 158 <option name="Yes">
@@ -232,8 +227,7 @@ Möchten Sie den ausgewählten Einwohnern Änderungsrechte gewähren?
232 <alert name="CreateGroupCanAfford"> 227 <alert name="CreateGroupCanAfford">
233 <message name="message"> 228 <message name="message">
234 Das Erstellen einer Gruppe kostet [COST] L$. 229 Das Erstellen einer Gruppe kostet [COST] L$.
235Damit die Gruppe länger als drei Tage bestehen bleibt, 230Damit die Gruppe länger als drei Tage bestehen bleibt, muss sie aus mindestens zwei Mitgliedern bestehen.
236muss sie aus mindestens zwei Mitgliedern bestehen.
237 231
238Gruppe gründen? 232Gruppe gründen?
239 </message> 233 </message>
@@ -257,8 +251,7 @@ Sie haben nicht genug L$, um eine Gruppe zu erstellen.
257 </alert> 251 </alert>
258 <alert name="GroupNameUsesReservedWord"> 252 <alert name="GroupNameUsesReservedWord">
259 <message name="message"> 253 <message name="message">
260 Der Gruppenname enthält ein unerwünschtes Wort. Bitte 254 Der Gruppenname enthält ein unerwünschtes Wort. Bitte wählen Sie einen anderen Namen.
261wählen Sie einen anderen Namen.
262 </message> 255 </message>
263 </alert> 256 </alert>
264 <alert name="MustSpecifyGroupNoticeSubject"> 257 <alert name="MustSpecifyGroupNoticeSubject">
@@ -294,8 +287,7 @@ Möchten Sie fortfahren?
294 </alert> 287 </alert>
295 <alert name="AssignDangerousActionWarning"> 288 <alert name="AssignDangerousActionWarning">
296 <message name="message"> 289 <message name="message">
297 Sie sind im Begriff, der Rolle &apos;[ROLE_NAME]&apos; die Fähigkeit 290 Sie sind im Begriff, der Rolle „[ROLE_NAME]“ die Fähigkeit „[ACTION_NAME]“ zuzuweisen.
298&apos;[ACTION_NAME]&apos; zuzuweisen.
299 291
300 *ACHTUNG* 292 *ACHTUNG*
301 Mitglieder in einer Rolle mit dieser Fähigkeit können sich selbst - 293 Mitglieder in einer Rolle mit dieser Fähigkeit können sich selbst -
@@ -304,7 +296,7 @@ Möchten Sie fortfahren?
304 Eigentümerrechte erreichen. Überlegen Sie sich, wem Sie diese Fähigkeit 296 Eigentümerrechte erreichen. Überlegen Sie sich, wem Sie diese Fähigkeit
305 verleihen. 297 verleihen.
306 298
307Der Rolle &apos;[ROLE_NAME]&apos; diese Fähigkeit zuweisen? 299Der Rolle „[ROLE_NAME]“ diese Fähigkeit zuweisen?
308 </message> 300 </message>
309 <option name="Yes"> 301 <option name="Yes">
310 Ja 302 Ja
@@ -315,15 +307,14 @@ Der Rolle &apos;[ROLE_NAME]&apos; diese Fähigkeit zuweisen?
315 </alert> 307 </alert>
316 <alert name="AssignDangerousAbilityWarning"> 308 <alert name="AssignDangerousAbilityWarning">
317 <message name="message"> 309 <message name="message">
318 Sie sind im Begriff, der Rolle &apos;[ROLE_NAME]&apos; die Fähigkeit 310 Sie sind im Begriff, der Rolle „[ROLE_NAME]“ die Fähigkeit „[ACTION_NAME]“ zuzuweisen.
319&apos;[ACTION_NAME]&apos; zuzuweisen.
320 311
321 *ACHTUNG* 312 *ACHTUNG*
322 Mitglieder in einer Rolle mit dieser Fähigkeit können sich selbst - 313 Mitglieder in einer Rolle mit dieser Fähigkeit können sich selbst -
323 und allen anderen Mitgliedern – alle Fähigkeiten zuweisen und 314 und allen anderen Mitgliedern – alle Fähigkeiten zuweisen und
324 damit fast Eigentümerrechte erreichen. 315 damit fast Eigentümerrechte erreichen.
325 316
326Der Rolle &apos;[ROLE_NAME]&apos; diese Fähigkeit zuweisen? 317Der Rolle „[ROLE_NAME]“ diese Fähigkeit zuweisen?
327 </message> 318 </message>
328 <option name="Yes"> 319 <option name="Yes">
329 Ja 320 Ja
@@ -332,20 +323,19 @@ Der Rolle &apos;[ROLE_NAME]&apos; diese Fähigkeit zuweisen?
332 Nein 323 Nein
333 </option> 324 </option>
334 </alert> 325 </alert>
335 <alert name="ClickPublishHelpGroup"> 326 <alert name="ClickPublishHelpGroup"/>
336 <message name="message">
337 Im Web veröffentlichen
338 </message>
339 </alert>
340 <alert name="ClickPublishHelpLand"> 327 <alert name="ClickPublishHelpLand">
341 <message name="message"> 328 <message name="message">
342 In Suche veröffentlichen 329 Auswahl von „In Suche veröffentlichen“
330Dieses Kontrollkästchen zeigt Folgendes an:
331- diese Parzelle in den Suchergebnissen
332- die öffentlichen Objekte dieser Parzelle
333- diese Parzelle in der Websuche
343 </message> 334 </message>
344 </alert> 335 </alert>
345 <alert name="ClickPublishHelpLandDisabled"> 336 <alert name="ClickPublishHelpLandDisabled">
346 <message name="message"> 337 <message name="message">
347 Diese Parzelle kann nicht in der Suche angezeigt werden, da sie sich in 338 Diese Parzelle kann nicht in der Suche angezeigt werden, da sie sich in einer Region befindet, die das verbietet.
348einer Region befindet, die das verbietet.
349 </message> 339 </message>
350 </alert> 340 </alert>
351 <alert name="ClickPublishHelpPostcard"> 341 <alert name="ClickPublishHelpPostcard">
@@ -355,7 +345,9 @@ einer Region befindet, die das verbietet.
355 </alert> 345 </alert>
356 <alert name="ClickPublishHelpAvatar"> 346 <alert name="ClickPublishHelpAvatar">
357 <message name="message"> 347 <message name="message">
358 In Suche anzeigen 348 Auswahl von „In Suche anzeigen“ zeigt Folgendes an:
349- Ihr Profil in den Suchergebnissen
350- einen Link auf Ihr Profil in den öffentlichen Gruppenseiten
359 </message> 351 </message>
360 </alert> 352 </alert>
361 <alert name="ClickPartnerHelpAvatar"> 353 <alert name="ClickPartnerHelpAvatar">
@@ -373,22 +365,22 @@ Die Second Life Website für weitere Informationen über Partnerschaften öffnen
373 </alert> 365 </alert>
374 <alert name="ClickWebProfileHelpAvatar"> 366 <alert name="ClickWebProfileHelpAvatar">
375 <message name="message"> 367 <message name="message">
376 Wenn dieser Einwohner eine Webprofil-URL angegeben hat, können Sie: 368 Wenn dieser Einwohner einen Webprofil-URL angegeben hat, können Sie:
377* Auf &apos;Laden&apos; klicken und die Seite im integrierten Browser anzuzeigen. 369 * Auf „Laden“ klicken und die Seite in dieser Web-Registerkarte anzeigen.
378* Auf Laden &gt; &apos;In externem Browser&apos; klicken, um die Seite extern anzeigen zu lassen. 370 * Auf Laden &gt; „In externem Browser“ klicken und die Seite im Standard-Browser anzeigen.
379* Auf Laden &gt; &apos;Start URL&apos; klicken, um zum Webprofil des Benutzers zurückzukehren. 371 * Auf Laden &gt; „Start-URL“ klicken und zum Webprofil des Bewohners zurückkehren.
380 372
381In Ihrem eigenen Profil können Sie jede beliebige URL als Ihr Webprofil eingeben und mit OK übernehmen. 373In Ihrem eigenen Profil können Sie jeden beliebigen URL als Ihr Webprofil eingeben und mit OK übernehmen.
382Wenn andere Einwohner Ihr Profil betrachten, können sie diese URL besuchen. 374Wenn sich andere Einwohner Ihr Profil ansehen, können sie diesen URL besuchen.
383 </message> 375 </message>
384 </alert> 376 </alert>
385 <alert name="ClickWebProfileNoWebHelpAvatar"> 377 <alert name="ClickWebProfileNoWebHelpAvatar">
386 <message name="message"> 378 <message name="message">
387 Wenn dieser Einwohner einen Webprofil-URL angegeben hat, können Sie: 379 Wenn dieser Einwohner einen Webprofil-URL angegeben hat, können Sie:
388 * Auf &apos;Öffnen&apos; klicken und die Seite im externen Browser anzeigen. 380 * Auf Laden klicken und die Seite im Standard-Browser anzeigen.
389 381
390In Ihrem Profil können Sie jeden URL als Webprofil festlegen. 382In Ihrem eigenen Profil können Sie jeden beliebigen URL als Ihr Webprofil eingeben und mit OK übernehmen.
391Bei Anzeige ihres Profils kann jeder Einwohner diesen URL öffnen. 383Wenn sich andere Einwohner Ihr Profil ansehen, können sie diesen URL besuchen.
392 </message> 384 </message>
393 </alert> 385 </alert>
394 <alert name="ReputationMinGreaterThanMax"> 386 <alert name="ReputationMinGreaterThanMax">
@@ -459,12 +451,12 @@ Fortfahren?
459 <alert name="JoinGroupCannotAfford"> 451 <alert name="JoinGroupCannotAfford">
460 <message name="message"> 452 <message name="message">
461 Der Beitritt zu dieser Gruppe kostet [COST] L$. 453 Der Beitritt zu dieser Gruppe kostet [COST] L$.
462Sie haben nicht genug Geld, um dieser Gruppe beizutreten. 454Sie haben nicht genug L$, um dieser Gruppe beizutreten.
463 </message> 455 </message>
464 </alert> 456 </alert>
465 <alert name="LandBuyPass"> 457 <alert name="LandBuyPass">
466 <message name="message"> 458 <message name="message">
467 Sie können dieses Land (&apos;[PARCEL_NAME]&apos;) für [COST] L$ 459 Sie können dieses Land („[PARCEL_NAME]“) für [COST] L$
468[TIME] Stunden lang betreten. Pass kaufen? 460[TIME] Stunden lang betreten. Pass kaufen?
469 </message> 461 </message>
470 <option name="OK"> 462 <option name="OK">
@@ -476,9 +468,7 @@ Sie haben nicht genug Geld, um dieser Gruppe beizutreten.
476 </alert> 468 </alert>
477 <alert name="CannotStartAuctionAlreadyForSale"> 469 <alert name="CannotStartAuctionAlreadyForSale">
478 <message name="message"> 470 <message name="message">
479 Eine Parzelle, die bereits zum Verkauf freigegeben 471 Eine Parzelle, die bereits zum Verkauf freigegeben ist, kann nicht auktioniert werden. Brechen Sie zuerst den Landverkauf ab, wenn Sie eine Auktion starten möchten.
480ist, kann nicht auktioniert werden. Brechen Sie zuerst den Landverkauf ab,
481wenn Sie eine Auktion starten möchten.
482 </message> 472 </message>
483 </alert> 473 </alert>
484 <alert name="SalePriceRestriction"> 474 <alert name="SalePriceRestriction">
@@ -501,7 +491,7 @@ Der Verkaufspreis beträgt [SALE_PRICE] L$ und wird automatisch für den Verkauf
501 </alert> 491 </alert>
502 <alert name="ConfirmLandSaleToAnyoneChange"> 492 <alert name="ConfirmLandSaleToAnyoneChange">
503 <message name="message"> 493 <message name="message">
504 ACHTUNG: Wenn Sie auf &apos;An jeden verkaufen&apos; klicken, kann jeder in Second Life Ihr Land kaufen, auch Einwohner in anderen Regionen. 494 ACHTUNG: Wenn Sie auf „An jeden verkaufen“ klicken, kann jeder in Second Life Ihr Land kaufen, auch Einwohner in anderen Regionen.
505 495
506Die ausgewählten [LAND_SIZE] qm Land werden zum Verkauf freigegeben. 496Die ausgewählten [LAND_SIZE] qm Land werden zum Verkauf freigegeben.
507Der Verkaufspreis beträgt [SALE_PRICE] L$ und wird automatisch für den Verkauf an [NAME] autorisiert. 497Der Verkaufspreis beträgt [SALE_PRICE] L$ und wird automatisch für den Verkauf an [NAME] autorisiert.
@@ -515,12 +505,9 @@ Der Verkaufspreis beträgt [SALE_PRICE] L$ und wird automatisch für den Verkauf
515 </alert> 505 </alert>
516 <alert name="ReturnObjectsDeededToGroup"> 506 <alert name="ReturnObjectsDeededToGroup">
517 <message name="message"> 507 <message name="message">
518 Möchten Sie alle Ihre Objekte auf dieser Parzelle, 508 Möchten Sie alle Ihre Objekte auf dieser Parzelle, die der Gruppe „[NAME]“ gehören, zurück in das jeweilige Inventar ihrer vorherigen Eigentümer transferieren?
519die der Gruppe &apos;[NAME]&apos; gehören,
520zurück in das jeweilige Inventar ihrer vorherigen Eigentümer transferieren?
521 509
522*WARNUNG* Alle nicht transferierbaren Objekte, die der 510*WARNUNG* Alle nicht transferierbaren Objekte, die der Gruppe übertragen wurden, werden dabei gelöscht!
523Gruppe übertragen wurden, werden dabei gelöscht!
524 511
525Objekte: [N] 512Objekte: [N]
526 </message> 513 </message>
@@ -533,9 +520,7 @@ Objekte: [N]
533 </alert> 520 </alert>
534 <alert name="ReturnObjectsOwnedByUser"> 521 <alert name="ReturnObjectsOwnedByUser">
535 <message name="message"> 522 <message name="message">
536 Möchten Sie alle Objekte auf dieser Parzelle, 523 Möchten Sie alle Objekte auf dieser Parzelle, die dem Einwohner „[NAME]“ gehören, in das jeweilige Inventar ihrer Eigentümer transferieren?
537die dem Einwohner &apos;[NAME]&apos; gehören,
538in das jeweilige Inventar ihrer Eigentümer transferieren?
539 524
540Objekte: [N] 525Objekte: [N]
541 </message> 526 </message>
@@ -548,9 +533,7 @@ Objekte: [N]
548 </alert> 533 </alert>
549 <alert name="ReturnObjectsOwnedBySelf"> 534 <alert name="ReturnObjectsOwnedBySelf">
550 <message name="message"> 535 <message name="message">
551 Möchten Sie alle Objekte 536 Möchten Sie alle Objekte auf dieser Parzelle, die Ihnen gehören, zurück in Ihr Inventar transferieren?
552auf dieser Parzelle, die Ihnen gehören, zurück in Ihr Inventar
553transferieren?
554 537
555Objekte: [N] 538Objekte: [N]
556 </message> 539 </message>
@@ -563,13 +546,10 @@ Objekte: [N]
563 </alert> 546 </alert>
564 <alert name="ReturnObjectsNotOwnedBySelf"> 547 <alert name="ReturnObjectsNotOwnedBySelf">
565 <message name="message"> 548 <message name="message">
566 Möchten Sie alle Objekte auf dieser Parzelle, die NICHT 549 Möchten Sie alle Objekte auf dieser Parzelle, die NICHT Ihnen gehören, in das Inventar ihrer Eigentümer transferieren?
567Ihnen gehören, in das Inventar ihrer Eigentümer transferieren? 550Transferierbare Objekte, die an eine Gruppe übertragen wurden, werden ihren vorherigen Eigentümern zurückgegeben.
568Transferierbare Objekte, die an eine Gruppe übertragen wurden,
569werden ihren vorherigen Eigentümern zurückgegeben.
570 551
571*WARNUNG* Alle nicht transferierbaren Objekte, die der 552*WARNUNG* Alle nicht transferierbaren Objekte, die der Gruppe übertragen wurden, werden dabei gelöscht!
572Gruppe übertragen wurden, werden dabei gelöscht!
573 553
574Objekte: [N] 554Objekte: [N]
575 </message> 555 </message>
@@ -582,13 +562,10 @@ Objekte: [N]
582 </alert> 562 </alert>
583 <alert name="ReturnObjectsNotOwnedByUser"> 563 <alert name="ReturnObjectsNotOwnedByUser">
584 <message name="message"> 564 <message name="message">
585 Möchten Sie alle Objekte auf dieser Parzelle, die NICHT 565 Möchten Sie alle Objekte auf dieser Parzelle, die NICHT [NAME] gehören, in das Inventar ihrer Eigentümer transferieren?
586[NAME] gehören, in das Inventar ihrer Eigentümer transferieren? 566Transferierbare Objekte, die an eine Gruppe übertragen wurden, werden ihren vorherigen Eigentümern zurückgegeben.
587Transferierbare Objekte, die an eine Gruppe übertragen wurden,
588werden ihren vorherigen Eigentümern zurückgegeben.
589 567
590*WARNUNG* Alle nicht transferierbaren Objekte, die der 568*WARNUNG* Alle nicht transferierbaren Objekte, die der Gruppe übertragen wurden, werden dabei gelöscht!
591Gruppe übertragen wurden, werden dabei gelöscht!
592 569
593Objekte: [N] 570Objekte: [N]
594 </message> 571 </message>
@@ -623,9 +600,7 @@ Objekte: [N]
623 </alert> 600 </alert>
624 <alert name="ReturnObjectsNotOwnedByGroup"> 601 <alert name="ReturnObjectsNotOwnedByGroup">
625 <message name="message"> 602 <message name="message">
626 Objekte auf dieser Parzelle, die von der 603 Objekte auf dieser Parzelle, die von der Gruppe [NAME] nicht gemeinsam genutzt werden, an ihre Eigentümer zurückgeben?
627Gruppe [NAME] nicht gemeinsam genutzt werden,
628an ihre Eigentümer zurückgeben?
629 604
630Objekte: [N] 605Objekte: [N]
631 </message> 606 </message>
@@ -645,13 +620,12 @@ Damit Waffen funktionieren, müssen Skripts erlaubt sein.
645 </alert> 620 </alert>
646 <alert name="MustBeInParcel"> 621 <alert name="MustBeInParcel">
647 <message name="message"> 622 <message name="message">
648 Sie müssen auf einer Landparzelle stehen, 623 Sie müssen auf einer Landparzelle stehen, um ihren Landepunkt festzulegen.
649um ihren Landepunkt festzulegen.
650 </message> 624 </message>
651 </alert> 625 </alert>
652 <alert name="PromptRecipientEmail"> 626 <alert name="PromptRecipientEmail">
653 <message name="message"> 627 <message name="message">
654 Geben Sie die E-Mail-Adresse des Empfängers ein. 628 Bitte geben Sie für den/die Empfänger eine gültige Email-Adresse ein.
655 </message> 629 </message>
656 </alert> 630 </alert>
657 <alert name="PromptSelfEmail"> 631 <alert name="PromptSelfEmail">
@@ -711,14 +685,6 @@ Der Outfit-Ordner enthält keine Kleidung, Körperteile oder Anhänge.
711 Sie können das Objekt nicht anziehen, weil es noch nicht geladen wurde. Warten Sie kurz und versuchen Sie es dann noch einmal. 685 Sie können das Objekt nicht anziehen, weil es noch nicht geladen wurde. Warten Sie kurz und versuchen Sie es dann noch einmal.
712 </message> 686 </message>
713 </alert> 687 </alert>
714 <alert name="MustHaveAccountToLogInNoLinks">
715 <message name="message">
716 Sie benötigen ein Konto, um sich in [SECOND_LIFE] anmelden zu können.
717 </message>
718 <option name="OK">
719 Schließen
720 </option>
721 </alert>
722 <alert name="MustHaveAccountToLogIn"> 688 <alert name="MustHaveAccountToLogIn">
723 <message name="message"> 689 <message name="message">
724 Hoppla! Da fehlt noch etwas. 690 Hoppla! Da fehlt noch etwas.
@@ -735,13 +701,7 @@ Sie benötigen ein Benutzerkonto, um [SECOND_LIFE] betreten zu können. Möchten
735 </alert> 701 </alert>
736 <alert name="AddClassified"> 702 <alert name="AddClassified">
737 <message name="message"> 703 <message name="message">
738 Anzeigen erscheinen für eine Woche unter &apos;Anzeigen&apos; 704 Anzeigen erscheinen für eine Woche unter „Anzeigen“ im Suchverzeichnis. Füllen Sie Ihre Anzeige aus und klicken Sie auf „Veröffentlichen...“, um sie zum Verzeichnis hinzuzufügen. Sie werden gebeten, einen Preis zu bezahlen, wenn Sie auf „Veröffentlichen“ klicken. Wenn Sie mehr bezahlen oder ein Benutzer nach Ihren Suchbegriffen sucht, erscheint Ihre Anzeige weiter oben in der Liste.
739im Suchverzeichnis.
740Füllen Sie Ihre Anzeige aus und klicken Sie auf &apos;Veröffentlichen...&apos;, um sie zum
741Verzeichnis hinzuzufügen.
742Sie werden gebeten, einen Preis zu bezahlen, wenn Sie auf &apos;Veröffentlichen&apos; klicken.
743Wenn Sie mehr bezahlen oder ein Benutzer nach Ihren Suchbegriffen sucht,
744erscheint Ihre Anzeige weiter oben in der Liste.
745 </message> 705 </message>
746 <option name="OK"> 706 <option name="OK">
747 OK 707 OK
@@ -755,7 +715,7 @@ erscheint Ihre Anzeige weiter oben in der Liste.
755 </alert> 715 </alert>
756 <alert name="DeleteClassified"> 716 <alert name="DeleteClassified">
757 <message name="message"> 717 <message name="message">
758 Anzeige &apos;[NAME]&apos; löschen? 718 Anzeige „[NAME]“ löschen?
759Gebühren werden nicht rückerstattet. 719Gebühren werden nicht rückerstattet.
760 </message> 720 </message>
761 <option name="Delete"> 721 <option name="Delete">
@@ -792,9 +752,7 @@ Gebühren werden nicht rückerstattet.
792 </alert> 752 </alert>
793 <alert name="DisplayChangeRestart"> 753 <alert name="DisplayChangeRestart">
794 <message name="message"> 754 <message name="message">
795 Einige Änderungen der Bildschirmeinstellungen erfordern einen 755 Einige Änderungen der Bildschirmeinstellungen erfordern einen sofortigen Neustart von [SECOND_LIFE], wodurch alle laufenden Arbeiten verloren gehen.
796sofortigen Neustart von [SECOND_LIFE], wodurch
797alle laufenden Arbeiten verloren gehen.
798 756
799Die Änderungen übernehmen und das Programm beenden? 757Die Änderungen übernehmen und das Programm beenden?
800 </message> 758 </message>
@@ -838,7 +796,7 @@ Die Änderungen übernehmen und das Programm beenden?
838 </alert> 796 </alert>
839 <alert name="ResetShowNextTimeDialogs"> 797 <alert name="ResetShowNextTimeDialogs">
840 <message name="message"> 798 <message name="message">
841 Möchten Sie alle Popups wieder aktivieren, die Sie zuvor auf &apos;Nicht mehr anzeigen&apos; gesetzt haben? 799 Möchten Sie alle Popups wieder aktivieren, die Sie zuvor auf „Nicht mehr anzeigen“ gesetzt haben?
842 </message> 800 </message>
843 <option name="OK"> 801 <option name="OK">
844 OK 802 OK
@@ -881,8 +839,7 @@ Hinweis: Der Cache wird dabei gelöscht/geleert.
881 </alert> 839 </alert>
882 <alert name="GoToAuctionPage"> 840 <alert name="GoToAuctionPage">
883 <message name="message"> 841 <message name="message">
884 Zur [SECOND_LIFE]-Webseite, um Auktionen anzuzeigen oder 842 Zur [SECOND_LIFE]-Webseite, um Auktionen anzuzeigen oder ein Gebot abzugeben?
885ein Gebot abzugeben?
886 </message> 843 </message>
887 <option name="GotoPage"> 844 <option name="GotoPage">
888 OK 845 OK
@@ -1008,8 +965,7 @@ Möchten Sie diese Objekte löschen?
1008 </alert> 965 </alert>
1009 <alert name="DisplaySettingsSafe"> 966 <alert name="DisplaySettingsSafe">
1010 <message name="message"> 967 <message name="message">
1011 Es wurden sichere Anzeige-Einstellungen gewählt, 968 Es wurden sichere Anzeige-Einstellungen gewählt, da die Option -safe verwendet wurde.
1012da die Option -safe verwendet wurde.
1013 </message> 969 </message>
1014 </alert> 970 </alert>
1015 <alert name="UnsupportedGLRequirements"> 971 <alert name="UnsupportedGLRequirements">
@@ -1023,9 +979,8 @@ Sollte das Problem fortbestehen, finden Sie weitere Hilfestellung unter: http://
1023 <message name="message"> 979 <message name="message">
1024 Achtung: Ihr System erfüllt nicht die Mindestanforderungen von Second Life. Dies kann eine schlechte Darstellungsleistung in Second Life zur Folge haben. Für nicht unterstützte Systemkonfigurationen bieten wir keinen technischen Support. 980 Achtung: Ihr System erfüllt nicht die Mindestanforderungen von Second Life. Dies kann eine schlechte Darstellungsleistung in Second Life zur Folge haben. Für nicht unterstützte Systemkonfigurationen bieten wir keinen technischen Support.
1025 981
1026MINDESTANF. 982MINSPECS
1027Die Seite [_URL] für 983Die Seite [_URL] für weitere Informationen öffnen?
1028weitere Informationen öffnen?
1029 </message> 984 </message>
1030 <ignore name="ignore"> 985 <ignore name="ignore">
1031 Bei Entdeckung nicht unterstützter Hardware 986 Bei Entdeckung nicht unterstützter Hardware
@@ -1069,8 +1024,7 @@ weitere Informationen öffnen?
1069 <message name="message"> 1024 <message name="message">
1070 Ihr System verwendet eine uns zurzeit unbekannte Grafikkarte. 1025 Ihr System verwendet eine uns zurzeit unbekannte Grafikkarte.
1071Dies ist häufig der Fall bei neuer Hardware, die wir noch nicht testen konnten. 1026Dies ist häufig der Fall bei neuer Hardware, die wir noch nicht testen konnten.
1072Second Life funktioniert aller Voraussicht nach normal, möglicherweise 1027Second Life funktioniert aller Voraussicht nach normal, möglicherweise müssen Sie aber die Grafikeinstellungen anpassen.
1073müssen Sie aber die Grafikeinstellungen anpassen.
1074(Bearbeiten &gt; Einstellungen &gt; Grafik). 1028(Bearbeiten &gt; Einstellungen &gt; Grafik).
1075 </message> 1029 </message>
1076 <ignore name="ignore"> 1030 <ignore name="ignore">
@@ -1079,8 +1033,7 @@ müssen Sie aber die Grafikeinstellungen anpassen.
1079 </alert> 1033 </alert>
1080 <alert name="DisplaySettingsRecommended"> 1034 <alert name="DisplaySettingsRecommended">
1081 <message name="message"> 1035 <message name="message">
1082 Es wurden die für Ihre Systemkonfiguration empfohlenen 1036 Es wurden die für Ihre Systemkonfiguration empfohlenen Anzeige-Einstellungen gewählt.
1083Anzeige-Einstellungen gewählt.
1084 </message> 1037 </message>
1085 <option name="OK"> 1038 <option name="OK">
1086 OK 1039 OK
@@ -1092,7 +1045,7 @@ Anzeige-Einstellungen gewählt.
1092Die Grafikqualität wird auf eine niedrige Stufe zurückgesetzt, um einige typische Treiberfehler zu vermeiden. 1045Die Grafikqualität wird auf eine niedrige Stufe zurückgesetzt, um einige typische Treiberfehler zu vermeiden.
1093Einige Grafikfunktionen werden ausgeschaltet. 1046Einige Grafikfunktionen werden ausgeschaltet.
1094Wir empfehlen die Aktualisierung Ihrer Grafikkartentreiber. 1047Wir empfehlen die Aktualisierung Ihrer Grafikkartentreiber.
1095Sie können die Grafikqualität unter &apos;Einstellungen&apos; &gt; &apos;Grafik&apos; wieder erhöhen. 1048Sie können die Grafikqualität unter „Einstellungen“ &gt; „Grafik“ wieder erhöhen.
1096 </message> 1049 </message>
1097 </alert> 1050 </alert>
1098 <alert name="CannotRequestDomain"> 1051 <alert name="CannotRequestDomain">
@@ -1104,10 +1057,8 @@ Folgende Domäne konnte nicht aufgelöst werden: [HOST]
1104 <alert name="CannotFindDomain"> 1057 <alert name="CannotFindDomain">
1105 <message name="message"> 1058 <message name="message">
1106 Der Server-Domänenname konnte nicht gefunden werden. 1059 Der Server-Domänenname konnte nicht gefunden werden.
1107Mögliche Ursachen sind der Verlust der Netzwerkverbindung 1060Mögliche Ursachen sind der Verlust der Netzwerkverbindung oder ein Serverproblem.
1108oder ein Serverproblem. 1061Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie für Unterstützung und einen Link auf die Systemstatus-Webseite auf „Hilfe“.
1109Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie
1110für Unterstützung und einen Link auf die Systemstatus-Webseite auf &apos;Hilfe&apos;.
1111 </message> 1062 </message>
1112 <option name="OK"> 1063 <option name="OK">
1113 OK 1064 OK
@@ -1138,9 +1089,7 @@ falls der Fehler wiederholt auftritt.
1138Die Ursache hierfür ist oft eine falsch eingestellte Uhrzeit auf Ihrem Computer. 1089Die Ursache hierfür ist oft eine falsch eingestellte Uhrzeit auf Ihrem Computer.
1139 1090
1140Bitte vergewissern Sie sich, dass Datum und Uhrzeit korrekt eingestellt sind. 1091Bitte vergewissern Sie sich, dass Datum und Uhrzeit korrekt eingestellt sind.
1141Bitte melden Sie das Problem unter 1092Bitte melden Sie das Problem unter www.secondlife.com/support, sollte der Fehler wiederholt auftreten.
1142www.secondlife.com/support,
1143sollte der Fehler wiederholt auftreten.
1144 </message> 1093 </message>
1145 </alert> 1094 </alert>
1146 <alert name="CannotConnectVerificationError"> 1095 <alert name="CannotConnectVerificationError">
@@ -1148,9 +1097,7 @@ sollte der Fehler wiederholt auftreten.
1148 Verbindung mit [SECOND_LIFE] nicht möglich. 1097 Verbindung mit [SECOND_LIFE] nicht möglich.
1149Der Anmeldeserver konnte sich nicht per SSL verifizieren. 1098Der Anmeldeserver konnte sich nicht per SSL verifizieren.
1150 1099
1151Bitte melden Sie das Problem unter 1100Bitte melden Sie das Problem unter www.secondlife.com/support, sollte der Fehler wiederholt auftreten.
1152www.secondlife.com/support,
1153sollte der Fehler wiederholt auftreten.
1154 </message> 1101 </message>
1155 </alert> 1102 </alert>
1156 <alert name="CannotConnectUnknownErrorWindows"> 1103 <alert name="CannotConnectUnknownErrorWindows">
@@ -1158,9 +1105,7 @@ sollte der Fehler wiederholt auftreten.
1158 Verbindung mit [SECOND_LIFE] nicht möglich. 1105 Verbindung mit [SECOND_LIFE] nicht möglich.
1159Trotz all unserer Bemühungen ist ein unerwarteter Fehler aufgetreten. 1106Trotz all unserer Bemühungen ist ein unerwarteter Fehler aufgetreten.
1160 1107
1161Bitte melden Sie das Problem auf 1108Bitte melden Sie das Problem auf www.secondlife.com/support und fügen Sie dem Bericht die Datei SecondLife.log an, die Sie hier finden: C:\Dokumente und Einstellungen\(Name)\Anwendungsdaten\SecondLife\logs
1162www.secondlife.com/support und fügen Sie dem Bericht die Datei SecondLife.log
1163an, die Sie hier finden: C:\Dokumente und Einstellungen\(Name)\Anwendungsdaten\SecondLife\logs
1164Vielen Dank. 1109Vielen Dank.
1165 </message> 1110 </message>
1166 </alert> 1111 </alert>
@@ -1169,9 +1114,7 @@ Vielen Dank.
1169 Verbindung mit [SECOND_LIFE] nicht möglich. 1114 Verbindung mit [SECOND_LIFE] nicht möglich.
1170Trotz all unserer Bemühungen ist ein unerwarteter Fehler aufgetreten. 1115Trotz all unserer Bemühungen ist ein unerwarteter Fehler aufgetreten.
1171 1116
1172Bitte melden Sie das Problem auf 1117Bitte melden Sie das Problem auf www.secondlife.com/support und fügen Sie dem Bericht die Datei SecondLife.log an, die Sie hier finden: ~/Library/Application Support/SecondLife/logs
1173www.secondlife.com/support und fügen Sie dem Bericht die Datei SecondLife.log
1174an, die Sie hier finden: ~/Library/Application Support/SecondLife/logs
1175Vielen Dank. 1118Vielen Dank.
1176 </message> 1119 </message>
1177 </alert> 1120 </alert>
@@ -1180,16 +1123,14 @@ Vielen Dank.
1180 Bei der Prüfung Ihres Authentifizierungs- 1123 Bei der Prüfung Ihres Authentifizierungs-
1181Token ist ein Problem aufgetreten. Bitte melden Sie sich erneut an. 1124Token ist ein Problem aufgetreten. Bitte melden Sie sich erneut an.
1182 1125
1183Wenden Sie sich an www.secondlife.com/support, 1126Wenden Sie sich an www.secondlife.com/support, sollte dieser Fehler wiederholt auftreten.
1184sollte dieser Fehler wiederholt auftreten.
1185 </message> 1127 </message>
1186 </alert> 1128 </alert>
1187 <alert name="CannotConnectNoMessage"> 1129 <alert name="CannotConnectNoMessage">
1188 <message name="message"> 1130 <message name="message">
1189 Unbekanntes Verbindungsproblem. 1131 Unbekanntes Verbindungsproblem.
1190 1132
1191Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie 1133Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie für Unterstützung und einen Link auf die Systemstatus-Webseite auf „Hilfe“.
1192für Unterstützung und einen Link auf die Systemstatus-Webseite auf &apos;Hilfe&apos;.
1193 </message> 1134 </message>
1194 <option name="OK"> 1135 <option name="OK">
1195 OK 1136 OK
@@ -1202,8 +1143,7 @@ für Unterstützung und einen Link auf die Systemstatus-Webseite auf &apos;Hilfe
1202 <message name="message"> 1143 <message name="message">
1203 Verbindung nicht möglich. Keine Anmeldebestätigung von Simulator. 1144 Verbindung nicht möglich. Keine Anmeldebestätigung von Simulator.
1204 1145
1205Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie 1146Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie für Unterstützung und einen Link zur Systemstatus-Webseite auf „Hilfe“.
1206für Unterstützung und einen Link zur Systemstatus-Webseite auf &apos;Hilfe&apos;.
1207 </message> 1147 </message>
1208 <option name="OK"> 1148 <option name="OK">
1209 OK 1149 OK
@@ -1221,8 +1161,7 @@ für Unterstützung und einen Link zur Systemstatus-Webseite auf &apos;Hilfe&apo
1221 <message name="message"> 1161 <message name="message">
1222 Die Installation von [SECOND_LIFE] ist abgeschlossen. 1162 Die Installation von [SECOND_LIFE] ist abgeschlossen.
1223 1163
1224Wenn Sie [SECOND_LIFE] das erste Mal verwenden, müssen Sie ein Konto anlegen, 1164Wenn Sie [SECOND_LIFE] das erste Mal verwenden, müssen Sie ein Konto anlegen, bevor Sie sich anmelden können.
1225bevor Sie sich anmelden können.
1226Möchten Sie auf www.secondlife.com ein Konto erstellen? 1165Möchten Sie auf www.secondlife.com ein Konto erstellen?
1227 </message> 1166 </message>
1228 <option name="NewAccount..."> 1167 <option name="NewAccount...">
@@ -1235,8 +1174,7 @@ Möchten Sie auf www.secondlife.com ein Konto erstellen?
1235 <alert name="ClothingStillDownloading"> 1174 <alert name="ClothingStillDownloading">
1236 <message name="message"> 1175 <message name="message">
1237 Ihr Avatar wird noch heruntergeladen. 1176 Ihr Avatar wird noch heruntergeladen.
1238Sie können [SECOND_LIFE] normal verwenden und andere 1177Sie können [SECOND_LIFE] normal verwenden und andere Einwohner können Sie sehen.
1239Einwohner können Sie sehen.
1240 </message> 1178 </message>
1241 </alert> 1179 </alert>
1242 <alert name="CannotResolveDomain"> 1180 <alert name="CannotResolveDomain">
@@ -1283,10 +1221,7 @@ Bitte wählen Sie einen männlichen oder weiblichen Avatar.
1283 </alert> 1221 </alert>
1284 <alert name="CannotCopyWarning"> 1222 <alert name="CannotCopyWarning">
1285 <message name="message"> 1223 <message name="message">
1286 Sie sind nicht berechtigt, dieses 1224 Sie sind nicht berechtigt, dieses Objekt zu kopieren und verlieren es aus Ihrem Inventar, wenn Sie es weggeben. Möchten Sie dieses Objekt anbieten?
1287Objekt zu kopieren und verlieren es
1288aus Ihrem Inventar, wenn Sie es weggeben. Möchten
1289Sie dieses Objekt anbieten?
1290 </message> 1225 </message>
1291 <option name="Yes"> 1226 <option name="Yes">
1292 Ja 1227 Ja
@@ -1317,9 +1252,7 @@ Sie dieses Objekt anbieten?
1317 </alert> 1252 </alert>
1318 <alert name="CannotCopyCountItems"> 1253 <alert name="CannotCopyCountItems">
1319 <message name="message"> 1254 <message name="message">
1320 Sie sind nicht berechtigt, [COUNT] der ausgewählten 1255 Sie sind nicht berechtigt, [COUNT] der ausgewählten Objekte zu kopieren. Diese Objekte werden aus Ihrem Inventar gelöscht.
1321Objekte zu kopieren. Diese Objekte werden aus
1322Ihrem Inventar gelöscht.
1323Möchten Sie diese Objekte weggeben? 1256Möchten Sie diese Objekte weggeben?
1324 </message> 1257 </message>
1325 <option name="Yes"> 1258 <option name="Yes">
@@ -1331,15 +1264,13 @@ Möchten Sie diese Objekte weggeben?
1331 </alert> 1264 </alert>
1332 <alert name="CannotGiveCategory"> 1265 <alert name="CannotGiveCategory">
1333 <message name="message"> 1266 <message name="message">
1334 Sie sind nicht berechtigt, den ausgewählten 1267 Sie sind nicht berechtigt, den ausgewählten Ordner zu kopieren.
1335Ordner zu kopieren.
1336 </message> 1268 </message>
1337 </alert> 1269 </alert>
1338 <alert name="FreezeAvatar"> 1270 <alert name="FreezeAvatar">
1339 <message name="message"> 1271 <message name="message">
1340 Diesen Avatar einfrieren? 1272 Diesen Avatar einfrieren?
1341Der Avatar wird außer Gefecht gesetzt und kann 1273Der Avatar wird außer Gefecht gesetzt und kann sich nicht mehr bewegen, chatten oder mit der Welt interagieren.
1342sich nicht mehr bewegen, chatten oder mit der Welt interagieren.
1343 </message> 1274 </message>
1344 <option name="Freeze"> 1275 <option name="Freeze">
1345 Einfrieren 1276 Einfrieren
@@ -1354,8 +1285,7 @@ sich nicht mehr bewegen, chatten oder mit der Welt interagieren.
1354 <alert name="FreezeAvatarFullname"> 1285 <alert name="FreezeAvatarFullname">
1355 <message name="message"> 1286 <message name="message">
1356 [AVATAR_NAME] einfrieren? 1287 [AVATAR_NAME] einfrieren?
1357Der Avatar wird außer Gefecht gesetzt und kann 1288Der Avatar wird außer Gefecht gesetzt und kann sich nicht mehr bewegen, chatten oder mit der Welt interagieren.
1358sich nicht mehr bewegen, chatten oder mit der Welt interagieren.
1359 </message> 1289 </message>
1360 <option name="Freeze"> 1290 <option name="Freeze">
1361 Einfrieren 1291 Einfrieren
@@ -1395,6 +1325,28 @@ sich nicht mehr bewegen, chatten oder mit der Welt interagieren.
1395 Abbrechen 1325 Abbrechen
1396 </option> 1326 </option>
1397 </alert> 1327 </alert>
1328 <alert name="EjectAvatarNoBan">
1329 <message name="message">
1330 Diesen Avatar aus Ihrem Land werfen?
1331 </message>
1332 <option name="Eject">
1333 Hinauswerfen
1334 </option>
1335 <option name="Cancel">
1336 Abbrechen
1337 </option>
1338 </alert>
1339 <alert name="EjectAvatarFullnameNoBan">
1340 <message name="message">
1341 [AVATAR_NAME] aus Ihrem Land werfen?
1342 </message>
1343 <option name="Eject">
1344 Hinauswerfen
1345 </option>
1346 <option name="Cancel">
1347 Abbrechen
1348 </option>
1349 </alert>
1398 <alert name="InvalidUUID"> 1350 <alert name="InvalidUUID">
1399 <message name="message"> 1351 <message name="message">
1400 Ungültige UUID. 1352 Ungültige UUID.
@@ -1408,16 +1360,13 @@ sich nicht mehr bewegen, chatten oder mit der Welt interagieren.
1408 <alert name="AcquireErrorObjectSpan"> 1360 <alert name="AcquireErrorObjectSpan">
1409 <message name="message"> 1361 <message name="message">
1410 FEHLER: Die Objekte überspannen mehrere Regionen. 1362 FEHLER: Die Objekte überspannen mehrere Regionen.
1411Verschieben Sie alle betreffenden Objekte in dieselbe 1363Verschieben Sie alle betreffenden Objekte in dieselbe Region.
1412Region.
1413 </message> 1364 </message>
1414 </alert> 1365 </alert>
1415 <alert name="TakeLockedOrNotOwnedBy"> 1366 <alert name="TakeLockedOrNotOwnedBy">
1416 <message name="message"> 1367 <message name="message">
1417 Mindestens ein Objekt ist gesperrt oder gehört Ihnen nicht. 1368 Mindestens ein Objekt ist gesperrt oder gehört Ihnen nicht.
1418Wenn Ihnen ein Objekt nicht gehört und Sie es nehmen, 1369Wenn Ihnen ein Objekt nicht gehört und Sie es nehmen, werden die Rechte für den nächsten Eigentümer angewandt und Sie können es möglicherweise nicht bearbeiten oder kopieren.
1419werden die Rechte für den nächsten Eigentümer angewandt und Sie
1420können es möglicherweise nicht bearbeiten oder kopieren.
1421 1370
1422Möchten Sie diese Objekte nehmen? 1371Möchten Sie diese Objekte nehmen?
1423 </message> 1372 </message>
@@ -1449,29 +1398,26 @@ Sie können maximal [MAX] Objekte verknüpfen.
1449 </alert> 1398 </alert>
1450 <alert name="CannotLinkIncompleteSet"> 1399 <alert name="CannotLinkIncompleteSet">
1451 <message name="message"> 1400 <message name="message">
1452 Sie können nur vollständige Objektsätze verknüpfen und 1401 Sie können nur vollständige Objektsätze verknüpfen und Sie müssen mehr als ein Objekt auswählen.
1453Sie müssen mehr als ein Objekt auswählen.
1454 </message> 1402 </message>
1455 </alert> 1403 </alert>
1456 <alert name="CannotLinkModify"> 1404 <alert name="CannotLinkModify">
1457 <message name="message"> 1405 <message name="message">
1458 Verknüpfung nicht möglich, da Sie nicht alle Objekte bearbeiten 1406 Verknüpfung nicht möglich, da Sie nicht alle Objekte bearbeiten dürfen.
1459dürfen.
1460 1407
1461Stellen Sie sicher, dass kein Objekt gesperrt ist und alle Objekte Ihnen gehören. 1408Stellen Sie sicher, dass kein Objekt gesperrt ist und alle Objekte Ihnen gehören.
1462 </message> 1409 </message>
1463 </alert> 1410 </alert>
1464 <alert name="CannotLinkDifferentOwners"> 1411 <alert name="CannotLinkDifferentOwners">
1465 <message name="message"> 1412 <message name="message">
1466 Verknüpfung nicht möglich, da nicht alle Objekte denselben 1413 Verknüpfung nicht möglich, da nicht alle Objekte denselben Eigentümer haben.
1467Eigentümer haben.
1468 1414
1469Stellen Sie sicher, dass alle ausgewählten Objekte Ihnen gehören. 1415Stellen Sie sicher, dass alle ausgewählten Objekte Ihnen gehören.
1470 </message> 1416 </message>
1471 </alert> 1417 </alert>
1472 <alert name="NoFileExtension"> 1418 <alert name="NoFileExtension">
1473 <message name="message"> 1419 <message name="message">
1474 Kein Dateityp für Datei: &apos;[FILE]&apos; 1420 Kein Dateityp für Datei: „[FILE]“
1475 1421
1476Vergewissern Sie sich, dass die Datei den richtigen Dateityp hat. 1422Vergewissern Sie sich, dass die Datei den richtigen Dateityp hat.
1477 </message> 1423 </message>
@@ -1523,7 +1469,7 @@ Erwartet wurde [VALIDS]
1523 </alert> 1469 </alert>
1524 <alert name="SoundFileInvalidHeader"> 1470 <alert name="SoundFileInvalidHeader">
1525 <message name="message"> 1471 <message name="message">
1526 &apos;Daten&apos;-Chunk in WAV-Header nicht gefunden: 1472 „Daten“-Chunk in WAV-Header nicht gefunden:
1527[FILE] 1473[FILE]
1528 </message> 1474 </message>
1529 </alert> 1475 </alert>
@@ -1593,67 +1539,62 @@ Bitte versuchen Sie es erneut.
1593 </alert> 1539 </alert>
1594 <alert name="CannotCreateLandmarkNotOwner"> 1540 <alert name="CannotCreateLandmarkNotOwner">
1595 <message name="message"> 1541 <message name="message">
1596 Sie können hier keine Landmarke erstellen, 1542 Sie können hier keine Landmarke erstellen, da der Landeigentümer dies verboten hat.
1597da der Landeigentümer dies verboten hat.
1598 </message> 1543 </message>
1599 </alert> 1544 </alert>
1600 <alert name="CannotRecompileSelectObjectsNoScripts"> 1545 <alert name="CannotRecompileSelectObjectsNoScripts">
1601 <message name="message"> 1546 <message name="message">
1602 &apos;Rekompilieren&apos; nicht möglich. 1547 „Rekompilieren“ nicht möglich.
1603Objekt mit Skript wählen. 1548Objekt mit Skript wählen.
1604 </message> 1549 </message>
1605 </alert> 1550 </alert>
1606 <alert name="CannotRecompileSelectObjectsNoPermission"> 1551 <alert name="CannotRecompileSelectObjectsNoPermission">
1607 <message name="message"> 1552 <message name="message">
1608 &apos;Rekompilieren&apos; nicht möglich. 1553 „Rekompilieren“ nicht möglich.
1609 1554
1610Wählen Sie Objekte mit Skripts, die 1555Wählen Sie Objekte mit Skripts, die Sie bearbeiten dürfen.
1611Sie bearbeiten dürfen.
1612 </message> 1556 </message>
1613 </alert> 1557 </alert>
1614 <alert name="CannotResetSelectObjectsNoScripts"> 1558 <alert name="CannotResetSelectObjectsNoScripts">
1615 <message name="message"> 1559 <message name="message">
1616 &apos;Zurücksetzen&apos; nicht möglich. 1560 „Zurücksetzen“ nicht möglich.
1617 1561
1618Wählen Sie Objekte mit Skripts. 1562Wählen Sie Objekte mit Skripts.
1619 </message> 1563 </message>
1620 </alert> 1564 </alert>
1621 <alert name="CannotResetSelectObjectsNoPermission"> 1565 <alert name="CannotResetSelectObjectsNoPermission">
1622 <message name="message"> 1566 <message name="message">
1623 &apos;Zurücksetzen&apos; nicht möglich. 1567 „Zurücksetzen“ nicht möglich.
1624 1568
1625Wählen Sie Objekte mit Skripts, die 1569Wählen Sie Objekte mit Skripts, die Sie bearbeiten dürfen.
1626Sie bearbeiten dürfen.
1627 </message> 1570 </message>
1628 </alert> 1571 </alert>
1629 <alert name="CannotSetRunningSelectObjectsNoScripts"> 1572 <alert name="CannotSetRunningSelectObjectsNoScripts">
1630 <message name="message"> 1573 <message name="message">
1631 &apos;Ausführen&apos; von Skripts nicht möglich. 1574 „Ausführen“ von Skripts nicht möglich.
1632 1575
1633Wählen Sie Objekte mit Skripts. 1576Wählen Sie Objekte mit Skripts.
1634 </message> 1577 </message>
1635 </alert> 1578 </alert>
1636 <alert name="CannotSetRunningSelectObjectsNoPermission"> 1579 <alert name="CannotSetRunningSelectObjectsNoPermission">
1637 <message name="message"> 1580 <message name="message">
1638 &apos;Ausführen&apos; von Skripts nicht möglich. 1581 „Ausführen“ von Skripts nicht möglich.
1639 1582
1640Wählen Sie Objekte mit Skripts, die 1583Wählen Sie Objekte mit Skripts, die Sie bearbeiten dürfen.
1641Sie bearbeiten dürfen.
1642 </message> 1584 </message>
1643 </alert> 1585 </alert>
1644 <alert name="CannotSetRunningNotSelectObjectsNoScripts"> 1586 <alert name="CannotSetRunningNotSelectObjectsNoScripts">
1645 <message name="message"> 1587 <message name="message">
1646 &apos;Deaktivieren&apos; von Skripts nicht möglich. 1588 „Deaktivieren“ von Skripts nicht möglich.
1647 1589
1648Wählen Sie Objekte mit Skripts. 1590Wählen Sie Objekte mit Skripts.
1649 </message> 1591 </message>
1650 </alert> 1592 </alert>
1651 <alert name="CannotSetRunningNotSelectObjectsNoPermission"> 1593 <alert name="CannotSetRunningNotSelectObjectsNoPermission">
1652 <message name="message"> 1594 <message name="message">
1653 &apos;Deaktivieren&apos; von Skripts nicht möglich. 1595 „Deaktivieren“ von Skripts nicht möglich.
1654 1596
1655Wählen Sie Objekte mit Skripts, die 1597Wählen Sie Objekte mit Skripts, die Sie bearbeiten dürfen.
1656Sie bearbeiten dürfen.
1657 </message> 1598 </message>
1658 </alert> 1599 </alert>
1659 <alert name="NoFrontmostFloater"> 1600 <alert name="NoFrontmostFloater">
@@ -1719,15 +1660,12 @@ Keine Parzelle ausgewählt.
1719 </alert> 1660 </alert>
1720 <alert name="CannotSetLandOwnerMultipleRegions"> 1661 <alert name="CannotSetLandOwnerMultipleRegions">
1721 <message name="message"> 1662 <message name="message">
1722 Eine erzwungene Landübertragung ist nicht möglich, da die Auswahl 1663 Eine erzwungene Landübertragung ist nicht möglich, da die Auswahl mehrere Regionen umfasst. Wählen Sie ein kleineres Gebiet und versuchen Sie es erneut.
1723mehrere Regionen umfasst. Wählen Sie ein kleineres Gebiet und versuchen Sie es erneut.
1724 </message> 1664 </message>
1725 </alert> 1665 </alert>
1726 <alert name="ForceOwnerAuctionWarning"> 1666 <alert name="ForceOwnerAuctionWarning">
1727 <message name="message"> 1667 <message name="message">
1728 Diese Parzelle steht zur Auktion. Eine zwangsweise Eigentumsübertragung 1668 Diese Parzelle steht zur Auktion. Eine zwangsweise Eigentumsübertragung beendet die Auktion und verärgert womöglich Einwohner, die bereits ein Gebot abgegeben haben. Eigentumsübertragung erzwingen?
1729beendet die Auktion und verärgert womöglich Einwohner,
1730die bereits ein Gebot abgegeben haben. Eigentumsübertragung erzwingen?
1731 </message> 1669 </message>
1732 <option name="Force"> 1670 <option name="Force">
1733 OK 1671 OK
@@ -1774,7 +1712,7 @@ Kann die Region nicht finden, in der sich dieses Land befindet.
1774 </alert> 1712 </alert>
1775 <alert name="CannotCloseFloaterBuyLand"> 1713 <alert name="CannotCloseFloaterBuyLand">
1776 <message name="message"> 1714 <message name="message">
1777 Das Fenster &apos;Land kaufen&apos; kann erst geschlossen werden, 1715 Das Fenster „Land kaufen“ kann erst geschlossen werden,
1778nachdem Second Life den Transaktionspreis geschätzt hat. 1716nachdem Second Life den Transaktionspreis geschätzt hat.
1779 </message> 1717 </message>
1780 </alert> 1718 </alert>
@@ -1794,7 +1732,7 @@ Keine Gruppe ausgewählt.
1794 <message name="message"> 1732 <message name="message">
1795 Land kann nicht übertragen werden: 1733 Land kann nicht übertragen werden:
1796Kann die Region nicht finden, in der sich dieses Land befindet. 1734Kann die Region nicht finden, in der sich dieses Land befindet.
1797Bitte melden Sie dies über &apos;Hilfe&apos; -&gt; &apos;Fehler melden&apos;. 1735Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
1798 </message> 1736 </message>
1799 </alert> 1737 </alert>
1800 <alert name="CannotDeedLandMultipleSelected"> 1738 <alert name="CannotDeedLandMultipleSelected">
@@ -1816,8 +1754,7 @@ Wählen Sie eine einzelne Parzelle.
1816Streaming-Medien erfordern eine schnelle Internet-Verbindung. 1754Streaming-Medien erfordern eine schnelle Internet-Verbindung.
1817 1755
1818Streaming-Medien abspielen, wenn verfügbar? 1756Streaming-Medien abspielen, wenn verfügbar?
1819(Sie können diese Option später unter 1757(Sie können diese Option später unter „Einstellungen“ &gt; „Audio &amp; Video“ ändern.)
1820&apos;Einstellungen&apos; &gt; &apos;Audio &amp; Video&apos; ändern.)
1821 </message> 1758 </message>
1822 <option name="PlayMedia"> 1759 <option name="PlayMedia">
1823 Medien wiedergeben 1760 Medien wiedergeben
@@ -1868,7 +1805,7 @@ Parzellen, die Ihnen gehören, werden grün dargestellt.
1868 Land kann nicht aufgegeben werden: 1805 Land kann nicht aufgegeben werden:
1869Kann die Region nicht finden, in der sich dieses Land befindet. 1806Kann die Region nicht finden, in der sich dieses Land befindet.
1870 1807
1871Bitte melden Sie dies über &apos;Hilfe&apos; -&gt; &apos;Fehler melden&apos;. 1808Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
1872 </message> 1809 </message>
1873 </alert> 1810 </alert>
1874 <alert name="CannotReleaseLandNoTransfer"> 1811 <alert name="CannotReleaseLandNoTransfer">
@@ -1888,8 +1825,7 @@ Wählen Sie eine ganze Parzelle oder teilen Sie Ihre Parzelle.
1888 <alert name="ReleaseLandWarning"> 1825 <alert name="ReleaseLandWarning">
1889 <message name="message"> 1826 <message name="message">
1890 Sie sind im Begriff, [AREA] qm Land aufzugeben. 1827 Sie sind im Begriff, [AREA] qm Land aufzugeben.
1891Wenn Sie diese Parzelle aufgeben, wird sie ohne 1828Wenn Sie diese Parzelle aufgeben, wird sie ohne L$-Erstattung von Ihrem Landbesitz entfernt.
1892L$-Erstattung von Ihrem Landbesitz entfernt.
1893 1829
1894Dieses Land aufgeben? 1830Dieses Land aufgeben?
1895 </message> 1831 </message>
@@ -1917,9 +1853,7 @@ Wählen Sie einen Parzellenabschnitt aus.
1917 </alert> 1853 </alert>
1918 <alert name="LandDivideWarning"> 1854 <alert name="LandDivideWarning">
1919 <message name="message"> 1855 <message name="message">
1920 Wenn Sie dieses Land teilen, wird diese Parzelle in zwei 1856 Wenn Sie dieses Land teilen, wird diese Parzelle in zwei geteilt, jede mit ihren eigenen Einstellungen. Einige dieser Einstellungen werden aufgrund dieses Vorgangs zurückgesetzt.
1921geteilt, jede mit ihren eigenen Einstellungen. Einige dieser
1922Einstellungen werden aufgrund dieses Vorgangs zurückgesetzt.
1923 1857
1924Land teilen? 1858Land teilen?
1925 </message> 1859 </message>
@@ -1935,7 +1869,7 @@ Land teilen?
1935 Land kann nicht aufgeteilt werden: 1869 Land kann nicht aufgeteilt werden:
1936Kann die Region nicht finden, in der sich dieses Land befindet. 1870Kann die Region nicht finden, in der sich dieses Land befindet.
1937 1871
1938Bitte melden Sie dies über &apos;Hilfe&apos; -&gt; &apos;Fehler melden&apos;. 1872Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
1939 </message> 1873 </message>
1940 </alert> 1874 </alert>
1941 <alert name="CannotJoinLandNoRegion"> 1875 <alert name="CannotJoinLandNoRegion">
@@ -1943,7 +1877,7 @@ Bitte melden Sie dies über &apos;Hilfe&apos; -&gt; &apos;Fehler melden&apos;.
1943 Land kann nicht zusammengelegt werden: 1877 Land kann nicht zusammengelegt werden:
1944Kann die Region nicht finden, in der sich dieses Land befindet. 1878Kann die Region nicht finden, in der sich dieses Land befindet.
1945 1879
1946Bitte melden Sie dies über &apos;Hilfe&apos; -&gt; &apos;Fehler melden&apos;. 1880Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
1947 </message> 1881 </message>
1948 </alert> 1882 </alert>
1949 <alert name="CannotJoinLandNothingSelected"> 1883 <alert name="CannotJoinLandNothingSelected">
@@ -1972,8 +1906,7 @@ Wählen Sie Land auf beiden Parzellen aus.
1972 <message name="message"> 1906 <message name="message">
1973 Beim Zusammenlegen entsteht aus den vom Auswahlrechteck 1907 Beim Zusammenlegen entsteht aus den vom Auswahlrechteck
1974erfassten Parzellen eine große Parzelle. 1908erfassten Parzellen eine große Parzelle.
1975Sie müssen der neuen Parzelle einen Namen geben und 1909Sie müssen der neuen Parzelle einen Namen geben und ihre Optionen festlegen.
1976ihre Optionen festlegen.
1977 1910
1978Land zusammenlegen? 1911Land zusammenlegen?
1979 </message> 1912 </message>
@@ -2034,21 +1967,15 @@ Land zusammenlegen?
2034 </alert> 1967 </alert>
2035 <alert name="CannotSaveWearableOutOfSpace"> 1968 <alert name="CannotSaveWearableOutOfSpace">
2036 <message name="message"> 1969 <message name="message">
2037 &apos;[NAME]&apos; konnte nicht in Kleidungsdatei gespeichert werden. Geben Sie Speicherplatz 1970 „[NAME]“ konnte nicht in Kleidungsdatei gespeichert werden. Geben Sie Speicherplatz auf dem Computer frei und speichern Sie das Kleidungsstück erneut.
2038auf dem Computer frei und speichern Sie das
2039Kleidungsstück erneut.
2040 </message> 1971 </message>
2041 </alert> 1972 </alert>
2042 <alert name="CannotSaveToAssetStore"> 1973 <alert name="CannotSaveToAssetStore">
2043 <message name="message"> 1974 <message name="message">
2044 [NAME] kann nicht in Zentral-Asset-Speicher geladen werden. 1975 [NAME] kann nicht in Zentral-Asset-Speicher geladen werden.
2045Dies ist ein temporärer Fehler. Bitte 1976Dies ist ein temporärer Fehler. Bitte passen Sie das Kleidungsstück in einigen Minuten noch einmal an und speichern Sie es erneut.
2046passen Sie das Kleidungsstück in einigen
2047Minuten noch einmal an und speichern Sie es erneut.
2048 1977
2049Tritt dieses Problem wiederholt auf, 1978Tritt dieses Problem wiederholt auf, klicken Sie auf das Pulldown-Menü „Hilfe“ &gt; „Fehler melden“ und geben Sie Details zu Ihrem Netzwerk-Setup an.
2050klicken Sie auf das Pulldown-Menü &apos;Hilfe | Fehler melden&apos;
2051und geben Sie Details zu Ihrem Netzwerk-Setup an.
2052 </message> 1979 </message>
2053 </alert> 1980 </alert>
2054 <alert name="AppEarlyExit"> 1981 <alert name="AppEarlyExit">
@@ -2057,8 +1984,7 @@ und geben Sie Details zu Ihrem Netzwerk-Setup an.
2057 1984
2058Dieses Problem kann nicht behoben werden. 1985Dieses Problem kann nicht behoben werden.
2059 1986
2060Deinstallieren und reinstallieren Sie das Programm. Sollte dieses 1987Deinstallieren und reinstallieren Sie das Programm. Sollte dieses Problem fortbestehen, finden Sie weitere Hilfe in der Tech-Support-FAQ auf:
2061Problem fortbestehen, finden Sie weitere Hilfe in der Tech-Support-FAQ auf:
2062www.secondlife.com/support. 1988www.secondlife.com/support.
2063 </message> 1989 </message>
2064 <option name="Quit"> 1990 <option name="Quit">
@@ -2069,7 +1995,7 @@ www.secondlife.com/support.
2069 <message name="message"> 1995 <message name="message">
2070 Sie wurden von [SECOND_LIFE] abgemeldet: 1996 Sie wurden von [SECOND_LIFE] abgemeldet:
2071 [MESSAGE] 1997 [MESSAGE]
2072Klicken Sie auf &apos;IM &amp; Chat anzeigen&apos;, um vorhandene Nachrichten und Chat weiterhin anzuzeigen. Klicken Sie andernfalls auf &apos;Beenden&apos;, um [SECOND_LIFE] sofort zu beenden. 1998Klicken Sie auf „IM &amp; Chat anzeigen“, um vorhandene Nachrichten und Chat weiterhin anzuzeigen. Klicken Sie andernfalls auf „Beenden“, um [SECOND_LIFE] sofort zu beenden.
2073 </message> 1999 </message>
2074 <option name="Continue"> 2000 <option name="Continue">
2075 IM &amp; Chat anzeigen 2001 IM &amp; Chat anzeigen
@@ -2086,11 +2012,13 @@ Sie sind nicht berechtigt, Land für die aktive Gruppe zu kaufen.
2086 </alert> 2012 </alert>
2087 <alert name="AddFriend" title="Freund hinzufügen"> 2013 <alert name="AddFriend" title="Freund hinzufügen">
2088 <message name="message"> 2014 <message name="message">
2089 Freunde können sich gegenseitig die Berechtigung 2015 Freunde können sich gegenseitig die Berechtigung erteilen, sich auf der Karte zu verfolgen und Online-Status Benachrichtigungen zu empfangen.
2090erteilen, sich auf der Karte zu verfolgen und Online-Status Benachrichtigungen zu empfangen.
2091 2016
2092[NAME] Freundschaft anbieten? 2017[NAME] Freundschaft anbieten?
2093 </message> 2018 </message>
2019 <editline name="editline">
2020 Wollen wir Freunde sein?
2021 </editline>
2094 <option name="Offer"> 2022 <option name="Offer">
2095 OK 2023 OK
2096 </option> 2024 </option>
@@ -2100,13 +2028,12 @@ erteilen, sich auf der Karte zu verfolgen und Online-Status Benachrichtigungen z
2100 </alert> 2028 </alert>
2101 <alert name="AddFriendWithMessage" title="Freund hinzufügen"> 2029 <alert name="AddFriendWithMessage" title="Freund hinzufügen">
2102 <message name="message"> 2030 <message name="message">
2103 Freunde können sich gegenseitig die Berechtigung 2031 Freunde können sich gegenseitig die Berechtigung erteilen, sich auf der Karte zu verfolgen und Online-Status Benachrichtigungen zu empfangen.
2104erteilen, sich auf der Karte zu verfolgen und Online-Status Benachrichtigungen zu empfangen.
2105 2032
2106[NAME] Freundschaft anbieten? 2033[NAME] Freundschaft anbieten?
2107 </message> 2034 </message>
2108 <editline name="editline"> 2035 <editline name="editline">
2109 Möchtest du mein Freunde sein? 2036 Wollen wir Freunde sein?
2110 </editline> 2037 </editline>
2111 <option name="Offer"> 2038 <option name="Offer">
2112 OK 2039 OK
@@ -2165,8 +2092,7 @@ auf ALLEN LÄNDERN in diesem Sim LÖSCHEN?
2165 </alert> 2092 </alert>
2166 <alert name="GodDeleteAllObjectsByUser"> 2093 <alert name="GodDeleteAllObjectsByUser">
2167 <message name="message"> 2094 <message name="message">
2168 Möchten Sie ALLE Objekte (einschließlich geskriptete) 2095 Möchten Sie ALLE Objekte (einschließlich geskriptete) von
2169von
2170** [AVATAR_NAME] ** 2096** [AVATAR_NAME] **
2171auf ALLEN LÄNDERN in diesem Sim LÖSCHEN? 2097auf ALLEN LÄNDERN in diesem Sim LÖSCHEN?
2172 </message> 2098 </message>
@@ -2178,9 +2104,6 @@ auf ALLEN LÄNDERN in diesem Sim LÖSCHEN?
2178 </option> 2104 </option>
2179 </alert> 2105 </alert>
2180 <alert name="PublishGroupInfoToWeb"> 2106 <alert name="PublishGroupInfoToWeb">
2181 <message name="message">
2182 Im Web veröffentlichen
2183 </message>
2184 </alert> 2107 </alert>
2185 <alert name="BlankClassifiedName"> 2108 <alert name="BlankClassifiedName">
2186 <message name="message"> 2109 <message name="message">
@@ -2311,8 +2234,7 @@ Möchten Sie diese Objekte nehmen?
2311 <alert name="ConfirmObjectTakeNoOwn"> 2234 <alert name="ConfirmObjectTakeNoOwn">
2312 <message name="message"> 2235 <message name="message">
2313 Nicht alle Objekte, die Sie aufgenommen haben, gehören Ihnen. 2236 Nicht alle Objekte, die Sie aufgenommen haben, gehören Ihnen.
2314Wenn Sie fortfahren, werden die Rechte für den nächsten Eigentümer angewandt und Sie können die Objekte 2237Wenn Sie fortfahren, werden die Rechte für den nächsten Eigentümer angewandt und Sie können die Objekte möglicherweise nicht bearbeiten oder kopieren.
2315möglicherweise nicht bearbeiten oder kopieren.
2316 2238
2317Möchten Sie diese Objekte nehmen? 2239Möchten Sie diese Objekte nehmen?
2318 </message> 2240 </message>
@@ -2327,9 +2249,7 @@ Möchten Sie diese Objekte nehmen?
2327 <message name="message"> 2249 <message name="message">
2328 Mindestens ein Objekt ist gesperrt. 2250 Mindestens ein Objekt ist gesperrt.
2329Nicht alle Objekte, die Sie aufgenommen haben, gehören Ihnen. 2251Nicht alle Objekte, die Sie aufgenommen haben, gehören Ihnen.
2330Wenn Sie fortfahren, werden die Rechte für den nächsten Eigentümer 2252Wenn Sie fortfahren, werden die Rechte für den nächsten Eigentümer abgefragt und Sie können die Objekte möglicherweise nicht bearbeiten oder kopieren.
2331abgefragt und Sie können die Objekte
2332möglicherweise nicht bearbeiten oder kopieren.
2333Die aktuelle Auswahl können Sie jedoch aufnehmen. 2253Die aktuelle Auswahl können Sie jedoch aufnehmen.
2334 2254
2335Möchten Sie diese Objekte nehmen? 2255Möchten Sie diese Objekte nehmen?
@@ -2350,13 +2270,10 @@ Wählen Sie ein kleineres Gebiet und versuchen Sie es erneut.
2350 </alert> 2270 </alert>
2351 <alert name="DeedLandToGroup"> 2271 <alert name="DeedLandToGroup">
2352 <message name="message"> 2272 <message name="message">
2353 Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe 2273 Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe über ausreichende Landnutzungsrechte verfügt.
2354über ausreichende Landnutzungsrechte verfügt. 2274Dem Eigentümer wird der Kaufpreis für das Land nicht rückerstattet. Bei Verkauf der übertragenen Parzelle wird der Erlös zwischen den Gruppenmitgliedern aufgeteilt.
2355Dem Eigentümer wird der Kaufpreis für das Land nicht
2356rückerstattet. Bei Verkauf der übertragenen Parzelle
2357wird der Erlös zwischen den Gruppenmitgliedern aufgeteilt.
2358 2275
2359Der Gruppe &apos;[GROUP_NAME]&apos; 2276Der Gruppe „[GROUP_NAME]“
2360 [AREA] m2 Land schenken? 2277 [AREA] m2 Land schenken?
2361 </message> 2278 </message>
2362 <option name="Deed"> 2279 <option name="Deed">
@@ -2368,15 +2285,11 @@ Der Gruppe &apos;[GROUP_NAME]&apos;
2368 </alert> 2285 </alert>
2369 <alert name="DeedLandToGroupWithContribution"> 2286 <alert name="DeedLandToGroupWithContribution">
2370 <message name="message"> 2287 <message name="message">
2371 Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe 2288 Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe über ausreichende Landnutzungsrechte verfügt.
2372über ausreichende Landnutzungsrechte verfügt. 2289Die Schenkung beinhaltet eine Landübertragung an die Gruppe von „[FIRST_NAME] [LAST_NAME]“.
2373Die Schenkung beinhaltet eine Landübertragung 2290Dem Eigentümer wird der Kaufpreis für das Land nicht rückerstattet. Bei Verkauf der übertragenen Parzelle wird der Erlös zwischen den Gruppenmitgliedern aufgeteilt.
2374an die Gruppe von &apos;[FIRST_NAME] [LAST_NAME]&apos;.
2375Dem Eigentümer wird der Kaufpreis für das Land nicht
2376rückerstattet. Bei Verkauf der übertragenen Parzelle
2377wird der Erlös zwischen den Gruppenmitgliedern aufgeteilt.
2378 2291
2379Der Gruppe &apos;[GROUP_NAME]&apos; 2292Der Gruppe „[GROUP_NAME]“
2380 [AREA] m2 Land schenken? 2293 [AREA] m2 Land schenken?
2381 </message> 2294 </message>
2382 <option name="Deed"> 2295 <option name="Deed">
@@ -2388,14 +2301,12 @@ Der Gruppe &apos;[GROUP_NAME]&apos;
2388 </alert> 2301 </alert>
2389 <alert name="DisplaySetToSafe"> 2302 <alert name="DisplaySetToSafe">
2390 <message name="message"> 2303 <message name="message">
2391 Es wurden sichere Anzeige-Einstellungen gewählt, 2304 Es wurden sichere Anzeige-Einstellungen gewählt, da die Option -safe verwendet wurde.
2392da die Option -safe verwendet wurde.
2393 </message> 2305 </message>
2394 </alert> 2306 </alert>
2395 <alert name="DisplaySetToRecommended"> 2307 <alert name="DisplaySetToRecommended">
2396 <message name="message"> 2308 <message name="message">
2397 Es wurden die für Ihre Systemkonfiguration empfohlenen 2309 Es wurden die für Ihre Systemkonfiguration empfohlenen Anzeige-Einstellungen gewählt.
2398Anzeige-Einstellungen gewählt.
2399 </message> 2310 </message>
2400 </alert> 2311 </alert>
2401 <alert name="UnableToConnect"> 2312 <alert name="UnableToConnect">
@@ -2407,11 +2318,9 @@ Folgende Domäne konnte nicht aufgelöst werden: [HOST_NAME]
2407 <alert name="CanNotFindServer"> 2318 <alert name="CanNotFindServer">
2408 <message name="message"> 2319 <message name="message">
2409 Der Server-Domänenname konnte nicht gefunden werden. 2320 Der Server-Domänenname konnte nicht gefunden werden.
2410Mögliche Ursachen sind der Verlust der Netzwerkverbindung 2321Mögliche Ursachen sind der Verlust der Netzwerkverbindung oder ein Serverproblem.
2411oder ein Serverproblem.
2412 2322
2413Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie 2323Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie für Unterstützung und einen Link auf die Systemstatus-Webseite auf „Hilfe“.
2414für Unterstützung und einen Link auf die Systemstatus-Webseite auf &apos;Hilfe&apos;.
2415 </message> 2324 </message>
2416 <option name="OK"> 2325 <option name="OK">
2417 OK 2326 OK
@@ -2431,8 +2340,7 @@ Verbindung mit [IP_ADDRESS] nicht möglich
2431 Verbindung mit [SECOND_LIFE] nicht möglich. 2340 Verbindung mit [SECOND_LIFE] nicht möglich.
2432Möglicherweise handelt es sich um einen Systemausfall. 2341Möglicherweise handelt es sich um einen Systemausfall.
2433 2342
2434Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie 2343Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie für Unterstützung und einen Link auf die Systemstatus-Webseite auf „Hilfe“.
2435für Unterstützung und einen Link auf die Systemstatus-Webseite auf &apos;Hilfe&apos;.
2436 </message> 2344 </message>
2437 <option name="OK"> 2345 <option name="OK">
2438 OK 2346 OK
@@ -2451,8 +2359,7 @@ für Unterstützung und einen Link auf die Systemstatus-Webseite auf &apos;Hilfe
2451 QuickTime wurde deaktiviert, weil Sie eine alte Version verwenden 2359 QuickTime wurde deaktiviert, weil Sie eine alte Version verwenden
2452 </ignore> 2360 </ignore>
2453 <message name="message"> 2361 <message name="message">
2454 Streaming-Video wurde deaktiviert, weil die QuickTime-Version 2362 Streaming-Video wurde deaktiviert, weil die QuickTime-Version auf Ihrem Computer nicht mehr aktuell ist.
2455auf Ihrem Computer nicht mehr aktuell ist.
2456 2363
2457Laden Sie ein Update von http://www.apple.com/quicktime/ herunter. 2364Laden Sie ein Update von http://www.apple.com/quicktime/ herunter.
2458 </message> 2365 </message>
@@ -2476,8 +2383,7 @@ Sie können [SECOND_LIFE] normal verwenden. Andere Benutzer können Sie korrekt
2476 <message name="message"> 2383 <message name="message">
2477 Die Installation von [SECOND_LIFE] ist abgeschlossen. 2384 Die Installation von [SECOND_LIFE] ist abgeschlossen.
2478 2385
2479Wenn Sie [SECOND_LIFE] das erste Mal verwenden, müssen Sie ein Konto anlegen, 2386Wenn Sie [SECOND_LIFE] das erste Mal verwenden, müssen Sie ein Konto anlegen, bevor Sie sich anmelden können.
2480bevor Sie sich anmelden können.
2481Möchten Sie auf www.secondlife.com ein Konto erstellen? 2387Möchten Sie auf www.secondlife.com ein Konto erstellen?
2482 </message> 2388 </message>
2483 <option name="NewAccount..."> 2389 <option name="NewAccount...">
@@ -2499,7 +2405,7 @@ Bitte überprüfen Sie Ihre Netzwerkverbindung.
2499 <message name="message"> 2405 <message name="message">
2500 Die Verbindung kann nicht hergestellt werden. Möglicherweise besteht ein Problem mit Ihrer Internetverbindung oder den Second Life-Servern. 2406 Die Verbindung kann nicht hergestellt werden. Möglicherweise besteht ein Problem mit Ihrer Internetverbindung oder den Second Life-Servern.
2501 2407
2502Überprüfen Sie Ihre Internetverbindung und versuchen Sie es dann erneut, oder klicken Sie auf &apos;Hilfe&apos;, um zu unserer Supportseite zu gelangen, oder klicken Sie auf &apos;Teleportieren&apos;, um nach Hause zu teleportieren. 2408Überprüfen Sie Ihre Internetverbindung und versuchen Sie es dann erneut, oder klicken Sie auf „Hilfe“, um zu unserer Supportseite zu gelangen, oder klicken Sie auf „Teleportieren“, um nach Hause zu teleportieren.
2503 </message> 2409 </message>
2504 <option name="OK"> 2410 <option name="OK">
2505 OK 2411 OK
@@ -2516,8 +2422,7 @@ Bitte überprüfen Sie Ihre Netzwerkverbindung.
2516 Ihr Avatar erscheint jeden Moment. 2422 Ihr Avatar erscheint jeden Moment.
2517 2423
2518Benutzen Sie die Pfeiltasten, um sich fortzubewegen. 2424Benutzen Sie die Pfeiltasten, um sich fortzubewegen.
2519Drücken Sie F1 für Hilfe oder für weitere 2425Drücken Sie F1 für Hilfe oder für weitere Informationen über [SECOND_LIFE].
2520Informationen über [SECOND_LIFE].
2521 </message> 2426 </message>
2522 </alert> 2427 </alert>
2523 <alert name="WelcomeChooseSex"> 2428 <alert name="WelcomeChooseSex">
@@ -2525,8 +2430,7 @@ Informationen über [SECOND_LIFE].
2525 Ihr Avatar erscheint jeden Moment. 2430 Ihr Avatar erscheint jeden Moment.
2526 2431
2527Benutzen Sie die Pfeiltasten, um sich fortzubewegen. 2432Benutzen Sie die Pfeiltasten, um sich fortzubewegen.
2528Drücken Sie F1 für Hilfe oder für weitere 2433Drücken Sie F1 für Hilfe oder für weitere Informationen über [SECOND_LIFE].
2529Informationen über [SECOND_LIFE].
2530Bitte wählen Sie einen männlichen oder weiblichen Avatar. 2434Bitte wählen Sie einen männlichen oder weiblichen Avatar.
2531Sie können sich später noch umentscheiden. 2435Sie können sich später noch umentscheiden.
2532 </message> 2436 </message>
@@ -2539,7 +2443,7 @@ Sie können sich später noch umentscheiden.
2539 </alert> 2443 </alert>
2540 <alert name="NotEnoughCurrency"> 2444 <alert name="NotEnoughCurrency">
2541 <message name="message"> 2445 <message name="message">
2542 [NAME] L$ [PRICE] Sie haben nicht genügend Geld. 2446 [NAME] [PRICE] L$ Sie haben nicht genügend L$, um diese Aktion auszuführen.
2543 </message> 2447 </message>
2544 </alert> 2448 </alert>
2545 <alert name="GrantedModifyRights"> 2449 <alert name="GrantedModifyRights">
@@ -2556,8 +2460,7 @@ Sie können sich später noch umentscheiden.
2556 <message name="message"> 2460 <message name="message">
2557 Der Kartencache dieser Region wird geleert. 2461 Der Kartencache dieser Region wird geleert.
2558Diese Aktion ist nur beim Debugging sinnvoll. 2462Diese Aktion ist nur beim Debugging sinnvoll.
2559(Auf dem Produktionssystem warten Sie einfach 5 Minuten. Die Karten werden 2463(Auf dem Produktionssystem warten Sie einfach 5 Minuten. Die Karten werden nach erneuter Anmeldung automatisch aktualisiert.)
2560nach erneuter Anmeldung automatisch aktualisiert.)
2561 </message> 2464 </message>
2562 <option name="OK"> 2465 <option name="OK">
2563 OK 2466 OK
@@ -2605,8 +2508,7 @@ Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
2605 Die Regionstexturen konnten nicht festgelegt werden: 2508 Die Regionstexturen konnten nicht festgelegt werden:
2606Die Terraintextur [TEXTURE_NUM] hat eine ungültige Bit-Tiefe [TEXTURE_BIT_DEPTH]. 2509Die Terraintextur [TEXTURE_NUM] hat eine ungültige Bit-Tiefe [TEXTURE_BIT_DEPTH].
2607 2510
2608Ersetzen Sie die Textur [TEXTURE_NUM] mit einer Bilddatei von maximal 512x512 und 24 Bit und 2511Ersetzen Sie die Textur [TEXTURE_NUM] mit einer Bilddatei von maximal 512x512 und 24 Bit und klicken Sie dann erneut auf „Übernehmen“.
2609klicken Sie dann erneut auf &quot;Ãœbernehmen&quot;.
2610 </message> 2512 </message>
2611 </alert> 2513 </alert>
2612 <alert name="InvalidTerrainSize"> 2514 <alert name="InvalidTerrainSize">
@@ -2614,21 +2516,17 @@ klicken Sie dann erneut auf &quot;Ãœbernehmen&quot;.
2614 Die Regionstexturen konnten nicht festgelegt werden: 2516 Die Regionstexturen konnten nicht festgelegt werden:
2615Die Terraintextur [TEXTURE_NUM] ist mit [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y] zu groß. 2517Die Terraintextur [TEXTURE_NUM] ist mit [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y] zu groß.
2616 2518
2617Ersetzen Sie die Textur [TEXTURE_NUM] mit einer Bilddatei von maximal 512x512 und 24 Bit und 2519Ersetzen Sie die Textur [TEXTURE_NUM] mit einer Bilddatei von maximal 512x512 und 24 Bit und klicken Sie dann erneut auf „Übernehmen“.
2618klicken Sie dann erneut auf &quot;Ãœbernehmen&quot;.
2619 </message> 2520 </message>
2620 </alert> 2521 </alert>
2621 <alert name="RawUploadStarted"> 2522 <alert name="RawUploadStarted">
2622 <message name="message"> 2523 <message name="message">
2623 Hochladen gestartet. Je nach Verbindungsgeschwindigkeit 2524 Hochladen gestartet. Je nach Verbindungsgeschwindigkeit kann der Vorgang bis zu 2 Minuten dauern.
2624kann der Vorgang bis zu 2 Minuten dauern.
2625 </message> 2525 </message>
2626 </alert> 2526 </alert>
2627 <alert name="ConfirmBakeTerrain"> 2527 <alert name="ConfirmBakeTerrain">
2628 <message name="message"> 2528 <message name="message">
2629 Möchten Sie das aktuelle Terrain formen, 2529 Möchten Sie das aktuelle Terrain formen, es zum Mittelpunkt der oberen und unteren Terraingrenzen und zum Standard des „Zurücksetzen“-Tools machen?
2630es zum Mittelpunkt der oberen und unteren Terraingrenzen
2631und zum Standard des &apos;Zurücksetzen&apos;-Tools machen?
2632 </message> 2530 </message>
2633 <option name="Bake"> 2531 <option name="Bake">
2634 OK 2532 OK
@@ -2671,7 +2569,7 @@ und zum Standard des &apos;Zurücksetzen&apos;-Tools machen?
2671 </alert> 2569 </alert>
2672 <alert name="OwnerCanNotBeDenied"> 2570 <alert name="OwnerCanNotBeDenied">
2673 <message name="message"> 2571 <message name="message">
2674 Der Eigentümer des Grundstücks kann nicht zur Liste der &apos;Verbannten Einwohner&apos; hinzugefügt werden. 2572 Der Eigentümer des Grundstücks kann nicht zur Liste der „Verbannten Einwohner“ hinzugefügt werden.
2675 </message> 2573 </message>
2676 </alert> 2574 </alert>
2677 <alert name="CanNotChangeAppearanceUntilLoaded"> 2575 <alert name="CanNotChangeAppearanceUntilLoaded">
@@ -2681,13 +2579,12 @@ und zum Standard des &apos;Zurücksetzen&apos;-Tools machen?
2681 </alert> 2579 </alert>
2682 <alert name="ClassifiedMustBeAlphanumeric"> 2580 <alert name="ClassifiedMustBeAlphanumeric">
2683 <message name="message"> 2581 <message name="message">
2684 Der Name der Anzeige muss mit einem Buchstaben von 2582 Der Name der Anzeige muss mit einem Buchstaben von A bis Z oder einer Ziffer beginnen. Satzzeichen sind nicht erlaubt.
2685A bis Z oder einer Ziffer beginnen. Satzzeichen sind nicht erlaubt.
2686 </message> 2583 </message>
2687 </alert> 2584 </alert>
2688 <alert name="CantSetBuyObject"> 2585 <alert name="CantSetBuyObject">
2689 <message name="message"> 2586 <message name="message">
2690 &apos;Objekt kaufen&apos; nicht möglich, da das Objekt nicht zum Verkauf freigegeben ist. 2587 „Objekt kaufen“ nicht möglich, da das Objekt nicht zum Verkauf freigegeben ist.
2691Geben Sie das Objekt zum Verkauf frei und versuchen Sie es erneut. 2588Geben Sie das Objekt zum Verkauf frei und versuchen Sie es erneut.
2692 </message> 2589 </message>
2693 </alert> 2590 </alert>
@@ -2966,9 +2863,7 @@ In Ihren Anwendungsordner herunterladen?
2966 </alert> 2863 </alert>
2967 <alert name="ReturnToOwner"> 2864 <alert name="ReturnToOwner">
2968 <message name="message"> 2865 <message name="message">
2969 Möchten Sie die ausgewählten Objekte 2866 Möchten Sie die ausgewählten Objekte an ihre Eigentümer zurückgeben? Transferierbare übertragene Objekte werden ihren früheren Eigentümern zurückgegeben.
2970an ihre Eigentümer zurückgeben? Transferierbare übertragene
2971Objekte werden ihren früheren Eigentümern zurückgegeben.
2972 2867
2973*WARNUNG* Nicht transferierbare übertragene Objekte werden dabei gelöscht! 2868*WARNUNG* Nicht transferierbare übertragene Objekte werden dabei gelöscht!
2974 </message> 2869 </message>
@@ -3019,7 +2914,7 @@ Diese Gruppe verlassen?
3019 </alert> 2914 </alert>
3020 <alert name="MuteLinden"> 2915 <alert name="MuteLinden">
3021 <message name="message"> 2916 <message name="message">
3022 Linden können nicht stummgeschaltet werden. 2917 Lindens können nicht stummgeschaltet werden.
3023 </message> 2918 </message>
3024 <option name="OK"> 2919 <option name="OK">
3025 OK 2920 OK
@@ -3035,8 +2930,7 @@ Diese Gruppe verlassen?
3035 </alert> 2930 </alert>
3036 <alert name="RemoveItemWarn"> 2931 <alert name="RemoveItemWarn">
3037 <message name="message"> 2932 <message name="message">
3038 Diese Aktion ist zwar erlaubt, aber beim Löschen von 2933 Diese Aktion ist zwar erlaubt, aber beim Löschen von Inhalten wird das Objekt beschädigt. Möchten Sie dieses Element löschen?
3039Inhalten wird das Objekt beschädigt. Möchten Sie dieses Element löschen?
3040 </message> 2934 </message>
3041 <option name="Yes"> 2935 <option name="Yes">
3042 OK 2936 OK
@@ -3080,10 +2974,7 @@ Inhalten wird das Objekt beschädigt. Möchten Sie dieses Element löschen?
3080 <alert name="BusyModeSet"> 2974 <alert name="BusyModeSet">
3081 <message name="message"> 2975 <message name="message">
3082 Beschäftigt-Modus aktiviert. 2976 Beschäftigt-Modus aktiviert.
3083Chat und Instant Messages werden ausgeblendet. Instant 2977Chat und Instant Messages werden ausgeblendet. Instant Messages erhalten Ihre Beschäftigt-Antwort. Alle Teleport-Angebote werden ausgeschlagen. Alle Inventar-Angebote werden in den Papierkorb verschoben.
3084Messages erhalten Ihre Beschäftigt-Antwort. Alle Teleport-
3085Angebote werden ausgeschlagen. Alle Inventar-Angebote werden in den
3086Papierkorb verschoben.
3087 </message> 2978 </message>
3088 <ignore name="ignore"> 2979 <ignore name="ignore">
3089 Beim Aktivieren des Beschäftigt-Modus 2980 Beim Aktivieren des Beschäftigt-Modus
@@ -3102,8 +2993,7 @@ Papierkorb verschoben.
3102 </alert> 2993 </alert>
3103 <alert name="NotecardAttachPermFail"> 2994 <alert name="NotecardAttachPermFail">
3104 <message name="message"> 2995 <message name="message">
3105 An Notizkarten lassen sich nur Objekte mit uneingeschränkten 2996 An Notizkarten lassen sich nur Objekte mit uneingeschränkten „Nächster Eigentümer“-Rechten anfügen.
3106&apos;Nächster Eigentümer&apos;-Rechten anfügen.
3107 </message> 2997 </message>
3108 <option name="OK"> 2998 <option name="OK">
3109 OK 2999 OK
@@ -3111,11 +3001,8 @@ Papierkorb verschoben.
3111 </alert> 3001 </alert>
3112 <alert name="JoinedTooManyGroupsMember"> 3002 <alert name="JoinedTooManyGroupsMember">
3113 <message name="message"> 3003 <message name="message">
3114 Sie sind bereits in zu vielen Gruppen Mitglied 3004 Sie sind bereits in zu vielen Gruppen Mitglied und können keiner weiteren beitreten. Bitte verlassen Sie eine Gruppe, bevor Sie dieser beitreten oder lehnen Sie das Angebot ab.
3115und können keiner weiteren beitreten. Bitte verlassen Sie eine Gruppe, 3005Die Option zum Austritt aus einer Gruppe finden Sie unter „Bearbeiten“ &gt; „Gruppen...“.
3116bevor Sie dieser beitreten oder lehnen Sie das Angebot ab.
3117Die Option zum Austritt aus einer Gruppe finden Sie unter
3118&apos;Bearbeiten&apos; &gt; &apos;Gruppen...&apos;.
3119[NAME] hat Sie eingeladen, einer Gruppe beizutreten. 3006[NAME] hat Sie eingeladen, einer Gruppe beizutreten.
3120[INVITE] 3007[INVITE]
3121 </message> 3008 </message>
@@ -3128,11 +3015,8 @@ Die Option zum Austritt aus einer Gruppe finden Sie unter
3128 </alert> 3015 </alert>
3129 <alert name="JoinedTooManyGroupsOfficer"> 3016 <alert name="JoinedTooManyGroupsOfficer">
3130 <message name="message"> 3017 <message name="message">
3131 Sie sind bereits in zu vielen Gruppen Mitglied 3018 Sie sind bereits in zu vielen Gruppen Mitglied und können keiner weiteren beitreten. Bitte verlassen Sie eine Gruppe, bevor Sie dieser beitreten oder lehnen Sie das Angebot ab.
3132und können keiner weiteren beitreten. Bitte verlassen Sie eine Gruppe, 3019Die Option zum Austritt aus einer Gruppe finden Sie unter „Bearbeiten“ &gt; „Gruppen...“.
3133bevor Sie dieser beitreten oder lehnen Sie das Angebot ab.
3134Die Option zum Austritt aus einer Gruppe finden Sie unter
3135&apos;Bearbeiten&apos; &gt; &apos;Gruppen...&apos;.
3136[NAME] hat Sie eingeladen, einer Gruppe als Officer beizutreten. 3020[NAME] hat Sie eingeladen, einer Gruppe als Officer beizutreten.
3137[INVITE] 3021[INVITE]
3138 </message> 3022 </message>
@@ -3254,8 +3138,7 @@ Die Option zum Austritt aus einer Gruppe finden Sie unter
3254 </alert> 3138 </alert>
3255 <alert name="MessageEstate" title="Nachricht an alle auf diesem Grundstück"> 3139 <alert name="MessageEstate" title="Nachricht an alle auf diesem Grundstück">
3256 <message name="message"> 3140 <message name="message">
3257 Geben Sie eine kurze Nachricht ein, die 3141 Geben Sie eine kurze Nachricht ein, die an jede Person auf Ihrem Grundstück gesendet wird.
3258an jede Person auf Ihrem Grundstück gesendet wird.
3259 </message> 3142 </message>
3260 <option name="OK"> 3143 <option name="OK">
3261 OK 3144 OK
@@ -3266,12 +3149,9 @@ an jede Person auf Ihrem Grundstück gesendet wird.
3266 </alert> 3149 </alert>
3267 <alert name="ChangeLindenEstate" title="Linden-Grundstück ändern"> 3150 <alert name="ChangeLindenEstate" title="Linden-Grundstück ändern">
3268 <message name="message"> 3151 <message name="message">
3269 Sie sind im Begriff, ein Grundstück in Linden-Besitz (Mainland, 3152 Sie sind im Begriff, ein Grundstück in Linden-Besitz (Mainland, Teen-Raster, Orientierung usw.) zu verändern.
3270Teen-Raster, Orientierung usw.) zu verändern.
3271 3153
3272Dies ist ÄUSSERST GEFÄHRLICH, da es grundlegende Auswirkungen 3154Dies ist ÄUSSERST GEFÄHRLICH, da es grundlegende Auswirkungen auf das Benutzererlebnis hat. Auf dem Mainland werden tausende Regionen geändert, was den Spaceserver stark belastet.
3273auf das Benutzererlebnis hat. Auf dem Mainland werden tausende
3274Regionen geändert, was den Spaceserver stark belastet.
3275 3155
3276Fortfahren? 3156Fortfahren?
3277 </message> 3157 </message>
@@ -3284,14 +3164,10 @@ Fortfahren?
3284 </alert> 3164 </alert>
3285 <alert name="ChangeLindenAccess" title="Zugang zu Linden-Grundstück ändern"> 3165 <alert name="ChangeLindenAccess" title="Zugang zu Linden-Grundstück ändern">
3286 <message name="message"> 3166 <message name="message">
3287 Sie sind im Begriff, die Zugangsliste für ein Grundstück in Linden-Besitz 3167 Sie sind im Begriff, die Zugangsliste für ein Grundstück in Linden-Besitz (Mainland, Teen-Raster, Orientierung usw.) zu verändern.
3288(Mainland, Teen-Raster, Orientierung usw.) zu verändern.
3289 3168
3290Dies ist GEFÄHRLICH und sollte nur erfolgen, um Objekte/L$ 3169Dies ist GEFÄHRLICH und sollte nur erfolgen, um Objekte/L$ per Hack in und aus dem Raster zu entfernen.
3291per Hack in und aus dem Raster zu 3170Tausende Regionen werden verändert und der Spaceserver wird dadurch stark belastet.
3292entfernen.
3293Tausende Regionen werden verändert und der
3294Spaceserver wird dadurch stark belastet.
3295 </message> 3171 </message>
3296 <option name="ChangeEstate"> 3172 <option name="ChangeEstate">
3297 OK 3173 OK
@@ -3544,8 +3420,7 @@ Anzeige für [AMOUNT] L$ veröffentlichen?
3544 </alert> 3420 </alert>
3545 <alert name="MessageRegion" title="Nachricht an alle in dieser Region"> 3421 <alert name="MessageRegion" title="Nachricht an alle in dieser Region">
3546 <message name="message"> 3422 <message name="message">
3547 Geben Sie eine kurze Nachricht ein, die 3423 Geben Sie eine kurze Nachricht ein, die an jede Person in dieser Region gesendet wird.
3548an jede Person in dieser Region gesendet wird.
3549 </message> 3424 </message>
3550 <option name="OK"> 3425 <option name="OK">
3551 OK 3426 OK
@@ -3556,90 +3431,74 @@ an jede Person in dieser Region gesendet wird.
3556 </alert> 3431 </alert>
3557 <alert name="HelpRegionBlockTerraform" title="Terraformen blockieren"> 3432 <alert name="HelpRegionBlockTerraform" title="Terraformen blockieren">
3558 <message name="message"> 3433 <message name="message">
3559 Wenn diese Option aktiviert ist, können Landeigentümer Ihr Land nicht 3434 Wenn diese Option aktiviert ist, können Landeigentümer Ihr Land nicht terraformen. Ausgenommen davon ist die parzelleneigene Einstellung „Terrain bearbeiten“.
3560terraformen. Ausgenommen davon ist die parzelleneigene Einstellung &apos; Terrain bearbeiten&apos;.
3561 3435
3562Standard: aus 3436Standard: deaktiviert
3563 </message> 3437 </message>
3564 </alert> 3438 </alert>
3565 <alert name="HelpRegionBlockFly" title="Fliegen blockieren"> 3439 <alert name="HelpRegionBlockFly" title="Fliegen blockieren">
3566 <message name="message"> 3440 <message name="message">
3567 Wenn diese Option aktiviert ist, ist Fliegen in dieser Region nicht möglich, 3441 Wenn diese Option aktiviert ist, ist Fliegen in dieser Region nicht möglich, auch wenn für die Parzelle eine andere Einstellung aktiv ist.
3568auch wenn für die Parzelle eine andere Einstellung aktiv ist.
3569 3442
3570Standard: aus 3443Standard: deaktiviert
3571 </message> 3444 </message>
3572 </alert> 3445 </alert>
3573 <alert name="HelpRegionAllowDamage" title="Schaden zulassen"> 3446 <alert name="HelpRegionAllowDamage" title="Schaden zulassen">
3574 <message name="message"> 3447 <message name="message">
3575 Wenn diese Option aktiviert ist, ist das Gesundheitssystem auf 3448 Wenn diese Option aktiviert ist, ist das Gesundheitssystem auf allen Parzellen aktiviert, unabhängig von den Parzelleneinstellungen. Ist die Option links deaktiviert, können die Parzelleneigentümer das Gesundheitssystem individuell einschalten.
3576allen Parzellen aktiviert, unabhängig von den Parzelleneinstellungen. Ist die Option links
3577deaktiviert, können die Parzelleneigentümer das Gesundheitssystem
3578individuell einschalten.
3579 3449
3580Standard: aus 3450Standard: deaktiviert
3581 </message> 3451 </message>
3582 </alert> 3452 </alert>
3583 <alert name="HelpRegionAgentLimit" title="Avatar-Limit"> 3453 <alert name="HelpRegionAgentLimit" title="Avatar-Limit">
3584 <message name="message"> 3454 <message name="message">
3585 Legt die maximale Anzahl an Avataren für diese Region fest. 3455 Legt die maximale Anzahl an Avataren für diese Region fest.
3586Die Leistung hängt von der Anzahl der 3456Die Leistung hängt von der Anzahl der Avatare in der Region ab.
3587Avatare in der Region ab.
3588 3457
3589Standard: 40 3458Standard: 40
3590 </message> 3459 </message>
3591 </alert> 3460 </alert>
3592 <alert name="HelpRegionObjectBonus" title="Objektbonus"> 3461 <alert name="HelpRegionObjectBonus" title="Objektbonus">
3593 <message name="message"> 3462 <message name="message">
3594 Der Objektbonus ist ein Multiplikator für die Anzahl an zulässigen Primitiven 3463 Der Objektbonus ist ein Multiplikator für die Anzahl an zulässigen Primitiven auf einer Parzelle. Gültig sind Werte zwischen 1 und 10. „1“ erlaubt auf einer 512 qm großen Parzelle 117 Objekte. „2“ erlaubt auf einer 512 qm großen Parzelle 234 Objekte, also die doppelte Menge. Die maximale Objektanzahl in einer Region beträgt unabhängig vom Objektbonus 15.000.
3595auf einer Parzelle. Gültig sind Werte zwischen 1 und 10. &apos;1&apos; erlaubt auf einer 512 qm 3464Eine nachträglich Senkung des Objektbonus führt dazu, dass Objekte zurückgegeben oder gelöscht werden.
3596großen Parzelle 117 Objekte. &apos;2&apos; erlaubt auf einer 512 qm großen Parzelle
3597234 Objekte, also die doppelte Menge. Die maximale Objektanzahl
3598in einer Region beträgt unabhängig vom Objektbonus 15.000.
3599Eine nachträglich Senkung des Objektbonus führt dazu, dass Objekte zurückgegeben
3600oder gelöscht werden.
3601 3465
3602Standard: 1.0 3466Standard: 1.0
3603 </message> 3467 </message>
3604 </alert> 3468 </alert>
3605 <alert name="HelpRegionMaturity" title="Alterseinstufung"> 3469 <alert name="HelpRegionMaturity" title="Alterseinstufung">
3606 <message name="message"> 3470 <message name="message">
3607 Legt die Alterseinstufung für diese Region fest, wie oben 3471 Legt die Alterseinstufung für diese Region fest, wie oben im Bildschirm und in den Popup-Tipps auf der Karte gezeigt. Diese Einstellung hat auch Auswirkungen auf die Suchergebnisse – Einwohner können entscheiden, dass Ab-18-Regionen nicht angezeigt werden.
3608 im Bildschirm und in den Popup-Tipps auf der Karte gezeigt. Diese Einstellung
3609hat auch Auswirkungen auf die Suchergebnisse – Einwohner können
3610entscheiden, dass Ab-18-Regionen nicht angezeigt werden.
3611 3472
3612Es kann eine Weile dauern, bis sich diese Änderung auf 3473Es kann eine Weile dauern, bis sich diese Änderung auf die Karte auswirkt.
3613die Karte auswirkt.
3614 3474
3615Standard: Jugendfrei 3475Standard: Jugendfrei
3616 </message> 3476 </message>
3617 </alert> 3477 </alert>
3618 <alert name="HelpRegionRestrictPushObject" title="Stoßen beschränken"> 3478 <alert name="HelpRegionRestrictPushObject" title="Stoßen beschränken">
3619 <message name="message"> 3479 <message name="message">
3620 Aktivieren sie diese Option, um in der gesamten Region das Stoßen zu 3480 Aktivieren sie diese Option, um in der gesamten Region das Stoßen zu beschränken. Wenn aktiviert, können Einwohner nur von sich selbst oder vom Parzelleneigentümer gestoßen werden.
3621beschränken. Wenn aktiviert, können Einwohner nur von sich selbst
3622oder vom Parzelleneigentümer gestoßen werden.
3623(Stoßen meint die LSL-Funktion llPushObject().) 3481(Stoßen meint die LSL-Funktion llPushObject().)
3624 3482
3625Standard: aus 3483Standard: deaktiviert
3626 </message> 3484 </message>
3627 </alert> 3485 </alert>
3628 <alert name="HelpParcelChanges" title="Parzelle zusammenlegen/teilen"> 3486 <alert name="HelpParcelChanges" title="Parzelle zusammenlegen/teilen">
3629 <message name="message"> 3487 <message name="message">
3630 Dieses Kontrollkästchen steuert, ob Parzellen des Grundstückseigentümers 3488 Dieses Kontrollkästchen steuert, ob Parzellen des Grundstückseigentümers zusammengelegt bzw. unterteilt werden können. Wenn deaktiviert:
3631zusammengelegt bzw. unterteilt werden können. Wenn deaktiviert:
3632 * Nur Grundstückseigentümer bzw. –verwalter können Parzellen zusammenlegen/teilen. * Sie können nur Parzellen zusammenlegen/teilen, die dem Eigentümer oder einer Gruppe gehören, bei der sie entsprechende Gruppenrechte innehaben. 3489 * Nur Grundstückseigentümer bzw. –verwalter können Parzellen zusammenlegen/teilen. * Sie können nur Parzellen zusammenlegen/teilen, die dem Eigentümer oder einer Gruppe gehören, bei der sie entsprechende Gruppenrechte innehaben.
3633Wenn aktiviert: 3490Wenn aktiviert:
3634 * Die Parzelleneigentümer können ihre Parzellen selbst zusammenlegen/teilen. * Parzellen in Gruppeneigentum können von Mitgliedern mit den 3491 * Die Parzelleneigentümer können ihre Parzellen selbst zusammenlegen/teilen.
3635 entsprechenden Rechten zusammengelegt bzw. unterteilt werden. 3492 * Parzellen in Gruppeneigentum können von Mitgliedern mit den entsprechenden Rechten zusammengelegt bzw. unterteilt werden.
3636 Standard: aktiviert 3493
3494Standard: aktiviert
3637 </message> 3495 </message>
3638 </alert> 3496 </alert>
3639 <alert name="HelpRegionSearch" title="Nicht in Suche anzeigen"> 3497 <alert name="HelpRegionSearch" title="Nicht in Suche anzeigen">
3640 <message name="message"> 3498 <message name="message">
3641 Wenn Sie diese Option auswählen, können Parzelleneigentümer ihre Parzellen nicht in der Suche anzeigen lassen 3499 Wenn Sie diese Option auswählen, können Parzelleneigentümer ihre Parzellen nicht in der Suche anzeigen lassen
3642Standard: aus 3500
3501Standard: deaktiviert
3643 </message> 3502 </message>
3644 </alert> 3503 </alert>
3645 <alert name="HelpParcelSearch" title="Nicht in Suche anzeigen"> 3504 <alert name="HelpParcelSearch" title="Nicht in Suche anzeigen">
@@ -3652,8 +3511,7 @@ Standard: aus
3652 <alert name="RegionMaturityChange" title="Alterseinstufung der Region ändern"> 3511 <alert name="RegionMaturityChange" title="Alterseinstufung der Region ändern">
3653 <message name="message"> 3512 <message name="message">
3654 Die Alterseinstufung dieser Region wurde aktualisiert. 3513 Die Alterseinstufung dieser Region wurde aktualisiert.
3655Es kann eine Weile dauern, bis sich die Änderung auf 3514Es kann eine Weile dauern, bis sich die Änderung auf die Karte auswirkt.
3656die Karte auswirkt.
3657 </message> 3515 </message>
3658 </alert> 3516 </alert>
3659 <alert name="HelpRegionLandResell" title="Landwiederverkauf"> 3517 <alert name="HelpRegionLandResell" title="Landwiederverkauf">
@@ -3667,112 +3525,79 @@ Standard: deaktiviert
3667 </alert> 3525 </alert>
3668 <alert name="HelpEstateCovenantID" title="Vertrag-Asset-ID"> 3526 <alert name="HelpEstateCovenantID" title="Vertrag-Asset-ID">
3669 <message name="message"> 3527 <message name="message">
3670 Legt die Notizkarten-Asset-ID für den Grundstücksvertrag dieses Grundstücks 3528 Legt die Notizkarten-Asset-ID für den Grundstücksvertrag dieses Grundstücks fest.
3671fest.
3672 3529
3673Standard: 00000000-0000-0000-0000-000000000000 oder leer 3530Standard: 00000000-0000-0000-0000-000000000000 oder leer
3674 </message> 3531 </message>
3675 </alert> 3532 </alert>
3676 <alert name="HelpRegionDisableScripts" title="Skripts deaktivieren"> 3533 <alert name="HelpRegionDisableScripts" title="Skripts deaktivieren">
3677 <message name="message"> 3534 <message name="message">
3678 Schlechte Sim-Performance ist oftmals auf ein Skript zurückzuführen. Öffnen Sie 3535 Schlechte Sim-Performance ist oftmals auf ein Skript zurückzuführen. Öffnen Sie die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert für „Simulator Physics FPS“ (Simulator Physik-FPS) an.
3679die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert für &apos;Simulator Physics FPS&apos; (Simulator Physik-FPS) an. 3536Wenn der Wert unter 45 liegt, öffnen Sie den Bereich „Time“ (Zeit) ganz unten in der Statistikleiste. Wenn der Wert für „Script Time“ (Skriptzeit) 25 ms oder höher ist, klicken Sie auf „Top-Skripts“. Der Name und die Position der Skripts, die für die schlechte Performance verantwortlich sind, werden angezeigt.
3680Wenn der Wert unter 45 liegt, öffnen Sie den Bereich &apos;Time&apos; (Zeit) ganz unten in der Statistikleiste. Wenn der Wert für &quot;Script Time&quot; (Skriptzeit) 25 ms oder höher ist, klicken Sie auf &apos;Top-Skripts&apos;. Der Name und die Position der Skripts, die für die schlechte Performance verantwortlich sind, werden angezeigt. 3537Wenn Sie das Kontrollkästchen „Skripts deaktivieren“ aktivieren und auf „Übernehmen“ klicken, werden alle Skripts in der Region zeitweilig deaktiviert. Dieser Schritt ist eventuell notwendig, damit Sie an die Position des gemeldeten „Top-Skripts“ reisen können. Sobald Sie dort angekommen sind, sollten Sie das Skript auf die Ursache des Problems hin untersuchen. Möglicherweise müssen Sie sich an den Skript-Eigentümer wenden oder das Objekt löschen bzw. zurückgeben. Um die Skripte in der Region wieder zu aktivieren, deaktivieren Sie „Skript deaktivieren“ und klicken Sie auf „Übernehmen“.
3681 Wenn Sie das Kontrollkästchen &apos;Skripts deaktivieren&apos; aktivieren und auf &apos;Übernehmen&apos; klicken, werden alle Skripts in der Region zeitweilig deaktiviert. Dieser Schritt ist eventuell notwendig, damit Sie an die Position des gemeldeten &apos;Top-Skripts&apos; reisen können. Sobald Sie dort angekommen sind, sollten Sie das Skript auf die Ursache des Problems hin untersuchen. Möglicherweise müssen Sie sich an den Skript-Eigentümer wenden oder das Objekt löschen bzw. zurückgeben. Um die Skripte in der Region wieder zu aktivieren, deaktivieren Sie &apos;Skript deaktivieren&apos; und klicken Sie auf &apos;Übernehmen&apos;. 3538
3682 Standard: aus 3539Standard: deaktiviert
3683 </message> 3540 </message>
3684 </alert> 3541 </alert>
3685 <alert name="HelpRegionDisableCollisions" title="Kollisionen deaktivieren"> 3542 <alert name="HelpRegionDisableCollisions" title="Kollisionen deaktivieren">
3686 <message name="message"> 3543 <message name="message">
3687 Schlechte Sim-Performance ist oftmals auf physische Objekte zurückzuführen. 3544 Schlechte Sim-Performance ist oftmals auf physische Objekte zurückzuführen.
3688Öffnen Sie die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert &apos;Simulator 3545Öffnen Sie die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert „Simulator Physics FPS“ an. Liegt dieser unter 45, öffnen Sie unten in der Statistikleiste den „Time“-Bereich. Liegt die „Sim Time (Physics)“ bei 20 ms oder darüber, klicken Sie auf „Top-Kollisionsobjekte“.
3689Physics FPS&apos; an. Liegt dieser unter 45, öffnen Sie unten in der 3546Der Name und der Standort der physischen Objekte, die das Problem verursachen, werden angezeigt.
3690Statistikleiste den &apos;Time&apos;-Bereich. Liegt die &apos;Sim Time (Physics)&apos;
3691bei 20 ms oder darüber, klicken Sie auf &apos;Top-Kollisionsobjekte&apos;.
3692Der Name und der Standort der physischen Objekte, die das
3693Problem verursachen, werden angezeigt.
3694 3547
3695Wenn Sie das Kontrollkästchen &apos;Kollisionen deaktivieren&apos; aktivieren und auf 3548Wenn Sie das Kontrollkästchen „Kollisionen deaktivieren“ aktivieren und auf „Übernehmen“ klicken, werden alle Objekt-Objekt-Kollisionen in der Region zeitweilig deaktiviert. Dieser Schritt ist eventuell notwendig, damit Sie an die Position des gemeldeten „Top-Kollisionsobjekts“ reisen können. Überprüfen Sie das Objekt an der angegebenen Position.
3696&apos;Übernehmen&apos; klicken, werden alle Objekt-Objekt-Kollisionen in der Region zeitweilig deaktiviert. Dieser Schritt 3549Kollidiert es ständig mit anderen Objekten? Wenden Sie sich eventuell an den Eigentümer des Objekts, löschen Sie es oder geben Sie es zurück.
3697ist eventuell notwendig, damit Sie an die Position des gemeldeten 3550Deaktivieren Sie die Option „Kollisionen deaktivieren“ und klicken Sie auf „Übernehmen“, um Kollisionen in dieser Region wieder zu aktivieren.
3698&apos;Top-Kollisionsobjekts&apos; reisen können. Überprüfen Sie das Objekt an der angegebenen Position.
3699Kollidiert es ständig mit anderen Objekten? Wenden Sie sich
3700eventuell an den Eigentümer des Objekts, löschen Sie es oder geben Sie es zurück.
3701Deaktivieren Sie die Option &apos;Kollisionen deaktivieren&apos; und klicken Sie auf &apos;Ãœbernehmen&apos;,
3702um Kollisionen in dieser Region wieder zu aktivieren.
3703 3551
3704Standard: aus 3552Standard: deaktiviert
3705 </message> 3553 </message>
3706 </alert> 3554 </alert>
3707 <alert name="HelpRegionDisablePhysics" title="Physik deaktivieren"> 3555 <alert name="HelpRegionDisablePhysics" title="Physik deaktivieren">
3708 <message name="message"> 3556 <message name="message">
3709 Das Deaktivieren der Physik ähnelt dem Deaktivieren von Kollisionen, 3557 Das Deaktivieren der Physik ähnelt dem Deaktivieren von Kollisionen, außer dass die gesamte Physiksimulation ausgeschaltet wird. Das hat nicht nur zur Folge, dass Objekte nicht mehr kollidieren, sondern dass Avatare sich nicht mehr bewegen können.
3710außer dass die gesamte Physiksimulation ausgeschaltet wird. Das hat nicht nur zur Folge, dass
3711Objekte nicht mehr kollidieren, sondern dass Avatare sich nicht mehr bewegen können.
3712 3558
3713Diese Option sollte nur verwendet werden, wenn das Deaktivieren 3559Diese Option sollte nur verwendet werden, wenn das Deaktivieren von Kollisionen keine ausreichende Leistungssteigerung bringt, um Physikprobleme in der Region oder die Top-Kollisionsobjekte zu erkennen.
3714von Kollisionen keine ausreichende Leistungssteigerung bringt,
3715um Physikprobleme in der Region oder die Top-Kollisionsobjekte zu erkennen.
3716 3560
3717Schalten Sie die Physiksimulation hinterher wieder ein. Andernfalls 3561Schalten Sie die Physiksimulation hinterher wieder ein. Andernfalls können sich Avatare nicht mehr bewegen.
3718können sich Avatare nicht mehr bewegen.
3719 3562
3720Standard: aus 3563Standard: deaktiviert
3721 </message> 3564 </message>
3722 </alert> 3565 </alert>
3723 <alert name="HelpRegionTopColliders" title="Top-Kollisionsobjekte"> 3566 <alert name="HelpRegionTopColliders" title="Top-Kollisionsobjekte">
3724 <message name="message"> 3567 <message name="message">
3725 Zeigt eine Liste der Objekte mit den potenziell meisten 3568 Zeigt eine Liste der Objekte mit den potenziell meisten Objekt-Objekt-Kollisionen an. Diese Objekte können die Leistung beeinträchtigen. Wählen Sie „Ansicht“ &gt; „Statistikleiste“ aus und sehen Sie unter „Simulator“ &gt; „Time“ &gt; „Sim Time (Physics)“ nach, ob die Physikberechnung länger als 20 ms dauert.
3726Objekt-Objekt-Kollisionen an. Diese Objekte können
3727die Leistung beeinträchtigen. Wählen Sie &apos;Ansicht&apos; &gt; &apos;Statistikleiste&apos; aus und
3728sehen Sie unter &apos;Simulator&apos; &gt; &apos;Time&apos; &gt; &apos;Sim Time (Physics)&apos; nach,
3729ob die Physikberechnung länger als 20 ms dauert.
3730 </message> 3569 </message>
3731 </alert> 3570 </alert>
3732 <alert name="HelpRegionTopScripts" title="Top-Skripts"> 3571 <alert name="HelpRegionTopScripts" title="Top-Skripts">
3733 <message name="message"> 3572 <message name="message">
3734 Zeigt eine Liste der Objekte an, die die meiste Zeit benötigen um 3573 Zeigt eine Liste der Objekte an, die die meiste Zeit benötigen, um LSL-Skripts auszuführen. Diese Objekte können die Leistung beeinträchtigen.
3735LSL-Skripts auszuführen. Diese Objekte können die Leistung beeinträchtigen. 3574Wählen Sie „Ansicht“ &gt; „Statistikleiste“ und sehen Sie unter „Simulator“ &gt; „Time“ &gt; „Script Time“ nach, ob mehr als 25 ms für Skripts benötigt werden.
3736Wählen Sie &apos;Ansicht&apos; &gt; &apos;Statistikleiste&apos; und
3737sehen Sie unter &apos;Simulator&apos; &gt; &apos;Time&apos; &gt; &apos;Script Time&apos; nach,
3738ob mehr als 25 ms für Skripts benötigt werden.
3739 </message> 3575 </message>
3740 </alert> 3576 </alert>
3741 <alert name="HelpRegionRestart" title="Region neu starten"> 3577 <alert name="HelpRegionRestart" title="Region neu starten">
3742 <message name="message"> 3578 <message name="message">
3743 Starten Sie den Serverprozess für diese Region nach der 3579 Starten Sie den Serverprozess für diese Region nach der 2-Minuten-Warnung neu. Die Verbindung aller Einwohner in dieser Region wird getrennt. Die Region wird gespeichert und sollte nach 90 Sekunden wieder verfügbar sein.
37442-Minuten-Warnung neu. Die Verbindung aller Einwohner in dieser Region wird
3745getrennt. Die Region wird gespeichert und sollte nach
374690 Sekunden wieder verfügbar sein.
3747 3580
3748Der Neustart der Region behebt die meisten Leistungs- 3581Der Neustart der Region behebt die meisten Leistungs-probleme, sollte aber nur nach Anweisung erfolgen.
3749probleme, sollte aber nur nach Anweisung erfolgen.
3750 </message> 3582 </message>
3751 </alert> 3583 </alert>
3752 <alert name="HelpRegionWaterHeight" title="Wasserhöhe"> 3584 <alert name="HelpRegionWaterHeight" title="Wasserhöhe">
3753 <message name="message"> 3585 <message name="message">
3754 Die Höhe der Wasserlinie in Metern. Liegt 3586 Die Höhe der Wasserlinie in Metern. Liegt dieser Wert unter 20 und haben Sie Wasser nahe am Rand der Welt oder „offenes“ Wasser definiert, wird eine deutliche Lücke sichtbar.
3755dieser Wert unter 20 und haben Sie Wasser nahe am Rand der
3756Welt oder &apos;offenes&apos; Wasser definiert, wird eine
3757deutliche Lücke sichtbar.
3758 3587
3759Standard: 20 3588Standard: 20
3760 </message> 3589 </message>
3761 </alert> 3590 </alert>
3762 <alert name="HelpRegionTerrainRaise" title="Obere Terraingrenze"> 3591 <alert name="HelpRegionTerrainRaise" title="Obere Terraingrenze">
3763 <message name="message"> 3592 <message name="message">
3764 Der maximale Betrag in Metern, um den Parzelleneigentümer 3593 Der maximale Betrag in Metern, um den Parzelleneigentümer ihr Terrain über die Standardhöhe des „geformten“ Terrains erhöhen können.
3765ihr Terrain über die Standardhöhe des &apos;geformten&apos; Terrains
3766erhöhen können.
3767 3594
3768Standard: 4 3595Standard: 4
3769 </message> 3596 </message>
3770 </alert> 3597 </alert>
3771 <alert name="HelpRegionTerrainLower" title="Untere Terraingrenze"> 3598 <alert name="HelpRegionTerrainLower" title="Untere Terraingrenze">
3772 <message name="message"> 3599 <message name="message">
3773 Der maximale Betrag in Metern, um den Parzelleneigentümer 3600 Der maximale Betrag in Metern, um den Parzelleneigentümer ihr Terrain unter die Standardhöhe des „geformten“ Terrains absenken können.
3774ihr Terrain unter die Standardhöhe des &apos;geformten&apos; Terrains
3775absenken können.
3776 3601
3777Standard: -4 3602Standard: -4
3778 </message> 3603 </message>
@@ -3784,124 +3609,89 @@ Standard: -4
3784 </alert> 3609 </alert>
3785 <alert name="HelpRegionDownloadRaw" title="RAW-Terrain herunterladen"> 3610 <alert name="HelpRegionDownloadRaw" title="RAW-Terrain herunterladen">
3786 <message name="message"> 3611 <message name="message">
3787 Mit dieser Schaltfläche laden Sie eine Datei herunter, welche 3612 Mit dieser Schaltfläche laden Sie eine Datei herunter, welche die Höhendaten, Maße, den Verkaufsstatus der Parzelle und einige Parzellenrechte für diese Region enthält. Wenn Sie diese Datei in einem Programm wie Photoshop öffnen, müssen Sie die Bilddaten eingeben. Diese sind: RGB, 256x256 mit 13 Kanälen. Anders lässt sich diese Terraindatei nicht öffnen.
3788die Höhendaten, Maße, den Verkaufsstatus der Parzelle und einige
3789Parzellenrechte für diese Region enthält. Wenn Sie diese Datei in einem Programm wie
3790Photoshop öffnen, müssen Sie die Bilddaten eingeben. Diese
3791sind: RGB, 256x256 mit 13 Kanälen. Anders lässt sich diese
3792Terraindatei nicht öffnen.
3793 3613
3794Weitere Informationen zur Bearbeitung der Höhendaten der Region enthält die F1-Hilfe. 3614Weitere Informationen zur Bearbeitung der Höhendaten der Region enthält die F1-Hilfe.
3795 </message> 3615 </message>
3796 </alert> 3616 </alert>
3797 <alert name="HelpRegionUseEstateSun" title="Grundstücksonne verwenden"> 3617 <alert name="HelpRegionUseEstateSun" title="Grundstücksonne verwenden">
3798 <message name="message"> 3618 <message name="message">
3799 Aktivieren Sie diese Option, um in dieser Region denselben 3619 Aktivieren Sie diese Option, um in dieser Region denselben Sonnenstand wie auf dem restlichen Grundstück einzustellen.
3800Sonnenstand wie auf dem restlichen Grundstück einzustellen.
3801 3620
3802Standard: ein 3621Standard: aktiviert
3803 </message> 3622 </message>
3804 </alert> 3623 </alert>
3805 <alert name="HelpRegionFixedSun" title="Sonne fest"> 3624 <alert name="HelpRegionFixedSun" title="Sonne fest">
3806 <message name="message"> 3625 <message name="message">
3807 Aktivieren Sie diese Option, um den Sonnenstand auf 3626 Aktivieren Sie diese Option, um den Sonnenstand auf die im Regler definierte Position festzulegen und die Animation auszuschalten.
3808die im Regler definierte Position festzulegen und die Animation auszuschalten.
3809 3627
3810Standard: aus 3628Standard: deaktiviert
3811 </message> 3629 </message>
3812 </alert> 3630 </alert>
3813 <alert name="HelpRegionBakeTerrain" title="Terrain formen"> 3631 <alert name="HelpRegionBakeTerrain" title="Terrain formen">
3814 <message name="message"> 3632 <message name="message">
3815 Mit dieser Schaltfläche speichern Sie die aktuelle Terrain-Form 3633 Mit dieser Schaltfläche speichern Sie die aktuelle Terrain-Form als neuen Standard für die Region. Nach der Formung können Sie und andere das Land mit der Option „Terrain bearbeiten“ &gt; „Zurücksetzen“ in den ursprünglichen Zustand zurückversetzen. Das geformte Terrain ist auch das Zentrum für die oberen und unteren Terraingrenzen.
3816als neuen Standard für die Region. Nach der Formung können Sie und andere
3817das Land mit der Option &apos;Terrain bearbeiten&apos; &gt; &apos;Zurücksetzen&apos;
3818in den ursprünglichen Zustand zurückversetzen. Das geformte Terrain ist auch das Zentrum
3819für die oberen und unteren Terraingrenzen.
3820 </message> 3634 </message>
3821 </alert> 3635 </alert>
3822 <alert name="HelpEstateEstateManager" title="Grundstücksverwalter"> 3636 <alert name="HelpEstateEstateManager" title="Grundstücksverwalter">
3823 <message name="message"> 3637 <message name="message">
3824 Ein Grundstücksverwalter ist ein Einwohner, dem Sie die Kontrolle 3638 Ein Grundstücksverwalter ist ein Einwohner, dem Sie die Kontrolle über die Regions- und Grundstückseinstellungen übertragen haben. Ein Grundstücksverwalter kann alle Einstellungen ändern, außer das Hochladen, Herunterladen und Formen von Terrain. Vor allem kann er Einwohner auf dem Grundstück erlauben und davon verbannen.
3825über die Regions- und Grundstückseinstellungen übertragen haben. Ein Grundstücksverwalter
3826kann alle Einstellungen ändern, außer das Hochladen,
3827Herunterladen und Formen von Terrain. Vor allem kann er Einwohner
3828auf dem Grundstück erlauben und davon verbannen.
3829 3639
3830Nur der Eigentümer kann den Grundstücksverwalter 3640Nur der Eigentümer kann den Grundstücksverwalter bestimmen und entlassen. Der Verwalter hat dieses Recht nicht. Wählen Sie nur vertrauenswürdige Einwohner als Grundstücksverwalter, da Sie letztlich für deren Handlungen verantwortlich sind.
3831bestimmen und entlassen. Der Verwalter hat dieses Recht nicht. Wählen Sie nur vertrauenswürdige
3832Einwohner als Grundstücksverwalter, da Sie letztlich für
3833deren Handlungen verantwortlich sind.
3834 </message> 3641 </message>
3835 </alert> 3642 </alert>
3836 <alert name="HelpEstateUseGlobalTime" title="Globale Zeit verwenden"> 3643 <alert name="HelpEstateUseGlobalTime" title="Globale Zeit verwenden">
3837 <message name="message"> 3644 <message name="message">
3838 Aktivieren Sie diese Option, um auf Ihrem Grundstück 3645 Aktivieren Sie diese Option, um auf Ihrem Grundstück denselben Sonnenstand wie auf dem Linden-„Mainland“ einzustellen.
3839denselben Sonnenstand wie auf dem Linden-&apos;Mainland&apos;
3840einzustellen.
3841 3646
3842Standard: ein 3647Standard: aktiviert
3843 </message> 3648 </message>
3844 </alert> 3649 </alert>
3845 <alert name="HelpEstateFixedSun" title="Sonne fest"> 3650 <alert name="HelpEstateFixedSun" title="Sonne fest">
3846 <message name="message"> 3651 <message name="message">
3847 Aktivieren Sie diese Option, um den Sonnenstand auf 3652 Aktivieren Sie diese Option, um den Sonnenstand auf die im Regler definierte Position festzulegen und die Animation auszuschalten.
3848die im Regler definierte Position festzulegen und die Animation auszuschalten.
3849 </message> 3653 </message>
3850 </alert> 3654 </alert>
3851 <alert name="HelpEstateExternallyVisible" title="Öffentlich"> 3655 <alert name="HelpEstateExternallyVisible" title="Öffentlich">
3852 <message name="message"> 3656 <message name="message">
3853 Aktivieren Sie diese Option, um Einwohnern den Zugang zu diesem Grundstück zu 3657 Aktivieren Sie diese Option, um Einwohnern den Zugang zu diesem Grundstück zu erlauben, ohne auf der Zugangsliste zu stehen.
3854erlauben, ohne auf der Zugangsliste zu stehen.
3855 3658
3856Standard: ein 3659Standard: aktiviert
3857 </message> 3660 </message>
3858 </alert> 3661 </alert>
3859 <alert name="HelpEstateAllowDirectTeleport" title="Direktteleport zulassen"> 3662 <alert name="HelpEstateAllowDirectTeleport" title="Direktteleport zulassen">
3860 <message name="message"> 3663 <message name="message">
3861 Wenn aktiviert, können sich Einwohner an jede Stelle auf 3664 Wenn aktiviert, können sich Einwohner an jede Stelle auf Ihrem Grundstück teleportieren. Wenn deaktiviert, werden Einwohner zum nächstgelegenen Telehub teleportiert.
3862Ihrem Grundstück teleportieren. Wenn deaktiviert, werden Einwohner
3863zum nächstgelegenen Telehub teleportiert.
3864 3665
3865Standard: aus 3666Standard: deaktiviert
3866 </message> 3667 </message>
3867 </alert> 3668 </alert>
3868 <alert name="HelpEstateAllowResident" title="Zugang erlauben"> 3669 <alert name="HelpEstateAllowResident" title="Zugang erlauben">
3869 <message name="message"> 3670 <message name="message">
3870 Der Zugang zu diesem Grundstück wird auf die hier 3671 Der Zugang zu diesem Grundstück wird auf die hier aufgeführten Einwohner und Gruppen beschränkt. Diese Einstellung ist nur verfügbar, wenn „Öffentlich“ deaktiviert ist.
3871aufgeführten Einwohner und Gruppen beschränkt. Diese Einstellung ist
3872nur verfügbar, wenn &apos;Öffentlich&apos;
3873deaktiviert ist.
3874 </message> 3672 </message>
3875 </alert> 3673 </alert>
3876 <alert name="HelpEstateAllowGroup" title="Gruppenzugang erlauben"> 3674 <alert name="HelpEstateAllowGroup" title="Gruppenzugang erlauben">
3877 <message name="message"> 3675 <message name="message">
3878 Der Zugang zu diesem Grundstück wird auf die hier 3676 Der Zugang zu diesem Grundstück wird auf die hier aufgeführten Einwohner und Gruppen beschränkt. Diese Einstellung ist nur verfügbar, wenn „Öffentlich“ deaktiviert ist.
3879aufgeführten Einwohner und Gruppen beschränkt. Diese Einstellung ist
3880nur verfügbar, wenn &apos;Öffentlich&apos;
3881deaktiviert ist.
3882 </message> 3677 </message>
3883 </alert> 3678 </alert>
3884 <alert name="HelpEstateAbuseEmailAddress" title="E-Mail-Adresse für Missbrauchsmeldungen"> 3679 <alert name="HelpEstateAbuseEmailAddress" title="E-Mail-Adresse für Missbrauchsmeldungen">
3885 <message name="message"> 3680 <message name="message">
3886 Geben Sie hier eine E-Mail-Adresse ein, an die 3681 Geben Sie hier eine E-Mail-Adresse ein, an die Missbrauchsmeldungen von diesem Grundstück gesendet werden.
3887Missbrauchsmeldungen von diesem Grundstück gesendet werden. 3682Wenn dieses Feld leer ist, werden Missbrauchsmeldungen nur an Linden Lab gesendet.
3888Wenn dieses Feld leer ist, werden Missbrauchsmeldungen
3889nur an Linden Lab gesendet.
3890 </message> 3683 </message>
3891 </alert> 3684 </alert>
3892 <alert name="HelpEstateBanResident" title="Zugang verweigern"> 3685 <alert name="HelpEstateBanResident" title="Zugang verweigern">
3893 <message name="message"> 3686 <message name="message">
3894 Einwohnern auf dieser Liste wird der Zugang zum Grundstück verwehrt, 3687 Einwohnern auf dieser Liste wird der Zugang zum Grundstück verwehrt, unabhängig von etwaigen anderen Einstellungen.
3895unabhängig von etwaigen anderen Einstellungen.
3896 </message> 3688 </message>
3897 </alert> 3689 </alert>
3898 <alert name="HelpEstateVoiceChat" title="Voice-Chat erlauben"> 3690 <alert name="HelpEstateVoiceChat" title="Voice-Chat erlauben">
3899 <message name="message"> 3691 <message name="message">
3900 Die Parzellen auf diesem Grundstück können über eigene Voice- 3692 Die Parzellen auf diesem Grundstück können über eigene Voice-Channel verfügen, die es Einwohnern ermöglichen, sich mit anderen Personen in der Nähe zu unterhalten.
3901Channel verfügen, die es Einwohnern ermöglichen, sich mit
3902anderen Personen in der Nähe zu unterhalten.
3903 3693
3904Standard: aus 3694Standard: deaktiviert
3905 </message> 3695 </message>
3906 </alert> 3696 </alert>
3907 <alert name="VoiceVersionMismatch" title="Falsche Voice-Version"> 3697 <alert name="VoiceVersionMismatch" title="Falsche Voice-Version">
@@ -3911,7 +3701,7 @@ Standard: aus
3911 </alert> 3701 </alert>
3912 <alert name="HelpEstateCovenant" title="Grunstücksvertrag"> 3702 <alert name="HelpEstateCovenant" title="Grunstücksvertrag">
3913 <message name="message"> 3703 <message name="message">
3914 Ein Grundstücksvertrag ermöglicht es Ihnen, Grundstücksparzellen zu verkaufen. Ohne Vertrag können Sie kein Land verkaufen. Wenn Sie keine Regeln festlegen oder Käufern vor dem Kauf keine anderen Informationen über das Land bereitstellen möchten, können Sie die Vertrags-Notizkarte auch leer lassen. Ein Vertrag kann Regeln und Richtlinien, kulturelle Informationen oder einfach nur Ihre eigenen Erwartungen bezüglich der Landnutzung durch den Käufer enthalten. Das kann Zoning, Baubeschränkungen, Zahloptionen und alle möglichen anderen Informationen betreffen, die der neue Eigentümer Ihrer Meinung nach kennen und akzeptieren sollte. Der Käufer muss dem Vertrag durch Auswahl dieses Kontrollkästchens zustimmen, bevor der Kauf abgeschlossen werden kann. Grundstücksverträge sind jederzeit unter &apos;Land-Info&apos; für jede Parzelle einsehbar, für die ein Vertrag definiert wurde. 3704 Ein Grundstücksvertrag ermöglicht es Ihnen, Grundstücksparzellen zu verkaufen. Ohne Vertrag können Sie kein Land verkaufen. Wenn Sie keine Regeln festlegen oder Käufern vor dem Kauf keine anderen Informationen über das Land bereitstellen möchten, können Sie die Vertrags-Notizkarte auch leer lassen. Ein Vertrag kann Regeln und Richtlinien, kulturelle Informationen oder einfach nur Ihre eigenen Erwartungen bezüglich der Landnutzung durch den Käufer enthalten. Das kann Zoning, Baubeschränkungen, Zahloptionen und alle möglichen anderen Informationen betreffen, die der neue Eigentümer Ihrer Meinung nach kennen und akzeptieren sollte. Der Käufer muss dem Vertrag durch Auswahl dieses Kontrollkästchens zustimmen, bevor der Kauf abgeschlossen werden kann. Grundstücksverträge sind jederzeit unter „Land-Info“ für jede Parzelle einsehbar, für die ein Vertrag definiert wurde.
3915 </message> 3705 </message>
3916 </alert> 3706 </alert>
3917 <alert name="BuyObjectOneOnly" title="Objekte können nicht gekauft werden"> 3707 <alert name="BuyObjectOneOnly" title="Objekte können nicht gekauft werden">
@@ -4068,9 +3858,7 @@ Geben Sie Ihr Kennwort erneut ein und klicken Sie auf OK.
4068 <alert name="SetPickLocation"> 3858 <alert name="SetPickLocation">
4069 <message name="message"> 3859 <message name="message">
4070 Hinweis: 3860 Hinweis:
4071Sie haben die Position dieser 3861Sie haben die Position dieser Auswahl aktualisiert, aber die anderen Daten behalten ihre ursprünglichen Werte.
4072Auswahl aktualisiert, aber die anderen
4073Daten behalten ihre ursprünglichen Werte.
4074 </message> 3862 </message>
4075 <option name="OK"> 3863 <option name="OK">
4076 OK 3864 OK
@@ -4078,7 +3866,7 @@ Daten behalten ihre ursprünglichen Werte.
4078 </alert> 3866 </alert>
4079 <alert name="MoveInventoryFromObject"> 3867 <alert name="MoveInventoryFromObject">
4080 <message name="message"> 3868 <message name="message">
4081 Sie haben &apos;nicht kopierfähige&apos; Inventarobjekte ausgewählt. 3869 Sie haben „nicht kopierfähige“ Inventarobjekte ausgewählt.
4082Diese Objekte werden nicht kopiert, sondern in Ihr Inventar verschoben. 3870Diese Objekte werden nicht kopiert, sondern in Ihr Inventar verschoben.
4083 3871
4084Inventarobjekt(e) verschieben? 3872Inventarobjekt(e) verschieben?
@@ -4095,10 +3883,8 @@ Inventarobjekt(e) verschieben?
4095 </alert> 3883 </alert>
4096 <alert name="MoveInventoryFromScriptedObject"> 3884 <alert name="MoveInventoryFromScriptedObject">
4097 <message name="message"> 3885 <message name="message">
4098 Sie haben &apos;nicht kopierfähige&apos; Inventarobjekte ausgewählt. Diese Objekte 3886 Sie haben „nicht kopierfähige“ Inventarobjekte ausgewählt. Diese Objekte werden nicht kopiert, sondern in Ihr Inventar verschoben.
4099werden nicht kopiert, sondern in Ihr Inventar verschoben. 3887Da es sich um ein geskriptetes Objekt handelt, geht die Skriptfunktion beim Verschieben in das Inventar möglicherweise verloren.
4100Da es sich um ein geskriptetes Objekt handelt, geht
4101die Skriptfunktion beim Verschieben in das Inventar möglicherweise verloren.
4102 3888
4103Inventarobjekt(e) verschieben? 3889Inventarobjekt(e) verschieben?
4104 </message> 3890 </message>
@@ -4114,11 +3900,10 @@ Inventarobjekt(e) verschieben?
4114 </alert> 3900 </alert>
4115 <alert name="ClickActionNotPayable"> 3901 <alert name="ClickActionNotPayable">
4116 <message name="message"> 3902 <message name="message">
4117 Achtung: Die Klick-Aktion &apos;Objekt bezahlen&apos; wurde definiert, sie 3903 Achtung: Die Klick-Aktion „Objekt bezahlen“ wurde definiert, sie funktioniert aber nur, wenn ein Skript mit einem money() Ereignis hinzugefügt wird.
4118funktioniert aber nur, wenn ein Skript mit einem money() Ereignis hinzugefügt wird.
4119 </message> 3904 </message>
4120 <ignore name="ignore"> 3905 <ignore name="ignore">
4121 Beim Einrichten von Events mit &apos;Objektbezahlung&apos; ohne Geld 3906 Beim Einrichten von Events mit „Objektbezahlung“ ohne Geld
4122 </ignore> 3907 </ignore>
4123 </alert> 3908 </alert>
4124 <alert name="OpenObjectCannotCopy"> 3909 <alert name="OpenObjectCannotCopy">
@@ -4184,34 +3969,28 @@ funktioniert aber nur, wenn ein Skript mit einem money() Ereignis hinzugefügt w
4184 </alert> 3969 </alert>
4185 <alert name="HelpReportAbuseEmailLL"> 3970 <alert name="HelpReportAbuseEmailLL">
4186 <message name="message"> 3971 <message name="message">
4187 Verwenden Sie dieses Tool, um Verletzungen der Servicebedingungen 3972 Verwenden Sie dieses Tool, um Verletzungen der Servicebedingungen und Community-Standards zu melden. Siehe:
4188und Community-Standards zu melden. Siehe:
4189 3973
4190http://secondlife.com/corporate/tos.php 3974http://secondlife.com/corporate/tos.php
4191http://secondlife.com/corporate/cs.php 3975http://secondlife.com/corporate/cs.php
4192 3976
4193Alle gemeldeten Verletzungen der Servicebedingungen und Community-Standards 3977Alle gemeldeten Verletzungen der Servicebedingungen und Community-Standards werden geprüft und geklärt Sie können den Prozess im Incident Report (Vorfallsbericht) verfolgen:
4194werden geprüft und geklärt. Sie können den Prozess im
4195Police Blotter verfolgen:
4196 3978
4197http://secondlife.com/community/blotter.php 3979http://secondlife.com/support/incidentreport.php
4198 </message> 3980 </message>
4199 </alert> 3981 </alert>
4200 <alert name="HelpReportAbuseEmailEO"> 3982 <alert name="HelpReportAbuseEmailEO">
4201 <message name="message"> 3983 <message name="message">
4202 WICHTIG: Diese Meldung wird an den Eigentümer der Region gesendet, in der Sie sich gerade befinden, nicht an Linden Lab. 3984 WICHTIG: Diese Meldung wird an den Eigentümer der Region gesendet, in der Sie sich gerade befinden, nicht an Linden Lab.
4203- 3985-
4204Als besonderen Service für Einwohner und Besucher übernimmt der Eigentümer dieser Region die Bearbeitung aller anfallenden Meldungen. Von diesem Standort aus eingereichte Meldungen werden nicht von Linden Lab bearbeitet. Der Eigentümer der Region bearbeitet Meldungen auf Grundlage der Richtlinien, die im für diese Region geltenden Grundstücksvertrag festgelegt sind. (Den Vertrag können Sie unter &apos;Welt&apos; &gt; &apos;Land-Info&apos; einsehen.) 3986Als besonderen Service für Einwohner und Besucher übernimmt der Eigentümer dieser Region die Bearbeitung aller anfallenden Meldungen. Von diesem Standort aus eingereichte Meldungen werden nicht von Linden Lab bearbeitet. Der Eigentümer der Region bearbeitet Meldungen auf Grundlage der Richtlinien, die im für diese Region geltenden Grundstücksvertrag festgelegt sind. (Den Vertrag können Sie unter „Welt“ &gt; „Land-Info“ einsehen.)
4205- 3987-
4206Das Resultat, das sich aus dieser Meldung ergibt, betrifft nur diese Region; der Einwohnerzugang zu anderen Bereichen von Second Life ist davon nicht betroffen. Nur Linden Lab kann den Zugang zu Second Life beschränken. 3988Das Resultat, das sich aus dieser Meldung ergibt, betrifft nur diese Region; der Einwohnerzugang zu anderen Bereichen von Second Life ist davon nicht betroffen. Nur Linden Lab kann den Zugang zu Second Life beschränken.
4207 </message> 3989 </message>
4208 </alert> 3990 </alert>
4209 <alert name="HelpReportBug"> 3991 <alert name="HelpReportBug">
4210 <message name="message"> 3992 <message name="message">
4211 Verwenden Sie dieses Tool *nur*, um technische Features zu melden, 3993 Verwenden Sie dieses Tool *nur*, um technische Features zu melden, die nicht wie beschrieben oder erwartet funktionieren. Bitte machen Sie so viele Angaben wie möglich. Sie können auf die automatische Antwort-E-Mail antworten, um Ihre Meldung noch zu ergänzen.
4212die nicht wie beschrieben oder erwartet funktionieren. Bitte machen
4213Sie so viele Angaben wie möglich. Sie können auf die automatische
4214Antwort-E-Mail antworten, um Ihre Meldung noch zu ergänzen.
4215Alle gemeldeten Fehler werden geprüft und bewertet. Sie erhalten keine persönliche Antwort auf Ihre E-Mail. 3994Alle gemeldeten Fehler werden geprüft und bewertet. Sie erhalten keine persönliche Antwort auf Ihre E-Mail.
4216- 3995-
4217Bei technischen Problemen wenden Sie sich bitte an den Support unter: 3996Bei technischen Problemen wenden Sie sich bitte an den Support unter:
@@ -4259,33 +4038,29 @@ Eine genaue Zusammenfassung hilft uns, Fehler schneller zu beseitigen.
4259 <alert name="HelpReportAbuseDetailsEmpty"> 4038 <alert name="HelpReportAbuseDetailsEmpty">
4260 <message name="message"> 4039 <message name="message">
4261 Bitte geben Sie eine ausführliche Beschreibung des Vorfalls ein. 4040 Bitte geben Sie eine ausführliche Beschreibung des Vorfalls ein.
4262Eine möglichst genaue Beschreibung mit Namen und 4041Eine möglichst genaue Beschreibung mit Namen und Einzelheiten hilft uns, Fälle von Missbrauch zu ahnden.
4263Einzelheiten
4264hilft uns, Fälle von Missbrauch zu ahnden.
4265 </message> 4042 </message>
4266 </alert> 4043 </alert>
4267 <alert name="HelpReportBugDetailsEmpty"> 4044 <alert name="HelpReportBugDetailsEmpty">
4268 <message name="message"> 4045 <message name="message">
4269 Bitte geben Sie eine ausführliche Fehlerbeschreibung ein. 4046 Bitte geben Sie eine ausführliche Fehlerbeschreibung ein.
4270Eine möglichst genaue Beschreibung mit Schritten zur Reproduktion des Fehlers 4047Eine möglichst genaue Beschreibung mit Schritten zur Reproduktion des Fehlers hilft uns, Fehler schneller zu beseitigen.
4271hilft uns,
4272Fehler schneller zu beseitigen.
4273 </message> 4048 </message>
4274 </alert> 4049 </alert>
4275 <alert name="HelpReportAbuseContainsCopyright"> 4050 <alert name="HelpReportAbuseContainsCopyright">
4276 <message name="message"> 4051 <message name="message">
4277 Sehr geehrte(r) Einwohner(in), 4052 Sehr geehrte(r) Einwohner(in),
4053
4054Sie melden eine Urheberrechtsverletzung. Sind Sie wirklich sicher, dass Sie eine Verletzung des Urheberrechts melden möchten?
4278 4055
4279achten Sie bei der Meldung einer Urheberrechtsverletzung darauf, dass Sie dabei korrekt vorgehen: 40561. Missbrauch melden. Wenn Sie der Meinung sind, ein Einwohner nutzt das Berechtigungssystem von Second Life auf unerlaubte Weise zu seinem Vorteil aus, indem er zum Beispiel einen CopyBot oder ähnliche Kopiertools verwendet und damit eine Urheberrechtsverletzung begeht, können Sie diesen Missbrauch melden. Das Missbrauchsteam untersucht etwaige Verstöße gegen die Second Life Community Standards oder die Nutzungsbedingungen und verhängt entsprechende Strafen. Das Missbrauchsteam ist jedoch nicht dafür zuständig, Inhalte aus der Second Life-Welt zu entfernen und reagiert auch nicht auf entsprechende Anfragen.
4280
42811. Missbrauch melden. Wenn Sie der Meinung sind, ein Einwohner nutzt das Berechtigungssystem von Second Life auf unerlaubte Weise zu seinem Vorteil aus, indem er zum Beispiel einen CopyBot oder verwandte Kopiertools verwendet und damit eine Urheberrechtsverletzung begeht, können Sie diesen Missbrauch melden.Das Missbrauchsteam untersucht etwaige Verstöße gegen die Second Life Community Standards oder die Nutzungsbedingungen und verhängt entsprechende Strafen.Das Missbrauchsteam ist jedoch nicht dafür zuständig, Inhalte aus der Second Life-Welt zu entfernen und reagiert auch nicht auf entsprechende Anfragen.
4282 4057
42832. Die DMCA oder Inhaltsentfernungs-Vorgehensweise. Sie können das Entfernen von Inhalten aus Second Life beantragen. Dazu müssen Sie eine Urheberrechtsverletzung gemäß den in unserer DMCA-Richtlinie unter http://secondlife.com/corporate/dmca.php dargelegten Anweisungen einreichen. 40582. Der DMCA oder das Entfernen von Inhalten. Sie können das Entfernen von Inhalten aus Second Life beantragen. Dazu MÜSSEN Sie eine Urheberrechtsverletzung gemäß den in unserer DMCA-Richtlinie unter http://secondlife.com/corporate/dmca.php dargelegten Anweisungen einreichen.
4284 4059
4285Wenn Sie jetzt mit der Missbrauchmeldung fortfahren möchten, schließen Sie bitte dieses Fenster und senden Sie Ihren Bericht ein. 4060Wenn Sie mit der Missbrauchmeldung jetzt fortfahren möchten, schließen Sie bitte dieses Fenster und senden Sie Ihren Bericht ein. Möglicherweise müssen Sie Kategorie „CopyBot oder Berechtigungs-Exploit“ auswählen.
4286 4061
4287Vielen Dank, 4062Vielen Dank,
4288 4063
4289Linden Lab 4064Linden Lab
4290 </message> 4065 </message>
4291 </alert> 4066 </alert>
@@ -4312,12 +4087,9 @@ Möchten Sie es mit dem ausgewählten Objekt ersetzen?
4312 </alert> 4087 </alert>
4313 <alert name="BusyModePay" title="Beschäftigt-Modus-Warnung"> 4088 <alert name="BusyModePay" title="Beschäftigt-Modus-Warnung">
4314 <message name="message"> 4089 <message name="message">
4315 Sie sind im Beschäftigt-Modus, sodass 4090 Sie sind im Beschäftigt-Modus, sodass Sie im Austausch für diese Zahlung keine Objekte erhalten können.
4316Sie im Austausch für diese Zahlung keine
4317Objekte erhalten können.
4318 4091
4319Möchten Sie den Bechäftigt-Modus verlassen, 4092Möchten Sie den Bechäftigt-Modus verlassen, bevor Sie diese Transaktion abschließen?
4320bevor Sie diese Transaktion abschließen?
4321 </message> 4093 </message>
4322 <ignore name="ignore"> 4094 <ignore name="ignore">
4323 Beim Bezahlen einer Person oder eines Objekts im Beschäftigt-Modus 4095 Beim Bezahlen einer Person oder eines Objekts im Beschäftigt-Modus
@@ -4331,8 +4103,7 @@ bevor Sie diese Transaktion abschließen?
4331 </alert> 4103 </alert>
4332 <alert name="ConfirmEmptyTrash"> 4104 <alert name="ConfirmEmptyTrash">
4333 <message name="message"> 4105 <message name="message">
4334 Möchten Sie den Inhalt Ihres Papierkorbs 4106 Möchten Sie den Inhalt Ihres Papierkorbs wirklich löschen?
4335wirklich löschen?
4336 </message> 4107 </message>
4337 <ignore name="ignore"> 4108 <ignore name="ignore">
4338 Beim Leeren des Inventar-Papierkorbs 4109 Beim Leeren des Inventar-Papierkorbs
@@ -4379,8 +4150,7 @@ wirklich löschen?
4379 </alert> 4150 </alert>
4380 <alert name="ConfirmEmptyLostAndFound"> 4151 <alert name="ConfirmEmptyLostAndFound">
4381 <message name="message"> 4152 <message name="message">
4382 Möchten Sie den Inhalt Ihres Fundstücke-Ordners 4153 Möchten Sie den Inhalt Ihres Fundstücke-Ordners wirklich permanent löschen?
4383wirklich permanent löschen?
4384 </message> 4154 </message>
4385 <ignore name="ignore"> 4155 <ignore name="ignore">
4386 Beim Leeren von Inventar und Fundstückeordner- 4156 Beim Leeren von Inventar und Fundstückeordner-
@@ -4397,8 +4167,7 @@ wirklich permanent löschen?
4397 Die folgende SLURL wurde in die Zwischenablage kopiert: 4167 Die folgende SLURL wurde in die Zwischenablage kopiert:
4398 [SLURL] 4168 [SLURL]
4399 4169
4400Veröffentlichen Sie sie auf einer Website, um anderen den Zugang zu diesem Ort 4170Veröffentlichen Sie sie auf einer Website, um anderen den Zugang zu diesem Ort zu erleichtern, oder testen Sie sie, indem Sie sie in die Adressleiste Ihres Browsers kopieren.
4401zu erleichtern, oder testen Sie sie, indem Sie sie in die Adressleiste Ihres Browsers kopieren.
4402 </message> 4171 </message>
4403 <ignore name="ignore"> 4172 <ignore name="ignore">
4404 Beim Kopieren einer SLURL in die Zwischenablage 4173 Beim Kopieren einer SLURL in die Zwischenablage
@@ -4406,7 +4175,7 @@ zu erleichtern, oder testen Sie sie, indem Sie sie in die Adressleiste Ihres Bro
4406 </alert> 4175 </alert>
4407 <alert name="GraphicsPreferencesHelp"> 4176 <alert name="GraphicsPreferencesHelp">
4408 <message name="message"> 4177 <message name="message">
4409 Die Optionen in diesem Dialog steuern Fenstergröße und Auflösung sowie die Qualität der Grafikdarstellung im Client. Im Fenster &apos;Einstellungen&apos; &gt; &apos;Grafik&apos; stehen vier Grafikeinstellungen zur Wahl: Niedrig, Mittel, Hoch und Ultra. Die Grafikeinstellungen lassen sich auch individuell anpassen; aktivieren Sie das Kontrollkästchen &apos;Benutzerdefiniert&apos;, um die folgenden Einstellungen zu bearbeiten: 4178 Die Optionen in diesem Dialog steuern Fenstergröße und Auflösung sowie die Qualität der Grafikdarstellung im Client. Im Fenster „Einstellungen“ &gt; „Grafik“ stehen vier Grafikeinstellungen zur Wahl: Niedrig, Mittel, Hoch und Ultra. Die Grafikeinstellungen lassen sich auch individuell anpassen; aktivieren Sie das Kontrollkästchen „Benutzerdefiniert“, um die folgenden Einstellungen zu bearbeiten:
4410 4179
4411Shader: Aktivieren oder deaktivieren Sie die verschiedenen Pixel-Shader. 4180Shader: Aktivieren oder deaktivieren Sie die verschiedenen Pixel-Shader.
4412 4181
@@ -4484,34 +4253,34 @@ Terraindetails: Legt den Detailgrad bei der Berechnung der Terraintextur fest.
4484 <message name="message"> 4253 <message name="message">
4485 Diese Einstellungen haben Auswirkung auf die lokale Darstellung der Umwelt auf Ihrem Computer. Zugriff auf alle Einstellungen haben Sie nur, wenn Ihre Grafikkarte Atmosphären-Shader unterstützt. 4254 Diese Einstellungen haben Auswirkung auf die lokale Darstellung der Umwelt auf Ihrem Computer. Zugriff auf alle Einstellungen haben Sie nur, wenn Ihre Grafikkarte Atmosphären-Shader unterstützt.
4486 4255
4487Mit dem Regler &quot;Tageszeit&quot; stellen Sie die lokal in Ihrem Viewer dargestellte Tageszeit ein. 4256Mit dem Regler „Tageszeit“ stellen Sie die lokal in Ihrem Viewer dargestellte Tageszeit ein.
4488 4257
4489Mit dem Regler &quot;Wolkendecke&quot; steuern Sie die Wolkendichte am Himmel. 4258Mit dem Regler „Wolkendecke“ steuern Sie die Wolkendichte am Himmel.
4490 4259
4491Unter &quot;Wasserfarbe&quot; können Sie eine Farbe für die Wasserdarstellung auswählen. 4260Unter „Wasserfarbe“ können Sie eine Farbe für die Wasserdarstellung auswählen.
4492 4261
4493Mit dem Regler &quot;Wassertrübung&quot; steuern Sie die Sichtweite unter Wasser. 4262Mit dem Regler „Wassertrübung“ steuern Sie die Sichtweite unter Wasser.
4494 4263
4495Klicken Sie auf &quot;Grundstückszeit verw.&quot;, um die aktuelle Zeit in der Region fest als Tageszeit einzustellen. 4264Klicken Sie auf „Grundstückszeit verw.“, um die aktuelle Zeit in der Region fest als Tageszeit einzustellen.
4496 4265
4497Klicken Sie auf &quot;Himmel (erweitert)&quot;, um einen Editor mit erweiterten Einstellungen für die Himmeldarstellung anzuzeigen. 4266Klicken Sie auf „Himmel (erweitert)“, um einen Editor mit erweiterten Einstellungen für die Himmeldarstellung anzuzeigen.
4498 4267
4499Klicken Sie auf &quot;Wasser (erweitert)&quot;, um einen Editor mit erweiterten Einstellungen für die Wasserdarstellung anzuzeigen. 4268Klicken Sie auf „Wasser (erweitert)“, um einen Editor mit erweiterten Einstellungen für die Wasserdarstellung anzuzeigen.
4500 </message> 4269 </message>
4501 </alert> 4270 </alert>
4502 <alert name="HelpDayCycle"> 4271 <alert name="HelpDayCycle">
4503 <message name="message"> 4272 <message name="message">
4504 Im Tageszyklus-Editor steuern Sie den Tag-/Nachtzyklus am Second Life Himmel. Dabei handelt es sich um den Zyklus, der mit dem Tageszeit-Regler im Umwelt-Basiseditor gesteuert wird. 4273 Im Tageszyklus-Editor steuern Sie den Tag-/Nachtzyklus am Second Life Himmel. Dabei handelt es sich um den Zyklus, der mit dem Tageszeit-Regler im Umwelt-Basiseditor gesteuert wird.
4505 4274
4506Der Tageszyklus-Editor verwendet sogenannte Keyframes zur Steuerung des Tag-/Nachtablaufs. Dabei handelt es sich um &quot;Schlüsselbilder&quot; (die grauen Kreise auf der Zeitskala), für die bestimmte Himmelseinstellungen definiert wurden. Bei voranschreitender Tageszeit interpoliert WindLight den Übergang zwischen diesen Keyframes und erzeugt eine entsprechende Himmelsanimation. 4275Der Tageszyklus-Editor verwendet sogenannte Keyframes zur Steuerung des Tag-/Nachtablaufs. Dabei handelt es sich um „Schlüsselbilder“ (die grauen Kreise auf der Zeitskala), für die bestimmte Himmelseinstellungen definiert wurden. Bei voranschreitender Tageszeit interpoliert WindLight den Übergang zwischen diesen Keyframes und erzeugt eine entsprechende Himmelsanimation.
4507 4276
4508Der gelbe Pfeil über der Zeitskala repräsentiert die aktuelle Tageszeit-Darstellung. Ziehen Sie den Pfeil, um die Tagesanimation anzuzeigen. Mit &quot;Key hinzu&quot; und &quot;Key löschen&quot; rechts neben der Zeitskala können Sie neue Keys einfügen und vorhandene löschen. 4277Der gelbe Pfeil über der Zeitskala repräsentiert die aktuelle Tageszeit-Darstellung. Ziehen Sie den Pfeil, um die Tagesanimation anzuzeigen. Mit „Key hinzu“ und „Key löschen“ rechts neben der Zeitskala können Sie neue Keys einfügen und vorhandene löschen.
4509 4278
4510Keyframes lassen sich einfach entlang der Zeitskala verschieben, oder Sie geben die Werte manuell unter &quot;Keyframe-Einstellungen&quot; ein. Hier wählen Sie auch eine WindLight-Voreinstellung für den Keyframe aus. 4279Keyframes lassen sich einfach entlang der Zeitskala verschieben, oder Sie geben die Werte manuell unter „Keyframe-Einstellungen“ ein. Hier wählen Sie auch eine WindLight-Voreinstellung für den Keyframe aus.
4511 4280
4512&quot;Zykluslänge&quot; bestimmt die Gesamtlänge eines &quot;Tages&quot;. Ein niedriger Wert (z.B. 2 Minuten) führt dazu, dass ein ganzer 24-Stunden-Tag innerhalb von zwei Minuten Echtzeit abgespult wird! Wenn Sie alle Einstellungen auf der Zeitskala und für die einzelnen Keyframes vorgenommen haben, können Sie mit &quot;Start&quot; und &quot;Stopp&quot; die Animation anzeigen. Das funktioniert natürlich genauso interaktiv, indem Sie den gelben Pfeil über der Zeitskala verschieben. Mit der Schaltfläche &quot;Grundstückszeit verw.&quot; synchronisieren Sie die Tageszeit und -länge mit den auf dem Grundstück geltenden Einstellungen. 4281„Zykluslänge“ bestimmt die Gesamtlänge eines „Tages“. Ein niedriger Wert (z.B. 2 Minuten) führt dazu, dass ein ganzer 24-Stunden-Tag innerhalb von zwei Minuten Echtzeit abgespult wird! Wenn Sie alle Einstellungen auf der Zeitskala und für die einzelnen Keyframes vorgenommen haben, können Sie mit „Start“ und „Stopp“ die Animation anzeigen. Das funktioniert natürlich genauso interaktiv, indem Sie den gelben Pfeil über der Zeitskala verschieben. Mit der Schaltfläche „Grundstückszeit verw.“ synchronisieren Sie die Tageszeit und -länge mit den auf dem Grundstück geltenden Einstellungen.
4513 4282
4514Ihre Tageszyklus-Einstellungen lassen sich mit den Schaltflächen &quot;Testtag speichern&quot; und &quot;Testtag laden&quot; speichern bzw. laden. Bis dato kann nur ein Tageszyklus gleichzeitig in Verwendung sein. 4283Ihre Tageszyklus-Einstellungen lassen sich mit den Schaltflächen „Testtag speichern“ und „Testtag laden“ speichern bzw. laden. Bis dato kann nur ein Tageszyklus gleichzeitig in Verwendung sein.
4515 </message> 4284 </message>
4516 </alert> 4285 </alert>
4517 <alert name="HelpBlueHorizon"> 4286 <alert name="HelpBlueHorizon">
@@ -4521,11 +4290,7 @@ Ihre Tageszyklus-Einstellungen lassen sich mit den Schaltflächen &quot;Testtag
4521 </alert> 4290 </alert>
4522 <alert name="HelpHazeHorizon"> 4291 <alert name="HelpHazeHorizon">
4523 <message name="message"> 4292 <message name="message">
4524 Horizonttrübung ist einer der wichtigsten Parameter, um 4293 Horizonttrübung ist einer der wichtigsten Parameter, um die Gesamtlichtsituation in der Szene zu steuern. Damit lassen sich viele Belichtungseinstellungen simulieren, z.B. ein Überstrahlen durch die Sonne oder starker Dunst.
4525die Gesamtlichtsituation in der Szene zu steuern. Damit
4526lassen sich viele Belichtungseinstellungen simulieren,
4527z.B. ein Ãœberstrahlen durch die Sonne oder
4528starker Dunst.
4529 </message> 4294 </message>
4530 </alert> 4295 </alert>
4531 <alert name="HelpBlueDensity"> 4296 <alert name="HelpBlueDensity">
@@ -4535,32 +4300,22 @@ starker Dunst.
4535 </alert> 4300 </alert>
4536 <alert name="HelpHazeDensity"> 4301 <alert name="HelpHazeDensity">
4537 <message name="message"> 4302 <message name="message">
4538 Trübungsintensität steuert die Stärke des grauen 4303 Trübungsintensität steuert die Stärke des grauen Dunsts in der Atmosphäre. Damit lassen sich zum Beispiel starker Rauch oder Luftverschmutzung simulieren. Auch für Nebel und Sprühregen geeignet.
4539Dunsts in der Atmosphäre. Damit lassen sich
4540zum Beispiel starker Rauch oder Luftverschmutzung
4541simulieren. Auch für Nebel und
4542Sprühregen geeignet.
4543 </message> 4304 </message>
4544 </alert> 4305 </alert>
4545 <alert name="HelpDensityMult"> 4306 <alert name="HelpDensityMult">
4546 <message name="message"> 4307 <message name="message">
4547 Der Dichtemultiplikator beeinflusst die Gesamtdichte der Atmosphäre. Niedrige Einstellungen erzeugen die Anmutung &quot;dünner, sauberer Luft&quot;, hohe Einstellungen erzeugen den Eindruck schweren Smogs. 4308 Der Dichtemultiplikator beeinflusst die Gesamtdichte der Atmosphäre. Niedrige Einstellungen erzeugen den Eindruck dünner, sauberer Luft, hohe Einstellungen erzeugen den Eindruck schweren Smogs.
4548 </message> 4309 </message>
4549 </alert> 4310 </alert>
4550 <alert name="HelpDistanceMult"> 4311 <alert name="HelpDistanceMult">
4551 <message name="message"> 4312 <message name="message">
4552 Steuert die Entfernungswirkung von WindLight. Ein Wert von 4313 Steuert die Entfernungswirkung von WindLight. Ein Wert von Null schaltet den Einfluss von WindLight auf Terrain und Objekte praktisch aus. Werte über 1 simulieren größere Entfernungen und verstärken den Atmosphäreneffekt.
4553Null schaltet den Einfluss von WindLight auf Terrain und
4554Objekte praktisch aus. Werte über 1 simulieren
4555größere Entfernungen und verstärken den Atmosphäreneffekt.
4556 </message> 4314 </message>
4557 </alert> 4315 </alert>
4558 <alert name="HelpMaxAltitude"> 4316 <alert name="HelpMaxAltitude">
4559 <message name="message"> 4317 <message name="message">
4560 Max. Höhe steuert die Höhenberechnungen von WindLight 4318 Max. Höhe steuert die Höhenberechnungen von WindLight bei der Berechnung der atmosphärischen Beleuchtung. Zu späteren Tageszeiten lässt sich damit zum Beispiel die „Intensität“ des Sonnenuntergangs beeinflussen.
4561bei der Berechnung der atmosphärischen Beleuchtung. Zu
4562späteren Tageszeiten lässt sich damit zum Beispiel
4563die &quot;Intensität&quot; des Sonnenuntergangs beeinflussen.
4564 </message> 4319 </message>
4565 </alert> 4320 </alert>
4566 <alert name="HelpSunlightColor"> 4321 <alert name="HelpSunlightColor">
@@ -4575,9 +4330,8 @@ die &quot;Intensität&quot; des Sonnenuntergangs beeinflussen.
4575 </alert> 4330 </alert>
4576 <alert name="HelpSunGlow"> 4331 <alert name="HelpSunGlow">
4577 <message name="message"> 4332 <message name="message">
4578 Der Regler &quot;Größe&quot; steuert die Größe der Sonne. 4333 Der Regler „Größe“ steuert die Größe der Sonne.
4579Der Regler &quot;Fokus&quot; steuert, wie unscharf die Sonne 4334Der Regler „Fokus“ steuert, wie unscharf die Sonne am Himmel erscheint.
4580am Himmel erscheint.
4581 </message> 4335 </message>
4582 </alert> 4336 </alert>
4583 <alert name="HelpSceneGamma"> 4337 <alert name="HelpSceneGamma">
@@ -4604,24 +4358,17 @@ Entspricht dem Azimut.
4604 </alert> 4358 </alert>
4605 <alert name="HelpCloudColor"> 4359 <alert name="HelpCloudColor">
4606 <message name="message"> 4360 <message name="message">
4607 Steuert die Wolkenfarbe. Generell empfiehlt 4361 Steuert die Wolkenfarbe. Generell empfiehlt sich hier ein Weißton, aber hey, warum nicht ein bisschen Spaß haben?
4608sich hier ein Weißton, aber hey,
4609warum nicht ein bisschen Spaß haben?
4610 </message> 4362 </message>
4611 </alert> 4363 </alert>
4612 <alert name="HelpCloudDetail"> 4364 <alert name="HelpCloudDetail">
4613 <message name="message"> 4365 <message name="message">
4614 Steuert das Detailbild, welches über das Wolken- 4366 Steuert das Detailbild, welches über das Wolken-Hauptbild gelegt wird. X und Y bestimmen seine Position. D (Dichte) regelt, wie ausgebeult oder zerrissen die Wolken wirken.
4615Hauptbild gelegt wird. X und Y bestimmen
4616seine Position. D (Dichte) regelt, wie ausgebeult oder
4617zerrissen die Wolken wirken.
4618 </message> 4367 </message>
4619 </alert> 4368 </alert>
4620 <alert name="HelpCloudDensity"> 4369 <alert name="HelpCloudDensity">
4621 <message name="message"> 4370 <message name="message">
4622 Mit den X- und Y-Reglern steuern Sie die 4371 Mit den X- und Y-Reglern steuern Sie die Position der Wolken, mit dem Regler D die Wolkendichte.
4623Position der Wolken, mit dem Regler D die
4624Wolkendichte.
4625 </message> 4372 </message>
4626 </alert> 4373 </alert>
4627 <alert name="HelpCloudCoverage"> 4374 <alert name="HelpCloudCoverage">
@@ -4786,13 +4533,12 @@ Wolkendichte.
4786 </alert> 4533 </alert>
4787 <alert name="Cannot_Purchase_an_Attachment"> 4534 <alert name="Cannot_Purchase_an_Attachment">
4788 <message name="message"> 4535 <message name="message">
4789 Objekte können nicht gekauft werden, 4536 Objekte können nicht gekauft werden, solange sie Teil eines Anhangs sind.
4790solange sie Teil eines Anhangs sind.
4791 </message> 4537 </message>
4792 </alert> 4538 </alert>
4793 <alert name="DebitPermissionDetails" title="Info zur Abfrage der Abbucherlaubnis"> 4539 <alert name="DebitPermissionDetails" title="Info zur Abfrage der Abbucherlaubnis">
4794 <message name="message"> 4540 <message name="message">
4795 Granting this request gives a script ongoing permission to take Linden dollars (L$) from your account. To revoke this permission, the object&apos;s owner must delete the object or reset the scripts in the object. 4541 Wenn Sie dieser Anfrage zustimmen, erhält das Skript die Erlaubnis, regelmäßig Linden-Dollar (L$) von Ihrem Konto abzubuchen. Diese Erlaubnis kann nur zurückgezogen werden, wenn der Eigentümer das Objekt löscht oder die Skripts in dem Objekt zurücksetzt.
4796 </message> 4542 </message>
4797 <option name="OK"> 4543 <option name="OK">
4798 OK 4544 OK
@@ -4818,8 +4564,7 @@ solange sie Teil eines Anhangs sind.
4818 [SLURL] 4564 [SLURL]
4819Die meisten Links ähneln dem Folgenden: 4565Die meisten Links ähneln dem Folgenden:
4820 4566
4821secondlife:///app/agent/0e346d8b-4433-4d66-a6b0- 4567secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about
4822fd37083abc4c/about
4823 4568
4824Überprüfen Sie die Schreibweise und versuchen Sie es erneut. 4569Überprüfen Sie die Schreibweise und versuchen Sie es erneut.
4825 </message> 4570 </message>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_about.xml b/linden/indra/newview/skins/default/xui/de/floater_about.xml
index 7c9b242..238dfd5 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_about.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_about.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_about" title="Ãœber Second Life"> 2<floater name="floater_about" title="Ãœber Second Life">
3 <text_editor name="credits_editor"> 3 <text_editor name="credits_editor">
4 Second Life wird Ihnen präsentiert von Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ und vielen anderen. 4 Second Life wird Ihnen präsentiert von Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les und vielen anderen.
5 5
6Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen: Aminom Marvin, ava ganache, Balthazar Fouroux, CrystalShard Foo, Davec Horsforth, Drew Dwi, Ellla McMahon, Gellan Glenelg, Harleen Gretzky, istephanija munro, Iustinian Tomsen, JC Glimmer, Joeseph Albanese, kelly young, Latif Khalifa, Lex Neva, McCabe Maxsted, Michi Lumin, moni duettmann, Moon Metty, motor loon, Opensource Obscure, Sky Hye, Soap Clawtooth, velveeta biedermann, zeebster colasanti 6Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen: afon shepherd, Aimee Trescothick, Alexandrea Fride, Alissa Sabre, Amber DeCuir, Asuka Neely, Auron Forcella, Blue Revolution, Bocan Undercroft, Boroondas Gupte, Brandon Shinobu, Bri Gufler, Buckaroo Mu, Celierra Darling, Christos Atlantis, Coder Kas, Cummere Mayo, dakota schwade, Dirk Talamasca, Dizzy Banjo, Drew Dwi, Duckling Kwak, Ellla McMahon, Erikah Jameson, Erinyse Planer, Eyana Yohkoh, Ezian Ecksol, Faron Karu, Fenoe Lowey, Fox Hwasung, Francisca Biedermann, Gally Young, Gellan Glenelg, Geneko Nemeth, Glenn Rotaru, Hagar Qinan, Harleen Gretzky, Holger Gilruth, hotrodjohnny gears, IAm Zabelin, Inigo Catteneo, Iustinian Tomsen, Jacek Antonell, James Benedek, Jim Kupferberg, Joeseph Albanese, JPT62089 Agnon, Kardargo Adamczyk, Kirstenlee Cinquetti, Latif Khalifa, lea Parnall, Lex Neva, Lillith Anatine, Lilly Zenovka, Lim Catteneo, Lindal Kidd, Mark Rosenbaum, MasterJ Chaplin, McCabe Maxsted, Melvin Starbrook, Meni Kaiousei, Mero Collas, Minakothegothicgeisha Kamachi, Moon Metty, neofilo aabye, Neutron Chesnokov, Nomad Ingwer, norritt Xi, Opensource Obscure, Oracle Weatherwax, Ourasi Ferraris, Pabl0 Roffo, Peyton Aleixandre, Phli Foxchase, Psi Merlin, r2d2 Wunderlich, Regi Yifu, Saijanai Kuhn, Sandor Balczo, Sarkan Dreamscape, Scree Raymaker, Sedona Mills, Selena Beale, Sheet Spotter, Shibari Twine, Silver Key, Simon Kline, SLB Wirefly, Stacy Wombat, Sugarcult Dagger, Tayra Dagostino, Tetsuryu Vlodovic, ThaBiGGDoGG Richez, Timo Gufler, tx Oh, wayfinder wishbringer, Wizzytoe McCullough, Wundur Primbee, Yann Dufaux, Yuu Nakamichi, Aminom Marvin, Andred Qinan, arminasx saiman, caroline apollo, Iskar Ariantho, Jenika Connolly, Maghnus Balogh, Nefertiti Nefarious, RodneyLee Jessop
7 7
83Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion 83Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
9APR Copyright (C) 2000-2004 The Apache Software Foundation 9APR Copyright (C) 2000-2004 The Apache Software Foundation
@@ -26,7 +26,7 @@ Alle Rechte vorbehalten. Details siehe licenses.txt.
26Voice-Chat-Audiocoding: Polycom(R) Siren14(TM) (ITU-T Empf.G.722.1 Anhang C) 26Voice-Chat-Audiocoding: Polycom(R) Siren14(TM) (ITU-T Empf.G.722.1 Anhang C)
27 27
28 28
29Wir können nur eine kurze Distanz in die Zukunft blicken, aber dort können wir eine Menge sehen, was getan werden muss. --Alan Turing 29I get by with a little help from my friends. (etwa: Ich überlebe mit ein bisschen Unterstützung von meinen Freunden.) --Richard Starkey
30 </text_editor> 30 </text_editor>
31 <text name="you_are_at"> 31 <text name="you_are_at">
32 Sie befinden sich in [POSITION] 32 Sie befinden sich in [POSITION]
diff --git a/linden/indra/newview/skins/default/xui/de/floater_about_land.xml b/linden/indra/newview/skins/default/xui/de/floater_about_land.xml
index b75eeba..ecb7875 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_about_land.xml
@@ -1,287 +1,259 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floaterland" title="Land-Info"> 2<floater name="floaterland" title="Land-Info">
3 <tab_container name="landtab"> 3 <tab_container name="landtab">
4 <panel label="Allgemein" name="land_general_panel"> 4 <panel label="Allgemein" name="land_general_panel">
5 <text type="string" length="1" name="Name:"> 5 <text name="Name:">
6 Name: 6 Name:
7 </text> 7 </text>
8 <text type="string" length="1" name="Description:"> 8 <text name="Description:">
9 Beschreibung: 9 Beschreibung:
10 </text> 10 </text>
11 <text type="string" length="1" name="Owner:"> 11 <text name="Owner:">
12 Eigentümer: 12 Eigentümer:
13 </text> 13 </text>
14 <text type="string" length="1" name="OwnerText"> 14 <text name="OwnerText">
15 Leyla Linden 15 Leyla Linden
16 </text> 16 </text>
17 <button label="Profil..." label_selected="Profil..." name="Profile..." /> 17 <button label="Profil..." label_selected="Profil..." name="Profile..."/>
18 <text type="string" length="1" name="Group:"> 18 <text name="Group:">
19 Gruppe: 19 Gruppe:
20 </text> 20 </text>
21 <button label="Einstellen..." label_selected="Einstellen..." name="Set..." /> 21 <button label="Einstellen..." label_selected="Einstellen..." name="Set..."/>
22 <check_box label="Übertragung an Gruppe zulassen" name="check deed" 22 <check_box label="Übertragung an Gruppe zulassen" name="check deed" tool_tip="Ein Gruppen-Officer kann dieses Land der Gruppe übertragen. Das Land wird dann über die Landzuteilung der Gruppe verwaltet."/>
23 tool_tip="Ein Gruppen-Officer kann dieses Land der Gruppe übertragen. Das Land wird dann über die Landzuteilung der Gruppe verwaltet." /> 23 <button label="Übertragen..." label_selected="Übertragen..." name="Deed..." tool_tip="Sie können Land nur übertragen, wenn Sie in der ausgewählten Gruppe Officer sind."/>
24 <button label="Übertragen..." label_selected="Übertragen..." name="Deed..." 24 <check_box label="Eigentümer leistet Beitrag durch Übertragung" name="check contrib" tool_tip="Wenn das Land an die Gruppe übertragen wird, trägt der frühere Eigentümer ausreichend Landnutzungsrechte bei, um es zu halten."/>
25 tool_tip="Sie können Land nur übertragen, wenn Sie in der ausgewählten Gruppe Officer sind." /> 25 <text name="For Sale:">
26 <check_box label="Eigentümer leistet Beitrag durch Übertragung" name="check contrib"
27 tool_tip="Wenn das Land an die Gruppe übertragen wird, trägt der frühere Eigentümer ausreichend Landnutzungsrechte bei, um es zu halten." />
28 <text type="string" length="1" name="For Sale:">
29 Zum Verkauf: 26 Zum Verkauf:
30 </text> 27 </text>
31 <text type="string" length="1" name="Not for sale."> 28 <text name="Not for sale.">
32 Nicht zu verkaufen. 29 Nicht zu verkaufen.
33 </text> 30 </text>
34 <text type="string" length="1" name="For Sale: Price L$[PRICE]."> 31 <text name="For Sale: Price L$[PRICE].">
35 Preis: [PRICE] L$. 32 Preis: [PRICE] L$.
36 </text> 33 </text>
37 <button label="Land verkaufen..." label_selected="Land verkaufen..." 34 <button label="Land verkaufen..." label_selected="Land verkaufen..." name="Sell Land..." bottom="-200"/>
38 name="Sell Land..." /> 35 <text name="For sale to">
39 <text type="string" length="1" name="For sale to">
40 Zum Verkauf an: [BUYER] 36 Zum Verkauf an: [BUYER]
41 </text> 37 </text>
42 <text type="string" length="1" name="Sell with landowners objects in parcel."> 38 <text name="Sell with landowners objects in parcel." width="210">
43 Objekte sind im Verkauf eingeschlossen. 39 Objekte sind im Verkauf eingeschlossen.
44 </text> 40 </text>
45 <text type="string" length="1" name="Selling with no objects in parcel."> 41 <text name="Selling with no objects in parcel." width="237">
46 Objekte sind im Verkauf nicht eingeschlossen. 42 Objekte sind im Verkauf nicht eingeschlossen.
47 </text> 43 </text>
48 <button label="Landverkauf abbrechen" label_selected="Landverkauf abbrechen" 44 <button label="Landverkauf abbrechen" label_selected="Landverkauf abbrechen" name="Cancel Land Sale" bottom="-204"/>
49 name="Cancel Land Sale" /> 45 <text name="Claimed:">
50 <text type="string" length="1" name="Claimed:">
51 Gekauft am: 46 Gekauft am:
52 </text> 47 </text>
53 <text type="string" length="1" name="DateClaimText"> 48 <text name="DateClaimText">
54 Dienstag, 15. Aug. 2006, 13:47:25 49 Dienstag, 15. Aug. 2006, 13:47:25
55 </text> 50 </text>
56 <text type="string" length="1" name="PriceLabel"> 51 <text name="PriceLabel">
57 Gebiet: 52 Gebiet:
58 </text> 53 </text>
59 <text type="string" length="1" name="PriceText"> 54 <text name="PriceText">
60 4048 qm 55 4048 qm
61 </text> 56 </text>
62 <text type="string" length="1" name="Traffic:"> 57 <text name="Traffic:">
63 Traffic: 58 Traffic:
64 </text> 59 </text>
65 <text type="string" length="1" name="DwellText"> 60 <text name="DwellText">
66 0 61 0
67 </text> 62 </text>
68 <button label="Land kaufen..." label_selected="Land kaufen..." name="Buy Land..." /> 63 <button label="Land kaufen..." label_selected="Land kaufen..." name="Buy Land..."/>
69 <button label="Für Gruppe kaufen..." label_selected="Für Gruppe kaufen..." 64 <button label="Für Gruppe kaufen..." label_selected="Für Gruppe kaufen..." name="Buy For Group..."/>
70 name="Buy For Group..." /> 65 <button label="Pass kaufen..." label_selected="Pass kaufen..." name="Buy Pass..." tool_tip="Ein Pass gibt Ihnen zeitbegrenzten Zugang zu diesem Land."/>
71 <button label="Pass kaufen..." label_selected="Pass kaufen..." name="Buy Pass..." 66 <button label="Land aufgeben..." label_selected="Land aufgeben..." name="Abandon Land..."/>
72 tool_tip="Ein Pass gibt Ihnen zeitbegrenzten Zugang zu diesem Land." /> 67 <button label="Land in Besitz nehmen..." label_selected="Land in Besitz nehmen..." name="Reclaim Land..."/>
73 <button label="Land aufgeben..." label_selected="Land aufgeben..." 68 <button label="Linden-Verkauf..." label_selected="Linden-Verkauf..." name="Linden Sale..." tool_tip="Land muss Eigentum und auf Inhalt gesetzt sein und nicht zur Auktion stehen."/>
74 name="Abandon Land..." /> 69 <string name="new users only">
75 <button label="Land in Besitz nehmen..." label_selected="Land in Besitz nehmen..."
76 name="Reclaim Land..." />
77 <button label="Linden-Verkauf..." label_selected="Linden-Verkauf..."
78 name="Linden Sale..."
79 tool_tip="Land muss Eigentum und auf Inhalt gesetzt sein und nicht zur Auktion stehen." />
80 <text name="new users only">
81 Nur neue Benutzer 70 Nur neue Benutzer
82 </text> 71 </string>
83 <text name="anyone"> 72 <string name="anyone">
84 Jeder 73 Jeder
85 </text> 74 </string>
86 <text name="area_text"> 75 <string name="area_text">
87 Gebiet: 76 Gebiet:
88 </text> 77 </string>
89 <text name="area_size_text"> 78 <string name="area_size_text">
90 [AREA] qm 79 [AREA] qm
91 </text> 80 </string>
92 <text name="auction_id_text"> 81 <string name="auction_id_text">
93 Auktions-ID: [ID] 82 Auktions-ID: [ID]
94 </text> 83 </string>
95 <text name="need_tier_to_modify"> 84 <string name="need_tier_to_modify">
96 Bestätigen Sie den Kauf, um dieses Land zu bearbeiten. 85 Bestätigen Sie den Kauf, um dieses Land zu bearbeiten.
97 </text> 86 </string>
98 <text name="group_owned_text"> 87 <string name="group_owned_text">
99 (In Gruppenbesitz) 88 (In Gruppenbesitz)
100 </text> 89 </string>
101 <text name="profile_text"> 90 <string name="profile_text">
102 Profil... 91 Profil...
103 </text> 92 </string>
104 <text name="info_text"> 93 <string name="info_text">
105 Info... 94 Info...
106 </text> 95 </string>
107 <text name="public_text"> 96 <string name="public_text">
108 (öffentlich) 97 (öffentlich)
109 </text> 98 </string>
110 <text name="none_text"> 99 <string name="none_text">
111 (-) 100 (keiner)
112 </text> 101 </string>
113 <text name="sale_pending_text"> 102 <string name="sale_pending_text">
114 (Wird verkauft) 103 (Wird verkauft)
115 </text> 104 </string>
116 <string name="no_selection_text"> 105 <string name="no_selection_text">
117 Keine Parzelle ausgewählt. 106 Keine Parzelle ausgewählt.
118Öffnen Sie &quot;Welt&quot; &gt; &quot;Land-Info&quot; oder wählen Sie eine andere Parzelle aus, um Informationen darüber anzuzeigen. 107Öffnen Sie „Welt“ &gt; „Land-Info“ oder wählen Sie eine andere Parzelle aus, um Informationen darüber anzuzeigen.
119 </string> 108 </string>
120 </panel> 109 </panel>
121 <panel label="Vertrag" name="land_covenant_panel"> 110 <panel label="Vertrag" name="land_covenant_panel">
122 <text type="string" length="1" name="covenant_timestamp_text"> 111 <text name="covenant_timestamp_text">
123 Letzte Änderung am Mittwoch, den 31. Dez. 1969, 16:00:00 112 Letzte Änderung am Mittwoch, den 31. Dez. 1969, 16:00:00
124 </text> 113 </text>
125 <text type="string" length="1" name="region_name_lbl"> 114 <text name="region_name_lbl">
126 Region: 115 Region:
127 </text> 116 </text>
128 <text type="string" length="1" name="region_name_text"> 117 <text name="region_name_text">
129 leyla 118 leyla
130 </text> 119 </text>
131 <text type="string" length="1" name="estate_name_lbl"> 120 <text name="estate_name_lbl">
132 Grundstück: 121 Grundstück:
133 </text> 122 </text>
134 <text type="string" length="1" name="estate_name_text"> 123 <text name="estate_name_text">
135 Mainland 124 Mainland
136 </text> 125 </text>
137 <text type="string" length="1" name="estate_owner_lbl"> 126 <text name="estate_owner_lbl">
138 Eigentümer: 127 Eigentümer:
139 </text> 128 </text>
140 <text type="string" length="1" name="estate_owner_text"> 129 <text name="estate_owner_text">
141 (keiner) 130 (keiner)
142 </text> 131 </text>
143 <text type="string" length="1" name="resellable_clause"> 132 <text name="resellable_clause">
144 Gekauftes Land in dieser Region kann nicht wiederverkauft werden. 133 Gekauftes Land in dieser Region kann nicht wiederverkauft werden.
145 </text> 134 </text>
146 <text type="string" length="1" name="changeable_clause"> 135 <text name="changeable_clause">
147 Gekauftes Land in dieser Region kann nicht zusammengelegt/geteilt werden. 136 Gekauftes Land in dieser Region kann nicht zusammengelegt/geteilt werden.
148 </text> 137 </text>
149 <text_editor type="string" length="1" name="covenant_editor"> 138 <text_editor name="covenant_editor">
150 Für dieses Grundstück fehlt der Vertrag. 139 Für dieses Grundstück fehlt der Vertrag.
151 </text_editor> 140 </text_editor>
152 <text name="can_resell"> 141 <string name="can_resell">
153 Gekauftes Land in dieser Region kann wiederverkauft werden. 142 Gekauftes Land in dieser Region kann wiederverkauft werden.
154 </text> 143 </string>
155 <text name="can_not_resell"> 144 <string name="can_not_resell">
156 Gekauftes Land in dieser Region kann nicht wiederverkauft werden. 145 Gekauftes Land in dieser Region kann nicht wiederverkauft werden.
157 </text> 146 </string>
158 <text name="can_change"> 147 <string name="can_change">
159 Gekauftes Land in dieser Region kann zusammengelegt und geteilt werden. 148 Gekauftes Land in dieser Region kann zusammengelegt und geteilt werden.
160 </text> 149 </string>
161 <text name="can_not_change"> 150 <string name="can_not_change">
162 Gekauftes Land in dieser Region kann nicht zusammengelegt und geteilt werden. 151 Gekauftes Land in dieser Region kann nicht zusammengelegt und geteilt werden.
163 </text> 152 </string>
164 </panel> 153 </panel>
165 <panel label="Objekte" name="land_objects_panel"> 154 <panel label="Objekte" name="land_objects_panel">
166 <text name="parcel_object_bonus"> 155 <text name="parcel_object_bonus">
167 Objektbonusfaktor in Region: [BONUS] 156 Objektbonusfaktor in Region: [BONUS]
168 </text> 157 </text>
169 <text type="string" length="1" name="Simulator primitive usage:"> 158 <text name="Simulator primitive usage:">
170 Primitive in Simulator: 159 Primitive in Simulator:
171 </text> 160 </text>
172 <text name="objects_available"> 161 <text name="objects_available">
173 [COUNT] von [MAX] ([AVAILABLE] verfügbar) 162 [COUNT] von [MAX] ([AVAILABLE] verfügbar)
174 </text> 163 </text>
175 <text name="objects_available_text"> 164 <string name="objects_available_text">
176 [COUNT] von [MAX] ([AVAILABLE] verfügbar) 165 [COUNT] von [MAX] ([AVAILABLE] verfügbar)
177 </text> 166 </string>
178 <text name="objects_deleted_text"> 167 <string name="objects_deleted_text">
179 [COUNT] von [MAX] ([DELETED] werden gelöscht) 168 [COUNT] von [MAX] ([DELETED] werden gelöscht)
180 </text> 169 </string>
181 <text name="Primitives parcel supports:" width="200"> 170 <text name="Primitives parcel supports:" width="200">
182 Von Parzelle unterstützte Primitiva: 171 Von Parzelle unterstützte Primitiva:
183 </text> 172 </text>
184 <text left="204" name="object_contrib_text" width="152"> 173 <text name="object_contrib_text" left="204" width="152">
185 [COUNT] 174 [COUNT]
186 </text> 175 </text>
187 <text type="string" length="1" name="Primitives on parcel:"> 176 <text name="Primitives on parcel:">
188 Primitiva auf Parzelle: 177 Primitiva auf Parzelle:
189 </text> 178 </text>
190 <text left="204" name="total_objects_text" width="48"> 179 <text name="total_objects_text" left="204" width="48">
191 [COUNT] 180 [COUNT]
192 </text> 181 </text>
193 <text left="14" name="Owned by parcel owner:" width="200"> 182 <text name="Owned by parcel owner:" left="14" width="200">
194 Im Eigentum des Parzellenbesitzers: 183 Im Eigentum des Parzellenbesitzers:
195 </text> 184 </text>
196 <text left="204" name="owner_objects_text" width="48"> 185 <text name="owner_objects_text" left="204" width="48">
197 [COUNT] 186 [COUNT]
198 </text> 187 </text>
199 <button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner" right="-135" 188 <button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner" right="-135" width="60"/>
200 width="60" /> 189 <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnOwner..." tool_tip="Objekte an ihre Eigentümer zurückgeben." right="-10" width="119"/>
201 <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnOwner..." 190 <text name="Set to group:" left="14" width="200">
202 right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben."
203 width="119" />
204 <text left="14" name="Set to group:" width="200">
205 Der Gruppe übereignen: 191 Der Gruppe übereignen:
206 </text> 192 </text>
207 <text left="204" name="group_objects_text" width="48"> 193 <text name="group_objects_text" left="204" width="48">
208 [COUNT] 194 [COUNT]
209 </text> 195 </text>
210 <button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup" right="-135" 196 <button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup" width="60" right="-135" />
211 width="60" /> 197 <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnGroup..." tool_tip="Objekte an ihre Eigentümer zurückgeben." right="-10" width="119"/>
212 <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnGroup..." 198 <text name="Owned by others:" left="14" width="128">
213 right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben."
214 width="119" />
215 <text left="14" name="Owned by others:" width="128">
216 Im Eigentum anderer: 199 Im Eigentum anderer:
217 </text> 200 </text>
218 <text left="204" name="other_objects_text" width="48"> 201 <text name="other_objects_text" left="204" width="48">
219 [COUNT] 202 [COUNT]
220 </text> 203 </text>
221 <button label="Anzeigen" label_selected="Anzeigen" name="ShowOther" right="-135" 204 <button label="Anzeigen" label_selected="Anzeigen" name="ShowOther" right="-135" width="60"/>
222 width="60" /> 205 <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnOther..." tool_tip="Objekte an ihre Eigentümer zurückgeben." right="-10" width="119"/>
223 <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnOther..." 206 <text name="Selected / sat upon:" left="14" width="140">
224 right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben."
225 width="119" />
226 <text left="14" name="Selected / sat upon:" width="140">
227 Ausgewählt/gesessen auf: 207 Ausgewählt/gesessen auf:
228 </text> 208 </text>
229 <text left="204" name="selected_objects_text" width="48"> 209 <text name="selected_objects_text" left="204" width="48">
230 [COUNT] 210 [COUNT]
231 </text> 211 </text>
232 <text left="4" name="Autoreturn" width="380"> 212 <text name="Autoreturn" width="380" left="4" >
233 Objekte anderer Einwohner automatisch zurückgeben (Minuten, 0 für aus): 213 Objekte anderer Einwohner automatisch zurückgeben (Minuten, 0 für aus):
234 </text> 214 </text>
235 <line_editor name="clean other time" right="-10" width="56" /> 215 <line_editor name="clean other time" right="-10" width="56" />
236 <text type="string" length="1" name="Object Owners:"> 216 <text name="Object Owners:">
237 Objekteigentümer: 217 Objekteigentümer:
238 </text> 218 </text>
239 <button label="Liste aktualisieren" label_selected="Liste aktualisieren" 219 <button label="Liste aktualisieren" label_selected="Liste aktualisieren" name="Refresh List"/>
240 name="Refresh List" /> 220 <button label="Objekte zurückgeben..." label_selected="Objekte zurückgeben..." name="Return objects..."/>
241 <button label="Objekte zurückgeben..." label_selected="Objekte zurückgeben..." 221 <name_list name="owner list">
242 name="Return objects..." /> 222 <column label="Typ" name="type"/>
243 <button label="" label_selected="" name="Type" tool_tip="Nach Typ sortieren" /> 223 <column label="Name" name="name"/>
244 <button label="Name" label_selected="Name" name="Name" tool_tip="Nach Name sortieren" /> 224 <column label="Zählen" name="count"/>
245 <button label="Zählen" label_selected="Zählen" name="Count" 225 <column label="Aktuellster" name="mostrecent"/>
246 tool_tip="Nach Anzahl sortieren" />
247 <name_list label="Zählen" name="owner list">
248 <column label="Typ" name="type" />
249 <column label="Name" name="name" />
250 <column label="Zählen" name="count" />
251 </name_list> 226 </name_list>
252 /&gt;
253 </panel> 227 </panel>
254 <panel label="Optionen" name="land_options_panel"> 228 <panel label="Optionen" name="land_options_panel">
255 <text type="string" length="1" name="allow_label"> 229 <text name="allow_label">
256 Anderen Einwohnern gestatten: 230 Anderen Einwohnern gestatten:
257 </text> 231 </text>
258 <check_box label="Terrain bearbeiten" name="edit land check" /> 232 <check_box label="Terrain bearbeiten" name="edit land check" tool_tip="Falls aktiviert, kann jeder Ihr Land terraformen. Am besten ist es, wenn Sie diese Option deaktiviert lassen. Sie können Ihr eigenes Land jederzeit bearbeiten."/>
259 <check_box label="Landmarken erstellen" name="check landmark" /> 233 <check_box label="Landmarken erstellen" name="check landmark"/>
260 <check_box label="Fliegen" name="check fly" /> 234 <check_box label="Fliegen" name="check fly" tool_tip="Falls aktiviert, können Einwohner auf Ihrem Land fliegen. Falls nicht aktiviert, können Einwohner lediglich auf Ihr Land fliegen und dort landen (dann jedoch nicht wieder weiterfliegen) oder über Ihr Land hinweg fliegen."/>
261 <text type="string" length="1" name="allow_label2"> 235 <text name="allow_label2">
262 Objekte erstellen: 236 Objekte erstellen:
263 </text> 237 </text>
264 <check_box label="Alle Einwohner" name="edit objects check" /> 238 <check_box label="Alle Einwohner" name="edit objects check"/>
265 <check_box label="Gruppe" name="edit group objects check" /> 239 <check_box label="Gruppe" name="edit group objects check"/>
266 <text type="string" length="1" name="allow_label3"> 240 <text name="allow_label3">
267 Objekteintritt: 241 Objekteintritt:
268 </text> 242 </text>
269 <check_box label="Alle Einwohner" name="all object entry check" /> 243 <check_box label="Alle Einwohner" name="all object entry check"/>
270 <check_box label="Gruppe" name="group object entry check" /> 244 <check_box label="Gruppe" name="group object entry check"/>
271 <text type="string" length="1" name="allow_label4"> 245 <text name="allow_label4">
272 Skripts ausführen: 246 Skripts ausführen:
273 </text> 247 </text>
274 <check_box label="Alle Einwohner" name="check other scripts" /> 248 <check_box label="Alle Einwohner" name="check other scripts"/>
275 <check_box label="Gruppe" name="check group scripts" /> 249 <check_box label="Gruppe" name="check group scripts"/>
276 <text type="string" length="1" name="land_options_label"> 250 <text name="land_options_label">
277 Landoptionen: 251 Landoptionen:
278 </text> 252 </text>
279 <check_box label="Sicher (kein Schaden)" name="check safe" /> 253 <check_box label="Sicher (kein Schaden)" name="check safe" tool_tip="Falls aktiviert, wird Land auf Option „Sicher“ eingestellt, Kampfschäden sind deaktiviert. Falls nicht aktiviert, sind Kampfschäden aktiviert."/>
280 <check_box label="Stoßen beschränken" name="PushRestrictCheck" 254 <check_box label="Kein Stoßen" name="PushRestrictCheck" tool_tip="Verhindert Skripte am Stoßen. Durch Aktivieren dieser Option verhindern Sie störendes Verhalten auf Ihrem Land."/>
281 tool_tip="llPushObject funktioniert nur in Skripts des Parzelleneigentümers oder in Skripts, die dem Stoßenden gehören." /> 255 <check_box label="Ort in Suche anzeigen (30 L$/Woche) unter" name="ShowDirectoryCheck" tool_tip="Diese Parzelle in Suchergebnissen anzeigen."/>
282 <check_box label="Ort in Suche anzeigen (30 L$/Woche) unter" name="ShowDirectoryCheck" 256 <combo_box name="land category" left="266" width="130">
283 tool_tip="Diese Parzelle in Suchergebnissen anzeigen." />
284 <combo_box left="266" max_chars="20" mouse_opaque="true" name="land category" width="130">
285 <combo_item name="AnyCategory"> 257 <combo_item name="AnyCategory">
286 Alle Kategorien 258 Alle Kategorien
287 </combo_item> 259 </combo_item>
@@ -322,67 +294,59 @@
322 Sonstige 294 Sonstige
323 </combo_item> 295 </combo_item>
324 </combo_box> 296 </combo_box>
325 <check_box label="Ab-18-Inhalt" name="MatureCheck" 297 <button label="?" label_selected="?" name="?"/>
326 tool_tip="Die Informationen oder Inhalte Ihrer Parzelle sind nicht jugenfrei." /> 298 <check_box label="Ab-18-Inhalt" name="MatureCheck" tool_tip="Die Informationen oder Inhalte Ihrer Parzelle sind nicht jugenfrei."/>
327 <check_box label="Liste im Web veröffentlichen" name="PublishCheck" 299 <text name="Snapshot:">
328 tool_tip="Veröffentlicht Informationen über Ihre Parzelle im Web." />
329 <button label="?" label_selected="?" name="?" />
330 <text type="string" length="1" name="Snapshot:">
331 Foto: 300 Foto:
332 </text> 301 </text>
333 <texture_picker label="" name="snapshot_ctrl" 302 <texture_picker label="" name="snapshot_ctrl" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
334 tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
335 <text type="string" length="1" name="Landing Point: (none)">
336 Landepunkt: (keiner)
337 </text>
338 <text name="landing_point"> 303 <text name="landing_point">
339 Landepunkt: [LANDING] 304 Landepunkt: [LANDING]
340 </text> 305 </text>
341 <text name="landing_point_none"> 306 <string name="landing_point_none">
342 (-) 307 (keiner)
343 </text> 308 </string>
344 <button label="Festlegen" label_selected="Festlegen" left="234" name="Set" 309 <button label="Festlegen" label_selected="Festlegen" name="Set" tool_tip="Legt den Landepunkt fest, an dem Besucher ankommen. Legt die Position Ihres Avatars innerhalb dieser Parzelle fest." width="70" left="234"/>
345 tool_tip="Den Landepunkt auf die aktuelle Position des Avatars setzen. Muss sich innerhalb dieser Parzelle befinden." 310 <button label="Löschen" label_selected="Löschen" name="Clear" tool_tip="Landepunkt löschen." width="70" left="312"/>
346 width="70" /> 311 <text name="Teleport Routing: ">
347 <button label="Löschen" label_selected="Löschen" left="312" name="Clear"
348 tool_tip="Landepunkt löschen." width="70" />
349 <text type="string" length="1" name="Teleport Routing: ">
350 Teleport-Route: 312 Teleport-Route:
351 </text> 313 </text>
352 <combo_box name="landing type" 314 <combo_box name="landing type" tool_tip="Teleport-Route -- festlegen, wie Teleports auf Ihrem Land gehandhabt werden sollen." >
353 tool_tip="Teleport Routing -- select how to handle teleports onto your land."> 315 <combo_item name="Blocked">
354 <combo_item type="string" length="1" name="Blocked">
355 Blockiert 316 Blockiert
356 </combo_item> 317 </combo_item>
357 <combo_item type="string" length="1" name="LandingPoint"> 318 <combo_item name="LandingPoint">
358 Landepunkt 319 Landepunkt
359 </combo_item> 320 </combo_item>
360 <combo_item type="string" length="1" name="Anywhere"> 321 <combo_item name="Anywhere">
361 Ãœberall 322 Ãœberall
362 </combo_item> 323 </combo_item>
363 </combo_box> 324 </combo_box>
364 <text name="push_restrict_text"> 325 <string name="push_restrict_text">
365 Stoßen beschränken 326 Kein Stoßen
366 </text> 327 </string>
367 <text name="push_restrict_region_text"> 328 <string name="push_restrict_region_text">
368 Stoßen beschränken (regional) 329 Kein Stoßen (regional)
369 </text> 330 </string>
370 </panel> 331 </panel>
371 <panel label="Medien" name="land_media_panel"> 332 <panel label="Medien" name="land_media_panel">
372 <text name="at URL:">
373 Medien-URL:
374 </text>
375 <button label="Einstellen..." label_selected="Einstellen..." name="set_media_url" />
376 <text name="with media:"> 333 <text name="with media:">
377 Medientyp: 334 Medientyp:
378 </text> 335 </text>
379 <combo_box name="media type" 336 <combo_box name="media type" tool_tip="Geben Sie einen URL für den Film, die Webseite oder ein anderes Medium ein"/>
380 tool_tip="Geben Sie einen URL für den Film, die Webseite oder ein anderes Medium ein" /> 337 <text name="at URL:">
338 Medien-URL:
339 </text>
340 <button label="Einstellen..." label_selected="Einstellen..." name="set_media_url"/>
381 <text name="Description:"> 341 <text name="Description:">
382 Inhalt: 342 Inhalt:
383 </text> 343 </text>
384 <line_editor name="url_description" 344 <line_editor name="url_description" tool_tip="Text, der neben der Abspielen/Laden-Schaltfläche angezeigt wird"/>
385 tool_tip="Text, der neben der Abspielen/Laden-Schaltfläche angezeigt wird" /> 345 <text name="Media texture:">
346 Textur
347ersetzen:
348 </text>
349 <texture_picker label="" name="media texture" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
386 <text name="replace_texture_help"> 350 <text name="replace_texture_help">
387 (Objekte mit dieser Textur zeigen nach Anklicken 351 (Objekte mit dieser Textur zeigen nach Anklicken
388des Abspielen-Pfeils den Film oder die Webseite an.) 352des Abspielen-Pfeils den Film oder die Webseite an.)
@@ -391,20 +355,15 @@ des Abspielen-Pfeils den Film oder die Webseite an.)
391 Medien- 355 Medien-
392Optionen: 356Optionen:
393 </text> 357 </text>
394 <check_box label="Als Schleife wiedergeben" name="media_loop" 358 <check_box label="Automatisch skalieren" name="media_auto_scale" tool_tip="Aktivieren Sie diese Option, um den Inhalt für diese Parzelle automatisch zu skalieren. Dies ist eventuell langsamer und die Qualität ist schlechter, aber Sie müssen keine weitere Texturskalierung oder -anpassung vornehmen."/>
395 tool_tip="Spielt das Medium in einer Schleife ab. Der Abspielvorgang wird immer wieder von vorne fortgesetzt." /> 359 <check_box label="Als Schleife wiedergeben" name="media_loop" tool_tip="Spielt das Medium in einer Schleife ab. Der Abspielvorgang wird immer wieder von vorne fortgesetzt."/>
396 <check_box label="Medien-URL verstecken" name="hide_media_url" 360 <check_box label="Medien-URL verstecken" name="hide_media_url" tool_tip="Aktivieren Sie diese Option, wenn Sie nicht möchten, dass unautorisierte Personen die Medien-URL sehen können. Diese Option ist für HTML-Medien nicht verfügbar."/>
397 tool_tip="Aktivieren Sie diese Option, wenn Sie nicht möchten, dass unautorisierte Personen die Medien-URL sehen können. Diese Option ist für HTML-Medien nicht verfügbar." /> 361 <check_box label="Musik-URL verstecken" name="hide_music_url" tool_tip="Aktivieren Sie diese Option, wenn Sie nicht möchten, dass unautorisierte Personen die Musik-URL sehen können."/>
398 <check_box label="Musik-URL verstecken" name="hide_music_url" 362 <text name="media_size" tool_tip="Darstellungsgröße von Webmedien, für Standard bei 0 belassen.">
399 tool_tip="Aktivieren Sie diese Option, wenn Sie nicht möchten, dass unautorisierte Personen die Musik-URL sehen können." />
400 <text name="media_size"
401 tool_tip="Darstellungsgröße von Webmedien, für Standard bei 0 belassen.">
402 Größe: 363 Größe:
403 </text> 364 </text>
404 <spinner name="media_size_width" 365 <spinner name="media_size_width" tool_tip="Darstellungsgröße von Webmedien, für Standard bei 0 belassen."/>
405 tool_tip="Darstellungsgröße von Webmedien, für Standard bei 0 belassen." /> 366 <spinner name="media_size_height" tool_tip="Darstellungsgröße von Webmedien, für Standard bei 0 belassen."/>
406 <spinner name="media_size_height"
407 tool_tip="Darstellungsgröße von Webmedien, für Standard bei 0 belassen." />
408 <text name="pixels"> 367 <text name="pixels">
409 Pixel 368 Pixel
410 </text> 369 </text>
@@ -414,28 +373,11 @@ Optionen:
414 <text name="Sound:"> 373 <text name="Sound:">
415 Sound: 374 Sound:
416 </text> 375 </text>
417 <check_box label="Umgebungssound auf diese Parzelle beschränken" name="check sound local" /> 376 <check_box label="Umgebungssound auf diese Parzelle beschränken" name="check sound local"/>
418 <text type="string" length="1" name="Music URL:">
419 Musik-URL:
420 </text>
421 <text type="string" length="1" name="Media texture:">
422 Textur
423ersetzen:
424 </text>
425 <text type="string" length="1" name="Replace this texture:">
426 Diese Textur ersetzen:
427 </text>
428 <texture_picker label="" name="media texture"
429 tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
430 <text type="string" length="1" name="with content from this URL:">
431 mit Inhalt von diesem URL ersetzen:
432 </text>
433 <check_box label="Automatisch skalieren" name="media_auto_scale"
434 tool_tip="Aktivieren Sie diese Option, um den Inhalt für diese Parzelle automatisch zu skalieren. Dies ist eventuell langsamer und die Qualität ist schlechter, aber Sie müssen keine weitere Texturskalierung oder -anpassung vornehmen." />
435 <text name="Voice settings:"> 377 <text name="Voice settings:">
436 Voice: 378 Voice:
437 </text> 379 </text>
438 <radio_group name="parcel_voice_channel"> 380 <radio_group name="parcel_voice_channel" width="310">
439 <radio_item name="Estate"> 381 <radio_item name="Estate">
440 Voice-Channel des Grundstücks verwenden 382 Voice-Channel des Grundstücks verwenden
441 </radio_item> 383 </radio_item>
@@ -448,67 +390,42 @@ ersetzen:
448 </radio_group> 390 </radio_group>
449 </panel> 391 </panel>
450 <panel label="Zugang" name="land_access_panel"> 392 <panel label="Zugang" name="land_access_panel">
451 <text type="string" length="1" name="Limit access to this parcel to:"> 393 <text name="Limit access to this parcel to:">
452 Zugang zu dieser Parzelle 394 Zugang zu dieser Parzelle
453 </text> 395 </text>
454 <check_box label="Freien Zugang erlauben" name="public_access" /> 396 <check_box label="Freien Zugang erlauben" name="public_access"/>
455 <text name="Only Allow"> 397 <text name="Only Allow">
456 Zugang verweigern für: 398 Zugang verweigern für:
457 </text> 399 </text>
458 <check_box 400 <check_box label="Einwohner, die keine Zahlungsinformationen bei Linden Lab hinterlegt haben" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen."/>
459 label="Einwohner, die keine Zahlungsinformationen bei Linden Lab hinterlegt haben" 401 <check_box label="Einwohner, die keine altersgeprüften Erwachsenen sind" name="limit_age_verified" tool_tip="Einwohner ohne Altersprüfung verbannen. Weitere Informationen finden Sie auf support.secondlife.com."/>
460 name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen." />
461 <check_box label="Einwohner, die keine altersgeprüften Erwachsenen sind"
462 name="limit_age_verified"
463 tool_tip="Einwohner ohne Altersprüfung verbannen. Weitere Informationen finden Sie auf support.secondlife.com." />
464 <string name="estate_override"> 402 <string name="estate_override">
465 Eine oder mehrere dieser Optionen gelten auf Grundstücksebene 403 Eine oder mehrere dieser Optionen gelten auf Grundstücksebene
466 </string> 404 </string>
467 <check_box label="Gruppenzugang erlauben: [GROUP]" name="GroupCheck" 405 <check_box label="Gruppenzugang erlauben: [GROUP]" name="GroupCheck" tool_tip="Gruppe im Register „Allgemein“ festlegen."/>
468 tool_tip="Gruppe im Register &apos;Allgemein&apos; festlegen." /> 406 <check_box label="Pässe verkaufen an:" name="PassCheck" tool_tip="Ermöglicht befristeten Zugang zu dieser Parzelle"/>
469 <combo_box name="pass_combo"> 407 <combo_box name="pass_combo">
470 <combo_item name="Anyone"> 408 <combo_item name="Anyone">
471 Jeder 409 Jeden
472 </combo_item> 410 </combo_item>
473 <combo_item name="Group"> 411 <combo_item name="Group">
474 Gruppe 412 Gruppe
475 </combo_item> 413 </combo_item>
476 </combo_box> 414 </combo_box>
415 <spinner label="Preis in L$:" name="PriceSpin"/>
416 <spinner label="Online-Zeit:" name="HoursSpin"/>
477 <text label="Immer erlauben" name="AllowedText"> 417 <text label="Immer erlauben" name="AllowedText">
478 Zulässige Einwohner 418 Zulässige Einwohner
479 </text> 419 </text>
480 <button label="Hinzufügen..." label_selected="Hinzufügen..." name="add_allowed" /> 420 <name_list name="AccessList" tool_tip="([LISTED] angezeigt, max. [MAX])"/>
481 <button label="Entfernen" label_selected="Entfernen" name="remove_allowed" /> 421 <button label="Hinzufügen..." label_selected="Hinzufügen..." name="add_allowed"/>
482 <check_box label="Verbannen" name="BanCheck"> 422 <button label="Entfernen" label_selected="Entfernen" name="remove_allowed"/>
423 <text label="Verbannen" name="BanCheck">
483 Verbannte Einwohner 424 Verbannte Einwohner
484 </check_box> 425 </text>
485 <name_list name="AccessList" tool_tip="([LISTED] angezeigt, max. [MAX])"> 426 <name_list name="BannedList" tool_tip="([LISTED] angezeigt, max. [MAX])"/>
486 <column label="Allowed Residents" name="name" /> 427 <button label="Hinzufügen..." label_selected="Hinzufügen..." name="add_banned"/>
487 </name_list> 428 <button label="Entfernen" label_selected="Entfernen" name="remove_banned"/>
488 <button label="Hinzufügen..." label_selected="Hinzufügen..." name="Add..." />
489 <button label="Entfernen" label_selected="Entfernen" name="Remove" />
490 <check_box label="Pässe verkaufen an:" name="PassCheck"
491 tool_tip="Ermöglicht befristeten Zugang zu dieser Parzelle" />
492 <spinner label="Preis in L$:" name="PriceSpin" />
493 <spinner label="Online-Zeit:" name="HoursSpin" />
494 <name_list name="BannedList" tool_tip="([LISTED] angezeigt, max. [MAX])" />
495 <button label="Hinzufügen..." label_selected="Hinzufügen..." name="add_banned" />
496 <button label="Entfernen" label_selected="Entfernen" name="remove_banned" />
497 </panel>
498 <panel label="Verbannen" name="land_ban_panel">
499 <check_box label="Diese Avatare verbannen: ([LISTED] angezeigt, max. [MAX])"
500 name="LandBanCheck" />
501 <name_list name="LandBanList">
502 <column label="Banned Residents" name="name" />
503 </name_list>
504 <button label="Hinzufügen..." label_selected="Hinzufügen..." name="Add..." />
505 <button label="Entfernen" label_selected="Entfernen" name="Remove" />
506 <text type="string" length="1" name="Deny by Payment Status:">
507 Nach Zahlungsstatus verweigern:
508 </text>
509 <check_box label="Verweigern - keine archivierte Zahlungsinfo" name="DenyAnonymousCheck" />
510 <check_box label="Verweigern - Zahlungsinfo archiviert" name="DenyIdentifiedCheck" />
511 <check_box label="Verweigern - Zahlungsinfo verwendet" name="DenyTransactedCheck" />
512 </panel> 429 </panel>
513 </tab_container> 430 </tab_container>
514</floater> 431</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_animation_preview.xml b/linden/indra/newview/skins/default/xui/de/floater_animation_preview.xml
index 3cbcf08..299b6a7 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_animation_preview.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_animation_preview.xml
@@ -1,42 +1,20 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Animation Preview" title=""> 2<floater name="Animation Preview" title="">
3 <text name="name_label"> 3 <text name="name_label">
4 Name: 4 Name:
5 </text> 5 </text>
6 <line_editor name="name_form" /> 6 <line_editor name="name_form"/>
7 <text name="description_label"> 7 <text name="description_label">
8 Beschreibung: 8 Beschreibung:
9 </text> 9 </text>
10 <spinner label="Priorität" name="priority" 10 <spinner label="Priorität" name="priority" tool_tip="Steuert, welche Animationen von dieser Animation überschrieben werden können."/>
11 tool_tip="Steuert, welche Animationen von dieser Animation überschrieben werden können." /> 11 <check_box bottom_delta="-18" label="Schleife" name="loop_check" tool_tip="Erzeugt eine Animationsschleife."/>
12 <text name="preview_label" width="97"> 12 <spinner label="In (%)" name="loop_in_point" tool_tip="Anfang einer Animationsschleife festlegen."/>
13 Vorschau während: 13 <spinner label="Aus (%)" name="loop_out_point" tool_tip="Ende einer Animationsschleife festlegen."/>
14 </text>
15 <combo_box label="" left_delta="107" name="preview_base_anim"
16 tool_tip="Use this to test your animation behavior while your avatar performs common actions.">
17 <combo_item name="Standing">
18 Stehend
19 </combo_item>
20 <combo_item name="Walking">
21 Geht
22 </combo_item>
23 <combo_item name="Sitting">
24 Sitzt
25 </combo_item>
26 <combo_item name="Flying">
27 Fliegend
28 </combo_item>
29 </combo_box>
30 <check_box label="Schleife" name="loop_check" tool_tip="Erzeugt eine Animationsschleife." bottom_delta="-18" />
31 <spinner label="In (%)" name="loop_in_point"
32 tool_tip="Anfang einer Animationsschleife festlegen." />
33 <spinner label="Aus (%)" name="loop_out_point"
34 tool_tip="Ende einer Animationsschleife festlegen." />
35 <text name="hand_label"> 14 <text name="hand_label">
36 Handhaltung 15 Handhaltung
37 </text> 16 </text>
38 <combo_box label="" name="hand_pose_combo" 17 <combo_box label="" name="hand_pose_combo" tool_tip="Steuert während der Animation die Bewegung der Hände.">
39 tool_tip="Controls what hands do during animation.">
40 <combo_item name="Spread"> 18 <combo_item name="Spread">
41 Dehnen 19 Dehnen
42 </combo_item> 20 </combo_item>
@@ -80,10 +58,9 @@
80 <text name="emote_label"> 58 <text name="emote_label">
81 Ausdruck 59 Ausdruck
82 </text> 60 </text>
83 <combo_box label="" name="emote_combo" 61 <combo_box label="" name="emote_combo" tool_tip="Steuert Gesichtsregungen während der Animation.">
84 tool_tip="Controls what face does during animation.">
85 <combo_item name="[None]"> 62 <combo_item name="[None]">
86 [None] 63 [Keine]
87 </combo_item> 64 </combo_item>
88 <combo_item name="Aaaaah"> 65 <combo_item name="Aaaaah">
89 Aaaaah 66 Aaaaah
@@ -119,7 +96,7 @@
119 Lachen 96 Lachen
120 </combo_item> 97 </combo_item>
121 <combo_item name="Plllppt"> 98 <combo_item name="Plllppt">
122 Plllppt 99 Bäääh
123 </combo_item> 100 </combo_item>
124 <combo_item name="Repulsed"> 101 <combo_item name="Repulsed">
125 Zurückgestoßen 102 Zurückgestoßen
@@ -143,31 +120,46 @@
143 Sorgenvoll 120 Sorgenvoll
144 </combo_item> 121 </combo_item>
145 </combo_box> 122 </combo_box>
146 <spinner label="Eingang glätten (s)" name="ease_in_time" 123 <text name="preview_label" width="97">
147 tool_tip="Einblendungsgeschwindigkeit von Animationen (in Sekunden)." label_width="105" width="175" /> 124 Vorschau während:
148 <spinner label="Ausgang glätten (s)" name="ease_out_time" 125 </text>
149 tool_tip="Ausblendungsgeschwindigkeit von Animationen (in Sekunden)." left="10" bottom_delta="-20" label_width="105" width="175" /> 126 <combo_box label="" left_delta="107" name="preview_base_anim" tool_tip="Hiermit können Sie das Verhalten Ihres Avatars testen, während Ihr Avatar normale Bewegungen ausführt.">
150 <button label="" name="play_btn" tool_tip="Animation stoppen/wiedergeben." bottom_delta="-32" /> 127 <combo_item name="Standing">
151 <button label="" name="stop_btn" tool_tip="Animation anhalten" /> 128 Stehend
152 <slider label="" name="playback_slider" /> 129 </combo_item>
130 <combo_item name="Walking">
131 Geht
132 </combo_item>
133 <combo_item name="Sitting">
134 Sitzt
135 </combo_item>
136 <combo_item name="Flying">
137 Fliegend
138 </combo_item>
139 </combo_box>
140 <spinner label="Eingang glätten (s)" label_width="105" name="ease_in_time" tool_tip="Einblendungsgeschwindigkeit von Animationen (in Sekunden)." width="175"/>
141 <spinner bottom_delta="-20" label="Ausgang glätten (s)" label_width="105" left="10" name="ease_out_time" tool_tip="Ausblendungsgeschwindigkeit von Animationen (in Sekunden)." width="175"/>
142 <button bottom_delta="-32" label="" name="play_btn" tool_tip="Animation stoppen/wiedergeben."/>
143 <button label="" name="stop_btn" tool_tip="Animation anhalten"/>
144 <slider label="" name="playback_slider"/>
153 <text name="bad_animation_text"> 145 <text name="bad_animation_text">
154 Animationsdatei konnte nicht gelesen werden. 146 Animationsdatei konnte nicht gelesen werden.
155 147
156 Wir empfehlen exportierte BVH-Dateien aus Poser 4. 148Wir empfehlen exportierte BVH-Dateien aus Poser 4.
157 </text> 149 </text>
158 <button label="Abbrechen" name="cancel_btn" /> 150 <button label="Abbrechen" name="cancel_btn"/>
159 <button label="Hochladen ([AMOUNT] L$)" name="ok_btn" /> 151 <button label="Hochladen ([AMOUNT] L$)" name="ok_btn"/>
160 <text name="failed_to_initialize"> 152 <string name="failed_to_initialize">
161 Bewegung konnte nicht initialisiert werden 153 Bewegung konnte nicht initialisiert werden
162 </text> 154 </string>
163 <text name="anim_too_long"> 155 <string name="anim_too_long">
164 Animationsdatei ist [LENGTH] Sekunden lang. 156 Animationsdatei ist [LENGTH] Sekunden lang.
165 157
166Maximal erlaubt sind [MAX_LENGTH] Sekunden. 158Maximal erlaubt sind [MAX_LENGTH] Sekunden.
167 </text> 159 </string>
168 <text name="failed_file_read"> 160 <string name="failed_file_read">
169 Animationsdatei konnte nicht gelesen werden. 161 Animationsdatei konnte nicht gelesen werden.
170 162
171[STATUS] 163[STATUS]
172 </text> 164 </string>
173</floater> 165</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_avatar_picker.xml b/linden/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
index f02ffd2..b6b8792 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
@@ -12,6 +12,6 @@ Einwohners ein:
12 <button label="Auswählen" label_selected="Auswählen" name="Select" /> 12 <button label="Auswählen" label_selected="Auswählen" name="Select" />
13 <button label="Schließen" label_selected="Schließen" name="Close" /> 13 <button label="Schließen" label_selected="Schließen" name="Close" />
14 <text name="NotFound"> 14 <text name="NotFound">
15 &apos;[TEXT]&apos; nicht gefunden 15 „[TEXT]“ nicht gefunden
16 </text> 16 </text>
17</floater> 17</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_avatar_textures.xml b/linden/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
index edf80f1..13c4156 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
@@ -1,19 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="avatar_texture_debug" title="Avatar-Texturen"> 2<floater name="avatar_texture_debug" title="Avatar-Texturen">
3 <text name=""> 3 <text name="baked_label" width="128">
4 Geformte Texturen not sure about this one ... missing context
5 </text>
6 <text name="">
7 Zusammengesetzte Texturen
8 </text>
9 <text name="baked_label">
10 Gebackene Texturen 4 Gebackene Texturen
11 </text> 5 </text>
12 <text name="composite_label"> 6 <text name="composite_label" width="150">
13 Zusammengesetzte Texturen 7 Zusammengesetzte Texturen
14 </text> 8 </text>
15 <texture_picker label="Kopf" name="baked_head" /> 9 <texture_picker label="Kopf" name="baked_head" />
16 <texture_picker label="Make-Uup" name="head_bodypaint" /> 10 <texture_picker label="Make-Up" name="head_bodypaint" />
17 <texture_picker label="Haar" name="hair" /> 11 <texture_picker label="Haar" name="hair" />
18 <button label="Abladen" label_selected="Abladen" name="Dump" /> 12 <button label="Abladen" label_selected="Abladen" name="Dump" />
19 <texture_picker label="Augen" name="baked_eyes" /> 13 <texture_picker label="Augen" name="baked_eyes" />
diff --git a/linden/indra/newview/skins/default/xui/de/floater_beacons.xml b/linden/indra/newview/skins/default/xui/de/floater_beacons.xml
new file mode 100644
index 0000000..d1ec9d9
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/de/floater_beacons.xml
@@ -0,0 +1,15 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="beacons" title="Beacons">
3 <panel name="beacons_panel">
4 <check_box label="Auf Berührung beschränkte Skriptobjekte" name="touch_only"/>
5 <check_box label="Skripting-Objekte" name="scripted"/>
6 <check_box label="Physische Objekte" name="physical"/>
7 <check_box label="Soundquellen" name="sounds"/>
8 <check_box label="Partikelquellen" name="particles"/>
9 <check_box label="Glanzlichter anzeigen" name="highlights"/>
10 <check_box label="Beacons anzeigen" name="beacons"/>
11 <text name="beacon_width_label">
12 Beacon-Breite:
13 </text>
14 </panel>
15</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_buy_contents.xml b/linden/indra/newview/skins/default/xui/de/floater_buy_contents.xml
index c2ee63e..01858b3 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_buy_contents.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_buy_contents.xml
@@ -1,12 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_buy_contents" title="Inhalte kaufen"> 2<floater name="floater_buy_contents" title="Inhalte kaufen" min_width="300">
3 <text name="contains_text"> 3 <text name="contains_text">
4 [NAME] enthält: 4 [NAME] enthält:
5 </text> 5 </text>
6 <text name="buy_text"> 6 <text name="buy_text">
7 [AMOUNT] L$ von [NAME] kaufen? 7 [AMOUNT] L$ von [NAME] kaufen?
8 </text> 8 </text>
9 <button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn" /> 9 <button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn" width="73" />
10 <button label="Kaufen" label_selected="Kaufen" name="buy_btn" /> 10 <button label="Kaufen" label_selected="Kaufen" name="buy_btn" />
11 <check_box label="Kleidung jetzt anziehen" name="wear_check" /> 11 <check_box label="Kleidung jetzt anziehen" name="wear_check" />
12 <text name="no_copy_text"> 12 <text name="no_copy_text">
diff --git a/linden/indra/newview/skins/default/xui/de/floater_buy_land.xml b/linden/indra/newview/skins/default/xui/de/floater_buy_land.xml
index adfa766..332c900 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_buy_land.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_buy_land.xml
@@ -52,7 +52,7 @@
52 <text name="info_price"> 52 <text name="info_price">
53 1500 L$, Objekte eingeschlossen 53 1500 L$, Objekte eingeschlossen
54 </text> 54 </text>
55 <text name="info_action"> 55 <text name="info_action" width="275">
56 Bei Landkauf: 56 Bei Landkauf:
57 </text> 57 </text>
58 <text name="error_message"> 58 <text name="error_message">
@@ -204,9 +204,7 @@ unterstützt [AMOUNT2] Objekte
204 mit Objekten verkauft 204 mit Objekten verkauft
205 </text> 205 </text>
206 <text name="insufficient_land_credits"> 206 <text name="insufficient_land_credits">
207 Die Gruppe [GROUP] benötigt ausreichende 207 Die Gruppe [GROUP] benötigt ausreichende Landnutzungsrechte für diese Parzelle, um den Kauf abzuschließen.
208Landnutzungsrechte für diese Parzelle, um den Kauf
209abzuschließen.
210 </text> 208 </text>
211 <text name="have_enough_lindens"> 209 <text name="have_enough_lindens">
212 Sie haben [AMOUNT] L$, genug zum Kauf dieses Landes. 210 Sie haben [AMOUNT] L$, genug zum Kauf dieses Landes.
diff --git a/linden/indra/newview/skins/default/xui/de/floater_buy_object.xml b/linden/indra/newview/skins/default/xui/de/floater_buy_object.xml
index 910df26..3cfa59f 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_buy_object.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_buy_object.xml
@@ -6,7 +6,7 @@
6 <text name="buy_text"> 6 <text name="buy_text">
7 [AMOUNT] L$ von [NAME] kaufen? 7 [AMOUNT] L$ von [NAME] kaufen?
8 </text> 8 </text>
9 <button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn" /> 9 <button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn" width="73" />
10 <button label="Kaufen" label_selected="Kaufen" name="buy_btn" /> 10 <button label="Kaufen" label_selected="Kaufen" name="buy_btn" />
11 <text name="title_buy_text"> 11 <text name="title_buy_text">
12 Kaufen 12 Kaufen
diff --git a/linden/indra/newview/skins/default/xui/de/floater_chat_history.xml b/linden/indra/newview/skins/default/xui/de/floater_chat_history.xml
index 94118a0..4a1d91b 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_chat_history.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_chat_history.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="chat floater" title="Lokaler Chat"> 2<floater name="chat floater" title="Lokaler Chat">
3 <string name="ringing"> 3 <string name="ringing">
4 Verbindung mit In-Welt-Voice-Chat... 4 Verbindung mit In-Welt-Voice-Chat...
@@ -42,6 +42,9 @@
42 <flyout_button_item name="say_item"> 42 <flyout_button_item name="say_item">
43 Reden 43 Reden
44 </flyout_button_item> 44 </flyout_button_item>
45 <flyout_button_item name="whisper_item">
46 Flüstern
47 </flyout_button_item>
45 </flyout_button> 48 </flyout_button>
46 </panel> 49 </panel>
47 </layout_panel> 50 </layout_panel>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_color_picker.xml b/linden/indra/newview/skins/default/xui/de/floater_color_picker.xml
index c540ad3..f53a113 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_color_picker.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_color_picker.xml
@@ -13,10 +13,10 @@
13 Farbton: 13 Farbton:
14 </text> 14 </text>
15 <text name="s_val_text"> 15 <text name="s_val_text">
16 Sat.: 16 Sätt.:
17 </text> 17 </text>
18 <text name="l_val_text"> 18 <text name="l_val_text">
19 Lum: 19 Hell.:
20 </text> 20 </text>
21 <check_box label="Sofort übernehmen" name="apply_immediate" /> 21 <check_box label="Sofort übernehmen" name="apply_immediate" />
22 <button label="" label_selected="" name="color_pipette" /> 22 <button label="" label_selected="" name="color_pipette" />
diff --git a/linden/indra/newview/skins/default/xui/de/floater_customize.xml b/linden/indra/newview/skins/default/xui/de/floater_customize.xml
index 65f4fa7..7ceb7bd 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_customize.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_customize.xml
@@ -108,7 +108,7 @@ und diese anziehen.
108 <button label="Farbe" label_selected="Farbe" name="Color" /> 108 <button label="Farbe" label_selected="Farbe" name="Color" />
109 <button label="Stil" label_selected="Stil" name="Style" /> 109 <button label="Stil" label_selected="Stil" name="Style" />
110 <button label="Augenbrauen" label_selected="Augenbrauen" name="Eyebrows" /> 110 <button label="Augenbrauen" label_selected="Augenbrauen" name="Eyebrows" />
111 <button label="Gesichts" label_selected="Gesichts" name="Facial" /> 111 <button label="Gesichtshaar" label_selected="Gesichtshaar" name="Facial" />
112 <text type="string" length="1" name="title"> 112 <text type="string" length="1" name="title">
113 [DESC] 113 [DESC]
114 </text> 114 </text>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_directory.xml b/linden/indra/newview/skins/default/xui/de/floater_directory.xml
index c149fb4..8c4a989 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_directory.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_directory.xml
@@ -291,11 +291,11 @@ Zeit gemessen, die Benutzer dort verbringen.
291 <button label="Suchen" label_selected="Suchen" name="Search" /> 291 <button label="Suchen" label_selected="Suchen" name="Search" />
292 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 292 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
293 bottom="-38" drop_shadow_visible="true" follows="left|top" 293 bottom="-38" drop_shadow_visible="true" follows="left|top"
294 font="SansSerifSmall" h_pad="0" halign="left" height="32" left="354" 294 font="SansSerifSmall" h_pad="0" halign="left" height="32" left="374"
295 mouse_opaque="true" name="land" v_pad="0" width="430"> 295 mouse_opaque="true" name="land" v_pad="0" width="430">
296 Land kann direkt für Linden Dollar (L$) oder bei einer Auktion für L$ 296 Land kann direkt für Linden Dollar (L$) oder bei einer Auktion für L$
297oder US$ erworben werden. Um direkt zu kaufen, klicken Sie auf dem betreffenden 297oder US$ erworben werden. Um direkt zu kaufen, klicken sie auf den
298Land in der Titelleiste auf den Namen. 298Namen des Landes in der Titelleiste
299 </text> 299 </text>
300 <scroll_list name="results"> 300 <scroll_list name="results">
301 <column label="" name="icon" /> 301 <column label="" name="icon" />
diff --git a/linden/indra/newview/skins/default/xui/de/floater_env_settings.xml b/linden/indra/newview/skins/default/xui/de/floater_env_settings.xml
index 3e32e45..3717ff6 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_env_settings.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_env_settings.xml
@@ -14,7 +14,7 @@
14 </text> 14 </text>
15 <color_swatch name="EnvWaterColor" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" /> 15 <color_swatch name="EnvWaterColor" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
16 <text name="EnvWaterFogText"> 16 <text name="EnvWaterFogText">
17 Wasser 17 Wasser-
18trübung 18trübung
19 </text> 19 </text>
20 <button label="Grundstückszeit verw." name="EnvUseEstateTimeButton" /> 20 <button label="Grundstückszeit verw." name="EnvUseEstateTimeButton" />
diff --git a/linden/indra/newview/skins/default/xui/de/floater_god_tools.xml b/linden/indra/newview/skins/default/xui/de/floater_god_tools.xml
index 6356dff..dcb6982 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_god_tools.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_god_tools.xml
@@ -1,25 +1,25 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="godtools floater" title="Gott-Tools"> 2<floater name="godtools floater" title="Gott-Werkzeuge">
3 <tab_container name="GodTools Tabs"> 3 <tab_container name="GodTools Tabs">
4 <panel label="Raster" name="grid"> 4 <panel label="Raster" name="grid">
5 <button label="Alle Benutzer hinauswerfen" label_selected="Alle Benutzer hinauswerfen" 5 <button label="Alle Benutzer hinauswerfen" label_selected="Alle Benutzer hinauswerfen"
6 name="Kick all users" /> 6 name="Kick all users" width="175" />
7 <button label="Sichtbarkeits-Cache dieser Regionskarte leeren" 7 <button label="Sichtbarkeits-Cache dieser Regionskarte leeren"
8 label_selected="Sichtbarkeits-Cache dieser Regionskarte leeren" 8 label_selected="Sichtbarkeits-Cache dieser Regionskarte leeren"
9 name="Flush This Region&apos;s Map Visibility Caches" /> 9 name="Flush This Region&apos;s Map Visibility Caches" width="285" />
10 </panel> 10 </panel>
11 <panel label="Region" name="region"> 11 <panel label="Region" name="region">
12 <text name="Sim Name:"> 12 <text name="Sim Name:" width="55">
13 Sim-Name: 13 Sim-Name:
14 </text> 14 </text>
15 <check_box label="Startbereich Einleitung" name="check prelude" 15 <check_box label="Startbereich Einleitung" name="check prelude"
16 tool_tip="Diese Region zu einem Startbereich machen." /> 16 tool_tip="Diese Region zu einem Startbereich machen." />
17 <check_box label="Sonne fest" name="check fixed sun" 17 <check_box label="Sonne fest" name="check fixed sun"
18 tool_tip="Fixiert den Sonnenstand (wie in &apos;Region/Grundstück&apos; &gt; &apos;Terrain&apos;." /> 18 tool_tip="Fixiert den Sonnenstand (wie in „Region/Grundstück“ &gt; „Terrain“." />
19 <check_box label="Zuhause auf Teleport zurücksetzen" name="check reset home" 19 <check_box label="Zuhause auf Teleport &#10;zurücksetzen" name="check reset home"
20 tool_tip="Wenn Einwohner wegteleportieren, ihr Zuhause auf Zielposition setzen." /> 20 tool_tip="Wenn Einwohner wegteleportieren, ihr Zuhause auf Zielposition setzen." height="32" />
21 <check_box label="Sichtbar" name="check visible" 21 <check_box label="Sichtbar" name="check visible"
22 tool_tip="Diese Region für Nicht-Götter sichtbar machen." /> 22 tool_tip="Diese Region für Nicht-Götter sichtbar machen." bottom_delta="-32" />
23 <check_box label="Schaden" name="check damage" 23 <check_box label="Schaden" name="check damage"
24 tool_tip="Schaden in dieser Region aktivieren." /> 24 tool_tip="Schaden in dieser Region aktivieren." />
25 <check_box label="Trafficüberwachung blockieren" name="block dwell" 25 <check_box label="Trafficüberwachung blockieren" name="block dwell"
@@ -29,28 +29,30 @@
29 <check_box label="Sandkasten" name="is sandbox" 29 <check_box label="Sandkasten" name="is sandbox"
30 tool_tip="Sandkastenregion ein-/ausschalten." /> 30 tool_tip="Sandkastenregion ein-/ausschalten." />
31 <button label="Terrain formen" label_selected="Terrain formen" name="Bake Terrain" 31 <button label="Terrain formen" label_selected="Terrain formen" name="Bake Terrain"
32 tool_tip="Das aktuelle Terrain als Standard speichern." /> 32 tool_tip="Das aktuelle Terrain als Standard speichern." width="118" />
33 <button label="Terrain zurücksetzen" label_selected="Terrain zurücksetzen" 33 <button label="Terrain zurücksetzen" label_selected="Terrain zurücksetzen"
34 name="Revert Terrain" 34 name="Revert Terrain"
35 tool_tip="Das aktuelle Terrain mit dem Standard ersetzen." /> 35 tool_tip="Das aktuelle Terrain mit dem Standard ersetzen." width="118" />
36 <button label="Terrain tauschen" label_selected="Terrain tauschen" name="Swap Terrain" 36 <button label="Terrain tauschen" label_selected="Terrain tauschen" name="Swap Terrain"
37 tool_tip="Aktuelles Terrain gegen Standard austauschen." /> 37 tool_tip="Aktuelles Terrain gegen Standard austauschen." width="118" />
38 <text name="estate id"> 38 <text name="estate id">
39 Grundstücks-ID: 39 Grundstücks-ID:
40 </text> 40 </text>
41 <text name="parent id"> 41 <text name="parent id">
42 Ãœbergeordnet-ID: 42 Parent ID:
43 </text> 43 </text>
44 <line_editor name="parentestate" tool_tip="Das übergeordnete Grundstück dieser Region" /> 44 <line_editor name="parentestate" tool_tip="Das übergeordnete Grundstück dieser Region" />
45 <text name="Grid Pos: "> 45 <text name="Grid Pos: ">
46 Raster-Pos.: 46 Raster-Pos.:
47 </text> 47 </text>
48 <line_editor name="gridposx" tool_tip="Die X-Rasterposition dieser Region" /> 48 <line_editor name="gridposx" tool_tip="Die X-Rasterposition dieser Region" left_delta="110" width="35" />
49 <line_editor name="gridposy" tool_tip="Die Y-Rasterposition dieser Region" /> 49 <line_editor name="gridposy" tool_tip="Die Y-Rasterposition dieser Region" left_delta="45" width="35" />
50 <text name="Redirect to Grid: "> 50 <text name="Redirect to Grid: " >
51 Auf Raster umleiten: 51 Auf Raster umleiten:
52 </text> 52 </text>
53 <text name="billable factor text"> 53 <line_editor left_delta="110" name="redirectx" width="35" />
54 <line_editor left_delta="45" name="redirecty" width="35" />
55 <text name="billable factor text" font="SansSerifSmall" >
54 Abrechnungsfaktor: 56 Abrechnungsfaktor:
55 </text> 57 </text>
56 <text name="land cost text"> 58 <text name="land cost text">
@@ -62,21 +64,21 @@
62 tool_tip="Klicken Sie hier, um die obigen Änderungen zu übernehmen." /> 64 tool_tip="Klicken Sie hier, um die obigen Änderungen zu übernehmen." />
63 <button label="Region auswählen" label_selected="Region auswählen" 65 <button label="Region auswählen" label_selected="Region auswählen"
64 name="Select Region" 66 name="Select Region"
65 tool_tip="Die gesamte Region mit dem Landwerkzeug auswählen." /> 67 tool_tip="Die gesamte Region mit dem Landwerkzeug auswählen." width="130" left="136"/>
66 <button label="Automatisch speichern" label_selected="Automatisch speichern" 68 <button label="Automatisch speichern" label_selected="Automatisch speichern"
67 name="Autosave now" 69 name="Autosave now"
68 tool_tip="gzipped-Status im Autosave-Verzeichnis speichern." /> 70 tool_tip="gzipped-Status im Autosave-Verzeichnis speichern." width="130" left="136"/>
69 </panel> 71 </panel>
70 <panel label="Objekte" name="objects"> 72 <panel label="Objekte" name="objects">
71 <text name="Sim Name:"> 73 <text name="Sim Name:" width="55">
72 Sim-Name: 74 Sim-Name:
73 </text> 75 </text>
74 <text name="region name"> 76 <text name="region name">
75 Walisisch 77 Welsh
76 </text> 78 </text>
77 <check_box label="Skripts deaktivieren" name="disable scripts" 79 <check_box label="Skripts &#10;deaktivieren" name="disable scripts"
78 tool_tip="Skripts in dieser Region komplett abschalten" /> 80 tool_tip="Skripts in dieser Region komplett abschalten" />
79 <check_box label="Kollisionen deaktivieren" name="disable collisions" 81 <check_box label="Kollisionen &#10;deaktivieren" name="disable collisions"
80 tool_tip="Nicht-Avatar-Kollisionen in dieser Region komplett abschalten" /> 82 tool_tip="Nicht-Avatar-Kollisionen in dieser Region komplett abschalten" />
81 <check_box label="Physik deaktivieren" name="disable physics" 83 <check_box label="Physik deaktivieren" name="disable physics"
82 tool_tip="Die Physik in dieser Region komplett abschalten" /> 84 tool_tip="Die Physik in dieser Region komplett abschalten" />
@@ -101,12 +103,12 @@
101 tool_tip="Alle dem Ziel gehörenden Objekte in dieser Region löschen. Objekte (nicht kopierfähig) werden zurückgegeben." /> 103 tool_tip="Alle dem Ziel gehörenden Objekte in dieser Region löschen. Objekte (nicht kopierfähig) werden zurückgegeben." />
102 <button label="Top-Kollisionsobjekte" label_selected="Top-Kollisionsobjekte" 104 <button label="Top-Kollisionsobjekte" label_selected="Top-Kollisionsobjekte"
103 name="Get Top Colliders" 105 name="Get Top Colliders"
104 tool_tip="Zeigt eine Liste der Objekte mit den meisten Callbacks in der nahen Phase an." /> 106 tool_tip="Zeigt eine Liste der Objekte mit den meisten Callbacks in der nahen Phase an." width="130" />
105 <button label="Top-Skripts" label_selected="Top-Skripts" name="Get Top Scripts" 107 <button label="Top-Skripts" label_selected="Top-Skripts" name="Get Top Scripts"
106 tool_tip="Zeigt eine Liste der Objekte an, die die meiste Zeit über Skripts ausführen." /> 108 tool_tip="Zeigt eine Liste der Objekte an, die die meiste Zeit über Skripts ausführen." width="130" />
107 <button label="Scripting-Ãœbersicht" label_selected="Scripting-Ãœbersicht" 109 <button label="Scripting-Ãœbersicht" label_selected="Scripting-Ãœbersicht"
108 name="Scripts digest" 110 name="Scripts digest"
109 tool_tip="Zeigt eine Liste aller Skripts mit Häufigkeit an." /> 111 tool_tip="Zeigt eine Liste aller Skripts mit Häufigkeit an." width="130" />
110 </panel> 112 </panel>
111 <panel label="Anfrage" name="request"> 113 <panel label="Anfrage" name="request">
112 <text name="Destination:"> 114 <text name="Destination:">
diff --git a/linden/indra/newview/skins/default/xui/de/floater_group_info.xml b/linden/indra/newview/skins/default/xui/de/floater_group_info.xml
index 9d1dde8..7d07c9f 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_group_info.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_group_info.xml
@@ -84,7 +84,7 @@
84 Gruppenwahl 84 Gruppenwahl
85 </text> 85 </text>
86 <text name="instructions"> 86 <text name="instructions">
87 Klicken Sie auf &apos;Wahl starten&apos;, um eine neue Wahl zu starten. 87 Klicken Sie auf „Wahl starten“, um eine neue Wahl zu starten.
88Zu den Kandidaten gehören alle Mitglieder, die keine Officer sind. 88Zu den Kandidaten gehören alle Mitglieder, die keine Officer sind.
89 </text> 89 </text>
90 <text name="lbl"> 90 <text name="lbl">
@@ -134,7 +134,7 @@ Zu den Kandidaten gehören alle Mitglieder, die keine Officer sind.
134 Gruppenanfragen 134 Gruppenanfragen
135 </text> 135 </text>
136 <text name="instructions"> 136 <text name="instructions">
137 Keine aktiven Anfragen. Klicken Sie auf &apos;Neue Anfrage&apos;, 137 Keine aktiven Anfragen. Klicken Sie auf „Neue Anfrage“,
138um eine neue Anfrage zu erstellen. 138um eine neue Anfrage zu erstellen.
139 </text> 139 </text>
140 <text name="proposal_lbl"> 140 <text name="proposal_lbl">
@@ -191,7 +191,7 @@ um eine neue Anfrage zu erstellen.
191 Sie können die Abstimmergebisse anzeigen, indem Sie die Abstimmung auswählen und auf 191 Sie können die Abstimmergebisse anzeigen, indem Sie die Abstimmung auswählen und auf
192 </text> 192 </text>
193 <text name="instructions2"> 193 <text name="instructions2">
194 &apos;Objekt anzeigen&apos; klicken. 194 „Objekt anzeigen“ klicken.
195 </text> 195 </text>
196 <text name="history_list_lbl"> 196 <text name="history_list_lbl">
197 Alte Abstimmungen: 197 Alte Abstimmungen:
@@ -212,7 +212,7 @@ um eine neue Anfrage zu erstellen.
212 Einladungen werden als Instant Message gesendet. 212 Einladungen werden als Instant Message gesendet.
213 </text> 213 </text>
214 <text name="txt3"> 214 <text name="txt3">
215 Klicken Sie auf &apos;Hinzufügen&apos;, um Benutzer zur Liste hinzuzufügen. 215 Klicken Sie auf „Hinzufügen“, um Benutzer zur Liste hinzuzufügen.
216 </text> 216 </text>
217 <text name="lbl"> 217 <text name="lbl">
218 Officers: 218 Officers:
diff --git a/linden/indra/newview/skins/default/xui/de/floater_html.xml b/linden/indra/newview/skins/default/xui/de/floater_html.xml
new file mode 100644
index 0000000..37f9ea5
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/de/floater_html.xml
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="htmlfloater" title="">
3 <button label="Schließen" name="close_btn" />
4 <button label="Zurück" name="back_btn" />
5 <button label="Zuhause" name="home_btn" />
6 <button label="Weiter" name="forward_btn" />
7 <button label="Los" name="go_btn" />
8 <string name="home_page_url">
9 http://de.secondlife.com
10 </string>
11 <string name="support_page_url">
12 http://de.secondlife.com/support
13 </string>
14</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_inspect.xml b/linden/indra/newview/skins/default/xui/de/floater_inspect.xml
index 9efbe38..f8c9b62 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_inspect.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_inspect.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="inspect" title="Objekt prüfen" min_width="440" > 2<floater name="inspect" title="Objekt prüfen" min_width="450" >
3 <scroll_list name="object_list" 3 <scroll_list name="object_list"
4 tool_tip="Wählen Sie ein Objekt aus dieser Liste, um es in der Second Life-Welt zu markieren"> 4 tool_tip="Wählen Sie ein Objekt aus dieser Liste, um es in der Second Life-Welt zu markieren">
5 <column label="Objektname" name="object_name" /> 5 <column label="Objektname" name="object_name" />
diff --git a/linden/indra/newview/skins/default/xui/de/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/de/floater_instant_message.xml
index 8984abb..cb0f7fa 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_instant_message.xml
@@ -7,7 +7,7 @@
7 Wird verbunden... 7 Wird verbunden...
8 </string> 8 </string>
9 <string name="connected"> 9 <string name="connected">
10 Verbunden. Klicken Sie auf &apos;Anruf beenden&apos;, um die Verbindung zu trennen 10 Verbunden. Klicken Sie auf „Anruf beenden“, um die Verbindung zu trennen
11 </string> 11 </string>
12 <string name="hang_up"> 12 <string name="hang_up">
13 Anruf beendet 13 Anruf beendet
diff --git a/linden/indra/newview/skins/default/xui/de/floater_instant_message_group.xml b/linden/indra/newview/skins/default/xui/de/floater_instant_message_group.xml
index 6828d0d..dc29f32 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_instant_message_group.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_instant_message_group.xml
@@ -44,7 +44,7 @@
44 Voice-Chat wird beigetreten... 44 Voice-Chat wird beigetreten...
45 </string> 45 </string>
46 <string name="connected"> 46 <string name="connected">
47 Verbunden. Klicken Sie auf &apos;Anruf beenden&apos;, um die Verbindung zu trennen 47 Verbunden. Klicken Sie auf „Anruf beenden“, um die Verbindung zu trennen
48 </string> 48 </string>
49 <string name="hang_up"> 49 <string name="hang_up">
50 Voice-Chat verlassen 50 Voice-Chat verlassen
diff --git a/linden/indra/newview/skins/default/xui/de/floater_inventory.xml b/linden/indra/newview/skins/default/xui/de/floater_inventory.xml
index d731d00..c8c6724 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_inventory.xml
@@ -2,8 +2,8 @@
2<floater name="Inventory" title="Inventar"> 2<floater name="Inventory" title="Inventar">
3 <search_editor label="Suchanfrage hier eintippen" name="inventory search editor" /> 3 <search_editor label="Suchanfrage hier eintippen" name="inventory search editor" />
4 <tab_container name="inventory filter tabs"> 4 <tab_container name="inventory filter tabs">
5 <inventory_panel label="All Items" name="All Items" /> 5 <inventory_panel label="Alle Objekte" name="All Items" />
6 <inventory_panel label="Recent Items" name="Recent Items" /> 6 <inventory_panel label="Letzte Objekte" name="Recent Items" />
7 </tab_container> 7 </tab_container>
8 <menu_bar name="Inventory Menu"> 8 <menu_bar name="Inventory Menu">
9 <menu label="Datei" name="File"> 9 <menu label="Datei" name="File">
diff --git a/linden/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml b/linden/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
index 1477cdb..0028f1d 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
@@ -30,7 +30,7 @@
30 Sie können: 30 Sie können:
31 </text> 31 </text>
32 <check_box label="Bearbeiten" name="CheckOwnerModify" /> 32 <check_box label="Bearbeiten" name="CheckOwnerModify" />
33 <check_box label="Kopieren" name="CheckOwnerCopy" /> 33 <check_box label="Kopieren" name="CheckOwnerCopy" left_delta="85" />
34 <check_box label="Verkaufen/Weggeben" name="CheckOwnerTransfer" /> 34 <check_box label="Verkaufen/Weggeben" name="CheckOwnerTransfer" />
35 <text name="BaseMaskDebug"> 35 <text name="BaseMaskDebug">
36 B: 36 B:
@@ -49,17 +49,17 @@
49 </text> 49 </text>
50 <check_box label="Mit Gruppe teilen" name="CheckShareWithGroup" /> 50 <check_box label="Mit Gruppe teilen" name="CheckShareWithGroup" />
51 <check_box label="Kopieren allen erlauben" name="CheckEveryoneCopy" /> 51 <check_box label="Kopieren allen erlauben" name="CheckEveryoneCopy" />
52 <text name="NextOwnerLabel"> 52 <text name="NextOwnerLabel" width="150">
53 Nächster Eigentümer kann: 53 Nächster Eigentümer kann:
54 </text> 54 </text>
55 <check_box label="Bearbeiten" name="CheckNextOwnerModify" /> 55 <check_box label="Bearbeiten" name="CheckNextOwnerModify" />
56 <check_box label="Kopieren" name="CheckNextOwnerCopy" /> 56 <check_box label="Kopieren" name="CheckNextOwnerCopy" left_delta="85" />
57 <check_box label="Verkaufen/Weggeben" name="CheckNextOwnerTransfer" /> 57 <check_box label="Verkaufen/Weggeben" name="CheckNextOwnerTransfer" />
58 <text name="SaleLabel"> 58 <text name="SaleLabel">
59 Objekt markieren: 59 Objekt markieren:
60 </text> 60 </text>
61 <check_box label="Zum Verkauf" name="CheckPurchase" /> 61 <check_box label="Zum Verkauf" name="CheckPurchase" />
62 <radio_group name="RadioSaleType"> 62 <radio_group name="RadioSaleType" left_delta="85" width="245" >
63 <radio_item name="radio"> 63 <radio_item name="radio">
64 Original 64 Original
65 </radio_item> 65 </radio_item>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_lagmeter.xml b/linden/indra/newview/skins/default/xui/de/floater_lagmeter.xml
index e2d3bdf..4dd9fd6 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_lagmeter.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_lagmeter.xml
@@ -99,7 +99,7 @@
99 Ping-Zeit der Verbindung liegt bei [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms 99 Ping-Zeit der Verbindung liegt bei [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
100 </text> 100 </text>
101 <text name="network_packet_loss_cause_msg"> 101 <text name="network_packet_loss_cause_msg">
102 Möglicherweise schlechte Verbindung oder zu hoher Wert für &apos;Bandbreite&apos;. 102 Möglicherweise schlechte Verbindung oder zu hoher Wert für „Bandbreite“.
103 </text> 103 </text>
104 <text name="network_ping_cause_msg"> 104 <text name="network_ping_cause_msg">
105 Möglicherweise schlechte Verbindung oder File-Sharing-Anwendung. 105 Möglicherweise schlechte Verbindung oder File-Sharing-Anwendung.
diff --git a/linden/indra/newview/skins/default/xui/de/floater_land_holdings.xml b/linden/indra/newview/skins/default/xui/de/floater_land_holdings.xml
index f9dcfc9..2594489 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_land_holdings.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_land_holdings.xml
@@ -2,8 +2,8 @@
2<floater name="land holdings floater" title="Mein Land"> 2<floater name="land holdings floater" title="Mein Land">
3 <scroll_list name="parcel list"> 3 <scroll_list name="parcel list">
4 <column label="Name" name="name" /> 4 <column label="Name" name="name" />
5 <column label="Location" name="location" /> 5 <column label="Lage" name="location" />
6 <column label="Area" name="area" /> 6 <column label="Gebiet" name="area" />
7 <column label="" name="hidden" /> 7 <column label="" name="hidden" />
8 </scroll_list> 8 </scroll_list>
9 <button label="Teleportieren" label_selected="Teleportieren" name="Teleport" 9 <button label="Teleportieren" label_selected="Teleportieren" name="Teleport"
@@ -14,8 +14,8 @@
14 Beiträge zu Ihren Gruppen: 14 Beiträge zu Ihren Gruppen:
15 </text> 15 </text>
16 <scroll_list name="grant list"> 16 <scroll_list name="grant list">
17 <column label="Group" name="group" /> 17 <column label="Gruppe" name="group" />
18 <column label="Area" name="area" /> 18 <column label="Gebiet" name="area" />
19 </scroll_list> 19 </scroll_list>
20 <text name="allowed_label"> 20 <text name="allowed_label">
21 Zulässiger Landbesitz bei aktuellem Zahlungsplan: 21 Zulässiger Landbesitz bei aktuellem Zahlungsplan:
diff --git a/linden/indra/newview/skins/default/xui/de/floater_lsl_guide.xml b/linden/indra/newview/skins/default/xui/de/floater_lsl_guide.xml
index 8704c32..d7f56b3 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_lsl_guide.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_lsl_guide.xml
@@ -3,5 +3,5 @@
3 <check_box label="Cursor folgen" name="lock_check" /> 3 <check_box label="Cursor folgen" name="lock_check" />
4 <combo_box label="Sperren" name="history_combo" /> 4 <combo_box label="Sperren" name="history_combo" />
5 <button label="Zurück" name="back_btn" /> 5 <button label="Zurück" name="back_btn" />
6 <button label="Weiterleiten" name="fwd_btn" /> 6 <button label="Weiter" name="fwd_btn" />
7</floater> 7</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_mute.xml b/linden/indra/newview/skins/default/xui/de/floater_mute.xml
index cc9919a..5dbb9fc 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_mute.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_mute.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="mute floater" title="Stummgeschaltete Einwohner und Objekte"> 2<floater name="mute floater" title="Stummgeschaltete Einwohner und Objekte" short_title="Stummschalten-Liste">
3 <scroll_list name="mutes" tool_tip="List of currently muted residents" /> 3 <scroll_list name="mutes" tool_tip="List of currently muted residents" />
4 <button label="Einwohner stummschalten..." label_selected="Einwohner stummschalten..." 4 <button label="Einwohner stummschalten..." label_selected="Einwohner stummschalten..."
5 name="Mute resident..." 5 name="Mute resident..."
diff --git a/linden/indra/newview/skins/default/xui/de/floater_name_description.xml b/linden/indra/newview/skins/default/xui/de/floater_name_description.xml
index 5f5e1cc..052f654 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_name_description.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_name_description.xml
@@ -6,6 +6,6 @@
6 <text name="description_label"> 6 <text name="description_label">
7 Beschreibung: 7 Beschreibung:
8 </text> 8 </text>
9 <button label="Abbrechen" name="cancel_btn" /> 9 <button label="Abbrechen" name="cancel_btn" width="80" />
10 <button label="Hochladen (10 L$)" name="ok_btn" /> 10 <button label="Hochladen (10 L$)" name="ok_btn" width="120" />
11</floater> 11</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_new_outfit_dialog.xml b/linden/indra/newview/skins/default/xui/de/floater_new_outfit_dialog.xml
index 861ecaf..73c6760 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_new_outfit_dialog.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_new_outfit_dialog.xml
@@ -62,7 +62,7 @@
62 Outfits sind Ordner, die Kleider und Körperteile enthalten. 62 Outfits sind Ordner, die Kleider und Körperteile enthalten.
63Ziehen Sie einen Outfit-Ordner auf Ihren Avatar, um ihn anzuziehen. 63Ziehen Sie einen Outfit-Ordner auf Ihren Avatar, um ihn anzuziehen.
64 64
65&quot;Neues Outfit&quot; erstellt einen neuen Ordner und speichert darin Kopien der 65„Neues Outfit“ erstellt einen neuen Ordner und speichert darin Kopien der
66Objekte, die Sie gerade tragen. 66Objekte, die Sie gerade tragen.
67 </text> 67 </text>
68 <text type="string" length="1" name="Folder name:"> 68 <text type="string" length="1" name="Folder name:">
diff --git a/linden/indra/newview/skins/default/xui/de/floater_openobject.xml b/linden/indra/newview/skins/default/xui/de/floater_openobject.xml
index c7f9b74..0b5a365 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_openobject.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_openobject.xml
@@ -4,7 +4,7 @@
4 [DESC]: 4 [DESC]:
5 </text> 5 </text>
6 <button label="In Inventar kopieren" label_selected="In Inventar kopieren" 6 <button label="In Inventar kopieren" label_selected="In Inventar kopieren"
7 name="copy_to_inventory_button" /> 7 name="copy_to_inventory_button" width="132" />
8 <button label="Kopieren und anziehen" label_selected="Kopieren und anziehen" 8 <button label="Kopieren und anziehen" label_selected="Kopieren und anziehen"
9 name="copy_and_wear_button" /> 9 name="copy_and_wear_button" width="132" left="150" />
10</floater> 10</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_pay_object.xml b/linden/indra/newview/skins/default/xui/de/floater_pay_object.xml
index b3d8921..eaf95a9 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_pay_object.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_pay_object.xml
@@ -1,30 +1,30 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Give Money" title=""> 2<floater name="Give Money" title="">
3 <text type="string" length="1" name="payee_group"> 3 <text type="string" length="1" name="payee_group" width="105">
4 Gruppe bezahlen: 4 Gruppe bezahlen:
5 </text> 5 </text>
6 <text type="string" length="1" name="payee_resident"> 6 <text type="string" length="1" name="payee_resident" width="118">
7 Einwohner bezahlen: 7 Einwohner bezahlen:
8 </text> 8 </text>
9 <text type="string" length="1" name="payee_name"> 9 <text type="string" length="1" name="payee_name" left="128" width="168">
10 [FIRST] [LAST] 10 [FIRST] [LAST]
11 </text> 11 </text>
12 <text type="string" length="1" name="object_name_label"> 12 <text type="string" length="1" name="object_name_label" halign="left">
13 Ãœber Objekt: 13 Ãœber Objekt:
14 </text> 14 </text>
15 <text type="string" length="1" name="object_name_text"> 15 <text type="string" length="1" name="object_name_text" left="105">
16 ... 16 ...
17 </text> 17 </text>
18 <text type="string" length="1" name="fastpay text"> 18 <text type="string" length="1" name="fastpay text" width="95" halign="left">
19 Schnellzahlung: 19 Schnellzahlung:
20 </text> 20 </text>
21 <text type="string" length="1" name="amount text"> 21 <text type="string" length="1" name="amount text">
22 Betrag: 22 Betrag:
23 </text> 23 </text>
24 <button label="1 L$" label_selected="1 L$" name="fastpay 1" /> 24 <button label="1 L$" label_selected="1 L$" name="fastpay 1" left="105" />
25 <button label="5 L$" label_selected="5 L$" name="fastpay 5" /> 25 <button label="5 L$" label_selected="5 L$" name="fastpay 5" left="190" />
26 <button label="10 L$" label_selected="10 L$" name="fastpay 10" /> 26 <button label="10 L$" label_selected="10 L$" name="fastpay 10" left="105" />
27 <button label="20 L$" label_selected="20 L$" name="fastpay 20" /> 27 <button label="20 L$" label_selected="20 L$" name="fastpay 20" left="190" />
28 <button label="Zahlen" label_selected="Zahlen" name="pay btn" /> 28 <button label="Zahlen" label_selected="Zahlen" name="pay btn" />
29 <button label="Abbrechen" label_selected="Abbrechen" name="cancel btn" /> 29 <button label="Abbrechen" label_selected="Abbrechen" name="cancel btn" width="76" />
30</floater> 30</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_preview_animation.xml b/linden/indra/newview/skins/default/xui/de/floater_preview_animation.xml
index 0d5a6b1..c807556 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_preview_animation.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_preview_animation.xml
@@ -3,8 +3,9 @@
3 <text type="string" length="1" name="desc txt"> 3 <text type="string" length="1" name="desc txt">
4 Beschreibung: 4 Beschreibung:
5 </text> 5 </text>
6<line_editor left="98" name="desc" width="189" />
6 <button label="In Welt abspielen" label_selected="Stopp" name="Anim play btn" 7 <button label="In Welt abspielen" label_selected="Stopp" name="Anim play btn"
7 tool_tip="Gibt diese Animation so wieder, dass andere sie sehen können." /> 8 tool_tip="Gibt diese Animation so wieder, dass andere sie sehen können." width="116" />
8 <button label="Lokal wiedergeben" label_selected="Stopp" name="Anim audition btn" 9 <button label="Lokal wiedergeben" label_selected="Stopp" name="Anim audition btn"
9 tool_tip="Gibt diese Animation so wieder, dass nur Sie sie sehen." /> 10 tool_tip="Gibt diese Animation so wieder, dass nur Sie sie sehen." left="171" width="116" />
10</floater> 11</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_preview_gesture.xml b/linden/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
index 72b8bd8..da385b7 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
@@ -15,10 +15,10 @@
15 <text name="trigger_label"> 15 <text name="trigger_label">
16 Auslöser: 16 Auslöser:
17 </text> 17 </text>
18 <text name="replace_text" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser &apos;hallo&apos; durch &apos;wie geht&apos;s&apos; ersetzen, erscheint im Chat anstelle von &apos;Ich wollte nur hallo sagen&apos; der Text &apos;Ich wollte nur wie geht&apos;s sagen&apos; und die zugehörige Geste wird abgespielt."> 18 <text name="replace_text" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht&apos;s“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht&apos;s sagen“ und die zugehörige Geste wird abgespielt.">
19 Ersetzen mit: 19 Ersetzen mit:
20 </text> 20 </text>
21 <line_editor name="replace_editor" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser &apos;hallo&apos; durch &apos;wie geht&apos;s&apos; ersetzen, erscheint im Chat anstelle von &apos;Ich wollte nur hallo sagen&apos; der Text &apos;Ich wollte nur wie geht&apos;s sagen&apos; und die zugehörige Geste wird abgespielt."/> 21 <line_editor name="replace_editor" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht&apos;s“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht&apos;s sagen“ und die zugehörige Geste wird abgespielt."/>
22 <text name="key_label"> 22 <text name="key_label">
23 Tastenkürzel: 23 Tastenkürzel:
24 </text> 24 </text>
@@ -30,12 +30,14 @@
30 <text name="steps_label"> 30 <text name="steps_label">
31 Schritte: 31 Schritte:
32 </text> 32 </text>
33 <!-- Revert translations as interim fix to VWR-9985 while the code is not properly internationalized
33 <scroll_list name="library_list"> 34 <scroll_list name="library_list">
34 Animation 35 Animation
35Ton 36Ton
36Chat 37Chat
37Warten 38Warten
38 </scroll_list> 39 </scroll_list>
40 -->
39 <button label="Hinzufügen &gt;&gt;" name="add_btn"/> 41 <button label="Hinzufügen &gt;&gt;" name="add_btn"/>
40 <button label="Nach oben" name="up_btn"/> 42 <button label="Nach oben" name="up_btn"/>
41 <button label="Nach unten" name="down_btn"/> 43 <button label="Nach unten" name="down_btn"/>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_report_abuse.xml b/linden/indra/newview/skins/default/xui/de/floater_report_abuse.xml
index da6affb..ddcd2a8 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_report_abuse.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_report_abuse.xml
@@ -1,5 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_report_abuse" title="Missbrauch melden"> 2<floater name="floater_report_abuse" title="Missbrauch melden">
3 <texture_picker label="" name="screenshot"/>
4 <check_box label="Screenshot einschließen" name="screen_check" bottom_delta="-20"/>
3 <text name="reporter_title"> 5 <text name="reporter_title">
4 Melder: 6 Melder:
5 </text> 7 </text>
@@ -15,17 +17,14 @@
15 <text name="pos_title"> 17 <text name="pos_title">
16 Position: 18 Position:
17 </text> 19 </text>
18 <texture_picker name="screenshot" />
19 <check_box label="Screenshot einschließen" name="screen_check" bottom_delta="-20" />
20 <text name="pos_field"> 20 <text name="pos_field">
21 {128.1, 128.1, 15.4} 21 {128.1, 128.1, 15.4}
22 </text> 22 </text>
23 <button label="" label_selected="" name="pick_btn"
24 tool_tip="Objektauswahl – Wählen Sie ein Objekt als Thema dieses Berichts aus" />
25 <text bottom_delta="-38" height="32" name="select_object_label"> 23 <text bottom_delta="-38" height="32" name="select_object_label">
26 Klicken Sie auf die Schaltfläche, 24 Klicken Sie auf die Schaltfläche,
27dann auf das Objekt: 25dann auf das Objekt:
28 </text> 26 </text>
27 <button label="" label_selected="" name="pick_btn" tool_tip="Objektauswahl – Wählen Sie ein Objekt als Thema dieses Berichts aus"/>
29 <text name="object_name_label"> 28 <text name="object_name_label">
30 Name: 29 Name:
31 </text> 30 </text>
@@ -38,11 +37,7 @@ dann auf das Objekt:
38 <text name="owner_name"> 37 <text name="owner_name">
39 Hendrerit Vulputate 38 Hendrerit Vulputate
40 </text> 39 </text>
41 <combo_box name="category_combo" 40 <combo_box name="category_combo" tool_tip="Kategorie -- wählen Sie die Kategorie aus, die am besten auf diesen Bericht zutrifft">
42 tool_tip="Category -- select the category that best describes this report">
43 <combo_item name="Selectcategory">
44 Kategorie auswählen
45 </combo_item>
46 <combo_item name="Select_category"> 41 <combo_item name="Select_category">
47 Kategorie auswählen 42 Kategorie auswählen
48 </combo_item> 43 </combo_item>
@@ -64,14 +59,11 @@ dann auf das Objekt:
64 <combo_item name="Assault__Weapons_testing_sandbox"> 59 <combo_item name="Assault__Weapons_testing_sandbox">
65 Angriff &gt; Sandbox für Waffentest 60 Angriff &gt; Sandbox für Waffentest
66 </combo_item> 61 </combo_item>
67 <combo_item name="Copyright_or_intellectual_property_violation">
68 Urheberrechtsverletzung
69 </combo_item>
70 <combo_item name="Commerce__Failure_to_deliver_product_or_service"> 62 <combo_item name="Commerce__Failure_to_deliver_product_or_service">
71 Handel &gt; Produkt nicht geliefer oder Dienstleistung nicht erbracht 63 Handel &gt; Produkt nicht geliefert oder Dienstleistung nicht erbracht
72 </combo_item> 64 </combo_item>
73 <combo_item name="Disclosure__First_Life_information"> 65 <combo_item name="Disclosure__Real_world_information">
74 Offenlegung &gt; Private Benutzerdaten 66 Offenlegung &gt; Informationen aus realer Welt
75 </combo_item> 67 </combo_item>
76 <combo_item name="Disclosure__Remotely_monitoring chat"> 68 <combo_item name="Disclosure__Remotely_monitoring chat">
77 Offenlegung &gt; Abhören eines Chats aus der Ferne 69 Offenlegung &gt; Abhören eines Chats aus der Ferne
@@ -134,28 +126,16 @@ dann auf das Objekt:
134 Unanständigkeit &gt; Anstößiger Avatarname 126 Unanständigkeit &gt; Anstößiger Avatarname
135 </combo_item> 127 </combo_item>
136 <combo_item name="Indecency__Mature_content_in_PG_region"> 128 <combo_item name="Indecency__Mature_content_in_PG_region">
137 Unanständigkeit &gt; Nicht jugendfreier Inhalt in &quot;Jugendfrei&quot;-Region 129 Unanständigkeit &gt; Nicht jugendfreier Inhalt in „Jugendfrei“-Region
138 </combo_item>
139 <combo_item name="Intolerance">
140 Intoleranz
141 </combo_item> 130 </combo_item>
142 <combo_item name="Harassment"> 131 <combo_item name="Intellectual_property_infringement_Content_Removal">
143 Belästigung 132 Urheberrechtsverletzung &gt; Entfernen von Inhalten
144 </combo_item> 133 </combo_item>
145 <combo_item name="Assault"> 134 <combo_item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit">
146 Angriff 135 Urheberrechtsverletzung &gt; CopyBot oder Berechtigungs-Exploit
147 </combo_item> 136 </combo_item>
148 <combo_item name="Disclosure"> 137 <combo_item name="Intolerance">
149 Offenlegen 138 Intoleranz
150 </combo_item>
151 <combo_item name="Indecency">
152 Unanständigkeit
153 </combo_item>
154 <combo_item name="Age">
155 Alter
156 </combo_item>
157 <combo_item name="Parcel">
158 Parzelle
159 </combo_item> 139 </combo_item>
160 <combo_item name="Land__Abuse_of_sandbox_resources"> 140 <combo_item name="Land__Abuse_of_sandbox_resources">
161 Land &gt; Missbrauch der Sandbox-Ressourcen 141 Land &gt; Missbrauch der Sandbox-Ressourcen
@@ -169,9 +149,6 @@ dann auf das Objekt:
169 <combo_item name="Land__Encroachment__Trees_plants"> 149 <combo_item name="Land__Encroachment__Trees_plants">
170 Land &gt; Unbefugte Nutzung &gt; Bäume/Pflanzen 150 Land &gt; Unbefugte Nutzung &gt; Bäume/Pflanzen
171 </combo_item> 151 </combo_item>
172 <combo_item name="Trademark_violation">
173 Markenrechtsverletzung
174 </combo_item>
175 <combo_item name="Wagering_gambling"> 152 <combo_item name="Wagering_gambling">
176 Wetten/Glücksspiel 153 Wetten/Glücksspiel
177 </combo_item> 154 </combo_item>
@@ -182,10 +159,8 @@ dann auf das Objekt:
182 <text name="abuser_name_title"> 159 <text name="abuser_name_title">
183 Name des Beschuldigten: 160 Name des Beschuldigten:
184 </text> 161 </text>
185 <button label="Einwohner auswählen" label_selected="" name="select_abuser" 162 <button label="Einwohner auswählen" label_selected="" name="select_abuser" tool_tip="Den Namen des Beschuldigten aus einer Liste wählen"/>
186 tool_tip="Den Namen des Beschuldigten aus einer Liste wählen" /> 163 <check_box label="Name des Täters ist nicht bekannt" name="omit_abuser_name" tool_tip="Wählen Sie diese Option, wenn Ihnen der Name des Täters unbekannt ist"/>
187 <check_box label="Name des Täters ist nicht bekannt" name="omit_abuser_name"
188 tool_tip="Wählen Sie diese Option, wenn Ihnen der Name des Täters unbekannt ist" />
189 <text name="abuser_name_title2"> 164 <text name="abuser_name_title2">
190 Ort des Missbrauchs: 165 Ort des Missbrauchs:
191 </text> 166 </text>
@@ -204,6 +179,6 @@ Objekt, wenn möglich.
204 <text name="incomplete_title" bottom_delta="-20"> 179 <text name="incomplete_title" bottom_delta="-20">
205 Hinweis: Unvollständige Meldungen werden nicht bearbeitet. 180 Hinweis: Unvollständige Meldungen werden nicht bearbeitet.
206 </text> 181 </text>
207 <button label="Missbrauch melden" label_selected="Missbrauch melden" name="send_btn" /> 182 <button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn"/>
208 <button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn" /> 183 <button label="Missbrauch melden" label_selected="Missbrauch melden" name="send_btn"/>
209</floater> 184</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_report_bug.xml b/linden/indra/newview/skins/default/xui/de/floater_report_bug.xml
index 1e8cae5..2c8734e 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_report_bug.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_report_bug.xml
@@ -103,7 +103,7 @@ Erwartete Ergebnisse:
103 Hinweis: Unvollständige Meldungen werden nicht bearbeitet. 103 Hinweis: Unvollständige Meldungen werden nicht bearbeitet.
104Sollte Ihnen dieser Fehler unerlaubte Aktionen ermöglichen, 104Sollte Ihnen dieser Fehler unerlaubte Aktionen ermöglichen,
105die sich eventuell nachteilig auf Leistung oder Sicherheit auswirken, 105die sich eventuell nachteilig auf Leistung oder Sicherheit auswirken,
106wählen Sie die Kategorie &apos;Exploit&apos;. Vielen Dank! 106wählen Sie die Kategorie „Exploit“. Vielen Dank!
107 </text> 107 </text>
108 <button label="Fehler melden" label_selected="Fehler melden" name="send_btn" /> 108 <button label="Fehler melden" label_selected="Fehler melden" name="send_btn" />
109 <button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn" /> 109 <button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn" />
diff --git a/linden/indra/newview/skins/default/xui/de/floater_script_queue.xml b/linden/indra/newview/skins/default/xui/de/floater_script_queue.xml
index b2a1b13..63d5ef2 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_script_queue.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_script_queue.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="queue" title="Rückgängig"> 2<floater name="queue" title="Rückgängig">
3 <button label="Schließen" label_selected="Schließen" name="close" /> 3 <button label="Schließen" label_selected="Schließen" name="close" left="215" width="72"/>
4</floater> 4</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_settings_debug.xml b/linden/indra/newview/skins/default/xui/de/floater_settings_debug.xml
index 659207d..d64b9dc 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_settings_debug.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_settings_debug.xml
@@ -13,5 +13,5 @@
13 <spinner label="x" name="val_spinner_2" /> 13 <spinner label="x" name="val_spinner_2" />
14 <spinner label="x" name="val_spinner_3" /> 14 <spinner label="x" name="val_spinner_3" />
15 <spinner label="x" name="val_spinner_4" /> 15 <spinner label="x" name="val_spinner_4" />
16 <button label="Standard wiederherstellen" name="default_btn" /> 16 <button label="Standard wiederherstellen" name="default_btn" width="170" />
17</floater> 17</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_snapshot.xml b/linden/indra/newview/skins/default/xui/de/floater_snapshot.xml
index f2de8103..c7a366a 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_snapshot.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_snapshot.xml
@@ -112,10 +112,10 @@
112 <spinner label="Höhe" name="snapshot_height"/> 112 <spinner label="Höhe" name="snapshot_height"/>
113 <check_box label="Seitenverhältnis beibehalten" name="keep_aspect_check"/> 113 <check_box label="Seitenverhältnis beibehalten" name="keep_aspect_check"/>
114 <slider label="Bildqualität" name="image_quality_slider"/> 114 <slider label="Bildqualität" name="image_quality_slider"/>
115 <text name="layer_type_label"> 115 <text name="layer_type_label" width="63">
116 Aufnehmen: 116 Aufnehmen:
117 </text> 117 </text>
118 <combo_box label="Bildlayer" name="layer_types"> 118 <combo_box label="Bildlayer" name="layer_types" width="132" left="73">
119 <combo_item name="Colors"> 119 <combo_item name="Colors">
120 Farben 120 Farben
121 </combo_item> 121 </combo_item>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_telehub.xml b/linden/indra/newview/skins/default/xui/de/floater_telehub.xml
index 091f803..264411c 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_telehub.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_telehub.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="telehub" title="Telehub"> 2<floater name="telehub" title="Telehub" min_height="310" height="310" >
3 <text name="status_text_connected"> 3 <text name="status_text_connected">
4 Telehub verbunden mit Objekt [OBJECT] 4 Telehub verbunden mit Objekt [OBJECT]
5 </text> 5 </text>
@@ -7,22 +7,26 @@
7 Kein Telehub verbunden. 7 Kein Telehub verbunden.
8 </text> 8 </text>
9 <text name="help_text_connected"> 9 <text name="help_text_connected">
10 Klicken Sie zum Entfernen auf &apos;Trennen&apos;. 10 Klicken Sie zum Entfernen auf „Trennen“.
11 </text> 11 </text>
12 <text name="help_text_not_connected"> 12 <text name="help_text_not_connected" height="38" bottom_delta="-18" >
13 Wählen Sie ein Objekt und klicken Sie auf &apos;Mit Telehub verbinden&apos;. 13 Wählen Sie ein Objekt und klicken Sie auf
14„Mit Telehub verbinden“.
14 </text> 15 </text>
15 <button label="Mit Telehub verbinden" name="connect_btn" /> 16 <button label="Mit Telehub verbinden" name="connect_btn" width="122" />
16 <button label="Trennen" name="disconnect_btn" /> 17 <button label="Trennen" name="disconnect_btn" left="142" width="98" />
17 <text name="spawn_points_text"> 18 <text name="spawn_points_text" width="230">
18 Spawn-Punkte (Positionen, nicht Objekte): 19 Spawn-Punkte (Positionen, nicht Objekte):
19 </text> 20 </text>
20 <button label="Spawn hinzufügen" name="add_spawn_point_btn" /> 21 <button label="Spawn hinzufügen" name="add_spawn_point_btn" />
21 <button label="Spawn entfernen" name="remove_spawn_point_btn" /> 22 <button label="Spawn entfernen" name="remove_spawn_point_btn" />
22 <text name="spawn_point_help"> 23 <text name="spawn_point_help">
23 Wählen Sie ein Objekt und klicken zur Positionsangabe auf &apos;Hinzufügen&apos;. 24 Wählen Sie ein Objekt und klicken zur
24Anschließend können sie das Objekt verschieben oder löschen. 25Positionsangabe auf „Hinzufügen“. Anschließend
25Positionsangaben sind relativ zum Telehub-Mittelpunkt. 26können sie das Objekt verschieben oder löschen.
26Wählen Sie ein Objekt aus, um seine Position in der Welt anzuzeigen. 27Positionsangaben sind relativ zum
28Telehub-Mittelpunkt.
29Wählen Sie ein Objekt aus, um seine Position in
30der Welt anzuzeigen.
27 </text> 31 </text>
28</floater> 32</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_tools.xml b/linden/indra/newview/skins/default/xui/de/floater_tools.xml
index 03401ce..b428585 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_tools.xml
@@ -168,9 +168,9 @@
168 <text name="label click action"> 168 <text name="label click action">
169 Bei Linksklicken: 169 Bei Linksklicken:
170 </text> 170 </text>
171 <combo_box name="clickaction"> 171 <combo_box name="clickaction" width="178">
172 <combo_item name="Touch/grab(default)"> 172 <combo_item name="Touch/grab(default)">
173 Berühren/greifen (Standard) 173 Berühren/Greifen (Standard)
174 </combo_item> 174 </combo_item>
175 <combo_item name="Sitonobject"> 175 <combo_item name="Sitonobject">
176 Auf Objekt sitzen 176 Auf Objekt sitzen
@@ -376,29 +376,30 @@
376 </text> 376 </text>
377 <spinner label="X" left="115" name="Shear X" /> 377 <spinner label="X" left="115" name="Shear X" />
378 <spinner label="Y" left="115" name="Shear Y" /> 378 <spinner label="Y" left="115" name="Shear Y" />
379 <text name="advanced_cut"> 379 <text name="advanced_cut" left="115" width="153">
380 Profilschnitt-Beginn und Ende 380 Profilschnitt-Beginn und Ende
381 </text> 381 </text>
382 <text name="advanced_dimple"> 382 <text name="advanced_dimple" left="115">
383 Vertiefung-Beginn und Ende 383 Vertiefung-Beginn und Ende
384 </text> 384 </text>
385 <spinner label="B" name="Path Limit Begin" /> 385 <spinner label="B" name="Path Limit Begin" left="115"/>
386 <spinner label="E" name="Path Limit End" /> 386 <spinner label="E" name="Path Limit End" />
387 <text name="text taper2"> 387 <text name="text taper2" left="115">
388 Verjüngung 388 Verjüngung
389 </text> 389 </text>
390 <spinner label="X" name="Taper X" /> 390 <spinner label="X" name="Taper X" left="115"/>
391 <spinner label="Y" name="Taper Y" /> 391 <spinner label="Y" name="Taper Y" />
392 <text name="text radius delta"> 392 <text name="text radius delta" left="115">
393 Radius 393 Radius
394 </text> 394 </text>
395 <text name="text revolutions"> 395 <text name="text revolutions" width="74">
396 Umdrehungen 396 Umdrehungen
397 </text> 397 </text>
398 <texture_picker label="Textur für gestaltetes Primitiv" name="sculpt texture control" 398 <spinner left="115" name="Radius Offset" />
399 <texture_picker label="Textur für gestaltetes &#10;Primitiv" name="sculpt texture control"
399 tool_tip="Klicken Sie hier, um ein Bild auszuwählen" /> 400 tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
400 <check_box label="Spiegeln" name="sculpt mirror control" 401 <check_box label="Spiegeln" name="sculpt mirror control"
401 tool_tip="Geformtes Primitiv entlang der X-Achse spiegeln." /> 402 tool_tip="Geformtes Primitiv entlang der X-Achse spiegeln." bottom_delta="-34" />
402 <check_box label="Wenden" name="sculpt invert control" 403 <check_box label="Wenden" name="sculpt invert control"
403 tool_tip="Dreht die Normalen des geformten Primitivs von innen nach außen." /> 404 tool_tip="Dreht die Normalen des geformten Primitivs von innen nach außen." />
404 <text name="label sculpt type"> 405 <text name="label sculpt type">
@@ -476,7 +477,7 @@
476 </text> 477 </text>
477 <combo_box name="combobox shininess"> 478 <combo_box name="combobox shininess">
478 <combo_item name="None"> 479 <combo_item name="None">
479 Keine 480 Kein
480 </combo_item> 481 </combo_item>
481 <combo_item name="Low"> 482 <combo_item name="Low">
482 Niedrig 483 Niedrig
@@ -561,7 +562,7 @@
561 Kacheln pro Meter 562 Kacheln pro Meter
562 </text> 563 </text>
563 <text name="string repeats per face"> 564 <text name="string repeats per face">
564 Wiederholungen pro Gesicht 565 Wiederholungen pro Fläche
565 </text> 566 </text>
566 <text name="rpt"> 567 <text name="rpt">
567 Kacheln pro Meter 568 Kacheln pro Meter
@@ -590,13 +591,13 @@
590 <text name="label_area"> 591 <text name="label_area">
591 Fläche: [AREA] m2 592 Fläche: [AREA] m2
592 </text> 593 </text>
593 <button label="Land kaufen..." label_selected="Land kaufen..." name="button buy land" /> 594 <button label="Land kaufen..." label_selected="Land kaufen..." name="button buy land" width="110" />
594 <button label="Land aufgeben..." label_selected="Land aufgeben..." 595 <button label="Land aufgeben..." label_selected="Land aufgeben..." width="110"
595 name="button abandon land" /> 596 name="button abandon land" />
596 <button label="Unterteilen..." label_selected="Unterteilen..." 597 <button label="Unterteilen..." label_selected="Unterteilen..." width="110"
597 name="button subdivide land" /> 598 name="button subdivide land" />
598 <button label="Zusammenlegen" label_selected="Zusammenlegen" name="button join land" /> 599 <button label="Zusammenlegen" label_selected="Zusammenlegen" name="button join land" width="110" />
599 <button label="Info zu Land..." label_selected="Info zu Land..." 600 <button label="Info zu Land..." label_selected="Info zu Land..." width="110"
600 name="button about land" /> 601 name="button about land" />
601 </panel> 602 </panel>
602 <text name="status_rotate"> 603 <text name="status_rotate">
@@ -606,7 +607,7 @@
606 Klicken und ziehen, um die ausgewählte Seite zu dehnen 607 Klicken und ziehen, um die ausgewählte Seite zu dehnen
607 </text> 608 </text>
608 <text name="status_move"> 609 <text name="status_move">
609 Maus verschiebt, Shift-Taste und Maus kopiert 610 Maus verschiebt, Umschalt-Taste und Maus kopiert
610 </text> 611 </text>
611 <text name="status_modifyland"> 612 <text name="status_modifyland">
612 Klicken und halten, um das Land zu bearbeiten 613 Klicken und halten, um das Land zu bearbeiten
@@ -615,10 +616,10 @@
615 Klicken und ziehen, um die Ansicht zu ändern 616 Klicken und ziehen, um die Ansicht zu ändern
616 </text> 617 </text>
617 <text name="status_grab"> 618 <text name="status_grab">
618 Objekt new positionierern 619 Objekt neu positionieren
619 </text> 620 </text>
620 <text name="status_place"> 621 <text name="status_place">
621 Mausklick erstellt, Shift-Mausklick wählt aus 622 Mausklick erstellt, Umschalt-Mausklick wählt aus
622 </text> 623 </text>
623 <text name="status_selectland"> 624 <text name="status_selectland">
624 Klicken und ziehen, um Land auszuwählen 625 Klicken und ziehen, um Land auszuwählen
diff --git a/linden/indra/newview/skins/default/xui/de/floater_top_objects.xml b/linden/indra/newview/skins/default/xui/de/floater_top_objects.xml
index d7abf5c..f9e7bec 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_top_objects.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_top_objects.xml
@@ -1,68 +1,58 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="top_objects" title="wird geladen..."> 2<floater name="top_objects" title="wird geladen...">
3 <text name="title_text"> 3 <text name="title_text">
4 Wird geladen... 4 Wird geladen...
5 </text> 5 </text>
6 <scroll_list name="objects_list"> 6 <scroll_list name="objects_list">
7 <column label="Score" name="score" /> 7 <column label="Wertung" name="score" width="65"/>
8 <column label="Name" name="name" /> 8 <column label="Name" name="name" width="135"/>
9 <column label="Owner" name="owner" /> 9 <column label="Eigentümer" name="owner"/>
10 <column label="Location" name="location" /> 10 <column label="Position" name="location" width="125"/>
11 <column label="Uhrzeit" name="time" /> 11 <column label="Uhrzeit" name="time"/>
12 <column label="Mono-Uhrzeit:" name="mono_time"/>
12 </scroll_list> 13 </scroll_list>
13 <line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false"
14 follows="left|bottom|right" font="SansSerifSmall" height="20" left="80"
15 name="id_editor" text_readonly_color="white" width="244" />
16 <text name="id_text"> 14 <text name="id_text">
17 Objekt-ID: 15 Objekt-ID:
18 </text> 16 </text>
19 <button bottom_delta="0" follows="bottom|right" height="20" label="Beacon anzeigen" 17 <line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false" follows="left|bottom|right" font="SansSerifSmall" height="20" left="80" name="id_editor" text_readonly_color="white" width="244"/>
20 name="show_beacon_btn" right="-10" width="110" /> 18 <button bottom_delta="0" follows="bottom|right" height="20" label="Beacon anzeigen" name="show_beacon_btn" right="-10" width="110"/>
21 <line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false"
22 follows="left|bottom|right" font="SansSerifSmall" height="20" left="80"
23 name="object_name_editor" text_readonly_color="white" width="244" />
24 <text name="obj_name_text"> 19 <text name="obj_name_text">
25 Objektname: 20 Objektname:
26 </text> 21 </text>
27 <button bottom_delta="0" follows="bottom|right" height="20" label="Filter" 22 <line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false" follows="left|bottom|right" font="SansSerifSmall" height="20" left="80" name="object_name_editor" text_readonly_color="white" width="244"/>
28 name="filter_object_btn" right="-10" width="110" /> 23 <button bottom_delta="0" follows="bottom|right" height="20" label="Filter" name="filter_object_btn" right="-10" width="110"/>
29 <line_editor bg_readonly_color="clear" bottom_delta="3" enabled="true"
30 follows="left|bottom|right" font="SansSerifSmall" height="20" left="106"
31 name="owner_name_editor" text_readonly_color="white" width="218" />
32 <text name="owner_name_text"> 24 <text name="owner_name_text">
33 Eigentümername: 25 Eigentümername:
34 </text> 26 </text>
35 <button bottom_delta="0" follows="bottom|right" height="20" label="Filter" 27 <line_editor bg_readonly_color="clear" bottom_delta="3" enabled="true" follows="left|bottom|right" font="SansSerifSmall" height="20" left="106" name="owner_name_editor" text_readonly_color="white" width="218"/>
36 name="filter_owner_btn" right="-10" width="110" /> 28 <button bottom_delta="0" follows="bottom|right" height="20" label="Filter" name="filter_owner_btn" right="-10" width="110"/>
37 <button bottom="35" follows="bottom|left" height="20" label="Auswahl zurückgeben" 29 <button bottom="35" follows="bottom|left" height="20" label="Auswahl zurückgeben" left="10" name="return_selected_btn" width="134"/>
38 left="10" name="return_selected_btn" width="134" /> 30 <button bottom="35" follows="bottom|left" height="20" label="Alle zurückgeben" left="150" name="return_all_btn" width="134"/>
39 <button bottom="35" follows="bottom|left" height="20" label="Alle zurückgeben" 31 <button bottom="10" follows="bottom|left" height="20" label="Auswahl deaktivieren" left="10" name="disable_selected_btn" width="134"/>
40 left="150" name="return_all_btn" width="134" /> 32 <button bottom="10" follows="bottom|left" height="20" label="Alle deaktivieren" left="150" name="disable_all_btn" width="134"/>
41 <button bottom="10" follows="bottom|left" height="20" label="Auswahl deaktivieren" 33 <button bottom_delta="0" follows="bottom|right" height="20" label="Aktualisieren" name="refresh_btn" right="-10" width="110"/>
42 left="10" name="disable_selected_btn" width="134" /> 34 <string name="top_scripts_title">
43 <button bottom="10" follows="bottom|left" height="20" label="Alle deaktivieren"
44 left="150" name="disable_all_btn" width="134" />
45 <button bottom_delta="0" follows="bottom|right" height="20" label="Aktualisieren"
46 name="refresh_btn" right="-10" width="110" />
47 <text name="top_scripts_title">
48 Top-Skripts 35 Top-Skripts
49 </text> 36 </string>
50 <text name="top_scripts_text"> 37 <string name="top_scripts_text">
51 [COUNT] Skripts benötigen insgesamt [TIME] ms 38 [COUNT] Skripts benötigen insgesamt [TIME] ms
52 </text> 39 </string>
53 <text name="scripts_score_label"> 40 <string name="scripts_score_label">
54 Zeit 41 Zeit
55 </text> 42 </string>
56 <text name="top_colliders_title"> 43 <string name="scripts_mono_time_label">
44 Mono-Uhrzeit:
45 </string>
46 <string name="top_colliders_title">
57 Top-Kollisionsobjekte 47 Top-Kollisionsobjekte
58 </text> 48 </string>
59 <text name="top_colliders_text"> 49 <string name="top_colliders_text">
60 Top [COUNT] Objekte mit vielen potenziellen Kollisionen 50 Top [COUNT] Objekte mit vielen potenziellen Kollisionen
61 </text> 51 </string>
62 <text name="colliders_score_label"> 52 <string name="colliders_score_label">
63 Wertung 53 Wertung
64 </text> 54 </string>
65 <text name="none_descriptor"> 55 <string name="none_descriptor">
66 Nicht gefunden. 56 Nicht gefunden.
67 </text> 57 </string>
68</floater> 58</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_url_entry.xml b/linden/indra/newview/skins/default/xui/de/floater_url_entry.xml
index 9ad52f7..392d53a 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_url_entry.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_url_entry.xml
@@ -4,8 +4,7 @@
4 Medien-URL: 4 Medien-URL:
5 </text> 5 </text>
6 <button label="OK" name="ok_btn" /> 6 <button label="OK" name="ok_btn" />
7 <button label="Abbrechen" name="cancel_btn" /> 7 <button label="Abbrechen" name="cancel_btn" width="75" />
8 <button label="Abbrechen" name="cancel_btn2" />
9 <button label="Löschen" name="clear_btn" /> 8 <button label="Löschen" name="clear_btn" />
10 <text name="loading_label"> 9 <text name="loading_label">
11 Wird geladen... 10 Wird geladen...
diff --git a/linden/indra/newview/skins/default/xui/de/floater_water.xml b/linden/indra/newview/skins/default/xui/de/floater_water.xml
index d48f2e5..95b4694 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_water.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_water.xml
@@ -11,16 +11,17 @@
11 <text name="BHText"> 11 <text name="BHText">
12 Wassertrübungsfarbe 12 Wassertrübungsfarbe
13 </text> 13 </text>
14 <button label=" ?" name="WaterFogColorHelp" /> 14 <button label=" ?" name="WaterFogColorHelp" left="175" />
15 <color_swatch name="WaterFogColor" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" /> 15 <color_swatch name="WaterFogColor" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
16 <text name="WaterFogDensText"> 16 <text name="WaterFogDensText">
17 Wassertrübungsdichte 17 Wassertrübungsdichte
18 </text> 18 </text>
19 <button label=" ?" name="WaterFogDensityHelp" /> 19 <button label=" ?" name="WaterFogDensityHelp" left="175" />
20 <text name="WaterUnderWaterFogModText"> 20 <text name="WaterUnderWaterFogModText">
21 Wassertrübungs-Modifikator 21 Wassertrübungs-Modifikator
22 </text> 22 </text>
23 <button label=" ?" name="WaterUnderWaterFogModHelp" /> 23 <button label=" ?" name="WaterUnderWaterFogModHelp" left="175" />
24 <slider bottom_delta="-34" name="WaterUnderWaterFogMod" />
24 <text name="BDensText"> 25 <text name="BDensText">
25 Reflexionswellengröße 26 Reflexionswellengröße
26 </text> 27 </text>
diff --git a/linden/indra/newview/skins/default/xui/de/floater_world_map.xml b/linden/indra/newview/skins/default/xui/de/floater_world_map.xml
index c3d203d..aba6fe5 100644
--- a/linden/indra/newview/skins/default/xui/de/floater_world_map.xml
+++ b/linden/indra/newview/skins/default/xui/de/floater_world_map.xml
@@ -1,8 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="worldmap" title="Weltkarte"> 2<floater name="worldmap" title="Weltkarte">
3 <tab_container name="maptab"> 3 <tab_container name="maptab">
4 <panel label="Objekte" name="objects_mapview" /> 4 <panel label="Objekte" name="objects_mapview"/>
5 <panel label="Terrain" name="terrain_mapview" /> 5 <panel label="Terrain" name="terrain_mapview"/>
6 </tab_container> 6 </tab_container>
7 <text font="SansSerifSmall" name="land_for_sale_label"> 7 <text font="SansSerifSmall" name="land_for_sale_label">
8 Land erhaeltlich 8 Land erhaeltlich
@@ -16,77 +16,60 @@
16 <text name="home_label"> 16 <text name="home_label">
17 Zuhause 17 Zuhause
18 </text> 18 </text>
19 <button label="Nach Hause" label_selected="Nach Hause" name="Go Home" 19 <button label="Nach Hause" label_selected="Nach Hause" name="Go Home" tool_tip="Nach Hause teleportieren"/>
20 tool_tip="Nach Hause teleportieren" />
21 <text name="classifieds_label">
22 Anzeigen
23 </text>
24 <check_box label=" " name="class_chk" />
25 <text name="person_label"> 20 <text name="person_label">
26 Person 21 Person
27 </text> 22 </text>
28 <check_box label=" " name="people_chk" /> 23 <check_box label=" " name="people_chk"/>
29 <text name="infohub_label"> 24 <text name="infohub_label">
30 Infohub 25 Infohub
31 </text> 26 </text>
32 <check_box label=" " name="infohub_chk" /> 27 <check_box label=" " name="infohub_chk"/>
33 <text name="telehub_label"> 28 <text name="telehub_label">
34 Telehub 29 Telehub
35 </text> 30 </text>
36 <check_box label=" " name="telehubchk" /> 31 <check_box label=" " name="telehubchk"/>
37 <text name="popular_label">
38 Beliebt
39 </text>
40 <check_box label=" " name="popular_chk" />
41 <text font="SansSerifSmall" name="land_for_sale_label2"> 32 <text font="SansSerifSmall" name="land_for_sale_label2">
42 Land erhaeltlich 33 Land erhaeltlich
43 </text> 34 </text>
44 <check_box label=" " name="land_for_sale_chk" /> 35 <check_box label=" " name="land_for_sale_chk"/>
45 <text name="events_label"> 36 <text name="events_label">
46 Events 37 Events
47 </text> 38 </text>
48 <check_box label=" " name="event_chk" /> 39 <check_box label=" " name="event_chk"/>
49 <text name="events_mature_label"> 40 <text name="events_mature_label">
50 Events (18+) 41 Events (18+)
51 </text> 42 </text>
52 <check_box label=" " name="event_mature_chk" /> 43 <check_box label=" " name="event_mature_chk"/>
53 <combo_box label="Online-Freunde" name="friend combo" tool_tip="Friend to Show on Map"> 44 <combo_box label="Online-Freunde" name="friend combo" tool_tip="Freund, der auf Karte angezeigt werden soll">
54 <combo_item name="none_selected"> 45 <combo_item name="none_selected">
55 Online-Freunde 46 Online-Freunde
56 </combo_item> 47 </combo_item>
57 </combo_box> 48 </combo_box>
58 <combo_box label="Landmarken" name="landmark combo" tool_tip="Landmark to Show on Map"> 49 <combo_box label="Landmarken" name="landmark combo" tool_tip="Landmarke, die auf Karte angezeigt werden soll">
59 <combo_item name="none_selected"> 50 <combo_item name="none_selected">
60 Landmarken 51 Landmarken
61 </combo_item> 52 </combo_item>
62 </combo_box> 53 </combo_box>
63 <line_editor label="Nach Regionsname suchen" name="location" 54 <line_editor label="Nach Regionsname suchen" name="location" tool_tip="Geben Sie den Namen einer Region ein"/>
64 tool_tip="Geben Sie den Namen einer Region ein" /> 55 <button label="Suchen" name="DoSearch" tool_tip="Nach einer Region suchen"/>
65 <button label="Suchen" name="DoSearch" tool_tip="Nach einer Region suchen" />
66 <text name="search_label"> 56 <text name="search_label">
67 Suchergebnisse: 57 Suchergebnisse:
68 </text> 58 </text>
69 <scroll_list name="search_results"> 59 <scroll_list name="search_results">
70 <column label="" name="icon" /> 60 <column label="" name="icon"/>
71 <column label="" name="sim_name" /> 61 <column label="" name="sim_name"/>
72 </scroll_list> 62 </scroll_list>
73 <text name="location_label"> 63 <text name="location_label">
74 Standort: 64 Standort:
75 </text> 65 </text>
76 <spinner name="spin x" tool_tip="X-Koordinate der Position auf der Karte" /> 66 <spinner name="spin x" tool_tip="X-Koordinate der Position auf der Karte"/>
77 <spinner name="spin y" tool_tip="Y-Koordinate der Position auf der Karte" /> 67 <spinner name="spin y" tool_tip="Y-Koordinate der Position auf der Karte"/>
78 <spinner name="spin z" tool_tip="Z-Koordinate der Position auf der Karte" /> 68 <spinner name="spin z" tool_tip="Z-Koordinate der Position auf der Karte"/>
79 <button label="Teleportieren" label_selected="Teleportieren" name="Teleport" 69 <button label="Teleportieren" label_selected="Teleportieren" name="Teleport" tool_tip="Zu ausgewählter Position teleportieren"/>
80 tool_tip="Zu ausgewählter Position teleportieren" /> 70 <button label="Gesuchte Position" label_selected="Ziel anzeigen" name="Show Destination" tool_tip="Karte auf ausgewählte Position zentrieren"/>
81 <button label="Gesuchte Position" label_selected="Ziel anzeigen" 71 <button label="Löschen" label_selected="Löschen" name="Clear" tool_tip="Verfolgung abschalten"/>
82 name="Show Destination" 72 <button label="Meine Position" label_selected="Wo bin ich?" name="Show My Location" tool_tip="Karte auf Position Ihres Avatars zentrieren"/>
83 tool_tip="Karte auf ausgewählte Position zentrieren" /> 73 <button font="SansSerifSmall" label="SLURL in die Zwischenablage kopieren" name="copy_slurl" tool_tip="Kopiert die aktuelle Position als SLURL zur Verwendung im Web."/>
84 <button label="Löschen" label_selected="Löschen" name="Clear" 74 <slider label="Zoom" name="zoom slider"/>
85 tool_tip="Verfolgung abschalten" />
86 <button label="Meine Position" label_selected="Wo bin ich?" name="Show My Location"
87 tool_tip="Karte auf Position Ihres Avatars zentrieren" />
88 <button font="SansSerifSmall" label="SLURL in die Zwischenablage kopieren"
89 name="copy_slurl"
90 tool_tip="Kopiert die aktuelle Position als SLURL zur Verwendung im Web." />
91 <slider label="Zoom" name="zoom slider" />
92</floater> 75</floater>
diff --git a/linden/indra/newview/skins/default/xui/de/menu_viewer.xml b/linden/indra/newview/skins/default/xui/de/menu_viewer.xml
index 0934a28..9305d07 100644
--- a/linden/indra/newview/skins/default/xui/de/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/de/menu_viewer.xml
@@ -1,256 +1,210 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<menu_bar name="Main Menu"> 2<menu_bar name="Main Menu">
3 <menu label="Datei" name="File"> 3 <menu label="Datei" name="File">
4 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 4 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
5 <menu_item_call label="Bild hochladen ([COST] L$)..." name="Upload Image" /> 5 <menu_item_call label="Bild hochladen ([COST] L$)..." name="Upload Image"/>
6 <menu_item_call label="Sound hochladen ([COST] L$)..." name="Upload Sound" /> 6 <menu_item_call label="Sound hochladen ([COST] L$)..." name="Upload Sound"/>
7 <menu_item_call label="Animation hochladen ([COST] L$)..." name="Upload Animation" /> 7 <menu_item_call label="Animation hochladen ([COST] L$)..." name="Upload Animation"/>
8 <menu_item_call label="Mehrfach-Upload ([COST] L$ pro Datei)..." name="Bulk Upload" /> 8 <menu_item_call label="Mehrfach-Upload ([COST] L$ pro Datei)..." name="Bulk Upload"/>
9 <menu_item_separator label="-----------" name="separator" /> 9 <menu_item_separator label="-----------" name="separator"/>
10 <menu_item_call label="Fenster schließen" name="Close Window" /> 10 <menu_item_call label="Fenster schließen" name="Close Window"/>
11 <menu_item_call label="Alle Fenster schließen" name="Close All Windows" /> 11 <menu_item_call label="Alle Fenster schließen" name="Close All Windows"/>
12 <menu_item_separator label="-----------" name="separator2" /> 12 <menu_item_separator label="-----------" name="separator2"/>
13 <menu_item_call label="Textur speichern unter..." name="Save Texture As..." /> 13 <menu_item_call label="Textur speichern unter..." name="Save Texture As..."/>
14 <menu_item_separator label="-----------" name="separator3" /> 14 <menu_item_separator label="-----------" name="separator3"/>
15 <menu_item_call label="Foto machen" name="Take Snapshot" /> 15 <menu_item_call label="Foto machen" name="Take Snapshot"/>
16 <menu_item_call label="Foto auf Datenträger" name="Snapshot to Disk" /> 16 <menu_item_call label="Foto auf Datenträger" name="Snapshot to Disk"/>
17 <menu_item_separator label="-----------" name="separator4" /> 17 <menu_item_separator label="-----------" name="separator4"/>
18 <menu label="Fenstergröße einstellen" name="Set Window Size"> 18 <menu_item_call label="Beenden" name="Quit"/>
19 <menu_item_call label="320x240" name="320x240" />
20 <menu_item_call label="640x480" name="640x480" />
21 <menu_item_call label="800x600" name="800x600" />
22 <menu_item_separator label="-----------" name="separator" />
23 <menu_item_call label="720x480 (NTSC)" name="720x480 (NTSC)" />
24 <menu_item_call label="768x576 (PAL)" name="768x576 (PAL)" />
25 </menu>
26 <menu_item_separator label="-----------" name="separator5" />
27 <menu_item_call label="Beenden" name="Quit" />
28 </menu> 19 </menu>
29 <menu label="Bearbeiten" name="Edit"> 20 <menu label="Bearbeiten" name="Edit">
30 <menu_item_call label="Rückgängig" name="Undo" /> 21 <menu_item_call label="Rückgängig" name="Undo"/>
31 <menu_item_call label="Neu" name="Redo" /> 22 <menu_item_call label="Neu" name="Redo"/>
32 <menu_item_separator label="-----------" name="separator" /> 23 <menu_item_separator label="-----------" name="separator"/>
33 <menu_item_call label="Ausschneiden" name="Cut" /> 24 <menu_item_call label="Ausschneiden" name="Cut"/>
34 <menu_item_call label="Kopieren" name="Copy" /> 25 <menu_item_call label="Kopieren" name="Copy"/>
35 <menu_item_call label="Einfügen" name="Paste" /> 26 <menu_item_call label="Einfügen" name="Paste"/>
36 <menu_item_call label="Löschen" name="Delete" /> 27 <menu_item_call label="Löschen" name="Delete"/>
37 <menu_item_separator label="-----------" name="separator2" /> 28 <menu_item_separator label="-----------" name="separator2"/>
38 <menu_item_call label="Suchen..." name="Search..." /> 29 <menu_item_call label="Suchen..." name="Search..."/>
39 <menu_item_separator label="-----------" name="separator3" /> 30 <menu_item_separator label="-----------" name="separator3"/>
40 <menu_item_call label="Alle auswählen" name="Select All" /> 31 <menu_item_call label="Alle auswählen" name="Select All"/>
41 <menu_item_call label="Auswahl aufheben" name="Deselect" /> 32 <menu_item_call label="Auswahl aufheben" name="Deselect"/>
42 <menu_item_separator label="-----------" name="separator4" /> 33 <menu_item_separator label="-----------" name="separator4"/>
43 <menu_item_call label="Duplizieren" name="Duplicate" /> 34 <menu_item_call label="Duplizieren" name="Duplicate"/>
44 <menu_item_separator label="-----------" name="separator5" /> 35 <menu_item_separator label="-----------" name="separator5"/>
45 <menu label="Objekt anhängen" name="Attach Object" /> 36 <menu label="Objekt anhängen" name="Attach Object"/>
46 <menu label="Objekt abnehmen" name="Detach Object" /> 37 <menu label="Objekt abnehmen" name="Detach Object"/>
47 <menu label="Kleider ausziehen" name="Take Off Clothing"> 38 <menu label="Kleider ausziehen" name="Take Off Clothing">
48 <menu_item_call label="Hemd" name="Shirt" /> 39 <menu_item_call label="Hemd" name="Shirt"/>
49 <menu_item_call label="Hose" name="Pants" /> 40 <menu_item_call label="Hose" name="Pants"/>
50 <menu_item_call label="Schuhe" name="Shoes" /> 41 <menu_item_call label="Schuhe" name="Shoes"/>
51 <menu_item_call label="Socken" name="Socks" /> 42 <menu_item_call label="Socken" name="Socks"/>
52 <menu_item_call label="Jacke" name="Jacket" /> 43 <menu_item_call label="Jacke" name="Jacket"/>
53 <menu_item_call label="Handschuhe" name="Gloves" /> 44 <menu_item_call label="Handschuhe" name="Gloves"/>
54 <menu_item_call label="Unterhemd" name="Menu Undershirt" /> 45 <menu_item_call label="Unterhemd" name="Menu Undershirt"/>
55 <menu_item_call label="Unterhose" name="Menu Underpants" /> 46 <menu_item_call label="Unterhose" name="Menu Underpants"/>
56 <menu_item_call label="Rock" name="Skirt" /> 47 <menu_item_call label="Rock" name="Skirt"/>
57 <menu_item_call label="Alle Kleider" name="All Clothes" /> 48 <menu_item_call label="Alle Kleider" name="All Clothes"/>
58 </menu> 49 </menu>
59 <menu_item_separator label="-----------" name="separator6" /> 50 <menu_item_separator label="-----------" name="separator6"/>
60 <menu_item_call label="Gesten..." name="Gestures..." /> 51 <menu_item_call label="Gesten..." name="Gestures..."/>
61 <menu_item_call label="Profil..." name="Profile..." /> 52 <menu_item_call label="Profil..." name="Profile..."/>
62 <menu_item_call label="Aussehen..." name="Appearance..." /> 53 <menu_item_call label="Aussehen..." name="Appearance..."/>
63 <menu_item_separator label="-----------" name="separator7" /> 54 <menu_item_separator label="-----------" name="separator7"/>
64 <menu_item_check label="Freunde..." name="Friends..." /> 55 <menu_item_check label="Freunde..." name="Friends..."/>
65 <menu_item_call label="Gruppen..." name="Groups..." /> 56 <menu_item_call label="Gruppen..." name="Groups..."/>
66 <menu_item_separator label="-----------" name="separator8" /> 57 <menu_item_separator label="-----------" name="separator8"/>
67 <menu_item_call label="Einstellungen..." name="Preferences..." /> 58 <menu_item_call label="Einstellungen..." name="Preferences..."/>
68 </menu> 59 </menu>
69 <menu label="Ansicht" name="View"> 60 <menu label="Ansicht" name="View">
70 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 61 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
71 <menu_item_call label="Mouselook" name="Mouselook" /> 62 <menu_item_call label="Mouselook" name="Mouselook"/>
72 <menu_item_check label="Bauen" name="Build" /> 63 <menu_item_check label="Bauen" name="Build"/>
73 <menu_item_check label="Joystick-Flycam" name="Joystick Flycam" /> 64 <menu_item_check label="Joystick-Flycam" name="Joystick Flycam"/>
74 <menu_item_call label="Ansicht zurücksetzen" name="Reset View" /> 65 <menu_item_call label="Ansicht zurücksetzen" name="Reset View"/>
75 <menu_item_call label="Letzten Chatter ansehen" name="Look at Last Chatter" /> 66 <menu_item_call label="Letzten Chatter ansehen" name="Look at Last Chatter"/>
76 <menu_item_separator label="-----------" name="separator" /> 67 <menu_item_separator label="-----------" name="separator"/>
77 <menu_item_check label="Symbolleiste" name="Toolbar" /> 68 <menu_item_check label="Symbolleiste" name="Toolbar"/>
78 <menu_item_check label="Lokaler Chat" name="Chat History" /> 69 <menu_item_check label="Lokaler Chat" name="Chat History"/>
79 <menu_item_check label="Unterhalten" name="Instant Message" /> 70 <menu_item_check label="Unterhalten" name="Instant Message"/>
80 <menu_item_call label="Inventar" name="Inventory" /> 71 <menu_item_call label="Inventar" name="Inventory"/>
81 <menu_item_check label="Aktive Sprecher" name="Active Speakers" /> 72 <menu_item_check label="Aktive Sprecher" name="Active Speakers"/>
82 <menu_item_check label="Stummschalten-Liste" name="Mute List" /> 73 <menu_item_check label="Stummschalten-Liste" name="Mute List"/>
83 <menu_item_separator label="-----------" name="separator2" /> 74 <menu_item_separator label="-----------" name="separator2"/>
84 <menu_item_check label="Kamerasteuerung" name="Camera Controls" /> 75 <menu_item_check label="Kamerasteuerung" name="Camera Controls"/>
85 <menu_item_check label="Bewegungssteuerung" name="Movement Controls" /> 76 <menu_item_check label="Bewegungssteuerung" name="Movement Controls"/>
86 <menu_item_check label="Weltkarte" name="World Map" /> 77 <menu_item_check label="Weltkarte" name="World Map"/>
87 <menu_item_check label="Minikarte" name="Mini-Map" /> 78 <menu_item_check label="Minikarte" name="Mini-Map"/>
88 <menu_item_separator label="-----------" name="separator3" /> 79 <menu_item_separator label="-----------" name="separator3"/>
89 <menu_item_check label="Statistikleiste" name="Statistics Bar" /> 80 <menu_item_check label="Statistikleiste" name="Statistics Bar"/>
90 <menu_item_check label="Grundstücksgrenzen" name="Property Lines" /> 81 <menu_item_check label="Grundstücksgrenzen" name="Property Lines"/>
91 <menu_item_check label="Landeigentümer" name="Land Owners" /> 82 <menu_item_check label="Landeigentümer" name="Land Owners"/>
92 <menu_item_separator label="-----------" name="separator4" /> 83 <menu_item_separator label="-----------" name="separator4"/>
93 <menu label="Schwebe-Tipps" name="Hover Tips"> 84 <menu label="Schwebe-Tipps" name="Hover Tips">
94 <menu_item_check label="Tipps anzeigen" name="Show Tips" /> 85 <menu_item_check label="Tipps anzeigen" name="Show Tips"/>
95 <menu_item_separator label="-----------" name="separator" /> 86 <menu_item_separator label="-----------" name="separator"/>
96 <menu_item_check label="Landtipps" name="Land Tips" /> 87 <menu_item_check label="Landtipps" name="Land Tips"/>
97 <menu_item_check label="Tipps zu allen Objekten" name="Tips On All Objects" /> 88 <menu_item_check label="Tipps zu allen Objekten" name="Tips On All Objects"/>
98 </menu>
99 <menu_item_check label="Alt zeigt physische Objekte an" name="Alt Shows Physical" />
100 <menu_item_check label="Beacons immer an" name="Beacons Always On" />
101 <menu_item_check label="Durchsichtig hervorheben" name="Highlight Transparent" />
102 <menu label="Beacons" name="Beacons">
103 <menu_item_check label="Auf Berührung beschränkte Skriptobjekte"
104 name="Scripted Objects With Touch Only" />
105 <menu_item_check label="Scripting-Objekte" name="Scripted Objects" />
106 <menu_item_check label="Physische Objekte" name="Physical Objects" />
107 <menu_item_check label="Soundquellen" name="Sound Sources" />
108 <menu_item_check label="Partikelquellen" name="Particle Sources" />
109 <menu_item_check label="Glanzlichter anzeigen" name="Render Highlights" />
110 <menu_item_check label="Beacons anzeigen" name="Render Beacons" />
111 <menu_item_separator label="-----------" name="separator" />
112 <menu_item_separator label=" -----------" name="separator2" />
113 <menu_item_check label="Partikel ausblenden" name="Hide Particles" />
114 <menu_item_separator label=" -----------" name="separator3" />
115 <menu label="Beacon-Breite" name="Beacon Width">
116 <menu_item_call label=" 1" name="Beacon Width 1" />
117 <menu_item_call label=" 4" name="Beacon Width 4" />
118 <menu_item_call label=" 16" name="Beacon Width 16" />
119 <menu_item_call label=" 32" name="Beacon Width 32" />
120 </menu>
121 </menu> 89 </menu>
122 <menu_item_check label="HUD-Anhänge anzeigen" name="Show HUD Attachments" /> 90 <menu_item_check label="Durchsichtig hervorheben" name="Highlight Transparent"/>
123 <menu_item_separator label="-----------" name="separator5" /> 91 <menu_item_check label="Beacons" name="beacons"/>
124 <menu_item_call label="Hinein zoomen" name="Zoom In" /> 92 <menu_item_check label="Partikel ausblenden" name="Hide Particles"/>
125 <menu_item_call label="Zoom-Standard" name="Zoom Default" /> 93 <menu_item_check label="HUD-Anhänge anzeigen" name="Show HUD Attachments"/>
126 <menu_item_call label="Wegzoomen" name="Zoom Out" /> 94 <menu_item_separator label="-----------" name="separator5"/>
127 <menu_item_separator label="-----------" name="separator6" /> 95 <menu_item_call label="Hinein zoomen" name="Zoom In"/>
128 <menu_item_call label="Vollbild" name="Toggle Fullscreen" /> 96 <menu_item_call label="Zoom-Standard" name="Zoom Default"/>
129 <menu_item_call label="UI-Größe auf Standard setzen" name="Set UI Size to Default" /> 97 <menu_item_call label="Wegzoomen" name="Zoom Out"/>
98 <menu_item_separator label="-----------" name="separator6"/>
99 <menu_item_call label="Vollbild" name="Toggle Fullscreen"/>
100 <menu_item_call label="UI-Größe auf Standard setzen" name="Set UI Size to Default"/>
130 </menu> 101 </menu>
131 <menu label="Welt" name="World"> 102 <menu label="Welt" name="World">
132 <menu_item_call label="Chat" name="Chat" /> 103 <menu_item_call label="Chat" name="Chat"/>
133 <menu_item_call label="Geste starten" name="Start Gesture" /> 104 <menu_item_check label="Immer rennen" name="Always Run"/>
134 <menu_item_check label="Immer rennen" name="Always Run" /> 105 <menu_item_check label="Fliegen" name="Fly"/>
135 <menu_item_check label="Fliegen" name="Fly" /> 106 <menu_item_separator label="-----------" name="separator"/>
136 <menu_item_separator label="-----------" name="separator" /> 107 <menu_item_call label="Landmarke hier setzen" name="Create Landmark Here"/>
137 <menu_item_call label="Landmarke hier setzen" name="Create Landmark Here" /> 108 <menu_item_call label="Hier als Zuhause wählen" name="Set Home to Here"/>
138 <menu_item_call label="Hier als Zuhause wählen" name="Set Home to Here" /> 109 <menu_item_separator label="-----------" name="separator2"/>
139 <menu_item_separator label="-----------" name="separator2" /> 110 <menu_item_call label="Teleport nach Hause" name="Teleport Home"/>
140 <menu_item_call label="Teleport nach Hause" name="Teleport Home" /> 111 <menu_item_separator label="-----------" name="separator3"/>
141 <menu_item_separator label="-----------" name="separator3" /> 112 <menu_item_call label="Als abwesend anzeigen" name="Set Away"/>
142 <menu_item_call label="Als abwesend anzeigen" name="Set Away" /> 113 <menu_item_call label="Als beschäftigt anzeigen" name="Set Busy"/>
143 <menu_item_call label="Als beschäftigt anzeigen" name="Set Busy" /> 114 <menu_item_call label="Alle Animationen stoppen" name="Stop All Animations"/>
144 <menu_item_call label="Alle Animationen stoppen" name="Stop All Animations" /> 115 <menu_item_call label="Tasten freigeben" name="Release Keys"/>
145 <menu_item_call label="Tasten freigeben" name="Release Keys" /> 116 <menu_item_separator label="-----------" name="separator4"/>
146 <menu_item_separator label="-----------" name="separator4" /> 117 <menu_item_call label="Kontostatistik..." name="Account History...">
147 <menu_item_call label="Kontostatistik..." name="Account History..." /> 118 <on_click name="AccountHistory_url" userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php?lang=de" />
148 <menu_item_call label="Mein Konto verwalten..." name="Manage My Account..." /> 119 </menu_item_call>
149 <menu_item_call label="L$ kaufen..." name="Buy and Sell L$..." /> 120 <menu_item_call label="Mein Konto verwalten..." name="Manage My Account...">
150 <menu_item_separator label="-----------" name="separator5" /> 121 <on_click name="ManageMyAccount_url" userdata="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=de" />
151 <menu_item_call label="Mein Land..." name="My Land..." /> 122 </menu_item_call>
152 <menu_item_call label="Land-Info..." name="About Land..." /> 123 <menu_item_call label="L$ kaufen..." name="Buy and Sell L$..."/>
153 <menu_item_call label="Land kaufen..." name="Buy Land..." /> 124 <menu_item_separator label="-----------" name="separator5"/>
154 <menu_item_call label="Region/Grundstück..." name="Region/Estate..." /> 125 <menu_item_call label="Mein Land..." name="My Land..."/>
155 <menu_item_separator label="-----------" name="separator6" /> 126 <menu_item_call label="Land-Info..." name="About Land..."/>
156 <menu label="Sonne erzwingen" name="Force Sun"> 127 <menu_item_call label="Land kaufen..." name="Buy Land..."/>
157 <menu_item_call label="Sonnenaufgang" name="Sunrise" /> 128 <menu_item_call label="Region/Grundstück..." name="Region/Estate..."/>
158 <menu_item_call label="Mittags" name="Noon" /> 129 <menu_item_separator label="-----------" name="separator6"/>
159 <menu_item_call label="Sonnenuntergang" name="Sunset" />
160 <menu_item_call label="Mitternacht" name="Midnight" />
161 <menu_item_separator label="-----------" name="separator" />
162 <menu_item_call label="Auf Regionsstandard zurücksetzen" name="Revert to Region Default" />
163 </menu>
164 <menu label="Umwelt-Einstellungen" name="Environment Settings"> 130 <menu label="Umwelt-Einstellungen" name="Environment Settings">
165 <menu_item_call label="Sonnenaufgang" name="Sunrise" /> 131 <menu_item_call label="Sonnenaufgang" name="Sunrise"/>
166 <menu_item_call label="Mittag" name="Noon" /> 132 <menu_item_call label="Mittag" name="Noon"/>
167 <menu_item_call label="Sonnenuntergang" name="Sunset" /> 133 <menu_item_call label="Sonnenuntergang" name="Sunset"/>
168 <menu_item_call label="Mitternacht" name="Midnight" /> 134 <menu_item_call label="Mitternacht" name="Midnight"/>
169 <menu_item_call label="Auf Regionsstandard zurücksetzen" name="Revert to Region Default" /> 135 <menu_item_call label="Auf Regionsstandard zurücksetzen" name="Revert to Region Default"/>
170 <menu_item_separator label=" -----------" name="separator" /> 136 <menu_item_separator label="-----------" name="separator"/>
171 <menu_item_call label="Umwelt-Editor" name="Environment Editor" /> 137 <menu_item_call label="Umwelt-Editor" name="Environment Editor"/>
172 </menu> 138 </menu>
173 </menu> 139 </menu>
174 <menu label="Werkzeug" name="Tools"> 140 <menu label="Werkzeug" name="Tools">
175 <menu label="Fehlermeldungen" name="Select Tool"> 141 <menu label="Fehlermeldungen" name="Select Tool">
176 <menu_item_call label="Fokus" name="Focus" /> 142 <menu_item_call label="Fokus" name="Focus"/>
177 <menu_item_call label="Verschieben" name="Move" /> 143 <menu_item_call label="Verschieben" name="Move"/>
178 <menu_item_call label="Bearbeiten" name="Edit" /> 144 <menu_item_call label="Bearbeiten" name="Edit"/>
179 <menu_item_call label="Erstellen" name="Create" /> 145 <menu_item_call label="Erstellen" name="Create"/>
180 <menu_item_call label="Land" name="Land" /> 146 <menu_item_call label="Land" name="Land"/>
181 </menu> 147 </menu>
182 <menu_item_separator label="-----------" name="separator" /> 148 <menu_item_separator label="-----------" name="separator"/>
183 <menu_item_check label="Nur meine Objekte auswählen" name="Select Only My Objects" /> 149 <menu_item_check label="Nur meine Objekte auswählen" name="Select Only My Objects"/>
184 <menu_item_check label="Nur bewegliche Objekte auswählen" name="Select Only Movable Objects" /> 150 <menu_item_check label="Nur bewegliche Objekte auswählen" name="Select Only Movable Objects"/>
185 <menu_item_check label="Nach Umgebung auswählen" name="Select By Surrounding" /> 151 <menu_item_check label="Nach Umgebung auswählen" name="Select By Surrounding"/>
186 <menu_item_check label="Ausgeblendete Auswahl anzeigen" name="Show Hidden Selection" /> 152 <menu_item_check label="Ausgeblendete Auswahl anzeigen" name="Show Hidden Selection"/>
187 <menu_item_check label="Lichtradius für Auswahl anzeigen" 153 <menu_item_check label="Lichtradius für Auswahl anzeigen" name="Show Light Radius for Selection"/>
188 name="Show Light Radius for Selection" /> 154 <menu_item_check label="Auswahlstrahl anzeigen" name="Show Selection Beam"/>
189 <menu_item_check label="Auswahlstrahl anzeigen" name="Show Selection Beam" /> 155 <menu_item_separator label="-----------" name="separator2"/>
190 <menu_item_separator label="-----------" name="separator2" /> 156 <menu_item_check label="An Raster ausrichten" name="Snap to Grid"/>
191 <menu_item_check label="An Raster ausrichten" name="Snap to Grid" /> 157 <menu_item_call label="Objekt-XY an Raster ausrichten" name="Snap Object XY to Grid"/>
192 <menu_item_call label="Objekt-XY an Raster ausrichten" name="Snap Object XY to Grid" /> 158 <menu_item_call label="Auswahl für Raster verwenden" name="Use Selection for Grid"/>
193 <menu_item_call label="Auswahl für Raster verwenden" name="Use Selection for Grid" /> 159 <menu_item_call label="Rasteroptionen..." name="Grid Options..."/>
194 <menu_item_call label="Rasteroptionen..." name="Grid Options..." /> 160 <menu_item_separator label="-----------" name="separator3"/>
195 <menu_item_separator label="-----------" name="separator3" /> 161 <menu_item_check label="Verknüpfte Teile bearbeiten" name="Edit Linked Parts"/>
196 <menu_item_check label="Verknüpfte Teile bearbeiten" name="Edit Linked Parts" /> 162 <menu_item_call label="Verknüpfung" name="Link"/>
197 <menu_item_call label="Verknüpfung" name="Link" /> 163 <menu_item_call label="Verknüpfung aufheben" name="Unlink"/>
198 <menu_item_call label="Verknüpfung aufheben" name="Unlink" /> 164 <menu_item_separator label="-----------" name="separator4"/>
199 <menu_item_separator label="-----------" name="separator4" /> 165 <menu_item_call label="Fokus auf Auswahl" name="Focus on Selection"/>
200 <menu_item_separator label="-----------" name="separator5" /> 166 <menu_item_call label="Auf Auswahl zoomen" name="Zoom to Selection"/>
201 <menu_item_call label="Fokus auf Auswahl" name="Focus on Selection" /> 167 <menu_item_call label="Objekt kaufen" name="Menu Object Take"/>
202 <menu_item_call label="Auf Auswahl zoomen" name="Zoom to Selection" /> 168 <menu_item_call label="Kopie nehmen/machen" name="Take Copy"/>
203 <menu_item_call label="Objekt kaufen" name="Menu Object Take" /> 169 <menu_item_call label="Objekt wieder im Inventar speichern" name="Save Object Back to My Inventory"/>
204 <menu_item_call label="Kopie nehmen/machen" name="Take Copy" /> 170 <menu_item_call label="Objekt wieder in Objektinhalt speichern" name="Save Object Back to Object Contents"/>
205 <menu_item_call label="Objekt wieder im Inventar speichern" 171 <menu_item_separator label="-----------" name="separator6"/>
206 name="Save Object Back to My Inventory" /> 172 <menu_item_call label="Skriptwarnung/Fehlerfenster anzeigen" name="Show Script Warning/Error Window"/>
207 <menu_item_call label="Objekt wieder in Objektinhalt speichern" 173 <menu label="Skripte in Auswahl neu kompilieren" name="Recompile Scripts in Selection">
208 name="Save Object Back to Object Contents" /> 174 <menu_item_call label="Mono" name="Mono"/>
209 <menu_item_separator label="-----------" name="separator6" /> 175 <menu_item_call label="LSL" name="LSL"/>
210 <menu_item_call label="Skriptwarnung/Fehlerfenster anzeigen" 176 </menu>
211 name="Show Script Warning/Error Window" /> 177 <menu_item_call label="Skripte in Auswahl zurücksetzen" name="Reset Scripts in Selection"/>
212 <menu_item_call label="Skripte in Auswahl neu kompilieren" 178 <menu_item_call label="Skripte in Auswahl so einstellen, dass sie ausgeführt werden" name="Set Scripts to Running in Selection"/>
213 name="Recompile Scripts in Selection"> 179 <menu_item_call label="Skripte in Auswahl so einstellen, dass sie nicht ausgeführt werden" name="Set Scripts to Not Running in Selection"/>
214 <menu_item_call label="Mono" name="Mono" />
215 <menu_item_call label="LSL" name="LSL" />
216 </menu_item_call>
217 <menu_item_call label="Skripte in Auswahl zurücksetzen" name="Reset Scripts in Selection" />
218 <menu_item_call label="Skripte in Auswahl so einstellen, dass sie ausgeführt werden"
219 name="Set Scripts to Running in Selection" />
220 <menu_item_call label="Skripte in Auswahl so einstellen, dass sie nicht ausgeführt werden"
221 name="Set Scripts to Not Running in Selection" />
222 </menu> 180 </menu>
223 <menu label="Hilfe" name="Help"> 181 <menu label="Hilfe" name="Help">
224 <menu_item_call label="Hilfe zu Second Life" name="Second Life Help" /> 182 <menu_item_call label="Hilfe zu Second Life" name="Second Life Help"/>
225 <menu_item_call label="In-Welt-Hilfe" name="In-World Help" /> 183 <menu_item_call label="Tutorial" name="Tutorial"/>
226 <menu_item_call label="Weitere Hilfe" name="Additional Help" /> 184 <menu_item_separator label="-----------" name="separator"/>
227 <menu_item_call label="Tutorial" name="Tutorial" /> 185 <menu_item_call label="Offizielles Linden-Blog..." name="Official Linden Blog..."/>
228 <menu_item_separator label="-----------" name="separator" /> 186 <menu_item_separator label="-----------" name="separator2"/>
229 <menu_item_call label="Offizielles Linden-Blog..." name="Official Linden Blog..." /> 187 <menu_item_call label="Scripting-Portal..." name="Scripting Portal..."/>
230 <menu_item_separator label="-----------" name="separator2" /> 188 <menu_item_separator label="-----------" name="separator3"/>
231 <menu_item_call label="Scripting-Anleitung..." name="Scripting Guide..." /> 189 <menu_item_call label="Missbrauch melden..." name="Report Abuse..."/>
232 <menu_item_call label="Scripting-Portal..." name="Scripting Portal..." /> 190 <menu_item_call label="Rempler, Stöße und Schläge..." name="Bumps, Pushes &amp;amp; Hits..."/>
233 <menu_item_separator label="-----------" name="separator3" /> 191 <menu_item_call label="Lag-Anzeige" name="Lag Meter"/>
234 <menu_item_call label="Meldung des Tages..." name="Message of the Day..." /> 192 <menu_item_separator label="-----------" name="separator7"/>
235 <menu_item_separator label="-----------" name="separator4" />
236 <menu_item_call label="Missbrauch melden..." name="Report Abuse..." />
237 <menu_item_call label="Rempler, Stöße und Schläge..." name="Bumps, Pushes &amp;amp; Hits..." />
238 <menu_item_call label="Lag-Anzeige" name="Lag Meter" />
239 <menu_item_separator label=" -----------" name="separator7" />
240 <menu_item_separator label="-----------" name="separator5" />
241 <menu label="Fehlermeldungen" name="Bug Reporting"> 193 <menu label="Fehlermeldungen" name="Bug Reporting">
242 <menu_item_call label="Allgemeiner Probleme-Tracker..." name="Public Issue Tracker..." /> 194 <menu_item_call label="Allgemeiner Probleme-Tracker..." name="Public Issue Tracker..."/>
243 <menu_item_call label="Hilfe zum Allgemeinen Probleme-Tracker..." 195 <menu_item_call label="Hilfe zum Allgemeinen Probleme-Tracker..." name="Publc Issue Tracker Help..."/>
244 name="Publc Issue Tracker Help..." /> 196 <menu_item_separator label="-----------" name="separator7"/>
245 <menu_item_separator label=" -----------" name="separator7" /> 197 <menu_item_call label="Fehlermeldungs-1x1..." name="Bug Reporing 101...">
246 <menu_item_call label="Fehlermeldungs-1x1..." name="Bug Reporing 101..." /> 198 <on_click function="PromptShowURL" name="BugReporting101_url"
247 <menu_item_call label="Sicherheitsfragen..." name="Security Issues..." /> 199 userdata="WebLaunchBugReport101,http://wiki.secondlife.com/wiki/Bug_Reporting_101" />
248 <menu_item_call label="QA-Wiki..." name="QA Wiki..." /> 200 </menu_item_call>
249 <menu_item_separator label=" -----------" name="separator9" /> 201 <menu_item_call label="Sicherheitsfragen..." name="Security Issues...">
250 <menu_item_call label="Fehler melden..." name="Report Bug..." /> 202 <on_click name="SecurityIssues_url" userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues/de" />
203 </menu_item_call>
204 <menu_item_call label="QA-Wiki..." name="QA Wiki..."/>
205 <menu_item_separator label="-----------" name="separator9"/>
206 <menu_item_call label="Fehler melden..." name="Report Bug..."/>
251 </menu> 207 </menu>
252 <menu_item_call label="Versionshinweise..." name="Release Notes..." /> 208 <menu_item_call label="Ãœber Second Life..." name="About Second Life..."/>
253 <menu_item_separator label="-----------" name="separator6" />
254 <menu_item_call label="Ãœber Second Life..." name="About Second Life..." />
255 </menu> 209 </menu>
256</menu_bar> 210</menu_bar>
diff --git a/linden/indra/newview/skins/default/xui/de/mime_types.xml b/linden/indra/newview/skins/default/xui/de/mime_types.xml
index a11dcfa..e01649e 100644
--- a/linden/indra/newview/skins/default/xui/de/mime_types.xml
+++ b/linden/indra/newview/skins/default/xui/de/mime_types.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<mimetypes name="default"> 2<mimetypes name="default">
3 <widgetset name="web"> 3 <widgetset name="web">
4 <label name="web_label"> 4 <label name="web_label">
@@ -16,7 +16,7 @@
16 Video 16 Video
17 </label> 17 </label>
18 <tooltip name="movie_tooltip"> 18 <tooltip name="movie_tooltip">
19 Kein Video gefunden 19 Ein Video wurde gefunden.
20 </tooltip> 20 </tooltip>
21 <playtip name="movie_playtip"> 21 <playtip name="movie_playtip">
22 Video wiedergeben 22 Video wiedergeben
diff --git a/linden/indra/newview/skins/default/xui/de/notify.xml b/linden/indra/newview/skins/default/xui/de/notify.xml
index a2f2deb..3d41aee 100644
--- a/linden/indra/newview/skins/default/xui/de/notify.xml
+++ b/linden/indra/newview/skins/default/xui/de/notify.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<notifications> 2<notifications>
3 <notify name="SystemMessageTip"> 3 <notify name="SystemMessageTip">
4 <message name="message"> 4 <message name="message">
@@ -106,8 +106,7 @@ Bitte versuchen Sie es erneut.
106 <notify name="CapsKeyOn"> 106 <notify name="CapsKeyOn">
107 <message name="message"> 107 <message name="message">
108 Die Feststelltaste ist aktiv. 108 Die Feststelltaste ist aktiv.
109Da dies Auswirkung auf die Kennworteingabe hat, 109Da dies Auswirkung auf die Kennworteingabe hat, sollten Sie die Taste besser ausschalten.
110sollten Sie die Taste besser ausschalten.
111 </message> 110 </message>
112 </notify> 111 </notify>
113 <notify name="NotecardMissing"> 112 <notify name="NotecardMissing">
@@ -148,9 +147,7 @@ Bitte versuchen Sie es erneut.
148 </notify> 147 </notify>
149 <notify name="IncompleteInventory"> 148 <notify name="IncompleteInventory">
150 <message name="message"> 149 <message name="message">
151 Die von Ihnen angebotenen Inhalte sind noch nicht 150 Die von Ihnen angebotenen Inhalte sind noch nicht vollständig lokal verfügbar. Warten Sie kurz und wiederholen Sie dann das Angebot.
152vollständig lokal verfügbar. Warten Sie kurz und wiederholen Sie
153dann das Angebot.
154 </message> 151 </message>
155 </notify> 152 </notify>
156 <notify name="CannotModifyProtectedCategories"> 153 <notify name="CannotModifyProtectedCategories">
@@ -238,14 +235,14 @@ Wählen Sie ein einzelnes Objekt aus.
238 </notify> 235 </notify>
239 <notify name="TeleportToLandmark"> 236 <notify name="TeleportToLandmark">
240 <message name="message"> 237 <message name="message">
241 Jetzt, nachdem Sie das Mainland erreicht haben, können Sie sich an Positionen wie &apos;[NAME]&apos; teleportieren, indem Sie unten rechts im Fenster auf &apos;Inventar&apos; klicken und den Ordner &apos;Landmarken&apos; auswählen. 238 Jetzt, nachdem Sie das Mainland erreicht haben, können Sie sich an Positionen wie „[NAME]“ teleportieren, indem Sie unten rechts im Fenster auf „Inventar“ klicken und den Ordner „Landmarken“ auswählen.
242Klicken Sie eine Landmarke doppelt an und wählen Sie &apos;Teleportieren&apos;, um an diesen Ort zu gelangen. 239Klicken Sie eine Landmarke doppelt an und wählen Sie „Teleportieren“, um an diesen Ort zu gelangen.
243 </message> 240 </message>
244 </notify> 241 </notify>
245 <notify name="TeleportToPerson"> 242 <notify name="TeleportToPerson">
246 <message name="message"> 243 <message name="message">
247 Jetzt, nachdem Sie das Mainland erreicht haben, können Sie mit Einwohnern wie &apos;[NAME]&apos; Kontakt aufnehmen, indem Sie unten rechts im Fenster auf &apos;Inventar&apos; klicken und den Ordner &apos;Visitenkarten&apos; auswählen. 244 Jetzt, nachdem Sie das Mainland erreicht haben, können Sie mit Einwohnern wie „[NAME]“ Kontakt aufnehmen, indem Sie unten rechts im Fenster auf „Inventar“ klicken und den Ordner „Visitenkarten“ auswählen.
248Klicken Sie die Karte doppelt an, wählen Sie &apos;Instant Message&apos; und geben Sie eine Nachricht ein. 245Klicken Sie die Karte doppelt an, wählen Sie „Instant Message“ und geben Sie eine Nachricht ein.
249 </message> 246 </message>
250 </notify> 247 </notify>
251 <notify name="CantSelectLandFromMultipleRegions"> 248 <notify name="CantSelectLandFromMultipleRegions">
@@ -307,8 +304,7 @@ Wählen Sie eine kleinere Landfläche.
307 </notify> 304 </notify>
308 <notify name="TransferObjectsHighlighted"> 305 <notify name="TransferObjectsHighlighted">
309 <message name="message"> 306 <message name="message">
310 Alle Objekte auf dieser Parzelle, die an den Käufer 307 Alle Objekte auf dieser Parzelle, die an den Käufer der Parzelle übertragen werden, sind jetzt markiert.
311der Parzelle übertragen werden, sind jetzt markiert.
312 308
313* Übertragene Bäume und Gräser sind nicht markiert. 309* Übertragene Bäume und Gräser sind nicht markiert.
314 </message> 310 </message>
@@ -335,22 +331,18 @@ Laden Sie QuickTime von der QuickTime-Webseite (http://www.apple.com/de/quicktim
335 </notify> 331 </notify>
336 <notify name="OwnedObjectsReturned"> 332 <notify name="OwnedObjectsReturned">
337 <message name="message"> 333 <message name="message">
338 Ihre Objekte auf der ausgewählten Parzelle 334 Ihre Objekte auf der ausgewählten Parzelle wurden in Ihr Inventar transferiert.
339wurden in Ihr Inventar transferiert.
340 </message> 335 </message>
341 </notify> 336 </notify>
342 <notify name="OtherObjectsReturned"> 337 <notify name="OtherObjectsReturned">
343 <message name="message"> 338 <message name="message">
344 Die Objekte von [FIRST] [LAST] auf dieser 339 Die Objekte von [FIRST] [LAST] auf dieser Parzelle wurden in das Inventar dieser Person transferiert.
345Parzelle wurden in das Inventar
346dieser Person transferiert.
347 </message> 340 </message>
348 </notify> 341 </notify>
349 <notify name="OtherObjectsReturned2"> 342 <notify name="OtherObjectsReturned2">
350 <message name="message"> 343 <message name="message">
351 Die Objekte von [FIRST] [LAST] auf dieser 344 Die Objekte von [FIRST] [LAST] auf dieser
352Parzelle von &apos;[NAME]&apos; 345Parzelle von „[NAME]“ wurden an ihren Eigentümer zurückgegeben.
353wurden an ihren Eigentümer zurückgegeben.
354 </message> 346 </message>
355 </notify> 347 </notify>
356 <notify name="GroupObjectsReturned"> 348 <notify name="GroupObjectsReturned">
@@ -367,19 +359,19 @@ Nicht transferierbare an die Gruppe übertragene Objekte wurden gelöscht.
367 </notify> 359 </notify>
368 <notify name="NotSafe"> 360 <notify name="NotSafe">
369 <message name="message"> 361 <message name="message">
370 Auf diesem Land ist Schaden aktiviert (&apos;Unsicher&apos;). 362 Auf diesem Land ist Schaden aktiviert („Unsicher“).
371Verletzungen sind möglich. Wenn Sie sterben, werden Sie zu Ihrem Heimatstandort teleportiert. 363Verletzungen sind möglich. Wenn Sie sterben, werden Sie zu Ihrem Heimatstandort teleportiert.
372 </message> 364 </message>
373 </notify> 365 </notify>
374 <notify name="NoFly"> 366 <notify name="NoFly">
375 <message name="message"> 367 <message name="message">
376 Auf diesem Land ist Fliegen deaktiviert (&apos;Fliegen aus&apos;). 368 Auf diesem Land ist Fliegen deaktiviert („Fliegen aus“).
377Fliegen ist hier nicht möglich. 369Fliegen ist hier nicht möglich.
378 </message> 370 </message>
379 </notify> 371 </notify>
380 <notify name="PushRestricted"> 372 <notify name="PushRestricted">
381 <message name="message"> 373 <message name="message">
382 Dieses Land ist &apos;llPushObject-beschränkt&apos;. 374 Auf diesem Land gilt „Kein Stoßen“.
383Sie können keine anderen Personen stoßen, außer Ihnen gehört das Land. 375Sie können keine anderen Personen stoßen, außer Ihnen gehört das Land.
384 </message> 376 </message>
385 </notify> 377 </notify>
@@ -395,7 +387,7 @@ Sie können keine anderen Personen stoßen, außer Ihnen gehört das Land.
395 </notify> 387 </notify>
396 <notify name="NoBuild"> 388 <notify name="NoBuild">
397 <message name="message"> 389 <message name="message">
398 Auf diesem Land ist Bauen deaktiviert (&apos;Bauen aus&apos;). 390 Auf diesem Land ist Bauen deaktiviert („Bauen aus“).
399Sie können hier keine Objekte erstellen. 391Sie können hier keine Objekte erstellen.
400 </message> 392 </message>
401 </notify> 393 </notify>
@@ -412,7 +404,7 @@ Sie können hier keine Objekte erstellen.
412 <notify name="NoOutsideScripts"> 404 <notify name="NoOutsideScripts">
413 <message name="message"> 405 <message name="message">
414 Auf diesem Land sind externe Skripts deaktiviert 406 Auf diesem Land sind externe Skripts deaktiviert
415(&apos;Externe Skripts aus&apos;). 407(„Externe Skripts aus“).
416Nur Skripts, die dem Landeigentümer gehören, funktionieren. 408Nur Skripts, die dem Landeigentümer gehören, funktionieren.
417 </message> 409 </message>
418 </notify> 410 </notify>
@@ -463,7 +455,7 @@ Nur Skripts, die dem Landeigentümer gehören, funktionieren.
463 </notify> 455 </notify>
464 <notify name="UserGiveItem"> 456 <notify name="UserGiveItem">
465 <message name="message"> 457 <message name="message">
466 [NAME] hat Ihnen ein [OBJECTTYPE] namens &apos;[OBJECTNAME]&apos; gegeben. 458 [NAME] hat Ihnen ein [OBJECTTYPE] namens „[OBJECTNAME]“ gegeben.
467 </message> 459 </message>
468 <option name="Keep"> 460 <option name="Keep">
469 Behalten 461 Behalten
@@ -497,8 +489,7 @@ Nur Skripts, die dem Landeigentümer gehören, funktionieren.
497 </notify> 489 </notify>
498 <notify name="JoinGroupOfficerNoFee"> 490 <notify name="JoinGroupOfficerNoFee">
499 <message name="message"> 491 <message name="message">
500 [NAME] hat Sie eingeladen 492 [NAME] hat Sie eingeladen einer Gruppe als Officer beizutreten.
501einer Gruppe als Officer beizutreten.
502Der Beitritt ist kostenlos. 493Der Beitritt ist kostenlos.
503 494
504[MESSAGE] 495[MESSAGE]
@@ -515,8 +506,7 @@ Der Beitritt ist kostenlos.
515 </notify> 506 </notify>
516 <notify name="JoinGroupMember"> 507 <notify name="JoinGroupMember">
517 <message name="message"> 508 <message name="message">
518 [NAME] hat Sie eingeladen 509 [NAME] hat Sie eingeladen einer Gruppe beizutreten.
519einer Gruppe beizutreten.
520Die Beitrittsgebühr beträgt [COST] L$ 510Die Beitrittsgebühr beträgt [COST] L$
521 511
522[MESSAGE] 512[MESSAGE]
@@ -593,8 +583,7 @@ Der Beitritt ist kostenlos.
593 <message name="message"> 583 <message name="message">
594 [NAME] bietet Ihnen die Freundschaft an. 584 [NAME] bietet Ihnen die Freundschaft an.
595 585
596(Sie werden dadurch den gegenseitigen 586(Sie werden dadurch den gegenseitigen Online-Status sehen können.)
597Online-Status sehen können.)
598 </message> 587 </message>
599 <option name="Accept"> 588 <option name="Accept">
600 Akzeptieren 589 Akzeptieren
@@ -616,8 +605,7 @@ Online-Status sehen können.)
616 <notify name="OfferCallingCard"> 605 <notify name="OfferCallingCard">
617 <message name="message"> 606 <message name="message">
618 [FIRST] [LAST] bietet Ihnen eine Visitenkarte an. 607 [FIRST] [LAST] bietet Ihnen eine Visitenkarte an.
619Dies erstellt ein Lesezeichen in Ihrem Inventar, 608Dies erstellt ein Lesezeichen in Ihrem Inventar, damit Sie diesen Einwohner jederzeit über IM erreichen.
620damit Sie diesen Einwohner jederzeit über IM erreichen.
621 </message> 609 </message>
622 <option name="Accept"> 610 <option name="Accept">
623 Akzeptieren 611 Akzeptieren
@@ -738,7 +726,7 @@ Versuchen Sie es in einer Minute erneut, dann wird es schon klappen.
738 </notify> 726 </notify>
739 <notify name="ScriptQuestion"> 727 <notify name="ScriptQuestion">
740 <message name="message"> 728 <message name="message">
741 Das Objekt &apos;[OBJECTNAME]&apos;, Eigentum von &apos;[NAME]&apos;, möchte: 729 Das Objekt „[OBJECTNAME]“, Eigentum von „[NAME]“, möchte:
742 730
743[QUESTIONS] 731[QUESTIONS]
744Ist das OK? 732Ist das OK?
@@ -755,12 +743,12 @@ Ist das OK?
755 </notify> 743 </notify>
756 <notify name="ScriptQuestionCautionChatGranted"> 744 <notify name="ScriptQuestionCautionChatGranted">
757 <message name="message"> 745 <message name="message">
758 Dem Objekt &apos;[OBJECTNAME]&apos;, Eigentum von &apos;[OWNERNAME]&apos;, in [REGIONNAME] auf [REGIONPOS], wurde folgende Erlaubnis gewährt: [PERMISSIONS]. 746 Dem Objekt „[OBJECTNAME]“, Eigentum von „[OWNERNAME]“, in [REGIONNAME] auf [REGIONPOS], wurde folgende Erlaubnis gewährt: [PERMISSIONS].
759 </message> 747 </message>
760 </notify> 748 </notify>
761 <notify name="ScriptQuestionCautionChatDenied"> 749 <notify name="ScriptQuestionCautionChatDenied">
762 <message name="message"> 750 <message name="message">
763 Dem Objekt &apos;[OBJECTNAME]&apos;, Eigentum von &apos;[OWNERNAME]&apos;, in [REGIONNAME] auf [REGIONPOS], wurde folgende Erlaubnis verweigert: [PERMISSIONS]. 751 Dem Objekt „[OBJECTNAME]“, Eigentum von „[OWNERNAME]“, in [REGIONNAME] auf [REGIONPOS], wurde folgende Erlaubnis verweigert: [PERMISSIONS].
764 </message> 752 </message>
765 </notify> 753 </notify>
766 <notify name="ScriptQuestionCautionWarn"> 754 <notify name="ScriptQuestionCautionWarn">
@@ -770,10 +758,10 @@ Ist das OK?
770 </notify> 758 </notify>
771 <notify name="ScriptQuestionCaution"> 759 <notify name="ScriptQuestionCaution">
772 <message name="message"> 760 <message name="message">
773 Das Objekt &apos;[OBJECTNAME]&apos;, Eigentum von &apos;[NAME]&apos;, möchte: 761 Das Objekt „[OBJECTNAME]“, Eigentum von „[NAME]“, möchte:
774 762
775[QUESTIONS] 763[QUESTIONS]
776Wenn Sie diesem Objekt und seinem Ersteller nicht vertrauen, sollten Sie diese Anfrage ablehnen. Klicken Sie für weitere Informationen auf &apos;Details&apos;. 764Wenn Sie diesem Objekt und seinem Ersteller nicht vertrauen, sollten Sie diese Anfrage ablehnen. Klicken Sie für weitere Informationen auf „Details“.
777 765
778Anfrage gestatten? 766Anfrage gestatten?
779 </message> 767 </message>
@@ -789,7 +777,7 @@ Anfrage gestatten?
789 </notify> 777 </notify>
790 <notify name="ScriptDialog"> 778 <notify name="ScriptDialog">
791 <message name="message"> 779 <message name="message">
792 [FIRST] [LAST]s &apos;[TITLE]&apos; 780 [FIRST] [LAST]s „[TITLE]“
793[MESSAGE] 781[MESSAGE]
794 </message> 782 </message>
795 <option name="Ignore"> 783 <option name="Ignore">
@@ -798,7 +786,7 @@ Anfrage gestatten?
798 </notify> 786 </notify>
799 <notify name="ScriptDialogGroup"> 787 <notify name="ScriptDialogGroup">
800 <message name="message"> 788 <message name="message">
801 [GROUPNAME]s &apos;[TITLE]&apos; 789 [GROUPNAME]s „[TITLE]“
802[MESSAGE] 790[MESSAGE]
803 </message> 791 </message>
804 <option name="Ignore"> 792 <option name="Ignore">
@@ -809,30 +797,27 @@ Anfrage gestatten?
809 <message name="message"> 797 <message name="message">
810 Sie haben gerade [AMOUNT] L$ erhalten. 798 Sie haben gerade [AMOUNT] L$ erhalten.
811Objekte und andere Benutzer können Ihnen L$ geben. 799Objekte und andere Benutzer können Ihnen L$ geben.
812Ihren Kontostand sehen Sie in der 800Ihren Kontostand sehen Sie in der oberen rechten Ecke des Bildschirms.
813oberen rechten Ecke des Bildschirms.
814 </message> 801 </message>
815 </notify> 802 </notify>
816 <notify name="FirstBalanceDecrease"> 803 <notify name="FirstBalanceDecrease">
817 <message name="message"> 804 <message name="message">
818 Sie haben gerade [AMOUNT] L$ bezahlt. 805 Sie haben gerade [AMOUNT] L$ bezahlt.
819Ihren Kontostand sehen Sie in der oberen 806Ihren Kontostand sehen Sie in der oberen rechten Ecke des Bildschirms.
820rechten Ecke des Bildschirms.
821 </message> 807 </message>
822 </notify> 808 </notify>
823 <notify name="FirstSit"> 809 <notify name="FirstSit">
824 <message name="message"> 810 <message name="message">
825 Sie sitzen. 811 Sie sitzen.
826Benutzen Sie die Pfeiltasten (oder AWSD), um die Ansicht zu ändern. 812Benutzen Sie die Pfeil- oder WASD-Tasten, um die Ansicht zu ändern.
827Klicken Sie auf &apos;Aufstehen&apos;, um aufzustehen. 813Klicken Sie auf „Aufstehen“, um aufzustehen.
828 </message> 814 </message>
829 </notify> 815 </notify>
830 <notify name="FirstMap"> 816 <notify name="FirstMap">
831 <message name="message"> 817 <message name="message">
832 Zum Verschieben der Karte klicken und ziehen. 818 Zum Verschieben der Karte klicken und ziehen.
833Zum Teleportieren doppelklicken. 819Zum Teleportieren doppelklicken.
834Nutzen Sie die Optionen links, um Dinge zu finden 820Nutzen Sie die Optionen links, um Dinge zu finden und um verschiedene Hintergründe anzuzeigen.
835und um verschiedene Hintergründe anzuzeigen.
836 </message> 821 </message>
837 </notify> 822 </notify>
838 <notify name="FirstBuild"> 823 <notify name="FirstBuild">
@@ -854,24 +839,22 @@ Die rechte Maustaste zeigt immer ein Aktionsmenü an.
854 <notify name="FirstTeleport"> 839 <notify name="FirstTeleport">
855 <message name="message"> 840 <message name="message">
856 Diese Region unterstützt keine direkten Teleports. Sie wurden zum nächstgelegenen Telehub transportiert. 841 Diese Region unterstützt keine direkten Teleports. Sie wurden zum nächstgelegenen Telehub transportiert.
857Ihr Ziel ist mit einem großen roten Strahl markiert. 842Ihr Ziel ist mit einem großen roten Strahl markiert. Folgen Sie dem roten Pfeil zum Strahl oder klicken Sie auf den Pfeil, um den Strahl zu entfernen.
858Folgen Sie dem roten Pfeil zum Strahl oder klicken Sie auf den Pfeil, um den Strahl zu entfernen.
859 </message> 843 </message>
860 </notify> 844 </notify>
861 <notify name="FirstOverrideKeys"> 845 <notify name="FirstOverrideKeys">
862 <message name="message"> 846 <message name="message">
863 Ihre Bewegungstasten werden jetzt von einem Objekt gesteuert. 847 Ihre Bewegungstasten werden jetzt von einem Objekt gesteuert.
864Probieren Sie die Pfeiltasten oder AWSD aus. 848Probieren Sie die Pfeil- oder WASD-Tasten aus.
865Manche Objekte (wie Waffen) müssen per Mouselook gesteuert werden. 849Manche Objekte (wie Waffen) müssen per Mouselook gesteuert werden.
866Drücken Sie dazu &apos;M&apos;. 850Drücken Sie dazu „M“.
867 </message> 851 </message>
868 </notify> 852 </notify>
869 <notify name="FirstAppearance"> 853 <notify name="FirstAppearance">
870 <message name="message"> 854 <message name="message">
871 Sie bearbeiten gerade Ihr Aussehen. 855 Sie bearbeiten gerade Ihr Aussehen.
872Benutzen Sie die Pfeiltasten zum Drehen und Zoomen. 856Benutzen Sie die Pfeiltasten zum Drehen und Zoomen.
873Klicken Sie auf &apos;Alles speichern&apos;, wenn Sie fertig sind, 857Klicken Sie auf „Alles speichern“, wenn Sie fertig sind, um Ihr Aussehen zu speichern.
874um Ihr Aussehen zu speichern.
875Sie können Ihr Aussehen jederzeit verändern. 858Sie können Ihr Aussehen jederzeit verändern.
876 </message> 859 </message>
877 </notify> 860 </notify>
@@ -886,8 +869,7 @@ Sie können Ihr Aussehen jederzeit verändern.
886 <notify name="FirstSandbox"> 869 <notify name="FirstSandbox">
887 <message name="message"> 870 <message name="message">
888 Dies ist eine Sandkastenregion. 871 Dies ist eine Sandkastenregion.
889Objekte, die Sie hier bauen, können gelöscht werden, 872Objekte, die Sie hier bauen, können gelöscht werden, wenn Sie das Gebiet verlassen. Sandkästen werden regelmäßig gereinigt. Weitere Informationen hierzu finden Sie oben im Bild neben dem Regionsnamen.
890wenn Sie das Gebiet verlassen. Sandkästen werden regelmäßig gereinigt. Weitere Informationen hierzu finden Sie oben im Bild neben dem Regionsnamen.
891 873
892Sandkastenregionen kommen selten vor und sind entsprechend gekennzeichnet. 874Sandkastenregionen kommen selten vor und sind entsprechend gekennzeichnet.
893 </message> 875 </message>
@@ -895,13 +877,12 @@ Sandkastenregionen kommen selten vor und sind entsprechend gekennzeichnet.
895 <notify name="FirstFlexible"> 877 <notify name="FirstFlexible">
896 <message name="message"> 878 <message name="message">
897 Dieses Objekt ist flexibel. 879 Dieses Objekt ist flexibel.
898Ein flexibles Objekt ist ein Phantom und nicht physisch, 880Ein flexibles Objekt ist ein Phantom und nicht physisch, bis die Option „Flexibel“ deaktiviert wurde.
899bis die Option &apos;Flexibel&apos; deaktiviert wurde.
900 </message> 881 </message>
901 </notify> 882 </notify>
902 <notify name="FirstDebugMenus"> 883 <notify name="FirstDebugMenus">
903 <message name="message"> 884 <message name="message">
904 Sie haben das Erweitert-Menü aktiviert. 885 Sie haben das Advanced-Menü aktiviert.
905Dieses Menü enthält nützliche Funktionen zum Debuggen von Second Life. 886Dieses Menü enthält nützliche Funktionen zum Debuggen von Second Life.
906Drücken Sie in Windows Strg-Alt-D (Mac: Befehl-Opt-Umschalt-D) zum Ein- und Ausschalten dieses Menüs. 887Drücken Sie in Windows Strg-Alt-D (Mac: Befehl-Opt-Umschalt-D) zum Ein- und Ausschalten dieses Menüs.
907 </message> 888 </message>
@@ -915,7 +896,7 @@ Beispiele für Formtexturen finden Sie in der Inventarbibliothek.
915 </notify> 896 </notify>
916 <notify name="FirstMedia"> 897 <notify name="FirstMedia">
917 <message name="message"> 898 <message name="message">
918 Sie haben die Medienwiedergabe gestartet. Unter &apos;Audio und Video&apos; im Fenster &apos;Einstellungen&apos; können Sie festlegen, dass Medien automatisch wiedergegeben werden. Beachten Sie, dass dies bei nicht vertrauenswürdigen Medienseiten ein Sicherheitsrisiko darstellen kann. 899 Sie haben die Medienwiedergabe gestartet. Unter „Audio und Video“ im Fenster „Einstellungen“ können Sie festlegen, dass Medien automatisch wiedergegeben werden. Beachten Sie, dass dies bei nicht vertrauenswürdigen Medienseiten ein Sicherheitsrisiko darstellen kann.
919 </message> 900 </message>
920 </notify> 901 </notify>
921 <notify name="MaxListSelectMessage"> 902 <notify name="MaxListSelectMessage">
@@ -927,7 +908,7 @@ von der Liste auswählen.
927 <notify name="VoiceInviteP2P"> 908 <notify name="VoiceInviteP2P">
928 <message name="message"> 909 <message name="message">
929 [NAME] lädt Sie zu einem Voice-Chat ein. 910 [NAME] lädt Sie zu einem Voice-Chat ein.
930Klicken Sie auf &apos;Akzeptieren&apos;, um dem Gespräch beizutreten, oder auf &apos;Ablehnen&apos;, um die Einladung auszuschlagen. Klicken Sie auf &apos;Stummschalten&apos;, um diesen Anrufer stumm zu schalten. 911Klicken Sie auf „Akzeptieren“, um dem Gespräch beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Anrufer stumm zu schalten.
931 </message> 912 </message>
932 <option name="Accept"> 913 <option name="Accept">
933 Akzeptieren 914 Akzeptieren
@@ -957,7 +938,7 @@ Klicken Sie auf &apos;Akzeptieren&apos;, um dem Gespräch beizutreten, oder auf
957 <notify name="VoiceInviteGroup"> 938 <notify name="VoiceInviteGroup">
958 <message name="message"> 939 <message name="message">
959 [NAME] ist einem Voice-Chat mit der Gruppe [GROUP] beigetreten. 940 [NAME] ist einem Voice-Chat mit der Gruppe [GROUP] beigetreten.
960Klicken Sie auf &apos;Akzeptieren&apos;, um dem Gespräch beizutreten, oder auf &apos;Ablehnen&apos;, um die Einladung auszuschlagen. Klicken Sie auf &apos;Stummschalten&apos;, um diesen Anrufer stumm zu schalten. 941Klicken Sie auf „Akzeptieren“, um dem Gespräch beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Anrufer stumm zu schalten.
961 </message> 942 </message>
962 <option name="Accept"> 943 <option name="Accept">
963 Akzeptieren 944 Akzeptieren
@@ -972,7 +953,7 @@ Klicken Sie auf &apos;Akzeptieren&apos;, um dem Gespräch beizutreten, oder auf
972 <notify name="VoiceInviteAdHoc"> 953 <notify name="VoiceInviteAdHoc">
973 <message name="message"> 954 <message name="message">
974 [NAME] ist einem Voice-Konferenz-Chat beigetreten. 955 [NAME] ist einem Voice-Konferenz-Chat beigetreten.
975Klicken Sie auf &apos;Akzeptieren&apos;, um dem Gespräch beizutreten, oder auf &apos;Ablehnen&apos;, um die Einladung auszuschlagen. Klicken Sie auf &apos;Stummschalten&apos;, um diesen Benutzer stumm zu schalten. 956Klicken Sie auf „Akzeptieren“, um dem Gespräch beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Benutzer stumm zu schalten.
976 </message> 957 </message>
977 <option name="Accept"> 958 <option name="Accept">
978 Akzeptieren 959 Akzeptieren
@@ -987,7 +968,7 @@ Klicken Sie auf &apos;Akzeptieren&apos;, um dem Gespräch beizutreten, oder auf
987 <notify name="InviteAdHoc"> 968 <notify name="InviteAdHoc">
988 <message name="message"> 969 <message name="message">
989 [NAME] lädt Sie zu einem Konferenz-Chat ein. 970 [NAME] lädt Sie zu einem Konferenz-Chat ein.
990Klicken Sie auf &apos;Akzeptieren&apos;, um dem Chat beizutreten, oder auf &apos;Ablehnen&apos;, um die Einladung auszuschlagen. Klicken Sie auf &apos;Stummschalten&apos;, um diesen Benutzer stumm zu schalten. 971Klicken Sie auf „Akzeptieren“, um dem Chat beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Benutzer stumm zu schalten.
991 </message> 972 </message>
992 <option name="Accept"> 973 <option name="Accept">
993 Akzeptieren 974 Akzeptieren
diff --git a/linden/indra/newview/skins/default/xui/de/panel_avatar.xml b/linden/indra/newview/skins/default/xui/de/panel_avatar.xml
index 08f57a4..f7f58ea 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_avatar.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_avatar.xml
@@ -164,10 +164,10 @@ Die betreffende Person oder andere können sie nicht sehen.
164 </tab_container> 164 </tab_container>
165 <button label="OK" label_selected="OK" name="OK"/> 165 <button label="OK" label_selected="OK" name="OK"/>
166 <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/> 166 <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
167 <button label="Hinauswerfen" label_selected="Hinauswerfen" name="Kick"/> 167 <button label="Hinauswerfen" label_selected="Hinauswerfen" name="Kick" font="SansSerifSmall" width="82" />
168 <button label="Einfrieren" label_selected="Einfrieren" name="Freeze" tool_tip="Bewegungen und Chat dieses Einwohners abschalten."/> 168 <button label="Einfrieren" label_selected="Einfrieren" name="Freeze" tool_tip="Bewegungen und Chat dieses Einwohners abschalten." width="82"/>
169 <button label="Auftauen" label_selected="Auftauen" name="Unfreeze" tool_tip="Einwohner auftauen"/> 169 <button label="Auftauen" label_selected="Auftauen" name="Unfreeze" tool_tip="Einwohner auftauen" width="82" />
170 <button label="CSR" label_selected="CSR" name="csr_btn" tool_tip="Öffnet das Kundendiensttool für diesen Einwohner"/> 170 <button label="CSR" label_selected="CSR" name="csr_btn" tool_tip="Öffnet das Kundendiensttool für diesen Einwohner" width="82"/>
171 <string name="ShowOnMapNonFriend"> 171 <string name="ShowOnMapNonFriend">
172 Position auf Karte zeigen. 172 Position auf Karte zeigen.
173Deaktiviert, weil zwischen Ihnen 173Deaktiviert, weil zwischen Ihnen
diff --git a/linden/indra/newview/skins/default/xui/de/panel_avatar_classified.xml b/linden/indra/newview/skins/default/xui/de/panel_avatar_classified.xml
index 237fe27..b8bd700 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_avatar_classified.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_avatar_classified.xml
@@ -10,7 +10,7 @@
10 <combo_box label="" name="classified_category_combo" /> 10 <combo_box label="" name="classified_category_combo" />
11 <check_box label="Ab 18" name="classified_mature_check"> 11 <check_box label="Ab 18" name="classified_mature_check">
12 <combo_item name="select_mature"> 12 <combo_item name="select_mature">
13 - Jugendfreigabe wählen - 13 - Jugendfreigabe -
14 </combo_item> 14 </combo_item>
15 <combo_item name="mature"> 15 <combo_item name="mature">
16 Ab-18-Inhalt 16 Ab-18-Inhalt
diff --git a/linden/indra/newview/skins/default/xui/de/panel_chat_bar.xml b/linden/indra/newview/skins/default/xui/de/panel_chat_bar.xml
index 67a5c6e..f4aa8a2 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_chat_bar.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_chat_bar.xml
@@ -1,14 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="chat_bar"> 2<panel name="chat_bar">
3 <panel/> 3 <panel/>
4 <button label="Lokaler Chat" name="History" tool_tip="Klicken Sie hier zur Anzeige des Gesprächs"/> 4 <button label="Lokaler Chat" name="History" tool_tip="Klicken Sie hier zur Anzeige des Gesprächs"/>
5 <line_editor label="Zum Chatten hier klicken." name="Chat Editor" tool_tip="Eingabe für Sprechen, Strg-Eingabe für Rufen."/> 5 <line_editor label="Zum Chatten hier klicken." name="Chat Editor" tool_tip="Eingabe für Sprechen, Strg-Eingabe für Rufen."/>
6 <flyout_button label="Reden" name="Say" tool_tip="(Eingabe)"> 6 <flyout_button label="Reden" name="Say" tool_tip="(Eingabe)">
7 <flyout_button_item name="shout_item">
8 Rufen
9 </flyout_button_item>
7 <flyout_button_item name="say_item"> 10 <flyout_button_item name="say_item">
8 Reden 11 Reden
9 </flyout_button_item> 12 </flyout_button_item>
10 <flyout_button_item name="shout_item"> 13 <flyout_button_item name="whisper_item">
11 Rufen 14 Flüstern
12 </flyout_button_item> 15 </flyout_button_item>
13 </flyout_button> 16 </flyout_button>
14 <combo_box label="Gesten" name="Gesture"/> 17 <combo_box label="Gesten" name="Gesture"/>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_friends.xml b/linden/indra/newview/skins/default/xui/de/panel_friends.xml
index 5bf6a7d..bb2adb3 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_friends.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_friends.xml
@@ -4,7 +4,7 @@
4 Mehrere Freunde... 4 Mehrere Freunde...
5 </string> 5 </string>
6 <scroll_list name="friend_list" 6 <scroll_list name="friend_list"
7 tool_tip="Halten Sie die Tasten &apos;Umschalt&apos; oder &apos;Strg&apos; gedrückt, um durch Klicken mehrere Freunde auszuwählen."> 7 tool_tip="Halten Sie die Tasten „Umschalt“ oder „Strg“ gedrückt, um durch Klicken mehrere Freunde auszuwählen.">
8 <column name="icon_online_status" tool_tip="Online-Status" /> 8 <column name="icon_online_status" tool_tip="Online-Status" />
9 <column label="Name" name="friend_name" tool_tip="Name" /> 9 <column label="Name" name="friend_name" tool_tip="Name" />
10 <column name="icon_visible_online" tool_tip="Freund kann sehen, wenn Sie online sind" /> 10 <column name="icon_visible_online" tool_tip="Freund kann sehen, wenn Sie online sind" />
diff --git a/linden/indra/newview/skins/default/xui/de/panel_group_general.xml b/linden/indra/newview/skins/default/xui/de/panel_group_general.xml
index 0a32de2..1ecb304 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_group_general.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_group_general.xml
@@ -1,36 +1,35 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Allgemein" name="general_tab"> 2<panel label="Allgemein" name="general_tab">
3 <text name="help_text"> 3 <string name="help_text">
4 Die Registerkarte &apos;Allgemein&apos; enthält Informationen über 4 Die Registerkarte „Allgemein“ enthält Informationen über
5diese Gruppe, eine Liste der Eigentümer und sichtbaren Mitglieder, 5diese Gruppe, eine Liste der Eigentümer und sichtbaren Mitglieder,
6allgemeine Gruppeneinstellungen und Mitgliederoptionen. 6allgemeine Gruppeneinstellungen und Mitgliederoptionen.
7 7
8Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen. 8Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen.
9 </text> 9 </string>
10 <string name="group_info_unchanged"> 10 <string name="group_info_unchanged">
11 Die allgemeine Gruppeninfo wurde geändert. 11 Die allgemeine Gruppeninfo wurde geändert.
12 </string> 12 </string>
13 <button label="?" label_selected="?" name="help_button" /> 13 <button label="?" label_selected="?" name="help_button"/>
14 <line_editor label="Neuen Gruppennamen hier eingeben" name="group_name_editor" /> 14 <line_editor label="Neuen Gruppennamen hier eingeben" name="group_name_editor"/>
15 <text name="group_name"> 15 <text name="group_name">
16 Neuen Gruppennamen hier eingeben 16 Neuen Gruppennamen hier eingeben
17 </text> 17 </text>
18 <text name="prepend_founded_by"> 18 <text name="prepend_founded_by">
19 Gegründet von 19 Gegründet von
20 </text> 20 </text>
21 <text left_delta="80" name="founder_name"> 21 <text name="founder_name" left_delta="79">
22 (wartet) 22 (wartet)
23 </text> 23 </text>
24 <text name="group_charter_label"> 24 <text name="group_charter_label">
25 Gruppencharta 25 Gruppencharta
26 </text> 26 </text>
27 <texture_picker label="Gruppeninsignien" name="insignia" 27 <texture_picker label="Gruppeninsignien" name="insignia" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
28 tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
29 <text_editor name="charter"> 28 <text_editor name="charter">
30 Gruppencharta 29 Gruppencharta
31 </text_editor> 30 </text_editor>
32 <button label="Beitreten (0 L$)" label_selected="Beitreten (0 L$)" name="join_button" /> 31 <button label="Beitreten (0 L$)" label_selected="Beitreten (0 L$)" name="join_button"/>
33 <button label="Detailansicht" label_selected="Detailansicht" name="info_button" /> 32 <button label="Detailansicht" label_selected="Detailansicht" name="info_button"/>
34 <text name="text_owners_and_visible_members"> 33 <text name="text_owners_and_visible_members">
35 Eigentümer und sichtbare Mitglieder 34 Eigentümer und sichtbare Mitglieder
36 </text> 35 </text>
@@ -38,37 +37,19 @@ Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen.
38 (Eigentümer werden fettgedruckt angezeigt) 37 (Eigentümer werden fettgedruckt angezeigt)
39 </text> 38 </text>
40 <name_list name="visible_members"> 39 <name_list name="visible_members">
41 <column label="Member Name" name="name" /> 40 <column label="Mitgliedsname" name="name" relwidth="0.40"/>
42 <column label="Title" name="title" /> 41 <column label="Titel" name="title" relwidth="0.25"/>
43 <column label="Last Login" name="online" /> 42 <column label="Letzte Anmeldung" name="online" relwidth="0.35"/>
44 </name_list> 43 </name_list>
45 <text name="incomplete_member_data_str">
46 Mitgliedsdaten werden abgerufen
47 </text>
48 <text name="confirm_group_create_str">
49 Die Gründung dieser Gruppe kostet 100 L$.
50Sind Sie wirklich, WIRKLICH sicher, dass Sie 100 L$ für die Gründung dieser Gruppe ausgeben möchten?
51Falls in den nächsten 48 Stunden niemand sonst dieser Gruppe beitritt, wird sie aufgelöst und der Name der Gruppe wird nicht mehr verfügbar sein.
52 </text>
53 <text name="text_group_preferences"> 44 <text name="text_group_preferences">
54 Gruppeneinstellungen 45 Gruppeneinstellungen
55 </text> 46 </text>
56 <panel name="preferences_container"> 47 <panel name="preferences_container">
57 <check_box label="In Suche anzeigen" name="show_in_group_list" 48 <check_box label="In Suche anzeigen" name="show_in_group_list" tool_tip="Diese Gruppe in Suchergebnissen anzeigen."/>
58 tool_tip="Diese Gruppe in Suchergebnissen anzeigen." /> 49 <check_box label="Registrierung offen" name="open_enrollement" tool_tip="Festlegen, ob der Gruppenbeitritt ohne Einladung zulässig ist."/>
59 <check_box label="Im Web veröffentlichen" name="publish_on_web" 50 <check_box label="Beitrittsgebühr: L$" name="check_enrollment_fee" tool_tip="Festlegen, ob Neumitglieder eine Beitrittsgebühr zahlen müssen." width="125"/>
60 tool_tip="Festlegen, ob die Gruppeninformationen im Web veröffentlicht werden dürfen." /> 51 <spinner name="spin_enrollment_fee" tool_tip="Wenn „Beitrittsgebühr“ aktiviert ist, müssen neue Mitglieder diesen Betrag zahlen."/>
61 <check_box label="Registrierung offen" name="open_enrollement" 52 <combo_box name="group_mature_check" tool_tip="Festlegen, ob die Informationen Ihrer Gruppe nicht jugendfrei sind.">
62 tool_tip="Festlegen, ob der Gruppenbeitritt ohne Einladung zulässig ist." />
63 <check_box label="Beitrittsgebühr: L$" name="check_enrollment_fee"
64 tool_tip="Festlegen, ob Neumitglieder eine Beitrittsgebühr zahlen müssen."
65 width="125" />
66 <spinner name="spin_enrollment_fee"
67 tool_tip="Wenn &apos;Beitrittsgebühr&apos; aktiviert ist, müssen neue Mitglieder diesen Betrag zahlen." />
68 <check_box label="Ab-18-Gruppe" name="mature"
69 tool_tip="Festlegen, ob die Informationen Ihrer Gruppe nicht jugendfrei sind." />
70 <combo_box name="group_mature_check"
71 tool_tip="Festlegen, ob die Informationen Ihrer Gruppe nicht jugendfrei sind.">
72 <combo_item name="select_mature"> 53 <combo_item name="select_mature">
73 - Jugendfreigabe wählen - 54 - Jugendfreigabe wählen -
74 </combo_item> 55 </combo_item>
@@ -83,13 +64,17 @@ Falls in den nächsten 48 Stunden niemand sonst dieser Gruppe beitritt, wird sie
83 <text name="active_title_label"> 64 <text name="active_title_label">
84 Mein aktiver Titel 65 Mein aktiver Titel
85 </text> 66 </text>
86 <combo_box name="active_title" 67 <combo_box name="active_title" tool_tip="Legt fest, was im Namensschild Ihres Avatars angezeigt wird, wenn diese Gruppe aktiviert ist."/>
87 tool_tip="Sets the title that appears in your avatar&apos;s name tag when this group is active." />
88 </panel> 68 </panel>
89 <check_box label="Gruppenmitteilungen erhalten" name="receive_notices" 69 <check_box label="Gruppenmitteilungen erhalten" name="receive_notices" tool_tip="Festlegen, ob Sie von dieser Gruppe Mitteilungen erhalten können. Deaktivieren Sie diese Option, wenn Sie von der Gruppe Spam erhalten." width="173"/>
90 tool_tip="Festlegen, ob Sie von dieser Gruppe Mitteilungen erhalten können. Deaktivieren Sie diese Option, wenn Sie von der Gruppe Spam erhalten." 70 <check_box label="Gruppe im Profil anzeigen" name="list_groups_in_profile" tool_tip="Steuert, ob diese Gruppe in Ihrem Profil angezeigt wird"/>
91 width="173" />
92 <check_box label="Gruppe im Profil anzeigen" name="list_groups_in_profile"
93 tool_tip="Steuert, ob diese Gruppe in Ihrem Profil angezeigt wird" />
94 </panel> 71 </panel>
72 <string name="incomplete_member_data_str">
73 Mitgliedsdaten werden abgerufen
74 </string>
75 <string name="confirm_group_create_str">
76 Die Gründung dieser Gruppe kostet 100 L$.
77Sind Sie wirklich, WIRKLICH sicher, dass Sie 100 L$ für die Gründung dieser Gruppe ausgeben möchten?
78Falls in den nächsten 48 Stunden niemand sonst dieser Gruppe beitritt, wird sie aufgelöst und der Name der Gruppe wird nicht mehr verfügbar sein.
79 </string>
95</panel> 80</panel>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_group_invite.xml b/linden/indra/newview/skins/default/xui/de/panel_group_invite.xml
index 0ad1aeb..96af8e3 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_group_invite.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_group_invite.xml
@@ -3,7 +3,7 @@
3 <text name="help_text"> 3 <text name="help_text">
4 Sie können mehrere Einwohner zu Ihrer 4 Sie können mehrere Einwohner zu Ihrer
5Gruppe einladen. Klicken Sie auf 5Gruppe einladen. Klicken Sie auf
6&apos;Personenauswahl öffnen&apos;. 6„Personenauswahl öffnen“.
7 </text> 7 </text>
8 <button label="Personenauswahl öffnen" name="add_button" tool_tip="" /> 8 <button label="Personenauswahl öffnen" name="add_button" tool_tip="" />
9 <name_list name="invitee_list" 9 <name_list name="invitee_list"
diff --git a/linden/indra/newview/skins/default/xui/de/panel_group_land_money.xml b/linden/indra/newview/skins/default/xui/de/panel_group_land_money.xml
index cf11e3c..eee6c5c 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_group_land_money.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_group_land_money.xml
@@ -1,11 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="Land und L$" name="land_money_tab"> 2<panel label="Land und L$" name="land_money_tab">
3 <text name="help_text"> 3 <text name="help_text">
4 Es werden Parzellen in Gruppenbesitz und 4 Es werden Parzellen in Gruppenbesitz und Beitragsdetails angezeigt. Ein Warnhinweis wird angezeigt, solange der Wert für das Insgesamt verwendete Land gleich oder weniger ist als der Gesamtbeitrag. Die Reiter „Details“ und „Verkäufe“ enthalten Informationen über die Gruppenfinanzen.
5Beitragsdetails angezeigt. Solange der Wert für &apos;Insgesamt
6verwendet Land&apos; unter oder gleich dem Wert für
7&apos;Gesamtbeitrag&apos; ist, wird eine Warnung angezeigt. Die Registerkarten &apos;Planung&apos;, &apos;Details&apos; und &apos;Verkäufe&apos;
8enthalten Informationen über die Gruppenfinanzen.
9 </text> 5 </text>
10 <button label="?" name="help_button" /> 6 <button label="?" name="help_button" />
11 <text name="cant_view_group_land_text"> 7 <text name="cant_view_group_land_text">
@@ -21,9 +17,9 @@ enthalten Informationen über die Gruppenfinanzen.
21 Land in Gruppenbesitz 17 Land in Gruppenbesitz
22 </text> 18 </text>
23 <scroll_list name="group_parcel_list"> 19 <scroll_list name="group_parcel_list">
24 <column label="Parcel Name" name="name" /> 20 <column label="Parzellenname" name="name" />
25 <column label="Region" name="location" /> 21 <column label="Region" name="location" />
26 <column label="Area" name="area" /> 22 <column label="Gebiet" name="area" />
27 <column label="" name="hidden" /> 23 <column label="" name="hidden" />
28 </scroll_list> 24 </scroll_list>
29 <button label="Auf Karte" label_selected="Auf Karte" name="map_button" /> 25 <button label="Auf Karte" label_selected="Auf Karte" name="map_button" />
@@ -55,10 +51,11 @@ enthalten Informationen über die Gruppenfinanzen.
55 Ihr Landbeitrag kann nicht festgelegt werden. 51 Ihr Landbeitrag kann nicht festgelegt werden.
56 </string> 52 </string>
57 <text name="your_contribution_max_value"> 53 <text name="your_contribution_max_value">
58 Quadratmeter (max. [AMOUNT]) 54 qm (max. [AMOUNT])
59 </text> 55 </text>
60 <text name="group_over_limit_text"> 56 <text name="group_over_limit_text">
61 Die Gruppenmitglieder müssen mehr Landnutzungsrechte spenden, damit das verwendete Land gehalten werden kann. 57 Die Gruppenmitglieder müssen mehr Landnutzungsrechte spenden, damit
58das verwendete Land gehalten werden kann.
62 </text> 59 </text>
63 <text name="group_money_heading"> 60 <text name="group_money_heading">
64 Gruppen-L$ 61 Gruppen-L$
diff --git a/linden/indra/newview/skins/default/xui/de/panel_group_notices.xml b/linden/indra/newview/skins/default/xui/de/panel_group_notices.xml
index 56a384b..5189eea 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_group_notices.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_group_notices.xml
@@ -6,7 +6,7 @@ Mitglieder auf dem Laufenden zu halten und
6Objekte im Anhang zu versenden. Mitteilungen werden 6Objekte im Anhang zu versenden. Mitteilungen werden
7nur an Mitglieder mit einer entsprechenden Rolle 7nur an Mitglieder mit einer entsprechenden Rolle
8gesendet. Mitteilungen können unter 8gesendet. Mitteilungen können unter
9&apos;Allgemein&apos; ausgeschaltet werden. 9„Allgemein“ ausgeschaltet werden.
10 </text> 10 </text>
11 <text name="no_notices_text"> 11 <text name="no_notices_text">
12 Keine älteren Mitteilungen. 12 Keine älteren Mitteilungen.
@@ -17,14 +17,14 @@ gesendet. Mitteilungen können unter
17 </text> 17 </text>
18 <text name="lbl2"> 18 <text name="lbl2">
19 Mitteilungen werden 14 Tage lang aufbewahrt. Klicken Sie auf eine Mitteilung, 19 Mitteilungen werden 14 Tage lang aufbewahrt. Klicken Sie auf eine Mitteilung,
20um sie anzuzeigen. Klicken Sie auf &apos;Aktualisieren&apos;, um neue Mitteilungen zu suchen. 20um sie anzuzeigen. Klicken Sie auf „Aktualisieren“, um neue Mitteilungen zu suchen.
21Eine Mitteilungsliste speichert maximal 200 Mitteilungen pro Gruppe täglich. 21Eine Mitteilungsliste speichert maximal 200 Mitteilungen pro Gruppe täglich.
22 </text> 22 </text>
23 <scroll_list name="notice_list"> 23 <scroll_list name="notice_list">
24 <column label="" name="icon" /> 24 <column label="" name="icon" />
25 <column label="Subject" name="subject" /> 25 <column label="Thema" name="subject" />
26 <column label="From" name="from" /> 26 <column label="Von" name="from" />
27 <column label="Date" name="date" /> 27 <column label="Datum" name="date" />
28 </scroll_list> 28 </scroll_list>
29 <text name="notice_list_none_found"> 29 <text name="notice_list_none_found">
30 Nicht gefunden. 30 Nicht gefunden.
@@ -63,7 +63,7 @@ und transferierbar sein. Ordner können nicht gesendet werden.
63 Archivierte Mitteilung 63 Archivierte Mitteilung
64 </text> 64 </text>
65 <text name="lbl2"> 65 <text name="lbl2">
66 Klicken Sie zum Senden einer Mitteilung auf &apos;Neue Mitteilung&apos;. 66 Klicken Sie zum Senden einer Mitteilung auf „Neue Mitteilung“.
67 </text> 67 </text>
68 <text name="lbl3"> 68 <text name="lbl3">
69 Betreff: 69 Betreff:
diff --git a/linden/indra/newview/skins/default/xui/de/panel_group_roles.xml b/linden/indra/newview/skins/default/xui/de/panel_group_roles.xml
index 9a478f1..f5671fc 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_group_roles.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_group_roles.xml
@@ -1,15 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Mitglieder und Rollen" name="roles_tab"> 2<panel label="Mitglieder und Rollen" name="roles_tab">
3 <text name="default_needs_apply_text"> 3 <string name="default_needs_apply_text">
4 Das Unterregister enthält nicht übernommene Änderungen. 4 Das Unterregister enthält nicht übernommene Änderungen.
5 </text> 5 </string>
6 <text name="want_apply_text"> 6 <string name="want_apply_text">
7 Diese Änderungen übernehmen? 7 Diese Änderungen übernehmen?
8 </text> 8 </string>
9 <text name="cant_delete_role"> 9 <button label="?" name="help_button"/>
10 Die Rollen &apos;Jeder&apos; und &apos;Eigentümer&apos; können nicht gelöscht werden.
11 </text>
12 <button label="?" name="help_button" />
13 <panel name="members_header"> 10 <panel name="members_header">
14 <text name="static"> 11 <text name="static">
15 Mitglieder und Rollen 12 Mitglieder und Rollen
@@ -46,53 +43,53 @@ Mitglieder diese Fähigkeit haben.
46 </text> 43 </text>
47 </panel> 44 </panel>
48 <tab_container name="roles_tab_container"> 45 <tab_container name="roles_tab_container">
49 <panel label="Mitglieder" name="members_sub_tab" tool_tip="Members"> 46 <panel label="Mitglieder" name="members_sub_tab" tool_tip="Mitglieder">
50 <button label="Suchen" name="search_button" /> 47 <button label="Suchen" name="search_button"/>
51 <button label="Alle anzeigen" name="show_all_button" /> 48 <button label="Alle anzeigen" name="show_all_button"/>
52 <name_list name="member_list"> 49 <name_list name="member_list">
53 <column label="Member Name" name="name" /> 50 <column label="Mitgliedsname" name="name" width="116"/>
54 <column label="Donated Tier" name="donated" /> 51 <column label="Ãœbertragene Landanteile" name="donated" width="156"/>
55 <column label="Last Login" name="online" /> 52 <column label="Letzte Anmeldung" name="online"/>
56 </name_list> 53 </name_list>
57 <button label="Neue Person einladen..." name="member_invite" /> 54 <button label="Neue Person einladen..." name="member_invite"/>
58 <button label="Aus Gruppe werfen" name="member_eject" /> 55 <button label="Aus Gruppe werfen" name="member_eject"/>
59 <text name="help_text"> 56 <string name="help_text">
60 Sie können Mitgliedern Rollen zuweisen und entziehen. 57 Sie können Mitgliedern Rollen zuweisen und entziehen.
61Drücken Sie die Strg-Taste und klicken Sie auf Namen, 58Drücken Sie die Strg-Taste und klicken Sie auf Namen,
62um mehrere Mitglieder auszuwählen. 59um mehrere Mitglieder auszuwählen.
63 </text> 60 </string>
64 </panel> 61 </panel>
65 <panel label="Rollen" name="roles_sub_tab"> 62 <panel label="Rollen" name="roles_sub_tab">
66 <button label="Suchen" name="search_button" /> 63 <button label="Suchen" name="search_button"/>
67 <button label="Alle anzeigen" name="show_all_button" /> 64 <button label="Alle anzeigen" name="show_all_button"/>
68 <scroll_list name="role_list"> 65 <scroll_list name="role_list">
69 <column label="Role Name" name="name" /> 66 <column label="Rolle" name="name" width="126"/>
70 <column label="Title" name="title" /> 67 <column label="Titel" name="title" width="180"/>
71 <column label="Members" name="members" /> 68 <column label="Mitglieder" name="members" width="82"/>
72 </scroll_list> 69 </scroll_list>
73 <button label="Neue Rolle erstellen..." name="role_create" /> 70 <button label="Neue Rolle erstellen..." name="role_create"/>
74 <button label="Rolle löschen" name="role_delete" /> 71 <button label="Rolle löschen" name="role_delete"/>
75 <text name="help_text"> 72 <string name="help_text">
76 Rollen haben einen Titel und umfassen bestimmte 73 Rollen haben einen Titel und umfassen bestimmte
77Fähigkeiten. Mitglieder können mehrere 74Fähigkeiten. Mitglieder können mehrere
78Rollen innehaben. Eine Gruppe kann bis zu 10 Rollen 75Rollen innehaben. Eine Gruppe kann bis zu 10 Rollen
79definieren, darunter &apos;Jeder&apos; und &apos;Eigentümer&apos;. 76definieren, darunter „Jeder“ und „Eigentümer“.
80 </text> 77 </string>
81 <string name="cant_delete_role"> 78 <string name="cant_delete_role">
82 Die Rollen &apos;Jeder&apos; und &apos;Eigentümer&apos; können nicht gelöscht werden. 79 Die Rollen „Jeder“ und „Eigentümer“ können nicht gelöscht werden.
83 </string> 80 </string>
84 </panel> 81 </panel>
85 <panel label="Fähigkeiten" name="actions_sub_tab"> 82 <panel label="Fähigkeiten" name="actions_sub_tab">
86 <button label="Suchen" name="search_button" /> 83 <button label="Suchen" name="search_button"/>
87 <button label="Alle anzeigen" name="show_all_button" /> 84 <button label="Alle anzeigen" name="show_all_button"/>
88 <scroll_list name="action_list" tool_tip="Select an Ability to view more details."> 85 <scroll_list name="action_list" tool_tip="Select an Ability to view more details.">
89 <column label="" name="icon" /> 86 <column label="" name="icon"/>
90 <column label="" name="action" /> 87 <column label="" name="action"/>
91 </scroll_list> 88 </scroll_list>
92 <text name="help_text"> 89 <string name="help_text">
93 Fähigkeiten verleihen Mitgliedern in Rollen bestimmte 90 Fähigkeiten verleihen Mitgliedern in Rollen bestimmte
94Rechte in einer Gruppe. Es gibt viele verschiedene Fähigkeiten. 91Rechte in einer Gruppe. Es gibt viele verschiedene Fähigkeiten.
95 </text> 92 </string>
96 </panel> 93 </panel>
97 </tab_container> 94 </tab_container>
98 <panel name="members_footer"> 95 <panel name="members_footer">
@@ -103,13 +100,12 @@ Rechte in einer Gruppe. Es gibt viele verschiedene Fähigkeiten.
103 Zulässige Fähigkeiten 100 Zulässige Fähigkeiten
104 </text> 101 </text>
105 <scroll_list name="member_assigned_roles"> 102 <scroll_list name="member_assigned_roles">
106 <column label="" name="checkbox" /> 103 <column label="" name="checkbox"/>
107 <column label="" name="role" /> 104 <column label="" name="role"/>
108 </scroll_list> 105 </scroll_list>
109 <scroll_list name="member_allowed_actions" 106 <scroll_list name="member_allowed_actions" tool_tip="Um detaillierte Informationen zu erlaubten Fähigkeiten anzuzeigen, siehe Reiter Fähigkeiten.">
110 tool_tip="For Details of each Allowed Ability see the Abilities tab."> 107 <column label="" name="icon"/>
111 <column label="" name="icon" /> 108 <column label="" name="action"/>
112 <column label="" name="action" />
113 </scroll_list> 109 </scroll_list>
114 </panel> 110 </panel>
115 <panel name="roles_footer"> 111 <panel name="roles_footer">
@@ -134,17 +130,14 @@ Rechte in einer Gruppe. Es gibt viele verschiedene Fähigkeiten.
134 <text name="static4"> 130 <text name="static4">
135 Mitglieder in Rolle 131 Mitglieder in Rolle
136 </text> 132 </text>
137 <text name="static5" 133 <text name="static5" tool_tip="Eine Liste der Fähigkeiten der aktuell ausgewählten Rolle.">
138 tool_tip="Eine Liste der Fähigkeiten der aktuell ausgewählten Rolle.">
139 Zulässige Fähigkeiten 134 Zulässige Fähigkeiten
140 </text> 135 </text>
141 <check_box label="Mitglieder sind sichtbar" name="role_visible_in_list" 136 <check_box label="Mitglieder sind sichtbar" name="role_visible_in_list" tool_tip="Festlegen, ob Mitglieder in dieser Rolle auf der Registerkarte „Allgemein“ für Personen außerhalb der Gruppe sichtbar sind."/>
142 tool_tip="Festlegen, ob Mitglieder in dieser Rolle auf der Registerkarte &apos;Allgemein&apos; für Personen außerhalb der Gruppe sichtbar sind." /> 137 <scroll_list name="role_allowed_actions" tool_tip="Um detaillierte Informationen zu erlaubten Fähigkeiten anzuzeigen, siehe Reiter Fähigkeiten.">
143 <scroll_list name="role_allowed_actions" 138 <column label="" name="icon"/>
144 tool_tip="For Details of each Allowed Ability see the Abilities tab."> 139 <column label="" name="checkbox"/>
145 <column label="" name="icon" /> 140 <column label="" name="action"/>
146 <column label="" name="checkbox" />
147 <column label="" name="action" />
148 </scroll_list> 141 </scroll_list>
149 </panel> 142 </panel>
150 <panel name="actions_footer"> 143 <panel name="actions_footer">
@@ -152,7 +145,7 @@ Rechte in einer Gruppe. Es gibt viele verschiedene Fähigkeiten.
152 Beschreibung 145 Beschreibung
153 </text> 146 </text>
154 <text_editor name="action_description"> 147 <text_editor name="action_description">
155 Diese Fähigkeit heißt &apos;Mitglieder aus dieser Gruppe werfen&apos;. Eigentümer können nur von anderen Eigentümern hinausgeworfen werden. 148 Diese Fähigkeit heißt „Mitglieder aus dieser Gruppe werfen“. Eigentümer können nur von anderen Eigentümern hinausgeworfen werden.
156 </text_editor> 149 </text_editor>
157 <text name="static2"> 150 <text name="static2">
158 Rollen mit Fähigkeit 151 Rollen mit Fähigkeit
diff --git a/linden/indra/newview/skins/default/xui/de/panel_group_voting.xml b/linden/indra/newview/skins/default/xui/de/panel_group_voting.xml
index 1f4480d..e49e7ed 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_group_voting.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_group_voting.xml
@@ -19,7 +19,7 @@ erstellen, darüber abstimmen und alte Anfragen anzeigen.
19 </text> 19 </text>
20 <text name="proposals_header_view_inst"> 20 <text name="proposals_header_view_inst">
21 Doppelklicken Sie auf die Anfrage, für die Sie abstimmen möchten, 21 Doppelklicken Sie auf die Anfrage, für die Sie abstimmen möchten,
22oder klicken Sie auf &apos;Neue Anfrage&apos;, um eine neue zu erstellen. 22oder klicken Sie auf „Neue Anfrage“, um eine neue zu erstellen.
23 </text> 23 </text>
24 <text name="proposals_header_create_txt"> 24 <text name="proposals_header_create_txt">
25 Neue Anfrage 25 Neue Anfrage
@@ -32,7 +32,7 @@ Quorum, die Dauer und die erforderliche Mehrheit angeben.
32 Abstimmung 32 Abstimmung
33 </text> 33 </text>
34 <text name="proposals_header_vote_inst"> 34 <text name="proposals_header_vote_inst">
35 Klicken Sie zum Abstimmen auf &apos;Ja&apos; oder &apos;Nein&apos; oder 35 Klicken Sie zum Abstimmen auf „Ja“ oder „Nein“ oder
36enthalten Sie sich der Stimme. 36enthalten Sie sich der Stimme.
37 </text> 37 </text>
38 <text name="proposals_header_voted_inst"> 38 <text name="proposals_header_voted_inst">
@@ -42,7 +42,7 @@ enthalten Sie sich der Stimme.
42 Das Angebot, das Sie erstellen möchten, enthält keine Angaben. Füllen Sie das Angebot aus, bevor Sie es erstellen. 42 Das Angebot, das Sie erstellen möchten, enthält keine Angaben. Füllen Sie das Angebot aus, bevor Sie es erstellen.
43 </text> 43 </text>
44 <text name="proposal_instructions"> 44 <text name="proposal_instructions">
45 Doppelklicken Sie zum Abstimmen auf eine Anfrage oder klicken Sie auf &apos;Neue Anfrage&apos;, um eine neue zu erstellen. 45 Doppelklicken Sie zum Abstimmen auf eine Anfrage oder klicken Sie auf „Neue Anfrage“, um eine neue zu erstellen.
46 </text> 46 </text>
47 <text name="proposal_lbl"> 47 <text name="proposal_lbl">
48 Beschreibung der Anfrage 48 Beschreibung der Anfrage
@@ -89,7 +89,7 @@ enthalten Sie sich der Stimme.
89 </text> 89 </text>
90 <text name="instructions"> 90 <text name="instructions">
91 Doppelklicken Sie auf eine alte Abstimmung oder wählen Sie eine aus und 91 Doppelklicken Sie auf eine alte Abstimmung oder wählen Sie eine aus und
92klicken Sie für das Ergebnis auf &apos;Objekt anzeigen&apos;. 92klicken Sie für das Ergebnis auf „Objekt anzeigen“.
93 </text> 93 </text>
94 <text name="history_list_lbl"> 94 <text name="history_list_lbl">
95 Alte Abstimmung Ende der Abstimmung 95 Alte Abstimmung Ende der Abstimmung
@@ -102,10 +102,10 @@ klicken Sie für das Ergebnis auf &apos;Objekt anzeigen&apos;.
102 <button label="Liste anzeigen" label_selected="Liste anzeigen" 102 <button label="Liste anzeigen" label_selected="Liste anzeigen"
103 name="btn_view_history_list" /> 103 name="btn_view_history_list" />
104 <text name="proposals_submit_yes_txt"> 104 <text name="proposals_submit_yes_txt">
105 Mit &apos;Ja&apos; abgestimmt... 105 Mit „Ja“ abgestimmt...
106 </text> 106 </text>
107 <text name="proposals_submit_no_txt"> 107 <text name="proposals_submit_no_txt">
108 Mit &apos;Nein&apos; abgestimmt... 108 Mit „Nein“ abgestimmt...
109 </text> 109 </text>
110 <text name="proposals_submit_abstain_txt"> 110 <text name="proposals_submit_abstain_txt">
111 Enthaltung... 111 Enthaltung...
diff --git a/linden/indra/newview/skins/default/xui/de/panel_media_remote_expanded.xml b/linden/indra/newview/skins/default/xui/de/panel_media_remote_expanded.xml
index 3ef7102..0ff66f7 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_media_remote_expanded.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_media_remote_expanded.xml
@@ -17,10 +17,10 @@
17 (URL von Parzelleneigentümer versteckt) 17 (URL von Parzelleneigentümer versteckt)
18 </string> 18 </string>
19 <string name="media_icon_tooltip_web"> 19 <string name="media_icon_tooltip_web">
20 An diesem Ort werden Inhalte aus dem World Wide Web wiedergegeben. Klicken Sie auf &apos;Wiedergeben&apos;, um Webinhalte wiederzugeben. 20 An diesem Ort werden Inhalte aus dem World Wide Web wiedergegeben. Klicken Sie auf „Wiedergeben“, um Webinhalte wiederzugeben.
21 </string> 21 </string>
22 <string name="media_icon_tooltip_movie"> 22 <string name="media_icon_tooltip_movie">
23 An diesem Ort werden Videoinhalte wiedergegeben. Klicken Sie auf &apos;Wiedergeben&apos;, um das Video abzuspielen. 23 An diesem Ort werden Videoinhalte wiedergegeben. Klicken Sie auf „Wiedergeben“, um das Video abzuspielen.
24 </string> 24 </string>
25 <string name="media_play_tooltip"> 25 <string name="media_play_tooltip">
26 Webinhalt an diesem Ort anzeigen. 26 Webinhalt an diesem Ort anzeigen.
diff --git a/linden/indra/newview/skins/default/xui/de/panel_overlaybar.xml b/linden/indra/newview/skins/default/xui/de/panel_overlaybar.xml
index 41f6ea0..eff19eb 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_overlaybar.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_overlaybar.xml
@@ -6,8 +6,8 @@
6 <layout_panel name="state_buttons"> 6 <layout_panel name="state_buttons">
7 <button label="IM erhalten" label_selected="IM erhalten" name="IM Received" 7 <button label="IM erhalten" label_selected="IM erhalten" name="IM Received"
8 tool_tip="Sie haben eine unbeantwortete Instant Message. Klicken Sie, um IMs anzuzeigen." /> 8 tool_tip="Sie haben eine unbeantwortete Instant Message. Klicken Sie, um IMs anzuzeigen." />
9 <button label="Als nicht beschäftigt anzeigen" 9 <button label="Beschäftigt aus"
10 label_selected="Als nicht beschäftigt anzeigen" name="Set Not Busy" font="SansSerifSmall" 10 label_selected="Beschäftigt aus" name="Set Not Busy" font="SansSerifSmall"
11 tool_tip="Chat und IM sind ausgeblendet. Klicken Sie hier, um den Beschäftigt-Modus zu verlassen." /> 11 tool_tip="Chat und IM sind ausgeblendet. Klicken Sie hier, um den Beschäftigt-Modus zu verlassen." />
12 <button label="Tasten freigeben" label_selected="Tasten freigeben" name="Release Keys" font="SansSerifSmall" 12 <button label="Tasten freigeben" label_selected="Tasten freigeben" name="Release Keys" font="SansSerifSmall"
13 tool_tip="Ein Skript hat die Steuerung übernommen. Klicken Sie hier, um die Steuerung wieder freizugeben." /> 13 tool_tip="Ein Skript hat die Steuerung übernommen. Klicken Sie hier, um die Steuerung wieder freizugeben." />
diff --git a/linden/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
index 88fbfd4..feeb528 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
@@ -3,7 +3,7 @@
3 <text length="1" name="text_box" type="string"> 3 <text length="1" name="text_box" type="string">
4 Chat-Schriftgröße: 4 Chat-Schriftgröße:
5 </text> 5 </text>
6 <radio_group name="chat font size"> 6 <radio_group name="chat_font_size">
7 <radio_item length="1" name="radio" type="string"> 7 <radio_item length="1" name="radio" type="string">
8 Klein 8 Klein
9 </radio_item> 9 </radio_item>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/de/panel_preferences_general.xml
index fbf5742..3365c5c 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -1,26 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Allgemein" name="general_panel"> 2<panel label="Allgemein" name="general_panel">
3 <combo_box name="location_combobox"> 3 <radio_group name="default_start_location">
4 <combo_item name="MyHome"> 4 <radio_item name="MyHome" tool_tip="Als Standardeinstellung in Zuhauseposition anmelden.">
5 Mein Heimatort 5 Mein Heimatort
6 </combo_item>
7 <combo_item name="MyLastLocation">
8 Mein letzter Standort
9 </combo_item>
10 </combo_box>
11 <check_box label="Startposition auf Anmeldebildschirm anzeigen"
12 name="show_location_checkbox" />
13 <radio_group name="fade_out_radio">
14 <radio_item type="string" length="1" name="Never">
15 Nie
16 </radio_item> 6 </radio_item>
17 <radio_item type="string" length="1" name="Temporarily"> 7 <radio_item name="MyLastLocation" tool_tip="Als Standardeinstellung in letztem Standort anmelden.">
18 Temporär anzeigen 8 Mein letzter Standort
19 </radio_item>
20 <radio_item type="string" length="1" name="Always">
21 Immer
22 </radio_item> 9 </radio_item>
23 </radio_group> 10 </radio_group>
11 <check_box label="Startposition auf Anmeldebildschirm anzeigen" name="show_location_checkbox"/>
24 <combo_box name="fade_out_combobox"> 12 <combo_box name="fade_out_combobox">
25 <combo_item name="Never"> 13 <combo_item name="Never">
26 Nie 14 Nie
@@ -32,93 +20,95 @@
32 Immer 20 Immer
33 </combo_item> 21 </combo_item>
34 </combo_box> 22 </combo_box>
35 <check_box label="Meinen Namen auf meinem Bildschirm ausblenden" 23 <check_box label="Kleine Avatarnamen" name="small_avatar_names_checkbox"/>
36 name="show_my_name_checkbox" /> 24 <check_box label="Meinen Namen auf meinem Bildschirm ausblenden" name="show_my_name_checkbox"/>
37 <text name="group_titles_textbox"> 25 <text name="group_titles_textbox">
38 Gruppentitel: 26 Gruppentitel:
39 </text> 27 </text>
40 <check_box label="Alle Gruppentitel ausblenden" name="show_all_title_checkbox" /> 28 <check_box label="Alle Gruppentitel ausblenden" name="show_all_title_checkbox"/>
41 <check_box label="Meinen Gruppentitel ausblenden" name="show_my_title_checkbox" /> 29 <check_box label="Meinen Gruppentitel ausblenden" name="show_my_title_checkbox"/>
42 <check_box label="Kleine Avatarnamen" name="small_avatar_names_checkbox" /> 30 <color_swatch label="" name="effect_color_swatch" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
43 <color_swatch label="" name="effect_color_swatch"
44 tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
45 <text name="UI Size:"> 31 <text name="UI Size:">
46 UI-Größe: 32 UI-Größe:
47 </text> 33 </text>
48 <check_box label="Auflösungsunabhängigen Maßstab verwenden" name="ui_auto_scale" /> 34 <check_box label="Auflösungsunabhängigen Maßstab verwenden" name="ui_auto_scale"/>
49 <spinner label="Timeout für Abwesenheit:" name="afk_timeout_spinner" /> 35 <spinner label="Timeout für Abwesenheit:" name="afk_timeout_spinner"/>
50 <check_box label="Online-Freundbenachrichtigungen anzeigen" 36 <check_box label="Minikarte drehen" name="rotate_mini_map_checkbox"/>
51 name="friends_online_notify_checkbox" /> 37 <check_box label="L$ Eingänge und Ausgaben melden" name="notify_money_change_checkbox"/>
52 <check_box label="Minikarte drehen" name="rotate_mini_map_checkbox" /> 38 <check_box label="Standard-Farbauswahl verwenden" name="use_system_color_picker_checkbox" tool_tip="Standard-Farbauswahl des Systems anstelle des Second Life-eigenen verwenden."/>
53 <check_box label="L$ Eingänge und Ausgaben melden" name="notify_money_change_checkbox" /> 39 <check_box label="Suchleiste in Menüleiste anzeigen" name="show_search_panel" tool_tip="Die eingebettete Suchleiste anzeigen."/>
54 <check_box label="Standard-Farbauswahl verwenden" name="use_system_color_picker_checkbox" 40 <text name="start_location_textbox">
55 tool_tip="Standard-Farbauswahl des Systems anstelle des Second Life-eigenen verwenden." />
56 <check_box label="Suchleiste in Menüleiste anzeigen" name="show_search_panel"
57 tool_tip="Die eingebettete Suchleiste anzeigen." />
58 <text type="string" length="1" name="start_location_textbox">
59 Startposition: 41 Startposition:
60 </text> 42 </text>
61 <text type="string" length="1" name="show_names_textbox"> 43 <text name="show_names_textbox">
62 Namen anzeigen: 44 Namen anzeigen:
63 </text> 45 </text>
64 <text type="string" length="1" name="effects_color_textbox"> 46 <text name="effects_color_textbox">
65 Farbe für meine Effekte: 47 Farbe für meine Effekte:
66 </text> 48 </text>
67 <text type="string" length="1" name="seconds_textbox"> 49 <text name="seconds_textbox">
68 Sekunden 50 Sekunden
69 </text> 51 </text>
70 <text type="string" length="1" name="crash_report_textbox"> 52 <text name="crash_report_textbox">
71 Crash-Berichte: 53 Crash-Berichte:
72 </text> 54 </text>
73 <text type="string" length="1" name="language_textbox"> 55 <text name="language_textbox">
74 Sprache: 56 Sprache:
75 </text> 57 </text>
76 <text type="string" length="1" name="language_textbox2"> 58 <text name="language_textbox2">
77 (Erfordert Neustart) 59 (Erfordert Neustart)
78 </text> 60 </text>
79 <text name="region_name_prompt"> 61 <string name="region_name_prompt">
80 &lt;Region eingeben&gt; 62 &lt;Region eingeben&gt;
81 </text> 63 </string>
82 <combo_box name="crash_behavior_combobox"> 64 <combo_box name="crash_behavior_combobox">
83 <combo_item type="string" length="1" name="Askbeforesending"> 65 <combo_item name="Askbeforesending">
84 Vor dem Senden fragen 66 Vor dem Senden fragen
85 </combo_item> 67 </combo_item>
86 <combo_item type="string" length="1" name="Alwayssend"> 68 <combo_item name="Alwayssend">
87 Immer senden 69 Immer senden
88 </combo_item> 70 </combo_item>
89 <combo_item type="string" length="1" name="Neversend"> 71 <combo_item name="Neversend">
90 Nie senden 72 Nie senden
91 </combo_item> 73 </combo_item>
92 </combo_box> 74 </combo_box>
93 <combo_box name="language_combobox"> 75 <combo_box name="language_combobox">
94 <combo_item type="string" length="1" name="System Default Language"> 76 <combo_item name="System Default Language">
95 Betriebssystem-Einstellung 77 Betriebssystem-Einstellung
96 </combo_item> 78 </combo_item>
97 <combo_item type="string" length="1" name="English"> 79 <combo_item name="English">
98 English (Englisch) 80 English (Englisch)
99 </combo_item> 81 </combo_item>
100 <combo_item type="string" length="1" name="Chinese"> 82 <combo_item name="Danish">
101 汉语/漢語 (Chinesisch) - Beta 83 Danks (Dänisch) - Beta
102 </combo_item> 84 </combo_item>
103 <combo_item type="string" length="1" name="Deutsch(German)"> 85 <combo_item name="Deutsch(German)">
104 Deutsch - Beta 86 Deutsch - Beta
105 </combo_item> 87 </combo_item>
106 <combo_item type="string" length="1" name="French"> 88 <combo_item name="Spanish">
89 Español (Spanisch) - Beta
90 </combo_item>
91 <combo_item name="French">
107 Français (Französisch) - Beta 92 Français (Französisch) - Beta
108 </combo_item> 93 </combo_item>
109 <combo_item type="string" length="1" name="(Japanese)"> 94 <combo_item name="Hungarian">
110 日本語 (Japanisch) - Beta 95 Magyar (Ungarisch) - Beta
111 </combo_item> 96 </combo_item>
112 <combo_item type="string" length="1" name="(Korean)"> 97 <combo_item name="Polish">
113 한국어 (Koreanisch) - Beta 98 Polski (Polnisch) - Beta
114 </combo_item> 99 </combo_item>
115 <combo_item type="string" length="1" name="Portugese"> 100 <combo_item name="Portugese">
116 Português (Portugiesisch) - Beta 101 Português (Portugiesisch) - Beta
117 </combo_item> 102 </combo_item>
118 <combo_item type="string" length="1" name="Spanish"> 103 <combo_item name="Chinese">
119 Español (Spanisch) - Beta 104 中文 (简体) (Chinesisch) - Beta
105 </combo_item>
106 <combo_item name="(Japanese)">
107 日本語 (Japanisch) - Beta
108 </combo_item>
109 <combo_item name="(Korean)">
110 한국어 (Koreanisch) - Beta
120 </combo_item> 111 </combo_item>
121 </combo_box> 112 </combo_box>
122 <check_box label="Objekten Sprache mitteilen" name="language_is_public" 113 <check_box label="Objekten Sprache mitteilen" name="language_is_public" tool_tip="In-Welt-Objekten wird Ihre bevorzugte Spracheinstellung mitgeteilt."/>
123 tool_tip="In-Welt-Objekten wird Ihre bevorzugte Spracheinstellung mitgeteilt." />
124</panel> 114</panel>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/de/panel_preferences_im.xml
index 0744495..0e760e6 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_preferences_im.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_preferences_im.xml
@@ -15,10 +15,8 @@
15 <check_box label="Zeitstempel in IM anzeigen" name="show_timestamps_check"/> 15 <check_box label="Zeitstempel in IM anzeigen" name="show_timestamps_check"/>
16 <check_box label="Online-Freundbenachrichtigungen anzeigen" name="friends_online_notify_checkbox"/> 16 <check_box label="Online-Freundbenachrichtigungen anzeigen" name="friends_online_notify_checkbox"/>
17 <text length="1" name="text_box3" type="string"> 17 <text length="1" name="text_box3" type="string">
18 Protokolloptionen: 18 Antwort für
19 </text> 19Beschäftigt-Modus:
20 <text length="1" name="text_box3" type="string">
21 Protokolloptionen:
22 </text> 20 </text>
23 <text name="text_box4"> 21 <text name="text_box4">
24 Protokolloptionen: 22 Protokolloptionen:
diff --git a/linden/indra/newview/skins/default/xui/de/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/de/panel_preferences_input.xml
index 5d57975..5bb83ad 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_preferences_input.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_preferences_input.xml
@@ -6,11 +6,11 @@
6 <text length="1" name=" Mouse Sensitivity:" type="string"> 6 <text length="1" name=" Mouse Sensitivity:" type="string">
7 Mausempfindlichkeit: 7 Mausempfindlichkeit:
8 </text> 8 </text>
9 <check_box label="Maus umkehren" name="invert mouse"/> 9 <check_box label="Maus umkehren" name="invert_mouse"/>
10 <text length="1" name=" Auto Fly Options:" type="string"> 10 <text length="1" name=" Auto Fly Options:" type="string">
11 Auto-Flug-Optionen: 11 Auto-Flug-Optionen:
12 </text> 12 </text>
13 <check_box label="Zum Fliegen/Landen nach oben/unten halten" name="automatic fly"/> 13 <check_box label="Zum Fliegen/Landen nach oben/unten halten" name="automatic_fly"/>
14 <text length="1" name=" Camera Options:" type="string"> 14 <text length="1" name=" Camera Options:" type="string">
15 Kameraoptionen: 15 Kameraoptionen:
16 </text> 16 </text>
@@ -26,14 +26,14 @@
26 <text name="Camera Smoothing:"> 26 <text name="Camera Smoothing:">
27 Bewegungsglättung: 27 Bewegungsglättung:
28 </text> 28 </text>
29 <check_box label="Automatischer Kameraschwenk im Bearbeiten-Modus" name="edit camera movement" tool_tip="Automatische Kamerapositionierung bei Wechsel in und aus dem Bearbeitungsmodus verwenden"/> 29 <check_box label="Automatischer Kameraschwenk im Bearbeiten-Modus" name="edit_camera_movement" tool_tip="Automatische Kamerapositionierung bei Wechsel in und aus dem Bearbeitungsmodus verwenden"/>
30 <check_box label="Automatischer Kameraschwenk im Aussehen-Modus" name="appearance camera movement" tool_tip="Automatische Kamerapositionierung im Bearbeitenmodus verwenden"/> 30 <check_box label="Automatischer Kameraschwenk im Aussehen-Modus" name="appearance_camera_movement" tool_tip="Automatische Kamerapositionierung im Bearbeitenmodus verwenden"/>
31 <text name="text2"> 31 <text name="text2">
32 Avatar-Anzeigeoptionen: 32 Avatar-Anzeigeoptionen:
33 </text> 33 </text>
34 <check_box label="Avatar in Mouselook anzeigen" name="avfp"/> 34 <check_box label="Avatar in Mouselook anzeigen" name="first_person_avatar_visible"/>
35 <text name="text5"> 35 <text name="text5">
36 Joystick-Optionen: 36 Joystick-Optionen:
37 </text> 37 </text>
38 <button label="Joystick-Einrichtung" name="joystic_setup_button"/> 38 <button label="Joystick-Einrichtung" name="joystick_setup_button"/>
39</panel> 39</panel>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_preferences_network.xml b/linden/indra/newview/skins/default/xui/de/panel_preferences_network.xml
index efd797b..4878ab1 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_preferences_network.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_preferences_network.xml
@@ -1,20 +1,23 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Netzwerk" name="network"> 2<panel label="Netzwerk" name="network">
3 <text type="string" length="1" name="text_box"> 3 <text name="text_box">
4 Maximale Bandbreite: 4 Maximale Bandbreite:
5 </text> 5 </text>
6 <text type="string" length="1" name="text_box2"> 6 <text name="text_box2">
7 kbit/s (Kilobit pro Sekunde) 7 kbit/s (Kilobit pro Sekunde)
8 </text> 8 </text>
9 <text type="string" length="1" name="cache_size_label_l"> 9 <text name="cache_size_label_l">
10 Größe Festplatten-Cache: 10 Größe Festplatten-Cache:
11 </text> 11 </text>
12 <button label="Cache leeren" name="clear_cache" /> 12 <text name="text_box5">
13 <text type="string" length="1" name="cache_location_label"> 13 MB
14 </text>
15 <button label="Cache leeren" name="clear_cache"/>
16 <text name="cache_location_label">
14 Festplatten-Cache-Verzeichnis: 17 Festplatten-Cache-Verzeichnis:
15 </text> 18 </text>
16 <button label="Festlegen" label_selected="Festlegen" name="set_cache" /> 19 <button label="Festlegen" label_selected="Festlegen" name="set_cache"/>
17 <button label="Zurücksetzen" label_selected="Festlegen" name="reset_cache" /> 20 <button label="Zurücksetzen" label_selected="Festlegen" name="reset_cache"/>
18 <check_box label="Benutzerdefinierter Port" name="connection_port_enabled" /> 21 <check_box label="Benutzerdefinierter Port" name="connection_port_enabled"/>
19 <spinner label="Port-Nummer:" name="connection_port" /> 22 <spinner label="Port-Nummer:" name="connection_port"/>
20</panel> 23</panel>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_preferences_popups.xml b/linden/indra/newview/skins/default/xui/de/panel_preferences_popups.xml
index a9c7edb..eca6fe9 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_preferences_popups.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_preferences_popups.xml
@@ -18,7 +18,7 @@
18 </text> 18 </text>
19 <check_box label="Automatisch annehmen" name="accept_new_inventory"/> 19 <check_box label="Automatisch annehmen" name="accept_new_inventory"/>
20 <check_box label="Nach Annahme automatisch anzeigen" name="show_new_inventory"/> 20 <check_box label="Nach Annahme automatisch anzeigen" name="show_new_inventory"/>
21 <button width="200" label="Alle Popups aktivieren..." name="reset_dialogs_btn" tool_tip="Alle optionalen Popups und &apos;Das erste Mal&apos;-Meldungen aktivieren."/> 21 <button width="200" label="Alle Popups aktivieren..." name="reset_dialogs_btn" tool_tip="Alle optionalen Popups und „Das erste Mal“-Meldungen aktivieren."/>
22 <button width="200" label="Alle diese Popups deaktivieren..." name="skip_dialogs_btn" tool_tip="Alle optionalen Popups und &apos;Das erste Mal&apos;-Meldungen deaktivieren."/> 22 <button width="200" label="Alle diese Popups deaktivieren..." name="skip_dialogs_btn" tool_tip="Alle optionalen Popups und „Das erste Mal“-Meldungen deaktivieren."/>
23 <check_box label="Neue Objekte im Inventar automatisch anzeigen" name="show_in_inventory"/> 23 <check_box label="Neue Objekte im Inventar automatisch anzeigen" name="show_in_inventory"/>
24</panel> 24</panel>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_preferences_voice.xml b/linden/indra/newview/skins/default/xui/de/panel_preferences_voice.xml
index dfe080d..d87b93c 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_preferences_voice.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_preferences_voice.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Voice-Chat" name="chat"> 2<panel label="Voice-Chat" name="chat">
3 <text_editor name="voice_unavailable"> 3 <text_editor name="voice_unavailable">
4 Voice-Chat ist nicht verfügbar 4 Voice-Chat ist nicht verfügbar
5 </text_editor> 5 </text_editor>
6 <check_box label="Voice-Chat aktivieren" name="enable_voice_check" /> 6 <check_box label="Voice-Chat aktivieren" name="enable_voice_check"/>
7 <radio_group name="ear_location"> 7 <radio_group name="ear_location">
8 <radio_item name="0"> 8 <radio_item name="0">
9 Voice-Chat von Kameraposition aus hören. 9 Voice-Chat von Kameraposition aus hören.
@@ -15,26 +15,23 @@
15 <text name="push_to_talk_heading"> 15 <text name="push_to_talk_heading">
16 Zum Sprechen drücken 16 Zum Sprechen drücken
17 </text> 17 </text>
18 <text_editor name="voice_chat_description"> 18 <text_editor name="voice_chat_description" width="465" height="81" bottom_delta="-76">
19 HINWEIS: Beim Öffnen der Geräte-Einstellungen oder der Voice-Chat-Einrichtung werden Sie vorübergehend vom Voice-Chat getrennt. 19 Der Modus „Zum Sprechen drücken“ ermöglicht es Ihnen, zu kontrollieren, wann Ihre Stimme übertragen wird. Wenn Sie im Umschaltmodus sind, drücken Sie die Auslöse-Taste und lassen Sie sie wieder los, um Ihr Mikrofon an und aus zu stellen. Wenn Sie sich nicht im Umschaltmodus befinden, ist das Mikro nur aktiv, während Sie die Auslösetaste gedrückt halten.
20 </text_editor> 20 </text_editor>
21 <check_box label="Viewer im &apos;Zum-Sprechen-drücken&apos;-Modus starten" 21 <check_box label="Viewer im „Zum-Sprechen-drücken“-Modus starten" name="push_to_talk_check"/>
22 name="push_to_talk_check" /> 22 <check_box label="„Zum-Sprechen-drücken“ im Umschaltmodus verwenden" name="push_to_talk_toggle_check"/>
23 <check_box label="&apos;Zum-Sprechen-drücken&apos; im Umschaltmodus verwenden"
24 name="push_to_talk_toggle_check" />
25 <text name="push_to_talk_label"> 23 <text name="push_to_talk_label">
26 Auslöser für &apos;Zum-Sprechen-drücken&apos;: 24 Auslöser für „Zum-Sprechen-drücken“:
27 </text> 25 </text>
28 <button label="Taste festlegen" name="set_voice_hotkey_button" /> 26 <button label="Taste festlegen" name="set_voice_hotkey_button"/>
29 <button label="Mittlere Maustaste" name="set_voice_middlemouse_button" /> 27 <button label="Mittlere Maustaste" name="set_voice_middlemouse_button"/>
30 <text name="privacy_heading"> 28 <text name="privacy_heading">
31 Privatsphäre 29 Privatsphäre
32 </text> 30 </text>
33 <check_box label="Anrufe nur von Personen auf meiner Freundesliste annehmen" 31 <check_box label="Anrufe nur von Personen auf meiner Freundesliste annehmen" name="voice_call_friends_only_check"/>
34 name="voice_call_friends_only_check" />
35 <text_editor name="device_settings_text"> 32 <text_editor name="device_settings_text">
36 HINWEIS: Beim Öffnen der Geräte-Einstellungen werden Sie vorübergehend vom Voice-Chat getrennt. 33 HINWEIS: Beim Öffnen der Geräte-Einstellungen werden Sie vorübergehend vom Voice-Chat getrennt. Vorgenommene Änderungen werden sofort gültig.
37 </text_editor> 34 </text_editor>
38 <button label="Geräte-Einstellungen" name="device_settings_btn" /> 35 <button label="Geräte-Einstellungen" name="device_settings_btn"/>
39 <button label="Voice-Chat-Einrichtung" name="launch_voice_wizard_button" /> 36 <button label="Voice-Chat-Einrichtung" name="launch_voice_wizard_button"/>
40</panel> 37</panel>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_region_debug.xml b/linden/indra/newview/skins/default/xui/de/panel_region_debug.xml
index 7d6b1ff..9e03ebe 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_region_debug.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_region_debug.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Debug" name="Debug"> 2<panel label="Debug" name="Debug">
3 <text name="region_text_lbl"> 3 <text name="region_text_lbl">
4 Region: 4 Region:
@@ -6,42 +6,35 @@
6 <text name="region_text"> 6 <text name="region_text">
7 unbekannt 7 unbekannt
8 </text> 8 </text>
9 <check_box label="Skripts deaktivieren" name="disable_scripts_check" 9 <check_box label="Skripts deaktivieren" name="disable_scripts_check" tool_tip="Skripts in dieser Region deaktivieren"/>
10 tool_tip="Skripts in dieser Region deaktivieren" /> 10 <button label="?" name="disable_scripts_help"/>
11 <button label="?" name="disable_scripts_help" /> 11 <check_box label="Kollisionen deaktivieren" name="disable_collisions_check" tool_tip="Nicht-Avatar-Kollisionen in dieser Region deaktivieren"/>
12 <check_box label="Kollisionen deaktivieren" name="disable_collisions_check" 12 <button label="?" name="disable_collisions_help"/>
13 tool_tip="Nicht-Avatar-Kollisionen in dieser Region deaktivieren" /> 13 <check_box label="Physik deaktivieren" name="disable_physics_check" tool_tip="Physik in dieser Region deaktivieren"/>
14 <button label="?" name="disable_collisions_help" /> 14 <button label="?" name="disable_physics_help"/>
15 <check_box label="Physik deaktivieren" name="disable_physics_check" 15 <button label="Ãœbernehmen" name="apply_btn"/>
16 tool_tip="Physik in dieser Region deaktivieren" /> 16 <text name="objret_text_lbl" width="105">
17 <button label="?" name="disable_physics_help" /> 17 Objekt zurückgeben
18 <button label="Ãœbernehmen" name="apply_btn" /> 18 </text>
19 <text name="resident_text_lbl">
20 Einwohner:
21 </text>
19 <line_editor name="target_avatar_name"> 22 <line_editor name="target_avatar_name">
20 (keiner) 23 (keiner)
21 </line_editor> 24 </line_editor>
22 <button label="Auswählen..." name="choose_avatar_btn" /> 25 <button label="Auswählen..." name="choose_avatar_btn"/>
23 <button label="Skriptobjekte des Avatars auf fremdem Land zurückgeben" 26 <text name="options_text_lbl">
24 name="return_scripted_other_land_btn" /> 27 Optionen:
25 <button label="ALLE Skriptobjekte des Avatars zurückgeben" 28 </text>
26 name="return_scripted_all_btn" /> 29 <check_box label="Nur Objekte mit Skripten zurückgeben" name="return_scripts" tool_tip="Es werden nur die Objekte zurückgegeben, die über Skripte verfügen."/>
27 <check_box label="Nur Objekte mit Skripten zurückgeben" name="return_scripts" 30 <check_box label="Nur Objekte auf dem Land eines anderen Einwohners zurückgeben" name="return_other_land" tool_tip="Es werden nur die Objekte zurückgegeben, die sich auf dem Land eines anderen Einwohners befinden"/>
28 tool_tip="Es werden nur die Objekte zurückgegeben, die über Skripte verfügen." /> 31 <check_box label="Objekte in jeder Region dieses Grundstücks zurückgeben" name="return_estate_wide" tool_tip="Es werden die Objekte in allen Regionen dieses Grundstücks zurückgegeben"/>
29 <check_box label="Nur Objekte auf dem Land eines anderen Einwohners zurückgeben" 32 <button label="Zurückgeben" name="return_btn" width="90"/>
30 name="return_other_land" 33 <button label="Top-Kollisionsobjekte..." name="top_colliders_btn" tool_tip="Liste der Objekte mit den meisten potenziellen Kollisionen"/>
31 tool_tip="Es werden nur die Objekte zurückgegeben, die sich auf dem Land eines anderen Einwohners befinden" /> 34 <button label="?" name="top_colliders_help"/>
32 <check_box label="Objekte in jeder Region dieses Grundstücks zurückgeben" 35 <button label="Top-Skripts..." name="top_scripts_btn" tool_tip="Zeigt eine Liste der Objekte an, die die meiste Zeit benötigen, um Skripts auszuführen."/>
33 name="return_estate_wide" 36 <button label="?" name="top_scripts_help"/>
34 tool_tip="Es werden die Objekte in allen Regionen dieses Grundstücks zurückgegeben" /> 37 <button label="Region neu starten" name="restart_btn" tool_tip="2-Minuten-Countdown und Region neu starten"/>
35 <button label="Zurückgeben" name="return_btn" width="90" /> 38 <button label="?" name="restart_help"/>
36 <button label="Top-Kollisionsobjekte..." name="top_colliders_btn" 39 <button label="Neustart verzögern" name="cancel_restart_btn" tool_tip="Regionsneustart um eine Stunde verschieben"/>
37 tool_tip="Liste der Objekte mit den meisten potenziellen Kollisionen" />
38 <button label="?" name="top_colliders_help" />
39 <button label="Top-Skripts..." name="top_scripts_btn"
40 tool_tip="Zeigt eine Liste der Objekte an, die die meiste Zeit benötigen um Skripts auszuführen." />
41 <button label="?" name="top_scripts_help" />
42 <button label="Region neu starten" name="restart_btn"
43 tool_tip="2-Minuten-Countdown und Region neu starten" />
44 <button label="?" name="restart_help" />
45 <button label="Neustart verzögern" name="cancel_restart_btn"
46 tool_tip="Regionsneustart um eine Stunde verschieben" />
47</panel> 40</panel>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_region_estate.xml b/linden/indra/newview/skins/default/xui/de/panel_region_estate.xml
index 625f6ab..ddc5941 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_region_estate.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_region_estate.xml
@@ -1,7 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="Grundstück" name="Estate"> 2<panel label="Grundstück" name="Estate">
3 <text name="estate_help_text"> 3 <text name="estate_help_text">
4 Änderungen auf dieser Registerkarte wirken sich auf alle Regionen auf dem Grundstück aus. 4 Änderungen auf dieser Registerkarte wirken sich
5auf alle Regionen auf dem Grundstück aus.
5 </text> 6 </text>
6 <text name="estate_text"> 7 <text name="estate_text">
7 Grundstück: 8 Grundstück:
diff --git a/linden/indra/newview/skins/default/xui/de/panel_status_bar.xml b/linden/indra/newview/skins/default/xui/de/panel_status_bar.xml
index d0c3460..adfe387 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_status_bar.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_status_bar.xml
@@ -1,14 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="status"> 2<panel name="status">
3 <text type="string" length="1" name="ParcelNameText" 3 <text length="1" name="ParcelNameText" tool_tip="Der Name der Parzelle, auf der Sie sich befinden. Klicken Sie für Land-Informationen." type="string">
4 tool_tip="Der Name der Parzelle, auf der Sie sich befinden. Klicken Sie für Land-Informationen.">
5 Parzellenname hier 4 Parzellenname hier
6 </text> 5 </text>
7 <text type="string" length="1" name="BalanceText" tool_tip="Kontostand"> 6 <text length="1" name="BalanceText" tool_tip="Kontostand" type="string">
8 Wird geladen... 7 Wird geladen...
9 </text> 8 </text>
10 <button label="" label_selected="" name="buycurrency" tool_tip="Geld kaufen" /> 9 <button label="" label_selected="" name="buycurrency" tool_tip="Geld kaufen"/>
11 <text type="string" length="12" name="TimeText" tool_tip="Aktuelle Zeit (Pazifik)"> 10 <text length="12" name="TimeText" tool_tip="Aktuelle Zeit (Pazifik)" type="string">
12 12:00 11 12:00
13 </text> 12 </text>
14 <text name="StatBarDaysOfWeek"> 13 <text name="StatBarDaysOfWeek">
@@ -17,29 +16,27 @@
17 <text name="StatBarMonthsOfYear"> 16 <text name="StatBarMonthsOfYear">
18 Januar:Februar:März:April:Mai:Juni:Juli:August:September:Oktober:November:Dezember 17 Januar:Februar:März:April:Mai:Juni:Juli:August:September:Oktober:November:Dezember
19 </text> 18 </text>
20 <button label="" label_selected="" name="scriptout" 19 <button label="" label_selected="" name="scriptout" tool_tip="Skriptwarnungen und -fehler"/>
21 tool_tip="Skriptwarnungen und -fehler" /> 20 <button label="" label_selected="" name="health" tool_tip="Gesundheit"/>
22 <button label="" label_selected="" name="health" tool_tip="Gesundheit" /> 21 <text length="1" name="HealthText" tool_tip="Gesundheit" type="string">
23 <text type="string" length="1" name="HealthText" tool_tip="Gesundheit">
24 100% 22 100%
25 </text> 23 </text>
26 <button label="" label_selected="" name="fly" tool_tip="Fliegen aus" /> 24 <button label="" label_selected="" name="fly" tool_tip="Fliegen aus"/>
27 <button label="" label_selected="" name="build" tool_tip="Bauen aus" /> 25 <button label="" label_selected="" name="build" tool_tip="Bauen aus"/>
28 <button label="" label_selected="" name="scripts" tool_tip="Skripts aus" /> 26 <button label="" label_selected="" name="scripts" tool_tip="Skripts aus"/>
29 <button name="no_fly" tool_tip="Fliegen ist unzulässig" /> 27 <button name="no_fly" tool_tip="Fliegen ist unzulässig"/>
30 <button name="no_build" tool_tip="Bauen/Rezzen ist unzulässig" /> 28 <button name="no_build" tool_tip="Bauen/Rezzen ist unzulässig"/>
31 <button name="no_scripts" tool_tip="Skripte sind unzulässig" /> 29 <button name="no_scripts" tool_tip="Skripte sind unzulässig"/>
32 <button label="" label_selected="" name="restrictpush" 30 <button label="" label_selected="" name="restrictpush" tool_tip="Kein Stoßen"/>
33 tool_tip="llPushObject beschränkt" /> 31 <button name="status_voice" tool_tip="Voice aktiviert"/>
34 <button name="status_voice" tool_tip="Voice aktiviert" /> 32 <button name="status_no_voice" tool_tip="Voice hier nicht möglich"/>
35 <button name="status_no_voice" tool_tip="Voice hier nicht möglich" /> 33 <button label="" label_selected="" name="buyland" tool_tip="Diese Parzelle kaufen"/>
36 <button label="" label_selected="" name="buyland" tool_tip="Diese Parzelle kaufen" />
37 <text name="packet_loss_tooltip"> 34 <text name="packet_loss_tooltip">
38 Paketverlust 35 Paketverlust
39 </text> 36 </text>
40 <text name="bandwidth_tooltip"> 37 <text name="bandwidth_tooltip">
41 Bandbreite 38 Bandbreite
42 </text> 39 </text>
43 <line_editor label="Suchen" name="search_editor" tool_tip="Second Life durchsuchen" /> 40 <line_editor label="Suchen" name="search_editor" tool_tip="Second Life durchsuchen"/>
44 <button name="search_btn" tool_tip="Second Life durchsuchen" /> 41 <button name="search_btn" tool_tip="Second Life durchsuchen"/>
45</panel> 42</panel>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_voice_controls.xml b/linden/indra/newview/skins/default/xui/de/panel_voice_controls.xml
index eb3b499..9952f34 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_voice_controls.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_voice_controls.xml
@@ -1,12 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="voice_controls"> 2<panel name="voice_controls">
3 <!-- WARNING: separate formatting and translations of these same strings (for using the Silver skin) is controlled by a different file in \skins\silver\xui\de\panel_voice_controls.xml You must make changes to translations in both files.-->
3 <button name="speakers_btn" 4 <button name="speakers_btn"
4 tool_tip="Liste der Einwohner in der Umgebung anzeigen, die Voice-Chat verwenden" /> 5 tool_tip="Liste der Einwohner in der Umgebung anzeigen, die Voice-Chat verwenden" />
5 <button label="Reden" name="push_to_talk" 6 <button label="Reden" name="push_to_talk"
6 tool_tip="Zum Sprechen Taste gedrückt halten" width="70" left_delta="37"/> 7 tool_tip="Zum Sprechen Taste gedrückt halten" width="70" left_delta="37"/>
7 <button name="ptt_lock" 8 <button name="ptt_lock"
8 tool_tip="Klicken Sie auf das Schloss, um in den Gesprächsmodus zu wechseln" left_delta="2"/> 9 tool_tip="Klicken Sie auf das Schloss, um in den Gesprächsmodus zu wechseln" left_delta="2"/>
9 <icon bottom="-19" height="16" image_name="icn_voice_ptt-off.tga" left_delta="49" 10 <icon left_delta="49" name="voice_volume" width="16" />
10 name="voice_volume" width="16" />
11 <button name="show_channel" tool_tip="Klicken, um den aktuellen Voice-Kanal anzuzeigen" left_delta="16"/> 11 <button name="show_channel" tool_tip="Klicken, um den aktuellen Voice-Kanal anzuzeigen" left_delta="16"/>
12</panel> 12</panel>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_voice_enable.xml b/linden/indra/newview/skins/default/xui/de/panel_voice_enable.xml
index 1c65712..7390f54 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_voice_enable.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_voice_enable.xml
@@ -15,9 +15,9 @@
15 </radio_item> 15 </radio_item>
16 </radio_group> 16 </radio_group>
17 <text_editor name="voice_intro_text3"> 17 <text_editor name="voice_intro_text3">
18 Sie können den Voice-Chat jederzeit in den Einstellungen auf der Registerkarte &apos;Voice-Chat&apos; aktivieren. 18 Sie können den Voice-Chat jederzeit in den Einstellungen auf der Registerkarte „Voice-Chat“ aktivieren.
19 </text_editor> 19 </text_editor>
20 <text_editor name="voice_intro_text4"> 20 <text_editor name="voice_intro_text4">
21 Klicken Sie auf &apos;Weiter&apos;, um den Voice-Chat jetzt zu konfigurieren oder klicken Sie auf &apos;Fertig stellen&apos;, um zu Second Life zu wechseln. 21 Klicken Sie auf „Weiter“, um den Voice-Chat jetzt zu konfigurieren oder klicken Sie auf „Fertig stellen“, um zu Second Life zu wechseln.
22 </text_editor> 22 </text_editor>
23</panel> 23</panel>
diff --git a/linden/indra/newview/skins/default/xui/de/panel_voice_options.xml b/linden/indra/newview/skins/default/xui/de/panel_voice_options.xml
index d64927e..d2040d3 100644
--- a/linden/indra/newview/skins/default/xui/de/panel_voice_options.xml
+++ b/linden/indra/newview/skins/default/xui/de/panel_voice_options.xml
@@ -12,12 +12,12 @@
12 </radio_item> 12 </radio_item>
13 </radio_group> 13 </radio_group>
14 <check_box label="Voice-Anrufe nur meinen Freunden erlauben" name="friends_only_check" /> 14 <check_box label="Voice-Anrufe nur meinen Freunden erlauben" name="friends_only_check" />
15 <check_box label="Viewer im &apos;Zum-Sprechen-drücken&apos;-Modus starten" 15 <check_box label="Viewer im „Zum-Sprechen-drücken“-Modus starten"
16 name="push_to_talk_check" /> 16 name="push_to_talk_check" />
17 <check_box label="&apos;Zum-Sprechen-drücken&apos; im Umschaltmodus verwenden" 17 <check_box label="„Zum-Sprechen-drücken“ im Umschaltmodus verwenden"
18 name="push_to_talk_toggle_check" /> 18 name="push_to_talk_toggle_check" />
19 <text name="push_to_talk_label"> 19 <text name="push_to_talk_label">
20 Auslöser für &apos;Zum-Sprechen-drücken&apos;: 20 Auslöser für „Zum-Sprechen-drücken“:
21 </text> 21 </text>
22 <button label="Taste festlegen" name="set_voice_hotkey_button" /> 22 <button label="Taste festlegen" name="set_voice_hotkey_button" />
23 <button label="Mittlere Maustaste" name="set_voice_middlemouse_button" /> 23 <button label="Mittlere Maustaste" name="set_voice_middlemouse_button" />
diff --git a/linden/indra/newview/skins/default/xui/de/role_actions.xml b/linden/indra/newview/skins/default/xui/de/role_actions.xml
index 26042bd..95eb6c5 100644
--- a/linden/indra/newview/skins/default/xui/de/role_actions.xml
+++ b/linden/indra/newview/skins/default/xui/de/role_actions.xml
@@ -4,157 +4,157 @@
4 description="Diese Fähigkeiten ermöglichen das Hinzufügen und Entfernen von Mitgliedern sowie den Beitritt ohne Einladung." 4 description="Diese Fähigkeiten ermöglichen das Hinzufügen und Entfernen von Mitgliedern sowie den Beitritt ohne Einladung."
5 name="Membership"> 5 name="Membership">
6 <action description="Personen in diese Gruppe einladen" 6 <action description="Personen in diese Gruppe einladen"
7 longdescription="Personen zu dieser Gruppe einladen können Sie mit &apos;Neue Person einladen...&apos; unter &apos;Mitglieder und Rollen&apos; &gt; &apos;Mitglieder&apos;." 7 longdescription="Personen zu dieser Gruppe einladen können Sie mit „Neue Person einladen...“ unter „Mitglieder und Rollen“ &gt; „Mitglieder“."
8 name="member invite" /> 8 name="member invite" />
9 <action description="Mitglieder aus dieser Gruppe werfen" 9 <action description="Mitglieder aus dieser Gruppe werfen"
10 longdescription="Mitglieder von der Gruppe ausschließen können Sie mit &apos;Aus Gruppe werfen&apos; unter &apos;Mitglieder und Rollen&apos; &gt; &apos;Mitglieder&apos;. Ein Eigentümer kann jeden, außer einen anderen Eigentümer, ausschließen. Wenn Sie kein Eigentümer sind, können Sie ein Mitglied nur dann von der Gruppe ausschließen, wenn es die Rolle &apos;Jeder&apos; innehat, aber KEINE ANDERE Rolle. Um Mitgliedern Rollen entziehen zu können, müssen Sie über die Fähigkeit &apos;Mitgliedern Rollen entziehen&apos; verfügen." 10 longdescription="Mitglieder von der Gruppe ausschließen können Sie mit „Aus Gruppe werfen“ unter „Mitglieder und Rollen“ &gt; „Mitglieder“. Ein Eigentümer kann jeden, außer einen anderen Eigentümer, ausschließen. Wenn Sie kein Eigentümer sind, können Sie ein Mitglied nur dann von der Gruppe ausschließen, wenn es die Rolle „Jeder“ innehat, aber KEINE ANDERE Rolle. Um Mitgliedern Rollen entziehen zu können, müssen Sie über die Fähigkeit „Mitgliedern Rollen entziehen“ verfügen."
11 name="member eject" /> 11 name="member eject" />
12 <action 12 <action
13 description="&apos;Registrierung offen&apos; einstellen und &apos;Beitrittsgebühr&apos; ändern" 13 description="„Registrierung offen“ einstellen und „Beitrittsgebühr“ ändern"
14 longdescription="&apos;Beitritt möglich&apos; erlaubt den Beitritt zur Gruppe ohne vorhergehende Einladung. Die &apos;Beitrittsgebühr&apos; wird in den Gruppeneinstellungen auf der Registerkarte &apos;Allgemein&apos; festgelegt." 14 longdescription="„Beitritt möglich“ erlaubt den Beitritt zur Gruppe ohne vorhergehende Einladung. Die „Beitrittsgebühr“ wird in den Gruppeneinstellungen auf der Registerkarte „Allgemein“ festgelegt."
15 name="member options" /> 15 name="member options" />
16 </action_set> 16 </action_set>
17 <action_set 17 <action_set
18 description="Diese Fähigkeiten ermöglichen das Hinzufügen, Entfernen und Ändern von Gruppenrollen, das Zuweisen und Entfernen von Rollen und das Zuweisen von Fähigkeiten zu Rollen." 18 description="Diese Fähigkeiten ermöglichen das Hinzufügen, Entfernen und Ändern von Gruppenrollen, das Zuweisen und Entfernen von Rollen und das Zuweisen von Fähigkeiten zu Rollen."
19 name="Roles"> 19 name="Roles">
20 <action description="Neue Rollen erstellen" 20 <action description="Neue Rollen erstellen"
21 longdescription="Neue Rollen erstellen Sie unter &apos;Mitglieder und Rollen&apos; &gt; &apos;Rollen&apos;." 21 longdescription="Neue Rollen erstellen Sie unter „Mitglieder und Rollen“ &gt; „Rollen“."
22 name="role create" /> 22 name="role create" />
23 <action description="Rollen löschen" 23 <action description="Rollen löschen"
24 longdescription="Rollen löschen können Sie unter &apos;Mitglieder und Rollen&apos; &gt; &apos;Rollen&apos;." 24 longdescription="Rollen löschen können Sie unter „Mitglieder und Rollen“ &gt; „Rollen“."
25 name="role delete" /> 25 name="role delete" />
26 <action description="Rollennamen, Titel und Beschreibung ändern" 26 <action description="Rollennamen, Titel und Beschreibung ändern"
27 longdescription="Namen, Titel und Beschreibungen von Rollen können Sie nach Auswahl einer Rolle unten auf der Registerkarte &apos;Mitglieder und Rollen&apos; &gt; &apos;Rollen&apos; ändern." 27 longdescription="Namen, Titel und Beschreibungen von Rollen können Sie nach Auswahl einer Rolle unten auf der Registerkarte „Mitglieder und Rollen“ &gt; „Rollen“ ändern."
28 name="role properties" /> 28 name="role properties" />
29 <action description="Mitgliedern nur eigene Rollen zuweisen" 29 <action description="Mitgliedern nur eigene Rollen zuweisen"
30 longdescription="Mitgliedern nur eigene Rollen zuweisen können Sie im Bereich &apos;Zugewiesene Rollen&apos; auf der Registerkarte &apos;Mitglieder und Rollen&apos; &gt; &apos;Mitglieder&apos;. Ein Mitglied mit dieser Fähigkeit kann anderen Mitgliedern nur die eigenen Rollen zuweisen." 30 longdescription="Mitgliedern nur eigene Rollen zuweisen können Sie im Bereich „Zugewiesene Rollen“ auf der Registerkarte „Mitglieder und Rollen“ &gt; „Mitglieder“. Ein Mitglied mit dieser Fähigkeit kann anderen Mitgliedern nur die eigenen Rollen zuweisen."
31 name="role assign member limited" /> 31 name="role assign member limited" />
32 <action description="Mitgliedern beliebige Rolle zuweisen" 32 <action description="Mitgliedern beliebige Rolle zuweisen"
33 longdescription="Mitgliedern beliebige Rolle zuweisen können Sie im Bereich &apos;Zugewiesene Rollen&apos; auf der Registerkarte &apos;Mitglieder und Rollen&apos; &gt; &apos;Mitglieder&apos;. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann sich selbst und jedem anderen Mitglied (außer dem Eigentümer) Rollen mit weitreichenden Fähigkeiten zuweisen und damit fast Eigentümerrechte erreichen. Überlegen Sie sich, wem Sie diese Fähigkeit verleihen." 33 longdescription="Mitgliedern beliebige Rolle zuweisen können Sie im Bereich „Zugewiesene Rollen“ auf der Registerkarte „Mitglieder und Rollen“ &gt; „Mitglieder“. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann sich selbst und jedem anderen Mitglied (außer dem Eigentümer) Rollen mit weitreichenden Fähigkeiten zuweisen und damit fast Eigentümerrechte erreichen. Überlegen Sie sich, wem Sie diese Fähigkeit verleihen."
34 name="role assign member" /> 34 name="role assign member" />
35 <action description="Mitgliedern Rollen entziehen" 35 <action description="Mitgliedern Rollen entziehen"
36 longdescription="Mitgliedern Rollen entziehen können Sie im Bereich &apos;Rollen&apos; auf der Registerkarte &apos;Mitglieder und Rollen&apos; &gt; &apos;Mitglieder&apos;. Eigentümer können nicht entfernt werden." 36 longdescription="Mitgliedern Rollen entziehen können Sie im Bereich „Rollen“ auf der Registerkarte „Mitglieder und Rollen“ &gt; „Mitglieder“. Eigentümer können nicht entfernt werden."
37 name="role remove member" /> 37 name="role remove member" />
38 <action description="Rollenfähigkeiten zuweisen und entfernen" 38 <action description="Rollenfähigkeiten zuweisen und entfernen"
39 longdescription="Rollenfähigkeiten zuweisen und entfernen können Sie im Bereich &apos;Zulässige Fähigkeiten&apos; auf der Registerkarte &apos;Mitglieder und Rollen&apos; &gt; &apos;Rollen&apos;. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann sich selbst und jedem anderen Mitglied (außer dem Eigentümer) alle Fähigkeiten zuweisen und damit fast Eigentümerrechte erreichen. Überlegen Sie sich, wem Sie diese Fähigkeit verleihen." 39 longdescription="Rollenfähigkeiten zuweisen und entfernen können Sie im Bereich „Zulässige Fähigkeiten“ auf der Registerkarte „Mitglieder und Rollen“ &gt; „Rollen“. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann sich selbst und jedem anderen Mitglied (außer dem Eigentümer) alle Fähigkeiten zuweisen und damit fast Eigentümerrechte erreichen. Überlegen Sie sich, wem Sie diese Fähigkeit verleihen."
40 name="role change actions" /> 40 name="role change actions" />
41 </action_set> 41 </action_set>
42 <action_set 42 <action_set
43 description="Diese Fähigkeiten ermöglichen es, die Gruppenidentität zu ändern, z. B. öffentliche Sichtbarkeit, Charta und Insignien." 43 description="Diese Fähigkeiten ermöglichen es, die Gruppenidentität zu ändern, z. B. öffentliche Sichtbarkeit, Charta und Insignien."
44 name="Group Identity"> 44 name="Group Identity">
45 <action 45 <action
46 description="Charta, Insignien und &apos;Im Web veröffentlichen&apos; ändern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind." 46 description="Charta, Insignien und „Im Web veröffentlichen“ ändern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind."
47 longdescription="Charta, Insignien und &apos;Im Web veröffentlichen&apos; ändern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind. Diese Einstellungen finden Sie auf der Registerkarte &apos;Allgemein&apos;." 47 longdescription="Charta, Insignien und „Im Web veröffentlichen“ ändern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind. Diese Einstellungen finden Sie auf der Registerkarte „Allgemein“."
48 name="group change identity" /> 48 name="group change identity" />
49 </action_set> 49 </action_set>
50 <action_set 50 <action_set
51 description="Diese Fähigkeiten ermöglichen es, gruppeneigenes Land zu übertragen, zu bearbeiten und zu verkaufen. Klicken Sie mit rechts auf den Boden und wählen Sie &apos;Land-Info...&apos; oder klicken Sie in der Menüleiste auf den Parzellennamen." 51 description="Diese Fähigkeiten ermöglichen es, gruppeneigenes Land zu übertragen, zu bearbeiten und zu verkaufen. Klicken Sie mit rechts auf den Boden und wählen Sie „Land-Info...“ oder klicken Sie in der Menüleiste auf den Parzellennamen."
52 name="Parcel Management"> 52 name="Parcel Management">
53 <action description="Land übertragen und für Gruppe kaufen" 53 <action description="Land übertragen und für Gruppe kaufen"
54 longdescription="Land übertragen und für Gruppe kaufen. Diese Einstellung finden Sie unter &apos;Land-Info&apos; &gt; &apos;Allgemein&apos;." 54 longdescription="Land übertragen und für Gruppe kaufen. Diese Einstellung finden Sie unter „Land-Info“ &gt; „Allgemein“."
55 name="land deed" /> 55 name="land deed" />
56 <action description="Land Governor Linden überlassen" 56 <action description="Land Governor Linden überlassen"
57 longdescription="Land Governor Linden überlassen. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann gruppeneigenes Land unter &apos;Land-Info&apos; &gt; &apos;Allgemein&apos; aufgeben und es ohne Verkauf in das Eigentum von Linden zurückführen! Überlegen Sie sich, wem Sie diese Fähigkeit verleihen." 57 longdescription="Land Governor Linden überlassen. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser Fähigkeit kann gruppeneigenes Land unter „Land-Info“ &gt; „Allgemein“ aufgeben und es ohne Verkauf in das Eigentum von Linden zurückführen! Überlegen Sie sich, wem Sie diese Fähigkeit verleihen."
58 name="land release" /> 58 name="land release" />
59 <action description="Land.zu.verkaufen-Info einstellen" 59 <action description="Land.zu.verkaufen-Info einstellen"
60 longdescription="Land zu verkaufen-Info einstellen. *WARNUNG* Mitglieder in einer Rolle mit dieser Fähigkeit können gruppeneigenes Land jederzeit unter &apos;Land-Info&apos; &gt; &apos;Allgemein&apos; verkaufen! Überlegen Sie sich, wem Sie diese Fähigkeit verleihen." 60 longdescription="Land zu verkaufen-Info einstellen. *WARNUNG* Mitglieder in einer Rolle mit dieser Fähigkeit können gruppeneigenes Land jederzeit unter „Land-Info“ &gt; „Allgemein“ verkaufen! Überlegen Sie sich, wem Sie diese Fähigkeit verleihen."
61 name="land set sale info" /> 61 name="land set sale info" />
62 <action description="Parzellen teilen und zusammenlegen" 62 <action description="Parzellen teilen und zusammenlegen"
63 longdescription="Parzellen teilen und zusammenlegen. Klicken Sie dazu mit rechts auf den Boden, wählen sie &apos;Terrain bearbeiten&apos; und ziehen Sie die Maus auf das Land, um eine Auswahl zu treffen. Zum Teilen treffen Sie eine Auswahl und klicken auf &apos;Unterteilen...&apos;. Zum Zusammenlegen von zwei oder mehr angrenzenden Parzellen klicken Sie auf &apos;Zusammenlegen...&apos;." 63 longdescription="Parzellen teilen und zusammenlegen. Klicken Sie dazu mit rechts auf den Boden, wählen sie „Terrain bearbeiten“ und ziehen Sie die Maus auf das Land, um eine Auswahl zu treffen. Zum Teilen treffen Sie eine Auswahl und klicken auf „Unterteilen...“. Zum Zusammenlegen von zwei oder mehr angrenzenden Parzellen klicken Sie auf „Zusammenlegen...“."
64 name="land divide join" /> 64 name="land divide join" />
65 </action_set> 65 </action_set>
66 <action_set 66 <action_set
67 description="Diese Fähigkeiten ermöglichen es, den Parzellennamen und die Veröffentlichungseinstellungen sowie die Anzeige des Suchverzeichnisses, den Landepunkt und die TP-Routenoptionen festzulegen." 67 description="Diese Fähigkeiten ermöglichen es, den Parzellennamen und die Veröffentlichungseinstellungen sowie die Anzeige des Suchverzeichnisses, den Landepunkt und die TP-Routenoptionen festzulegen."
68 name="Parcel Identity"> 68 name="Parcel Identity">
69 <action 69 <action
70 description="&apos;In &quot;Orte suchen&quot; anzeigen&apos; ein-/ausschalten und Kategorie festlegen" 70 description="„In Orte suchen anzeigen“ ein-/ausschalten und Kategorie festlegen"
71 longdescription="Auf der Registerkarte &apos;Optionen&apos; unter &apos;Land-Info&apos; können Sie &apos;In &quot;Orte suchen&quot; anzeigen&apos; ein- und ausschalten und die Parzellenkategorie festlegen." 71 longdescription="Auf der Registerkarte „Optionen“ unter „Land-Info“ können Sie „In Orte suchen anzeigen“ ein- und ausschalten und die Parzellenkategorie festlegen."
72 name="land find places" /> 72 name="land find places" />
73 <action 73 <action
74 description="Name und Beschreibung der Parzelle und Einstellungen für &apos;Im Web veröffentlichen&apos; ändern" 74 description="Name und Beschreibung der Parzelle und Einstellungen für „Im Web veröffentlichen“ ändern"
75 longdescription="Name und Beschreibung der Parzelle und Einstellungen für &apos;Im Web veröffentlichen&apos; ändern. Diese Einstellungen finden Sie unter &apos;Land-Info&apos; &gt; &apos;Optionen&apos;." 75 longdescription="Name und Beschreibung der Parzelle und Einstellungen für „Im Web veröffentlichen“ ändern. Diese Einstellungen finden Sie unter „Land-Info“ &gt; „Optionen“."
76 name="land change identity" /> 76 name="land change identity" />
77 <action description="Landepunkt und Teleport-Route festlegen" 77 <action description="Landepunkt und Teleport-Route festlegen"
78 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle einen Landepunkt für ankommende Teleports und Teleport-Routen festlegen. Diese Einstellungen finden Sie unter &apos;Land-Info&apos; &gt; &apos;Optionen&apos;." 78 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle einen Landepunkt für ankommende Teleports und Teleport-Routen festlegen. Diese Einstellungen finden Sie unter „Land-Info“ &gt; „Optionen“."
79 name="land set landing point" /> 79 name="land set landing point" />
80 </action_set> 80 </action_set>
81 <action_set 81 <action_set
82 description="Diese Fähigkeiten ermöglichen es, Parzellenoptionen wie &apos;Objekte erstellen&apos;, &apos;Terrain bearbeiten&apos; sowie Musik- und Medieneinstellungen zu ändern." 82 description="Diese Fähigkeiten ermöglichen es, Parzellenoptionen wie „Objekte erstellen“, „Terrain bearbeiten“ sowie Musik- und Medieneinstellungen zu ändern."
83 name="Parcel Settings"> 83 name="Parcel Settings">
84 <action description="Musik- und Medieneinstellungen ändern" 84 <action description="Musik- und Medieneinstellungen ändern"
85 longdescription="Die Einstellungen für Streaming-Musik und Filme finden Sie unter &apos;Land-Info&apos; &gt; &apos;Medien&apos;." 85 longdescription="Die Einstellungen für Streaming-Musik und Filme finden Sie unter „Land-Info“ &gt; „Medien“."
86 name="land change media" /> 86 name="land change media" />
87 <action description="&apos;Terrain bearbeiten&apos; ein/aus" 87 <action description="„Terrain bearbeiten“ ein/aus"
88 longdescription="&apos;Terrain bearbeiten&apos; ein/aus. *WARNUNG* &apos;Land-Info&apos; &gt; &apos;Optionen&apos; &gt; &apos;Terrain bearbeiten&apos; ermöglicht jedem das Terraformen Ihres Grundstücks und das Setzen und Verschieben von Linden-Pflanzen. Überlegen Sie sich, wem Sie diese Fähigkeit verleihen. Diese Einstellung finden Sie unter &apos;Land-Info&apos; &gt; &apos;Optionen&apos;." 88 longdescription="„Terrain bearbeiten“ ein/aus. *WARNUNG* „Land-Info“ &gt; „Optionen“ &gt; „Terrain bearbeiten“ ermöglicht jedem das Terraformen Ihres Grundstücks und das Setzen und Verschieben von Linden-Pflanzen. Überlegen Sie sich, wem Sie diese Fähigkeit verleihen. Diese Einstellung finden Sie unter „Land-Info“ &gt; „Optionen“."
89 name="land edit" /> 89 name="land edit" />
90 <action description="&apos;Land-Info&apos;-Optionen einstellen" 90 <action description="„Land-Info“-Optionen einstellen"
91 longdescription="Auf der Registerkarte &apos;Optionen&apos; unter &apos;Land-Info&apos; können Sie &apos;Sicher (kein Schaden)&apos; und &apos;Fliegen&apos; ein- und ausschalten und Einwohnern folgende Aktionen auf gruppeneigenem Land erlauben: &apos;Objekte erstellen&apos;, &apos;Terrain bearbeiten&apos;, &apos;Landmarken erstellen&apos; und &apos;Skripts ausführen&apos;." 91 longdescription="Auf der Registerkarte „Optionen“ unter „Land-Info“ können Sie „Sicher (kein Schaden)“ und „Fliegen“ ein- und ausschalten und Einwohnern folgende Aktionen auf gruppeneigenem Land erlauben: „Objekte erstellen“, „Terrain bearbeiten“, „Landmarken erstellen“ und „Skripts ausführen“."
92 name="land options" /> 92 name="land options" />
93 </action_set> 93 </action_set>
94 <action_set 94 <action_set
95 description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Umgehen von Restriktionen auf gruppeneigenen Parzellen zu erlauben." 95 description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Umgehen von Restriktionen auf gruppeneigenen Parzellen zu erlauben."
96 name="Parcel Powers"> 96 name="Parcel Powers">
97 <action description="&apos;Terrain bearbeiten&apos; zulassen" 97 <action description="„Terrain bearbeiten“ zulassen"
98 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle das Terrain bearbeiten, selbst wenn diese Option unter &apos;Land-Info&apos; &gt; &apos;Optionen&apos; deaktiviert ist." 98 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle das Terrain bearbeiten, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist."
99 name="land allow edit land" /> 99 name="land allow edit land" />
100 <action description="&apos;Fliegen&apos; zulassen" 100 <action description="„Fliegen“ zulassen"
101 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle fliegen, selbst wenn diese Option unter &apos;Land-Info&apos; &gt; &apos;Optionen&apos; deaktiviert ist." 101 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle fliegen, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist."
102 name="land allow fly" /> 102 name="land allow fly" />
103 <action description="&apos;Objekte erstellen&apos; zulassen" 103 <action description="„Objekte erstellen“ zulassen"
104 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle Objekte erstellen, selbst wenn diese Option unter &apos;Land-Info&apos; &gt; &apos;Optionen&apos; deaktiviert ist." 104 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer gruppeneigenen Parzelle Objekte erstellen, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist."
105 name="land allow create" /> 105 name="land allow create" />
106 <action description="&apos;Landmarke erstellen&apos; zulassen" 106 <action description="„Landmarke erstellen“ zulassen"
107 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können für eine gruppeneigene Parzelle eine Landmarke erstellen, selbst wenn diese Option unter &apos;Land-Info&apos; &gt; &apos;Optionen&apos; deaktiviert ist." 107 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können für eine gruppeneigene Parzelle eine Landmarke erstellen, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist."
108 name="land allow landmark" /> 108 name="land allow landmark" />
109 <action description="&apos;Hier als Zuhause wählen&apos; auf Gruppenland zulassen" 109 <action description="„Hier als Zuhause wählen“ auf Gruppenland zulassen"
110 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer an diese Gruppe übertragenen Parzelle die Funktion &apos;Welt&apos; &gt; &apos;Hier als Zuhause wählen&apos; verwenden." 110 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können auf einer an diese Gruppe übertragenen Parzelle die Funktion „Welt“ &gt; „Hier als Zuhause wählen“ verwenden."
111 name="land allow set home" /> 111 name="land allow set home" />
112 </action_set> 112 </action_set>
113 <action_set 113 <action_set
114 description="Diese Fähigkeiten ermöglichen es, den Zugang auf gruppeneigenen Parzellen zu steuern. Dazu gehört das Einfrieren und Ausschließen von Einwohnern." 114 description="Diese Fähigkeiten ermöglichen es, den Zugang auf gruppeneigenen Parzellen zu steuern. Dazu gehört das Einfrieren und Ausschließen von Einwohnern."
115 name="Parcel Access"> 115 name="Parcel Access">
116 <action description="Parzellen-Zugangslisten verwalten" 116 <action description="Parzellen-Zugangslisten verwalten"
117 longdescription="Parzellen-Zugangslisten bearbeiten Sie unter &apos;Land-Info&apos; &gt; &apos;Zugang&apos;." 117 longdescription="Parzellen-Zugangslisten bearbeiten Sie unter „Land-Info“ &gt; „Zugang“."
118 name="land manage allowed" /> 118 name="land manage allowed" />
119 <action description="Parzellen-Bannlisten verwalten" 119 <action description="Parzellen-Bannlisten verwalten"
120 longdescription="Parzellen-Bannlisten bearbeiten Sie unter &apos;Land-Info&apos; &gt; &apos;Verbannen&apos;." 120 longdescription="Parzellen-Bannlisten bearbeiten Sie unter „Land-Info“ &gt; „Verbannen“."
121 name="land manage banned" /> 121 name="land manage banned" />
122 <action 122 <action
123 description="Parzelleneinstellungen für &apos;Pässe verkaufen...&apos; ändern" 123 description="Parzelleneinstellungen für „Pässe verkaufen...“ ändern"
124 longdescription="Die Parzellen-Einstellungen für &apos;Pässe verkaufen...&apos; ändern Sie unter &apos;Land-Info&apos; &gt; &apos;Zugang&apos;." 124 longdescription="Die Parzellen-Einstellungen für „Pässe verkaufen...“ ändern Sie unter „Land-Info“ &gt; „Zugang“."
125 name="land manage passes" /> 125 name="land manage passes" />
126 <action description="Einwohner aus Parzellen werfen und einfrieren" 126 <action description="Einwohner aus Parzellen werfen und einfrieren"
127 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können gegen unerwünschte Personen auf einer gruppeneigenen Parzelle Maßnahmen ergreifen. Klicken Sie die Person mit rechts an und wählen Sie &apos;Mehr&apos; &gt;, dann &apos;Ausschließen...&apos; oder &apos;Einfrieren...&apos;." 127 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können gegen unerwünschte Personen auf einer gruppeneigenen Parzelle Maßnahmen ergreifen. Klicken Sie die Person mit rechts an und wählen Sie „Mehr“ &gt;, dann „Ausschließen...“ oder „Einfrieren...“."
128 name="land admin" /> 128 name="land admin" />
129 </action_set> 129 </action_set>
130 <action_set 130 <action_set
131 description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Zurückgeben von Objekten sowie das Platzieren und Verschieben von Linden-Pflanzen zu erlauben. Mitglieder können das Grundstück aufräumen und an der Landschaftsgestaltung mitwirken. Aber Vorsicht: Zurückgegebene Objekte können nicht mehr zurückgeholt werden." 131 description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Zurückgeben von Objekten sowie das Platzieren und Verschieben von Linden-Pflanzen zu erlauben. Mitglieder können das Grundstück aufräumen und an der Landschaftsgestaltung mitwirken. Aber Vorsicht: Zurückgegebene Objekte können nicht mehr zurückgeholt werden."
132 name="Parcel Content"> 132 name="Parcel Content">
133 <action description="Gruppeneigene Objekte zurückgeben" 133 <action description="Gruppeneigene Objekte zurückgeben"
134 longdescription="Gruppeneigene Objekte auf gruppeneigenen Parzellen können Sie unter &apos;Land-Info&apos; &gt; &apos;Objekte&apos; zurückgeben." 134 longdescription="Gruppeneigene Objekte auf gruppeneigenen Parzellen können Sie unter „Land-Info“ &gt; „Objekte“ zurückgeben."
135 name="land return group owned" /> 135 name="land return group owned" />
136 <action description="Gruppenobjekte zurückgeben" 136 <action description="Gruppenobjekte zurückgeben"
137 longdescription="Gruppenobjekte auf gruppeneigenen Parzellen können Sie unter &apos;Land-Info&apos; &gt; &apos;Objekte&apos; zurückgeben." 137 longdescription="Gruppenobjekte auf gruppeneigenen Parzellen können Sie unter „Land-Info“ &gt; „Objekte“ zurückgeben."
138 name="land return group set" /> 138 name="land return group set" />
139 <action description="Gruppenfremde Objekte zurückgeben" 139 <action description="Gruppenfremde Objekte zurückgeben"
140 longdescription="Objekte von gruppenfremden Personen auf gruppeneigenen Parzellen können Sie unter &apos;Land-Info&apos; &gt; &apos;Objekte&apos; zurückgeben." 140 longdescription="Objekte von gruppenfremden Personen auf gruppeneigenen Parzellen können Sie unter „Land-Info“ &gt; „Objekte“ zurückgeben."
141 name="land return non group" /> 141 name="land return non group" />
142 <action description="Landschaftsgestaltung mit Linden-Pflanzen" 142 <action description="Landschaftsgestaltung mit Linden-Pflanzen"
143 longdescription="Die Fähigkeit zur Landschaftsgestaltung ermöglicht das Platzieren und Verschieben von Linden-Bäumen, -Pflanzen und -Gräsern. Diese Objekte finden Sie im Bibliotheksordner des Inventars unter &apos;Objekte&apos;. Sie lassen sich auch mit der Schaltfläche &apos;Erstellen&apos; erzeugen." 143 longdescription="Die Fähigkeit zur Landschaftsgestaltung ermöglicht das Platzieren und Verschieben von Linden-Bäumen, -Pflanzen und -Gräsern. Diese Objekte finden Sie im Bibliotheksordner des Inventars unter „Objekte“. Sie lassen sich auch mit der Schaltfläche „Erstellen“ erzeugen."
144 name="land gardening" /> 144 name="land gardening" />
145 </action_set> 145 </action_set>
146 <action_set 146 <action_set
147 description="Diese Fähigkeiten ermöglichen es, gruppeneigene Objekte zu übertragen, zu bearbeiten und zu verkaufen. Änderungen werden unter &apos;Auswahl-Tool&apos; &gt; &apos;Bearbeiten&apos; auf der Registerkarte &apos;Allgemein&apos; vorgenommen. Klicken Sie mit rechts auf ein Objekt und wählen Sie &apos;Bearbeiten&apos;, um seine Einstellungen anzuzeigen." 147 description="Diese Fähigkeiten ermöglichen es, gruppeneigene Objekte zu übertragen, zu bearbeiten und zu verkaufen. Änderungen werden unter „Auswahl-Tool“ &gt; „Bearbeiten“ auf der Registerkarte „Allgemein“ vorgenommen. Klicken Sie mit rechts auf ein Objekt und wählen Sie „Bearbeiten“, um seine Einstellungen anzuzeigen."
148 name="Object Management"> 148 name="Object Management">
149 <action description="Objekte an Gruppe übertragen" 149 <action description="Objekte an Gruppe übertragen"
150 longdescription="Objekte an eine Gruppe übertragen können Sie unter &apos;Auswahl-Tool&apos; &gt; &apos;Bearbeiten&apos; auf der Registerkarte &apos;Allgemein&apos;." 150 longdescription="Objekte an eine Gruppe übertragen können Sie unter „Auswahl-Tool“ &gt; „Bearbeiten“ auf der Registerkarte „Allgemein“."
151 name="object deed" /> 151 name="object deed" />
152 <action 152 <action
153 description="Gruppeneigene Objekte manipulieren (verschieben, kopieren, bearbeiten)" 153 description="Gruppeneigene Objekte manipulieren (verschieben, kopieren, bearbeiten)"
154 longdescription="Gruppeneigene Objekte lassen sich unter &apos;Auswahl-Tool&apos; &gt; &apos;Bearbeiten&apos; auf der Registerkarte &apos;Allgemein&apos; manipulieren (verschieben, kopieren, bearbeiten)." 154 longdescription="Gruppeneigene Objekte lassen sich unter „Auswahl-Tool“ &gt; „Bearbeiten“ auf der Registerkarte „Allgemein“ manipulieren (verschieben, kopieren, bearbeiten)."
155 name="object manipulate" /> 155 name="object manipulate" />
156 <action description="Gruppeneigene Objekte zum Verkauf freigeben" 156 <action description="Gruppeneigene Objekte zum Verkauf freigeben"
157 longdescription="Gruppeneigene Objekte zum Verkauf freigeben können Sie unter &apos;Auswahl-Tool&apos; &gt; &apos;Bearbeiten&apos; auf der Registerkarte &apos;Allgemein&apos;." 157 longdescription="Gruppeneigene Objekte zum Verkauf freigeben können Sie unter „Auswahl-Tool“ &gt; „Bearbeiten“ auf der Registerkarte „Allgemein“."
158 name="object set sale" /> 158 name="object set sale" />
159 </action_set> 159 </action_set>
160 <action_set 160 <action_set
@@ -168,20 +168,20 @@
168 description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Senden, Empfangen und Anzeigen von Gruppennachrichten zu erlauben." 168 description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Senden, Empfangen und Anzeigen von Gruppennachrichten zu erlauben."
169 name="Notices"> 169 name="Notices">
170 <action description="Mitteilungen senden" 170 <action description="Mitteilungen senden"
171 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können in der Gruppeninfo unter &apos;Mitteilungen&apos; Mitteilungen senden." 171 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können in der Gruppeninfo unter „Mitteilungen“ Mitteilungen senden."
172 name="notices send" /> 172 name="notices send" />
173 <action description="Mitteilungen erhalten und ältere Mitteilungen anzeigen" 173 <action description="Mitteilungen erhalten und ältere Mitteilungen anzeigen"
174 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Mitteilungen erhalten und in der Gruppeninfo unter &apos;Mitteilungen&apos; ältere Mitteilungen einsehen." 174 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Mitteilungen erhalten und in der Gruppeninfo unter „Mitteilungen“ ältere Mitteilungen einsehen."
175 name="notices receive" /> 175 name="notices receive" />
176 </action_set> 176 </action_set>
177 <action_set 177 <action_set
178 description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Erstellen von Anfragen, das Abstimmen über Anfragen und das Anzeigen des Abstimmprotokolls zu erlauben." 178 description="Diese Fähigkeiten ermöglichen es, Mitgliedern das Erstellen von Anfragen, das Abstimmen über Anfragen und das Anzeigen des Abstimmprotokolls zu erlauben."
179 name="Proposals"> 179 name="Proposals">
180 <action description="Neue Anfragen" 180 <action description="Neue Anfragen"
181 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Anfragen stellen, über die auf der Registerkarte &apos;Anfragen&apos; in der Gruppeninfo abgestimmt werden kann." 181 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Anfragen stellen, über die auf der Registerkarte „Anfragen“ in der Gruppeninfo abgestimmt werden kann."
182 name="proposal start" /> 182 name="proposal start" />
183 <action description="Ãœber Anfragen abstimmen" 183 <action description="Ãœber Anfragen abstimmen"
184 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können in der Gruppeninfo unter &apos;Anfragen&apos; über Anfragen abstimmen." 184 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können in der Gruppeninfo unter „Anfragen“ über Anfragen abstimmen."
185 name="proposal vote" /> 185 name="proposal vote" />
186 </action_set> 186 </action_set>
187 <action_set 187 <action_set
@@ -191,7 +191,7 @@
191 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Gruppen-Chat und Gruppen-Voice-Chat beitreten." 191 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Gruppen-Chat und Gruppen-Voice-Chat beitreten."
192 name="join group chat" /> 192 name="join group chat" />
193 <action description="Gruppen-Voice-Chat beitreten" 193 <action description="Gruppen-Voice-Chat beitreten"
194 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Gruppen-Voice-Chat beitreten.HINWEIS:Sie benötigen die Fähigkeit &apos;Gruppen-Chat beitreten&apos;, um Zugang zu dieser Voice-Chat-Sitzung zu erhalten." 194 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können Gruppen-Voice-Chat beitreten. HINWEIS: Sie benötigen die Fähigkeit „Gruppen-Chat beitreten“, um Zugang zu dieser Voice-Chat-Sitzung zu erhalten."
195 name="join voice chat" /> 195 name="join voice chat" />
196 <action description="Gruppen-Chat moderieren" 196 <action description="Gruppen-Chat moderieren"
197 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können den Zugang zu und die Teilnahme an Gruppen-Chat- und Voice-Chat-Sitzungen steuern." 197 longdescription="Mitglieder in einer Rolle mit dieser Fähigkeit können den Zugang zu und die Teilnahme an Gruppen-Chat- und Voice-Chat-Sitzungen steuern."
diff --git a/linden/indra/newview/skins/default/xui/de/strings.xml b/linden/indra/newview/skins/default/xui/de/strings.xml
index c0687f3..07f3269 100644
--- a/linden/indra/newview/skins/default/xui/de/strings.xml
+++ b/linden/indra/newview/skins/default/xui/de/strings.xml
@@ -435,9 +435,9 @@
435 </string> 435 </string>
436 <!-- Chat --> 436 <!-- Chat -->
437 <string name="whisper"> 437 <string name="whisper">
438 Flüstert: 438 flüstert:
439 </string> 439 </string>
440 <string name="shout"> 440 <string name="shout">
441 Ruft: 441 ruft:
442 </string> 442 </string>
443</strings> 443</strings>
diff --git a/linden/indra/newview/skins/default/xui/en-us/alerts.xml b/linden/indra/newview/skins/default/xui/en-us/alerts.xml
index 92e2014..23c8e1c 100644
--- a/linden/indra/newview/skins/default/xui/en-us/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/alerts.xml
@@ -541,7 +541,7 @@ Do you wish to proceed?
541 <alert modal="true" name="JoinGroupCannotAfford"> 541 <alert modal="true" name="JoinGroupCannotAfford">
542 <message name="message"> 542 <message name="message">
543 Joining this group costs L$[COST]. 543 Joining this group costs L$[COST].
544You do not have a sufficient balance to join this group. 544You do not have enough L$ to join this group.
545 </message> 545 </message>
546 </alert> 546 </alert>
547 <alert modal="true" name="LandBuyPass"> 547 <alert modal="true" name="LandBuyPass">
@@ -733,7 +733,7 @@ to set its Landing Point.
733 </alert> 733 </alert>
734 <alert modal="true" name="PromptRecipientEmail"> 734 <alert modal="true" name="PromptRecipientEmail">
735 <message name="message"> 735 <message name="message">
736 Please enter the recipient&apos;s email address. 736 Please enter a valid email address for the recipient(s).
737 </message> 737 </message>
738 </alert> 738 </alert>
739 <alert modal="true" name="PromptSelfEmail"> 739 <alert modal="true" name="PromptSelfEmail">
@@ -793,21 +793,13 @@ The outfit folder contains no clothing, body parts, or attachments.
793 You can not wear that item because it has not yet loaded. Please try again in a minute. 793 You can not wear that item because it has not yet loaded. Please try again in a minute.
794 </message> 794 </message>
795 </alert> 795 </alert>
796 <alert modal="true" name="MustHaveAccountToLogInNoLinks">
797 <message name="message">
798 You must have an account to connect to [SECOND_LIFE].
799 </message>
800 <option name="OK">
801 Close
802 </option>
803 </alert>
804 <alert modal="true" name="MustHaveAccountToLogIn"> 796 <alert modal="true" name="MustHaveAccountToLogIn">
805 <message name="message"> 797 <message name="message">
806Oops! Something was left blank. 798Oops! Something was left blank.
807You need to enter both the First and Last name of your avatar. 799You need to enter both the First and Last name of your avatar.
808 800
809You need an account to enter [SECOND_LIFE]. Would you like to create one now? 801You need an account to enter [SECOND_LIFE]. Would you like to create one now?
810</message> 802 </message>
811 <option name="OK"> 803 <option name="OK">
812 Create a new account 804 Create a new account
813 </option> 805 </option>
@@ -1478,7 +1470,29 @@ chat, or interact with the world.
1478 Cancel 1470 Cancel
1479 </option> 1471 </option>
1480 </alert> 1472 </alert>
1481 <alert modal="true" name="InvalidUUID"> 1473 <alert modal="true" name="EjectAvatarNoBan">
1474 <message name="message">
1475 Eject this avatar from your land?
1476 </message>
1477 <option name="Eject">
1478 Eject
1479 </option>
1480 <option name="Cancel">
1481 Cancel
1482 </option>
1483 </alert>
1484 <alert modal="true" name="EjectAvatarFullnameNoBan">
1485 <message name="message">
1486 Eject [AVATAR_NAME] from your land?
1487 </message>
1488 <option name="Eject">
1489 Eject
1490 </option>
1491 <option name="Cancel">
1492 Cancel
1493 </option>
1494 </alert>
1495 <alert modal="true" name="InvalidUUID">
1482 <message name="message"> 1496 <message name="message">
1483 Not a valid UUID. 1497 Not a valid UUID.
1484 </message> 1498 </message>
@@ -1660,12 +1674,12 @@ Expected [VALIDS]
1660 </alert> 1674 </alert>
1661 <alert modal="true" name="InsufficientFundsToUploadFile"> 1675 <alert modal="true" name="InsufficientFundsToUploadFile">
1662 <message name="message"> 1676 <message name="message">
1663 Insufficient L$ to upload file: the price is L$[COST], your balance is L$[BALANCE] 1677 Not enough L$ to upload file: the price is L$[COST], your balance is L$[BALANCE]
1664 </message> 1678 </message>
1665 </alert> 1679 </alert>
1666 <alert modal="true" name="InsufficientFundsToFinishUpload"> 1680 <alert modal="true" name="InsufficientFundsToFinishUpload">
1667 <message name="message"> 1681 <message name="message">
1668 Insufficient L$ to finish uploading [FILE]: the price is L$[COST], your balance is L$[BALANCE] 1682 Not enough L$ to finish uploading [FILE]: the price is L$[COST], your balance is L$[BALANCE]
1669 </message> 1683 </message>
1670 </alert> 1684 </alert>
1671 <alert modal="true" name="CannotUploadReason"> 1685 <alert modal="true" name="CannotUploadReason">
@@ -2652,7 +2666,7 @@ You can change your mind later.
2652 </alert> 2666 </alert>
2653 <alert modal="true" name="NotEnoughCurrency"> 2667 <alert modal="true" name="NotEnoughCurrency">
2654 <message name="message"> 2668 <message name="message">
2655 [NAME] L$ [PRICE] You don&apos;t have enough currency to do that. 2669 [NAME] L$ [PRICE] You don&apos;t have enough L$ to do that.
2656 </message> 2670 </message>
2657 </alert> 2671 </alert>
2658 <alert modal="true" name="GrantedModifyRights"> 2672 <alert modal="true" name="GrantedModifyRights">
@@ -4369,9 +4383,9 @@ http://secondlife.com/corporate/cs.php
4369 4383
4370All reported abuses of the Terms of Service and Community Standards 4384All reported abuses of the Terms of Service and Community Standards
4371are investigated and resolved. You can view the incident 4385are investigated and resolved. You can view the incident
4372resolution on the Police Blotter at: 4386resolution on the Incident Report at:
4373 4387
4374http://secondlife.com/community/blotter.php 4388http://secondlife.com/support/incidentreport.php
4375 </message> 4389 </message>
4376 </alert> 4390 </alert>
4377 <alert modal="true" name="HelpReportAbuseEmailEO"> 4391 <alert modal="true" name="HelpReportAbuseEmailEO">
@@ -4466,7 +4480,7 @@ Entering an accurate description helps us file and process bug reports.
4466 <alert modal="true" name="HelpReportAbuseContainsCopyright"> 4480 <alert modal="true" name="HelpReportAbuseContainsCopyright">
4467 <message name="message"> 4481 <message name="message">
4468 Dear Resident, 4482 Dear Resident,
4469 4483
4470You appear to be reporting intellectual property infringement. Please make sure you are reporting it correctly: 4484You appear to be reporting intellectual property infringement. Please make sure you are reporting it correctly:
4471 4485
4472(1) The Abuse Process. You may submit an abuse report if you believe a Resident is exploiting the Second Life permissions system, for example, by using CopyBot or similar copying tools, to infringe intellectual property rights. The Abuse Team investigates and issues appropriate disciplinary action for behavior that violates the Second Life Community Standards or Terms of Service. However, the Abuse Team does not handle and will not respond to requests to remove content from the Second Life world. 4486(1) The Abuse Process. You may submit an abuse report if you believe a Resident is exploiting the Second Life permissions system, for example, by using CopyBot or similar copying tools, to infringe intellectual property rights. The Abuse Team investigates and issues appropriate disciplinary action for behavior that violates the Second Life Community Standards or Terms of Service. However, the Abuse Team does not handle and will not respond to requests to remove content from the Second Life world.
@@ -4476,8 +4490,9 @@ You appear to be reporting intellectual property infringement. Please make sure
4476If you still wish to continue with the abuse process, please close this window and finish submitting your report. You may need to select the specific category 'CopyBot or Permissions Exploit'. 4490If you still wish to continue with the abuse process, please close this window and finish submitting your report. You may need to select the specific category 'CopyBot or Permissions Exploit'.
4477 4491
4478Thank you, 4492Thank you,
4479 4493
4480Linden Lab</message> 4494Linden Lab
4495 </message>
4481 </alert> 4496 </alert>
4482 <alert modal="true" name="FailedRequirementsCheck"> 4497 <alert modal="true" name="FailedRequirementsCheck">
4483 <message name="message"> 4498 <message name="message">
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_about.xml b/linden/indra/newview/skins/default/xui/en-us/floater_about.xml
index 91e0f00..f4422b2 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_about.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_about.xml
@@ -7,13 +7,14 @@
7 follows="left|top|right|bottom" font="SansSerifSmall" height="168" left="6" 7 follows="left|top|right|bottom" font="SansSerifSmall" height="168" left="6"
8 max_length="65536" mouse_opaque="true" name="credits_editor" width="458" 8 max_length="65536" mouse_opaque="true" name="credits_editor" width="458"
9 word_wrap="true"> 9 word_wrap="true">
10 Second Life is brought to you by Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ and many others. 10 Second Life is brought to you by Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others.
11 11
12 Thank you to the following residents for helping to ensure that this is the best version yet: Aminom Marvin, ava ganache, Balthazar Fouroux, CrystalShard Foo, Davec Horsforth, Drew Dwi, Ellla McMahon, Gellan Glenelg, Harleen Gretzky, istephanija munro, Iustinian Tomsen, JC Glimmer, Joeseph Albanese, kelly young, Latif Khalifa, Lex Neva, McCabe Maxsted, Michi Lumin, moni duettmann, Moon Metty, motor loon, Opensource Obscure, Sky Hye, Soap Clawtooth, velveeta biedermann, zeebster colasanti 12 Thank you to the following residents for helping to ensure that this is the best version yet: afon shepherd, Aimee Trescothick, Alexandrea Fride, Alissa Sabre, Amber DeCuir, Asuka Neely, Auron Forcella, Blue Revolution, Bocan Undercroft, Boroondas Gupte, Brandon Shinobu, Bri Gufler, Buckaroo Mu, Celierra Darling, Christos Atlantis, Coder Kas, Cummere Mayo, dakota schwade, Dirk Talamasca, Dizzy Banjo, Drew Dwi, Duckling Kwak, Ellla McMahon, Erikah Jameson, Erinyse Planer, Eyana Yohkoh, Ezian Ecksol, Faron Karu, Fenoe Lowey, Fox Hwasung, Francisca Biedermann, Gally Young, Gellan Glenelg, Geneko Nemeth, Glenn Rotaru, Hagar Qinan, Harleen Gretzky, Holger Gilruth, hotrodjohnny gears, IAm Zabelin, Inigo Catteneo, Iustinian Tomsen, Jacek Antonell, James Benedek, Jim Kupferberg, Joeseph Albanese, JPT62089 Agnon, Kardargo Adamczyk, Kirstenlee Cinquetti, Latif Khalifa, lea Parnall, Lex Neva, Lillith Anatine, Lilly Zenovka, Lim Catteneo, Lindal Kidd, Mark Rosenbaum, MasterJ Chaplin, McCabe Maxsted, Melvin Starbrook, Meni Kaiousei, Mero Collas, Minakothegothicgeisha Kamachi, Moon Metty, neofilo aabye, Neutron Chesnokov, Nomad Ingwer, norritt Xi, Opensource Obscure, Oracle Weatherwax, Ourasi Ferraris, Pabl0 Roffo, Peyton Aleixandre, Phli Foxchase, Psi Merlin, r2d2 Wunderlich, Regi Yifu, Saijanai Kuhn, Sandor Balczo, Sarkan Dreamscape, Scree Raymaker, Sedona Mills, Selena Beale, Sheet Spotter, Shibari Twine, Silver Key, Simon Kline, SLB Wirefly, Stacy Wombat, Sugarcult Dagger, Tayra Dagostino, Tetsuryu Vlodovic, ThaBiGGDoGG Richez, Timo Gufler, tx Oh, wayfinder wishbringer, Wizzytoe McCullough, Wundur Primbee, Yann Dufaux, Yuu Nakamichi, Aminom Marvin, Andred Qinan, arminasx saiman, caroline apollo, Iskar Ariantho, Jenika Connolly, Maghnus Balogh, Nefertiti Nefarious, RodneyLee Jessop
13 13
14 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion 14 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
15 APR Copyright (C) 2000-2004 The Apache Software Foundation 15 APR Copyright (C) 2000-2004 The Apache Software Foundation
16 cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) 16 cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
17 DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
17 expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. 18 expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
18 FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org). 19 FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
19 GL Copyright (C) 1999-2004 Brian Paul. 20 GL Copyright (C) 1999-2004 Brian Paul.
@@ -32,7 +33,7 @@
32 Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) 33 Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
33 34
34 35
35 We can only see a short distance ahead, but we can see plenty there that needs to be done. --Alan Turing</text_editor> 36 I get by with a little help from my friends. --Richard Starkey</text_editor>
36 37
37 <text_editor bottom_delta="174" embedded_items="false" 38 <text_editor bottom_delta="174" embedded_items="false"
38 follows="left|top|right|bottom" font="SansSerif" height="238" left="6" 39 follows="left|top|right|bottom" font="SansSerif" height="238" left="6"
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml b/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml
index fc1b747..87aea05 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml
@@ -467,7 +467,7 @@ Go to World menu > About Land or select another parcel to show its details.
467 <column name="online_status" width="-1" /> 467 <column name="online_status" width="-1" />
468 <column name="name" dynamicwidth="true" label="Name" /> 468 <column name="name" dynamicwidth="true" label="Name" />
469 <column name="count" label="Count" width="70" /> 469 <column name="count" label="Count" width="70" />
470 <column label="Most Recent" width="160" /> 470 <column name="mostrecent" label="Most Recent" width="160" />
471 </name_list> 471 </name_list>
472 </panel> 472 </panel>
473 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom" 473 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom"
@@ -481,13 +481,17 @@ Go to World menu > About Land or select another parcel to show its details.
481 </text> 481 </text>
482 <check_box bottom="-40" enabled="true" follows="left|top" font="SansSerifSmall" 482 <check_box bottom="-40" enabled="true" follows="left|top" font="SansSerifSmall"
483 height="16" initial_value="false" label="Edit Terrain" left="14" 483 height="16" initial_value="false" label="Edit Terrain" left="14"
484 mouse_opaque="true" name="edit land check" radio_style="false" width="268" /> 484 mouse_opaque="true" name="edit land check" radio_style="false"
485 tool_tip="If checked, anyone can terraform your land. It is best to leave this unchecked, as you can always edit your own land."
486 width="268" />
485 <check_box bottom="-60" enabled="true" follows="left|top" font="SansSerifSmall" 487 <check_box bottom="-60" enabled="true" follows="left|top" font="SansSerifSmall"
486 height="16" initial_value="false" label="Create Landmarks" left="14" 488 height="16" initial_value="false" label="Create Landmarks" left="14"
487 mouse_opaque="true" name="check landmark" radio_style="false" width="268" /> 489 mouse_opaque="true" name="check landmark" radio_style="false" width="268" />
488 <check_box bottom="-80" enabled="true" follows="left|top" font="SansSerifSmall" 490 <check_box bottom="-80" enabled="true" follows="left|top" font="SansSerifSmall"
489 height="16" initial_value="false" label="Fly" left="14" mouse_opaque="true" 491 height="16" initial_value="false" label="Fly" left="14" mouse_opaque="true"
490 name="check fly" radio_style="false" width="268" /> 492 name="check fly" radio_style="false"
493 tool_tip="If checked, Residents can fly on your land. If unchecked, they can only fly into and over your land."
494 width="268" />
491 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 495 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
492 bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top" 496 bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top"
493 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="178" 497 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="178"
@@ -538,11 +542,13 @@ Go to World menu > About Land or select another parcel to show its details.
538 </text> 542 </text>
539 <check_box bottom="-120" enabled="true" follows="left|top" font="SansSerifSmall" 543 <check_box bottom="-120" enabled="true" follows="left|top" font="SansSerifSmall"
540 height="16" initial_value="false" label="Safe (no damage)" left="14" 544 height="16" initial_value="false" label="Safe (no damage)" left="14"
541 mouse_opaque="true" name="check safe" radio_style="false" width="268" /> 545 mouse_opaque="true" name="check safe" radio_style="false"
546 tool_tip="If checked, sets the land to Safe, disabling damage combat. If cleared, damage combat is enabled."
547 width="268" />
542 <check_box bottom="-120" enabled="true" follows="left|top" font="SansSerifSmall" 548 <check_box bottom="-120" enabled="true" follows="left|top" font="SansSerifSmall"
543 height="16" initial_value="false" label="Restrict Pushing" left="178" 549 height="16" initial_value="false" label="No Pushing" left="178"
544 mouse_opaque="true" name="PushRestrictCheck" radio_style="false" 550 mouse_opaque="true" name="PushRestrictCheck" radio_style="false"
545 tool_tip="llPushObject will only work through parcel owner scripts or on scripts where the pushee is the script owner." 551 tool_tip="Prevents scripts from pushing. Checking this option may be useful for preventing disruptive behavior on your land."
546 width="119" /> 552 width="119" />
547 <check_box bottom="-140" enabled="true" follows="left|top" font="SansSerifSmall" 553 <check_box bottom="-140" enabled="true" follows="left|top" font="SansSerifSmall"
548 height="16" initial_value="false" 554 height="16" initial_value="false"
@@ -622,7 +628,7 @@ Go to World menu > About Land or select another parcel to show its details.
622 <button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall" 628 <button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall"
623 halign="center" height="16" label="Set" label_selected="Set" left="236" 629 halign="center" height="16" label="Set" label_selected="Set" left="236"
624 mouse_opaque="true" name="Set" scale_image="true" 630 mouse_opaque="true" name="Set" scale_image="true"
625 tool_tip="Set the landing point to your avatar&apos;s location. It must be inside this land parcel." 631 tool_tip="Sets the landing point where visitors arrive. Sets to your avatar&apos;s location inside this parcel."
626 width="50" /> 632 width="50" />
627 <button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall" 633 <button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall"
628 halign="center" height="16" label="Clear" label_selected="Clear" left="291" 634 halign="center" height="16" label="Clear" label_selected="Clear" left="291"
@@ -650,10 +656,10 @@ Go to World menu > About Land or select another parcel to show its details.
650 </combo_item> 656 </combo_item>
651 </combo_box> 657 </combo_box>
652 <string name="push_restrict_text"> 658 <string name="push_restrict_text">
653 Restrict Pushing 659 No Pushing
654 </string> 660 </string>
655 <string name="push_restrict_region_text"> 661 <string name="push_restrict_region_text">
656 Restrict Pushing (Region Override) 662 No Pushing (Region Override)
657 </string> 663 </string>
658 </panel> 664 </panel>
659 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom" 665 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom"
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_animation_preview.xml b/linden/indra/newview/skins/default/xui/en-us/floater_animation_preview.xml
index f925abd..4038f4f 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_animation_preview.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_animation_preview.xml
@@ -182,8 +182,8 @@
182 name="playback_slider" right="290" show_text="false" /> 182 name="playback_slider" right="290" show_text="false" />
183 <text bottom="250" follows="top|left" left="10" name="bad_animation_text"> 183 <text bottom="250" follows="top|left" left="10" name="bad_animation_text">
184 Unable to read animation file. 184 Unable to read animation file.
185 185
186 We recommend BVH files exported from Poser 4. 186We recommend BVH files exported from Poser 4.
187 </text> 187 </text>
188 <button bottom="10" follows="bottom|right" height="20" label="Cancel" name="cancel_btn" 188 <button bottom="10" follows="bottom|right" height="20" label="Cancel" name="cancel_btn"
189 right="290" width="123" /> 189 right="290" width="123" />
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_beacons.xml b/linden/indra/newview/skins/default/xui/en-us/floater_beacons.xml
new file mode 100644
index 0000000..0fb1aaf
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_beacons.xml
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="false"
3 width="250" height="225"
4 name="beacons" title="Beacons"
5 rect_control="FloaterBeaconsRect" control_name="BeaconAlwaysOn">
6 <panel bottom="10" follows="left|top|right|bottom" left="10" width="230" height="200" name="beacons_panel">
7 <check_box bottom_delta="-33" follows="left|top" left="0" name="touch_only" label="Scripted Objects with Touch Only" control_name="scripttouchbeacon" />
8 <check_box bottom_delta="-20" follows="left|top" left="0" name="scripted" label="Scripted Objects" control_name="scriptsbeacon" />
9 <check_box bottom_delta="-20" follows="left|top" left="0" name="physical" label="Physical Objects" control_name="physicalbeacon" />
10 <check_box bottom_delta="-20" follows="left|top" left="0" name="sounds" label="Sound Sources" control_name="soundsbeacon" />
11 <check_box bottom_delta="-20" follows="left|top" left="0" name="particles" label="Particle Sources" control_name="particlesbeacon" />
12 <check_box bottom_delta="-20" follows="left|top" left="0" name="highlights" label="Render Highlights" control_name="renderhighlights" />
13 <check_box bottom_delta="-20" follows="left|top" left="0" name="beacons" label="Render Beacons" control_name="renderbeacons" />
14 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
15 bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top"
16 font="SansSerifSmall" h_pad="0" halign="left" height="12" left="5"
17 mouse_opaque="true" name="beacon_width_label" v_pad="0" width="128">
18 Beacon Width:
19 </text>
20 <slider bottom_delta="-20" can_edit_text="false" enabled="true" width="185" height="16" mouse_opaque="true"
21 decimal_digits="0" increment="1" initial_val="1" left="30" min_val="1.0" max_val="16.0"
22 name="beacon_width" show_text="true" value="1" control_name="DebugBeaconLineWidth"/>
23 </panel>
24</floater>
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_chat_history.xml b/linden/indra/newview/skins/default/xui/en-us/floater_chat_history.xml
index a12cb2b..d32832c 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_chat_history.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_chat_history.xml
@@ -74,6 +74,9 @@
74 <flyout_button_item value="say" name="say_item"> 74 <flyout_button_item value="say" name="say_item">
75 Say 75 Say
76 </flyout_button_item> 76 </flyout_button_item>
77 <flyout_button_item value="whisper" name="whisper_item">
78 Whisper
79 </flyout_button_item>
77 </flyout_button> 80 </flyout_button>
78 </panel> 81 </panel>
79 </layout_panel> 82 </layout_panel>
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml
index f59017e..af60c11 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml
@@ -49,7 +49,7 @@
49 <button bottom_delta="0" enabled="false" follows="left|top" halign="right" height="20" 49 <button bottom_delta="0" enabled="false" follows="left|top" halign="right" height="20"
50 image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" 50 image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left"
51 label="Join Call" left_delta="85" name="start_call_btn" pad_right="12" 51 label="Join Call" left_delta="85" name="start_call_btn" pad_right="12"
52 width="92" /> 52 width="80" />
53 <button bottom_delta="0" follows="left|top" halign="right" height="20" 53 <button bottom_delta="0" follows="left|top" halign="right" height="20"
54 image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" 54 image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left"
55 label="End Call" left_delta="0" name="end_call_btn" pad_right="12" 55 label="End Call" left_delta="0" name="end_call_btn" pad_right="12"
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_lagmeter.xml b/linden/indra/newview/skins/default/xui/en-us/floater_lagmeter.xml
index 08c6b53..71c0e60 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_lagmeter.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_lagmeter.xml
@@ -57,7 +57,7 @@
57 </text> 57 </text>
58 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 58 <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
59 bottom="-120" drop_shadow_visible="true" follows="left|top" 59 bottom="-120" drop_shadow_visible="true" follows="left|top"
60 font="SansSerif" h_pad="0" halign="left" height="16" left="85" 60 font="SansSerif" h_pad="0" halign="left" height="16" left="110"
61 mouse_opaque="true" name="server_text" right="-10" v_pad="0"> 61 mouse_opaque="true" name="server_text" right="-10" v_pad="0">
62 Normal 62 Normal
63 </text> 63 </text>
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
index 4758116..7826f13 100644
--- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
@@ -292,12 +292,13 @@
292 </menu_item_check> 292 </menu_item_check>
293 <menu_item_check name="Instant Message" label="Communicate" 293 <menu_item_check name="Instant Message" label="Communicate"
294 shortcut="control|T"> 294 shortcut="control|T">
295 <on_click function="ShowFloater" userdata="im" /> 295 <on_click function="View.Communicate"/>
296 <on_check function="FloaterVisible" userdata="im" /> 296 <on_check function="FloaterVisible" userdata="communicate" />
297 </menu_item_check> 297 </menu_item_check>
298 <menu_item_call name="Inventory" label="Inventory" 298 <menu_item_call name="Inventory" label="Inventory"
299 shortcut="control|I"> 299 shortcut="control|I">
300 <on_click function="ShowFloater" userdata="inventory" /> 300 <on_click function="ShowFloater" userdata="inventory" />
301 <on_check function="FloaterVisible" userdata="inventory" />
301 </menu_item_call> 302 </menu_item_call>
302 <menu_item_check name="Active Speakers" label="Active Speakers"> 303 <menu_item_check name="Active Speakers" label="Active Speakers">
303 <on_click function="ShowFloater" userdata="active speakers" /> 304 <on_click function="ShowFloater" userdata="active speakers" />
@@ -370,80 +371,16 @@
370 <on_click function="View.HighlightTransparent" userdata="" /> 371 <on_click function="View.HighlightTransparent" userdata="" />
371 <on_check function="View.CheckHighlightTransparent" /> 372 <on_check function="View.CheckHighlightTransparent" />
372 </menu_item_check> 373 </menu_item_check>
373 <menu_item_check name="Beacons Always On" label="Show Beacons"> 374 <menu_item_check name="beacons" label="Beacons"
374 <on_click function="ToggleControl" userdata="BeaconsEnabled" /> 375 shortcut="control|alt|shift|N">
375 <on_check control="BeaconsEnabled" /> 376 <on_click function="ShowFloater" userdata="beacons" />
377 <on_check function="FloaterVisible" userdata="beacons" />
378 </menu_item_check>
379 <menu_item_check name="Hide Particles" label="Hide Particles"
380 shortcut="control|alt|shift|=">
381 <on_click function="View.ToggleRenderType" userdata="hideparticles" />
382 <on_check function="View.CheckRenderType" userdata="hideparticles" />
376 </menu_item_check> 383 </menu_item_check>
377 <menu name="Beacons" create_jump_keys="true" label="Beacons"
378 opaque="true" tear_off="true">
379 <menu_item_check name="Scripted Objects With Touch Only"
380 label="Scripted Objects with Touch Only">
381 <on_click function="View.ToggleBeacon"
382 userdata="scripttouchbeacon" />
383 <on_check function="View.CheckBeaconEnabled"
384 userdata="scripttouchbeacon" />
385 </menu_item_check>
386 <menu_item_check name="Scripted Objects" label="Scripted Objects">
387 <on_click function="View.ToggleBeacon"
388 userdata="scriptsbeacon" />
389 <on_check function="View.CheckBeaconEnabled"
390 userdata="scriptsbeacon" />
391 </menu_item_check>
392 <menu_item_check name="Physical Objects" label="Physical Objects">
393 <on_click function="View.ToggleBeacon"
394 userdata="physicalbeacon" />
395 <on_check function="View.CheckBeaconEnabled"
396 userdata="physicalbeacon" />
397 </menu_item_check>
398 <menu_item_check name="Sound Sources" label="Sound Sources">
399 <on_click function="View.ToggleBeacon"
400 userdata="soundsbeacon" />
401 <on_check function="View.CheckBeaconEnabled"
402 userdata="soundsbeacon" />
403 </menu_item_check>
404 <menu_item_check name="Particle Sources" label="Particle Sources">
405 <on_click function="View.ToggleBeacon"
406 userdata="particlesbeacon" />
407 <on_check function="View.CheckBeaconEnabled"
408 userdata="particlesbeacon" />
409 </menu_item_check>
410 <menu_item_separator />
411 <menu_item_check name="Render Highlights" label="Render Highlights">
412 <on_click function="View.ToggleBeacon"
413 userdata="renderhighlights" />
414 <on_check function="View.CheckBeaconEnabled"
415 userdata="renderhighlights" />
416 </menu_item_check>
417 <menu_item_check name="Render Beacons" label="Render Beacons">
418 <on_click function="View.ToggleBeacon"
419 userdata="renderbeacons" />
420 <on_check function="View.CheckBeaconEnabled"
421 userdata="renderbeacons" />
422 </menu_item_check>
423 <menu_item_separator />
424 <menu_item_check name="Hide Particles" label="Hide Particles">
425 <on_click function="View.ToggleRenderType"
426 userdata="hideparticles" />
427 <on_check function="View.CheckRenderType"
428 userdata="hideparticles" />
429 </menu_item_check>
430 <menu_item_separator />
431 <menu name="Beacon Width" create_jump_keys="true"
432 label="Beacon Width" opaque="true" tear_off="true">
433 <menu_item_call name="Beacon Width 1" label="1">
434 <on_click function="View.BeaconWidth" userdata="1" />
435 </menu_item_call>
436 <menu_item_call name="Beacon Width 4" label="4">
437 <on_click function="View.BeaconWidth" userdata="4" />
438 </menu_item_call>
439 <menu_item_call name="Beacon Width 16" label="16">
440 <on_click function="View.BeaconWidth" userdata="16" />
441 </menu_item_call>
442 <menu_item_call name="Beacon Width 32" label="32">
443 <on_click function="View.BeaconWidth" userdata="32" />
444 </menu_item_call>
445 </menu>
446 </menu>
447 <menu_item_separator /> 384 <menu_item_separator />
448 <menu name="Zoom Level" create_jump_keys="true" 385 <menu name="Zoom Level" create_jump_keys="true"
449 label="Zoom Level" opaque="true" tear_off="true"> 386 label="Zoom Level" opaque="true" tear_off="true">
@@ -520,12 +457,12 @@
520 <menu_item_separator /> 457 <menu_item_separator />
521 <menu_item_call name="Account History..." 458 <menu_item_call name="Account History..."
522 label="Account History..."> 459 label="Account History...">
523 <on_click function="PromptShowURL" 460 <on_click function="PromptShowURL" name="AccountHistory_url"
524 userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php" /> 461 userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php" />
525 </menu_item_call> 462 </menu_item_call>
526 <menu_item_call name="Manage My Account..." 463 <menu_item_call name="Manage My Account..."
527 label="Manage My Account..."> 464 label="Manage My Account...">
528 <on_click function="PromptShowURL" 465 <on_click function="PromptShowURL" name="ManageMyAccount_url"
529 userdata="WebLaunchJoinNow,http://secondlife.com/account/" /> 466 userdata="WebLaunchJoinNow,http://secondlife.com/account/" />
530 </menu_item_call> 467 </menu_item_call>
531 <menu_item_call name="Buy and Sell L$..." label="Buy L$..."> 468 <menu_item_call name="Buy and Sell L$..." label="Buy L$...">
@@ -799,7 +736,7 @@
799 </menu_item_call> 736 </menu_item_call>
800 <menu_item_call name="Scripting Portal..." 737 <menu_item_call name="Scripting Portal..."
801 label="Scripting Portal..."> 738 label="Scripting Portal...">
802 <on_click function="PromptShowURL" 739 <on_click function="PromptShowURL" name="ScriptingPortal_url"
803 userdata="WebLaunchLSLWiki,http://wiki.secondlife.com/wiki/LSL_Portal" /> 740 userdata="WebLaunchLSLWiki,http://wiki.secondlife.com/wiki/LSL_Portal" />
804 </menu_item_call> 741 </menu_item_call>
805 <menu_item_separator /> 742 <menu_item_separator />
@@ -1105,14 +1042,6 @@
1105 <on_check function="Advanced.CheckFeature" 1042 <on_check function="Advanced.CheckFeature"
1106 userdata="fog" /> 1043 userdata="fog" />
1107 </menu_item_check> 1044 </menu_item_check>
1108 <menu_item_check name="Palletized Textures"
1109 label="Palletized Textures"
1110 shortcut="alt|shift|F7">
1111 <on_click function="Advanced.ToggleFeature"
1112 userdata="palette" />
1113 <on_check function="Advanced.CheckFeature"
1114 userdata="palette" />
1115 </menu_item_check>
1116 <menu_item_check name="Test FRInfo" label="Test FRInfo" 1045 <menu_item_check name="Test FRInfo" label="Test FRInfo"
1117 shortcut="alt|shift|F8"> 1046 shortcut="alt|shift|F8">
1118 <on_click function="Advanced.ToggleFeature" 1047 <on_click function="Advanced.ToggleFeature"
@@ -1244,19 +1173,6 @@
1244 <on_check function="Advanced.CheckInfoDisplay" 1173 <on_check function="Advanced.CheckInfoDisplay"
1245 userdata="glow" /> 1174 userdata="glow" />
1246 </menu_item_check> 1175 </menu_item_check>
1247 <menu_item_check name="Show Depth Buffer"
1248 label="Show Depth Buffer">
1249 <on_click function="ToggleControl"
1250 userdata="ShowDepthBuffer" />
1251 <on_check control="ShowDepthBuffer" />
1252 </menu_item_check>
1253 <menu_item_check name="Show Select Buffer"
1254 label="Show Select Buffer">
1255 <on_click function="Advanced.ToggleSelectBuffer"
1256 userdata="" />
1257 <on_check function="Advanced.CheckSelectBuffer"
1258 userdata="" />
1259 </menu_item_check>
1260 <menu_item_check name="Vectorize Perf Test" 1176 <menu_item_check name="Vectorize Perf Test"
1261 label="Vectorize Perf Test"> 1177 label="Vectorize Perf Test">
1262 <on_click function="ToggleControl" 1178 <on_click function="ToggleControl"
diff --git a/linden/indra/newview/skins/default/xui/en-us/notify.xml b/linden/indra/newview/skins/default/xui/en-us/notify.xml
index d207a74..99fe75a 100644
--- a/linden/indra/newview/skins/default/xui/en-us/notify.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/notify.xml
@@ -374,7 +374,7 @@ You cannot fly here.
374 </notify> 374 </notify>
375 <notify name="PushRestricted" tip="false" unique="true"> 375 <notify name="PushRestricted" tip="false" unique="true">
376 <message name="message"> 376 <message name="message">
377 This land is &apos;llPushObject Restricted&apos;. 377 This land is &apos;No Pushing&apos;.
378You cannot push others here unless you own the land. 378You cannot push others here unless you own the land.
379 </message> 379 </message>
380 </notify> 380 </notify>
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_audio_device.xml b/linden/indra/newview/skins/default/xui/en-us/panel_audio_device.xml
index 13f0e16..4f20e9d 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_audio_device.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_audio_device.xml
@@ -42,7 +42,7 @@
42 Adjust the slider to control how loud you sound to other Residents. To test the input level, simply speak into your microphone. 42 Adjust the slider to control how loud you sound to other Residents. To test the input level, simply speak into your microphone.
43 </text_editor> 43 </text_editor>
44 <volume_slider bottom_delta="-18" enabled="true" follows="left|top" height="17" 44 <volume_slider bottom_delta="-18" enabled="true" follows="left|top" height="17"
45 increment="0.05" initial_val="0.5" left_delta="5" max_val="1" min_val="0" 45 increment="0.05" initial_val="1.0" left_delta="5" max_val="2" min_val="0"
46 mouse_opaque="true" name="mic_volume_slider" 46 mouse_opaque="true" name="mic_volume_slider"
47 tool_tip="Change the volume using this slider" width="90" /> 47 tool_tip="Change the volume using this slider" width="90" />
48 <text bottom_delta="-4" follows="left|top" height="20" left_delta="95" 48 <text bottom_delta="-4" follows="left|top" height="20" left_delta="95"
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_chat_bar.xml b/linden/indra/newview/skins/default/xui/en-us/panel_chat_bar.xml
index 95604ff..67bfd0c 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_chat_bar.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_chat_bar.xml
@@ -17,15 +17,18 @@
17 <flyout_button bottom="-23" follows="right|bottom" height="20" label="Say" left_delta="110" 17 <flyout_button bottom="-23" follows="right|bottom" height="20" label="Say" left_delta="110"
18 list_position="above" mouse_opaque="true" name="Say" tool_tip="(Enter)" 18 list_position="above" mouse_opaque="true" name="Say" tool_tip="(Enter)"
19 width="80"> 19 width="80">
20 <flyout_button_item value="shout" name="shout_item">
21 Shout
22 </flyout_button_item>
20 <flyout_button_item value="say" name="say_item"> 23 <flyout_button_item value="say" name="say_item">
21 Say 24 Say
22 </flyout_button_item> 25 </flyout_button_item>
23 <flyout_button_item value="shout" name="shout_item"> 26 <flyout_button_item value="whisper" name="whisper_item">
24 Shout 27 Whisper
25 </flyout_button_item> 28 </flyout_button_item>
26 </flyout_button> 29 </flyout_button>
27 <combo_box allow_text_entry="false" bottom="-23" follows="right|bottom" height="20" 30 <combo_box allow_text_entry="false" bottom="-23" follows="right|bottom" height="20"
28 label="Gestures" left_delta="85" max_chars="20" name="Gesture" width="90"> 31 label="Gestures" left_delta="85" max_chars="20" name="Gesture" width="90">
29 </combo_box> 32 </combo_box>
30 <string name="gesture_label">Gestures</string> 33 <string name="gesture_label">Gestures</string>
31</panel> 34</panel>
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_group_land_money.xml b/linden/indra/newview/skins/default/xui/en-us/panel_group_land_money.xml
index f6b8838..f4c074f 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_group_land_money.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_group_land_money.xml
@@ -3,11 +3,7 @@
3 left="1" mouse_opaque="true" name="land_money_tab" select="false" 3 left="1" mouse_opaque="true" name="land_money_tab" select="false"
4 width="418"> 4 width="418">
5 <string name="help_text"> 5 <string name="help_text">
6 Parcels owned by the group are listed along with 6 Parcels owned by the group are listed along with contribution details. A warning appears until the Total Land in Use is less than or equal to the Total Contribution. The &apos;Details&apos; and &apos;Sales&apos; tabs provide information about the group&apos;s finances.
7contribution details. A warning appears until the
8Total Land in Use is less than or equal to the Total
9Contribution. The Plannning, Details and Sales tabs
10provide information about the group&apos;s finances.
11 </string> 7 </string>
12 <button bottom="-24" font="SansSerif" halign="center" height="16" label="?" left="391" 8 <button bottom="-24" font="SansSerif" halign="center" height="16" label="?" left="391"
13 name="help_button" width="20" /> 9 name="help_button" width="20" />
@@ -114,6 +110,7 @@ provide information about the group&apos;s finances.
114 </text> 110 </text>
115 <tab_container border="false" bottom_delta="-189" height="180" left="6" mouse_opaque="false" 111 <tab_container border="false" bottom_delta="-189" height="180" left="6" mouse_opaque="false"
116 name="group_money_tab_container" tab_position="top" width="406"> 112 name="group_money_tab_container" tab_position="top" width="406">
113 <!-- Comment out for [DEV-11287]
117 <panel border="true" bottom_delta="-260" follows="left|top|right|bottom" height="255" 114 <panel border="true" bottom_delta="-260" follows="left|top|right|bottom" height="255"
118 label="Planning" left="1" mouse_opaque="true" 115 label="Planning" left="1" mouse_opaque="true"
119 name="group_money_planning_tab" width="398"> 116 name="group_money_planning_tab" width="398">
@@ -125,6 +122,7 @@ provide information about the group&apos;s finances.
125 Computing... 122 Computing...
126 </text_editor> 123 </text_editor>
127 </panel> 124 </panel>
125 -->
128 <panel border="true" bottom_delta="-250" follows="left|top|right|bottom" height="250" 126 <panel border="true" bottom_delta="-250" follows="left|top|right|bottom" height="250"
129 label="Details" left="1" mouse_opaque="true" name="group_money_details_tab" 127 label="Details" left="1" mouse_opaque="true" name="group_money_details_tab"
130 width="398"> 128 width="398">
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml
index b2bb65f..24753d1 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_chat.xml
@@ -8,9 +8,9 @@
8 mouse_opaque="false" name="text_box" v_pad="0" width="128"> 8 mouse_opaque="false" name="text_box" v_pad="0" width="128">
9 Chat Font Size: 9 Chat Font Size:
10 </text> 10 </text>
11 <radio_group bottom="-40" control_name="ChatFontSize" draw_border="true" enabled="true" 11 <radio_group bottom="-40" draw_border="true" enabled="true"
12 follows="left|top" height="30" left="148" mouse_opaque="true" 12 follows="left|top" height="30" left="148" mouse_opaque="true"
13 name="chat font size" width="331"> 13 name="chat_font_size" width="331">
14 <radio_item type="string" length="1" bottom="-24" enabled="true" height="16" left="0" mouse_opaque="true" 14 <radio_item type="string" length="1" bottom="-24" enabled="true" height="16" left="0" mouse_opaque="true"
15 name="radio" width="98"> 15 name="radio" width="98">
16 Small 16 Small
@@ -39,12 +39,12 @@
39 enabled="true" follows="left|top" height="56" label="Others" left_delta="48" 39 enabled="true" follows="left|top" height="56" label="Others" left_delta="48"
40 mouse_opaque="true" name="agent" width="44" /> 40 mouse_opaque="true" name="agent" width="44" />
41 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-108" 41 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-108"
42 can_apply_immediately="true" color="0.6 0.6 1 1" control_name="IMChatColor" 42 can_apply_immediately="true" color="0.6 0.6 1 1"
43 enabled="true" follows="left|top" height="56" label="IM" left_delta="48" 43 enabled="true" follows="left|top" height="56" label="IM" left_delta="48"
44 mouse_opaque="true" name="im" width="44" /> 44 mouse_opaque="true" name="im" width="44" />
45 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-108" 45 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-108"
46 can_apply_immediately="true" color="0.8 1 1 1" 46 can_apply_immediately="true" color="0.8 1 1 1"
47 control_name="SystemChatColor" enabled="true" follows="left|top" 47 enabled="true" follows="left|top"
48 height="56" label="System" left_delta="48" mouse_opaque="true" 48 height="56" label="System" left_delta="48" mouse_opaque="true"
49 name="system" width="44" /> 49 name="system" width="44" />
50 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-108" 50 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-108"
@@ -59,17 +59,17 @@
59 name="objects" width="44" /> 59 name="objects" width="44" />
60 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-165" 60 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-165"
61 can_apply_immediately="true" color="0.7 0.9 0.7 1" 61 can_apply_immediately="true" color="0.7 0.9 0.7 1"
62 control_name="llOwnerSayChatColor" enabled="true" follows="left|top" 62 enabled="true" follows="left|top"
63 height="56" label="Owner" left_delta="48" mouse_opaque="true" name="owner" 63 height="56" label="Owner" left_delta="48" mouse_opaque="true" name="owner"
64 width="44" /> 64 width="44" />
65 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-165" 65 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-165"
66 can_apply_immediately="true" color="0 0 0 1" 66 can_apply_immediately="true" color="0 0 0 1"
67 control_name="BackgroundChatColor" enabled="true" follows="left|top" 67 enabled="true" follows="left|top"
68 height="56" label="Bubble" left_delta="48" mouse_opaque="true" 68 height="56" label="Bubble" left_delta="48" mouse_opaque="true"
69 name="background" width="44" /> 69 name="background" width="44" />
70 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-165" 70 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-165"
71 can_apply_immediately="true" color="0.6 0.6 1 1" 71 can_apply_immediately="true" color="0.6 0.6 1 1"
72 control_name="HTMLLinkColor" enabled="true" follows="left|top" height="56" 72 enabled="true" follows="left|top" height="56"
73 label="URLs" left_delta="48" mouse_opaque="true" name="links" width="44" /> 73 label="URLs" left_delta="48" mouse_opaque="true" name="links" width="44" />
74 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 74 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
75 bottom="-185" drop_shadow_visible="true" enabled="true" follows="left|top" 75 bottom="-185" drop_shadow_visible="true" enabled="true" follows="left|top"
@@ -100,7 +100,7 @@
100 width="80"> 100 width="80">
101 (seconds) 101 (seconds)
102 </text> 102 </text>
103 <spinner bottom_delta="-6" control_name="ConsoleMaxLines" decimal_digits="0" 103 <spinner bottom_delta="-6" decimal_digits="0"
104 enabled="true" follows="left|top" height="16" increment="1" 104 enabled="true" follows="left|top" height="16" increment="1"
105 initial_val="10" left="340" max_val="50" min_val="1" mouse_opaque="true" 105 initial_val="10" left="340" max_val="50" min_val="1" mouse_opaque="true"
106 name="max_chat_count" width="60" /> 106 name="max_chat_count" width="60" />
@@ -127,20 +127,20 @@
127 mouse_opaque="false" name="text_box6" v_pad="0" width="135"> 127 mouse_opaque="false" name="text_box6" v_pad="0" width="135">
128 Chat Options: 128 Chat Options:
129 </text> 129 </text>
130 <check_box bottom_delta="-10" control_name="CloseChatOnReturn" enabled="true" 130 <check_box bottom_delta="-10" enabled="true"
131 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 131 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
132 label="Close chat bar after hitting return" left="148" mouse_opaque="true" 132 label="Close chat bar after hitting return" left="148" mouse_opaque="true"
133 name="close_chat_on_return_check" radio_style="false" width="237" /> 133 name="close_chat_on_return_check" radio_style="false" width="237" />
134 <check_box bottom_delta="-20" control_name="ArrowKeysMoveAvatar" enabled="true" 134 <check_box bottom_delta="-20" enabled="true"
135 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 135 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
136 label="Arrow keys always move avatar when chatting" left="148" 136 label="Arrow keys always move avatar when chatting" left="148"
137 mouse_opaque="true" name="arrow_keys_move_avatar_check" radio_style="false" 137 mouse_opaque="true" name="arrow_keys_move_avatar_check" radio_style="false"
138 width="237" /> 138 width="237" />
139 <check_box bottom_delta="-20" control_name="ChatShowTimestamps" enabled="true" 139 <check_box bottom_delta="-20" enabled="true"
140 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 140 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
141 label="Show timestamps in Local Chat" left="148" mouse_opaque="true" 141 label="Show timestamps in Local Chat" left="148" mouse_opaque="true"
142 name="show_timestamps_check" radio_style="false" width="237" /> 142 name="show_timestamps_check" radio_style="false" width="237" />
143 <check_box bottom_delta="-20" control_name="PlayTypingAnim" enabled="true" 143 <check_box bottom_delta="-20" enabled="true"
144 follows="left|top" font="SansSerifSmall" height="16" initial_value="true" 144 follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
145 label="Play typing animation when chatting" left="148" mouse_opaque="true" 145 label="Play typing animation when chatting" left="148" mouse_opaque="true"
146 name="play_typing_animation" radio_style="false" width="237" /> 146 name="play_typing_animation" radio_style="false" width="237" />
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml
index 7bd966a..6c8ffdb 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml
@@ -2,20 +2,21 @@
2<panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" 2<panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom"
3 height="408" label="General" left="102" mouse_opaque="true" 3 height="408" label="General" left="102" mouse_opaque="true"
4 name="general_panel" width="517"> 4 name="general_panel" width="517">
5 <combo_box allow_text_entry="true" bottom="-24" enabled="true" follows="left|bottom" 5 <radio_group bottom="-45" draw_border="false" follows="left|bottom" height="40" left="151"
6 height="16" left="155" max_chars="128" mouse_opaque="true" 6 name="default_start_location" width="220">
7 name="location_combobox" width="146"> 7 <radio_item bottom="-20" height="20" left="0" name="MyHome" width="50"
8 <combo_item name="MyHome" value="My Home"> 8 tool_tip="Log into my home location by default.">
9 My Home 9 My Home
10 </combo_item> 10 </radio_item>
11 <combo_item name="MyLastLocation" value="My Last Location"> 11 <radio_item bottom="-20" height="20" left="100" name="MyLastLocation" width="50"
12 My Last Location 12 tool_tip="Log into my last location by default.">
13 </combo_item> 13 My Last Location
14 </combo_box> 14 </radio_item>
15 <check_box bottom="-44" control_name="ShowStartLocation" enabled="true" follows="left|top" 15 </radio_group>
16 font="SansSerifSmall" height="16" initial_value="true" 16 <check_box bottom="-44" enabled="true" follows="left|top"
17 label="Show Start Location on Login Screen" left="151" mouse_opaque="true" 17 font="SansSerifSmall" height="16" initial_value="true"
18 name="show_location_checkbox" radio_style="false" width="256" /> 18 label="Show Start Location on Login Screen" left="151" mouse_opaque="true"
19 name="show_location_checkbox" radio_style="false" width="256" />
19 <combo_box bottom_delta="-25" follows="left|top" height="18" left="155" 20 <combo_box bottom_delta="-25" follows="left|top" height="18" left="155"
20 mouse_opaque="true" name="fade_out_combobox" width="146"> 21 mouse_opaque="true" name="fade_out_combobox" width="146">
21 <combo_item name="Never" value="Never"> 22 <combo_item name="Never" value="Never">
@@ -28,11 +29,11 @@
28 Always 29 Always
29 </combo_item> 30 </combo_item>
30 </combo_box> 31 </combo_box>
31 <check_box bottom_delta="-25" control_name="SmallAvatarNames" follows="left|top" 32 <check_box bottom_delta="-25" follows="left|top"
32 font="SansSerifSmall" height="16" initial_value="true" 33 font="SansSerifSmall" height="16" initial_value="true"
33 label="Small Avatar Names" left="151" name="small_avatar_names_checkbox" 34 label="Small Avatar Names" left="151" name="small_avatar_names_checkbox"
34 width="200" /> 35 width="200" />
35 <check_box bottom_delta="-18" control_name="RenderNameHideSelf" follows="left|top" 36 <check_box bottom_delta="-18" follows="left|top"
36 font="SansSerifSmall" height="16" initial_value="false" 37 font="SansSerifSmall" height="16" initial_value="false"
37 label="Hide My Name On My Screen" left="151" name="show_my_name_checkbox" 38 label="Hide My Name On My Screen" left="151" name="show_my_name_checkbox"
38 width="200" /> 39 width="200" />
@@ -41,16 +42,16 @@
41 width="394"> 42 width="394">
42 Group Titles: 43 Group Titles:
43 </text> 44 </text>
44 <check_box bottom_delta="0" control_name="RenderHideGroupTitleAll" follows="left|top" 45 <check_box bottom_delta="0" follows="left|top"
45 font="SansSerifSmall" height="16" initial_value="false" 46 font="SansSerifSmall" height="16" initial_value="false"
46 label="Hide All Group Titles" left="151" mouse_opaque="true" 47 label="Hide All Group Titles" left="151" mouse_opaque="true"
47 name="show_all_title_checkbox" radio_style="false" width="256" /> 48 name="show_all_title_checkbox" radio_style="false" width="256" />
48 <check_box bottom_delta="-18" control_name="RenderHideGroupTitle" follows="left|top" 49 <check_box bottom_delta="-18" follows="left|top"
49 font="SansSerifSmall" height="16" initial_value="false" 50 font="SansSerifSmall" height="16" initial_value="false"
50 label="Hide My Group Title" left="151" name="show_my_title_checkbox" 51 label="Hide My Group Title" left="151" name="show_my_title_checkbox"
51 radio_style="false" width="256" /> 52 radio_style="false" width="256" />
52 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-210" 53 <color_swatch border_color="0.45098 0.517647 0.607843 1" bottom="-210"
53 can_apply_immediately="false" color="1 1 1 1" control_name="EffectColor" 54 can_apply_immediately="false" color="1 1 1 1"
54 enabled="true" follows="left|top" height="48" label="" left="153" 55 enabled="true" follows="left|top" height="48" label="" left="153"
55 mouse_opaque="true" name="effect_color_swatch" 56 mouse_opaque="true" name="effect_color_swatch"
56 tool_tip="Click to open Color Picker" width="32" /> 57 tool_tip="Click to open Color Picker" width="32" />
@@ -60,23 +61,19 @@
60 mouse_opaque="true" name="UI Size:" v_pad="0" width="128"> 61 mouse_opaque="true" name="UI Size:" v_pad="0" width="128">
61 UI Size: 62 UI Size:
62 </text> 63 </text>
63 <slider bottom="-217" can_edit_text="true" control_name="UIScaleFactor" 64 <slider bottom="-217" can_edit_text="true"
64 decimal_digits="3" enabled="true" height="16" increment="0.025" 65 decimal_digits="3" enabled="true" height="16" increment="0.025"
65 initial_val="1" left="148" max_val="1.4" min_val="0.75" mouse_opaque="true" 66 initial_val="1" left="148" max_val="1.4" min_val="0.75" mouse_opaque="true"
66 name="UI Scale" show_text="true" value="1" width="220" /> 67 name="ui_scale_slider" show_text="true" value="1" width="256" />
67 <button bottom="-221" enabled="true" follows="left|top" 68 <check_box bottom="-236" enabled="true" follows="left|top"
68 font="SansSerif" halign="center" height="22" label="Reset"
69 label_selected="Reset" left_delta="226" mouse_opaque="true"
70 name="reset_ui_size" scale_image="true" width="80" />
71 <check_box bottom="-236" control_name="UIAutoScale" enabled="true" follows="left|top"
72 font="SansSerifSmall" height="16" initial_value="false" 69 font="SansSerifSmall" height="16" initial_value="false"
73 label="Use resolution independent scale" left="151" mouse_opaque="true" 70 label="Use resolution independent scale" left="151" mouse_opaque="true"
74 name="ui_auto_scale" radio_style="false" width="256" /> 71 name="ui_auto_scale" radio_style="false" width="256" />
75 <spinner bottom="-260" control_name="AFKTimeout" decimal_digits="0" enabled="true" 72 <spinner bottom="-260" decimal_digits="0" enabled="true"
76 follows="left|top" height="16" increment="1" initial_val="300" 73 follows="left|top" height="16" increment="1" initial_val="300"
77 label="Away Timeout:" label_width="141" left="10" max_val="600" 74 label="Away Timeout:" label_width="141" left="10" max_val="600"
78 min_val="30" mouse_opaque="true" name="afk_timeout_spinner" width="202" /> 75 min_val="30" mouse_opaque="true" name="afk_timeout_spinner" width="202" />
79 <check_box bottom="-286" control_name="MiniMapRotate" enabled="true" follows="left|top" 76 <check_box bottom="-286" enabled="true" follows="left|top"
80 font="SansSerifSmall" height="16" initial_value="false" 77 font="SansSerifSmall" height="16" initial_value="false"
81 label="Rotate Mini-Map" left="151" mouse_opaque="true" 78 label="Rotate Mini-Map" left="151" mouse_opaque="true"
82 name="rotate_mini_map_checkbox" radio_style="false" width="256" /> 79 name="rotate_mini_map_checkbox" radio_style="false" width="256" />
@@ -84,18 +81,18 @@
84 font="SansSerifSmall" height="16" initial_value="false" 81 font="SansSerifSmall" height="16" initial_value="false"
85 label="Doubleclick Mini-Map Teleports" left="280" mouse_opaque="true" 82 label="Doubleclick Mini-Map Teleports" left="280" mouse_opaque="true"
86 name="teleport_mini_map_checkbox" radio_style="false" width="256" /> 83 name="teleport_mini_map_checkbox" radio_style="false" width="256" />
87 <check_box bottom="-304" control_name="NotifyMoneyChange" enabled="true" 84 <check_box bottom="-304" enabled="true"
88 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 85 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
89 label="Notify when Linden dollars (L$) spent or received" left="151" 86 label="Notify when Linden dollars (L$) spent or received" left="151"
90 mouse_opaque="true" name="notify_money_change_checkbox" radio_style="false" 87 mouse_opaque="true" name="notify_money_change_checkbox" radio_style="false"
91 width="256" /> 88 width="256" />
92 <check_box bottom="-322" control_name="UseDefaultColorPicker" enabled="true" 89 <check_box bottom="-322" enabled="true"
93 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 90 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
94 label="Use default system color picker" left="151" mouse_opaque="true" 91 label="Use default system color picker" left="151" mouse_opaque="true"
95 name="use_system_color_picker_checkbox" radio_style="false" 92 name="use_system_color_picker_checkbox" radio_style="false"
96 tool_tip="Use the default system color picker instead of the one built into Second Life." 93 tool_tip="Use the default system color picker instead of the one built into Second Life."
97 width="256" /> 94 width="256" />
98 <check_box bottom="-340" control_name="ShowSearchBar" enabled="true" follows="left|top" 95 <check_box bottom="-340" enabled="true" follows="left|top"
99 font="SansSerifSmall" height="16" initial_value="false" 96 font="SansSerifSmall" height="16" initial_value="false"
100 label="Show search panel in overlay bar" left="151" mouse_opaque="true" 97 label="Show search panel in overlay bar" left="151" mouse_opaque="true"
101 name="show_search_panel" radio_style="false" 98 name="show_search_panel" radio_style="false"
@@ -159,7 +156,7 @@
159 Never send 156 Never send
160 </combo_item> 157 </combo_item>
161 </combo_box> 158 </combo_box>
162 <combo_box allow_text_entry="true" bottom="-382" control_name="Language" enabled="true" 159 <combo_box allow_text_entry="true" bottom="-382" enabled="true"
163 follows="left|bottom" height="16" left="153" max_chars="135" 160 follows="left|bottom" height="16" left="153" max_chars="135"
164 mouse_opaque="true" name="language_combobox" width="146"> 161 mouse_opaque="true" name="language_combobox" width="146">
165 <combo_item type="string" length="1" enabled="true" name="System Default Language" value="default"> 162 <combo_item type="string" length="1" enabled="true" name="System Default Language" value="default">
@@ -168,29 +165,41 @@
168 <combo_item type="string" length="1" enabled="true" name="English" value="en-us"> 165 <combo_item type="string" length="1" enabled="true" name="English" value="en-us">
169 English 166 English
170 </combo_item> 167 </combo_item>
171 <combo_item type="string" length="1" enabled="true" name="Chinese" value="zh"> 168
172 汉语/漢語 (Chinese) - Beta 169 <!-- After "System Default" and "English", please keep the rest of these combo_items in alphabetical order by the first character in the string. -->
170
171 <combo_item type="string" length="1" enabled="true" name="Danish" value="da">
172 Dansk (Danish) - Beta
173 </combo_item> 173 </combo_item>
174 <combo_item type="string" length="1" enabled="true" name="Deutsch(German)" value="de"> 174 <combo_item type="string" length="1" enabled="true" name="Deutsch(German)" value="de">
175 Deutsch (German) - Beta 175 Deutsch (German) - Beta
176 </combo_item> 176 </combo_item>
177 <combo_item type="string" length="1" enabled="true" name="Spanish" value="es">
178 Español (Spanish) - Beta
179 </combo_item>
177 <combo_item type="string" length="1" enabled="true" name="French" value="fr"> 180 <combo_item type="string" length="1" enabled="true" name="French" value="fr">
178 Français (French) - Beta 181 Français (French) - Beta
179 </combo_item> 182 </combo_item>
180 <combo_item type="string" length="1" enabled="true" name="(Japanese)" value="ja"> 183 <combo_item type="string" length="1" enabled="true" name="Hungarian" value="hu">
181 日本語 (Japanese) - Beta 184 Magyar (Hungarian) - Beta
182 </combo_item> 185 </combo_item>
183 <combo_item type="string" length="1" enabled="true" name="(Korean)" value="ko"> 186 <combo_item type="string" length="1" enabled="true" name="Polish" value="pl">
184 한국어 (Korean) - Beta 187 Polski (Polish) - Beta
185 </combo_item> 188 </combo_item>
186 <combo_item type="string" length="1" enabled="true" name="Portugese" value="pt"> 189 <combo_item type="string" length="1" enabled="true" name="Portugese" value="pt">
187 Portugués (Portuguese) - Beta 190 Portugués (Portuguese) - Beta
188 </combo_item> 191 </combo_item>
189 <combo_item type="string" length="1" enabled="true" name="Spanish" value="es"> 192 <combo_item type="string" length="1" enabled="true" name="Chinese" value="zh">
190 Español (Spanish) - Beta 193 中文 (简体) (Chinese) - Beta
194 </combo_item>
195 <combo_item type="string" length="1" enabled="true" name="(Japanese)" value="ja">
196 日本語 (Japanese) - Beta
197 </combo_item>
198 <combo_item type="string" length="1" enabled="true" name="(Korean)" value="ko">
199 한국어 (Korean) - Beta
191 </combo_item> 200 </combo_item>
192 </combo_box> 201 </combo_box>
193 <check_box bottom="-400" control_name="LanguageIsPublic" enabled="true" 202 <check_box bottom="-400" enabled="true"
194 follows="left|top" font="SansSerifSmall" height="16" hidden="false" 203 follows="left|top" font="SansSerifSmall" height="16" hidden="false"
195 initial_value="false" label="Share language with objects" left="151" 204 initial_value="false" label="Share language with objects" left="151"
196 mouse_opaque="true" name="language_is_public" 205 mouse_opaque="true" name="language_is_public"
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml
index 8020e9a..f0f79e4 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml
@@ -26,15 +26,15 @@
26 height="16" initial_value="false" label="Send IM to Email ([EMAIL])" 26 height="16" initial_value="false" label="Send IM to Email ([EMAIL])"
27 left="148" mouse_opaque="true" name="send_im_to_email" radio_style="false" 27 left="148" mouse_opaque="true" name="send_im_to_email" radio_style="false"
28 width="350" /> 28 width="350" />
29 <check_box bottom="-65" control_name="IMInChatHistory" enabled="true" follows="left|top" 29 <check_box bottom="-65" enabled="true" follows="left|top"
30 font="SansSerifSmall" height="16" initial_value="false" 30 font="SansSerifSmall" height="16" initial_value="false"
31 label="Show IMs with Chat" left="148" mouse_opaque="true" 31 label="Show IMs with Chat" left="148" mouse_opaque="true"
32 name="include_im_in_chat_history" radio_style="false" width="237" /> 32 name="include_im_in_chat_history" radio_style="false" width="237" />
33 <check_box bottom="-85" control_name="IMShowTimestamps" enabled="true" follows="left|top" 33 <check_box bottom="-85" enabled="true" follows="left|top"
34 font="SansSerifSmall" height="16" initial_value="false" 34 font="SansSerifSmall" height="16" initial_value="false"
35 label="Show timestamps in IM" left="148" mouse_opaque="true" 35 label="Show timestamps in IM" left="148" mouse_opaque="true"
36 name="show_timestamps_check" radio_style="false" width="237" /> 36 name="show_timestamps_check" radio_style="false" width="237" />
37 <check_box bottom="-105" control_name="ChatOnlineNotification" enabled="true" 37 <check_box bottom="-105" enabled="true"
38 follows="left|top" font="SansSerifSmall" height="16" 38 follows="left|top" font="SansSerifSmall" height="16"
39 initial_value="false" label="Show online Friend notifications" left="148" 39 initial_value="false" label="Show online Friend notifications" left="148"
40 mouse_opaque="true" name="friends_online_notify_checkbox" 40 mouse_opaque="true" name="friends_online_notify_checkbox"
@@ -54,33 +54,33 @@
54 mouse_opaque="false" name="text_box4" v_pad="0" width="128"> 54 mouse_opaque="false" name="text_box4" v_pad="0" width="128">
55 Logging Options: 55 Logging Options:
56 </text> 56 </text>
57 <check_box bottom="-225" control_name="LogInstantMessages" enabled="true" 57 <check_box bottom="-225" enabled="true"
58 follows="left|top" font="SansSerifSmall" height="16" 58 follows="left|top" font="SansSerifSmall" height="16"
59 initial_value="false" label="Save a log of IM on my computer" left="148" 59 initial_value="false" label="Save a log of IM on my computer" left="148"
60 mouse_opaque="true" name="log_instant_messages" radio_style="false" 60 mouse_opaque="true" name="log_instant_messages" radio_style="false"
61 width="237" /> 61 width="237" />
62 <check_box bottom="-245" control_name="IMLogTimestamp" enabled="true" 62 <check_box bottom="-245" enabled="true"
63 follows="left|top" font="SansSerifSmall" height="16" 63 follows="left|top" font="SansSerifSmall" height="16"
64 initial_value="false" label="Show timestamps in IM log" left="168" 64 initial_value="false" label="Show timestamps in IM log" left="168"
65 mouse_opaque="true" name="log_instant_messages_timestamp" radio_style="false" 65 mouse_opaque="true" name="log_instant_messages_timestamp" radio_style="false"
66 width="217" /> 66 width="217" />
67 <check_box bottom="-265" control_name="LogShowHistory" enabled="true" follows="left|top" 67 <check_box bottom="-265" enabled="true" follows="left|top"
68 font="SansSerifSmall" height="16" initial_value="false" 68 font="SansSerifSmall" height="16" initial_value="false"
69 label="Show the end of last IM conversation" left="168" mouse_opaque="true" 69 label="Show the end of last IM conversation" left="168" mouse_opaque="true"
70 name="log_show_history" radio_style="false" width="217" /> 70 name="log_show_history" radio_style="false" width="217" />
71 <check_box bottom="-285" control_name="LogChat" enabled="true" follows="left|top" 71 <check_box bottom="-285" enabled="true" follows="left|top"
72 font="SansSerifSmall" height="16" initial_value="false" label="Save a log of Local Chat on my computer" 72 font="SansSerifSmall" height="16" initial_value="false" label="Save a log of Local Chat on my computer"
73 left="148" mouse_opaque="true" name="log_chat" radio_style="false" 73 left="148" mouse_opaque="true" name="log_chat" radio_style="false"
74 width="237" /> 74 width="237" />
75 <check_box bottom="-305" control_name="LogChatTimestamp" enabled="true" follows="left|top" 75 <check_box bottom="-305" enabled="true" follows="left|top"
76 font="SansSerifSmall" height="16" initial_value="false" 76 font="SansSerifSmall" height="16" initial_value="false"
77 label="Show timestamps in Local Chat log" left="168" mouse_opaque="true" 77 label="Show timestamps in Local Chat log" left="168" mouse_opaque="true"
78 name="log_chat_timestamp" radio_style="false" width="217" /> 78 name="log_chat_timestamp" radio_style="false" width="217" />
79 <check_box bottom="-325" control_name="LogChatIM" enabled="true" follows="left|top" 79 <check_box bottom="-325" enabled="true" follows="left|top"
80 font="SansSerifSmall" height="16" initial_value="false" 80 font="SansSerifSmall" height="16" initial_value="false"
81 label="Show incoming IM in Local Chat log" left="168" mouse_opaque="true" 81 label="Show incoming IM in Local Chat log" left="168" mouse_opaque="true"
82 name="log_chat_IM" radio_style="false" width="217" /> 82 name="log_chat_IM" radio_style="false" width="217" />
83 <check_box bottom="-345" control_name="LogTimestampDate" enabled="true" follows="left|top" 83 <check_box bottom="-345" enabled="true" follows="left|top"
84 font="SansSerifSmall" height="16" initial_value="false" 84 font="SansSerifSmall" height="16" initial_value="false"
85 label="Include date with timestamps" left="148" mouse_opaque="true" 85 label="Include date with timestamps" left="148" mouse_opaque="true"
86 name="log_date_timestamp" radio_style="false" width="237" /> 86 name="log_date_timestamp" radio_style="false" width="237" />
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml
index 1867323..65fe6c9 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml
@@ -14,21 +14,21 @@
14 mouse_opaque="true" name=" Mouse Sensitivity:" v_pad="0" width="128"> 14 mouse_opaque="true" name=" Mouse Sensitivity:" v_pad="0" width="128">
15 Mouse Sensitivity: 15 Mouse Sensitivity:
16 </text> 16 </text>
17 <slider_bar bottom="-26" control_name="MouseSensitivity" enabled="true" follows="left|top" 17 <slider_bar bottom="-26" enabled="true" follows="left|top"
18 height="16" increment="0.25" initial_val="2" left="276" max_val="15" 18 height="16" increment="0.25" initial_val="2" left="276" max_val="15"
19 min_val="0" mouse_opaque="true" name="Mouse Sensitivity" width="128" /> 19 min_val="0" mouse_opaque="true" name="mouse_sensitivity" width="128" />
20 <check_box bottom="-44" control_name="InvertMouse" enabled="true" follows="left|top" 20 <check_box bottom="-44" enabled="true" follows="left|top"
21 font="SansSerifSmall" height="16" label="Invert Mouse" left="148" 21 font="SansSerifSmall" height="16" label="Invert Mouse" left="148"
22 mouse_opaque="true" name="invert mouse" radio_style="false" width="128" /> 22 mouse_opaque="true" name="invert_mouse" radio_style="false" width="128" />
23 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 23 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
24 bottom="-74" drop_shadow_visible="true" enabled="true" follows="left|top" 24 bottom="-74" drop_shadow_visible="true" enabled="true" follows="left|top"
25 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" 25 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10"
26 mouse_opaque="true" name=" Auto Fly Options:" v_pad="0" width="266"> 26 mouse_opaque="true" name=" Auto Fly Options:" v_pad="0" width="266">
27 Auto Fly Options: 27 Auto Fly Options:
28 </text> 28 </text>
29 <check_box bottom="-80" control_name="AutomaticFly" enabled="true" follows="left|top" 29 <check_box bottom="-80" enabled="true" follows="left|top"
30 font="SansSerifSmall" height="16" label="Fly/land on holding up/down" 30 font="SansSerifSmall" height="16" label="Fly/land on holding up/down"
31 left="148" mouse_opaque="true" name="automatic fly" radio_style="false" 31 left="148" mouse_opaque="true" name="automatic_fly" radio_style="false"
32 width="178" /> 32 width="178" />
33 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 33 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
34 bottom="-110" drop_shadow_visible="true" enabled="true" follows="left|top" 34 bottom="-110" drop_shadow_visible="true" enabled="true" follows="left|top"
@@ -42,10 +42,10 @@
42 mouse_opaque="true" name="Camera Follow Distance:" v_pad="0" width="128"> 42 mouse_opaque="true" name="Camera Follow Distance:" v_pad="0" width="128">
43 Camera Follow Distance: 43 Camera Follow Distance:
44 </text> 44 </text>
45 <slider bottom="-116" can_edit_text="true" control_name="DynamicCameraStrength" 45 <slider bottom="-116" can_edit_text="true"
46 decimal_digits="0" enabled="true" follows="left|top" height="16" 46 decimal_digits="0" enabled="true" follows="left|top" height="16"
47 increment="1" initial_val="2" left="276" max_val="10" min_val="0" 47 increment="1" initial_val="2" left="276" max_val="10" min_val="0"
48 mouse_opaque="true" name="DynamicCameraStrength" show_text="true" value="2" 48 mouse_opaque="true" name="dynamic_camera_strength" show_text="true" value="2"
49 width="128" /> 49 width="128" />
50 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 50 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
51 bottom="-134" drop_shadow_visible="true" enabled="true" follows="left|top" 51 bottom="-134" drop_shadow_visible="true" enabled="true" follows="left|top"
@@ -53,31 +53,31 @@
53 mouse_opaque="true" name="Camera Transition Time:" v_pad="0" width="128"> 53 mouse_opaque="true" name="Camera Transition Time:" v_pad="0" width="128">
54 Camera Transition Time: 54 Camera Transition Time:
55 </text> 55 </text>
56 <slider bottom="-140" can_edit_text="true" control_name="ZoomTime" decimal_digits="1" 56 <slider bottom="-140" can_edit_text="true" decimal_digits="1"
57 enabled="true" follows="left|top" height="16" increment="0.1" 57 enabled="true" follows="left|top" height="16" increment="0.1"
58 initial_val="0.4" left="276" max_val="4" min_val="0" mouse_opaque="true" 58 initial_val="0.4" left="276" max_val="4" min_val="0" mouse_opaque="true"
59 name="ZoomTime" show_text="true" value="2" width="128" /> 59 name="zoom_time" show_text="true" value="2" width="128" />
60 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 60 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
61 bottom="-158" drop_shadow_visible="true" enabled="true" follows="left|top" 61 bottom="-158" drop_shadow_visible="true" enabled="true" follows="left|top"
62 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148" 62 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="148"
63 mouse_opaque="true" name="Camera Smoothing:" v_pad="0" width="128"> 63 mouse_opaque="true" name="Camera Smoothing:" v_pad="0" width="128">
64 Camera Smoothing: 64 Camera Smoothing:
65 </text> 65 </text>
66 <slider bottom="-164" can_edit_text="true" control_name="CameraPositionSmoothing" 66 <slider bottom="-164" can_edit_text="true"
67 decimal_digits="1" enabled="true" follows="left|top" height="16" 67 decimal_digits="1" enabled="true" follows="left|top" height="16"
68 increment="0.1" initial_val="1" left="276" max_val="9" min_val="0" 68 increment="0.1" initial_val="1" left="276" max_val="9" min_val="0"
69 mouse_opaque="true" name="CameraPositionSmoothing" show_text="true" value="2" 69 mouse_opaque="true" name="camera_position_smoothing" show_text="true" value="2"
70 width="128" /> 70 width="128" />
71 <check_box bottom="-188" control_name="EditCameraMovement" enabled="true" 71 <check_box bottom="-188" enabled="true"
72 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 72 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
73 label="Automatic Edit Camera Movement" left="148" mouse_opaque="true" 73 label="Automatic Edit Camera Movement" left="148" mouse_opaque="true"
74 name="edit camera movement" radio_style="false" 74 name="edit_camera_movement" radio_style="false"
75 tool_tip="Use automatic camera positioning when entering and exiting edit mode" 75 tool_tip="Use automatic camera positioning when entering and exiting edit mode"
76 width="201" /> 76 width="201" />
77 <check_box bottom="-206" control_name="AppearanceCameraMovement" enabled="true" 77 <check_box bottom="-206" enabled="true"
78 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 78 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
79 label="Automatic Appearance Camera Movement" left="148" mouse_opaque="true" 79 label="Automatic Appearance Camera Movement" left="148" mouse_opaque="true"
80 name="appearance camera movement" radio_style="false" 80 name="appearance_camera_movement" radio_style="false"
81 tool_tip="Use automatic camera positioning while in edit mode" width="242" /> 81 tool_tip="Use automatic camera positioning while in edit mode" width="242" />
82 <check_box bottom_delta="-18" control_name="DisableCameraConstraints" enabled="true" 82 <check_box bottom_delta="-18" control_name="DisableCameraConstraints" enabled="true"
83 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 83 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
@@ -90,9 +90,9 @@
90 mouse_opaque="true" name="text2" v_pad="0" width="128"> 90 mouse_opaque="true" name="text2" v_pad="0" width="128">
91 Avatar Display Options: 91 Avatar Display Options:
92 </text> 92 </text>
93 <check_box bottom_delta="-4" control_name="FirstPersonAvatarVisible" enabled="true" 93 <check_box bottom="-232" enabled="true"
94 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 94 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
95 label="Show Avatar in Mouselook" left="148" mouse_opaque="true" name="avfp" 95 label="Show Avatar in Mouselook" left="148" mouse_opaque="true" name="first_person_avatar_visible"
96 radio_style="false" width="256" /> 96 radio_style="false" width="256" />
97 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 97 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
98 bottom_delta="-32" drop_shadow_visible="true" enabled="true" follows="left|top" 98 bottom_delta="-32" drop_shadow_visible="true" enabled="true" follows="left|top"
@@ -102,5 +102,5 @@
102 </text> 102 </text>
103 <button bottom_delta="-4" follows="left|top" font="SansSerif" height="20" 103 <button bottom_delta="-4" follows="left|top" font="SansSerif" height="20"
104 label="Joystick Setup" left="148" mouse_opaque="true" 104 label="Joystick Setup" left="148" mouse_opaque="true"
105 name="joystic_setup_button" width="155" /> 105 name="joystick_setup_button" width="155" />
106</panel> 106</panel>
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml
index a0f0936..48da432 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml
@@ -8,7 +8,7 @@
8 mouse_opaque="false" name="text_box" v_pad="0" width="200"> 8 mouse_opaque="false" name="text_box" v_pad="0" width="200">
9 Maximum Bandwidth: 9 Maximum Bandwidth:
10 </text> 10 </text>
11 <slider bottom_delta="-25" can_edit_text="true" control_name="ThrottleBandwidthKBPS" 11 <slider bottom_delta="-25" can_edit_text="true"
12 decimal_digits="0" enabled="true" follows="left|top" height="15" 12 decimal_digits="0" enabled="true" follows="left|top" height="15"
13 increment="10" initial_val="50" left_delta="0" max_val="1500" min_val="50" 13 increment="10" initial_val="50" left_delta="0" max_val="1500" min_val="50"
14 mouse_opaque="true" name="max_bandwidth" show_text="true" value="500" 14 mouse_opaque="true" name="max_bandwidth" show_text="true" value="500"
@@ -27,7 +27,7 @@
27 v_pad="0" width="200"> 27 v_pad="0" width="200">
28 Disk Cache Size: 28 Disk Cache Size:
29 </text> 29 </text>
30 <slider bottom_delta="-25" can_edit_text="true" control_name="CacheSize" 30 <slider bottom_delta="-25" can_edit_text="true"
31 decimal_digits="0" enabled="true" follows="left|top" height="15" 31 decimal_digits="0" enabled="true" follows="left|top" height="15"
32 increment="10" initial_val="50" left_delta="0" max_val="1000" min_val="10" 32 increment="10" initial_val="50" left_delta="0" max_val="1000" min_val="10"
33 mouse_opaque="true" name="cache_size" show_text="true" width="180" /> 33 mouse_opaque="true" name="cache_size" show_text="true" width="180" />
@@ -61,12 +61,12 @@
61 font="SansSerif" halign="center" height="22" label="Reset" 61 font="SansSerif" halign="center" height="22" label="Reset"
62 label_selected="Set" left_delta="103" mouse_opaque="true" 62 label_selected="Set" left_delta="103" mouse_opaque="true"
63 name="reset_cache" scale_image="true" width="100" /> 63 name="reset_cache" scale_image="true" width="100" />
64 <check_box bottom="-173" bottom_delta="-35" control_name="ConnectionPortEnabled" 64 <check_box bottom="-173" bottom_delta="-35"
65 enabled="true" follows="left|top" font="SansSerifSmall" height="16" 65 enabled="true" follows="left|top" font="SansSerifSmall" height="16"
66 initial_value="false" label="Custom Port Connection" left="12" 66 initial_value="false" label="Custom Port Connection" left="12"
67 mouse_opaque="true" name="connection_port_enabled" radio_style="false" 67 mouse_opaque="true" name="connection_port_enabled" radio_style="false"
68 width="256" /> 68 width="256" />
69 <spinner bottom="-193" bottom_delta="-20" control_name="ConnectionPort" 69 <spinner bottom="-193" bottom_delta="-20"
70 decimal_digits="0" enabled="true" follows="left|top" height="16" 70 decimal_digits="0" enabled="true" follows="left|top" height="16"
71 increment="1" initial_val="13000" label="Port Number:" label_width="75" 71 increment="1" initial_val="13000" label="Port Number:" label_width="75"
72 left_delta="20" max_val="13050" min_val="13000" mouse_opaque="true" 72 left_delta="20" max_val="13050" min_val="13000" mouse_opaque="true"
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml
index 11d15f4..65734d6 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_popups.xml
@@ -27,11 +27,11 @@
27 width="270"> 27 width="270">
28 Offers of notecards, textures and landmarks: 28 Offers of notecards, textures and landmarks:
29 </text> 29 </text>
30 <check_box bottom_delta="-25" control_name="AutoAcceptNewInventory" enabled="true" 30 <check_box bottom_delta="-25" enabled="true"
31 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 31 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
32 label="Automatically accept" left="40" mouse_opaque="true" 32 label="Automatically accept" left="40" mouse_opaque="true"
33 name="accept_new_inventory" radio_style="false" width="270" /> 33 name="accept_new_inventory" radio_style="false" width="270" />
34 <check_box bottom_delta="-20" control_name="ShowNewInventory" enabled="true" 34 <check_box bottom_delta="-20" enabled="true"
35 follows="left|top" font="SansSerifSmall" height="16" initial_value="true" 35 follows="left|top" font="SansSerifSmall" height="16" initial_value="true"
36 label="Automatically view after accepting" left="40" mouse_opaque="true" 36 label="Automatically view after accepting" left="40" mouse_opaque="true"
37 name="show_new_inventory" radio_style="false" width="270" /> 37 name="show_new_inventory" radio_style="false" width="270" />
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml
index 89b07dd..d3c0003 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml
@@ -9,7 +9,7 @@
9 name="voice_unavailable" tab_stop="false" width="450" word_wrap="true"> 9 name="voice_unavailable" tab_stop="false" width="450" word_wrap="true">
10 Voice Chat Is Not Available 10 Voice Chat Is Not Available
11 </text_editor> 11 </text_editor>
12 <check_box bottom_delta="0" control_name="EnableVoiceChat" enabled="true" 12 <check_box bottom_delta="0" enabled="true"
13 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 13 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
14 label="Enable voice chat" left="8" mouse_opaque="true" 14 label="Enable voice chat" left="8" mouse_opaque="true"
15 name="enable_voice_check" radio_style="false" width="200" /> 15 name="enable_voice_check" radio_style="false" width="200" />
@@ -36,7 +36,7 @@
36 name="voice_chat_description" tab_stop="false" width="450" word_wrap="true"> 36 name="voice_chat_description" tab_stop="false" width="450" word_wrap="true">
37 Push-to-Talk mode lets you control when your voice is transmitted. When in toggle mode, press and release the push-to-talk trigger to switch your microphone on and off. When not in toggle mode, the microphone is active only when the trigger is held down. 37 Push-to-Talk mode lets you control when your voice is transmitted. When in toggle mode, press and release the push-to-talk trigger to switch your microphone on and off. When not in toggle mode, the microphone is active only when the trigger is held down.
38 </text_editor> 38 </text_editor>
39 <check_box bottom_delta="-20" control_name="PushToTalkToggle" enabled="true" 39 <check_box bottom_delta="-20" enabled="true"
40 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 40 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
41 label="Use Push-to-Talk in toggle mode" left_delta="0" mouse_opaque="true" 41 label="Use Push-to-Talk in toggle mode" left_delta="0" mouse_opaque="true"
42 name="push_to_talk_toggle_check" radio_style="false" width="200" /> 42 name="push_to_talk_toggle_check" radio_style="false" width="200" />
@@ -48,7 +48,7 @@
48 Push-to-Talk trigger: 48 Push-to-Talk trigger:
49 </text> 49 </text>
50 <line_editor border_drop_shadow_visible="false" border_visible="false" bottom_delta="-20" 50 <line_editor border_drop_shadow_visible="false" border_visible="false" bottom_delta="-20"
51 control_name="PushToTalkButton" drop_shadow_visible="true" enabled="false" 51 drop_shadow_visible="true" enabled="false"
52 follows="top|left" font="SansSerifSmall" halign="right" height="19" 52 follows="top|left" font="SansSerifSmall" halign="right" height="19"
53 left_delta="0" max_length="254" mouse_opaque="false" name="modifier_combo" 53 left_delta="0" max_length="254" mouse_opaque="false" name="modifier_combo"
54 width="280" /> 54 width="280" />
@@ -63,7 +63,7 @@
63 left="28" name="privacy_heading" width="445"> 63 left="28" name="privacy_heading" width="445">
64 Privacy Options 64 Privacy Options
65 </text> 65 </text>
66 <check_box bottom_delta="-20" control_name="VoiceCallsFriendsOnly" enabled="true" 66 <check_box bottom_delta="-20" enabled="true"
67 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 67 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
68 label="Only accept voice calls from people on My Friends list" 68 label="Only accept voice calls from people on My Friends list"
69 left_delta="20" mouse_opaque="true" name="voice_call_friends_only_check" 69 left_delta="20" mouse_opaque="true" name="voice_call_friends_only_check"
@@ -76,6 +76,6 @@
76 font="SansSerifSmall" height="35" hide_border="true" hide_scrollbar="true" 76 font="SansSerifSmall" height="35" hide_border="true" hide_scrollbar="true"
77 left="28" max_length="65535" mouse_opaque="true" 77 left="28" max_length="65535" mouse_opaque="true"
78 name="device_settings_text" tab_stop="false" width="450" word_wrap="true"> 78 name="device_settings_text" tab_stop="false" width="450" word_wrap="true">
79 NOTE: Running the Device Settings will temporarily disconnect you from Voice Chat. 79 NOTE: Running the Device Settings will temporarily disconnect you from Voice Chat, and changes you make will be immediately applied.
80 </text_editor> 80 </text_editor>
81</panel> 81</panel>
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml
index b708bf3..ed13e8f 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml
@@ -30,8 +30,8 @@
30 width="128"> 30 width="128">
31 Cookies: 31 Cookies:
32 </text> 32 </text>
33 <check_box bottom_delta="-7" control_name="CookiesEnabled" enabled="true" 33 <check_box bottom_delta="-7" enabled="true" follows="left|top"
34 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 34 font="SansSerifSmall" height="16" initial_value="false"
35 label="Accept cookies from sites" left="140" mouse_opaque="true" 35 label="Accept cookies from sites" left="140" mouse_opaque="true"
36 name="cookies_enabled" radio_style="false" width="256" /> 36 name="cookies_enabled" radio_style="false" width="256" />
37 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 37 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
@@ -41,7 +41,7 @@
41 width="128"> 41 width="128">
42 Web Proxy: 42 Web Proxy:
43 </text> 43 </text>
44 <check_box bottom_delta="-7" control_name="BrowserProxyEnabled" enabled="true" 44 <check_box bottom_delta="-7" enabled="true"
45 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 45 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
46 label="Enable Web Proxy" left="140" mouse_opaque="true" 46 label="Enable Web Proxy" left="140" mouse_opaque="true"
47 name="web_proxy_enabled" radio_style="false" width="256" /> 47 name="web_proxy_enabled" radio_style="false" width="256" />
@@ -56,7 +56,7 @@
56 height="20" left="217" name="web_proxy_editor" 56 height="20" left="217" name="web_proxy_editor"
57 tool_tip="The name or IP address of the proxy you would like to use" 57 tool_tip="The name or IP address of the proxy you would like to use"
58 width="200" /> 58 width="200" />
59 <spinner bottom_delta="-25" control_name="BrowserProxyPort" decimal_digits="0" 59 <spinner bottom_delta="-25" decimal_digits="0"
60 enabled="true" follows="left|top" height="16" increment="1" 60 enabled="true" follows="left|top" height="16" increment="1"
61 initial_val="80" label="Port Number:" label_width="75" left="140" 61 initial_val="80" label="Port Number:" label_width="75" left="140"
62 max_val="12000" min_val="10" mouse_opaque="true" name="web_proxy_port" 62 max_val="12000" min_val="10" mouse_opaque="true" name="web_proxy_port"
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_region_debug.xml b/linden/indra/newview/skins/default/xui/en-us/panel_region_debug.xml
index 462728a..91a81df 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_region_debug.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_region_debug.xml
@@ -58,9 +58,9 @@
58 left="10" name="top_colliders_btn" 58 left="10" name="top_colliders_btn"
59 tool_tip="List of objects experiencing the most potential collisions" 59 tool_tip="List of objects experiencing the most potential collisions"
60 width="150" /> 60 width="150" />
61 <button bottom_delta="-3" follows="left|top" font="SansSerifSmall" height="18" label="?" 61 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
62 left="170" name="top_colliders_help" width="18" /> 62 left="170" name="top_colliders_help" width="18" />
63 <button bottom_delta="-20" follows="left|top" height="20" label="Get Top Scripts..." 63 <button bottom_delta="-23" follows="left|top" height="20" label="Get Top Scripts..."
64 left="10" name="top_scripts_btn" 64 left="10" name="top_scripts_btn"
65 tool_tip="List of objects spending the most time running scripts" 65 tool_tip="List of objects spending the most time running scripts"
66 width="150" /> 66 width="150" />
@@ -69,9 +69,9 @@
69 <button bottom_delta="-50" follows="left|top" height="20" label="Restart Region" 69 <button bottom_delta="-50" follows="left|top" height="20" label="Restart Region"
70 left="10" name="restart_btn" 70 left="10" name="restart_btn"
71 tool_tip="Give 2 minute countdown and restart region" width="130" /> 71 tool_tip="Give 2 minute countdown and restart region" width="130" />
72 <button bottom_delta="-3" follows="left|top" font="SansSerifSmall" height="18" label="?" 72 <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?"
73 left="150" name="restart_help" width="18" /> 73 left="150" name="restart_help" width="18" />
74 <button bottom_delta="-20" follows="left|top" height="20" label="Delay Restart" 74 <button bottom_delta="-23" follows="left|top" height="20" label="Delay Restart"
75 left="10" name="cancel_restart_btn" 75 left="10" name="cancel_restart_btn"
76 tool_tip="Delay region restart by one hour" width="130" /> 76 tool_tip="Delay region restart by one hour" width="130" />
77</panel> 77</panel>
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_status_bar.xml b/linden/indra/newview/skins/default/xui/en-us/panel_status_bar.xml
index 614f1f9..63d2ca3 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_status_bar.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_status_bar.xml
@@ -75,7 +75,7 @@
75 halign="center" height="18" image_selected="status_no_push.tga" 75 halign="center" height="18" image_selected="status_no_push.tga"
76 image_unselected="status_no_push.tga" label="" label_selected="" left="521" 76 image_unselected="status_no_push.tga" label="" label_selected="" left="521"
77 mouse_opaque="true" name="restrictpush" scale_image="false" 77 mouse_opaque="true" name="restrictpush" scale_image="false"
78 tool_tip="llPushObject restricted" visible="false" width="24" /> 78 tool_tip="No Pushing" visible="false" width="24" />
79 <button bottom="-22" enabled="true" follows="right|bottom" font="SansSerif" 79 <button bottom="-22" enabled="true" follows="right|bottom" font="SansSerif"
80 halign="center" height="18" image_selected="status_no_voice.tga" 80 halign="center" height="18" image_selected="status_no_voice.tga"
81 image_unselected="status_no_voice.tga" label="" label_selected="" 81 image_unselected="status_no_voice.tga" label="" label_selected=""
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_voice_remote.xml b/linden/indra/newview/skins/default/xui/en-us/panel_voice_remote.xml
index a0dc47b..c98b86b 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_voice_remote.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_voice_remote.xml
@@ -3,6 +3,6 @@
3 enabled="true" follows="right|bottom" height="20" left="0" 3 enabled="true" follows="right|bottom" height="20" left="0"
4 mouse_opaque="true" name="voice_remote" use_bounding_rect="true" 4 mouse_opaque="true" name="voice_remote" use_bounding_rect="true"
5 width="130"> 5 width="130">
6 <panel bottom="1" filename="panel_bg_tab.xml" height="22" left="0" width="130" /> 6 <panel bottom="1" filename="panel_bg_tab.xml" name="panel_bg_tab" height="22" left="0" width="130" />
7 <panel bottom="3" filename="panel_voice_controls.xml" height="20" left="1" width="130" /> 7 <panel bottom="3" filename="panel_voice_controls.xml" name="panel_voice_controls" height="20" left="1" width="130" />
8</panel> 8</panel>
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_voice_remote_expanded.xml b/linden/indra/newview/skins/default/xui/en-us/panel_voice_remote_expanded.xml
index 88cc305..08d7a28 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_voice_remote_expanded.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_voice_remote_expanded.xml
@@ -2,7 +2,7 @@
2<panel bg_visible="false" border="false" border_visible="false" bottom="0" 2<panel bg_visible="false" border="false" border_visible="false" bottom="0"
3 follows="right|bottom" height="45" left="0" mouse_opaque="true" 3 follows="right|bottom" height="45" left="0" mouse_opaque="true"
4 name="voice_remote" use_bounding_rect="true" width="130"> 4 name="voice_remote" use_bounding_rect="true" width="130">
5 <panel bottom="1" filename="panel_bg_tab.xml" height="47" left="0" width="130" /> 5 <panel bottom="1" filename="panel_bg_tab.xml" name="panel_bg_tab" height="47" left="0" width="130" />
6 <button bottom="-20" height="20" image_overlay="icn_voice-call-end.tga" label="" 6 <button bottom="-20" height="20" image_overlay="icn_voice-call-end.tga" label=""
7 left="4" name="end_call_btn" tool_tip="Click to hang up" width="20" /> 7 left="4" name="end_call_btn" tool_tip="Click to hang up" width="20" />
8 <button bottom="-21" height="22" image_disabled="icn_rounded-text-field.tga" 8 <button bottom="-21" height="22" image_disabled="icn_rounded-text-field.tga"
diff --git a/linden/indra/newview/skins/default/xui/es/alerts.xml b/linden/indra/newview/skins/default/xui/es/alerts.xml
index 06be1be..eae0202 100644
--- a/linden/indra/newview/skins/default/xui/es/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/es/alerts.xml
@@ -1643,7 +1643,7 @@ Intente seleccionar una área menor.
1643 Este local puede reproducir música en streaming. 1643 Este local puede reproducir música en streaming.
1644 1644
1645Música requiere una conexión con internet 1645Música requiere una conexión con internet
1646de 768 Kbps o más rápida. 1646de 768 kbps o más rápida.
1647 1647
1648¿Reproducir música cuando disponible? 1648¿Reproducir música cuando disponible?
1649 </message> 1649 </message>
@@ -1658,7 +1658,7 @@ de 768 Kbps o más rápida.
1658 <message name="message"> 1658 <message name="message">
1659 Este local puede reproducir vídeo en streaming. 1659 Este local puede reproducir vídeo en streaming.
1660Vídeo en streaming requiere una conexión con internet 1660Vídeo en streaming requiere una conexión con internet
1661de 768 Kbps o más rápida. 1661de 768 kbps o más rápida.
1662 1662
1663¿Reproducir vídeo en streaming cuando disponible? 1663¿Reproducir vídeo en streaming cuando disponible?
1664 1664
@@ -3978,31 +3978,6 @@ para ver los detalles de la transacción?
3978 Cancelar 3978 Cancelar
3979 </option> 3979 </option>
3980 </alert> 3980 </alert>
3981 <alert name="HelpReportAbuse">
3982 <message name="message">
3983 Use this tool to report violations of the Terms of Service and Community Standards. See:
3984http://secondlife.com/corporate/tos.php
3985http://secondlife.com/corporate/cs.php
3986
3987All reported abuses of the Terms of Service and Community Standards
3988are investigated and resolved. You will receive an email informing you
3989of the resolution when it occurs.
3990You can also view the incident resolution on the Police Blotter at:
3991
3992http://secondlife.com/community/blotter.php
3993 </message>
3994 </alert>
3995 <alert name="HelpReportBug">
3996 <message name="message">
3997 Use this tool to report technical features that do not perform
3998as described or expected. All bug reports are investigated and
3999resolved. No email response will be sent, you may reply to the
4000auto-response email to add more details to your report.
4001If you are having a technical difficulty, please contact Support at:
4002
4003http://secondlife.com/community/support.php
4004 </message>
4005 </alert>
4006 <alert name="HelpReportAbuseSelectCategory"> 3981 <alert name="HelpReportAbuseSelectCategory">
4007 <message name="message"> 3982 <message name="message">
4008 Por favor, seleccione una categoría para este relato de abuso. 3983 Por favor, seleccione una categoría para este relato de abuso.
diff --git a/linden/indra/newview/skins/default/xui/es/floater_about_land.xml b/linden/indra/newview/skins/default/xui/es/floater_about_land.xml
index f81a291..990e636 100644
--- a/linden/indra/newview/skins/default/xui/es/floater_about_land.xml
+++ b/linden/indra/newview/skins/default/xui/es/floater_about_land.xml
@@ -132,54 +132,33 @@
132 <text type="string" length="1" name="Simulator primitive usage:"> 132 <text type="string" length="1" name="Simulator primitive usage:">
133 Simulador de primitiva usado: 133 Simulador de primitiva usado:
134 </text> 134 </text>
135 <text type="string" length="1" name="0 out of 0 available">
136 0 de 14055 (14055 disponible)
137 </text>
138 <text type="string" length="1" name="Primitives parcel supports:"> 135 <text type="string" length="1" name="Primitives parcel supports:">
139 Primitivas en la parcela soportan: 136 Primitivas en la parcela soportan:
140 </text> 137 </text>
141 <text type="string" length="1" name="object_contrib_text">
142 926
143 </text>
144 <text type="string" length="1" name="Primitives on parcel:"> 138 <text type="string" length="1" name="Primitives on parcel:">
145 Primitivas en la parcela: 139 Primitivas en la parcela:
146 </text> 140 </text>
147 <text type="string" length="1" name="total_objects_text">
148 0
149 </text>
150 <text type="string" length="1" name="Owned by parcel owner:"> 141 <text type="string" length="1" name="Owned by parcel owner:">
151 Pertenecientes al propietario de la parcela: 142 Pertenecientes al propietario de la parcela:
152 </text> 143 </text>
153 <text type="string" length="1" name="owner_objects_text">
154 0
155 </text>
156 <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" /> 144 <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" />
157 <button label="Retornar..." label_selected="Retornar..." name="ReturnOwner..." 145 <button label="Retornar..." label_selected="Retornar..." name="ReturnOwner..."
158 tool_tip="Devolver objetos para sus propietarios." /> 146 tool_tip="Devolver objetos para sus propietarios." />
159 <text type="string" length="1" name="Set to group:"> 147 <text type="string" length="1" name="Set to group:">
160 Definido para el grupo: 148 Definido para el grupo:
161 </text> 149 </text>
162 <text type="string" length="1" name="group_objects_text">
163 0
164 </text>
165 <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" /> 150 <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" />
166 <button label="Retornar..." label_selected="Retornar..." name="ReturnGroup..." 151 <button label="Retornar..." label_selected="Retornar..." name="ReturnGroup..."
167 tool_tip="Devolver objetos para sus propietarios." /> 152 tool_tip="Devolver objetos para sus propietarios." />
168 <text type="string" length="1" name="Owned by others:"> 153 <text type="string" length="1" name="Owned by others:">
169 Pertenecientes a otros: 154 Pertenecientes a otros:
170 </text> 155 </text>
171 <text type="string" length="1" name="other_objects_text">
172 0
173 </text>
174 <button label="Mostrar" label_selected="Mostrar" name="ShowOther" /> 156 <button label="Mostrar" label_selected="Mostrar" name="ShowOther" />
175 <button label="Retornar..." label_selected="Retornar..." name="ReturnOther..." 157 <button label="Retornar..." label_selected="Retornar..." name="ReturnOther..."
176 tool_tip="Devolver objetos para sus propietarios." /> 158 tool_tip="Devolver objetos para sus propietarios." />
177 <text type="string" length="1" name="Selected / sat upon:"> 159 <text type="string" length="1" name="Selected / sat upon:">
178 Seleccionado / puesto en: 160 Seleccionado / puesto en:
179 </text> 161 </text>
180 <text type="string" length="1" name="selected_objects_text">
181 0
182 </text>
183 <text type="string" length="1" name="Autoreturn other resident&amp;apos;s objects (minutes, 0 for off):"> 162 <text type="string" length="1" name="Autoreturn other resident&amp;apos;s objects (minutes, 0 for off):">
184 Autoretornar objetos de otros residentes (minutos, 0 para desligar): 163 Autoretornar objetos de otros residentes (minutos, 0 para desligar):
185 </text> 164 </text>
diff --git a/linden/indra/newview/skins/default/xui/es/floater_mute.xml b/linden/indra/newview/skins/default/xui/es/floater_mute.xml
index 31e7f3b..5921a19 100644
--- a/linden/indra/newview/skins/default/xui/es/floater_mute.xml
+++ b/linden/indra/newview/skins/default/xui/es/floater_mute.xml
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="mute floater" title="Residentes sin sonido &amp; Objetos"> 2<floater name="mute floater" title="Residentes &amp; Objetos sin sonido" short_title="Residentes &amp; Objetos sin sonido">
3 <scroll_list name="mutes" tool_tip="List of currently muted residents" /> 3 <scroll_list name="mutes" />
4 <button label="Desactivar sonido de residente..." 4 <button label="Desactivar sonido de residente..."
5 label_selected="Desactivar sonido de residente..." name="Mute resident..." 5 label_selected="Desactivar sonido de residente..." name="Mute resident..."
6 tool_tip="Dejar un residente sin sonido" /> 6 tool_tip="Dejar un residente sin sonido" />
diff --git a/linden/indra/newview/skins/default/xui/es/menu_viewer.xml b/linden/indra/newview/skins/default/xui/es/menu_viewer.xml
index 62f0f1b..23f457a 100644
--- a/linden/indra/newview/skins/default/xui/es/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/es/menu_viewer.xml
@@ -76,7 +76,7 @@
76 <menu_item_check label="Historial del chat" name="Chat History" /> 76 <menu_item_check label="Historial del chat" name="Chat History" />
77 <menu_item_check label="Mensaje instantáneo" name="Instant Message" /> 77 <menu_item_check label="Mensaje instantáneo" name="Instant Message" />
78 <menu_item_call label="Inventario" name="Inventory" /> 78 <menu_item_call label="Inventario" name="Inventory" />
79 <menu_item_check label="Dejar sin sonido por la lista" name="Mute List" /> 79 <menu_item_check label="Residentes &amp; Objetos sin sonido" name="Mute List" />
80 <menu_item_separator label="-----------" name="separator2" /> 80 <menu_item_separator label="-----------" name="separator2" />
81 <menu_item_check label="Controles de cámara" name="Camera Controls" /> 81 <menu_item_check label="Controles de cámara" name="Camera Controls" />
82 <menu_item_check label="Controles de movimiento" name="Movement Controls" /> 82 <menu_item_check label="Controles de movimiento" name="Movement Controls" />
diff --git a/linden/indra/newview/skins/default/xui/es/panel_group_land_money.xml b/linden/indra/newview/skins/default/xui/es/panel_group_land_money.xml
index 3c9732f..e2ce326 100644
--- a/linden/indra/newview/skins/default/xui/es/panel_group_land_money.xml
+++ b/linden/indra/newview/skins/default/xui/es/panel_group_land_money.xml
@@ -4,8 +4,8 @@
4 Parcelas pertenecientes al grupo son listadas 4 Parcelas pertenecientes al grupo son listadas
5con detalles de contribución. Un aviso aparece hasta que 5con detalles de contribución. Un aviso aparece hasta que
6el terreno total en uso sea menor o igual al total 6el terreno total en uso sea menor o igual al total
7de contribución. Las pestañas Planeamiento, Detalles y Ventas 7de contribución. Las pestañas Detalles y Ventas
8conceden informaciones sobre las finanzas&apos; del grupo. 8conceden informaciones sobre las finanzas del grupo.
9 </text> 9 </text>
10 <button label="?" name="help_button" /> 10 <button label="?" name="help_button" />
11 <text name="cant_view_group_land_text"> 11 <text name="cant_view_group_land_text">
diff --git a/linden/indra/newview/skins/default/xui/es/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/es/panel_preferences_general.xml
index e78ada3..9ca3e32 100644
--- a/linden/indra/newview/skins/default/xui/es/panel_preferences_general.xml
+++ b/linden/indra/newview/skins/default/xui/es/panel_preferences_general.xml
@@ -81,7 +81,7 @@
81 한국어 (Coreano) - Beta 81 한국어 (Coreano) - Beta
82 </combo_item> 82 </combo_item>
83 <combo_item type="string" length="1" name="Chinese"> 83 <combo_item type="string" length="1" name="Chinese">
84 汉语/漢語 (Chino) - Beta 84 中文 (简体) (Chino) - Beta
85 </combo_item> 85 </combo_item>
86 <combo_item type="string" name="Spanish"> 86 <combo_item type="string" name="Spanish">
87 Español - Beta 87 Español - Beta
diff --git a/linden/indra/newview/skins/default/xui/fr/alerts.xml b/linden/indra/newview/skins/default/xui/fr/alerts.xml
index a9d6ddd..0eeb551 100644
--- a/linden/indra/newview/skins/default/xui/fr/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/fr/alerts.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<alerts> 2<alerts>
3 <global name="skipnexttime"> 3 <global name="skipnexttime">
4 Ne plus afficher 4 Ne plus afficher
@@ -8,7 +8,7 @@
8 </global> 8 </global>
9 <alert name="MissingAlert"> 9 <alert name="MissingAlert">
10 <message name="message"> 10 <message name="message">
11 [ALERT_NAME] est absent de alerts.xml! 11 [ALERT_NAME] n&apos;est pas dans le fichier alerts.xml.
12 </message> 12 </message>
13 <option name="OK"> 13 <option name="OK">
14 OK 14 OK
@@ -16,7 +16,7 @@
16 </alert> 16 </alert>
17 <alert name="FloaterNotFound"> 17 <alert name="FloaterNotFound">
18 <message name="message"> 18 <message name="message">
19 Erreur de floater : Impossible de trouver les contrôles suivants : 19 Erreur floater : impossible de trouver les contrôles suivants :
20 20
21[CONTROLS] 21[CONTROLS]
22 </message> 22 </message>
@@ -55,10 +55,10 @@
55 </alert> 55 </alert>
56 <alert name="ConnectTimeout"> 56 <alert name="ConnectTimeout">
57 <message name="message"> 57 <message name="message">
58 Connexion impossible à [SECOND_LIFE] 58 Connexion à [SECOND_LIFE] impossible.
59Le service est peut-être interrompu. 59le service est peut-être interrompu.
60Veuillez réessayer d&apos;ici quelques minutes, ou cliquez sur Aide 60
61pour des conseils et un lien vers la page web d&apos;état du service. 61Veuillez réessayer dans quelques minutes, ou cliquez sur Aide pour obtenir des conseils et un lien vers la page web d&apos;état du service.
62 </message> 62 </message>
63 <option name="OK"> 63 <option name="OK">
64 OK 64 OK
@@ -83,28 +83,28 @@ pour des conseils et un lien vers la page web d&apos;état du service.
83 </alert> 83 </alert>
84 <alert name="CompileQueueSaveText"> 84 <alert name="CompileQueueSaveText">
85 <message name="message"> 85 <message name="message">
86 Problème lors de l&apos;upload du texte pour un script : [REASON]. Veuillez réessayer ultérieurement. 86 Une erreur est survenue lors du chargement du texte pour un script, suite au problème suivant : [REASON]. Veuillez réessayer ultérieurement.
87 </message> 87 </message>
88 </alert> 88 </alert>
89 <alert name="CompileQueueSaveBytecode"> 89 <alert name="CompileQueueSaveBytecode">
90 <message name="message"> 90 <message name="message">
91 Problème lors de l&apos;upload du script compilé : [REASON]. Veuillez réessayer ultérieurement. 91 Une erreur est survenue lors du chargement du script compilé, suite au problème suivant : [REASON]. Veuillez réessayer ultérieurement.
92 </message> 92 </message>
93 </alert> 93 </alert>
94 <alert name="WriteAnimationFail"> 94 <alert name="WriteAnimationFail">
95 <message name="message"> 95 <message name="message">
96 Echec d&apos;écriture des données d&apos;animation. 96 Une erreur est survenue lors de l&apos;écriture des données d&apos;animation. Veuillez réessayer ultérieurement.
97 </message> 97 </message>
98 </alert> 98 </alert>
99 <alert name="UploadAuctionSnapshotFail"> 99 <alert name="UploadAuctionSnapshotFail">
100 <message name="message"> 100 <message name="message">
101 Problème lors de l&apos;upload d&apos;un instantané d&apos;enchères : [REASON] 101 Un problème est survenu lors du chargement du script compilé, suite au problème suivant : [REASON]
102 </message> 102 </message>
103 </alert> 103 </alert>
104 <alert name="UnableToViewContentsMoreThanOne"> 104 <alert name="UnableToViewContentsMoreThanOne">
105 <message name="message"> 105 <message name="message">
106 Impossible d&apos;afficher le contenu de plus d&apos;un objet à la fois. 106 Impossible d&apos;afficher les contenus de plus d&apos;un objet à la fois.
107Veuillez sélectionner un seul objet et réessayez. 107Veuillez ne sélectionner qu&apos;un seul objet.
108 </message> 108 </message>
109 </alert> 109 </alert>
110 <alert name="MustSupplyVoteProposal"> 110 <alert name="MustSupplyVoteProposal">
@@ -120,14 +120,14 @@ Entrez une brève description des objectifs du groupe.
120 </alert> 120 </alert>
121 <alert name="CharacterSnapshotSaved"> 121 <alert name="CharacterSnapshotSaved">
122 <message name="message"> 122 <message name="message">
123 Un instantané de votre personnage a été sauvegardé. 123 Une photo de votre personnage a été sauvegardée.
124 124
125Visitez l&apos;exposition Webpage Studio pour le visualiser. 125Visitez l&apos;exposition Webpage Studio pour la voir.
126 </message> 126 </message>
127 </alert> 127 </alert>
128 <alert name="SaveClothingBodyChanges"> 128 <alert name="SaveClothingBodyChanges">
129 <message name="message"> 129 <message name="message">
130 Enregistrer toutes les modifications des vêtements/parties du corps ? 130 Enregistrer tous les changements dans les habits/parties du corps ?
131 </message> 131 </message>
132 <option name="SaveAll"> 132 <option name="SaveAll">
133 Tout enregistrer 133 Tout enregistrer
@@ -216,10 +216,10 @@ Souhaitez-vous accorder des droits d&apos;édition aux résidents selectionnésÂ
216[WANT_APPLY_MESSAGE] 216[WANT_APPLY_MESSAGE]
217 </message> 217 </message>
218 <option name="ApplyChanges"> 218 <option name="ApplyChanges">
219 Appliquer modifications 219 Enregistrer les modifications
220 </option> 220 </option>
221 <option name="IgnoreChanges"> 221 <option name="IgnoreChanges">
222 Ignorer modifications 222 Ignorer les modifications
223 </option> 223 </option>
224 <option name="Cancel"> 224 <option name="Cancel">
225 Annuler 225 Annuler
@@ -249,7 +249,7 @@ Vous n&apos;avez pas assez d&apos;argent pour créer ce groupe.
249 </alert> 249 </alert>
250 <alert name="GroupNameTooShort"> 250 <alert name="GroupNameTooShort">
251 <message name="message"> 251 <message name="message">
252 Les noms de groupes doivent comporter quatre lettres minimum. 252 Les noms de groupes doivent comporter 4 lettres minimum.
253 </message> 253 </message>
254 </alert> 254 </alert>
255 <alert name="GroupNameUsesReservedWord"> 255 <alert name="GroupNameUsesReservedWord">
@@ -260,7 +260,7 @@ choisir un autre nom.
260 </alert> 260 </alert>
261 <alert name="MustSpecifyGroupNoticeSubject"> 261 <alert name="MustSpecifyGroupNoticeSubject">
262 <message name="message"> 262 <message name="message">
263 Vous devez préciser le sujet afin d&apos;envoyer une notification au groupe. 263 Pour envoyer une notice au groupe, vous devez indiquer un sujet.
264 </message> 264 </message>
265 <option name="OK"> 265 <option name="OK">
266 OK 266 OK
@@ -274,10 +274,10 @@ Entrez une brève description des objectifs du groupe.
274 </alert> 274 </alert>
275 <alert name="AddGroupOwnerWarning"> 275 <alert name="AddGroupOwnerWarning">
276 <message name="message"> 276 <message name="message">
277 Vous vous apprêtez à ajouter des membres du groupe au rôle de [ROLE_NAME]. 277 Vous êtes sur le point d&apos;ajouter des membres du groupe dans le rôle de [ROLE_NAME].
278Les membres ne peuvent pas être déchus de ce rôle. 278Les membres ne peuvent pas être destitués de ce rôle.
279Ils devront quitter le rôle par eux-mêmes. 279Ils doivent donner eux-mêmes leur démission.
280Etes-vous sûr(e) de vouloir poursuivre? 280Êtes-vous certain de vouloir continuer ?
281 </message> 281 </message>
282 <ignore name="ignore"> 282 <ignore name="ignore">
283 Lorsque vous donnez à des membres du groupe le rôle de « propriétaire » 283 Lorsque vous donnez à des membres du groupe le rôle de « propriétaire »
@@ -291,13 +291,11 @@ Etes-vous sûr(e) de vouloir poursuivre?
291 </alert> 291 </alert>
292 <alert name="AssignDangerousActionWarning"> 292 <alert name="AssignDangerousActionWarning">
293 <message name="message"> 293 <message name="message">
294 Vous vous apprêtez à ajouter la Faculté &apos;[ACTION_NAME]&apos; au 294 Vous êtes sur le point d&apos;ajouter le pouvoir « [ACTION_NAME] » au rôle « [ROLE_NAME] ».
295Rôle &apos;[ROLE_NAME]&apos;. 295 *Avertissement*
296 Tout membre disposant de ce pouvoir peut s&apos;affecter lui-même, ainsi que tout autre membre, à des rôles disposant de pouvoirs plus importants, et accéder potentiellement à des pouvoirs proches de ceux d&apos;un propriétaire. Assurez-vous de bien comprendre ce que vous faites avant d&apos;attribuer ce pouvoir.
296 297
297 *AVERTISSEMENT* 298Ajouter ce pouvoir à « [ROLE_NAME] » ?
298Tout membre disposant de cette Faculté peut s&apos;affecter lui-même --ainsi que tout autre Membre-- à des Rôles disposant de pouvoirs plus grands, et accéder potentiellement à des pouvoirs proches de ceux d&apos;un propriétaire. Assurez-vous de savoir ce que vous faites avant d&apos;attribuer cette Faculté.
299
300Ajouter cette Faculté à &apos;[ROLE_NAME]&apos;?
301 </message> 299 </message>
302 <option name="Yes"> 300 <option name="Yes">
303 Oui 301 Oui
@@ -308,13 +306,13 @@ Ajouter cette Faculté à &apos;[ROLE_NAME]&apos;?
308 </alert> 306 </alert>
309 <alert name="AssignDangerousAbilityWarning"> 307 <alert name="AssignDangerousAbilityWarning">
310 <message name="message"> 308 <message name="message">
311 Vous vous apprêtez à ajouter la Faculté &apos;[ACTION_NAME]&apos; au 309 Vous êtes sur le point d&apos;ajouter le pouvoir « [ACTION_NAME] » au
312Rôle &apos;[ROLE_NAME]&apos;. 310rôle « [ROLE_NAME] ».
313 311
314 *AVERTISSEMENT* 312 *Avertissement*
315Tout membre disposant de cette Faculté peut s&apos;attribuer --ainsi qu&apos;à tout autre Membre-- toutes Facultés, et accéder à des pouvoirs proches de ceux d&apos;un propriétaire. 313 Tout membre dans un rôle avec ce pouvoir peut s&apos;attribuer à lui-même, ainsi qu&apos;à tout autre membre, Tous les pouvoirs, et accéder potentiellement à des pouvoirs proches de ceux d&apos;un propriétaire.
316 314
317Ajouter cette Faculté à &apos;[ROLE_NAME]&apos;? 315Ajouter ce pouvoir à « [ROLE_NAME] » ?
318 </message> 316 </message>
319 <option name="Yes"> 317 <option name="Yes">
320 Oui 318 Oui
@@ -326,19 +324,18 @@ Ajouter cette Faculté à &apos;[ROLE_NAME]&apos;?
326 <alert name="ClickPublishHelpGroup"> 324 <alert name="ClickPublishHelpGroup">
327 <message name="message"> 325 <message name="message">
328 L&apos;option &quot;Publier sur le Web&quot; nous permet de publier 326 L&apos;option &quot;Publier sur le Web&quot; nous permet de publier
329le nom du groupe, son insigne, sa charte, ses titres, et ses fondateurs sur le 327le nom du groupe, son logo, sa charte, ses titres, et ses fondateurs sur le
330site [SECOND_LIFE]. Il est de votre responsabilité d&apos;indiquer si 328site [SECOND_LIFE]. Il est de votre responsabilité d&apos;indiquer si
331tout ou partie du contenu ci-dessus est considéré comme Adulte au regard 329tout ou partie du contenu ci-dessus est considéré comme Adulte selon les règles de base de la Communauté.
332des règles de base de la Communauté.
333 </message> 330 </message>
334 </alert> 331 </alert>
335 <alert name="ClickPublishHelpLand"> 332 <alert name="ClickPublishHelpLand">
336 <message name="message"> 333 <message name="message">
337 L&apos;option &quot;Publier sur le Web&quot; nous permet de publier 334 Sélectionner l&apos;option Afficher dans la recherche
338le nom, la description, l&apos;instantané et la localisation de cette parcelle 335En cochant cette case, votre parcelle apparaîtra :
339sur le site [SECOND_LIFE]. Il est de votre responsabilité d&apos;indiquer si 336- dans les résultats de recherche ;
340tout ou partie du contenu ci-dessus est considéré comme Adulte au regard 337- dans les objets publics ;
341des règles de base de la Communauté. 338- dans la recherche web.
342 </message> 339 </message>
343 </alert> 340 </alert>
344 <alert name="ClickPublishHelpLandDisabled"> 341 <alert name="ClickPublishHelpLandDisabled">
@@ -348,22 +345,23 @@ des règles de base de la Communauté.
348 </alert> 345 </alert>
349 <alert name="ClickPublishHelpPostcard"> 346 <alert name="ClickPublishHelpPostcard">
350 <message name="message"> 347 <message name="message">
351 L&apos;option &quot;Publier sur le Web&quot; nous permet de publier 348 L&apos;option Publier sur le Web nous permet de publier
352le nom du photographe dans [SECOND_LIFE], le sujet, le lieu, le message et 349le nom du photographe dans [SECOND_LIFE], le sujet, le lieu, le message et
353l&apos;instantané sur le site [SECOND_LIFE]. Il est de votre responsabilité d&apos;indiquer si 350la photo sur le site [SECOND_LIFE]. Vous devez indiquer indiquer si
354tout ou partie du contenu des instantanés ci-dessus est considéré comme Adulte au regard 351les photos ci-dessus contiennent du contenu pour Adultes, conformément aux
355des règles de base de la Communauté. 352règles de base de la Communauté.
356 </message> 353 </message>
357 </alert> 354 </alert>
358 <alert name="ClickPublishHelpAvatar"> 355 <alert name="ClickPublishHelpAvatar">
359 <message name="message"> 356 <message name="message">
360 L&apos;option &quot;Publier sur le Web&quot; nous permet de publier 357 Si vous sélectionnez Afficher dans la recherche :
361votre nom, image, et texte &apos;A propos&apos; sur le site [SECOND_LIFE]. 358- votre profil apparaîtra dans les résultats de recherche ;
359- un lien vers votre profil apparaîtra dans les pages de groupe publiques.
362 </message> 360 </message>
363 </alert> 361 </alert>
364 <alert name="ClickPartnerHelpAvatar"> 362 <alert name="ClickPartnerHelpAvatar">
365 <message name="message"> 363 <message name="message">
366 Vous pouvez proposer à un autre résident de dissoudre un partenariat existant par le biais du site de [SECOND_LIFE]. 364 Vous pouvez proposer à un autre résident de devenir votre partenaire ou dissoudre un partenariat existant à partir du site de [SECOND_LIFE].
367 365
368Aller sur le site de Second Life pour avoir plus d&apos;informations sur les partenariats ? 366Aller sur le site de Second Life pour avoir plus d&apos;informations sur les partenariats ?
369 </message> 367 </message>
@@ -374,16 +372,36 @@ Aller sur le site de Second Life pour avoir plus d&apos;informations sur les par
374 Annuler 372 Annuler
375 </option> 373 </option>
376 </alert> 374 </alert>
375 <alert name="ClickWebProfileHelpAvatar">
376 <message name="message">
377 Si ce résident a défini une URL de profil web, vous pouvez :
378 * Cliquer sur Charger pour afficher la page dans cet onglet ;
379 * Cliquer sur Charger &gt; Dans un navigateur externe, pour afficher la page dans votre navigateur par défaut ;
380 * Cliquer sur Charger &gt; URL du domicile, pour retourner au profil web du résident.
381
382Lorsque vous êtes dans votre propre profil, vous pouvez définir n&apos;importe quelle URL comme profil web. Pour cela, saisissez l&apos;URL et cliquez sur OK.
383Les autres résidents peuvent visiter l&apos;URL que vous avez définie en regardant votre profil.
384 </message>
385 </alert>
386 <alert name="ClickWebProfileNoWebHelpAvatar">
387 <message name="message">
388 Si ce résident a défini une URL de profil web, vous pouvez :
389 * Cliquer sur Ouvrir pour afficher la page dans votre navigateur par défaut.
390
391Lorsque vous êtes dans votre propre profil, vous pouvez définir n&apos;importe quelle URL comme profil web. Pour cela, saisissez l&apos;URL et cliquez sur OK.
392Les autres résidents peuvent visiter l&apos;URL que vous avez définie en regardant votre profil.
393 </message>
394 </alert>
377 <alert name="ReputationMinGreaterThanMax"> 395 <alert name="ReputationMinGreaterThanMax">
378 <message name="message"> 396 <message name="message">
379 La réputation minimum est supérieure au maximum. 397 La réputation minimum est supérieure au maximum.
380Abaissez le minimum ou augmentez le maximum. 398Veuillez aissez le minimum ou augmentez le maximum.
381 </message> 399 </message>
382 </alert> 400 </alert>
383 <alert name="MoneyMinGreaterThanMax"> 401 <alert name="MoneyMinGreaterThanMax">
384 <message name="message"> 402 <message name="message">
385 Le minimum est supérieur au maximum. 403 Le minimum est supérieur au maximum.
386Veuillez abaisser le minimum ou augmenter le maximum. 404Veuillez baisser le minimum ou augmenter le maximum.
387 </message> 405 </message>
388 </alert> 406 </alert>
389 <alert name="OfficerTitleTooLong"> 407 <alert name="OfficerTitleTooLong">
@@ -429,11 +447,11 @@ Souhaitez-vous continuer ?
429 </alert> 447 </alert>
430 <alert name="JoinGroupCanAfford"> 448 <alert name="JoinGroupCanAfford">
431 <message name="message"> 449 <message name="message">
432 L&apos;inscription à ce groupe coûte L$[COST]. 450 Rejoindre ce groupe coûte [COST] L$.
433Souhaitez-vous continuer ? 451Voulez-vous continuer ?
434 </message> 452 </message>
435 <option name="Join"> 453 <option name="Join">
436 Fusionner 454 Rejoindre
437 </option> 455 </option>
438 <option name="Cancel"> 456 <option name="Cancel">
439 Annuler 457 Annuler
@@ -441,14 +459,13 @@ Souhaitez-vous continuer ?
441 </alert> 459 </alert>
442 <alert name="JoinGroupCannotAfford"> 460 <alert name="JoinGroupCannotAfford">
443 <message name="message"> 461 <message name="message">
444 L&apos;inscription à ce groupe coûte L$[COST]. 462 Rejoindre ce groupe coûte [COST] L$.
445Vous ne disposez pas d&apos;un solde suffisant pour vous inscrire à ce groupe. 463Vous n&apos;avez pas suffisamment de L$ pour rejoindre ce groupe.
446 </message> 464 </message>
447 </alert> 465 </alert>
448 <alert name="LandBuyPass"> 466 <alert name="LandBuyPass">
449 <message name="message"> 467 <message name="message">
450 Pour L$[COST], vous pouvez accéder à ce terrain (&apos;[PARCEL_NAME]&apos;) 468 Pour [COST] L$ vous pouvez pénétrer sur ce terrain ([PARCEL_NAME]) et y rester [TIME] heures. Acheter un pass ?
451pour [TIME] heure(s). Acheter un laissez-passer ?
452 </message> 469 </message>
453 <option name="OK"> 470 <option name="OK">
454 OK 471 OK
@@ -466,19 +483,17 @@ si vous êtes sûr(e) de vouloir démarrer des enchères.
466 </alert> 483 </alert>
467 <alert name="SalePriceRestriction"> 484 <alert name="SalePriceRestriction">
468 <message name="message"> 485 <message name="message">
469 Le prix de vente doit être &gt; L$0 si vous vendez à tout le monde. 486 Pour rendre l&apos;annonce disponible à tous, le prix de vente doit être supérieur à 0 L$.
470Veuillez choisir une personne pour lui vendre à L$0. 487Si le prix de vente est de 0 L$, vous devez choisir un acheteur spécifique.
471 </message> 488 </message>
472 </alert> 489 </alert>
473 <alert name="ConfirmLandSaleChange"> 490 <alert name="ConfirmLandSaleChange">
474 <message name="message"> 491 <message name="message">
475 Le terrain sélectionné d&apos;une surface de [LAND_SIZE] m2 est mis en vente. 492 Le terrain sélectionné, de [LAND_SIZE] m², est mis en vente.
476Votre prix de vente sera de L$[SALE_PRICE], pour une acquisition par [NAME]. 493Votre prix de vente sera de [SALE_PRICE] L$ et la vente sera disponible à [NAME].
477
478Voulez-vous poursuivre les modifications ?
479 </message> 494 </message>
480 <option name="Continue"> 495 <option name="Continue">
481 Continuer 496 OK
482 </option> 497 </option>
483 <option name="Cancel"> 498 <option name="Cancel">
484 Annuler 499 Annuler
@@ -486,12 +501,12 @@ Voulez-vous poursuivre les modifications ?
486 </alert> 501 </alert>
487 <alert name="ConfirmLandSaleToAnyoneChange"> 502 <alert name="ConfirmLandSaleToAnyoneChange">
488 <message name="message"> 503 <message name="message">
489 Attention : En cliquant sur Vendre à n&apos;importe qui, vous rendez votre 504 Attention : en cliquant sur Vendre à n&apos;importe qui, vous rendez votre
490terrain disponible à toute la communauté de Second Life, même aux personnes qui ne sont pas dans 505terrain disponible à toute la communauté de Second Life, même aux personnes qui ne sont pas dans
491cette région. 506cette région.
492 507
493Le terrain sélectionné, de [LAND_SIZE] m², est mis en vente. 508Le terrain sélectionné, de [LAND_SIZE] m², est mis en vente.
494Votre prix de vente sera de [SALE_PRICE] $L et la vente sera disponible à [NAME]. 509Votre prix de vente sera de [SALE_PRICE] L$ et la vente sera disponible à [NAME].
495 </message> 510 </message>
496 <option name="Continue"> 511 <option name="Continue">
497 OK 512 OK
@@ -502,17 +517,14 @@ Votre prix de vente sera de [SALE_PRICE] $L et la vente sera disponible à [NAME
502 </alert> 517 </alert>
503 <alert name="ReturnObjectsDeededToGroup"> 518 <alert name="ReturnObjectsDeededToGroup">
504 <message name="message"> 519 <message name="message">
505 Etes-vous sûr(e) de vouloir renvoyer tous les objets partagés 520 Êtes-vous certain de vouloir renvoyer tous les objets partagés par le groupe [NAME] sur cette parcelle dans l&apos;inventaire du propriétaire précédent ?
506avec le groupe &apos;[NAME]&apos; sur cette parcelle de terrain
507vers l&apos;inventaire de leurs propriétaires précédents?
508 521
509*AVERTISSEMENT* Ceci supprimera les objets non-cessibles 522*Avertissement* Tous les objets non transférables cédés au groupe seront supprimés !
510transférés au groupe !
511 523
512Objets : [N] 524Objets : [N]
513 </message> 525 </message>
514 <option name="Return"> 526 <option name="Return">
515 Retourner 527 OK
516 </option> 528 </option>
517 <option name="Cancel"> 529 <option name="Cancel">
518 Annuler 530 Annuler
@@ -520,14 +532,12 @@ Objets : [N]
520 </alert> 532 </alert>
521 <alert name="ReturnObjectsOwnedByUser"> 533 <alert name="ReturnObjectsOwnedByUser">
522 <message name="message"> 534 <message name="message">
523 Etes-vous sûr(e) de vouloir renvoyer tous les objets appartenant 535 Etes-vous certain de vouloir renvoyer tous les objets que [NAME] possède sur cette parcelle dans son inventaire ?
524au résident &apos;[NAME]&apos; sur cette parcelle de terrain
525vers son inventaire ?
526 536
527Objets : [N] 537Objets : [N]
528 </message> 538 </message>
529 <option name="Return"> 539 <option name="Return">
530 Retourner 540 OK
531 </option> 541 </option>
532 <option name="Cancel"> 542 <option name="Cancel">
533 Annuler 543 Annuler
@@ -535,14 +545,12 @@ Objets : [N]
535 </alert> 545 </alert>
536 <alert name="ReturnObjectsOwnedBySelf"> 546 <alert name="ReturnObjectsOwnedBySelf">
537 <message name="message"> 547 <message name="message">
538 Etes-vous sûr(e) de vouloir renvoyer tous les objets 548 Êtes-vous certain de vouloir renvoyer tous les objets que vous possédez sur cette parcelle dans votre inventaire ?
539vous appartenant sur cette parcelle de terrain
540vers votre inventaire ?
541 549
542Objets : [N] 550Objets : [N]
543 </message> 551 </message>
544 <option name="Return"> 552 <option name="Return">
545 Retourner 553 OK
546 </option> 554 </option>
547 <option name="Cancel"> 555 <option name="Cancel">
548 Annuler 556 Annuler
@@ -550,17 +558,15 @@ Objets : [N]
550 </alert> 558 </alert>
551 <alert name="ReturnObjectsNotOwnedBySelf"> 559 <alert name="ReturnObjectsNotOwnedBySelf">
552 <message name="message"> 560 <message name="message">
553 Etes-vous sûr(e) de vouloir renvoyer tous les objets ne vous appartenant PAS 561 Êtes-vous certain de vouloir renvoyer tous les objets que vous ne possédez pas sur cette parcelle dans l&apos;inventaire de leur propriétaire ?
554sur cette parcelle de terrain vers l&apos;inventaire de leur propriétaire ? 562Les objets transférables cédés à un groupe seront renvoyés aux propriétaires précédents.
555Les objets cessibles transférés à des groupes seront
556renvoyés à leurs propriétaires précédents.
557 563
558*AVERTISSEMENT* Ceci supprimera les objets non-cessibles transférés au groupe ! 564*Avertissement* Tous les objets non transférables cédés au groupe seront supprimés !
559 565
560Objets : [N] 566Objets : [N]
561 </message> 567 </message>
562 <option name="Return"> 568 <option name="Return">
563 Retourner 569 OK
564 </option> 570 </option>
565 <option name="Cancel"> 571 <option name="Cancel">
566 Annuler 572 Annuler
@@ -568,33 +574,37 @@ Objets : [N]
568 </alert> 574 </alert>
569 <alert name="ReturnObjectsNotOwnedByUser"> 575 <alert name="ReturnObjectsNotOwnedByUser">
570 <message name="message"> 576 <message name="message">
571 Etes-vous sûr(e) de vouloir renvoyer tous les objets n&apos;appartenant PAS 577 Êtes-vous certain de vouloir renvoyer tous les objets que [NAME] ne possède pas sur cette parcelle dans l&apos;inventaire de leur propriétaire ?
572à [NAME] sur cette parcelle de terrain vers l&apos;inventaire de leur propriétaire ? 578Les objets transférables cédés à un groupe seront renvoyés aux propriétaires précédents.
573Les objets cessibles transférés à des groupes seront
574renvoyés à leurs propriétaires précédents.
575 579
576*AVERTISSEMENT* Ceci supprimera les objets non-cessibles transférés au groupe ! 580*Avertissement* Tous les objets non transférables cédés au groupe seront supprimés !
577 581
578Objets : [N] 582Objets : [N]
579 </message> 583 </message>
580 <option name="Return"> 584 <option name="Return">
581 Retourner 585 OK
582 </option> 586 </option>
583 <option name="Cancel"> 587 <option name="Cancel">
584 Annuler 588 Annuler
585 </option> 589 </option>
586 </alert> 590 </alert>
587 <alert name="ReturnAllTopObjects"> 591 <alert name="ReturnAllTopObjects">
592 <message name="message">
593 Êtes-vous certain de vouloir renvoyer tous les objets de la liste dans l&apos;inventaire de leur propriétaire ?
594 </message>
588 <option name="Return"> 595 <option name="Return">
589 Retourner 596 OK
590 </option> 597 </option>
591 <option name="Cancel"> 598 <option name="Cancel">
592 Annuler 599 Annuler
593 </option> 600 </option>
594 </alert> 601 </alert>
595 <alert name="DisableAllTopObjects"> 602 <alert name="DisableAllTopObjects">
603 <message name="message">
604 Êtes-vous certain de vouloir désactiver tous les objets dans cette région ?
605 </message>
596 <option name="Disable"> 606 <option name="Disable">
597 Désactiver 607 OK
598 </option> 608 </option>
599 <option name="Cancel"> 609 <option name="Cancel">
600 Annuler 610 Annuler
@@ -602,14 +612,12 @@ Objets : [N]
602 </alert> 612 </alert>
603 <alert name="ReturnObjectsNotOwnedByGroup"> 613 <alert name="ReturnObjectsNotOwnedByGroup">
604 <message name="message"> 614 <message name="message">
605 Renvoyer les objets sur cette parcelle de terrain 615 Renvoyer les objets de cette parcelle qui ne sont pas partagés avec le groupe [NAME] à leur propriétaire ?
606qui ne sont PAS partagés avec le groupe [NAME]
607à leurs propriétaires ?
608 616
609Objets : [N] 617Objets : [N]
610 </message> 618 </message>
611 <option name="Return"> 619 <option name="Return">
612 Retourner 620 OK
613 </option> 621 </option>
614 <option name="Cancel"> 622 <option name="Cancel">
615 Annuler 623 Annuler
@@ -617,25 +625,24 @@ Objets : [N]
617 </alert> 625 </alert>
618 <alert name="UnableToDisableOutsideScripts"> 626 <alert name="UnableToDisableOutsideScripts">
619 <message name="message"> 627 <message name="message">
620 Impossible de désactiver les scripts extérieurs. 628 Impossible de désactiver les scripts.
621La région entière autorise les dégâts (not safe). 629Les dégâts sont autorisés dans toute la région.
622Les scripts doivent être autorisés pour faire fonctionner les armes à feu. 630Pour que les armes fonctionnent, les scripts doivent être autorisés.
623 </message> 631 </message>
624 </alert> 632 </alert>
625 <alert name="MustBeInParcel"> 633 <alert name="MustBeInParcel">
626 <message name="message"> 634 <message name="message">
627 Vous devez vous trouver à l&apos;intérieur de la parcelle de terrain 635 Pour définir le point d&apos;atterrissage, vous devez vous trouver à l&apos;intérieur de la parcelle.
628pour définir le point d&apos;atterrissage.
629 </message> 636 </message>
630 </alert> 637 </alert>
631 <alert name="PromptRecipientEmail"> 638 <alert name="PromptRecipientEmail">
632 <message name="message"> 639 <message name="message">
633 Veuillez saisir l&apos;adresse mail du destinataire. 640 Veuillez saisir une adresse e-mail valide pour le(s) destinataire(s).
634 </message> 641 </message>
635 </alert> 642 </alert>
636 <alert name="PromptSelfEmail"> 643 <alert name="PromptSelfEmail">
637 <message name="message"> 644 <message name="message">
638 Veuillez saisir votre adresse mail. 645 Veuillez saisir votre adresse e-mail.
639 </message> 646 </message>
640 </alert> 647 </alert>
641 <alert name="PromptMissingSubjMsg"> 648 <alert name="PromptMissingSubjMsg">
@@ -651,78 +658,65 @@ pour définir le point d&apos;atterrissage.
651 </alert> 658 </alert>
652 <alert name="ErrorProcessingSnapshot"> 659 <alert name="ErrorProcessingSnapshot">
653 <message name="message"> 660 <message name="message">
654 Erreur dans le traitement des données de l&apos;instantané 661 Erreur dans le traitement des données de la photo
655 </message> 662 </message>
656 </alert> 663 </alert>
657 <alert name="ErrorEncodingSnapshot"> 664 <alert name="ErrorEncodingSnapshot">
658 <message name="message"> 665 <message name="message">
659 Erreur d&apos;encodage de l&apos;instantané ! 666 Erreur d&apos;encodage de la photo.
660 </message> 667 </message>
661 </alert> 668 </alert>
662 <alert name="ErrorUploadingPostcard"> 669 <alert name="ErrorUploadingPostcard">
663 <message name="message"> 670 <message name="message">
664 Problème lors de l&apos;upload d&apos;une carte postale : [REASON] 671 Une erreur est survenue lors du chargement du script compilé, suite au problème suivant : [REASON]
665 </message> 672 </message>
666 </alert> 673 </alert>
667 <alert name="ErrorUploadingReportScreenshot"> 674 <alert name="ErrorUploadingReportScreenshot">
668 <message name="message"> 675 <message name="message">
669 Problème lors de l&apos;envoi d&apos;une capture d&apos;écran : [REASON] 676 Une erreur est survenue lors du chargement de la capture d&apos;écran destinée au rapport, suite au problème suivant : [REASON]
670 </message> 677 </message>
671 </alert> 678 </alert>
672 <alert name="MustAgreeToLogIn"> 679 <alert name="MustAgreeToLogIn">
673 <message name="message"> 680 <message name="message">
674 Vous devez accepter les Conditions Générales d&apos;Utilisation pour continuer à vous connecter à [SECOND_LIFE]. 681 Pour vous connecter à [SECOND_LIFE], vous devez accepter les Conditions d&apos;utilisation.
675 </message> 682 </message>
676 </alert> 683 </alert>
677 <alert name="CouldNotPutOnOutfit"> 684 <alert name="CouldNotPutOnOutfit">
678 <message name="message"> 685 <message name="message">
679 Impossible de revêtir la tenue. 686 Impossible de mettre cet ensemble.
680Le dossier Tenues ne contient ni vêtements, ni éléments corporels, ni attachements. 687Ce dossier ne contient pas d&apos;habits, de parties du corps ni de pièces jointes.
681 </message> 688 </message>
682 </alert> 689 </alert>
683 <alert name="CannotWearTrash"> 690 <alert name="CannotWearTrash">
684 <message name="message"> 691 <message name="message">
685 Impossible de porter des vêtements ou parties du corps se trouvant dans la corbeille. 692 Vous ne pouvez pas porter d&apos;habits ni de parties du corps se trouvant dans la corbeille.
686 </message> 693 </message>
687 </alert> 694 </alert>
688 <alert name="CannotWearInfoNotComplete"> 695 <alert name="CannotWearInfoNotComplete">
689 <message name="message"> 696 <message name="message">
690 Impossible de porter cet élément car ses informations ne sont pas encore disponibles. 697 Vous ne pouvez pas porter cet article car il n&apos;a pas encore été chargé. Veuillez réessayer dans une minute.
691Veuillez réessayer dans une minute.
692 </message>
693 </alert>
694 <alert name="MustHaveAccountToLogInNoLinks">
695 <message name="message">
696 Vous devez disposer d&apos;un compte pour vous connecter à [SECOND_LIFE].
697 </message> 698 </message>
698 <option name="OK">
699 OK
700 </option>
701 </alert> 699 </alert>
702 <alert name="MustHaveAccountToLogIn"> 700 <alert name="MustHaveAccountToLogIn">
703 <message name="message"> 701 <message name="message">
704 Vous devez disposer d&apos;un compte pour vous connecter à [SECOND_LIFE]. 702 Oups! Vous avez oublié de fournir certaines informations.
705 703Vous devez saisir le nom et le prénom de votre avatar.
706Vous rendre sur www.secondlife.com pour créer un nouveau compte ? 704
705Pour entrer dans [SECOND_LIFE], vous devez avoir un compte. Voulez-vous en créer un maintenant ?
707 </message> 706 </message>
708 <option name="OK"> 707 <option name="OK">
709 OK 708 Créer un compte
710 </option> 709 </option>
711 <option name="Cancel"> 710 <option name="Cancel">
712 Annuler 711 Réessayer
713 </option> 712 </option>
714 </alert> 713 </alert>
715 <alert name="AddClassified"> 714 <alert name="AddClassified">
716 <message name="message"> 715 <message name="message">
717 Les petites annonces sont publiées dans la section &apos;Annonces&apos; 716 Les petites annonces sont publiées à l&apos;onglet Petites annonces de la section Recherche pendant une semaine.
718du module de recherche, pour une durée d&apos;une semaine. 717Rédigez votre annonce, puis cliquez sur Publier pour l&apos;ajouter à la liste des annonces.
719 718Au moment de cliquer sur Publier, vous serez invité à payer des frais.
720Rédigez votre annonce, puis cliquez sur &apos;Publier...&apos; pour 719Plus vous payez cher, plus votre annonce est visible dans la liste ainsi que dans les résultats de recherche de mots-clés.
721l&apos;ajouter à la liste des annonces.
722
723Vous devrez payer des frais d&apos;insertion au moment de cliquer sur &apos;Publier&apos;.
724Plus vous payez, plus votre annonce apparaîtra en haut de liste.
725Ceci est également valable pour les résultats de recherche de mots-clé.
726 </message> 720 </message>
727 <option name="OK"> 721 <option name="OK">
728 OK 722 OK
@@ -736,11 +730,11 @@ Ceci est également valable pour les résultats de recherche de mots-clé.
736 </alert> 730 </alert>
737 <alert name="DeleteClassified"> 731 <alert name="DeleteClassified">
738 <message name="message"> 732 <message name="message">
739 Supprimer l&apos;annonce &apos;[NAME]&apos;? 733 Supprimer l&apos;annonce [NAME] ?
740Les frais d&apos;insertion sont non remboursables. 734Une fois payés, les frais ne sont pas remboursables.
741 </message> 735 </message>
742 <option name="Delete"> 736 <option name="Delete">
743 Supprimer 737 OK
744 </option> 738 </option>
745 <option name="Cancel"> 739 <option name="Cancel">
746 Annuler 740 Annuler
@@ -762,10 +756,10 @@ Les frais d&apos;insertion sont non remboursables.
762 </alert> 756 </alert>
763 <alert name="DeleteAvatarPick"> 757 <alert name="DeleteAvatarPick">
764 <message name="message"> 758 <message name="message">
765 Supprimer [PICK] des lieux favoris ? 759 Supprimer le favori [PICK] ?
766 </message> 760 </message>
767 <option name="Delete"> 761 <option name="Delete">
768 Supprimer 762 OK
769 </option> 763 </option>
770 <option name="Cancel"> 764 <option name="Cancel">
771 Annuler 765 Annuler
@@ -788,10 +782,10 @@ Veuillez appliquer vos modifications et quitter
788 </alert> 782 </alert>
789 <alert name="PromptGoToEventsPage"> 783 <alert name="PromptGoToEventsPage">
790 <message name="message"> 784 <message name="message">
791 Aller sur la page des événements [SECOND_LIFE] ? 785 Aller à la page web de [SECOND_LIFE] réservée aux événements ?
792 </message> 786 </message>
793 <option name="GotoPage"> 787 <option name="GotoPage">
794 Aller à la Page 788 OK
795 </option> 789 </option>
796 <option name="Cancel"> 790 <option name="Cancel">
797 Annuler 791 Annuler
@@ -809,17 +803,17 @@ Veuillez appliquer vos modifications et quitter
809 </alert> 803 </alert>
810 <alert name="SelectProposalToView"> 804 <alert name="SelectProposalToView">
811 <message name="message"> 805 <message name="message">
812 Veuillez choisir une proposition à afficher. 806 Veuillez sélectionner une proposition.
813 </message> 807 </message>
814 </alert> 808 </alert>
815 <alert name="SelectHistoryItemToView"> 809 <alert name="SelectHistoryItemToView">
816 <message name="message"> 810 <message name="message">
817 Veuillez choisir un elément de l&apos;historique à afficher. 811 Veuillez sélectionner un historique.
818 </message> 812 </message>
819 </alert> 813 </alert>
820 <alert name="ResetShowNextTimeDialogs"> 814 <alert name="ResetShowNextTimeDialogs">
821 <message name="message"> 815 <message name="message">
822 Réinitialiser tous les dialogues &apos;Afficher la prochaine fois&apos; ? 816 Souhaitez-vous réactiver tous les pop-ups que vous aviez désactivés ?
823 </message> 817 </message>
824 <option name="OK"> 818 <option name="OK">
825 OK 819 OK
@@ -841,7 +835,7 @@ Veuillez appliquer vos modifications et quitter
841 </alert> 835 </alert>
842 <alert name="CacheWillClear"> 836 <alert name="CacheWillClear">
843 <message name="message"> 837 <message name="message">
844 Le cache sera vidé au redémarrage de [SECOND_LIFE]. 838 Le cache sera vidé après le redémarrage de [SECOND_LIFE].
845 </message> 839 </message>
846 </alert> 840 </alert>
847 <alert name="CacheWillBeMoved"> 841 <alert name="CacheWillBeMoved">
@@ -862,11 +856,10 @@ Remarque : cela videra le cache.
862 </alert> 856 </alert>
863 <alert name="GoToAuctionPage"> 857 <alert name="GoToAuctionPage">
864 <message name="message"> 858 <message name="message">
865 Aller sur la page [SECOND_LIFE] pour afficher le détail des enchères 859 Aller à la page web de [SECOND_LIFE] pour voir le détail des enchères ou enchérir ?
866ou enchérir ?
867 </message> 860 </message>
868 <option name="GotoPage"> 861 <option name="GotoPage">
869 Aller à la Page 862 OK
870 </option> 863 </option>
871 <option name="Cancel"> 864 <option name="Cancel">
872 Annuler 865 Annuler
@@ -874,7 +867,7 @@ ou enchérir ?
874 </alert> 867 </alert>
875 <alert name="SaveChanges"> 868 <alert name="SaveChanges">
876 <message name="message"> 869 <message name="message">
877 Enregistrer les modifications ? 870 Enregistrer les changements ?
878 </message> 871 </message>
879 <option name="Save"> 872 <option name="Save">
880 Enregistrer 873 Enregistrer
@@ -888,76 +881,76 @@ ou enchérir ?
888 </alert> 881 </alert>
889 <alert name="GestureSaveFailedTooManySteps"> 882 <alert name="GestureSaveFailedTooManySteps">
890 <message name="message"> 883 <message name="message">
891 Echec de la sauvegarde du geste. 884 L&apos;enregistrement du geste a échoué.
892Ce geste comporte trop d&apos;étapes. 885Il y a trop d&apos;étapes dans ce geste.
893Essayer de retirer quelques étapes, puis enregistrez à nouveau. 886Essayez d&apos;en supprimer quelques-unes.
894 </message> 887 </message>
895 </alert> 888 </alert>
896 <alert name="GestureSaveFailedTryAgain"> 889 <alert name="GestureSaveFailedTryAgain">
897 <message name="message"> 890 <message name="message">
898 Echec de la sauvegarde du geste. Veuillez réessayer dans une minute. 891 L&apos;enregistrement du geste a échoué. Veuillez réessayer dans une minute.
899 </message> 892 </message>
900 </alert> 893 </alert>
901 <alert name="GestureSaveFailedObjectNotFound"> 894 <alert name="GestureSaveFailedObjectNotFound">
902 <message name="message"> 895 <message name="message">
903 Impossible d&apos;enregistrer le geste car l&apos;objet ou son inventaire associé est introuvable. 896 Le geste n&apos;a pas pu être enregistré car l&apos;objet ou l&apos;inventaire de l&apos;objet associé n&apos;a pas été trouvé.
904L&apos;objet est peut-être hors de portée ou a été supprimé. 897L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
905 </message> 898 </message>
906 </alert> 899 </alert>
907 <alert name="GestureSaveFailedReason"> 900 <alert name="GestureSaveFailedReason">
908 <message name="message"> 901 <message name="message">
909 Problème lors de la sauvegarde d&apos;un geste : [REASON]. Veuillez réessayer de sauvegarder le geste ultérieurement. 902 Une erreur est survenue lors de l&apos;enregistrement du geste, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre geste ultérieurement.
910 </message> 903 </message>
911 </alert> 904 </alert>
912 <alert name="SaveNotecardFailObjectNotFound"> 905 <alert name="SaveNotecardFailObjectNotFound">
913 <message name="message"> 906 <message name="message">
914 Impossible d&apos;enregistrer la note car l&apos;objet ou son inventaire associé est introuvable. 907 La note n&apos;a pas pu être enregistrée car l&apos;objet ou l&apos;inventaire de l&apos;objet associé n&apos;a pas été trouvé.
915L&apos;objet est peut-être hors de portée ou a été supprimé. 908L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
916 </message> 909 </message>
917 </alert> 910 </alert>
918 <alert name="SaveNotecardFailReason"> 911 <alert name="SaveNotecardFailReason">
919 <message name="message"> 912 <message name="message">
920 Problème lors de la sauvegarde d&apos;une note : [REASON]. Veuillez réessayer de sauvegarder la note ultérieurement. 913 Une erreur est survenue lors de l&apos;enregistrement de la note, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre note ultérieurement.
921 </message> 914 </message>
922 </alert> 915 </alert>
923 <alert name="ScriptCannotUndo"> 916 <alert name="ScriptCannotUndo">
924 <message name="message"> 917 <message name="message">
925 Impossible d&apos;annuler toutes les modifications dans votre version du script. 918 Impossible d&apos;annuler tous les changements dans votre version du script.
926Voulez-vous charger la dernière version enregistrée sur le serveur ? 919Souhaitez-vous charger la dernière version enregistrée sur le serveur ?
927(Attention : cette opération est définitive.) 920(**Attention** Cette opération est irréversible.)
928 </message> 921 </message>
929 <option name="Yes"> 922 <option name="Yes">
930 Oui 923 OK
931 </option> 924 </option>
932 <option name="No"> 925 <option name="No">
933 Non 926 Annuler
934 </option> 927 </option>
935 </alert> 928 </alert>
936 <alert name="SaveScriptFailReason"> 929 <alert name="SaveScriptFailReason">
937 <message name="message"> 930 <message name="message">
938 Problème lors de la sauvegarde d&apos;un script : [REASON]. Veuillez réessayer de sauvegarder le script ultérieurement. 931 Une erreur est survenue lors de l&apos;enregistrement du script, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre script ultérieurement.
939 </message> 932 </message>
940 </alert> 933 </alert>
941 <alert name="SaveScriptFailObjectNotFound"> 934 <alert name="SaveScriptFailObjectNotFound">
942 <message name="message"> 935 <message name="message">
943 Impossible d&apos;enregistrer le script car l&apos;objet associé est introuvable. 936 Impossible d&apos;enregistrer le script car l&apos;objet qui le contient est introuvable.
944L&apos;objet est peut-être hors de portée ou a été supprimé. 937L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
945 </message> 938 </message>
946 </alert> 939 </alert>
947 <alert name="SaveBytecodeFailReason"> 940 <alert name="SaveBytecodeFailReason">
948 <message name="message"> 941 <message name="message">
949 Problème lors de la sauvegarde d&apos;un script compilé : [REASON]. Veuillez réessayer de sauvegarder le script ultérieurement. 942 Une erreur est survenue lors de l&apos;enregistrement du script compilé, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre script ultérieurement.
950 </message> 943 </message>
951 </alert> 944 </alert>
952 <alert name="CouldNotStartStopScript"> 945 <alert name="CouldNotStartStopScript">
953 <message name="message"> 946 <message name="message">
954 Impossible de démarrer ou d&apos;arrêter le script car l&apos;objet associé est introuvable. 947 Impossible de lancer ou d&apos;arrêter le script car l&apos;objet qui le contient est introuvable.
955L&apos;objet est peut-être hors de portée ou a été supprimé. 948L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
956 </message> 949 </message>
957 </alert> 950 </alert>
958 <alert name="CannotDownloadFile"> 951 <alert name="CannotDownloadFile">
959 <message name="message"> 952 <message name="message">
960 Téléchargement du fichier impossible 953 Impossible de télécharger le fichier
961 </message> 954 </message>
962 </alert> 955 </alert>
963 <alert name="CannotWriteEncode"> 956 <alert name="CannotWriteEncode">
@@ -967,7 +960,7 @@ L&apos;objet est peut-être hors de portée ou a été supprimé.
967 </alert> 960 </alert>
968 <alert name="CannotWriteFile"> 961 <alert name="CannotWriteFile">
969 <message name="message"> 962 <message name="message">
970 Ecriture du fichier [[FILE]] impossible 963 Impossible d&apos;écrire le fichier [[FILE]]
971 </message> 964 </message>
972 </alert> 965 </alert>
973 <alert name="CannotLoadWearable"> 966 <alert name="CannotLoadWearable">
@@ -989,7 +982,7 @@ Etes-vous sûr(e) de vouloir supprimer ces eléments ?
989 </alert> 982 </alert>
990 <alert name="DisplaySettingsSafe"> 983 <alert name="DisplaySettingsSafe">
991 <message name="message"> 984 <message name="message">
992 Les paramètres d&apos;affichage ont été définis ont été définis aux valeurs du mode sans échec 985 Les paramètres d&apos;affichage ont été définis sur sécurisé
993car vous avez activé le mode sans échec. 986car vous avez activé le mode sans échec.
994 </message> 987 </message>
995 </alert> 988 </alert>
@@ -1016,9 +1009,6 @@ Voulez-vous visiter [_URL] pour plus d&apos;informations ?
1016 <option name="No"> 1009 <option name="No">
1017 Non 1010 Non
1018 </option> 1011 </option>
1019 <url>
1020 http://www.secondlife.com/corporate/sysreqs.php
1021 </url>
1022 </alert> 1012 </alert>
1023 <alert name="UnsupportedGPU"> 1013 <alert name="UnsupportedGPU">
1024 <message name="message"> 1014 <message name="message">
@@ -1027,7 +1017,7 @@ Voulez-vous visiter [_URL] pour plus d&apos;informations ?
1027 </alert> 1017 </alert>
1028 <alert name="UnsupportedCPU"> 1018 <alert name="UnsupportedCPU">
1029 <message name="message"> 1019 <message name="message">
1030 - Votre CPU ne remplit pas les conditions minimum requises. 1020 - Votre processeur ne remplit pas les conditions minimum requises.
1031 </message> 1021 </message>
1032 </alert> 1022 </alert>
1033 <alert name="UnsupportedCPUAmount"> 1023 <alert name="UnsupportedCPUAmount">
@@ -1125,7 +1115,7 @@ afin de signaler le problème.
1125 </alert> 1115 </alert>
1126 <alert name="CannotConnectVerificationError"> 1116 <alert name="CannotConnectVerificationError">
1127 <message name="message"> 1117 <message name="message">
1128 Connexion impossible à [SECOND_LIFE]. 1118 Connexion à [SECOND_LIFE] impossible.
1129Le serveur d&apos;identification a rencontré une erreur de connexion SSL. 1119Le serveur d&apos;identification a rencontré une erreur de connexion SSL.
1130Si vous continuez à recevoir ce message d&apos;erreur, veuillez vous rendre 1120Si vous continuez à recevoir ce message d&apos;erreur, veuillez vous rendre
1131à la rubrique Support de SecondLife.com pour 1121à la rubrique Support de SecondLife.com pour
@@ -1134,20 +1124,20 @@ signaler ce problème.
1134 </alert> 1124 </alert>
1135 <alert name="CannotConnectUnknownErrorWindows"> 1125 <alert name="CannotConnectUnknownErrorWindows">
1136 <message name="message"> 1126 <message name="message">
1137 Connexion impossible à [SECOND_LIFE]. 1127 Connexion à [SECOND_LIFE] impossible.
1138Malgré nos efforts, une erreur inattendue s&apos;est produite. 1128Malgré nos efforts, une erreur inattendue s&apos;est produite.
1139Veuillez vous rendre à la rubrique Support du site SecondLife.com 1129Veuillez vous rendre à la rubrique Support du site SecondLife.com
1140pour signaler ce problème. Si possible, joignez votre fichier SecondLife.log 1130pour signaler ce problème. Si possible, joignez votre fichier SecondLife.log
1141qui se trouve à l&apos;emplacement suivant : C:\Documents and Settings\(nom)\Application Data\SecondLife\logs 1131qui se trouve à l&apos;emplacement suivant : C:\Documents and Settings\(nom)\Application Data\SecondLife\logs
1142Merci. 1132Merci.
1143 </message> 1133 </message>
1144 </alert> 1134 </alert>
1145 <alert name="CannotConnectUnknownErrorDarwin"> 1135 <alert name="CannotConnectUnknownErrorDarwin">
1146 <message name="message"> 1136 <message name="message">
1147 Connexion impossible à [SECOND_LIFE]. 1137 Connexion à [SECOND_LIFE] impossible.
1148Malgré nos efforts, une erreur inattendue s&apos;est produite. 1138Malgré nos efforts, une erreur inattendue s&apos;est produite.
1149Veuillez vous rendre à la rubrique Support du site SecondLife.com 1139Veuillez vous rendre à la rubrique Support du site SecondLife.com
1150pour signaler ce problème. Si possible, joignez votre fichier SecondLife.log 1140pour signaler ce problème. Si possible, joignez votre fichier SecondLife.log
1151qui se trouve à l&apos;emplacement suivant : ~/Library/Application Support/SecondLife/logs 1141qui se trouve à l&apos;emplacement suivant : ~/Library/Application Support/SecondLife/logs
1152Merci. 1142Merci.
1153 </message> 1143 </message>
@@ -1155,7 +1145,7 @@ Merci.
1155 <alert name="CannotResolveLoginToken"> 1145 <alert name="CannotResolveLoginToken">
1156 <message name="message"> 1146 <message name="message">
1157 Un problème est survenu lors de la résolution 1147 Un problème est survenu lors de la résolution
1158de votre identification. Veuillez réessayer 1148de votre authentification. Veuillez réessayer
1159de vous connecter. Si vous continuez à recevoir ce message d&apos;erreur, 1149de vous connecter. Si vous continuez à recevoir ce message d&apos;erreur,
1160veuillez vous rendre à la rubrique Support du site SecondLife.com. 1150veuillez vous rendre à la rubrique Support du site SecondLife.com.
1161 </message> 1151 </message>
@@ -1177,7 +1167,7 @@ pour des conseils et un lien vers la page web d&apos;état du service.
1177 </alert> 1167 </alert>
1178 <alert name="CannotConnectNoReplyFromLogin"> 1168 <alert name="CannotConnectNoReplyFromLogin">
1179 <message name="message"> 1169 <message name="message">
1180 Connexion impossible. Pas de réponse de la base de données d&apos;identification. 1170 Connexion impossible. Pas de réponse de la région.
1181 1171
1182Veuillez réessayer d&apos;ici quelques minutes, ou cliquez sur Aide 1172Veuillez réessayer d&apos;ici quelques minutes, ou cliquez sur Aide
1183pour des conseils et un lien vers la page web d&apos;état du service. 1173pour des conseils et un lien vers la page web d&apos;état du service.
@@ -1191,7 +1181,7 @@ pour des conseils et un lien vers la page web d&apos;état du service.
1191 </alert> 1181 </alert>
1192 <alert name="CannotConnectLoginTimeout"> 1182 <alert name="CannotConnectLoginTimeout">
1193 <message name="message"> 1183 <message name="message">
1194 Temps d&apos;attente de connexion à votre localisation dépassé. Veuillez réessayer. 1184 Temps d&apos;attente de connexion à votre emplacement dépassé. Veuillez réessayer.
1195 </message> 1185 </message>
1196 </alert> 1186 </alert>
1197 <alert name="FirstRunDialog"> 1187 <alert name="FirstRunDialog">
@@ -1226,7 +1216,7 @@ Veuillez vérifier votre connexion.
1226 </alert> 1216 </alert>
1227 <alert name="WelcomeToSecondLife"> 1217 <alert name="WelcomeToSecondLife">
1228 <message name="message"> 1218 <message name="message">
1229 Welcome to [SECOND_LIFE] ! 1219 Bienvenue sur [SECOND_LIFE] !
1230 1220
1231Utilisez les touches de direction pour vous déplacer. 1221Utilisez les touches de direction pour vous déplacer.
1232 1222
@@ -1257,17 +1247,12 @@ Veuillez choisir le sexe de votre personnage.
1257 </alert> 1247 </alert>
1258 <alert name="RegionNoTerraforming"> 1248 <alert name="RegionNoTerraforming">
1259 <message name="message"> 1249 <message name="message">
1260 La région [REGION] n&apos;autorise pas le terraforming. 1250 Le terraformage est interdit dans la région [REGION].
1261Vous devrez acquérir du terrain dans une autre partie du monde
1262pour le terraformer.
1263 </message> 1251 </message>
1264 </alert> 1252 </alert>
1265 <alert name="CannotCopyWarning"> 1253 <alert name="CannotCopyWarning">
1266 <message name="message"> 1254 <message name="message">
1267 Vous n&apos;êtes pas autorisé(e) à copier 1255 Vous n&apos;êtes pas autorisé à copier cet objet et il disparaîtra de votre inventaire si vous le donnez. Souhaitez-vous vraiment offrir cet objet ?
1268cet élément. Il disparaîtra de votre
1269inventaire si vous le donnez. Voulez-vous
1270vraiment offrir cet élément?
1271 </message> 1256 </message>
1272 <option name="Yes"> 1257 <option name="Yes">
1273 Oui 1258 Oui
@@ -1278,7 +1263,7 @@ vraiment offrir cet élément?
1278 </alert> 1263 </alert>
1279 <alert name="CannotGiveItem"> 1264 <alert name="CannotGiveItem">
1280 <message name="message"> 1265 <message name="message">
1281 Impossible d&apos;offrir l&apos;élément d&apos;inventaire. 1266 Impossible de donner l&apos;objet de l&apos;inventaire.
1282 </message> 1267 </message>
1283 </alert> 1268 </alert>
1284 <alert name="TransactionCancelled"> 1269 <alert name="TransactionCancelled">
@@ -1288,20 +1273,18 @@ vraiment offrir cet élément?
1288 </alert> 1273 </alert>
1289 <alert name="TooManyItems"> 1274 <alert name="TooManyItems">
1290 <message name="message"> 1275 <message name="message">
1291 Impossible d&apos;offrir autant d&apos;éléments en un seul transfert d&apos;inventaire. 1276 Impossible de donner plus de 42 objets au cours d&apos;un seul transfert d&apos;inventaire.
1292 </message> 1277 </message>
1293 </alert> 1278 </alert>
1294 <alert name="NoItems"> 1279 <alert name="NoItems">
1295 <message name="message"> 1280 <message name="message">
1296 Aucun élément cessible. 1281 Vous n&apos;êtes pas autorisé à transférer les objets sélectionnés.
1297 </message> 1282 </message>
1298 </alert> 1283 </alert>
1299 <alert name="CannotCopyCountItems"> 1284 <alert name="CannotCopyCountItems">
1300 <message name="message"> 1285 <message name="message">
1301 Vous n&apos;êtes pas autorisé(e) à copier [COUNT] des 1286 Vous n&apos;êtes pas autorisé à copier [COUNT] des objets sélectionnés. Ces objets disparaîtront de votre inventaire.
1302éléments sélectionnés. Ces éléments disparaîtront 1287Souhaitez-vous vraiment donner ces objets ?
1303de votre inventaire.
1304Souhaitez-vous réellement donner ces éléments ?
1305 </message> 1288 </message>
1306 <option name="Yes"> 1289 <option name="Yes">
1307 Oui 1290 Oui
@@ -1312,20 +1295,19 @@ Souhaitez-vous réellement donner ces éléments ?
1312 </alert> 1295 </alert>
1313 <alert name="CannotGiveCategory"> 1296 <alert name="CannotGiveCategory">
1314 <message name="message"> 1297 <message name="message">
1315 Impossible d&apos;offrir la catégorie d&apos;inventaire. 1298 Vous n&apos;êtes pas autorisé à transférer le dossier sélectionné.
1316 </message> 1299 </message>
1317 </alert> 1300 </alert>
1318 <alert name="FreezeAvatar"> 1301 <alert name="FreezeAvatar">
1319 <message name="message"> 1302 <message name="message">
1320 Bloquer cet avatar? 1303 Geler cet avatar ?
1321Il ou elle sera momentanément incapable de bouger, 1304Il ou elle ne pourra temporairement plus bouger, chatter, ou interagir dans le Monde.
1322chatter, ou interagir avec le monde.
1323 </message> 1305 </message>
1324 <option name="Freeze"> 1306 <option name="Freeze">
1325 Figer 1307 Geler
1326 </option> 1308 </option>
1327 <option name="Unfreeze"> 1309 <option name="Unfreeze">
1328 Débloquer 1310 Dégeler
1329 </option> 1311 </option>
1330 <option name="Cancel"> 1312 <option name="Cancel">
1331 Annuler 1313 Annuler
@@ -1348,13 +1330,13 @@ Il ou elle ne pourra temporairement plus bouger, chatter, ou interagir dans le M
1348 </alert> 1330 </alert>
1349 <alert name="EjectAvatar"> 1331 <alert name="EjectAvatar">
1350 <message name="message"> 1332 <message name="message">
1351 Ejecter cet avatar de votre terrain ? 1333 Expulser cet avatar de votre terrain ?
1352 </message> 1334 </message>
1353 <option name="Eject"> 1335 <option name="Eject">
1354 Ejecter 1336 Expulser
1355 </option> 1337 </option>
1356 <option name="EjectandBan"> 1338 <option name="EjectandBan">
1357 Ejecter et bannir 1339 Expulser et bannir
1358 </option> 1340 </option>
1359 <option name="Cancel"> 1341 <option name="Cancel">
1360 Annuler 1342 Annuler
@@ -1368,7 +1350,29 @@ Il ou elle ne pourra temporairement plus bouger, chatter, ou interagir dans le M
1368 Expulser 1350 Expulser
1369 </option> 1351 </option>
1370 <option name="EjectandBan"> 1352 <option name="EjectandBan">
1371 Expulser et interdire 1353 Expulser et bannir
1354 </option>
1355 <option name="Cancel">
1356 Annuler
1357 </option>
1358 </alert>
1359 <alert name="EjectAvatarNoBan">
1360 <message name="message">
1361 Expulser cet avatar de votre terrain ?
1362 </message>
1363 <option name="Eject">
1364 Expulser
1365 </option>
1366 <option name="Cancel">
1367 Annuler
1368 </option>
1369 </alert>
1370 <alert name="EjectAvatarFullnameNoBan">
1371 <message name="message">
1372 Expulser [AVATAR_NAME] de votre terrain ?
1373 </message>
1374 <option name="Eject">
1375 Expulser
1372 </option> 1376 </option>
1373 <option name="Cancel"> 1377 <option name="Cancel">
1374 Annuler 1378 Annuler
@@ -1376,19 +1380,18 @@ Il ou elle ne pourra temporairement plus bouger, chatter, ou interagir dans le M
1376 </alert> 1380 </alert>
1377 <alert name="InvalidUUID"> 1381 <alert name="InvalidUUID">
1378 <message name="message"> 1382 <message name="message">
1379 uuid invalide 1383 UUID invalide
1380 </message> 1384 </message>
1381 </alert> 1385 </alert>
1382 <alert name="AcquireErrorTooManyObjects"> 1386 <alert name="AcquireErrorTooManyObjects">
1383 <message name="message"> 1387 <message name="message">
1384 ERREUR D&apos;ACQUISITION : trop d&apos;objets sélectionnés. 1388 Erreur d&apos;acquisition : trop d&apos;objets sélectionnés.
1385 </message> 1389 </message>
1386 </alert> 1390 </alert>
1387 <alert name="AcquireErrorObjectSpan"> 1391 <alert name="AcquireErrorObjectSpan">
1388 <message name="message"> 1392 <message name="message">
1389 ERREUR D&apos;ACQUISITION : les objets sont répartis sur plus d&apos;une région. 1393 Erreur d&apos;acquisition : les objets sont répartis dans plus d&apos;une région.
1390Veuillez déplacer tous les objets à acquérir dans la 1394Veuillez mettre tous les objets que vous souhaitez acquérir dans la même région.
1391même région.
1392 </message> 1395 </message>
1393 </alert> 1396 </alert>
1394 <alert name="TakeLockedOrNotOwnedBy"> 1397 <alert name="TakeLockedOrNotOwnedBy">
@@ -1411,12 +1414,11 @@ Etes-vous sûr(e) de vouloir prendre ces eléments ?
1411 <alert name="PromptGoToCurrencyPage"> 1414 <alert name="PromptGoToCurrencyPage">
1412 <message name="message"> 1415 <message name="message">
1413 [EXTRA] 1416 [EXTRA]
1414 1417
1415 1418Aller sur [URL] pour obtenir des informations sur l&apos;achat de devises ?
1416Aller à [URL] pour en savoir plus sur l&apos;achat de devises ?
1417 </message> 1419 </message>
1418 <option name="GotoPage"> 1420 <option name="GotoPage">
1419 Aller à la Page 1421 OK
1420 </option> 1422 </option>
1421 <option name="Cancel"> 1423 <option name="Cancel">
1422 Annuler 1424 Annuler
@@ -1426,38 +1428,38 @@ Aller à [URL] pour en savoir plus sur l&apos;achat de devises ?
1426 <message name="message"> 1428 <message name="message">
1427 Impossible de lier ces [COUNT] objets. 1429 Impossible de lier ces [COUNT] objets.
1428Vous pouvez lier un maximum de [MAX] objets. 1430Vous pouvez lier un maximum de [MAX] objets.
1429Veuillez sélectionner moins d&apos;objets.
1430 </message> 1431 </message>
1431 </alert> 1432 </alert>
1432 <alert name="CannotLinkIncompleteSet"> 1433 <alert name="CannotLinkIncompleteSet">
1433 <message name="message"> 1434 <message name="message">
1434 Vous ne pouvez lier que des séries complètes d&apos;objets, et devez 1435 Vous ne pouvez lier que des ensembles d&apos;objets complets et vous devez choisir un minimum de deux objets.
1435sélectionner plus d&apos;un objet.
1436 </message> 1436 </message>
1437 </alert> 1437 </alert>
1438 <alert name="CannotLinkModify"> 1438 <alert name="CannotLinkModify">
1439 <message name="message"> 1439 <message name="message">
1440 Liaison impossible car vous ne disposez pas des autorisations de modification 1440 Impossible de lier car vous n&apos;avez pas la permission de modifier tous les objets.
1441pour tous les objets. Assurez-vous qu&apos;ils soient tous déverrouillés, et 1441
1442qu&apos;ils vous appartiennent tous. 1442Assurez-vous que vous êtes le propriétaire de tous les objets et qu&apos;aucun d&apos;eux n&apos;est verrouillé.
1443 </message> 1443 </message>
1444 </alert> 1444 </alert>
1445 <alert name="CannotLinkDifferentOwners"> 1445 <alert name="CannotLinkDifferentOwners">
1446 <message name="message"> 1446 <message name="message">
1447 Liaison impossible car tous les objets n&apos;ont pas le même 1447 Impossible de lier car les objets n&apos;ont pas tous le même propriétaire.
1448propriétaire. Veuillez vous assurer que tous les objets sélectionnés vous appartiennent. 1448
1449Assurez-vous que vous êtes le propriétaire de tous les objets sélectionnés.
1449 </message> 1450 </message>
1450 </alert> 1451 </alert>
1451 <alert name="NoFileExtension"> 1452 <alert name="NoFileExtension">
1452 <message name="message"> 1453 <message name="message">
1453 Le fichier &apos;[FILE]&apos; n&apos;a pas d&apos;extension. 1454 Pas d&apos;extension pour le fichier suivant : &apos;[FILE]&apos;
1454Veuillez vous assurer que le fichier a une extension valide. 1455
1456Assurez-vous que le fichier a l&apos;extension correcte.
1455 </message> 1457 </message>
1456 </alert> 1458 </alert>
1457 <alert name="InvalidFileExtension"> 1459 <alert name="InvalidFileExtension">
1458 <message name="message"> 1460 <message name="message">
1459 Extension de fichier invalide : [EXTENSION] 1461 Extension de fichier [EXTENSION] invalide
1460Requise : [VALIDS] 1462[VALIDS] attendu
1461 </message> 1463 </message>
1462 <option name="OK"> 1464 <option name="OK">
1463 OK 1465 OK
@@ -1465,87 +1467,87 @@ Requise : [VALIDS]
1465 </alert> 1467 </alert>
1466 <alert name="CannotUploadSoundFile"> 1468 <alert name="CannotUploadSoundFile">
1467 <message name="message"> 1469 <message name="message">
1468 Impossible de lire le fichier son uploadé : 1470 Impossible de lire le fichier son chargé :
1469[FILE] 1471[FILE]
1470 </message> 1472 </message>
1471 </alert> 1473 </alert>
1472 <alert name="SoundFileNotRIFF"> 1474 <alert name="SoundFileNotRIFF">
1473 <message name="message"> 1475 <message name="message">
1474 Le fichier n&apos;est pas un fichier de type RIFF WAVE : 1476 Il semble que le fichier ne soit pas un fichier RIFF WAVE :
1475[FILE] 1477[FILE]
1476 </message> 1478 </message>
1477 </alert> 1479 </alert>
1478 <alert name="SoundFileNotPCM"> 1480 <alert name="SoundFileNotPCM">
1479 <message name="message"> 1481 <message name="message">
1480 Le fichier n&apos;est pas un fichier audio de type PCM WAVE : 1482 Il semble que le fichier ne soit pas un fichier audio PCM WAVE :
1481[FILE] 1483[FILE]
1482 </message> 1484 </message>
1483 </alert> 1485 </alert>
1484 <alert name="SoundFileInvalidChannelCount"> 1486 <alert name="SoundFileInvalidChannelCount">
1485 <message name="message"> 1487 <message name="message">
1486 Le fichier a un nombre de canaux invalide (doit être mono ou stereo) : 1488 Le fichier contient un nombre de canaux invalide (doit être mono ou stéréo) :
1487[FILE] 1489[FILE]
1488 </message> 1490 </message>
1489 </alert> 1491 </alert>
1490 <alert name="SoundFileInvalidSampleRate"> 1492 <alert name="SoundFileInvalidSampleRate">
1491 <message name="message"> 1493 <message name="message">
1492 Le fichier a un taux d&apos;échantillonage non supporté (doit être en 44.1kHz) : 1494 Le fichier ne semble pas être pris en charge (doit être 44,1 k) :
1493[FILE] 1495[FILE]
1494 </message> 1496 </message>
1495 </alert> 1497 </alert>
1496 <alert name="SoundFileInvalidWordSize"> 1498 <alert name="SoundFileInvalidWordSize">
1497 <message name="message"> 1499 <message name="message">
1498 Le fichier a une longueur de mots non supportée (doit être en 8 ou 16-bit) : 1500 Le fichier ne semble pas être pris en charge (doit faire 8 ou 16 bit) :
1499[FILE] 1501[FILE]
1500 </message> 1502 </message>
1501 </alert> 1503 </alert>
1502 <alert name="SoundFileInvalidHeader"> 1504 <alert name="SoundFileInvalidHeader">
1503 <message name="message"> 1505 <message name="message">
1504 Segment &apos;données&apos; introuvable dans l&apos;en-tête WAV : 1506 Impossible de trouver les données dans l&apos;en-tête WAV :
1505[FILE] 1507[FILE]
1506 </message> 1508 </message>
1507 </alert> 1509 </alert>
1508 <alert name="SoundFileInvalidTooLong"> 1510 <alert name="SoundFileInvalidTooLong">
1509 <message name="message"> 1511 <message name="message">
1510 Le fichier audio est trop long (10 secondes max.) : 1512 Le fichier audio est trop long (10 secondes maximum) :
1511[FILE] 1513[FILE]
1512 </message> 1514 </message>
1513 </alert> 1515 </alert>
1514 <alert name="ProblemWithFile"> 1516 <alert name="ProblemWithFile">
1515 <message name="message"> 1517 <message name="message">
1516 Erreur du fichier [FILE]: 1518 Problème avec le fichier [FILE] :
1517 1519
1518[ERROR] 1520[ERROR]
1519 </message> 1521 </message>
1520 </alert> 1522 </alert>
1521 <alert name="CannotOpenTemporarySoundFile"> 1523 <alert name="CannotOpenTemporarySoundFile">
1522 <message name="message"> 1524 <message name="message">
1523 Impossible d&apos;ouvrir le fichier son compressé temporaire à écrire : [FILE] 1525 Impossible d&apos;ouvrir le fichier son compressé temporaire : [FILE]
1524 </message> 1526 </message>
1525 </alert> 1527 </alert>
1526 <alert name="UnknownVorbisEncodeFailure"> 1528 <alert name="UnknownVorbisEncodeFailure">
1527 <message name="message"> 1529 <message name="message">
1528 Erreur d&apos;encodage vorbis inconnue du fichier : [FILE] 1530 Échec d&apos;encodage Vorbis inconnu sur : [FILE]
1529 </message> 1531 </message>
1530 </alert> 1532 </alert>
1531 <alert name="CorruptResourceFile"> 1533 <alert name="CorruptResourceFile">
1532 <message name="message"> 1534 <message name="message">
1533 fichier ressource corrompu : [FILE] 1535 Fichier ressource corrompu : [FILE]
1534 </message> 1536 </message>
1535 </alert> 1537 </alert>
1536 <alert name="UnknownResourceFileVersion"> 1538 <alert name="UnknownResourceFileVersion">
1537 <message name="message"> 1539 <message name="message">
1538 version de fichier ressource linden inconnue : [FILE] 1540 Version de fichier ressource Linden inconnu : [FILE]
1539 </message> 1541 </message>
1540 </alert> 1542 </alert>
1541 <alert name="UnableToCreateOutputFile"> 1543 <alert name="UnableToCreateOutputFile">
1542 <message name="message"> 1544 <message name="message">
1543 Impossible de créer le fichier : [FILE] 1545 Impossible de créer le fichier de sortie : [FILE]
1544 </message> 1546 </message>
1545 </alert> 1547 </alert>
1546 <alert name="DoNotSupportBulkAnimationUpload"> 1548 <alert name="DoNotSupportBulkAnimationUpload">
1547 <message name="message"> 1549 <message name="message">
1548 L&apos;upload de fichiers d&apos;animation par lots n&apos;est pas encore possible. 1550 Actuellement, nous ne prenons pas en charge le chargement de lots de fichiers d&apos;animation.
1549 </message> 1551 </message>
1550 </alert> 1552 </alert>
1551 <alert name="CannotAccessOutputFile"> 1553 <alert name="CannotAccessOutputFile">
@@ -1555,60 +1557,57 @@ Requise : [VALIDS]
1555 </alert> 1557 </alert>
1556 <alert name="InsufficientFundsToUploadFile"> 1558 <alert name="InsufficientFundsToUploadFile">
1557 <message name="message"> 1559 <message name="message">
1558 Fonds insuffisants pour uploader [FILE] : il vous faut L$[COST], votre solde est de L$[BALANCE] 1560 Vous n&apos;avez pas suffisamment de L$ pour charger le fichier : le chargement coûte [COST] L$ et votre solde est de [BALANCE] L$
1559 </message> 1561 </message>
1560 </alert> 1562 </alert>
1561 <alert name="InsufficientFundsToFinishUpload"> 1563 <alert name="InsufficientFundsToFinishUpload">
1562 <message name="message"> 1564 <message name="message">
1563 Fonds insuffisants pour terminer l&apos;upload de [FILE] : il vous faut L$[COST], votre solde est de L$[BALANCE] 1565 Vous n&apos;avez pas suffisamment de L$ pour finir de charger le fichier [FILE] : le chargement coûte [COST] L$ et votre solde est de [BALANCE] L$
1564 </message> 1566 </message>
1565 </alert> 1567 </alert>
1566 <alert name="CannotUploadReason"> 1568 <alert name="CannotUploadReason">
1567 <message name="message"> 1569 <message name="message">
1568 Upload du fichier [FILE] impossible : [REASON] 1570 Impossible de charger [FILE] suite au problème suivant : [REASON]
1569Veuillez réessayer ultérieurement. 1571Veuillez réessayer ultérieurement.
1570 </message> 1572 </message>
1571 </alert> 1573 </alert>
1572 <alert name="CannotCreateLandmarkNotOwner"> 1574 <alert name="CannotCreateLandmarkNotOwner">
1573 <message name="message"> 1575 <message name="message">
1574 Vous ne pouvez créer un repère ici 1576 Vous ne pouvez pas créer de repère ici car le propriétaire du terrain ne l&apos;autorise pas.
1575car le propriétaire du terrain ne l&apos;autorise pas.
1576Essayez de vous déplacer de quelques mètres.
1577 </message> 1577 </message>
1578 </alert> 1578 </alert>
1579 <alert name="CannotRecompileSelectObjectsNoScripts"> 1579 <alert name="CannotRecompileSelectObjectsNoScripts">
1580 <message name="message"> 1580 <message name="message">
1581 Recompilation impossible. 1581 Impossible d&apos;effectuer les recompilations.
1582Sélectionnez des objets dont les scripts 1582Sélectionnez un objet avec un script.
1583sont valides.
1584 </message> 1583 </message>
1585 </alert> 1584 </alert>
1586 <alert name="CannotRecompileSelectObjectsNoPermission"> 1585 <alert name="CannotRecompileSelectObjectsNoPermission">
1587 <message name="message"> 1586 <message name="message">
1588 Recompilation impossible. 1587 Impossible d&apos;effectuer les recompilations.
1589Sélectionnez des objets dont vous êtes 1588
1590autorisé(e) à modifier les scripts. 1589Sélectionnez des objets qui ont des scripts et que vous pouvez modifier.
1591 </message> 1590 </message>
1592 </alert> 1591 </alert>
1593 <alert name="CannotResetSelectObjectsNoScripts"> 1592 <alert name="CannotResetSelectObjectsNoScripts">
1594 <message name="message"> 1593 <message name="message">
1595 Réinitialisation impossible. 1594 Impossible d&apos;effectuer la réinitialisation.
1596Sélectionnez des objets dont les scripts 1595
1597sont valides. 1596Veuillez sélectionner des objets avec des scripts.
1598 </message> 1597 </message>
1599 </alert> 1598 </alert>
1600 <alert name="CannotResetSelectObjectsNoPermission"> 1599 <alert name="CannotResetSelectObjectsNoPermission">
1601 <message name="message"> 1600 <message name="message">
1602 Réinitialisation impossible. 1601 Impossible d&apos;effectuer la réinitialisation.
1603Sélectionnez des objets dont vous êtes 1602
1604autorisé(e) à modifier les scripts. 1603Sélectionnez des objets qui ont des scripts et que vous pouvez modifier.
1605 </message> 1604 </message>
1606 </alert> 1605 </alert>
1607 <alert name="CannotSetRunningSelectObjectsNoScripts"> 1606 <alert name="CannotSetRunningSelectObjectsNoScripts">
1608 <message name="message"> 1607 <message name="message">
1609 Impossible de commander le démarrage de scripts. 1608 Impossible de définir les scripts sur « exécution ».
1610Sélectionnez des objets dont les scripts 1609
1611sont valides. 1610Veuillez sélectionner des objets avec des scripts.
1612 </message> 1611 </message>
1613 </alert> 1612 </alert>
1614 <alert name="CannotSetRunningSelectObjectsNoPermission"> 1613 <alert name="CannotSetRunningSelectObjectsNoPermission">
@@ -1620,9 +1619,9 @@ autorisé(e) à modifier les scripts.
1620 </alert> 1619 </alert>
1621 <alert name="CannotSetRunningNotSelectObjectsNoScripts"> 1620 <alert name="CannotSetRunningNotSelectObjectsNoScripts">
1622 <message name="message"> 1621 <message name="message">
1623 Impossible de commander l&apos;arrêt de scripts. 1622 Impossible de définir les scripts sur « non-exécution ».
1624Sélectionnez des objets dont les scripts 1623
1625sont valides. 1624Veuillez sélectionner des objets avec des scripts.
1626 </message> 1625 </message>
1627 </alert> 1626 </alert>
1628 <alert name="CannotSetRunningNotSelectObjectsNoPermission"> 1627 <alert name="CannotSetRunningNotSelectObjectsNoPermission">
@@ -1634,7 +1633,7 @@ autorisé(e) à modifier les scripts.
1634 </alert> 1633 </alert>
1635 <alert name="NoFrontmostFloater"> 1634 <alert name="NoFrontmostFloater">
1636 <message name="message"> 1635 <message name="message">
1637 No frontmost floater to save 1636 Aucun floater frontmost à sauvegarder.
1638 </message> 1637 </message>
1639 </alert> 1638 </alert>
1640 <alert name="SeachFilteredOnShortWords"> 1639 <alert name="SeachFilteredOnShortWords">
@@ -1656,7 +1655,7 @@ Recherche effectuée : [FINALQUERY]
1656 </alert> 1655 </alert>
1657 <alert name="ColladaExportFailedInvalidPermissions"> 1656 <alert name="ColladaExportFailedInvalidPermissions">
1658 <message name="message"> 1657 <message name="message">
1659 Erreur d&apos;export Collada : Autorisations non valables ou objet verrouillé ! 1658 Erreur d&apos;export Collada : autorisations non valables ou objet verrouillé !
1660 </message> 1659 </message>
1661 </alert> 1660 </alert>
1662 <alert name="ColladaExportFailedUnknownError"> 1661 <alert name="ColladaExportFailedUnknownError">
@@ -1681,30 +1680,27 @@ Recherche effectuée : [FINALQUERY]
1681 </alert> 1680 </alert>
1682 <alert name="CouldNotTeleportReason"> 1681 <alert name="CouldNotTeleportReason">
1683 <message name="message"> 1682 <message name="message">
1684 Téléportation impossible. 1683 Impossible de téléporter.
1685[REASON] 1684[REASON]
1686 </message> 1685 </message>
1687 </alert> 1686 </alert>
1688 <alert name="CannotSetLandOwnerNothingSelected"> 1687 <alert name="CannotSetLandOwnerNothingSelected">
1689 <message name="message"> 1688 <message name="message">
1690 Impossible de définir le propriétaire : 1689 Impossible de définir le propriétaire foncier :
1691Sélection vide. 1690aucune parcelle sélectionnée.
1692 </message> 1691 </message>
1693 </alert> 1692 </alert>
1694 <alert name="CannotSetLandOwnerMultipleRegions"> 1693 <alert name="CannotSetLandOwnerMultipleRegions">
1695 <message name="message"> 1694 <message name="message">
1696 Impossible de forcer la propriété du terrain car la sélection couvre plusieurs 1695 Impossible de définir un propriétaire car la sélection couvre plusieurs régions. Veuillez sélectionner une zone plus petite et réessayer.
1697régions. Veuillez sélectionner une zone plus petite et réessayez.
1698 </message> 1696 </message>
1699 </alert> 1697 </alert>
1700 <alert name="ForceOwnerAuctionWarning"> 1698 <alert name="ForceOwnerAuctionWarning">
1701 <message name="message"> 1699 <message name="message">
1702 Cette parcelle a été mise aux enchères. Forcer la propriété 1700 Cette parcelle est mise aux enchères. Définir un propriétaire annulerait les enchères, ce qui pourrait être gênant pour certains résidents si ces dernières ont commencé. Souhaitez-vous définir un propriétaire ?
1703annulera les enchères, ce qui peut mécontenter certains résidents
1704si les enchères ont débuté. Forcer la propriété ?
1705 </message> 1701 </message>
1706 <option name="Force"> 1702 <option name="Force">
1707 Forcer 1703 OK
1708 </option> 1704 </option>
1709 <option name="Cancel"> 1705 <option name="Cancel">
1710 Annuler 1706 Annuler
@@ -1712,32 +1708,32 @@ si les enchères ont débuté. Forcer la propriété ?
1712 </alert> 1708 </alert>
1713 <alert name="CannotContentifyNothingSelected"> 1709 <alert name="CannotContentifyNothingSelected">
1714 <message name="message"> 1710 <message name="message">
1715 Ajout de contenu impossible : 1711 Problème :
1716Sélection vide. 1712Aucune parcelle sélectionnée.
1717 </message> 1713 </message>
1718 </alert> 1714 </alert>
1719 <alert name="CannotContentifyNoRegion"> 1715 <alert name="CannotContentifyNoRegion">
1720 <message name="message"> 1716 <message name="message">
1721 Ajout de contenu impossible : 1717 Problème :
1722Aucune région. 1718Aucune région sélectionnée.
1723 </message> 1719 </message>
1724 </alert> 1720 </alert>
1725 <alert name="CannotReleaseLandNothingSelected"> 1721 <alert name="CannotReleaseLandNothingSelected">
1726 <message name="message"> 1722 <message name="message">
1727 Impossible de céder le terrain : 1723 Impossible d&apos;abandonner le terrain :
1728Sélection vide. 1724aucune parcelle sélectionnée.
1729 </message> 1725 </message>
1730 </alert> 1726 </alert>
1731 <alert name="CannotReleaseLandNoRegion"> 1727 <alert name="CannotReleaseLandNoRegion">
1732 <message name="message"> 1728 <message name="message">
1733 Impossible de céder le terrain : 1729 Impossible d&apos;abandonner le terrain :
1734région introuvable. 1730la région est introuvable.
1735 </message> 1731 </message>
1736 </alert> 1732 </alert>
1737 <alert name="CannotBuyLandNothingSelected"> 1733 <alert name="CannotBuyLandNothingSelected">
1738 <message name="message"> 1734 <message name="message">
1739 Impossible d&apos;acheter le terrain : 1735 Impossible d&apos;acheter le terrain :
1740Sélection vide. 1736aucune parcelle sélectionnée.
1741 </message> 1737 </message>
1742 </alert> 1738 </alert>
1743 <alert name="CannotBuyLandNoRegion"> 1739 <alert name="CannotBuyLandNoRegion">
@@ -1753,28 +1749,29 @@ la région dans laquelle il est situé est introuvable.
1753 </alert> 1749 </alert>
1754 <alert name="CannotDeedLandNothingSelected"> 1750 <alert name="CannotDeedLandNothingSelected">
1755 <message name="message"> 1751 <message name="message">
1756 Transfert du terrain impossible : 1752 Cession du terrain impossible :
1757Sélection vide. 1753aucune parcelle sélectionnée.
1758 </message> 1754 </message>
1759 </alert> 1755 </alert>
1760 <alert name="CannotDeedLandNoGroup"> 1756 <alert name="CannotDeedLandNoGroup">
1761 <message name="message"> 1757 <message name="message">
1762 Transfert du terrain impossible : 1758 Cession du terrain impossible :
1763Aucun groupe. 1759aucun groupe sélectionné.
1764 </message> 1760 </message>
1765 </alert> 1761 </alert>
1766 <alert name="CannotDeedLandNoRegion"> 1762 <alert name="CannotDeedLandNoRegion">
1767 <message name="message"> 1763 <message name="message">
1768 Transfert du terrain impossible : 1764 Cession du terrain impossible :
1769La région contenant ce terrain est introuvable. 1765la région dans laquelle il est situé est introuvable.
1770Veuillez utiliser Aide -&gt; Signaler un bug pour envoyer un rapport. 1766Veuillez utiliser Aide &gt; Signaler des bugs pour signaler le problème.
1771 </message> 1767 </message>
1772 </alert> 1768 </alert>
1773 <alert name="CannotDeedLandMultipleSelected"> 1769 <alert name="CannotDeedLandMultipleSelected">
1774 <message name="message"> 1770 <message name="message">
1775 Transfert du terrain impossible : 1771 Cession du terrain impossible :
1776Plusieurs parcelles distinctes sélectionnées. 1772plusieurs parcelles sélectionnées.
1777Essayez de sélectionner une surface plus petite. 1773
1774Essayez de ne sélectionner qu&apos;une seule parcelle.
1778 </message> 1775 </message>
1779 </alert> 1776 </alert>
1780 <alert name="RegionNotFound"> 1777 <alert name="RegionNotFound">
@@ -1784,18 +1781,14 @@ Essayez de sélectionner une surface plus petite.
1784 </alert> 1781 </alert>
1785 <alert name="ParcelCanPlayMedia"> 1782 <alert name="ParcelCanPlayMedia">
1786 <message name="message"> 1783 <message name="message">
1787 Cet endroit peut diffuser un flux vidéo. 1784 Cette parcelle propose des flux de média.
1785Pour jouer des flux de média, il faut avoir une connexion internet rapide.
1788 1786
1789Le flux vidéo requiert une connexion internet 1787Jouer les flux de média lorsqu&apos;ils sont disponibles ?
1790d&apos;un débit de 768 kbps ou plus . 1788(Vous pourrez modifier cette option ultérieurement sous Préférences &gt; Audio et Vidéo.)
1791
1792Lire le flux vidéo lorsque disponible ?
1793
1794(Vous pouvez modifier cette option à tout moment dans
1795Préferences &gt; Audio &amp; Vidéo.)
1796 </message> 1789 </message>
1797 <option name="PlayMedia"> 1790 <option name="PlayMedia">
1798 Lire le media 1791 Jouer le média
1799 </option> 1792 </option>
1800 <option name="Disable"> 1793 <option name="Disable">
1801 Désactiver 1794 Désactiver
@@ -1803,69 +1796,72 @@ Préferences &gt; Audio &amp; Vidéo.)
1803 </alert> 1796 </alert>
1804 <alert name="CannotDeedLandWaitingForServer"> 1797 <alert name="CannotDeedLandWaitingForServer">
1805 <message name="message"> 1798 <message name="message">
1806 Transfert du terrain impossible : 1799 Cession du terrain impossible :
1807Données de propriété en attente du serveur. 1800rapport de propriété sur le point d&apos;être envoyé par le serveur.
1808Réessayez d&apos;ici quelques secondes. 1801
1802Merci de réessayer.
1809 </message> 1803 </message>
1810 </alert> 1804 </alert>
1811 <alert name="CannotDeedLandNoTransfer"> 1805 <alert name="CannotDeedLandNoTransfer">
1812 <message name="message"> 1806 <message name="message">
1813 Transfert du terrain impossible : 1807 Cession du terrain impossible :
1814La région [REGION] n&apos;autorise pas le transfert de terrain. 1808la cession de terrain est interdite dans la région [REGION].
1815 </message> 1809 </message>
1816 </alert> 1810 </alert>
1817 <alert name="CannotReleaseLandWatingForServer"> 1811 <alert name="CannotReleaseLandWatingForServer">
1818 <message name="message"> 1812 <message name="message">
1819 Impossible de céder le terrain : 1813 Impossible d&apos;abandonner le terrain :
1820En attente du serveur pour le calcul du coût. 1814mise à jour des informations sur la parcelle sur le point d&apos;être envoyée par le serveur.
1821Veuillez réessayer d&apos;ici quelques secondes. 1815
1816Veuillez réessayer dans quelques secondes.
1822 </message> 1817 </message>
1823 </alert> 1818 </alert>
1824 <alert name="CannotReleaseLandSelected"> 1819 <alert name="CannotReleaseLandSelected">
1825 <message name="message"> 1820 <message name="message">
1826 Impossible de céder le terrain : 1821 Impossible d&apos;abandonner le terrain :
1827plusieurs parcelles distinctes sélectionnées. 1822vous n&apos;êtes pas le propriétaire des parcelles sélectionnées.
1828Essayez de sélectionner une surface plus petite. 1823
1824Veuillez sélectionner une seule parcelle.
1829 </message> 1825 </message>
1830 </alert> 1826 </alert>
1831 <alert name="CannotReleaseLandDontOwn"> 1827 <alert name="CannotReleaseLandDontOwn">
1832 <message name="message"> 1828 <message name="message">
1833 Impossible de céder le terrain : 1829 Impossible d&apos;abandonner le terrain :
1834Vous n&apos;êtes pas autorisé(e) à libérer cette parcelle. 1830vous n&apos;avez pas la permission de libérer cette parcelle.
1835Les parcelles vous appartenant sont affichées en vert. 1831Les parcelles qui vous appartiennent sont en vert.
1836 </message> 1832 </message>
1837 </alert> 1833 </alert>
1838 <alert name="CannotReleaseLandRegionNotFound"> 1834 <alert name="CannotReleaseLandRegionNotFound">
1839 <message name="message"> 1835 <message name="message">
1840 Impossible de céder le terrain : 1836 Impossible d&apos;abandonner le terrain :
1841la région dans laquelle il est situé est introuvable. 1837la région dans laquelle il est situé est introuvable.
1842Utilisez Aide -&gt; Signaler un bug pour envoyer un rapport. 1838
1839Veuillez utiliser Aide &gt; Signaler un bug pour signaler le problème.
1843 </message> 1840 </message>
1844 </alert> 1841 </alert>
1845 <alert name="CannotReleaseLandNoTransfer"> 1842 <alert name="CannotReleaseLandNoTransfer">
1846 <message name="message"> 1843 <message name="message">
1847 Impossible de céder le terrain : 1844 Impossible d&apos;abandonner le terrain :
1848La région [REGION] n&apos;autorise pas la cession de terrain. 1845le transfert de terrain est interdit dans la région [REGION].
1849 </message> 1846 </message>
1850 </alert> 1847 </alert>
1851 <alert name="CannotReleaseLandPartialSelection"> 1848 <alert name="CannotReleaseLandPartialSelection">
1852 <message name="message"> 1849 <message name="message">
1853 Impossible de céder le terrain : 1850 Impossible d&apos;abandonner le terrain :
1854Vous devez sélectionner une parcelle entière pour la libérer. 1851vous devez sélectionner une parcelle entière pour la libérer.
1855Essayez de double-cliquer pour sélectionner une parcelle entière, ou 1852
1856divisez votre parcelle au préalable. 1853Sélectionnez toute la parcelle ou divisez-la d&apos;abord.
1857 </message> 1854 </message>
1858 </alert> 1855 </alert>
1859 <alert name="ReleaseLandWarning"> 1856 <alert name="ReleaseLandWarning">
1860 <message name="message"> 1857 <message name="message">
1861 Vous vous apprêtez à libérer [AREA] m2 de terrain. 1858 Vous vous apprêtez à libérer [AREA] m² de terrain.
1862Cette parcelle sera retirée de vos possessions de terrain, 1859Si vous libérez cette parcelle, elle sera supprimée de votre patrimoine, mais vous ne recevrez pas de L$.
1863mais ne vous rapportera aucun L$. 1860
1864 1861Libérer ce terrain ?
1865Libérer ce terrain ?
1866 </message> 1862 </message>
1867 <option name="Release"> 1863 <option name="Release">
1868 Relâcher 1864 OK
1869 </option> 1865 </option>
1870 <option name="Cancel"> 1866 <option name="Cancel">
1871 Annuler 1867 Annuler
@@ -1874,27 +1870,26 @@ Libérer ce terrain ?
1874 <alert name="CannotDivideLandNothingSelected"> 1870 <alert name="CannotDivideLandNothingSelected">
1875 <message name="message"> 1871 <message name="message">
1876 Division du terrain impossible : 1872 Division du terrain impossible :
1877Sélection vide. 1873
1874aucune parcelle sélectionnée.
1878 </message> 1875 </message>
1879 </alert> 1876 </alert>
1880 <alert name="CannotDivideLandPartialSelection"> 1877 <alert name="CannotDivideLandPartialSelection">
1881 <message name="message"> 1878 <message name="message">
1882 Division du terrain impossible : 1879 Division du terrain impossible :
1883Vous avez sélectionné une parcelle entière. 1880
1884Essayez de sélectionner une surface plus petite 1881Toute la parcelle est sélectionnée.
1885en cliquant/glissant. 1882Sélectionnez une partie de la parcelle uniquement.
1886 </message> 1883 </message>
1887 </alert> 1884 </alert>
1888 <alert name="LandDivideWarning"> 1885 <alert name="LandDivideWarning">
1889 <message name="message"> 1886 <message name="message">
1890 Diviser ce terrain séparera la parcelle en deux, 1887 Si vous divisez ce terrain, cette parcelle sera partagée en deux et chaque parcelle pourra avoir ses propres paramètres. Après cette opération, certains paramètres reviendront aux paramètres par défaut.
1891chaque parcelle pouvant disposer de réglages spécifiques. Certains réglages
1892seront réinitialisés à l&apos;issue de cette opération.
1893 1888
1894Diviser le terrain ? 1889Diviser le terrain ?
1895 </message> 1890 </message>
1896 <option name="Divide"> 1891 <option name="Divide">
1897 Diviser 1892 OK
1898 </option> 1893 </option>
1899 <option name="Cancel"> 1894 <option name="Cancel">
1900 Annuler 1895 Annuler
@@ -1903,51 +1898,50 @@ Diviser le terrain ?
1903 <alert name="CannotDivideLandNoRegion"> 1898 <alert name="CannotDivideLandNoRegion">
1904 <message name="message"> 1899 <message name="message">
1905 Division du terrain impossible : 1900 Division du terrain impossible :
1906La région dans laquelle il est situé est introuvable. 1901la région dans laquelle il est situé est introuvable.
1907Veuillez utiliser Aide -&gt; Signaler un bug pour envoyer un rapport. 1902
1903Veuillez utiliser Aide &gt; Signaler un bug pour signaler le problème.
1908 </message> 1904 </message>
1909 </alert> 1905 </alert>
1910 <alert name="CannotJoinLandNoRegion"> 1906 <alert name="CannotJoinLandNoRegion">
1911 <message name="message"> 1907 <message name="message">
1912 Impossible de fusionner le terrain : 1908 Impossible de fusionner le terrain :
1913La région dans laquelle il est situé est introuvable. 1909la région dans laquelle il est situé est introuvable.
1914Veuillez utiliser Aide -&gt; Signaler un bug pour envoyer un rapport. 1910
1911Veuillez utiliser Aide &gt; Signaler un bug pour signaler le problème.
1915 </message> 1912 </message>
1916 </alert> 1913 </alert>
1917 <alert name="CannotJoinLandNothingSelected"> 1914 <alert name="CannotJoinLandNothingSelected">
1918 <message name="message"> 1915 <message name="message">
1919 Impossible de fusionner le terrain : 1916 Impossible de fusionner le terrain :
1920Sélection vide. 1917aucune parcelle sélectionnée.
1921 </message> 1918 </message>
1922 </alert> 1919 </alert>
1923 <alert name="CannotJoinLandEntireParcelSelected"> 1920 <alert name="CannotJoinLandEntireParcelSelected">
1924 <message name="message"> 1921 <message name="message">
1925 Impossible de fusionner le terrain : 1922 Impossible de fusionner le terrain :
1926Vous avez sélectionné une parcelle entière. 1923vous avez sélectionné une seule parcelle.
1927Essayez de sélectionner une surface plus grande 1924
1928en cliquant/glissant. 1925Sélectionnez le terrain sur les deux parcelles.
1929 </message> 1926 </message>
1930 </alert> 1927 </alert>
1931 <alert name="CannotJoinLandSelection"> 1928 <alert name="CannotJoinLandSelection">
1932 <message name="message"> 1929 <message name="message">
1933 Impossible de fusionner le terrain : 1930 Impossible de fusionner le terrain :
1934Vous devez sélectionner plus d&apos;une parcelle. 1931vous devez sélectionner au moins deux parcelles.
1935Essayez de sélectionner une surface plus grande 1932
1936en cliquant/glissant. 1933Sélectionnez le terrain sur les deux parcelles.
1937 </message> 1934 </message>
1938 </alert> 1935 </alert>
1939 <alert name="JoinLandWarning"> 1936 <alert name="JoinLandWarning">
1940 <message name="message"> 1937 <message name="message">
1941 Fusionner ce terrain créera une grande parcelle 1938 En fusionnant ce terrain, vous créerez une grande parcelle composée de toutes les parcelles se trouvant dans le rectangle sélectionné.
1942à partir de toutes les parcelles présentes dans le rectangle de sélection. 1939Vous devrez réinitialiser le nom et les options de la nouvelle parcelle.
1943
1944Vous devrez réinitialiser le nom et les options
1945de la nouvelle parcelle.
1946 1940
1947Fusionner le terrain ? 1941Fusionner le terrain ?
1948 </message> 1942 </message>
1949 <option name="Join"> 1943 <option name="Join">
1950 Fusionner 1944 OK
1951 </option> 1945 </option>
1952 <option name="Cancel"> 1946 <option name="Cancel">
1953 Annuler 1947 Annuler
@@ -1966,7 +1960,7 @@ Fusionner le terrain ?
1966 </alert> 1960 </alert>
1967 <alert name="ConfirmLandmarkCopy"> 1961 <alert name="ConfirmLandmarkCopy">
1968 <message name="message"> 1962 <message name="message">
1969 Copier cet élément vers votre inventaire ? 1963 Copier ce repère dans votre inventaire ?
1970 </message> 1964 </message>
1971 <option name="Copy"> 1965 <option name="Copy">
1972 Copie 1966 Copie
@@ -1977,10 +1971,10 @@ Fusionner le terrain ?
1977 </alert> 1971 </alert>
1978 <alert name="ConfirmItemCopy"> 1972 <alert name="ConfirmItemCopy">
1979 <message name="message"> 1973 <message name="message">
1980 Copier cet élément vers votre inventaire ? 1974 Copier cet objet dans votre inventaire ?
1981 </message> 1975 </message>
1982 <option name="Copy"> 1976 <option name="Copy">
1983 Copie 1977 Copier
1984 </option> 1978 </option>
1985 <option name="Cancel"> 1979 <option name="Cancel">
1986 Annuler 1980 Annuler
@@ -1988,34 +1982,30 @@ Fusionner le terrain ?
1988 </alert> 1982 </alert>
1989 <alert name="ResolutionSwitchFail"> 1983 <alert name="ResolutionSwitchFail">
1990 <message name="message"> 1984 <message name="message">
1991 Impossible de changer la résolution en [RESX] par [RESY] 1985 Échec du changement de résolution (à [RESX], de [RESY])
1992 </message> 1986 </message>
1993 </alert> 1987 </alert>
1994 <alert name="ErrorUndefinedGrasses"> 1988 <alert name="ErrorUndefinedGrasses">
1995 <message name="message"> 1989 <message name="message">
1996 Erreur : Pelouses indéfinies : [SPECIES] 1990 Erreur : herbes non identifiées  : [SPECIES]
1997 </message> 1991 </message>
1998 </alert> 1992 </alert>
1999 <alert name="ErrorUndefinedTrees"> 1993 <alert name="ErrorUndefinedTrees">
2000 <message name="message"> 1994 <message name="message">
2001 Erreur : Arbres indéfinis : [SPECIES] 1995 Erreur : arbres non identifiés : [SPECIES]
2002 </message> 1996 </message>
2003 </alert> 1997 </alert>
2004 <alert name="CannotSaveWearableOutOfSpace"> 1998 <alert name="CannotSaveWearableOutOfSpace">
2005 <message name="message"> 1999 <message name="message">
2006 Impossible de sauvegarder le fichier endossable &apos;[NAME]&apos;. Vous devez 2000 Impossible de sauvegarder [NAME]. Pour pouvoir sauvegarder ce fichier, vous devez d&apos;abord libérer de la mémoire sur votre ordinateur.
2007libérer de l&apos;espace disque sur votre ordinateur et
2008sauvegarder le fichier à nouveau.
2009 </message> 2001 </message>
2010 </alert> 2002 </alert>
2011 <alert name="CannotSaveToAssetStore"> 2003 <alert name="CannotSaveToAssetStore">
2012 <message name="message"> 2004 <message name="message">
2013 Impossible de sauvegarder le fichier [NAME] dans la base de données centrale. 2005 Impossible de sauvegarder le fichier [NAME] dans la base de données centrale.
2014Cette erreur est généralement temporaire. Veuillez 2006Cette erreur est généralement temporaire. Veuillez éditer et sauvegarder l&apos;élément endossable à nouveau d&apos;ici quelques minutes.
2015éditer et sauvegarder l&apos;élément endossable à nouveau 2007
2016d&apos;ici quelques minutes. Si le problème persiste, veuillez 2008Si le problème persiste, veuillez cliquer sur Aide | Signaler un bug dans le menu déroulant en indiquant les détails de votre connexion.
2017cliquer sur &apos;Aide | Signaler un bug&apos; dans le menu déroulant
2018en indiquant les paramètres de votre réseau.
2019 </message> 2009 </message>
2020 </alert> 2010 </alert>
2021 <alert name="AppEarlyExit"> 2011 <alert name="AppEarlyExit">
@@ -2033,16 +2023,12 @@ www.secondlife.com/support.
2033 </alert> 2023 </alert>
2034 <alert name="YouHaveBeenLoggedOut"> 2024 <alert name="YouHaveBeenLoggedOut">
2035 <message name="message"> 2025 <message name="message">
2036 Vous avez été déconnecté(e) de [SECOND_LIFE]: 2026 Vous avez été déconnecté(e) de [SECOND_LIFE] :
2037 2027 [MESSAGE]
2038[MESSAGE] 2028Vous pouvez afficher vos messages instantanés et votre chat en cliquant sur Afficher IM et chat. Sinon, cliquez sur Quitter pour quitter immédiatement [SECOND_LIFE].
2039
2040Cliquez sur Continuer pour afficher les IM et le chat.
2041Vous ne pourrez pas effectuer d&apos;autres opérations.
2042Cliquez sur Quitter pour quitter [SECOND_LIFE] maintenant.
2043 </message> 2029 </message>
2044 <option name="Continue"> 2030 <option name="Continue">
2045 Continuer 2031 Afficher IM et chat
2046 </option> 2032 </option>
2047 <option name="Quit"> 2033 <option name="Quit">
2048 Quitter 2034 Quitter
@@ -2050,32 +2036,28 @@ Cliquez sur Quitter pour quitter [SECOND_LIFE] maintenant.
2050 </alert> 2036 </alert>
2051 <alert name="OnlyOfficerCanBuyLand"> 2037 <alert name="OnlyOfficerCanBuyLand">
2052 <message name="message"> 2038 <message name="message">
2053 Impossible d&apos;acheter le terrain pour le groupe : 2039 Impossible d&apos;acheter du terrain pour le groupe :
2054Vous n&apos;êtes pas autorisé(e) à acheter du terrain pour votre groupe actif. 2040Vous n&apos;avez pas la permission d&apos;acheter de terrain pour votre groupe.
2055Veuillez activer un autre groupe dans Edition -&gt; Groupes…
2056 </message> 2041 </message>
2057 </alert> 2042 </alert>
2058 <alert name="AddFriend" title="Ajouter comme ami(e)"> 2043 <alert name="AddFriend" title="Devenir amis">
2059 <message name="message"> 2044 <message name="message">
2060 Les amis peuvent se localiser sur la carte et 2045 Vous pouvez suivre les déplacements de vos amis sur la carte et voir lorsqu&apos;ils se connectent.
2061reçoivent des notifications de présence. 2046
2062 2047Proposer à [NAME] de devenir votre ami(e) ?
2063Proposer à [NAME] de devenir votre ami(e)?
2064 </message> 2048 </message>
2065 <option name="Offer"> 2049 <option name="Offer">
2066 Offrir 2050 OK
2067 </option> 2051 </option>
2068 <option name="Cancel"> 2052 <option name="Cancel">
2069 Annuler 2053 Annuler
2070 </option> 2054 </option>
2071 Voulez-vous être mon ami ?
2072 </alert> 2055 </alert>
2073 <alert name="AddFriendWithMessage" title="Ajouter comme ami"> 2056 <alert name="AddFriendWithMessage" title="Devenir amis">
2074 <message name="message"> 2057 <message name="message">
2075 Vous pouvez suivre les déplacements de vos 2058 Vous pouvez suivre les déplacements de vos amis sur la carte et voir lorsqu&apos;ils se connectent.
2076amis sur la carte et voir lorsqu&apos;ils se connectent.
2077 2059
2078Proposer à [NAME] de devenir votre ami ? 2060Proposer à [NAME] de devenir votre ami(e) ?
2079 </message> 2061 </message>
2080 <editline name="editline"> 2062 <editline name="editline">
2081 Voulez-vous être mon ami(e) ? 2063 Voulez-vous être mon ami(e) ?
@@ -2089,10 +2071,10 @@ Proposer à [NAME] de devenir votre ami ?
2089 </alert> 2071 </alert>
2090 <alert name="RemoveFromFriends"> 2072 <alert name="RemoveFromFriends">
2091 <message name="message"> 2073 <message name="message">
2092 Souhaitez-vous retirer [FIRST_NAME] [LAST_NAME] de votre liste d&apos;amis ? 2074 Voulez-vous supprimer [FIRST_NAME] [LAST_NAME] de votre liste d&apos;amis ?
2093 </message> 2075 </message>
2094 <option name="Remove"> 2076 <option name="Remove">
2095 Retirer 2077 OK
2096 </option> 2078 </option>
2097 <option name="Cancel"> 2079 <option name="Cancel">
2098 Annuler 2080 Annuler
@@ -2100,7 +2082,7 @@ Proposer à [NAME] de devenir votre ami ?
2100 </alert> 2082 </alert>
2101 <alert name="RemoveMultipleFromFriends"> 2083 <alert name="RemoveMultipleFromFriends">
2102 <message name="message"> 2084 <message name="message">
2103 Voulez-vous supprimer plusieurs personnes de votre liste d&apos;amis ? 2085 Voulez-vous supprimer plusieurs résidents de votre liste d&apos;amis ?
2104 </message> 2086 </message>
2105 <option name="Remove"> 2087 <option name="Remove">
2106 OK 2088 OK
@@ -2111,14 +2093,10 @@ Proposer à [NAME] de devenir votre ami ?
2111 </alert> 2093 </alert>
2112 <alert name="GodDeleteAllScriptedPublicObjectsByUser"> 2094 <alert name="GodDeleteAllScriptedPublicObjectsByUser">
2113 <message name="message"> 2095 <message name="message">
2114 Etes-vous sûr(e) de vouloir supprimer tous les objets scriptés appartenant à 2096 Êtes-vous certain de vouloir supprimer tous les objets scriptés appartenant à ** [AVATAR_NAME] ** sur tous les terrains des autres résidents dans cette région ?
2115
2116** [AVATAR_NAME] **
2117
2118sur tous les autres terrains de ce sim?
2119 </message> 2097 </message>
2120 <option name="DELETE!!"> 2098 <option name="DELETE!!">
2121 SUPPRIMER !! 2099 OK
2122 </option> 2100 </option>
2123 <option name="Cancel"> 2101 <option name="Cancel">
2124 Annuler 2102 Annuler
@@ -2126,14 +2104,10 @@ sur tous les autres terrains de ce sim?
2126 </alert> 2104 </alert>
2127 <alert name="GodDeleteAllScriptedObjectsByUser"> 2105 <alert name="GodDeleteAllScriptedObjectsByUser">
2128 <message name="message"> 2106 <message name="message">
2129 Etes-vous sûr(e) de vouloir SUPPRIMER TOUS les objets scriptés appartenant à 2107 Êtes-vous certain de vouloir supprimer tous les objets scriptés appartenant à ** [AVATAR_NAME] ** sur tous les terrains de cette région ?
2130
2131** [AVATAR_NAME] **
2132
2133sur L&apos;ENSEMBLE DU TERRAIN de ce sim ?
2134 </message> 2108 </message>
2135 <option name="!!DELETEALL!!"> 2109 <option name="!!DELETEALL!!">
2136 !!TOUT SUPPRIMER!! 2110 OK
2137 </option> 2111 </option>
2138 <option name="Cancel"> 2112 <option name="Cancel">
2139 Annuler 2113 Annuler
@@ -2141,15 +2115,10 @@ sur L&apos;ENSEMBLE DU TERRAIN de ce sim ?
2141 </alert> 2115 </alert>
2142 <alert name="GodDeleteAllObjectsByUser"> 2116 <alert name="GodDeleteAllObjectsByUser">
2143 <message name="message"> 2117 <message name="message">
2144 Etes-vous sûr(e) de vouloir SUPPRIMER TOUS les objets (scriptés ou non) 2118 Êtes-vous certain de vouloir supprimer tous les objets (scriptés ou pas) appartenant à ** [AVATAR_NAME] ** sur tous les terrains de cette région ?
2145appartenant à
2146
2147** [AVATAR_NAME] **
2148
2149sur L&apos;ENSEMBLE DU TERRAIN de ce sim ?
2150 </message> 2119 </message>
2151 <option name="!!DELETEALL!!"> 2120 <option name="!!DELETEALL!!">
2152 !!TOUT SUPPRIMER!! 2121 OK
2153 </option> 2122 </option>
2154 <option name="Cancel"> 2123 <option name="Cancel">
2155 Annuler 2124 Annuler
@@ -2158,22 +2127,22 @@ sur L&apos;ENSEMBLE DU TERRAIN de ce sim ?
2158 <alert name="PublishGroupInfoToWeb"> 2127 <alert name="PublishGroupInfoToWeb">
2159 <message name="message"> 2128 <message name="message">
2160 L&apos;option &quot;Publier sur le Web&quot; nous permet de publier 2129 L&apos;option &quot;Publier sur le Web&quot; nous permet de publier
2161le nom du groupe, son insigne, sa charte, ses titres, et ses fondateurs sur le 2130le nom du groupe, son logo, sa charte, ses titres et ses fondateurs sur le
2162site [SECOND_LIFE]. Il est de votre responsabilité d&apos;indiquer si 2131site [SECOND_LIFE]. Il est de votre responsabilité d&apos;indiquer si
2163tout ou partie du contenu ci-dessus est considéré comme Adulte au regard 2132tout ou partie du contenu ci-dessus est considéré comme Adulte selon
2164des règles de base de la Communauté. 2133les règles de base de la Communauté.
2165 </message> 2134 </message>
2166 </alert> 2135 </alert>
2167 <alert name="BlankClassifiedName"> 2136 <alert name="BlankClassifiedName">
2168 <message name="message"> 2137 <message name="message">
2169 Vous devez remplir le champ &quot;nom&quot; de votre petite annonce. 2138 Vous devez choisir un nom pour votre petite annonce.
2170 </message> 2139 </message>
2171 </alert> 2140 </alert>
2172 <alert name="MinClassifiedPrice"> 2141 <alert name="MinClassifiedPrice">
2173 <message name="message"> 2142 <message name="message">
2174 Les frais d&apos;insertion minimum sont de L$[MIN_PRICE]. 2143 Le coût de l&apos;annonce doit être de [MIN_PRICE] L$ minimum.
2175 2144
2176Veuillez entrer une somme plus importante. 2145Veuillez saisir un montant plus élevé.
2177 </message> 2146 </message>
2178 </alert> 2147 </alert>
2179 <alert name="CantLoadVertexShaders"> 2148 <alert name="CantLoadVertexShaders">
@@ -2183,166 +2152,160 @@ Veuillez entrer une somme plus importante.
2183 </alert> 2152 </alert>
2184 <alert name="ConfirmObjectDeleteLock"> 2153 <alert name="ConfirmObjectDeleteLock">
2185 <message name="message"> 2154 <message name="message">
2186 Au moins un objet est verrouillé. 2155 Au moins un des objets que vous avez sélectionnés est verrouillé.
2187Vous pouvez toutefois supprimer la sélection en cours. 2156
2188Etes-vous sûr(e) de vouloir supprimer ces eléments ? 2157Êtes-vous certain de vouloir supprimer ces objets ?
2189 </message> 2158 </message>
2190 <option name="Yes"> 2159 <option name="Yes">
2191 Oui 2160 OK
2192 </option> 2161 </option>
2193 <option name="No"> 2162 <option name="No">
2194 Non 2163 Annuler
2195 </option> 2164 </option>
2196 </alert> 2165 </alert>
2197 <alert name="ConfirmObjectDeleteNoCopy"> 2166 <alert name="ConfirmObjectDeleteNoCopy">
2198 <message name="message"> 2167 <message name="message">
2199 Au moins un objet est verrouillé. 2168 Au moins un des objets que vous avez sélectionnés n&apos;est pas reproductible.
2200Vous pouvez toutefois supprimer la sélection en cours. 2169
2201Etes-vous sûr(e) de vouloir supprimer ces eléments ? 2170Êtes-vous certain de vouloir supprimer ces objets ?
2202 </message> 2171 </message>
2203 <option name="Yes"> 2172 <option name="Yes">
2204 Oui 2173 OK
2205 </option> 2174 </option>
2206 <option name="No"> 2175 <option name="No">
2207 Non 2176 Annuler
2208 </option> 2177 </option>
2209 </alert> 2178 </alert>
2210 <alert name="ConfirmObjectDeleteNoOwn"> 2179 <alert name="ConfirmObjectDeleteNoOwn">
2211 <message name="message"> 2180 <message name="message">
2212 Au moins un objet ne vous appartient pas. 2181 Au moins un des objets que vous avez sélectionnés ne vous appartient pas.
2213Vous pouvez toutefois supprimer la sélection. 2182
2214Etes-vous sûr(e) de vouloir supprimer ces eléments ? 2183Êtes-vous certain de vouloir supprimer ces objets ?
2215 </message> 2184 </message>
2216 <option name="Yes"> 2185 <option name="Yes">
2217 Oui 2186 OK
2218 </option> 2187 </option>
2219 <option name="No"> 2188 <option name="No">
2220 Non 2189 Annuler
2221 </option> 2190 </option>
2222 </alert> 2191 </alert>
2223 <alert name="ConfirmObjectDeleteLockNoCopy"> 2192 <alert name="ConfirmObjectDeleteLockNoCopy">
2224 <message name="message"> 2193 <message name="message">
2225 Au moins un objet est verrouillé. 2194 Au moins un des objets est verrouillé.
2226Au moins un objet est non copiable. 2195Au moins un des objets n&apos;est pas reproductible.
2227Vous pouvez toutefois supprimer la sélection en cours. 2196
2228Etes-vous sûr(e) de vouloir supprimer ces éléments ? 2197Êtes-vous certain de vouloir supprimer ces objets ?
2229 </message> 2198 </message>
2230 <option name="Yes"> 2199 <option name="Yes">
2231 Oui 2200 OK
2232 </option> 2201 </option>
2233 <option name="No"> 2202 <option name="No">
2234 Non 2203 Annuler
2235 </option> 2204 </option>
2236 </alert> 2205 </alert>
2237 <alert name="ConfirmObjectDeleteLockNoOwn"> 2206 <alert name="ConfirmObjectDeleteLockNoOwn">
2238 <message name="message"> 2207 <message name="message">
2239 Au moins un objet est verrouillé. 2208 Au moins un des objets est verrouillé.
2240Au moins un objet ne vous appartient pas. 2209Au moins un des objets ne vous appartient pas.
2241Vous pouvez toutefois supprimer la sélection en cours. 2210
2242Etes-vous sûr(e) de vouloir supprimer ces eléments ? 2211Êtes-vous certain de vouloir supprimer ces objets ?
2243 </message> 2212 </message>
2244 <option name="Yes"> 2213 <option name="Yes">
2245 Oui 2214 OK
2246 </option> 2215 </option>
2247 <option name="No"> 2216 <option name="No">
2248 Non 2217 Annuler
2249 </option> 2218 </option>
2250 </alert> 2219 </alert>
2251 <alert name="ConfirmObjectDeleteNoCopyNoOwn"> 2220 <alert name="ConfirmObjectDeleteNoCopyNoOwn">
2252 <message name="message"> 2221 <message name="message">
2253 Au moins un objet est non copiable. 2222 Au moins un des objets n&apos;est pas reproductible.
2254Au moins un objet ne vous appartient pas. 2223Au moins un des objets ne vous appartient pas.
2255Vous pouvez toutefois supprimer la sélection en cours. 2224
2256Etes-vous sûr(e) de vouloir supprimer ces eléments ? 2225Êtes-vous certain de vouloir supprimer ces objets ?
2257 </message> 2226 </message>
2258 <option name="Yes"> 2227 <option name="Yes">
2259 Oui 2228 OK
2260 </option> 2229 </option>
2261 <option name="No"> 2230 <option name="No">
2262 Non 2231 Annuler
2263 </option> 2232 </option>
2264 </alert> 2233 </alert>
2265 <alert name="ConfirmObjectDeleteLockNoCopyNoOwn"> 2234 <alert name="ConfirmObjectDeleteLockNoCopyNoOwn">
2266 <message name="message"> 2235 <message name="message">
2267 Au moins un objet est verrouillé. 2236 Au moins un des objets est verrouillé.
2268Au moins un objet est non copiable. 2237Au moins un des objets n&apos;est pas reproductible.
2269Au moins un objet ne vous appartient pas. 2238Au moins un des objets ne vous appartient pas.
2270Vous pouvez toutefois supprimer la sélection en cours. 2239
2271Etes-vous sûr(e) de vouloir supprimer ces éléments ? 2240Êtes-vous certain de vouloir supprimer ces objets ?
2272 </message> 2241 </message>
2273 <option name="Yes"> 2242 <option name="Yes">
2274 Oui 2243 OK
2275 </option> 2244 </option>
2276 <option name="No"> 2245 <option name="No">
2277 Non 2246 annuler
2278 </option> 2247 </option>
2279 </alert> 2248 </alert>
2280 <alert name="ConfirmObjectTakeLock"> 2249 <alert name="ConfirmObjectTakeLock">
2281 <message name="message"> 2250 <message name="message">
2282 Au moins un objet est verrouillé. 2251 Au moins un des objets est verrouillé.
2283Vous pouvez toutefois prendre la sélection en cours. 2252
2284Etes-vous sûr(e) de vouloir prendre ces éléments ? 2253Êtes-vous certain de vouloir prendre ces objets ?
2285 </message> 2254 </message>
2286 <option name="Yes"> 2255 <option name="Yes">
2287 Oui 2256 OK
2288 </option> 2257 </option>
2289 <option name="No"> 2258 <option name="No">
2290 Non 2259 Annuler
2291 </option> 2260 </option>
2292 </alert> 2261 </alert>
2293 <alert name="ConfirmObjectTakeNoOwn"> 2262 <alert name="ConfirmObjectTakeNoOwn">
2294 <message name="message"> 2263 <message name="message">
2295 Vous n&apos;êtes pas propriétaire de tous les objets que vous prenez. 2264 Vous n&apos;êtes pas le propriétaire de tous les objets que vous prenez.
2296Si vous continuez, de nouvelles autorisations de propriété 2265Si vous continuez, les permissions accordées au prochain propriétaire entreront en vigueur et vous risquez de ne plus pouvoir modifier ou copier les objets.
2297seront appliquées aux objets, pouvant restreindre votre 2266
2298capacité à les modifier ou les copier à l&apos;avenir. 2267Êtes-vous certain de vouloir prendre ces objets ?
2299Vous pouvez toutefois prendre la sélection en cours.
2300Etes-vous sûr(e) de vouloir prendre ces éléments?
2301 </message> 2268 </message>
2302 <option name="Yes"> 2269 <option name="Yes">
2303 Oui 2270 OK
2304 </option> 2271 </option>
2305 <option name="No"> 2272 <option name="No">
2306 Non 2273 Annuler
2307 </option> 2274 </option>
2308 </alert> 2275 </alert>
2309 <alert name="ConfirmObjectTakeLockNoOwn"> 2276 <alert name="ConfirmObjectTakeLockNoOwn">
2310 <message name="message"> 2277 <message name="message">
2311 Au moins un objet est verrouillé. 2278 Au moins un des objets est verrouillé.
2312Vous n&apos;êtes pas propriétaire de tous les objets sélectionnés. 2279Vous n&apos;êtes pas le propriétaire de tous les objets que vous prenez.
2313Si vous poursuivez, de nouvelles autorisations de propriété 2280Si vous continuez, les permissions accordées au prochain propriétaire entreront en vigueur et vous risquez de ne plus pouvoir modifier ou copier les objets.
2314seront appliquées aux objets, pouvant restreindre 2281Par contre, vous pouvez prendre les objets sélectionnés.
2315votre capacité à les modifier ou les copier à l&apos;avenir. 2282
2316Vous pouvez toutefois prendre la sélection. 2283Êtes-vous certain de vouloir prendre ces objets ?
2317Etes-vous sûr(e) de vouloir prendre ces eléments ?
2318 </message> 2284 </message>
2319 <option name="Yes"> 2285 <option name="Yes">
2320 Oui 2286 OK
2321 </option> 2287 </option>
2322 <option name="No"> 2288 <option name="No">
2323 Non 2289 Annuler
2324 </option> 2290 </option>
2325 </alert> 2291 </alert>
2326 <alert name="CantBuyLandAcrossMultipleRegions"> 2292 <alert name="CantBuyLandAcrossMultipleRegions">
2327 <message name="message"> 2293 <message name="message">
2328 Impossible d&apos;acheter le terrain car la sélection s&apos;étend sur plusieurs régions. 2294 Impossible d&apos;acheter le terrain car la sélection couvre plusieurs régions.
2329Veuillez sélectionner une surface plus petite et recommencez. 2295
2296Veuillez sélectionner une zone plus petite et réessayer.
2330 </message> 2297 </message>
2331 </alert> 2298 </alert>
2332 <alert name="DeedLandToGroup"> 2299 <alert name="DeedLandToGroup">
2333 <message name="message"> 2300 <message name="message">
2334 En transférant cette parcelle, le groupe devra 2301 Si vous cédez ce terrain, le groupe devra
2335posséder et maintenir des crédits terrain suffisants. 2302avoir les moyens de le prendre en charge.
2336 2303Le prix de la vente du terrain n&apos;est pas remboursé par le propriétaire. Si la parcelle que vous cédez se vend, le prix de la vente sera divisé en parts égales parmi les membres du groupe.
2337Le prix d&apos;achat du terrain n&apos;est pas remboursé 2304
2338au propriétaire. A la vente d&apos;une parcelle transférée, le prix 2305Céder ces [AREA] m² de terrain au groupe [GROUP_NAME] ?
2339de vente est divisé équitablement entre les membres du groupe.
2340
2341Transférer les [AREA] m2 de terrain au groupe
2342&apos;[GROUP_NAME]&apos; ?
2343 </message> 2306 </message>
2344 <option name="Deed"> 2307 <option name="Deed">
2345 Transférer 2308 OK
2346 </option> 2309 </option>
2347 <option name="Cancel"> 2310 <option name="Cancel">
2348 Annuler 2311 Annuler
@@ -2350,21 +2313,15 @@ Transférer les [AREA] m2 de terrain au groupe
2350 </alert> 2313 </alert>
2351 <alert name="DeedLandToGroupWithContribution"> 2314 <alert name="DeedLandToGroupWithContribution">
2352 <message name="message"> 2315 <message name="message">
2353 En transférant cette parcelle, le groupe devra 2316 Si vous cédez ce terrain, le groupe devra
2354posséder et maintenir des crédits terrain suffisants. 2317avoir les moyens de le prendre en charge.
2355 2318La cession incluera une contribution de terrain simultanée au groupe de [FIRST_NAME] [LAST_NAME].
2356Ce transfert incluera une contribution de terrain 2319Le prix de la vente du terrain n&apos;est pas remboursé par le propriétaire. Si la parcelle que vous cédez se vend, le prix de la vente sera divisé en parts égales parmi les membres du groupe.
2357simultanée au groupe de la part de &apos;[FIRST_NAME] [LAST_NAME]&apos;.
2358
2359Le prix d&apos;achat du terrain n&apos;est pas remboursé
2360au propriétaire. A la vente d&apos;une parcelle transférée, le prix
2361de vente est divisé équitablement entre les membres du groupe.
2362 2320
2363Transférer les [AREA] m2 de terrain au groupe 2321Céder ces [AREA] m² de terrain au groupe [GROUP_NAME] ?
2364&apos;[GROUP_NAME]&apos; ?
2365 </message> 2322 </message>
2366 <option name="Deed"> 2323 <option name="Deed">
2367 Transférer 2324 OK
2368 </option> 2325 </option>
2369 <option name="Cancel"> 2326 <option name="Cancel">
2370 Annuler 2327 Annuler
@@ -2372,14 +2329,12 @@ Transférer les [AREA] m2 de terrain au groupe
2372 </alert> 2329 </alert>
2373 <alert name="DisplaySetToSafe"> 2330 <alert name="DisplaySetToSafe">
2374 <message name="message"> 2331 <message name="message">
2375 Les paramètres d&apos;affichage ont été définis ont été définis aux valeurs du mode sans échec 2332 Les paramètres d&apos;affichage sont au niveau le plus sûr, comme vous l&apos;aviez indiqué.
2376car vous avez activé le mode sans échec.
2377 </message> 2333 </message>
2378 </alert> 2334 </alert>
2379 <alert name="DisplaySetToRecommended"> 2335 <alert name="DisplaySetToRecommended">
2380 <message name="message"> 2336 <message name="message">
2381 Les paramètres d&apos;affichage ont été définis aux valeurs recommandées 2337 Vos paramètres d&apos;affichage ont été réglés avec une marge de sécurité en fonction de votre configuration système.
2382d&apos;après votre configuration matérielle.
2383 </message> 2338 </message>
2384 </alert> 2339 </alert>
2385 <alert name="UnableToConnect"> 2340 <alert name="UnableToConnect">
@@ -2412,7 +2367,7 @@ Connexion impossible à [IP_ADDRESS]
2412 </alert> 2367 </alert>
2413 <alert name="SystemMayBeDown"> 2368 <alert name="SystemMayBeDown">
2414 <message name="message"> 2369 <message name="message">
2415 Connexion impossible à [SECOND_LIFE] 2370 Connexion à [SECOND_LIFE] impossible
2416Le service est peut-être interrompu. 2371Le service est peut-être interrompu.
2417Veuillez réessayer d&apos;ici quelques minutes, ou cliquez sur Aide 2372Veuillez réessayer d&apos;ici quelques minutes, ou cliquez sur Aide
2418pour des conseils et un lien vers la page web d&apos;état du service. 2373pour des conseils et un lien vers la page web d&apos;état du service.
@@ -2429,11 +2384,16 @@ pour des conseils et un lien vers la page web d&apos;état du service.
2429 [ERROR_MESSAGE] 2384 [ERROR_MESSAGE]
2430 </message> 2385 </message>
2431 </alert> 2386 </alert>
2387 <alert name="AvatarMoved">
2388 <message name="message">
2389 L&apos;emplacement [TYPE] n&apos;est pas disponible actuellement. [HELP]
2390Vous avez été déplacé dans une région voisine.
2391 </message>
2392 </alert>
2432 <alert name="ClothingLoading"> 2393 <alert name="ClothingLoading">
2433 <message name="message"> 2394 <message name="message">
2434 Vos vêtements sont en cours de téléchargement. 2395 Vos habits sont toujours en train d&apos;être téléchargés.
2435Vous pouvez utiliser le monde normalement, les autres utilisateurs 2396Vous pouvez utiliser [SECOND_LIFE] sans problème, les autres résidents vous voient normalement.
2436vous verront correctement.
2437 </message> 2397 </message>
2438 <ignore name="ignore"> 2398 <ignore name="ignore">
2439 Lorsque les habits prennent longtemps à télécharger 2399 Lorsque les habits prennent longtemps à télécharger
@@ -2442,14 +2402,12 @@ vous verront correctement.
2442 <alert name="FirstRun"> 2402 <alert name="FirstRun">
2443 <message name="message"> 2403 <message name="message">
2444 L&apos;installation de [SECOND_LIFE] est terminée. 2404 L&apos;installation de [SECOND_LIFE] est terminée.
2445 2405
2446Si vous utilisez [SECOND_LIFE] pour la première fois, vous devez ouvrir un compte 2406S&apos;il s&apos;agit de la première fois que vous utilisez [SECOND_LIFE], vous devrez créer un compte avant de pouvoir vous connecter.
2447avant de pouvoir vous connecter. 2407Retourner sur www.secondlife.com pour créer un nouveau compte ?
2448
2449Retourner sur www.secondlife.com pour ouvrir un nouveau compte ?
2450 </message> 2408 </message>
2451 <option name="NewAccount..."> 2409 <option name="NewAccount...">
2452 Nouveau Compte... 2410 Nouveau compte...
2453 </option> 2411 </option>
2454 <option name="Continue"> 2412 <option name="Continue">
2455 Continuer 2413 Continuer
@@ -2464,11 +2422,9 @@ Veuillez vérifier votre connexion.
2464 </alert> 2422 </alert>
2465 <alert name="LoginPacketNeverReceived"> 2423 <alert name="LoginPacketNeverReceived">
2466 <message name="message"> 2424 <message name="message">
2467 Connexion impossible. Identification non reçue 2425 Vous avez des problèmes à vous connecter. Il peut s&apos;agir d&apos;un problème avec votre connexion internet ou les serveurs de Second Life.
2468par le serveur. 2426
2469 2427Nous vous conseillons de vérifier votre connexion Internet et de réessayer dans quelques minutes, de cliquer sur Aide, ou bien de cliquer sur Téléporter pour être téléporté vers votre domicile.
2470Veuillez réessayer d&apos;ici quelques minutes, ou cliquez sur Aide
2471pour des conseils et un lien vers la page web d&apos;état du service.
2472 </message> 2428 </message>
2473 <option name="OK"> 2429 <option name="OK">
2474 OK 2430 OK
@@ -2482,36 +2438,31 @@ pour des conseils et un lien vers la page web d&apos;état du service.
2482 </alert> 2438 </alert>
2483 <alert name="WelcomeNoClothes"> 2439 <alert name="WelcomeNoClothes">
2484 <message name="message"> 2440 <message name="message">
2485 Votre personnage apparaîtra d&apos;ici quelques instants. 2441 Votre personnage va apparaître dans un moment.
2486 2442
2487Utilisez les touches de direction pour marcher. 2443Pour marcher, utilisez les flèches de direction.
2488 2444Appuyez sur F1 pour obtenir de l&apos;aide ou en savoir plus sur [SECOND_LIFE].
2489Appuyez sur la touche F1 pour obtenir de l&apos;aide
2490ou en savoir plus sur [SECOND_LIFE].
2491 </message> 2445 </message>
2492 </alert> 2446 </alert>
2493 <alert name="WelcomeChooseSex"> 2447 <alert name="WelcomeChooseSex">
2494 <message name="message"> 2448 <message name="message">
2495 Votre personnage apparaîtra d&apos;ici quelques instants. 2449 Votre personnage va apparaître dans un moment.
2496 2450
2497Utilisez les touches de direction pour marcher. 2451Pour marcher, utilisez les flèches de direction.
2498 2452Appuyez sur F1 pour obtenir de l&apos;aide ou en savoir plus sur [SECOND_LIFE].
2499Appuyez sur la touche F1 pour obtenir de l&apos;aide 2453Choisissez un avatar homme ou femme.
2500ou en savoir plus sur [SECOND_LIFE]. 2454Vous pourrez revenir sur votre décision plus tard.
2501
2502Veuillez choisir le sexe de votre personnage.
2503Vous pourrez le modifier ultérieurement.
2504 </message> 2455 </message>
2505 <option name="Male"> 2456 <option name="Male">
2506 Masculin 2457 Homme
2507 </option> 2458 </option>
2508 <option name="Female"> 2459 <option name="Female">
2509 Féminin 2460 Femme
2510 </option> 2461 </option>
2511 </alert> 2462 </alert>
2512 <alert name="NotEnoughCurrency"> 2463 <alert name="NotEnoughCurrency">
2513 <message name="message"> 2464 <message name="message">
2514 [NAME] L$ [PRICE] Votre solde est insuffisant. 2465 [NAME] [PRICE] L$ Vous n&apos;avez pas suffisamment de L$ pour faire cela.
2515 </message> 2466 </message>
2516 </alert> 2467 </alert>
2517 <alert name="GrantedModifyRights"> 2468 <alert name="GrantedModifyRights">
@@ -2526,12 +2477,9 @@ Vous pourrez le modifier ultérieurement.
2526 </alert> 2477 </alert>
2527 <alert name="FlushMapVisibilityCaches"> 2478 <alert name="FlushMapVisibilityCaches">
2528 <message name="message"> 2479 <message name="message">
2529 Ceci videra le cache cartographique de la région. 2480 Cela videra le cache cartographique de cette région.
2530 2481Cela n&apos;est vraiment utile que pour faire du débugage.
2531Cette option n&apos;est réellement utile que pour le débogage. 2482(En production, attendez 5 minutes. Les cartes seront mises à jour après reconnexion.)
2532
2533(Si vous êtes en production, attendez 5 minutes, les cartes de chacun
2534seront mises à jour après redémarrage.)
2535 </message> 2483 </message>
2536 <option name="OK"> 2484 <option name="OK">
2537 OK 2485 OK
@@ -2542,8 +2490,8 @@ seront mises à jour après redémarrage.)
2542 </alert> 2490 </alert>
2543 <alert name="OnlyCopyContentsOfSingleItem"> 2491 <alert name="OnlyCopyContentsOfSingleItem">
2544 <message name="message"> 2492 <message name="message">
2545 Impossible de copier le contenu de plus d&apos;un objet à la fois. 2493 Impossible de copier les contenus de plus d&apos;un objet à la fois.
2546Veuillez sélectionner un seul objet et recommencez. 2494Veuillez ne sélectionner qu&apos;un seul objet.
2547 </message> 2495 </message>
2548 <option name="OK"> 2496 <option name="OK">
2549 OK 2497 OK
@@ -2554,7 +2502,7 @@ Veuillez sélectionner un seul objet et recommencez.
2554 </alert> 2502 </alert>
2555 <alert name="KickUsersFromRegion"> 2503 <alert name="KickUsersFromRegion">
2556 <message name="message"> 2504 <message name="message">
2557 Téléporter tous les utilisateurs présents dans la région vers leurs domiciles ? 2505 Téléporter tous les résidents de cette région chez eux ?
2558 </message> 2506 </message>
2559 <option name="OK"> 2507 <option name="OK">
2560 OK 2508 OK
@@ -2592,18 +2540,18 @@ Remplacer la texture [TEXTURE_NUM] avec une image de 24 bits, 512 X 512, ou plus
2592 </alert> 2540 </alert>
2593 <alert name="RawUploadStarted"> 2541 <alert name="RawUploadStarted">
2594 <message name="message"> 2542 <message name="message">
2595 Upload en cours. Celui-ci peut prendre jusqu&apos;à 2 mn, 2543 Le chargement a commencé. Cela va prendre une à deux minutes,
2596en fonction de votre vitesse de connexion. 2544suivant votre vitesse de connexion.
2597 </message> 2545 </message>
2598 </alert> 2546 </alert>
2599 <alert name="ConfirmBakeTerrain"> 2547 <alert name="ConfirmBakeTerrain">
2600 <message name="message"> 2548 <message name="message">
2601 Etes-vous sûr(e) de vouloir figer le relief actuel, 2549 Etes-vous sûr(e) de vouloir figer le relief actuel,
2602en faire le point central des limites de réhaussement/abaissement de relief 2550en faire le point central des limites d&apos;élévation/abaissement de relief
2603et la valeur par défaut pour l&apos;outil &apos;Terrain par défaut&apos; ? 2551et la valeur par défaut du bouton Annuler modification ?
2604 </message> 2552 </message>
2605 <option name="Bake"> 2553 <option name="Bake">
2606 Figer 2554 OK
2607 </option> 2555 </option>
2608 <option name="Cancel"> 2556 <option name="Cancel">
2609 Annuler 2557 Annuler
@@ -2611,12 +2559,12 @@ et la valeur par défaut pour l&apos;outil &apos;Terrain par défaut&apos; ?
2611 </alert> 2559 </alert>
2612 <alert name="MaxAllowedAgentOnRegion"> 2560 <alert name="MaxAllowedAgentOnRegion">
2613 <message name="message"> 2561 <message name="message">
2614 Nombre maximum de résidents autorisés : [MAX_AGENTS] 2562 Vous ne pouvez pas autoriser plus de [MAX_AGENTS] résidents.
2615 </message> 2563 </message>
2616 </alert> 2564 </alert>
2617 <alert name="MaxBannedAgentsOnRegion"> 2565 <alert name="MaxBannedAgentsOnRegion">
2618 <message name="message"> 2566 <message name="message">
2619 Nombre maximum de résidents bannis : [MAX_BANNED] 2567 Vous ne pouvez pas bannir plus de [MAX_BANNED] résidents.
2620 </message> 2568 </message>
2621 </alert> 2569 </alert>
2622 <alert name="MaxAgentOnRegionBatch"> 2570 <alert name="MaxAgentOnRegionBatch">
@@ -2627,7 +2575,7 @@ Dépasse la limite fixée à [MAX_AGENTS] [LIST_TYPE] de [NUM_EXCESS].
2627 </alert> 2575 </alert>
2628 <alert name="MaxAllowedGroupsOnRegion"> 2576 <alert name="MaxAllowedGroupsOnRegion">
2629 <message name="message"> 2577 <message name="message">
2630 Nombre maximum de groupes autorisés : [MAX_GROUPS] 2578 Vous ne pouvez pas avoir plus que [MAX_GROUPS] groupes autorisés.
2631 </message> 2579 </message>
2632 <option name="Bake"> 2580 <option name="Bake">
2633 Figer 2581 Figer
@@ -2638,35 +2586,34 @@ Dépasse la limite fixée à [MAX_AGENTS] [LIST_TYPE] de [NUM_EXCESS].
2638 </alert> 2586 </alert>
2639 <alert name="MaxManagersOnRegion"> 2587 <alert name="MaxManagersOnRegion">
2640 <message name="message"> 2588 <message name="message">
2641 Nombre maximum de résidents bannis : [MAX_MANAGER] 2589 Vous ne pouvez avoir que [MAX_MANAGER] gérants de domaine.
2642 </message> 2590 </message>
2643 </alert> 2591 </alert>
2644 <alert name="OwnerCanNotBeDenied"> 2592 <alert name="OwnerCanNotBeDenied">
2645 <message name="message"> 2593 <message name="message">
2646 Impossible d&apos;ajouter le propriétaire du domaine à la liste noire du domaine. 2594 Impossible d&apos;ajouter le propriétaire du domaine à la liste des résidents bannis.
2647 </message> 2595 </message>
2648 </alert> 2596 </alert>
2649 <alert name="CanNotChangeAppearanceUntilLoaded"> 2597 <alert name="CanNotChangeAppearanceUntilLoaded">
2650 <message name="message"> 2598 <message name="message">
2651 Impossible de modifier son apparence tant que les vêtements et silhouettes ne sont pas chargés. 2599 Impossible de changer d&apos;apparence jusqu&apos;à ce que les habits et la silhouette soient chargés.
2652 </message> 2600 </message>
2653 </alert> 2601 </alert>
2654 <alert name="ClassifiedMustBeAlphanumeric"> 2602 <alert name="ClassifiedMustBeAlphanumeric">
2655 <message name="message"> 2603 <message name="message">
2656 Le nom de votre annonce doit commencer 2604 Le nom de votre petite annonce doit commencer par un chiffre ou une lettre (A à Z). La ponctuation n&apos;est pas autorisée.
2657par une lettre ou un chiffre (pas de ponctuations).
2658 </message> 2605 </message>
2659 </alert> 2606 </alert>
2660 <alert name="CantSetBuyObject"> 2607 <alert name="CantSetBuyObject">
2661 <message name="message"> 2608 <message name="message">
2662 Impossible de définir &quot;Acheter objet&quot;, car l&apos;objet n&apos;est pas à vendre. 2609 Cet objet n&apos;est pas à vendre.
2663Veuillez mettre l&apos;objet en vente et réessayez. 2610Veuillez choisir un objet à vendre et réessayer.
2664 </message> 2611 </message>
2665 </alert> 2612 </alert>
2666 <alert name="FinishedRawDownload"> 2613 <alert name="FinishedRawDownload">
2667 <message name="message"> 2614 <message name="message">
2668 Téléchargement du fichier relief RAW terminé : 2615 Chargement du fichier de terrain raw effectué vers :
2669[DOWNLOAD_PATH] 2616[DOWNLOAD_PATH].
2670 </message> 2617 </message>
2671 </alert> 2618 </alert>
2672 <alert name="DownloadWindowsMandatory"> 2619 <alert name="DownloadWindowsMandatory">
@@ -2755,14 +2702,14 @@ Télécharger vers le dossier Applications ?
2755 </alert> 2702 </alert>
2756 <alert name="DeedObjectToGroup"> 2703 <alert name="DeedObjectToGroup">
2757 <message name="message"> 2704 <message name="message">
2758 Le transfert de cet objet permettra au groupe de : 2705 Si vous cédez cet objet, le groupe :
2759* Recevoir l&apos;argent payé à l&apos;objet 2706* recevra les L$ versés pour l&apos;objet ;
2760 </message> 2707 </message>
2761 <ignore name="ignore"> 2708 <ignore name="ignore">
2762 Lors du transfert d&apos;objets au groupe 2709 Lors de la cession d&apos;objets au groupe
2763 </ignore> 2710 </ignore>
2764 <option name="Deed"> 2711 <option name="Deed">
2765 Transférer 2712 Céder
2766 </option> 2713 </option>
2767 <option name="Cancel"> 2714 <option name="Cancel">
2768 Annuler 2715 Annuler
@@ -2786,6 +2733,9 @@ Télécharger vers le dossier Applications ?
2786 <message name="message"> 2733 <message name="message">
2787 Aller sur www.secondlife.com pour gérer votre compte ? 2734 Aller sur www.secondlife.com pour gérer votre compte ?
2788 </message> 2735 </message>
2736 <ignore name="ignore">
2737 Lors de l&apos;ouverture du navigateur web pour gérer votre compte
2738 </ignore>
2789 <option name="OK"> 2739 <option name="OK">
2790 OK 2740 OK
2791 </option> 2741 </option>
@@ -2793,10 +2743,83 @@ Télécharger vers le dossier Applications ?
2793 Annuler 2743 Annuler
2794 </option> 2744 </option>
2795 </alert> 2745 </alert>
2746 <alert name="WebLaunchBugReport101">
2747 <message name="message">
2748 Pour apprendre à signaler correctement des bugs, consultez le Wiki de [SECOND_LIFE].
2749 </message>
2750 <ignore name="ignore">
2751 Lors de l&apos;ouverture du navigateur web pour consulter le Wiki et apprendre à signaler des bugs
2752 </ignore>
2753 <option name="Gotopage">
2754 OK
2755 </option>
2756 <option name="Cancel">
2757 Annuler
2758 </option>
2759 </alert>
2760 <alert name="WebLaunchSecurityIssues">
2761 <message name="message">
2762 Pour apprendre à signaler un problème de sécurité, consultez le Wiki de [SECOND_LIFE].
2763 </message>
2764 <ignore name="ignore">
2765 Lors de l&apos;ouverture du navigateur web pour consulter la page Wiki sur les problèmes de sécurité.
2766 </ignore>
2767 <option name="Gotopage">
2768 OK
2769 </option>
2770 <option name="Cancel">
2771 Annuler
2772 </option>
2773 </alert>
2774 <alert name="WebLaunchQAWiki">
2775 <message name="message">
2776 Consultez le Wiki sur l&apos;Assurance Qualité de [SECOND_LIFE].
2777 </message>
2778 <ignore name="ignore">
2779 Lors de l&apos;ouverture du navigateur web pour consulter la page Wiki sur l&apos;Assurance Qualité.
2780 </ignore>
2781 <option name="Gotopage">
2782 OK
2783 </option>
2784 <option name="Cancel">
2785 Annuler
2786 </option>
2787 </alert>
2788 <alert name="WebLaunchPublicIssue">
2789 <message name="message">
2790 Pour signaler des bugs et autres problèmes, utilisez le JIRA de [SECOND_LIFE].
2791 </message>
2792 <ignore name="ignore">
2793 Lors de l&apos;ouverture du navigateur web pour consulter le JIRA
2794 </ignore>
2795 <option name="Gotopage">
2796 Aller sur cette page
2797 </option>
2798 <option name="Cancel">
2799 Annuler
2800 </option>
2801 </alert>
2802 <alert name="WebLaunchPublicIssueHelp">
2803 <message name="message">
2804 Pour apprendre à utiliser JIRA, consultez le Wiki de [SECOND_LIFE].
2805 </message>
2806 <ignore name="ignore">
2807 Lors de l&apos;ouverture du navigateur web pour consulter la page Wiki sur le JIRA
2808 </ignore>
2809 <option name="Gotopage">
2810 Aller sur cette page
2811 </option>
2812 <option name="Cancel">
2813 Annuler
2814 </option>
2815 </alert>
2796 <alert name="WebLaunchForums"> 2816 <alert name="WebLaunchForums">
2797 <message name="message"> 2817 <message name="message">
2798 Consultez la base de connaissances de [SECOND_LIFE] pour les derniers trucs &amp; astuces. 2818 Consultez la base de connaissances de [SECOND_LIFE] pour les derniers trucs &amp; astuces.
2799 </message> 2819 </message>
2820 <ignore name="ignore">
2821 Lors de l&apos;ouverture du navigateur web pour consulter la Base de connaissances
2822 </ignore>
2800 <option name="Gotopage"> 2823 <option name="Gotopage">
2801 Aller à la page 2824 Aller à la page
2802 </option> 2825 </option>
@@ -2804,10 +2827,27 @@ Télécharger vers le dossier Applications ?
2804 Annuler 2827 Annuler
2805 </option> 2828 </option>
2806 </alert> 2829 </alert>
2830 <alert name="WebLaunchSupport">
2831 <message name="message">
2832 Contactez le Service clientèle de [SECOND_LIFE].
2833 </message>
2834 <ignore name="ignore">
2835 Lors de l&apos;ouverture du navigateur web pour contacter le Service clientèle
2836 </ignore>
2837 <option name="Gotopage">
2838 OK
2839 </option>
2840 <option name="Cancel">
2841 Annuler
2842 </option>
2843 </alert>
2807 <alert name="WebLaunchSupportWiki"> 2844 <alert name="WebLaunchSupportWiki">
2808 <message name="message"> 2845 <message name="message">
2809 Visitez le blog officiel des Linden pour les dernières nouvelles et informations. 2846 Visitez le blog officiel des Lindens pour les dernières nouvelles et informations.
2810 </message> 2847 </message>
2848 <ignore name="ignore">
2849 Lors de l&apos;ouverture du navigateur web pour consulter le blog
2850 </ignore>
2811 <option name="Gotopage"> 2851 <option name="Gotopage">
2812 Aller à la page 2852 Aller à la page
2813 </option> 2853 </option>
@@ -2817,13 +2857,13 @@ Télécharger vers le dossier Applications ?
2817 </alert> 2857 </alert>
2818 <alert name="WebLaunchLSLGuide"> 2858 <alert name="WebLaunchLSLGuide">
2819 <message name="message"> 2859 <message name="message">
2820 Consulter le Manuel LSL pour de l&apos;aide sur les scripts ? 2860 Consulter le Guide guide pour l&apos;écriture de scripts pour obtenir de l&apos;aide ?
2821 </message> 2861 </message>
2822 <ignore name="ignore"> 2862 <ignore name="ignore">
2823 Lors de l&apos;ouverture du navigateur web pour voir le Guide de scripting 2863 Lors de l&apos;ouverture du navigateur web pour voir le Guide pour l&apos;écriture de scripts
2824 </ignore> 2864 </ignore>
2825 <option name="Gotopage"> 2865 <option name="Gotopage">
2826 Aller à la page 2866 OK
2827 </option> 2867 </option>
2828 <option name="Cancel"> 2868 <option name="Cancel">
2829 Annuler 2869 Annuler
@@ -2833,6 +2873,9 @@ Télécharger vers le dossier Applications ?
2833 <message name="message"> 2873 <message name="message">
2834 Consulter le Wiki LSL pour de l&apos;aide sur les scripts ? 2874 Consulter le Wiki LSL pour de l&apos;aide sur les scripts ?
2835 </message> 2875 </message>
2876 <ignore name="ignore">
2877 Lors de l&apos;ouverture du navigateur web pour consulter le Guide sur l&apos;écriture de scripts
2878 </ignore>
2836 <option name="Gotopage"> 2879 <option name="Gotopage">
2837 Aller à la page 2880 Aller à la page
2838 </option> 2881 </option>
@@ -2842,18 +2885,15 @@ Télécharger vers le dossier Applications ?
2842 </alert> 2885 </alert>
2843 <alert name="ReturnToOwner"> 2886 <alert name="ReturnToOwner">
2844 <message name="message"> 2887 <message name="message">
2845 Etes-vous sûr(e) de vouloir renvoyer les objets 2888 Êtes-vous certain de vouloir renvoyer les objets sélectionnés à leur propriétaire ? Les objets donnés transférables seront renvoyés à leur ancien propriétaire.
2846sélectionnés à leurs propriétaires ? Les objets cessibles transférés 2889
2847seront renvoyés à leurs propriétaires précédents. 2890*Avertissement* Les objets non transférables seront supprimés !
2848(Tous les objets renvoyés seront replacés dans leur dernier dossier.)
2849
2850*AVERTISSEMENT* Les objets non cessibles transférés seront supprimés !
2851 </message> 2891 </message>
2852 <ignore name="ignore"> 2892 <ignore name="ignore">
2853 Lors du renvoi d&apos;objets à leurs propriétaires 2893 Lors du renvoi d&apos;objets à leurs propriétaires
2854 </ignore> 2894 </ignore>
2855 <option name="Return"> 2895 <option name="Return">
2856 Retourner 2896 OK
2857 </option> 2897 </option>
2858 <option name="Cancel"> 2898 <option name="Cancel">
2859 Annuler 2899 Annuler
@@ -2861,7 +2901,7 @@ seront renvoyés à leurs propriétaires précédents.
2861 </alert> 2901 </alert>
2862 <alert name="GroupLeaveConfirmOfficer"> 2902 <alert name="GroupLeaveConfirmOfficer">
2863 <message name="message"> 2903 <message name="message">
2864 Vous êtes actuellement officier du groupe [GROUP]. 2904 Vous êtes actuellement officier dans le groupe [GROUP].
2865Quitter le groupe ? 2905Quitter le groupe ?
2866 </message> 2906 </message>
2867 <option name="Leave"> 2907 <option name="Leave">
@@ -2874,10 +2914,10 @@ Quitter le groupe ?
2874 <alert name="GroupLeaveConfirmMember"> 2914 <alert name="GroupLeaveConfirmMember">
2875 <message name="message"> 2915 <message name="message">
2876 Vous êtes actuellement membre du groupe [GROUP]. 2916 Vous êtes actuellement membre du groupe [GROUP].
2877Quitter le groupe ? 2917Quitter le groupe ?
2878 </message> 2918 </message>
2879 <option name="Leave"> 2919 <option name="Leave">
2880 Partir 2920 OK
2881 </option> 2921 </option>
2882 <option name="Cancel"> 2922 <option name="Cancel">
2883 Annuler 2923 Annuler
@@ -2885,10 +2925,10 @@ Quitter le groupe ?
2885 </alert> 2925 </alert>
2886 <alert name="ConfirmKick"> 2926 <alert name="ConfirmKick">
2887 <message name="message"> 2927 <message name="message">
2888 Souhaitez-vous REELLEMENT dégager tous les utilisateurs de la grille ? 2928 Souhaitez-vous vraiment éjecter tous les utilisateurs de la grille ?
2889 </message> 2929 </message>
2890 <option name="Kick"> 2930 <option name="Kick">
2891 Vider Tous 2931 Éjecter tous
2892 </option> 2932 </option>
2893 <option name="Cancel"> 2933 <option name="Cancel">
2894 Annuler 2934 Annuler
@@ -2896,15 +2936,15 @@ Quitter le groupe ?
2896 </alert> 2936 </alert>
2897 <alert name="MuteLinden"> 2937 <alert name="MuteLinden">
2898 <message name="message"> 2938 <message name="message">
2899 Désolés, mais vous ne pouvez ignorer un Linden. 2939 Désolé, vous ne pouvez pas ignorer un Linden.
2900 </message> 2940 </message>
2901 <option name="OK"> 2941 <option name="OK">
2902 OK 2942 OK
2903 </option> 2943 </option>
2904 </alert> 2944 </alert>
2905 <alert name="MuteByNameFailed" title="L&apos;objet n&apos;a pu être ignoré"> 2945 <alert name="MuteByNameFailed" title="Échec de la fonction Ignorer les objets par nom">
2906 <message name="message"> 2946 <message name="message">
2907 Vous avez déjà ignoré ce nom. 2947 Vous ignorez déjà ce résident.
2908 </message> 2948 </message>
2909 <option name="OK"> 2949 <option name="OK">
2910 OK 2950 OK
@@ -2912,14 +2952,13 @@ Quitter le groupe ?
2912 </alert> 2952 </alert>
2913 <alert name="RemoveItemWarn"> 2953 <alert name="RemoveItemWarn">
2914 <message name="message"> 2954 <message name="message">
2915 Bien qu&apos;autorisée, la suppression d&apos;inventaire peut endommager 2955 Si vous supprimez des contenus, vous risquez d&apos;endommager l&apos;objet. Souhaitez-vous supprimer cet objet ?
2916l&apos;objet. Souhaitez-vous supprimer cet elément d&apos;inventaire ?
2917 </message> 2956 </message>
2918 <option name="Yes"> 2957 <option name="Yes">
2919 Oui 2958 OK
2920 </option> 2959 </option>
2921 <option name="No"> 2960 <option name="No">
2922 Non 2961 Annuler
2923 </option> 2962 </option>
2924 </alert> 2963 </alert>
2925 <alert name="CantRateOwnedByGroup"> 2964 <alert name="CantRateOwnedByGroup">
@@ -2932,7 +2971,7 @@ l&apos;objet. Souhaitez-vous supprimer cet elément d&apos;inventaire ?
2932 </alert> 2971 </alert>
2933 <alert name="CantOfferCallingCard"> 2972 <alert name="CantOfferCallingCard">
2934 <message name="message"> 2973 <message name="message">
2935 Impossible d&apos;offrir votre carte de visite actuellement. Veuillez réessayer dans un moment. 2974 Impossible d&apos;offrir une carte de visite actuellement. Veuillez réessayer dans un moment.
2936 </message> 2975 </message>
2937 <option name="OK"> 2976 <option name="OK">
2938 OK 2977 OK
@@ -2940,7 +2979,7 @@ l&apos;objet. Souhaitez-vous supprimer cet elément d&apos;inventaire ?
2940 </alert> 2979 </alert>
2941 <alert name="CantOfferFriendship"> 2980 <alert name="CantOfferFriendship">
2942 <message name="message"> 2981 <message name="message">
2943 Impossible de proposer de devenir votre ami(e). Veuillez réessayer dans quelques instants. 2982 Impossible de proposer votre amitié actuellement. Veuillez réessayer dans un moment.
2944 </message> 2983 </message>
2945 <option name="OK"> 2984 <option name="OK">
2946 OK 2985 OK
@@ -2957,10 +2996,8 @@ Votre domicile doit se trouver sur un terrain vous appartenant ou appartenant à
2957 </alert> 2996 </alert>
2958 <alert name="BusyModeSet"> 2997 <alert name="BusyModeSet">
2959 <message name="message"> 2998 <message name="message">
2960 Vous êtes en mode occupé. 2999 Mode occupé activé.
2961Le chat et les messages instantanés seront cachés. Les IM 3000Les chats et les messages instantanés ne s&apos;afficheront pas. Les messages instantanés génèreront la réponse en mode occupé que vous avez créée. Toutes les offres de téléportation seront refusées. Toutes les offres d&apos;inventaire iront dans la corbeille.
2962retourneront un message d&apos;occupation. Toutes les offres de téléportation
2963et d&apos;inventaire seront déclinées.
2964 </message> 3001 </message>
2965 <ignore name="ignore"> 3002 <ignore name="ignore">
2966 Lors de l&apos;utilisation du mode Occupé 3003 Lors de l&apos;utilisation du mode Occupé
@@ -2988,19 +3025,16 @@ peuvent être joints aux notes.
2988 </alert> 3025 </alert>
2989 <alert name="JoinedTooManyGroupsMember"> 3026 <alert name="JoinedTooManyGroupsMember">
2990 <message name="message"> 3027 <message name="message">
2991 Vous appartenez à trop de groupes pour vous inscrire 3028 Vous appartenez déjà à un nombre élevé de groupes et nous ne pouvez pas en rejoindre un nouveau. Avant de pouvoir rejoindre ce groupe, vous devez en quitter un ou refuser cette offre.
2992à un nouveau. Veuillez quitter au moins un groupe 3029Pour quitter un groupe, sélectionnez l&apos;option Groupe dans le menu Éditer.
2993avant de vous inscrire, ou déclinez l&apos;invitation. 3030[NAME] vous invite à rejoindre un groupe.
2994Pour quitter un groupe, sélectionnez l&apos;option &apos;Mes Groupes&apos;
2995dans le menu &apos;Edition&apos;.
2996[NAME] vous invite à devenir membre du groupe.
2997[INVITE] 3031[INVITE]
2998 </message> 3032 </message>
2999 <option name="Join"> 3033 <option name="Join">
3000 Fusionner 3034 Rejoindre
3001 </option> 3035 </option>
3002 <option name="Decline"> 3036 <option name="Decline">
3003 Décliner 3037 Refuser
3004 </option> 3038 </option>
3005 </alert> 3039 </alert>
3006 <alert name="JoinedTooManyGroupsOfficer"> 3040 <alert name="JoinedTooManyGroupsOfficer">
@@ -3014,18 +3048,18 @@ dans le menu &apos;Edition&apos;.
3014[INVITE] 3048[INVITE]
3015 </message> 3049 </message>
3016 <option name="Join"> 3050 <option name="Join">
3017 Fusionner 3051 Rejoindre
3018 </option> 3052 </option>
3019 <option name="Decline"> 3053 <option name="Decline">
3020 Décliner 3054 Refuser
3021 </option> 3055 </option>
3022 </alert> 3056 </alert>
3023 <alert name="KickUser"> 3057 <alert name="KickUser">
3024 <message name="message"> 3058 <message name="message">
3025 Dégager cet utilisateur avec quel message ? 3059 Éjecter cet utilisateur avec quel message ?
3026 </message> 3060 </message>
3027 <editline name="editline"> 3061 <editline name="editline">
3028 Vous avez été déconnecté par un administrateur. 3062 Un administrateur vous a déconnecté.
3029 </editline> 3063 </editline>
3030 <option name="OK"> 3064 <option name="OK">
3031 OK 3065 OK
@@ -3036,10 +3070,10 @@ dans le menu &apos;Edition&apos;.
3036 </alert> 3070 </alert>
3037 <alert name="KickAllUsers"> 3071 <alert name="KickAllUsers">
3038 <message name="message"> 3072 <message name="message">
3039 Dégager tous les utilisateurs actuellement présents sur la grille avec quel message ? 3073 Éjecter tous les résidents actuellement en ligne avec quel message ?
3040 </message> 3074 </message>
3041 <editline name="editline"> 3075 <editline name="editline">
3042 Vous avez été déconnecté par un administrateur. 3076 Un administrateur vous a déconnecté.
3043 </editline> 3077 </editline>
3044 <option name="OK"> 3078 <option name="OK">
3045 OK 3079 OK
@@ -3050,10 +3084,10 @@ dans le menu &apos;Edition&apos;.
3050 </alert> 3084 </alert>
3051 <alert name="FreezeUser"> 3085 <alert name="FreezeUser">
3052 <message name="message"> 3086 <message name="message">
3053 Bloquer cet utilisateur avec quel message ? 3087 Geler cet utilisateur avec quel message ?
3054 </message> 3088 </message>
3055 <editline name="editline"> 3089 <editline name="editline">
3056 Vous avez été bloqué. Vous ne pouvez ni vous déplacer, ni chatter. Un administrateur va vous contacter via message instantané (IM). 3090 Vous avez été gelé. Vous ne pouvez ni bouger ni chatter. Un administrateur va vous envoyer un message instantané (IM).
3057 </editline> 3091 </editline>
3058 <option name="OK"> 3092 <option name="OK">
3059 OK 3093 OK
@@ -3064,10 +3098,10 @@ dans le menu &apos;Edition&apos;.
3064 </alert> 3098 </alert>
3065 <alert name="UnFreezeUser"> 3099 <alert name="UnFreezeUser">
3066 <message name="message"> 3100 <message name="message">
3067 Débloquer cet utilisateur avec quel message ? 3101 Dégeler cet utilisateur avec quel message ?
3068 </message> 3102 </message>
3069 <editline name="editline"> 3103 <editline name="editline">
3070 Vous n&apos;êtes plus bloqué. 3104 Vous n&apos;êtes plus gelé.
3071 </editline> 3105 </editline>
3072 <option name="OK"> 3106 <option name="OK">
3073 OK 3107 OK
@@ -3078,7 +3112,7 @@ dans le menu &apos;Edition&apos;.
3078 </alert> 3112 </alert>
3079 <alert name="ExpungeUser"> 3113 <alert name="ExpungeUser">
3080 <message name="message"> 3114 <message name="message">
3081 Entrez l&apos;id d&apos;un avatar à expulser 3115 Entrez l&apos;id de l&apos;avatar à éjecter
3082 </message> 3116 </message>
3083 <option name="OK"> 3117 <option name="OK">
3084 OK 3118 OK
@@ -3089,10 +3123,10 @@ dans le menu &apos;Edition&apos;.
3089 </alert> 3123 </alert>
3090 <alert name="OfferTeleport"> 3124 <alert name="OfferTeleport">
3091 <message name="message"> 3125 <message name="message">
3092 Proposer de téléporter la personne avec le message suivant ? 3126 Proposez une téléportation avec le message suivant ?
3093 </message> 3127 </message>
3094 <editline name="editline"> 3128 <editline name="editline">
3095 Rejoins-moi à [REGION] 3129 On se rejoint à [REGION] ?
3096 </editline> 3130 </editline>
3097 <option name="OK"> 3131 <option name="OK">
3098 OK 3132 OK
@@ -3103,10 +3137,10 @@ dans le menu &apos;Edition&apos;.
3103 </alert> 3137 </alert>
3104 <alert name="OfferTeleportFromGod"> 3138 <alert name="OfferTeleportFromGod">
3105 <message name="message"> 3139 <message name="message">
3106 Super-invoquer l&apos;utilisateur ici ? 3140 Demander au résident de venir vous rejoindre ?
3107 </message> 3141 </message>
3108 <editline name="editline"> 3142 <editline name="editline">
3109 Rejoins-moi à [REGION] 3143 On se rejoint à [REGION] ?
3110 </editline> 3144 </editline>
3111 <option name="OK"> 3145 <option name="OK">
3112 OK 3146 OK
@@ -3117,7 +3151,7 @@ dans le menu &apos;Edition&apos;.
3117 </alert> 3151 </alert>
3118 <alert name="TeleportFromLandmark"> 3152 <alert name="TeleportFromLandmark">
3119 <message name="message"> 3153 <message name="message">
3120 Etes-vous certain de vouloir être téléporté ? 3154 Êtes-vous certain de vouloir être téléporté ?
3121 </message> 3155 </message>
3122 <ignore name="ignore"> 3156 <ignore name="ignore">
3123 Lors de la téléportation depuis un repère de l&apos;inventaire 3157 Lors de la téléportation depuis un repère de l&apos;inventaire
@@ -3129,12 +3163,11 @@ dans le menu &apos;Edition&apos;.
3129 Annuler 3163 Annuler
3130 </option> 3164 </option>
3131 </alert> 3165 </alert>
3132 <alert name="MessageEstate" 3166 <alert name="MessageEstate" title="Envoyer un message à tout le monde dans votre domaine">
3133 title="Envoyez un message à tout le monde dans votre domaine">
3134 <message name="message"> 3167 <message name="message">
3135 Composez une brève annonce qui sera 3168 Saisissez un message court qui sera envoyé à tous les résidents se trouvant actuellement sur votre domaine.
3136envoyée à toutes les personnes présentes sur votre domaine.
3137 </message> 3169 </message>
3170 <editline name="editline"/>
3138 <option name="OK"> 3171 <option name="OK">
3139 OK 3172 OK
3140 </option> 3173 </option>
@@ -3142,150 +3175,143 @@ envoyée à toutes les personnes présentes sur votre domaine.
3142 Annuler 3175 Annuler
3143 </option> 3176 </option>
3144 </alert> 3177 </alert>
3145 <alert name="ChangeLindenEstate" title="Modifier domaine Linden"> 3178 <alert name="ChangeLindenEstate" title="Modifier un domaine Linden">
3146 <message name="message"> 3179 <message name="message">
3147 Vous vous apprêtez à modifier un domaine appartenant aux Linden 3180 Vous vous apprêtez à modifier un domaine appartenant aux Lindens (continent, zone réservée aux ados, orientation etc.).
3148(continent, grille ado, orientation, etc.). 3181
3149 3182Cela est extrêmement délicat car l&apos;expérience des résidents est en jeu. Sur le continent, cela modifiera
3150Ceci est EXTREMEMENT DANGEREUX car cela peut fondamentalement 3183des milliers de régions et sera difficile à digérer pour le serveur.
3151affecter l&apos;expérience des utilisateurs. Sur le continent, cela modifiera
3152des milliers de régions et provoquera l&apos;instabilité du serveur principal.
3153 3184
3154Continuer ? 3185Continuer ?
3155 </message> 3186 </message>
3156 <option name="ChangeEstate"> 3187 <option name="ChangeEstate">
3157 Changer de domaine 3188 OK
3158 </option> 3189 </option>
3159 <option name="Cancel"> 3190 <option name="Cancel">
3160 Annuler 3191 Annuler
3161 </option> 3192 </option>
3162 </alert> 3193 </alert>
3163 <alert name="ChangeLindenAccess" title="Modifier l&apos;accès au domaine Linden"> 3194 <alert name="ChangeLindenAccess" title="Modifier l&apos;accès à un domaine Linden">
3164 <message name="message"> 3195 <message name="message">
3165 Vous vous apprêtez à modifier la liste d&apos;accès d&apos;un domaine appartenant aux Linden 3196 Vous vous apprêtez à modifier la liste d&apos;accès à un domaine appartenant aux Linden (continent, zone réservée aux ados, orientation etc.).
3166(continent, grille ado, orientation, etc.). 3197
3167 3198Cette action est délicate et ne doit être effectuée que pour appeler le hack autorisant des objets/L$ à être transférés à l&apos;intérieur/extérieur de la grille.
3168Ceci est DANGEREUX et ne doit être utilisé que pour invoquer le hack 3199Cette action modifiera des milliers de régions et sera difficile à digérer pour le serveur.
3169permettant le transfert d&apos;objets ou d&apos;argent depuis ou vers la grille.
3170
3171Cela modifie des milliers de régions et provoque l&apos;instabilité du serveur principal.
3172
3173Continuer ?
3174 </message> 3200 </message>
3175 <option name="ChangeEstate"> 3201 <option name="ChangeEstate">
3176 Changer de domaine 3202 OK
3177 </option> 3203 </option>
3178 <option name="Cancel"> 3204 <option name="Cancel">
3179 Annuler 3205 Annuler
3180 </option> 3206 </option>
3181 </alert> 3207 </alert>
3182 <alert name="EstateAllowedAgentAdd" title="Sélectionner domaine"> 3208 <alert name="EstateAllowedAgentAdd" title="Choisir le domaine">
3183 <message name="message"> 3209 <message name="message">
3184 Ajouter à la liste d&apos;accès de ce domaine seulement ou [ALL_ESTATES] ? 3210 Ajouter à la liste des résidents autori©s uniquement pour ce domaine ou pour [ALL_ESTATES] ?
3185 </message> 3211 </message>
3186 <option name="ThisEstate"> 3212 <option name="ThisEstate">
3187 Ce domaine 3213 Ce domaine
3188 </option> 3214 </option>
3189 <option name="AllEstates"> 3215 <option name="AllEstates">
3190 Tous domaines 3216 Tous les domaines
3191 </option> 3217 </option>
3192 <option name="Cancel"> 3218 <option name="Cancel">
3193 Annuler 3219 Annuler
3194 </option> 3220 </option>
3195 </alert> 3221 </alert>
3196 <alert name="EstateAllowedAgentRemove" title="Sélectionner domaine"> 3222 <alert name="EstateAllowedAgentRemove" title="Choisir le domaine">
3197 <message name="message"> 3223 <message name="message">
3198 Retirer de la liste d&apos;accès pour ce domaine seulement ou pour [ALL_ESTATES] ? 3224 Supprimer de la liste des résidents autori©s uniquement pour ce domaine ou pour [ALL_ESTATES] ?
3199 </message> 3225 </message>
3200 <option name="ThisEstate"> 3226 <option name="ThisEstate">
3201 Ce domaine 3227 Ce domaine
3202 </option> 3228 </option>
3203 <option name="AllEstates"> 3229 <option name="AllEstates">
3204 Tous domaines 3230 Tous les domaines
3205 </option> 3231 </option>
3206 <option name="Cancel"> 3232 <option name="Cancel">
3207 Annuler 3233 Annuler
3208 </option> 3234 </option>
3209 </alert> 3235 </alert>
3210 <alert name="EstateAllowedGroupAdd" title="Sélectionner domaine"> 3236 <alert name="EstateAllowedGroupAdd" title="Choisir le domaine">
3211 <message name="message"> 3237 <message name="message">
3212 Ajouter à la liste des groupes admis pour ce domaine seulement ou [ALL_ESTATES] ? 3238 Ajouter à la liste des groupes autorisés uniquement pour ce domaine ou pour [ALL_ESTATES] ?
3213 </message> 3239 </message>
3214 <option name="ThisEstate"> 3240 <option name="ThisEstate">
3215 Ce domaine 3241 Ce domaine
3216 </option> 3242 </option>
3217 <option name="AllEstates"> 3243 <option name="AllEstates">
3218 Tous domaines 3244 Tous les domaines
3219 </option> 3245 </option>
3220 <option name="Cancel"> 3246 <option name="Cancel">
3221 Annuler 3247 Annuler
3222 </option> 3248 </option>
3223 </alert> 3249 </alert>
3224 <alert name="EstateAllowedGroupRemove" title="Sélectionner domaine"> 3250 <alert name="EstateAllowedGroupRemove" title="Choisir le domaine">
3225 <message name="message"> 3251 <message name="message">
3226 Retirer de la liste des groupes admis pour ce domaine seulement ou pour [ALL_ESTATES] ? 3252 Supprimer de la liste des groupes autorisés uniquement pour ce domaine ou pour [ALL_ESTATES] ?
3227 </message> 3253 </message>
3228 <option name="ThisEstate"> 3254 <option name="ThisEstate">
3229 Ce domaine 3255 Ce domaine
3230 </option> 3256 </option>
3231 <option name="AllEstates"> 3257 <option name="AllEstates">
3232 Tous domaines 3258 Tous les domaines
3233 </option> 3259 </option>
3234 <option name="Cancel"> 3260 <option name="Cancel">
3235 Annuler 3261 Annuler
3236 </option> 3262 </option>
3237 </alert> 3263 </alert>
3238 <alert name="EstateBannedAgentAdd" title="Sélectionner domaine"> 3264 <alert name="EstateBannedAgentAdd" title="Choisir le domaine">
3239 <message name="message"> 3265 <message name="message">
3240 Refuser l&apos;accès à ce domaine seulement ou à [ALL_ESTATES] ? 3266 Refuser l&apos;accès à ce domaine uniquement ou à [ALL_ESTATES] ?
3241 </message> 3267 </message>
3242 <option name="ThisEstate"> 3268 <option name="ThisEstate">
3243 Ce domaine 3269 Ce domaine
3244 </option> 3270 </option>
3245 <option name="AllEstates"> 3271 <option name="AllEstates">
3246 Tous domaines 3272 Tous les domaines
3247 </option> 3273 </option>
3248 <option name="Cancel"> 3274 <option name="Cancel">
3249 Annuler 3275 Annuler
3250 </option> 3276 </option>
3251 </alert> 3277 </alert>
3252 <alert name="EstateBannedAgentRemove" title="Sélectionner domaine"> 3278 <alert name="EstateBannedAgentRemove" title="Choisir le domaine">
3253 <message name="message"> 3279 <message name="message">
3254 Cesser de refuser l&apos;accès à ce domaine ou à [ALL_ESTATES] ? 3280 Supprimer ce résident de la liste des résidents bannis pour ce domaine uniquement ou pour [ALL_ESTATES] ?
3255 </message> 3281 </message>
3256 <option name="ThisEstate"> 3282 <option name="ThisEstate">
3257 Ce domaine 3283 Ce domaine
3258 </option> 3284 </option>
3259 <option name="AllEstates"> 3285 <option name="AllEstates">
3260 Tous domaines 3286 Tous les domaines
3261 </option> 3287 </option>
3262 <option name="Cancel"> 3288 <option name="Cancel">
3263 Annuler 3289 Annuler
3264 </option> 3290 </option>
3265 </alert> 3291 </alert>
3266 <alert name="EstateManagerAdd" title="Sélectionner domaine"> 3292 <alert name="EstateManagerAdd" title="Choisir le domaine">
3267 <message name="message"> 3293 <message name="message">
3268 Ajouter un administrateur de propriété pour cette propriété seulement ou pour l&apos;ensemble de vos propriétés ? 3294 Ajouter un gérant de domaine pour ce domaine uniquement ou pour [ALL_ESTATES] ?
3269 </message> 3295 </message>
3270 <option name="ThisEstate"> 3296 <option name="ThisEstate">
3271 Ce domaine 3297 Ce domaine
3272 </option> 3298 </option>
3273 <option name="AllEstates"> 3299 <option name="AllEstates">
3274 Tous domaines 3300 Tous les domaines
3275 </option> 3301 </option>
3276 <option name="Cancel"> 3302 <option name="Cancel">
3277 Annuler 3303 Annuler
3278 </option> 3304 </option>
3279 </alert> 3305 </alert>
3280 <alert name="EstateManagerRemove" title="Sélectionner domaine"> 3306 <alert name="EstateManagerRemove" title="Choisir le domaine">
3281 <message name="message"> 3307 <message name="message">
3282 Retirer l&apos;administrateur pour ce domaine seulement ou pour tous vos domaines? 3308 Supprimer le gérant de domaine pour ce domaine uniquement ou pour [ALL_ESTATES] ?
3283 </message> 3309 </message>
3284 <option name="ThisEstate"> 3310 <option name="ThisEstate">
3285 Ce domaine 3311 Ce domaine
3286 </option> 3312 </option>
3287 <option name="AllEstates"> 3313 <option name="AllEstates">
3288 Tous domaines 3314 Tous les domaines
3289 </option> 3315 </option>
3290 <option name="Cancel"> 3316 <option name="Cancel">
3291 Annuler 3317 Annuler
@@ -3293,24 +3319,24 @@ Continuer ?
3293 </alert> 3319 </alert>
3294 <alert name="EstateCovenantChange" title="Sélectionner domaine"> 3320 <alert name="EstateCovenantChange" title="Sélectionner domaine">
3295 <message name="message"> 3321 <message name="message">
3296 Modifier le message de la clause de sauvegarde pour ce domaine seulement ou pour [ALL_ESTATES] ? 3322 Modifier le message du règlement pour ce domaine uniquement ou pour [ALL_ESTATES] ?
3297 </message> 3323 </message>
3298 <option name="ThisEstate"> 3324 <option name="ThisEstate">
3299 Ce domaine 3325 Ce domaine
3300 </option> 3326 </option>
3301 <option name="AllEstates"> 3327 <option name="AllEstates">
3302 Tous domaines 3328 Tous les domaines
3303 </option> 3329 </option>
3304 <option name="Cancel"> 3330 <option name="Cancel">
3305 Annuler 3331 Annuler
3306 </option> 3332 </option>
3307 </alert> 3333 </alert>
3308 <alert name="EstateKickUser" title="Confirmer Dégager"> 3334 <alert name="EstateKickUser" title="Confirmer">
3309 <message name="message"> 3335 <message name="message">
3310 Dégager [EVIL_USER] de ce domaine ? 3336 Éjecter [EVIL_USER] de ce domaine ?
3311 </message> 3337 </message>
3312 <option name="Kick"> 3338 <option name="Kick">
3313 Dégager 3339 OK
3314 </option> 3340 </option>
3315 <option name="Cancel"> 3341 <option name="Cancel">
3316 Annuler 3342 Annuler
@@ -3318,10 +3344,10 @@ Continuer ?
3318 </alert> 3344 </alert>
3319 <alert name="EstateChangeCovenant"> 3345 <alert name="EstateChangeCovenant">
3320 <message name="message"> 3346 <message name="message">
3321 Etes-vous sûr(e) de vouloir modifier la clause de sauvegarde du domaine ? 3347 Êtes-vous certain de vouloir modifier le règlement du domaine ?
3322 </message> 3348 </message>
3323 <option name="Change"> 3349 <option name="Change">
3324 Changer 3350 OK
3325 </option> 3351 </option>
3326 <option name="Cancel"> 3352 <option name="Cancel">
3327 Annuler 3353 Annuler
@@ -3329,7 +3355,7 @@ Continuer ?
3329 </alert> 3355 </alert>
3330 <alert name="ProblemImportingEstateCovenant"> 3356 <alert name="ProblemImportingEstateCovenant">
3331 <message name="message"> 3357 <message name="message">
3332 Erreur d&apos;importation de la clause de sauvegarde du domaine. 3358 Problème lors de l&apos;importation du règlement du domaine.
3333 </message> 3359 </message>
3334 <option name="OK"> 3360 <option name="OK">
3335 OK 3361 OK
@@ -3347,7 +3373,7 @@ Continuer ?
3347 </alert> 3373 </alert>
3348 <alert name="UnableToLoadNotecard"> 3374 <alert name="UnableToLoadNotecard">
3349 <message name="message"> 3375 <message name="message">
3350 Impossible de charger ressource de la note pour le moment. 3376 Impossible de lire les données de la note actuellement.
3351 </message> 3377 </message>
3352 <option name="OK"> 3378 <option name="OK">
3353 OK 3379 OK
@@ -3355,7 +3381,7 @@ Continuer ?
3355 </alert> 3381 </alert>
3356 <alert name="NotAllowedToViewNotecard"> 3382 <alert name="NotAllowedToViewNotecard">
3357 <message name="message"> 3383 <message name="message">
3358 Autorisations insuffisantes pour afficher la note associée à l&apos;ID de ressource demandée. 3384 Permissions pour afficher la note insuffisantes.
3359 </message> 3385 </message>
3360 <option name="OK"> 3386 <option name="OK">
3361 OK 3387 OK
@@ -3363,7 +3389,7 @@ Continuer ?
3363 </alert> 3389 </alert>
3364 <alert name="MissingNotecardAssetID"> 3390 <alert name="MissingNotecardAssetID">
3365 <message name="message"> 3391 <message name="message">
3366 ID de ressource de la note absent de la base de données. 3392 Les références de la note ne se trouvent pas dans la base de données.
3367 </message> 3393 </message>
3368 <option name="OK"> 3394 <option name="OK">
3369 OK 3395 OK
@@ -3371,12 +3397,12 @@ Continuer ?
3371 </alert> 3397 </alert>
3372 <alert name="PublishClassified"> 3398 <alert name="PublishClassified">
3373 <message name="message"> 3399 <message name="message">
3374 Attention : les frais d&apos;insertion sont non remboursables. 3400 Rappel : les frais pour passer des petites annonces ne sont pas remboursables.
3375 3401
3376Publier cette annonce maintenant pour L$[AMOUNT]? 3402Publier cette petite annonce maintenant pour [AMOUNT] L$ ?
3377 </message> 3403 </message>
3378 <option name="Publish"> 3404 <option name="Publish">
3379 Publier 3405 OK
3380 </option> 3406 </option>
3381 <option name="Cancel"> 3407 <option name="Cancel">
3382 Annuler 3408 Annuler
@@ -3410,23 +3436,22 @@ Publier cette annonce maintenant pour L$[AMOUNT]?
3410 Annuler 3436 Annuler
3411 </option> 3437 </option>
3412 </alert> 3438 </alert>
3413 <alert name="ConfirmRestart" title="Confirmer redémarrage"> 3439 <alert name="ConfirmRestart" title="Confirmer le redémarrage">
3414 <message name="message"> 3440 <message name="message">
3415 Etes-vous sûr(e) de vouloir redémarrer cette région dans 2 minutes? 3441 Souhaitez-vous vraiment redémarrer cette région dans 2 minutes ?
3416 </message> 3442 </message>
3417 <option name="Restart"> 3443 <option name="Restart">
3418 Redémarrer 3444 OK
3419 </option> 3445 </option>
3420 <option name="Cancel"> 3446 <option name="Cancel">
3421 Annuler 3447 Annuler
3422 </option> 3448 </option>
3423 </alert> 3449 </alert>
3424 <alert name="MessageRegion" 3450 <alert name="MessageRegion" title="Envoyer un message à tout le monde dans cette région">
3425 title="Envoyez un message à tout le monde dans la région">
3426 <message name="message"> 3451 <message name="message">
3427 Composez une brève annonce qui sera 3452 Saisissez une message court qui sera envoyé à tous les résidents se trouvant actuellement dans cette région.
3428envoyée à toutes les personnes présentes dans cette région.
3429 </message> 3453 </message>
3454 <editline name="editline"/>
3430 <option name="OK"> 3455 <option name="OK">
3431 OK 3456 OK
3432 </option> 3457 </option>
@@ -3434,74 +3459,72 @@ envoyée à toutes les personnes présentes dans cette région.
3434 Annuler 3459 Annuler
3435 </option> 3460 </option>
3436 </alert> 3461 </alert>
3437 <alert name="HelpRegionBlockTerraform" title="Interdire le terraforming"> 3462 <alert name="HelpRegionBlockTerraform" title="Bloquer le terraformage">
3438 <message name="message"> 3463 <message name="message">
3439 Si cette option est cochée, les propriétaires terriens ne pourront pas terraformer 3464 Si vous cochez cette case, les propriétaires ne pourront plus terraformer leur terrain, quels que soient leurs paramètres à la section Modifier le terrain.
3440leur terrain, indépendamment des réglages &apos;Modifier Relief&apos; de chaque parcelle. 3465
3441 3466Défaut : désactivé
3442Défaut : désactivé
3443 </message> 3467 </message>
3444 </alert> 3468 </alert>
3445 <alert name="HelpRegionBlockFly" title="Interdire vol"> 3469 <alert name="HelpRegionBlockFly" title="Interdire le vol">
3446 <message name="message"> 3470 <message name="message">
3447 Si cette option est cochée, les personnes ne pourront pas voler dans cette région, 3471 Si vous cochez cette case, les résidents ne pourront plus voler dans cette région, quels que soient leurs paramètres.
3448indépendamment des réglages de &apos;Vol&apos; de chaque parcelle.
3449 3472
3450Défaut : désactivé 3473Défaut : désactivé
3451 </message> 3474 </message>
3452 </alert> 3475 </alert>
3453 <alert name="HelpRegionAllowDamage" title="Autoriser dégâts"> 3476 <alert name="HelpRegionAllowDamage" title="Autoriser les dégâts">
3454 <message name="message"> 3477 <message name="message">
3455 Cette option active le système de santé sur toutes les parcelles 3478 Si vous cochez cette case, l&apos;alerte santé est désactivée sur toutes les parcelles quels que soient les paramètres individuels de la parcelle. Si la case n&apos;est pas cochée, les propriétaires de parcelles peuvent quand même activer l&apos;alerte santé de manière individuelle sur leurs parcelles.
3456indépendamment des réglages individuels des parcelles. Si elle est
3457décochée, les propriétaires de parcelles individuelles pourront
3458activer le système de santé sur leurs parcelles.
3459 3479
3460Défaut : désactivé 3480Défaut : désactivé
3461 </message> 3481 </message>
3462 </alert> 3482 </alert>
3463 <alert name="HelpRegionAgentLimit" title="Limite d&apos;avatars"> 3483 <alert name="HelpRegionAgentLimit" title="Nombre limite d&apos;avatars">
3464 <message name="message"> 3484 <message name="message">
3465 Définit le nombre maximum d&apos;avatars autorisés dans cette région. 3485 Définit le nombre maximum d&apos;avatars autorisés dans cette région.
3466Plus il y a d&apos;avatars dans une région, plus les performances peuvent se dégrader. 3486La performance peut varier en fonction du nombre d&apos;avatars présents.
3467 3487
3468Défaut : 30 3488Défaut : 40
3469 </message> 3489 </message>
3470 </alert> 3490 </alert>
3471 <alert name="HelpRegionMaturity" title="Classification"> 3491 <alert name="HelpRegionObjectBonus" title="Bonus objet">
3472 <message name="message"> 3492 <message name="message">
3473 Définit la classification de la région (M=Adulte, PG=Tout Public), affichée dans le coin supérieur droit 3493 Le bonus objet est le multiplicateur de prims autorisés sur une parcelle donnée. L&apos;échelle autorisée est comprise entre 1 et 10. Lorsque ce chiffre est de 1, chaque parcelle de 512 m² peut contenir 117 objets. S&apos;il est de 2, chaque parcelle peut contenir 234 objets, ou deux fois plus, et ainsi de suite. Le nombre maximum d&apos;objets autorisés dans une région est de 15 000, quel que soit le bonus objet. Attention : si vous définissez un bonus objet et décidez ensuite de le diminuer, cela peut entraîner la suppression ou le renvoi d&apos;objets.
3474de l&apos;écran ou sous forme de bulles d&apos;aide sur la carte. Cette classification
3475affecte également les résultats de recherche - les résidents peuvent choisir d&apos;exclure
3476le contenu situé dans les régions Adultes.
3477 3494
3478Les bulles d&apos;aide de la carte ne seront pas modifiées avant 5 minutes, le système mettant périodiquement à jour les informations de la carte. 3495Défaut : 1.0
3496 </message>
3497 </alert>
3498 <alert name="HelpRegionMaturity" title="Maturité">
3499 <message name="message">
3500 Définit le niveau de maturité de la région. Ce niveau s&apos;affiche
3501 en haut de l&apos;écran et dans les pop-ups d&apos;astuces sur la carte. Ce paramètre influe aussi sur les résultats de recherche. Les résidents peuvent choisir de ne pas rechercher de contenu dans les régions Adultes.
3479 3502
3480Défaut : PG (Tout public) 3503Ce changement n&apos;apparaîtra pas immédiatement sur la carte.
3504
3505Défaut : Tout public
3481 </message> 3506 </message>
3482 </alert> 3507 </alert>
3483 <alert name="HelpRegionRestrictPushObject" title="Interdire de pousser"> 3508 <alert name="HelpRegionRestrictPushObject" title="Interdire les bousculades">
3484 <message name="message"> 3509 <message name="message">
3485 Limite les autorisations de pousser sur la région entière. 3510 Cette case permet de restreindre les bousculades dans toute une région.
3486Les avatars ne peuvent se pousser qu&apos;entre eux, ou être poussés par des scripts 3511Lorsqu&apos;elle est cochée, les résidents ne peuvent être bousculés que par eux-mêmes ou par le propriétaire de la région.
3487appartenant au propriétaire de la parcelle ou attribués au groupe sur la parcelle, 3512(Bousculer fait référence à la fonction LSL llPushObjet().)
3488si celle-ci est attribuée à un groupe.
3489Pousser est lié à la fonction llPushObject() du langage LSL.
3490 3513
3491Défaut : Désactiver 3514Défaut : Désactivé
3492 </message> 3515 </message>
3493 </alert> 3516 </alert>
3494 <alert name="HelpParcelChanges" title="Fusionner/subdiviser parcelle"> 3517 <alert name="HelpParcelChanges" title="Fusionner/Diviser des parcelles">
3495 <message name="message"> 3518 <message name="message">
3496 Cette case permet de choisir si les parcelles n&apos;appartenant pas au gérant du domaine peuvent être fusionnées ou divisées ou pas. 3519 Cette case permet de choisir si les parcelles n&apos;appartenant pas au gérant du domaine peuvent ou pas être fusionnées ou divisées.
3497Si cette case n&apos;est pas cochée : 3520Si cette case n&apos;est pas cochée :
3498 * Seuls les propriétaires ou gérants de domaine peuvent fusionner ou diviser des parcelles. 3521 * Seuls les propriétaires ou gérants de domaine peuvent fusionner ou diviser des parcelles.
3499 * Ils ne peuvent fusionner ou diviser que les parcelles du propriétaire, 3522 * Ils ne peuvent fusionner ou diviser que les parcelles du propriétaire,
3500 ou celles d&apos;un groupe dans lequel il ont les pouvoirs nécessaires. 3523 ou celles d&apos;un groupe dans lequel il ont les pouvoirs nécessaires.
3501Si cette case est cochée : 3524Si cette case est cochée :
3502 * Tous les propriétaires peuvent fusionner ou diviser leurs parcelles. 3525 * Tous les propriétaires peuvent fusionner ou diviser leurs parcelles.
3503 * Pour les parcelles du groupe, ceux avec les pouvoirs nécessaires 3526 * Pour les parcelles du groupe, les résidents avec les pouvoirs nécessaires
3504 peuvent fusionner ou diviser les parcelles. 3527 peuvent fusionner ou diviser les parcelles.
3505 3528
3506Défaut : Cochée 3529Défaut : Cochée
3507 </message> 3530 </message>
@@ -3512,39 +3535,38 @@ Défaut : Cochée
3512Défaut : Désactivé 3535Défaut : Désactivé
3513 </message> 3536 </message>
3514 </alert> 3537 </alert>
3515 <alert name="HelpParcelSearch" title="Do Not Show In Search"> 3538 <alert name="HelpParcelSearch" title="Ne pas afficher dans la recherche">
3516 <message name="message"> 3539 <message name="message">
3517 Checking this box will show: 3540 Si vous cochez cette option, votre parcelle apparaîtra :
3518- this parcel in search results 3541- dans les résultats de recherche ;
3519- this parcel&apos;s public objects 3542- dans les objets publics de cette parcelle.
3520 </message> 3543 </message>
3521 </alert> 3544 </alert>
3522 <alert name="RegionMaturityChange" title="Classification de la Région modifiée."> 3545 <alert name="RegionMaturityChange" title="Maturité de la région modifiée">
3523 <message name="message"> 3546 <message name="message">
3524 La classification de cette région a été modifiée. 3547 Le niveau de maturité de cette région a été mis à jour.
3525 3548Ce changement n&apos;apparaîtra pas immédiatement sur la carte.
3526Cependant, la carte du monde ne sera pas modifiée avant 5 minutes, le système mettant périodiquement à jour les informations de la carte.
3527 </message> 3549 </message>
3528 </alert> 3550 </alert>
3529 <alert name="HelpRegionLandResell" title="Revente de terrain"> 3551 <alert name="HelpRegionLandResell" title="Revente de terrain">
3530 <message name="message"> 3552 <message name="message">
3531 Les propriétaires et administrateurs de domaines peuvent vendre tout terrain appartenant au propriétaire du domaine. 3553 Les propriétaires et gérants de domaine peuvent vendre n&apos;importe quel terrain appartenant à un propriétaire de domaine.
3532Si cette option est décochée, les acheteurs ne peuvent revendre leur terrain dans cette région. 3554Si cette option n&apos;est pas cochée, les acheteurs ne peuvent pas revendre leur terrain dans cette région.
3533Si cette option est cochée, les acheteurs peuvent revendre leur terrain dans cette région. 3555Si cette option est cochée, les acheteurs peuvent revendre leur terrain dans cette région.
3534 3556
3535Défaut : Ne pas autoriser 3557Défaut : Ne pas autoriser
3536 </message> 3558 </message>
3537 </alert> 3559 </alert>
3538 <alert name="HelpEstateCovenantID" title="ID de ressource de la clause de sauvegarde"> 3560 <alert name="HelpEstateCovenantID" title="ID de ressource du règlement">
3539 <message name="message"> 3561 <message name="message">
3540 Définit l&apos;ID d&apos;élément de la note pour la Clause de sauvegarde de ce Domaine. 3562 Définit l&apos;ID de la note pour le règlement de ce domaine.
3541 3563
3542Défaut : 00000000-0000-0000-0000-000000000000 ou aucun 3564Défaut : 00000000-0000-0000-0000-000000000000 ou aucun
3543 </message> 3565 </message>
3544 </alert> 3566 </alert>
3545 <alert name="HelpRegionDisableScripts" title="Désactiver les scripts"> 3567 <alert name="HelpRegionDisableScripts" title="Désactiver les scripts">
3546 <message name="message"> 3568 <message name="message">
3547 Lorsque la performance d&apos;une sim est faible, cela vient peut-être d&apos;un script. Ouvrez la barre de statistiques (Ctrl-Maj-1). Consultez le Simulateur de propriétés physiques FPS. 3569 Lorsque la performance d&apos;une sim est faible, cela vient peut-être d&apos;un script. Ouvrez la section Statistiques (Ctrl-Maj-1). Consultez le Simulateur de propriétés physiques FPS.
3548S&apos;il est en dessous de 45, ouvrez le panel Heure situé en bas de la barre de statistiques. Si le script Heure indique 25mn ou moins, cliquez sur le bouton Afficher les scripts fréquemment utilisés. Vous verrez le nom et l&apos;emplacement des scripts qui sont peut-être à l&apos;origine du problème. 3570S&apos;il est en dessous de 45, ouvrez le panel Heure situé en bas de la barre de statistiques. Si le script Heure indique 25mn ou moins, cliquez sur le bouton Afficher les scripts fréquemment utilisés. Vous verrez le nom et l&apos;emplacement des scripts qui sont peut-être à l&apos;origine du problème.
3549 3571
3550Si vous cochez la case Désactiver les scripts et que vous appuyez sur Appliquer, tous les scripts de cette région seront temporairement désactivés. Vous devrez peut-être faire cela pour aller dans un endroit où se trouve un 3572Si vous cochez la case Désactiver les scripts et que vous appuyez sur Appliquer, tous les scripts de cette région seront temporairement désactivés. Vous devrez peut-être faire cela pour aller dans un endroit où se trouve un
@@ -3554,7 +3576,7 @@ Décochez la case Désactiver le script, puis cliquez sur Appliquer pour réacti
3554Défaut : désactivé 3576Défaut : désactivé
3555 </message> 3577 </message>
3556 </alert> 3578 </alert>
3557 <alert name="HelpRegionDisableCollisions" title="Désactiver collisions"> 3579 <alert name="HelpRegionDisableCollisions" title="Désactiver les collisions">
3558 <message name="message"> 3580 <message name="message">
3559 Lorsque la performance d&apos;une sim est faible, cela vient peut-être des objets physiques. 3581 Lorsque la performance d&apos;une sim est faible, cela vient peut-être des objets physiques.
3560Ouvrez la barre de statistiques (Ctrl-Maj-1). Consultez le Simulateur de propriétés physiques FPS. S&apos;il est en dessous de 45, ouvrez le panel Heure situé en bas de la barre de statistiques. Si le script Heure indique 25mn ou moins, cliquez sur le bouton Afficher les objets souvent responsables de collision. 3582Ouvrez la barre de statistiques (Ctrl-Maj-1). Consultez le Simulateur de propriétés physiques FPS. S&apos;il est en dessous de 45, ouvrez le panel Heure situé en bas de la barre de statistiques. Si le script Heure indique 25mn ou moins, cliquez sur le bouton Afficher les objets souvent responsables de collision.
@@ -3567,74 +3589,59 @@ Décochez la case Désactiver les collision, puis cliquez sur Appliquer pour ré
3567Défaut : désactivé 3589Défaut : désactivé
3568 </message> 3590 </message>
3569 </alert> 3591 </alert>
3570 <alert name="HelpRegionDisablePhysics" title="Désactiver Physiques"> 3592 <alert name="HelpRegionDisablePhysics" title="Désactiver les propriétés physiques">
3571 <message name="message"> 3593 <message name="message">
3572 Désactiver Physiques est équivalent à Désactiver Collisions, à la différence 3594 L&apos;option Désactiver les propriétés physiques est similaire à l&apos;option Désactiver les collisions sauf qu&apos;elle englobe toutes les simulations physiques. Cela signifie que les objets n&apos;entreront plus en collision et que les avatars ne pourront plus bouger.
3573que toute simulation physique est désactivée. Non seulement les objets
3574cessent toute collision, mais les avatars sont également immobilisés.
3575 3595
3576A n&apos;utiliser que lorsque Désactiver Collisions ne restitue pas 3596Vous ne devriez utiliser cette option que lorsque l&apos;option Désactiver les collisions ne rend pas sufisamment de performance à la région pour résoudre un problème de physique ou trouver les objets souvent responsables de collisions.
3577assez de performances à la région pour analyser
3578un problème physique ou de &apos;Top Collider&apos;.
3579 3597
3580Assurez-vous de bien réactiver Physiques lorsque vous avez fini, 3598Une fois que vous avez fini, n&apos;oubliez pas de réactiver les propriétés physiques sinon vos avatars ne pourront pas bouger.
3581sans quoi les avatars continueront à être immobilisés.
3582 3599
3583Défaut : décoché 3600Défaut : désactivé
3584 </message> 3601 </message>
3585 </alert> 3602 </alert>
3586 <alert name="HelpRegionTopColliders" title="Top Colliders"> 3603 <alert name="HelpRegionTopColliders" title="Objets souvent responsables de collision">
3587 <message name="message"> 3604 <message name="message">
3588 Affiche une liste d&apos;objets les plus exposés aux collisions potentielles entre objets. Ces objets peuvent 3605 Montre une liste des objets qui ont le plus de chances d&apos;entrer en collision avec d&apos;autres objets. Ces objets peuvent ralentir votre performance. Sélectionnez Affichage &gt; Statistiques et regardez sous Simulator &gt; Time &gt; Sim Time (Physics) pour voir si les propriétés physiques prennent plus de 20 ms.
3589ralentir la performance du sim. Sélectionnez Afficher &gt; Barre de statistiques et
3590vérifiez dans Simulateur &gt; Temps &gt; Temps du Sim (Physiques) si
3591plus de 20 ms sont consacrés à Physiques.
3592 </message> 3606 </message>
3593 </alert> 3607 </alert>
3594 <alert name="HelpRegionTopScripts" title="Top Scripts"> 3608 <alert name="HelpRegionTopScripts" title="Scripts souvent utilisés">
3595 <message name="message"> 3609 <message name="message">
3596 Affiche une liste d&apos;objets les plus occupés à exécuter des scripts LSL. Ces objets peuvent 3610 Dresse une liste des objets qui passent le plus de temps à exécuter des scripts LSL. Ces objets peuvent ralentir votre performance.
3597ralentir la performance du sim. Sélectionnez Afficher &gt; Barre de statistiques et 3611Sélectionnez Affichage &gt; Statistiques et regardez sous Simulator &gt; Time &gt; Script Time pour voir si les scripts prennent plus de 25 ms.
3598vérifiez dans Simulateur &gt; Temps &gt; Temps de script si
3599plus de 25 ms sont consacrés aux scripts.
3600 </message> 3612 </message>
3601 </alert> 3613 </alert>
3602 <alert name="HelpRegionRestart" title="Redémarrer région"> 3614 <alert name="HelpRegionRestart" title="Redémarrer la région">
3603 <message name="message"> 3615 <message name="message">
3604 Relancez le processus du serveur qui gère cette région 3616 Redémarre le serveur en charge de la région après un avertissement de deux minutes. Tous les résidents dans cette région seront déconnectés. Les données de la région seront sauvegardées et réapparaîtront au bout de 90 secondes.
3605après un avertissement de 2 minutes. Tous les résidents présents dans la région seront déconnectés. Les données de la région seront sauvegardées, et celle-ci
3606sera à nouveau accessible d&apos;ici 90 secondes.
3607 3617
3608Le redémarrage d&apos;une région ne règle pas la plupart des 3618Le redémarrage la région ne permet pas de résoudre la plupart des problèmes de performance. Les redémarrages ne doivent avoir lieu que si cela est vraiment nécessaire.
3609problèmes de performance, et doit être utilisé seulement lorsque nécessaire.
3610 </message> 3619 </message>
3611 </alert> 3620 </alert>
3612 <alert name="HelpRegionWaterHeight" title="Niveau de l&apos;eau"> 3621 <alert name="HelpRegionWaterHeight" title="Niveau de l&apos;eau">
3613 <message name="message"> 3622 <message name="message">
3614 Ceci est la hauteur en mètres du niveau d&apos;apparition de l&apos;eau. Si 3623 Il s&apos;agit de la hauteur de l&apos;eau en mètres.
3615cette valeur est différente de 20 et que vous avez de l&apos;eau adjacente au bord du monde ou dans 3624Si ce paramètre est différent de 20 et que vous avez de l&apos;eau adjacente au bord du monde ou de l&apos;eau « vide », il y aura un espace vide visible.
3616le &apos;vide&apos;, un espace sera visible. 3625
3617 3626
3618Défaut : 20 3627Défaut : 20
3619 </message> 3628 </message>
3620 </alert> 3629 </alert>
3621 <alert name="HelpRegionTerrainRaise" title="Rehausser relief"> 3630 <alert name="HelpRegionTerrainRaise" title="Surélévation du terrain">
3622 <message name="message"> 3631 <message name="message">
3623 Les propriétaires de parcelles peuvent élever le relief de cette distance 3632 Il s&apos;agit de la distance (en mètres) à laquelle les propriétaires de parcelle peuvent surélever leur terrain, par rapport au terrain « figé » dont la hauteur est fixée par défaut.
3624par rapport à la hauteur par défaut du relief figé.
3625 3633
3626Défaut : 4 3634Défaut : 4
3627 </message> 3635 </message>
3628 </alert> 3636 </alert>
3629 <alert name="HelpRegionTerrainLower" title="Abaisser relief"> 3637 <alert name="HelpRegionTerrainLower" title="Abaisser le terrain">
3630 <message name="message"> 3638 <message name="message">
3631 Les propriétaires de parcelles peuvent abaisser le relief de cette distance 3639 Il s&apos;agit de la distance (en mètres) à laquelle les propriétaires de parcelle peuvent abaisser leur terrain, par rapport au terrain « figé » dont la hauteur est fixée par défaut.
3632par rapport à la hauteur par défaut du relief figé.
3633 3640
3634Défaut : -4 3641Défaut : -4
3635 </message> 3642 </message>
3636 </alert> 3643 </alert>
3637 <alert name="HelpRegionUploadRaw" title="Uploader relief au format RAW..."> 3644 <alert name="HelpRegionUploadRaw" title="Charger le terrain au format RAW">
3638 <message name="message"> 3645 <message name="message">
3639 Ce bouton permet de charger un fichier .RAW dans la région où vous vous trouvez. 3646 Ce bouton permet de charger un fichier .RAW dans la région où vous vous trouvez.
3640Ce fichier doit avoir les bonnes dimensions (RGB, 256 x 256) et 13 canaux. Le meilleur moyen de créer un fichier terrain est de télécharger le fichier RAW existant. Un bon moyen est de modifier le canal rouge (hauteur terrain) et de le charger. 3647Ce fichier doit avoir les bonnes dimensions (RGB, 256 x 256) et 13 canaux. Le meilleur moyen de créer un fichier terrain est de télécharger le fichier RAW existant. Un bon moyen est de modifier le canal rouge (hauteur terrain) et de le charger.
@@ -3644,113 +3651,77 @@ Le chargement peut prendre jusqu&apos;à 45 secondes. Veuillez noter que le char
3644Pour en savoir plus sur la modification de la hauteur des terrains d&apos;une région, consultez l&apos;Aide F1. 3651Pour en savoir plus sur la modification de la hauteur des terrains d&apos;une région, consultez l&apos;Aide F1.
3645 </message> 3652 </message>
3646 </alert> 3653 </alert>
3647 <alert name="HelpRegionDownloadRaw" title="Télécharger un relief au format RAW"> 3654 <alert name="HelpRegionDownloadRaw" title="Télécharger le terrain au format RAW">
3648 <message name="message"> 3655 <message name="message">
3649 Ce bouton télécharge un fichier contenant les données de hauteur, 3656 Ce bouton permet de télécharger un fichier contenant les données relatives à la hauteur du terrain, dimensions de la parcelle, les mises en vente ainsi que certaines permissions relatives à la parcelle pour cette région. Lorsque vous ouvrez le fichier avec un programme tel que Photoshop, vous devez indiquer les dimensions du document qui sont les suivantes : RGB, 256 x 256 avec 13 canaux. Le fichier terrain ne peut pas être ouvert différemment.
3650les dimensions de la parcelle, le statut de parcelles mises en vente et quelques
3651autorisations pour cette région. Si vous ouvrez ce fichier à l&apos;aide d&apos;un programme comme
3652Photoshop, vous devrez préciser les dimensions du document :
3653RVB, 256x256 avec 13 canaux. Ce fichier de relief ne peut
3654être ouvert autrement.
3655 3657
3656Pour plus d&apos;informations sur les champs de hauteur, allez sur : 3658Pour en savoir plus sur la modification de la hauteur des terrains d&apos;une région, consultez l&apos;Aide F1.
3657http://secondlife.com/tiki/tiki-index.php?page=RawTerrainFile
3658 </message> 3659 </message>
3659 </alert> 3660 </alert>
3660 <alert name="HelpRegionUseEstateSun" title="Utiliser soleil du domaine"> 3661 <alert name="HelpRegionUseEstateSun" title="Utiliser le soleil du domaine">
3661 <message name="message"> 3662 <message name="message">
3662 Cette option définit la position du soleil de votre région 3663 Si vous cochez cette case, la position du soleil dans cette région sera la même que dans le reste du domaine.
3663sur celle du soleil dans le reste du domaine.
3664 3664
3665Défaut : activé 3665Défaut : activé
3666 </message> 3666 </message>
3667 </alert> 3667 </alert>
3668 <alert name="HelpRegionFixedSun" title="Soleil fixe"> 3668 <alert name="HelpRegionFixedSun" title="Soleil fixe">
3669 <message name="message"> 3669 <message name="message">
3670 Cette option définit la position du soleil 3670 Si vous cochez cette case, la position du soleil se fixe sur celle du curseur Phase et le soleil arrête de bouger.
3671sur celle du curseur de Phase et fige le soleil.
3672 3671
3673Défaut : désactivé 3672Défaut : désactivé
3674 </message> 3673 </message>
3675 </alert> 3674 </alert>
3676 <alert name="HelpRegionBakeTerrain" title="Figer Relief"> 3675 <alert name="HelpRegionBakeTerrain" title="Figer le terrain">
3677 <message name="message"> 3676 <message name="message">
3678 Ce bouton sauvegarde la forme actuelle du relief comme nouvelle valeur 3677 Ce bouton permet d&apos;enregistrer la forme actuelle du terrain comme nouvelle forme par défaut pour la région. Une fois figé, le terrain peut reprendre la forme enregistrée à partir de l&apos;option Rétablir le terrain à la section Modifer le terrain. Le terrain figé est aussi le point de référence pour les limites de surélévation et d&apos;abaissement.
3679par défaut pour la région. Une fois figé, le terrain peut être ramené
3680à sa forme par défaut en utilisant l&apos;outil &quot;Annuler Modifications&quot; dans
3681le menu Modifier Relief. Le relief figé est également le point central
3682qui fixe les limites d&apos;abaissement/réhaussement du relief.
3683 </message> 3678 </message>
3684 </alert> 3679 </alert>
3685 <alert name="HelpEstateEstateManager" title="Administrateurs du domaine"> 3680 <alert name="HelpEstateEstateManager" title="Gérants du domaine">
3686 <message name="message"> 3681 <message name="message">
3687 Un administrateur de domaine est un résident à qui vous déléguez 3682 Un gérant de domaine est un résident chargé du contrôle de la région et des paramètres du domaine. Un gérant de domaine peut modifier tous les paramètres, mais ne peut pas charger, télécharger ni figer de terrain. Un des pouvoirs principaux du gérant est de bannir ou d&apos;autoriser un résident sur votre domaine.
3688le contrôle de la région et le paramétrage du domaine. Un administrateur de domaine
3689peut modifier tous les paramètres à l&apos;aide de ces contrôles, sauf uploader,
3690télécharger, et fondre le relief. Ils peuvent notamment
3691autoriser ou bannir des résidents de votre domaine.
3692 3683
3693Les administrateurs de domaines ne peuvent être ajoutés ou retirés 3684Seuls les propriétaires de domaine peuvent ajouter ou supprimer des gérants de domaine. Lorsque vous choisissez un gérant de domaine, prenez un résident en qui vous avez confiance car vous serez en quelque sorte responsable de ses actions.
3694que par le propriétaire du domaine. Ne choisissez comme administrateurs que des
3695résidents en qui vous avez totale confiance, car vous serez
3696responsables de leurs actes.
3697 </message> 3685 </message>
3698 </alert> 3686 </alert>
3699 <alert name="HelpEstateUseGlobalTime" title="Utiliser l&apos;heure globale"> 3687 <alert name="HelpEstateUseGlobalTime" title="Utiliser le temps universel">
3700 <message name="message"> 3688 <message name="message">
3701 Cette option cale la position du soleil de votre domaine 3689 Cette case permet au soleil de votre domaine de suivre la position du soleil sur les domaines Linden du continent.
3702sur celle du soleil des domaines appartenant aux Linden&apos;
3703sur le &apos;continent&apos;.
3704 3690
3705Défaut : activé 3691Défaut : activé
3706 </message> 3692 </message>
3707 </alert> 3693 </alert>
3708 <alert name="HelpEstateFixedSun" title="Soleil fixe"> 3694 <alert name="HelpEstateFixedSun" title="Soleil fixe">
3709 <message name="message"> 3695 <message name="message">
3710 Cette option définit la position du soleil 3696 Si vous cochez cette case, la position du soleil se fixe sur celle du curseur Phase et le soleil arrête de bouger.
3711sur celle du curseur de Phase et fige le soleil.
3712 </message> 3697 </message>
3713 </alert> 3698 </alert>
3714 <alert name="HelpEstateExternallyVisible" title="Visible depuis le continent"> 3699 <alert name="HelpEstateExternallyVisible" title="Accès public">
3715 <message name="message"> 3700 <message name="message">
3716 Définit si les résidents qui se trouvent sur des domaines du Continent (appartenant aux Linden) 3701 Cette option vous permet de choisir quels résidents d&apos;autres domaines peuvent pénétrer sur votre domaine sans devoir être ajoutés à la liste d&apos;accès.
3717peuvent voir votre domaine sur la carte du monde.
3718 3702
3719Défaut : activé 3703Défaut : activé
3720 </message> 3704 </message>
3721 </alert> 3705 </alert>
3722 <alert name="HelpEstateAllowDirectTeleport" title="Autoriser téléportation directe"> 3706 <alert name="HelpEstateAllowDirectTeleport" title="Autoriser la téléportation directe">
3723 <message name="message"> 3707 <message name="message">
3724 Activé, permet aux résidents de se téléporter directement vers n&apos;importe quel 3708 Lorsqu&apos;elle est cochée, cette option permet aux résidents d&apos;être téléportés à n&apos;importe quel endroit sur votre domaine. Lorsque cette option n&apos;est pas cochée, les résidents sont téléportés au téléhub le plus proche.
3725point de votre domaine. Désactivé, les résidents se téléportent
3726vers le téléport le plus proche.
3727 3709
3728Défaut : désactivé 3710Défaut : désactivé
3729 </message> 3711 </message>
3730 </alert> 3712 </alert>
3731 <alert name="HelpEstateAllowResident" title="Autoriser l&apos;accès"> 3713 <alert name="HelpEstateAllowResident" title="Autoriser l&apos;accès">
3732 <message name="message"> 3714 <message name="message">
3733 Si un résident figure dans cette liste, l&apos;accès au domaine sera 3715 L&apos;accès à ce domaine sera réservé aux résidents figurant dans cette liste et aux groupes ci-dessous.
3734limité aux résidents de la liste et aux groupes affichés ci-dessous. 3716Cette option n&apos;est disponible que lorsque la case Accès public est décochée.
3735
3736(Si le domaine est visible depuis le continent, l&apos;accès ne peut être
3737limité à une liste de résidents ou de groupes. Cette option sera
3738désactivée. Seule la liste noire sera prise en compte.)
3739 </message> 3717 </message>
3740 </alert> 3718 </alert>
3741 <alert name="HelpEstateAllowGroup" title="Autoriser l&apos;accès au groupe"> 3719 <alert name="HelpEstateAllowGroup" title="Autoriser l&apos;accès de groupe">
3742 <message name="message"> 3720 <message name="message">
3743 Si un groupe figure dans cette liste, l&apos;accès au domaine sera 3721 L&apos;accès à ce domaine sera réservé aux groupes figurant dans cette liste et aux résidents ci-dessous. Cette option n&apos;est disponible que lorsque la case Accès public est décochée.
3744limité aux groupes de la liste et aux résidents nommément
3745autorisés ci-dessus.
3746
3747(Si le domaine est visible depuis le continent, l&apos;accès ne peut être
3748limité à une liste de résidents ou de groupes. Cette option sera
3749désactivée. Seule la liste noire sera prise en compte.)
3750 </message> 3722 </message>
3751 </alert> 3723 </alert>
3752 <alert name="HelpEstateAbuseEmailAddress" 3724 <alert name="HelpEstateAbuseEmailAddress" title="Adresse e-mail où signaler une infraction">
3753 title="Adresse e-mail où signaler une infraction">
3754 <message name="message"> 3725 <message name="message">
3755 Si vous utilisez une adresse e-mail valide, les rapports d&apos;infraction de ce domaine iront à cette adresse. 3726 Si vous utilisez une adresse e-mail valide, les rapports d&apos;infraction de ce domaine iront à cette adresse.
3756Si vous laissez ce champ vide, les rapports d&apos;infraction seront envoyés à Linden Lab uniquement. 3727Si vous laissez ce champ vide, les rapports d&apos;infraction seront envoyés à Linden Lab uniquement.
@@ -3758,11 +3729,7 @@ Si vous laissez ce champ vide, les rapports d&apos;infraction seront envoyés à
3758 </alert> 3729 </alert>
3759 <alert name="HelpEstateBanResident" title="Refuser l&apos;accès"> 3730 <alert name="HelpEstateBanResident" title="Refuser l&apos;accès">
3760 <message name="message"> 3731 <message name="message">
3761 Les résidents figurant sur cette liste n&apos;ont pas accès à votre domaine, 3732 Les résidents figurant sur cette liste ne peuvent pas pénétrer sur votre domaine, quels que soient les autres paramètres.
3762quels que soient les réglages d&apos;autorisations ou de groupe ci-dessus.
3763
3764Ajouter un résident à cette liste le retirera de
3765la liste des personnes autorisées.
3766 </message> 3733 </message>
3767 </alert> 3734 </alert>
3768 <alert name="HelpEstateVoiceChat" title="Autoriser les chats vocaux"> 3735 <alert name="HelpEstateVoiceChat" title="Autoriser les chats vocaux">
@@ -3777,7 +3744,7 @@ Défaut : désactivé
3777 Cette version de Second Life n&apos;est pas compatible avec la fonctionnalité de chat vocal dans cette région. Vous devez mettre à jour Second Life pour que le chat vocal fonctionne correctement. 3744 Cette version de Second Life n&apos;est pas compatible avec la fonctionnalité de chat vocal dans cette région. Vous devez mettre à jour Second Life pour que le chat vocal fonctionne correctement.
3778 </message> 3745 </message>
3779 </alert> 3746 </alert>
3780 <alert name="HelpEstateCovenant" title="Clause de sauvegarde du domaine"> 3747 <alert name="HelpEstateCovenant" title="Règlement du domaine">
3781 <message name="message"> 3748 <message name="message">
3782 Définir un règlement pour le domaine vous permet de vendre les parcelles de ce domaine. S&apos;il n&apos;y a pas de règlement, vous ne pouvez pas vendre le terrain. Si vous ne souhaitez pas indiquer de règlement ou donner de conseils aux acheteurs, laissez la section relative au règlement vide. 3749 Définir un règlement pour le domaine vous permet de vendre les parcelles de ce domaine. S&apos;il n&apos;y a pas de règlement, vous ne pouvez pas vendre le terrain. Si vous ne souhaitez pas indiquer de règlement ou donner de conseils aux acheteurs, laissez la section relative au règlement vide.
3783 3750
@@ -3792,22 +3759,22 @@ L&apos;acheteur est tenu d&apos;accepter le règlement en cochant une case avan
3792Veuillez sélectionner un seul objet et recommencez. 3759Veuillez sélectionner un seul objet et recommencez.
3793 </message> 3760 </message>
3794 </alert> 3761 </alert>
3795 <alert name="BuyObjectOneOwner" title="Achat des objets impossible"> 3762 <alert name="BuyObjectOneOwner" title="Impossible d&apos;acheter des objets">
3796 <message name="message"> 3763 <message name="message">
3797 Vous ne pouvez acheter des objets à plusieurs personnes en même temps. 3764 Impossible d&apos;acheter simultanément des objets de propriétaires différents.
3798Veuillez sélectionner un seul objet et réessayez. 3765Veuillez ne sélectionner qu&apos;un seul objet.
3799 </message> 3766 </message>
3800 </alert> 3767 </alert>
3801 <alert name="BuyContentsOneOnly" title="Achat du contenu impossible"> 3768 <alert name="BuyContentsOneOnly" title="Impossible d&apos;acheter des contenus">
3802 <message name="message"> 3769 <message name="message">
3803 Impossible d&apos;acheter le contenu de plus d&apos;un objet à la fois. 3770 Impossible d&apos;acheter les contenus de plus d&apos;un objet à la fois.
3804Veuillez sélectionner un seul objet et recommencez. 3771Veuillez ne sélectionner qu&apos;un seul objet.
3805 </message> 3772 </message>
3806 </alert> 3773 </alert>
3807 <alert name="BuyContentsOneOwner" title="Achat du contenu impossible"> 3774 <alert name="BuyContentsOneOwner" title="Impossible d&apos;acheter des contenus">
3808 <message name="message"> 3775 <message name="message">
3809 Vous ne pouvez acheter des objets à plusieurs personnes en même temps. 3776 Impossible d&apos;acheter simultanément des objets de propriétaires différents.
3810Veuillez sélectionner un seul objet et réessayez. 3777Veuillez ne sélectionner qu&apos;un seul objet.
3811 </message> 3778 </message>
3812 </alert> 3779 </alert>
3813 <alert name="PermYes"> 3780 <alert name="PermYes">
@@ -3822,15 +3789,15 @@ Veuillez sélectionner un seul objet et réessayez.
3822 </alert> 3789 </alert>
3823 <alert name="BuyOriginal"> 3790 <alert name="BuyOriginal">
3824 <message name="message"> 3791 <message name="message">
3825 Acheter objet original à [OWNER] pour L$[PRICE] ? 3792 Acheter l&apos;objet original pour [PRICE] L$ à [PRICE] ?
3826Vous deviendrez propriétaire de l&apos;objet. 3793Vous deviendrez le propriétaire de cet objet.
3827Vous pourrez : 3794Vous pourrez :
3828 Le modifier : [MODIFYPERM] 3795 Modifier : [MODIFYPERM]
3829 Le copier : [COPYPERM] 3796 Copier : [COPYPERM]
3830 Le revendre ou le donner : [RESELLPERM] 3797 Revendre ou donner : [RESELLPERM]
3831 </message> 3798 </message>
3832 <option name="Buy"> 3799 <option name="Buy">
3833 Acheter 3800 OK
3834 </option> 3801 </option>
3835 <option name="Cancel"> 3802 <option name="Cancel">
3836 Annuler 3803 Annuler
@@ -3838,15 +3805,15 @@ Vous pourrez :
3838 </alert> 3805 </alert>
3839 <alert name="BuyOriginalNoOwner"> 3806 <alert name="BuyOriginalNoOwner">
3840 <message name="message"> 3807 <message name="message">
3841 Acheter objet original pour L$[PRICE] ? 3808 Acheter l&apos;objet original pour [PRICE] L$ ?
3842Vous deviendrez propriétaire de l&apos;objet. 3809Vous deviendrez le propriétaire de cet objet.
3843Vous pourrez : 3810Vous pourrez :
3844 Le modifier : [MODIFYPERM] 3811 Modifier : [MODIFYPERM]
3845 Le copier : [COPYPERM] 3812 Copier : [COPYPERM]
3846 Le revendre ou le donner : [RESELLPERM] 3813 Revendre ou donner : [RESELLPERM]
3847 </message> 3814 </message>
3848 <option name="Buy"> 3815 <option name="Buy">
3849 Acheter 3816 OK
3850 </option> 3817 </option>
3851 <option name="Cancel"> 3818 <option name="Cancel">
3852 Annuler 3819 Annuler
@@ -3854,15 +3821,15 @@ Vous pourrez :
3854 </alert> 3821 </alert>
3855 <alert name="BuyCopy"> 3822 <alert name="BuyCopy">
3856 <message name="message"> 3823 <message name="message">
3857 Acheter une copie à [OWNER] pour L$[PRICE] ? 3824 Acheter une copie pour [PRICE] L$ à [OWNER] ?
3858L&apos;objet sera copié vers votre inventaire. 3825L&apos;objet sera copié dans votre inventaire.
3859Vous pourrez : 3826Vous pourrez :
3860 Le modifier : [MODIFYPERM] 3827 Modifier : [MODIFYPERM]
3861 Le copier : [COPYPERM] 3828 Copier : [COPYPERM]
3862 Le revendre ou le donner : [RESELLPERM] 3829 Revendre ou donner : [RESELLPERM]
3863 </message> 3830 </message>
3864 <option name="Buy"> 3831 <option name="Buy">
3865 Acheter 3832 OK
3866 </option> 3833 </option>
3867 <option name="Cancel"> 3834 <option name="Cancel">
3868 Annuler 3835 Annuler
@@ -3870,15 +3837,15 @@ Vous pourrez :
3870 </alert> 3837 </alert>
3871 <alert name="BuyCopyNoOwner"> 3838 <alert name="BuyCopyNoOwner">
3872 <message name="message"> 3839 <message name="message">
3873 Acheter une copie pour L$[PRICE] ? 3840 Acheter une copie pour [PRICE] L$ ?
3874L&apos;objet sera copié vers votre inventaire. 3841L&apos;objet sera copié dans votre inventaire.
3875Vous pourrez : 3842Vous pourrez :
3876 Le modifier : [MODIFYPERM] 3843 Modifier : [MODIFYPERM]
3877 Le copier : [COPYPERM] 3844 Copier : [COPYPERM]
3878 Le revendre ou le donner : [RESELLPERM] 3845 Revendre ou donner : [RESELLPERM]
3879 </message> 3846 </message>
3880 <option name="Buy"> 3847 <option name="Buy">
3881 Acheter 3848 OK
3882 </option> 3849 </option>
3883 <option name="Cancel"> 3850 <option name="Cancel">
3884 Annuler 3851 Annuler
@@ -3886,11 +3853,11 @@ Vous pourrez :
3886 </alert> 3853 </alert>
3887 <alert name="BuyContents"> 3854 <alert name="BuyContents">
3888 <message name="message"> 3855 <message name="message">
3889 Acheter le contenu à [OWNER] pour L$[PRICE] ? 3856 Acheter des contenus pour [PRICE] L$ à [OWNER] ?
3890Il sera copié vers votre inventaire. 3857Ils seront copiés dans votre inventaire.
3891 </message> 3858 </message>
3892 <option name="Buy"> 3859 <option name="Buy">
3893 Acheter 3860 OK
3894 </option> 3861 </option>
3895 <option name="Cancel"> 3862 <option name="Cancel">
3896 Annuler 3863 Annuler
@@ -3898,11 +3865,11 @@ Il sera copié vers votre inventaire.
3898 </alert> 3865 </alert>
3899 <alert name="BuyContentsNoOwner"> 3866 <alert name="BuyContentsNoOwner">
3900 <message name="message"> 3867 <message name="message">
3901 Acheter le contenu pour L$[PRICE] ? 3868 Acheter des contenus pour [PRICE] L$ ?
3902Il sera copié vers votre inventaire. 3869Ils seront copiés dans votre inventaire.
3903 </message> 3870 </message>
3904 <option name="Buy"> 3871 <option name="Buy">
3905 Acheter 3872 OK
3906 </option> 3873 </option>
3907 <option name="Cancel"> 3874 <option name="Cancel">
3908 Annuler 3875 Annuler
@@ -3910,14 +3877,13 @@ Il sera copié vers votre inventaire.
3910 </alert> 3877 </alert>
3911 <alert name="ConfirmPurchase"> 3878 <alert name="ConfirmPurchase">
3912 <message name="message"> 3879 <message name="message">
3913 Cette transaction entraînera : 3880 Suite à cette transaction, vous allez :
3914
3915[ACTION] 3881[ACTION]
3916 3882
3917Etes-vous sûr(e) de vouloir poursuivre cet achat ? 3883Êtes-vous certain de vouloir effectuer cette transaction ?
3918 </message> 3884 </message>
3919 <option name="Confirm"> 3885 <option name="Confirm">
3920 Confirmer 3886 OK
3921 </option> 3887 </option>
3922 <option name="Cancel"> 3888 <option name="Cancel">
3923 Annuler 3889 Annuler
@@ -3925,15 +3891,14 @@ Etes-vous sûr(e) de vouloir poursuivre cet achat ?
3925 </alert> 3891 </alert>
3926 <alert name="ConfirmPurchasePassword"> 3892 <alert name="ConfirmPurchasePassword">
3927 <message name="message"> 3893 <message name="message">
3928 Cette transaction entraînera : 3894 Suite à cette transaction, vous allez :
3929
3930[ACTION] 3895[ACTION]
3931 3896
3932Etes-vous sûr(e) de vouloir poursuivre cet achat ? 3897Êtes-vous certain de vouloir effectuer cette transaction ?
3933Veuillez saisir à nouveau votre mot de passe et cliquez sur &apos;Confirmer&apos;. 3898Veuillez saisir à nouveau votre mot de passe et cliquer sur OK.
3934 </message> 3899 </message>
3935 <option name="ConfirmPurchase"> 3900 <option name="ConfirmPurchase">
3936 Confirmer votre achat 3901 OK
3937 </option> 3902 </option>
3938 <option name="Cancel"> 3903 <option name="Cancel">
3939 Annuler 3904 Annuler
@@ -3941,10 +3906,8 @@ Veuillez saisir à nouveau votre mot de passe et cliquez sur &apos;Confirmer&apo
3941 </alert> 3906 </alert>
3942 <alert name="SetPickLocation"> 3907 <alert name="SetPickLocation">
3943 <message name="message"> 3908 <message name="message">
3944 Note : 3909 Remarque :
3945Vous avez mis à jour la position 3910Vous avez mis à jour l&apos;emplacement de ce favori mais les autres détails resteront inchangés.
3946de ce lieu mais les autres détails
3947conserveront leurs valeurs initiales.
3948 </message> 3911 </message>
3949 <option name="OK"> 3912 <option name="OK">
3950 OK 3913 OK
@@ -3952,47 +3915,42 @@ conserveront leurs valeurs initiales.
3952 </alert> 3915 </alert>
3953 <alert name="MoveInventoryFromObject"> 3916 <alert name="MoveInventoryFromObject">
3954 <message name="message"> 3917 <message name="message">
3955 Vous avez sélectionné des éléments d&apos;inventaire non copiables. 3918 Vous avez sélectionné des objets de l&apos;inventaire qui ne peuvent pas être copiés.
3956Ces éléments seront déplacés vers votre inventaire, et non copiés. 3919Ces objets seront déplacés vers votre inventaire, et non pas copiés.
3957 3920
3958Déplacer l(es) élément(s)? 3921Déplacer les objets de l&apos;inventaire ?
3959 </message> 3922 </message>
3960 <ignore name="ignore"> 3923 <ignore name="ignore">
3961 Lors du transfert d&apos;un inventaire non reproductible depuis des objets 3924 Lors du transfert d&apos;un inventaire non reproductible depuis des objets
3962 </ignore> 3925 </ignore>
3963 <option name="Move"> 3926 <option name="Move">
3964 Se déplacer 3927 OK
3965 </option> 3928 </option>
3966 <option name="Don&apos;tMove"> 3929 <option name="Don&apos;tMove">
3967 Ne pas bouger 3930 Annuler
3968 </option> 3931 </option>
3969 </alert> 3932 </alert>
3970 <alert name="MoveInventoryFromScriptedObject"> 3933 <alert name="MoveInventoryFromScriptedObject">
3971 <message name="message"> 3934 <message name="message">
3972 Vous avez sélectionné des éléments d&apos;inventaire non copiables. Ces éléments 3935 Vous avez sélectionné des objets de l&apos;inventaire qui ne peuvent pas être copiés. Ces objets seront déplacés vers votre inventaire, et non pas copiés.
3973seront déplacés vers votre inventaire, et non copiés. 3936Étant donné que l&apos;objet est
3974 3937scripté, déplacer ces objets vers votre inventaire risque de causer des problèmes au niveau du script.
3975Cet objet étant scripté, le déplacement de ces éléments vers
3976votre inventaire risque de perturber le fonctionnement du script.
3977 3938
3978Déplacer l(es) élément(s) d&apos;inventaire ? 3939Déplacer les objets de l&apos;inventaire ?
3979 </message> 3940 </message>
3980 <ignore name="ignore"> 3941 <ignore name="ignore">
3981 Lors du transfert d&apos;un inventaire non reproductible depuis des objets scriptés 3942 Lors du transfert d&apos;un inventaire non reproductible depuis des objets scriptés
3982 </ignore> 3943 </ignore>
3983 <option name="Move"> 3944 <option name="Move">
3984 Se déplacer 3945 OK
3985 </option> 3946 </option>
3986 <option name="Don&apos;tMove"> 3947 <option name="Don&apos;tMove">
3987 Ne pas bouger 3948 Annuler
3988 </option> 3949 </option>
3989 </alert> 3950 </alert>
3990 <alert name="ClickActionNotPayable"> 3951 <alert name="ClickActionNotPayable">
3991 <message name="message"> 3952 <message name="message">
3992 Avertissement : l&apos;action &quot;Payer Objet&quot; a été définie, mais elle 3953 Avertissement : l&apos;action du clic Payer l&apos;objet a été défini mais ne fonctionnera que si un script est ajouté avec l&apos;event money().
3993ne fonctionnera que si un script de transaction money() y est ajouté,
3994car les résidents s&apos;attendent à ce que les objets
3995réagissent lorsqu&apos;un paiement est effectué.
3996 </message> 3954 </message>
3997 <ignore name="ignore"> 3955 <ignore name="ignore">
3998 Lors du paramétrage de la fonction Payer sur des objets sans événement monétaire 3956 Lors du paramétrage de la fonction Payer sur des objets sans événement monétaire
@@ -4000,9 +3958,23 @@ réagissent lorsqu&apos;un paiement est effectué.
4000 </alert> 3958 </alert>
4001 <alert name="OpenObjectCannotCopy"> 3959 <alert name="OpenObjectCannotCopy">
4002 <message name="message"> 3960 <message name="message">
4003 Cet objet ne contient aucun élément copiable. 3961 Vous n&apos;êtes autorisé à copier aucun élément dans cet objet.
4004 </message> 3962 </message>
4005 </alert> 3963 </alert>
3964 <alert name="WebLaunchAccountHistory">
3965 <message name="message">
3966 Aller sur le site de Second Life pour consulter l&apos;historique de votre compte ?
3967 </message>
3968 <ignore name="ignore">
3969 Lors du chargement de la page web contenant l&apos;historique de votre compte
3970 </ignore>
3971 <option name="Gotopage">
3972 Aller sur cette page
3973 </option>
3974 <option name="Cancel">
3975 Annuler
3976 </option>
3977 </alert>
4006 <alert name="ClickOpenF1Help"> 3978 <alert name="ClickOpenF1Help">
4007 <message name="message"> 3979 <message name="message">
4008 Visiter les pages d&apos;aide de Second Life ? 3980 Visiter les pages d&apos;aide de Second Life ?
@@ -4033,7 +4005,7 @@ réagissent lorsqu&apos;un paiement est effectué.
4033 </alert> 4005 </alert>
4034 <alert name="ConfirmQuit"> 4006 <alert name="ConfirmQuit">
4035 <message name="message"> 4007 <message name="message">
4036 Etes-vous sûr(e) de vouloir quitter? 4008 Êtes-vous certain de vouloir quitter ?
4037 </message> 4009 </message>
4038 <ignore name="ignore"> 4010 <ignore name="ignore">
4039 Lorsque vous quittez Second Life 4011 Lorsque vous quittez Second Life
@@ -4052,14 +4024,14 @@ réagissent lorsqu&apos;un paiement est effectué.
4052http://secondlife.com/corporate/tos.php 4024http://secondlife.com/corporate/tos.php
4053http://secondlife.com/corporate/cs.php 4025http://secondlife.com/corporate/cs.php
4054 4026
4055Lorsqu&apos;elles sont signalées, toutes les infractions aux Conditions d&apos;utilisation et aux Règles de la communauté, font l&apos;objet d&apos;une enquête et sont résolues. Pour accéder aux détails de la résolution d&apos;un incident, allez sur : 4027Lorsqu&apos;elles sont signalées, toutes les infractions aux Conditions d&apos;utilisation et aux Règles de la communauté font l&apos;objet d&apos;une enquête et sont résolues. Pour accéder aux détails de la résolution d&apos;un incident, allez sur :
4056 4028
4057http://secondlife.com/community/blotter.php 4029http://secondlife.com/support/incidentreport.php
4058 </message> 4030 </message>
4059 </alert> 4031 </alert>
4060 <alert name="HelpReportAbuseEmailEO"> 4032 <alert name="HelpReportAbuseEmailEO">
4061 <message name="message"> 4033 <message name="message">
4062 Important : Ce rapport ira au propriétaire de la 4034 Important : ce rapport ira au propriétaire de la
4063région dans laquelle vous êtes et non à Linden Lab. 4035région dans laquelle vous êtes et non à Linden Lab.
4064 4036
4065Pour aider les résidents et les visiteurs, le propriétaire de 4037Pour aider les résidents et les visiteurs, le propriétaire de
@@ -4078,129 +4050,130 @@ ne sera pas affecté par les résultats de cette enquête. Seul Linden Lab peut
4078interdire l&apos;accès à l&apos;ensemble de Second Life. 4050interdire l&apos;accès à l&apos;ensemble de Second Life.
4079 </message> 4051 </message>
4080 </alert> 4052 </alert>
4053 <alert name="HelpReportBug">
4054 <message name="message">
4055 N&apos;utilisez cet outil que pour signaler des problèmes techniques et soyez aussi précis que possible.
4056Vous pouvez répondre à l&apos;e-mail automatique pour ajouter des détails à votre rapport.
4057
4058Tous les bugs signalés sont reproduits et évalués. Aucune réponse ne sera envoyée par e-mail.
4059
4060Si vous avez un problème technique, veuillez contacter le service clientèle à :
4061
4062http://secondlife.com/community/support.php
4063
4064Remarque : les rapports incomplets ne feront pas l&apos;objet d&apos;une enquête.
4065 </message>
4066 </alert>
4081 <alert name="HelpReportAbuseSelectCategory"> 4067 <alert name="HelpReportAbuseSelectCategory">
4082 <message name="message"> 4068 <message name="message">
4083 Veuillez choisir une catégorie pour ce rapport d&apos;abus. 4069 Veuillez choisir une catégorie pour ce rapport d&apos;infraction.
4084 4070Le choix d&apos;une catégorie nous permet de traiter les rapports d&apos;infraction plus rapidement.
4085Le choix d&apos;une catégorie nous permet de classer et traiter efficacement les rapports d&apos;abus.
4086 </message> 4071 </message>
4087 </alert> 4072 </alert>
4088 <alert name="HelpReportBugSelectCategory"> 4073 <alert name="HelpReportBugSelectCategory">
4089 <message name="message"> 4074 <message name="message">
4090 Veuillez choisir une catégorie pour ce bug. 4075 Veuillez choisir une catégorie pour ce bug.
4091 4076Le choix d&apos;une catégorie nous permet de traiter les bugs plus rapidement.
4092Le choix d&apos;une catégorie nous permet de classer et traiter efficacement les rapports de bugs.
4093 </message> 4077 </message>
4094 </alert> 4078 </alert>
4095 <alert name="HelpReportAbuseAbuserNameEmpty"> 4079 <alert name="HelpReportAbuseAbuserNameEmpty">
4096 <message name="message"> 4080 <message name="message">
4097 Veuillez saisir le nom de la personne responsable de l&apos;abus. 4081 Veuillez saisir le nom du contrevenant.
4098 4082Lorsque nous avons le nom du contrevenant, nous sommes en mesure de traiter les rapports plus rapidement.
4099La précision des données nous permet de classer et traiter efficacement les rapports d&apos;abus.
4100 </message> 4083 </message>
4101 </alert> 4084 </alert>
4102 <alert name="HelpReportAbuseAbuserLocationEmpty"> 4085 <alert name="HelpReportAbuseAbuserLocationEmpty">
4103 <message name="message"> 4086 <message name="message">
4104 Veuillez saisir le lieu où s&apos;est produit l&apos;abus constaté. 4087 Veuillez indiquer l&apos;endroit où l&apos;infraction a eu lieu.
4105 4088Les informations précises et exactes nous permettent de traiter les rapports plus rapidement.
4106La précision des données nous permet de classer et traiter efficacement les rapports d&apos;abus.
4107 </message> 4089 </message>
4108 </alert> 4090 </alert>
4109 <alert name="HelpReportAbuseSummaryEmpty"> 4091 <alert name="HelpReportAbuseSummaryEmpty">
4110 <message name="message"> 4092 <message name="message">
4111 Veuillez saisir un résumé de l&apos;abus constaté. 4093 Veuillez saisir un récapitulatif de l&apos;infraction.
4112 4094Les récapitulatifs précis nous permettent de traiter les rapports plus rapidement.
4113Un résumé précis nous permet de classer et traiter efficacement les rapports d&apos;abus.
4114 </message> 4095 </message>
4115 </alert> 4096 </alert>
4116 <alert name="HelpReportBugSummaryEmpty"> 4097 <alert name="HelpReportBugSummaryEmpty">
4117 <message name="message"> 4098 <message name="message">
4118 Veuillez saisir un résumé du bug constaté. 4099 Veuillez saisir un récapitulatif du bug.
4119 4100Les récapitulatifs précis nous permettent de résoudre les bugs plus rapidement.
4120Un résumé précis nous permet de classer et traiter efficacement les rapports de bugs.
4121 </message> 4101 </message>
4122 </alert> 4102 </alert>
4123 <alert name="HelpReportAbuseDetailsEmpty"> 4103 <alert name="HelpReportAbuseDetailsEmpty">
4124 <message name="message"> 4104 <message name="message">
4125 Veuillez saisir une description précise de l&apos;abus constaté. 4105 Veuillez saisir une description détaillée de l&apos;infraction.
4126Soyez aussi précis(e) que possible, en indiquant les noms et les détails 4106Soyez aussi précis que possible et essayez de fournir des noms ainsi que des détails sur l&apos;incident que vous signalez.
4127de l&apos;incident. 4107Les descriptions précises nous permettent de traiter les rapports plus rapidement.
4128
4129Une description précise nous permet de classer et traiter efficacement les rapports d&apos;abus.
4130 </message> 4108 </message>
4131 </alert> 4109 </alert>
4132 <alert name="HelpReportBugDetailsEmpty"> 4110 <alert name="HelpReportBugDetailsEmpty">
4133 <message name="message"> 4111 <message name="message">
4134 Veuillez saisir une description détaillée du bug. 4112 Veuillez saisir une description détaillée du bug.
4135Soyez aussi précis(e) que possible, en indiquant les étapes pour reproduire le bug 4113Soyez aussi spécifique que possible et essayez d&apos;indiquer les étapes à suivre pour reproduire le bug.
4136si possible. 4114Les descriptions précises nous permettent de résoudre les bugs plus rapidement.
4137
4138Une description précise nous permet de classer et traiter efficacement les rapports de bugs.
4139 </message> 4115 </message>
4140 </alert> 4116 </alert>
4141 <alert name="HelpReportAbuseContainsCopyright"> 4117 <alert name="HelpReportAbuseContainsCopyright">
4142 <message name="message"> 4118 <message name="message">
4143 Cher résident, 4119 Cher résident,
4120
4121Il semble que vous souhaitiez reporter une infraction à des droits de propriété intellectuelle. Pour signaler correctement cette infraction :
4144 4122
4145Si vous signalez une infraction aux droits de propriété intellectuelle, assurez-vous de fournir les détails suivants : 4123(1) Remplissez un rapport d&apos;infraction. Vous pouvez soumettre un rapport d&apos;infraction si vous pensez qu&apos;un résident exploite le système de permissions de Second Life, par exemple en utilisant un CopyBot ou des outils similaires pour enfreindre des droits de propriété intellectuelle. Notre équipe chargée des infractions mènera une enquête et prendra les mesures nécessaires à l&apos;encontre du résident non respectueux des Conditions d&apos;utilisation ou des règles de la communauté. Sachez toutefois que l&apos;équipe chargée des infractions ne supprimera pas de contenu à l&apos;intérieur de Second Life.
4146
4147(1) Vous pouvez envoyer un rapport d&apos;infraction si vous pensez qu&apos;un résident exploite le système de permissions de Second Life, par exemple en utilisant CopyBot ou des outils similaires, pour enfreindre des droits de propriété intellectuelle. L&apos;équipe chargée des infractions mènera une enquête et prendra les mesures nécessaires à l&apos;encontre de toute personne non respectueuse des Conditions d&apos;utilisation et des Règles de la communauté. Néanmoins, cette équipe ignorera les requêtes au sujet du retrait de contenu se trouvant sur Second Life.
4148
4149(2) Pour demander à ce que du contenu soit retiré de Second Life, vous devez soumettre un rapport d&apos;infraction valide, tel que fourni dans notre règlement sur le retrait de contenu à la page suivante : http://secondlife.com/corporate/dmca.php.
4150 4124
4151Si vous souhaitez continuer à signaler l&apos;infraction, veuillez fermer cette fenêtre et finir de soumettre votre rapport. 4125(2) Demandez à ce que du contenu à l&apos;intérieur de Second Life soit supprimé. Pour demander à ce que du contenu soit supprimé de Second Life, vous devez soumettre un rapport d&apos;infraction valide, tel que fourni dans notre Règlement contre les violations des droit d&apos;auteurs (DMCA), à http://secondlife.com/corporate/dmca.php.
4152 4126
4153Cordialement, 4127Si vous souhaitez toujours reporter cette infraction, veuillez fermer cette fenêtre et soumettre votre rapport. Vous devrez peut-être sélectionner la catégorie CopyBot ou exploitation abusive des permissions.
4154 4128
4129Merci,
4130
4155Linden Lab 4131Linden Lab
4156 </message> 4132 </message>
4157 </alert> 4133 </alert>
4158 <alert name="FailedRequirementsCheck"> 4134 <alert name="FailedRequirementsCheck">
4159 <message name="message"> 4135 <message name="message">
4160 Les composants nécessaires suivants sont absents de [FLOATER] : 4136 Les composantes requises suivantes ne se trouvent pas dans [FLOATER]:
4161[COMPONENTS] 4137[COMPONENTS]
4162 </message> 4138 </message>
4163 </alert> 4139 </alert>
4164 <alert name="ReplaceAttachment" title="Remplacer attachement existant"> 4140 <alert name="ReplaceAttachment" title="Remplacer la pièce-jointe existante">
4165 <message name="message"> 4141 <message name="message">
4166 Il y a déjà un objet attaché à cette partie du corps. 4142 Vous avez déjà un objet sur cette partie du corps.
4167Voulez-vous le remplacer par l&apos;objet sélectionné ? 4143Voulez-vous le remplacer par l&apos;objet sélectionné ?
4168 </message> 4144 </message>
4169 <ignore name="ignore"> 4145 <ignore name="ignore">
4170 Lors du remplacement de pièces-jointes existantes 4146 Lors du remplacement de pièces-jointes existantes
4171 </ignore> 4147 </ignore>
4172 <option name="Yes"> 4148 <option ignore="Remplacer automatiquement" name="Yes">
4173 Oui 4149 OK
4174 </option> 4150 </option>
4175 <option name="No"> 4151 <option ignore="Ne jamais remplacer" name="No">
4176 Non 4152 Annuler
4177 </option> 4153 </option>
4178 </alert> 4154 </alert>
4179 <alert name="BusyModePay" title="Avertissement de mode occupé"> 4155 <alert name="BusyModePay" title="Réponse si occupé(e)">
4180 <message name="message"> 4156 <message name="message">
4181 Vous êtes en mode Occupé, ce qui signifie que vous 4157 Vous êtes en mode occupé et vous ne recevrez donc aucun objet en échange de ce paiement.
4182ne recevrez aucun objet en échange de
4183ce paiement.
4184 4158
4185Voulez-vous quitter le mode Occupé avant 4159Souhaitez-vous quitter le mode occupé avant de terminer cette transaction ?
4186de finaliser cette transaction ?
4187 </message> 4160 </message>
4188 <ignore name="ignore"> 4161 <ignore name="ignore">
4189 Lorsque vous envoyez de l&apos;argent à une personne en mode Occupé 4162 Lorsque vous envoyez de l&apos;argent à une personne en mode Occupé
4190 </ignore> 4163 </ignore>
4191 <option name="Yes"> 4164 <option ignore="Toujours quitter le mode occupé" name="Yes">
4192 Oui 4165 OK
4193 </option> 4166 </option>
4194 <option name="No"> 4167 <option ignore="Ne jamais quitter le mode occupé" name="No">
4195 Non 4168 Annuler
4196 </option> 4169 </option>
4197 </alert> 4170 </alert>
4198 <alert name="ConfirmEmptyTrash"> 4171 <alert name="ConfirmEmptyTrash">
4199 <message name="message"> 4172 <message name="message">
4200 Etes-vous certain de vouloir supprimer le contenu de votre poubelle de manière permanente  ? 4173 Êtes-vous certain de vouloir supprimer le contenu de votre corbeille de manière permanente  ?
4201 </message> 4174 </message>
4202 <ignore name="ignore"> 4175 <ignore name="ignore">
4203 Lorsque vous videz la poubelle de l&apos;inventaire 4176 Lorsque vous videz la corbeille de l&apos;inventaire
4204 </ignore> 4177 </ignore>
4205 <option name="Yes"> 4178 <option name="Yes">
4206 OK 4179 OK
@@ -4211,7 +4184,7 @@ de finaliser cette transaction ?
4211 </alert> 4184 </alert>
4212 <alert name="ConfirmClearBrowserCache"> 4185 <alert name="ConfirmClearBrowserCache">
4213 <message name="message"> 4186 <message name="message">
4214 Etes-vous certain de vouloir vider le cache de votre navigateur ? 4187 Êtes-vous certain de vouloir vider le cache de votre navigateur ?
4215 </message> 4188 </message>
4216 <option name="Yes"> 4189 <option name="Yes">
4217 Oui 4190 Oui
@@ -4222,7 +4195,7 @@ de finaliser cette transaction ?
4222 </alert> 4195 </alert>
4223 <alert name="ConfirmClearCookies"> 4196 <alert name="ConfirmClearCookies">
4224 <message name="message"> 4197 <message name="message">
4225 Etes-vous certain de vouloir supprimer vos cookies ? 4198 Êtes-vous certain de vouloir supprimer vos cookies ?
4226 </message> 4199 </message>
4227 <option name="Yes"> 4200 <option name="Yes">
4228 Oui 4201 Oui
@@ -4233,7 +4206,7 @@ de finaliser cette transaction ?
4233 </alert> 4206 </alert>
4234 <alert name="ConfirmClearMediaUrlList"> 4207 <alert name="ConfirmClearMediaUrlList">
4235 <message name="message"> 4208 <message name="message">
4236 Etes-vous certain de vouloir supprimer la liste des URL enregistrées ? 4209 Êtes-vous certain de vouloir supprimer la liste des URL enregistrées ?
4237 </message> 4210 </message>
4238 <option name="Yes"> 4211 <option name="Yes">
4239 Oui 4212 Oui
@@ -4244,10 +4217,10 @@ de finaliser cette transaction ?
4244 </alert> 4217 </alert>
4245 <alert name="ConfirmEmptyLostAndFound"> 4218 <alert name="ConfirmEmptyLostAndFound">
4246 <message name="message"> 4219 <message name="message">
4247 Etes-vous certain de vouloir supprimer le contenu de votre dossier Objets trouvés de manière permanente ? 4220 Êtes-vous certain de vouloir supprimer le contenu de votre dossier Objets trouvés de manière permanente ?
4248 </message> 4221 </message>
4249 <ignore name="ignore"> 4222 <ignore name="ignore">
4250 Losque vous videz le dossier Objets trouvés dans vote inventaire 4223 Losque vous videz le dossier Objets trouvés dans votre inventaire
4251 </ignore> 4224 </ignore>
4252 <option name="Yes"> 4225 <option name="Yes">
4253 Oui 4226 Oui
@@ -4258,36 +4231,36 @@ de finaliser cette transaction ?
4258 </alert> 4231 </alert>
4259 <alert name="CopySLURL"> 4232 <alert name="CopySLURL">
4260 <message name="message"> 4233 <message name="message">
4261 La SLURL suivante a été copiée sur votre presse-papier : 4234 La SLURL suivante a été copiée dans votre presse-papier :
4262 [SLURL] 4235 [SLURL]
4263 4236
4264Mettez-la dans une page web pour permettre aux autres utilisateurs d&apos;accéder facilement à cet endroit ou bien collez-la dans la barre d&apos;adresse de votre navigateur. 4237Mettez-la dans une page web pour permettre aux autres résidents d&apos;accéder facilement à cet endroit ou bien collez-la dans la barre d&apos;adresse de votre navigateur.
4265 </message> 4238 </message>
4266 <ignore name="ignore"> 4239 <ignore name="ignore">
4267 Lorsque vous copiez une SLURL sur votre presse-papier 4240 Lorsque vous copiez une SLURL dans votre presse-papier
4268 </ignore> 4241 </ignore>
4269 </alert> 4242 </alert>
4270 <alert name="GraphicsPreferencesHelp"> 4243 <alert name="GraphicsPreferencesHelp">
4271 <message name="message"> 4244 <message name="message">
4272 Ce panel contrôle la taille de la fenêtre et la résolution, ainsi que la qualité des graphiques client. Les préférences de l&apos;interface graphique vous permettent de choisir entre 4 niveaux de graphiques : Faible, Moyen, Élevé et Ultra. Personnalisez vos options graphiques en cliquant sur le bouton Personnaliser et en changeant les paramètres suivants : 4245 Ce menu permet de contrôler la taille de la fenêtre et la résolution, ainsi que la qualité des graphiques client. Les préférences de l&apos;interface graphique vous permettent de choisir entre 4 niveaux de graphiques : Faible, Moyen, Élevé et Ultra. Personnalisez vos options graphiques en cliquant sur le bouton Personnaliser et en changeant les paramètres suivants :
4273 4246
4274Shaders : active ou désactive les différents types de shaders pixels. 4247Effets : active ou désactive les différents types de shaders pixels.
4275 4248
4276Détails des reflets : définit le type d&apos;objets reflétés dans l&apos;eau. 4249Objets reflétés : définit le type d&apos;objets reflétés dans l&apos;eau.
4277 4250
4278Rendu de l&apos;avatar : définit les options qui impactent la manière dont le client rend les avatars. 4251Rendu de l&apos;avatar : définit les options qui influent sur la manière dont le client rend les avatars.
4279 4252
4280Distance d&apos;affichage : la distance à laquelle vous voyez les objets s&apos;afficher dans la scène. 4253Limite d&apos;affichage : la distance à laquelle vous voyez les objets s&apos;afficher dans la scène.
4281 4254
4282Nombre de particules max. : définit le nombre maximum de particules que vous pouvez voir à la fois sur votre écran. 4255Nombre de particules max. : définit le nombre maximum de particules que vous pouvez voir à la fois sur votre écran.
4283 4256
4284Qualité post-traitement : définit la résolution du rayonnement. 4257Qualité post-traitement : définit la résolution du rayonnement.
4285 4258
4286Détails du maillage : définit le niveau de détail ou le nombre de triangles utilisés dans le rendu de certains objets. Une valeur plus élevée prendra plus de temps pour apparaître, mais permettra d&apos;avoir des objets plus détaillés. 4259Détails des rendus : définit le niveau de détail ou le nombre de polygones utilisés dans le rendu de certains objets. Une valeur plus élevée prendra plus de temps pour apparaître, mais permettra d&apos;avoir des objets plus détaillés.
4287 4260
4288Détails de la lumière : définit les types de lumières que vous souhaitez faire apparaître. 4261Sources lumineuses : définit les types de lumières que vous souhaitez faire apparaître.
4289 4262
4290Détails du terrain : définit le niveau de détail que vous souhaitez utiliser dans la texture du terrain. 4263Rendu du terrain : définit le niveau de détail que vous souhaitez utiliser dans la texture du terrain.
4291 </message> 4264 </message>
4292 </alert> 4265 </alert>
4293 <alert name="WLSavePresetAlert"> 4266 <alert name="WLSavePresetAlert">
@@ -4335,7 +4308,7 @@ Détails du terrain : définit le niveau de détail que vous souhaitez utiliser
4335 </alert> 4308 </alert>
4336 <alert name="HelpEditSky"> 4309 <alert name="HelpEditSky">
4337 <message name="message"> 4310 <message name="message">
4338 Pour créer et sauvegarder plusieurs ciels, modifiez les curseurs WindLight. 4311 Pour créer et sauvegarder plusieurs ciels, utilisez les curseurs WindLight.
4339 </message> 4312 </message>
4340 </alert> 4313 </alert>
4341 <alert name="HelpEditDayCycle"> 4314 <alert name="HelpEditDayCycle">
@@ -4345,7 +4318,7 @@ Détails du terrain : définit le niveau de détail que vous souhaitez utiliser
4345 </alert> 4318 </alert>
4346 <alert name="EnvSettingsHelpButton"> 4319 <alert name="EnvSettingsHelpButton">
4347 <message name="message"> 4320 <message name="message">
4348 Ces paramètres permettent de modifier l&apos;environnement local sur votre ordinateur. Pour que vous ayez accès à tous les paramètres, votre carte graphique doit prendre en charge les shaders atmosphériques. 4321 Ces paramètres permettent de modifier l&apos;environnement local sur votre ordinateur. Pour que vous ayez accès à tous les paramètres, votre carte graphique doit prendre en charge les effets atmosphériques.
4349 4322
4350Pour changer les différentes phases de la journée sur votre visualisateur, utilisez le curseur Heure de la journée. 4323Pour changer les différentes phases de la journée sur votre visualisateur, utilisez le curseur Heure de la journée.
4351 4324
@@ -4372,7 +4345,7 @@ La flèche jaune au dessus de la ligne du temps représente votre vue actuelle,
4372 4345
4373Vous pouvez définir la position d&apos;une clé en la faisant glisser le long de la ligne du temps ou en définissant manuellement ses valeurs dans la section Réglages des images-clés. Dans cette même section, vous pouvez associer chaque clé au préréglage WindLight respectif. 4346Vous pouvez définir la position d&apos;une clé en la faisant glisser le long de la ligne du temps ou en définissant manuellement ses valeurs dans la section Réglages des images-clés. Dans cette même section, vous pouvez associer chaque clé au préréglage WindLight respectif.
4374 4347
4375La Durée du cycle contrôle la durée d&apos;une « journée ». Si vous choisissez une valeur basse (2mn par exemple), cela signigie que toutes les animations de votre journée de 24h se dérouleront en 2mn seulement ! Une fois satisfait de vos choix, utilisez les boutons Jouer et Stop ! pour prévisualiser les résultats. Pour voir l&apos;animation, vous pouvez aussi bouger la flèche jaune au dessus de la ligne du temps. Si vous sélectionnez l&apos;option Utiliser heure domaine, vous synchronisez la durée de votre journée et votre heure avec celle du cycle du jour du domaine. 4348La Durée du cycle contrôle la durée d&apos;une « journée ». Si vous choisissez une valeur basse (2mn par exemple), cela signifie que toutes les animations de votre journée de 24h se dérouleront en 2mn seulement ! Une fois satisfait de vos choix, utilisez les boutons Jouer et Stop ! pour prévisualiser les résultats. Pour voir l&apos;animation, vous pouvez aussi bouger la flèche jaune au dessus de la ligne du temps. Si vous sélectionnez l&apos;option Utiliser heure domaine, vous synchronisez la durée de votre journée et votre heure avec celle du cycle du jour du domaine.
4376 4349
4377Une fois que vous êtes satisfait de votre Cycle du jour, vous pouvez le sauvegarder et le charger grâce aux boutons Enregistrer jour test et Charger Jour Test. Veuillez noter que pour l&apos;instant, nous ne pouvez avoir qu&apos;un seul Cycle du jour. 4350Une fois que vous êtes satisfait de votre Cycle du jour, vous pouvez le sauvegarder et le charger grâce aux boutons Enregistrer jour test et Charger Jour Test. Veuillez noter que pour l&apos;instant, nous ne pouvez avoir qu&apos;un seul Cycle du jour.
4378 </message> 4351 </message>
@@ -4390,7 +4363,7 @@ Il permet de simuler de nombreux paramètres d&apos;exposition, tels que les voi
4390 </alert> 4363 </alert>
4391 <alert name="HelpBlueDensity"> 4364 <alert name="HelpBlueDensity">
4392 <message name="message"> 4365 <message name="message">
4393 La Densité du bleu affecte la saturation générale des couleurs du ciel et du brouillard. Si vous déplacez le curseur Intensité (I) vers la droite, les couleurs deviennent plus vives et plus vibrantes. Si vous vous le déplacez complètement à gauche, les couleurs deviennent plus fades, puis finalement noires et blanches. Pour paramétrer avec précision la couleur du ciel, vous pouvez contrôler chacun des éléments de la saturation à l&apos;aide des curseurs Rouge/Vert/Bleu (RVB). 4366 La Densité du bleu affecte la saturation générale des couleurs du ciel et du brouillard. Si vous déplacez le curseur Intensité (I) vers la droite, les couleurs deviennent plus vives et plus vibrantes. Si vous le déplacez complètement à gauche, les couleurs deviennent plus fades, puis finalement noires et blanches. Pour paramétrer avec précision la couleur du ciel, vous pouvez contrôler chacun des éléments de la saturation à l&apos;aide des curseurs Rouge/Vert/Bleu (RVB).
4394 </message> 4367 </message>
4395 </alert> 4368 </alert>
4396 <alert name="HelpHazeDensity"> 4369 <alert name="HelpHazeDensity">
@@ -4412,7 +4385,7 @@ Les valeurs supérieures à 1 simulent des distances plus importantes pour des e
4412 </alert> 4385 </alert>
4413 <alert name="HelpMaxAltitude"> 4386 <alert name="HelpMaxAltitude">
4414 <message name="message"> 4387 <message name="message">
4415 L&apos;Altitude max. ajuste les calculs de WindLight lors de la computation de la lumière atmosphérique. Quand la fin de la journée approche, il est utile pour ajuster la « profondeur » du coucher de soleil. 4388 L&apos;Altitude max. ajuste les calculs de WindLight lors de la computation de la lumière atmosphérique. Quand la fin de la journée approche, il est utile pour ajuster la « profondeur » du coucher de soleil.
4416 </message> 4389 </message>
4417 </alert> 4390 </alert>
4418 <alert name="HelpSunlightColor"> 4391 <alert name="HelpSunlightColor">
@@ -4422,7 +4395,7 @@ Les valeurs supérieures à 1 simulent des distances plus importantes pour des e
4422 </alert> 4395 </alert>
4423 <alert name="HelpSunAmbient"> 4396 <alert name="HelpSunAmbient">
4424 <message name="message"> 4397 <message name="message">
4425 Ajuste la couleur et l&apos;intensité de la lumière atmosphérique ambiante de la scène. 4398 Ajuste la couleur et l&apos;intensité de la lumière atmosphérique ambiante.
4426 </message> 4399 </message>
4427 </alert> 4400 </alert>
4428 <alert name="HelpSunGlow"> 4401 <alert name="HelpSunGlow">
@@ -4530,7 +4503,7 @@ Même chose que l&apos;azimut.
4530 </alert> 4503 </alert>
4531 <alert name="HelpWaterScaleAbove"> 4504 <alert name="HelpWaterScaleAbove">
4532 <message name="message"> 4505 <message name="message">
4533 Contrôle la quantité de lumière réfractée lorsque quelque votre avatar regarde au dessus de l&apos;eau. 4506 Contrôle la quantité de lumière réfractée lorsque votre avatar regarde au dessus de l&apos;eau.
4534 </message> 4507 </message>
4535 </alert> 4508 </alert>
4536 <alert name="HelpWaterScaleBelow"> 4509 <alert name="HelpWaterScaleBelow">
@@ -4633,8 +4606,7 @@ Même chose que l&apos;azimut.
4633 Les objets qui font partie d&apos;une pièce-jointe ne peuvent pas être achetés. 4606 Les objets qui font partie d&apos;une pièce-jointe ne peuvent pas être achetés.
4634 </message> 4607 </message>
4635 </alert> 4608 </alert>
4636 <alert name="DebitPermissionDetails" 4609 <alert name="DebitPermissionDetails" title="À propos des requêtes pour les permissions de débit">
4637 title="À propos des requêtes pour les permissions de débit">
4638 <message name="message"> 4610 <message name="message">
4639 Accepter cette requête donne au script la permission de prélever des dollars Linden (L$) sur votre compte de manière continue. Pour révoquer cette permission, le propriétaire de l&apos;objet doit supprimer l&apos;objet ou bien réinitialiser les scripts dans l&apos;objet. 4611 Accepter cette requête donne au script la permission de prélever des dollars Linden (L$) sur votre compte de manière continue. Pour révoquer cette permission, le propriétaire de l&apos;objet doit supprimer l&apos;objet ou bien réinitialiser les scripts dans l&apos;objet.
4640 </message> 4612 </message>
@@ -4672,9 +4644,6 @@ Voulez-vous aller sur le site de Second Life pour vérifier votre âge ?
4672 <option name="No"> 4644 <option name="No">
4673 Non 4645 Non
4674 </option> 4646 </option>
4675 <url>
4676 https://secondlife.com/account/verification.php
4677 </url>
4678 </alert> 4647 </alert>
4679 <alert name="Cannot enter parcel: no payment info on file"> 4648 <alert name="Cannot enter parcel: no payment info on file">
4680 <message name="message"> 4649 <message name="message">
@@ -4692,8 +4661,10 @@ Voulez-vous aller sur le site de Second Life pour enregistrer ces informations 
4692 <option name="No"> 4661 <option name="No">
4693 Non 4662 Non
4694 </option> 4663 </option>
4695 <url> 4664 </alert>
4696 https://secondlife.com/account/ 4665 <alert name="MissingString">
4697 </url> 4666 <message name="message">
4667 The string [STRING_NAME] is missing from strings.xml
4668 </message>
4698 </alert> 4669 </alert>
4699</alerts> 4670</alerts>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_about.xml b/linden/indra/newview/skins/default/xui/fr/floater_about.xml
index a1de6fa..1565e7c 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_about.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_about.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_about" title="A propos de Second Life"> 2<floater name="floater_about" title="A propos de Second Life">
3 <text_editor name="credits_editor"> 3 <text_editor name="credits_editor">
4 Second Life existe grâce aux efforts de Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ et de nombreuses autres personnes. 4 Second Life existe grâce aux efforts de Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les et de nombreuses autres personnes.
5 5
6 Tous nos remerciements aux résidents suivants pour avoir testé cette version (la meilleure qui soit jusqu&apos;à présent) : Aminom Marvin, ava ganache, Balthazar Fouroux, CrystalShard Foo, Davec Horsforth, Drew Dwi, Ellla McMahon, Gellan Glenelg, Harleen Gretzky, istephanija munro, Iustinian Tomsen, JC Glimmer, Joeseph Albanese, kelly young, Latif Khalifa, Lex Neva, McCabe Maxsted, Michi Lumin, moni duettmann, Moon Metty, motor loon, Opensource Obscure, Sky Hye, Soap Clawtooth, velveeta biedermann, zeebster colasanti 6 Tous nos remerciements aux résidents suivants pour avoir testé cette version (la meilleure qui soit jusqu&apos;à présent) : afon shepherd, Aimee Trescothick, Alexandrea Fride, Alissa Sabre, Amber DeCuir, Asuka Neely, Auron Forcella, Blue Revolution, Bocan Undercroft, Boroondas Gupte, Brandon Shinobu, Bri Gufler, Buckaroo Mu, Celierra Darling, Christos Atlantis, Coder Kas, Cummere Mayo, dakota schwade, Dirk Talamasca, Dizzy Banjo, Drew Dwi, Duckling Kwak, Ellla McMahon, Erikah Jameson, Erinyse Planer, Eyana Yohkoh, Ezian Ecksol, Faron Karu, Fenoe Lowey, Fox Hwasung, Francisca Biedermann, Gally Young, Gellan Glenelg, Geneko Nemeth, Glenn Rotaru, Hagar Qinan, Harleen Gretzky, Holger Gilruth, hotrodjohnny gears, IAm Zabelin, Inigo Catteneo, Iustinian Tomsen, Jacek Antonell, James Benedek, Jim Kupferberg, Joeseph Albanese, JPT62089 Agnon, Kardargo Adamczyk, Kirstenlee Cinquetti, Latif Khalifa, lea Parnall, Lex Neva, Lillith Anatine, Lilly Zenovka, Lim Catteneo, Lindal Kidd, Mark Rosenbaum, MasterJ Chaplin, McCabe Maxsted, Melvin Starbrook, Meni Kaiousei, Mero Collas, Minakothegothicgeisha Kamachi, Moon Metty, neofilo aabye, Neutron Chesnokov, Nomad Ingwer, norritt Xi, Opensource Obscure, Oracle Weatherwax, Ourasi Ferraris, Pabl0 Roffo, Peyton Aleixandre, Phli Foxchase, Psi Merlin, r2d2 Wunderlich, Regi Yifu, Saijanai Kuhn, Sandor Balczo, Sarkan Dreamscape, Scree Raymaker, Sedona Mills, Selena Beale, Sheet Spotter, Shibari Twine, Silver Key, Simon Kline, SLB Wirefly, Stacy Wombat, Sugarcult Dagger, Tayra Dagostino, Tetsuryu Vlodovic, ThaBiGGDoGG Richez, Timo Gufler, tx Oh, wayfinder wishbringer, Wizzytoe McCullough, Wundur Primbee, Yann Dufaux, Yuu Nakamichi, Aminom Marvin, Andred Qinan, arminasx saiman, caroline apollo, Iskar Ariantho, Jenika Connolly, Maghnus Balogh, Nefertiti Nefarious, RodneyLee Jessop
7 7
8 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion 8 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
9 APR Copyright (C) 2000-2004 The Apache Software Foundation 9 APR Copyright (C) 2000-2004 The Apache Software Foundation
@@ -26,7 +26,7 @@
26 Codage Audio du chat vocal : Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) 26 Codage Audio du chat vocal : Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
27 27
28 28
29 On ne peut pas voir très loin devant nous, mais l&apos;on peut déjà y voir qu&apos;il y a beaucoup à faire. --Alan Turing 29 Je m&apos;en sors avec un peu d&apos;aide de mes amis. --Richard Starkey
30 </text_editor> 30 </text_editor>
31 <string name="you_are_at"> 31 <string name="you_are_at">
32 Votre position : [POSITION] 32 Votre position : [POSITION]
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_about_land.xml b/linden/indra/newview/skins/default/xui/fr/floater_about_land.xml
index 9742d2f..942c9e5 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_about_land.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_about_land.xml
@@ -1,91 +1,81 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floaterland" title="À propos du terrain"> 2<floater name="floaterland" title="À propos du terrain">
3 <tab_container name="landtab"> 3 <tab_container name="landtab">
4 <panel label="Général" name="land_general_panel"> 4 <panel label="Général" name="land_general_panel">
5 <text type="string" length="1" name="Name:"> 5 <text length="1" name="Name:" type="string">
6 Nom : 6 Nom :
7 </text> 7 </text>
8 <text type="string" length="1" name="Description:"> 8 <line_editor name="Name"/>
9 <text length="1" name="Description:" type="string">
9 Description : 10 Description :
10 </text> 11 </text>
11 <text type="string" length="1" name="Owner:"> 12 <text_editor name="Description"/>
13 <text length="1" name="Owner:" type="string">
12 Propriétaire : 14 Propriétaire :
13 </text> 15 </text>
14 <text type="string" length="1" name="OwnerText"> 16 <text length="1" name="OwnerText" type="string">
15 Leyla Linden 17 Leyla Linden
16 </text> 18 </text>
17 <button label="Profil..." label_selected="Profil..." name="Profile..." /> 19 <button label="Profil..." label_selected="Profil..." name="Profile..."/>
18 <text type="string" length="1" name="Group:"> 20 <text length="1" name="Group:" type="string">
19 Groupe : 21 Groupe :
20 </text> 22 </text>
21 <button label="Définir..." label_selected="Définir..." name="Set..." /> 23 <text name="GroupText"/>
22 <check_box label="Autoriser le transfert au groupe" name="check deed" 24 <button label="Définir..." label_selected="Définir..." name="Set..."/>
23 tool_tip="Un officier peut transférer ce terrain au groupe. Il viendra alors s&apos;ajouter au patrimoine du groupe." /> 25 <check_box label="Autoriser la cession au groupe" name="check deed" tool_tip="Un officier peut céder ce terrain au groupe. Il viendra alors s&apos;ajouter au patrimoine du groupe."/>
24 <button label="Transférer..." label_selected="Transférer..." name="Deed..." 26 <button label="Céder..." label_selected="Céder..." name="Deed..." tool_tip="Vous ne pouvez céder le terrain que si vous avez un rôle d&apos;officier dans le groupe sélectionné."/>
25 tool_tip="Vous ne pouvez transférer le terrain que si vous avez un rôle d&apos;officier dans le groupe sélectionné." /> 27 <check_box label="Le propriétaire contribue en cédant du terrain" name="check contrib" tool_tip="Lorsqu&apos;un terrain est cédé au groupe, l&apos;ancien propriétaire fait également un don de terrain suffisant."/>
26 <check_box label="Le propriétaire contribue par transfert" name="check contib" 28 <text length="1" name="For Sale:" type="string">
27 tool_tip="Lorsque le terrain est transféré au groupe, la contribution du précédent propriétaire suffit à l&apos;entretenir." />
28 <check_box label="Le propriétaire contribue par une donation" name="check contrib"
29 tool_tip="Lorsqu&apos;un titre de propriété est transféré au groupe, l&apos;ancien propriétaire fait également un don de terrain suffisant." />
30 <text type="string" length="1" name="For Sale:">
31 À vendre : 29 À vendre :
32 </text> 30 </text>
33 <text type="string" length="1" name="Not for sale."> 31 <text length="1" name="Not for sale." type="string">
34 Pas à vendre. 32 Pas à vendre
35 </text> 33 </text>
36 <text type="string" length="1" name="For Sale: Price L$[PRICE]."> 34 <text length="1" name="For Sale: Price L$[PRICE]." type="string">
37 Prix : [PRICE] $L. 35 Prix : [PRICE] L$.
38 </text> 36 </text>
39 <button label="Vendre le terrain..." label_selected="Vendre le terrain..." 37 <text name="SalePending"/>
40 name="Sell Land..." /> 38 <button label="Vendre le terrain..." label_selected="Vendre le terrain..." name="Sell Land..."/>
41 <text type="string" length="1" name="For sale to"> 39 <text length="1" name="For sale to" type="string">
42 À vendre à : [BUYER] 40 À vendre à : [BUYER]
43 </text> 41 </text>
44 <text type="string" length="1" name="Sell with landowners objects in parcel."> 42 <text length="1" name="Sell with landowners objects in parcel." type="string">
45 Objets inclus dans la vente. 43 Objets inclus dans la vente.
46 </text> 44 </text>
47 <text type="string" length="1" name="Selling with no objects in parcel."> 45 <text length="1" name="Selling with no objects in parcel." type="string">
48 Objets non inclus dans la vente. 46 Objets non inclus dans la vente.
49 </text> 47 </text>
50 <button label="Annuler la vente du terrain" 48 <button label="Annuler la vente du terrain" label_selected="Annuler la vente du terrain" name="Cancel Land Sale" width="165" left="275"/>
51 label_selected="Annuler la vente du terrain" name="Cancel Land Sale" /> 49 <text length="1" name="Claimed:" type="string">
52 <text type="string" length="1" name="Claimed:"> 50 Acquis :
53 Réclamée :
54 </text> 51 </text>
55 <text type="string" length="1" name="DateClaimText"> 52 <text length="1" name="DateClaimText" type="string">
56 Tue Aug 15 13:47:25 2006 53 Tue Aug 15 13:47:25 2006
57 </text> 54 </text>
58 <text type="string" length="1" name="PriceLabel"> 55 <text length="1" name="PriceLabel" type="string">
59 Surface : 56 Surface :
60 </text> 57 </text>
61 <text type="string" length="1" name="PriceText"> 58 <text length="1" name="PriceText" type="string">
62 4048 m² 59 4048 m²
63 </text> 60 </text>
64 <text type="string" length="1" name="Traffic:"> 61 <text length="1" name="Traffic:" type="string">
65 Trafic : 62 Trafic :
66 </text> 63 </text>
67 <text type="string" length="1" name="DwellText"> 64 <text length="1" name="DwellText" type="string">
68 0 65 0
69 </text> 66 </text>
70 <button label="Acheter le terrain..." label_selected="Acheter le terrain..." 67 <button label="Acheter le terrain..." label_selected="Acheter le terrain..." name="Buy Land..." width="125" left="130"/>
71 name="Buy Land..." /> 68 <button label="Acheter pour le groupe..." label_selected="Acheter pour le groupe..." name="Buy For Group..."/>
72 <button label="Acheter pour le groupe..." label_selected="Acheter pour le groupe..." 69 <button label="Acheter un pass..." label_selected="Acheter un pass..." name="Buy Pass..." tool_tip="Un pass vous donne un accès temporaire à ce terrain." width="125" left="130"/>
73 name="Buy For Group..." /> 70 <button label="Abandonner le terrain..." label_selected="Abandonner le terrain..." name="Abandon Land..."/>
74 <button label="Acheter un passe..." label_selected="Acheter un passe..." 71 <button label="Redemander le terrain..." label_selected="Redemander le terrain…" name="Reclaim Land..."/>
75 name="Buy Pass..." 72 <button label="Vente Linden..." label_selected="Vente Linden..." name="Linden Sale..." tool_tip="Le terrain doit être la propriété d&apos;un résident, avoir un contenu défini et ne pas être aux enchères."/>
76 tool_tip="Un passe vous donne un accès temporaire à ce terrain." /> 73 <string name="new users only">
77 <button label="Céder le terrain..." label_selected="Céder le terrain..."
78 name="Abandon Land..." />
79 <button label="Récupérer le terrain…" label_selected="Récupérer le terrain…"
80 name="Reclaim Land..." />
81 <button label="Vente Linden..." label_selected="Vente Linden..." name="Linden Sale..."
82 tool_tip="Le terrain doit être la propriété d&apos;un résident, avoir un contenu défini et ne pas être aux enchères." />
83 <text name="new users only">
84 Nouveaux utilisateurs uniquement 74 Nouveaux utilisateurs uniquement
85 </text> 75 </string>
86 <text name="anyone"> 76 <string name="anyone">
87 Tout le monde 77 Tout le monde
88 </text> 78 </string>
89 <string name="area_text"> 79 <string name="area_text">
90 Surface 80 Surface
91 </string> 81 </string>
@@ -122,61 +112,58 @@ Allez dans le menu Monde &gt; À propos du terrain ou sélectionnez une autre pa
122 </string> 112 </string>
123 </panel> 113 </panel>
124 <panel label="Règlement" name="land_covenant_panel"> 114 <panel label="Règlement" name="land_covenant_panel">
125 <text type="string" length="1" name="covenant_timestamp_text"> 115 <text length="1" name="covenant_timestamp_text" type="string">
126 Last Modified Wed Dec 31 16:00:00 1969 116 Last Modified Wed Dec 31 16:00:00 1969
127 </text> 117 </text>
128 <text type="string" length="1" name="region_name_lbl"> 118 <text length="1" name="region_name_lbl" type="string">
129 Région : 119 Région :
130 </text> 120 </text>
131 <text type="string" length="1" name="region_name_text"> 121 <text length="1" name="region_name_text" type="string">
132 leyla 122 leyla
133 </text> 123 </text>
134 <text type="string" length="1" name="estate_name_lbl"> 124 <text length="1" name="estate_name_lbl" type="string">
135 Domaine : 125 Domaine :
136 </text> 126 </text>
137 <text type="string" length="1" name="estate_name_text"> 127 <text length="1" name="estate_name_text" type="string">
138 continent 128 continent
139 </text> 129 </text>
140 <text type="string" length="1" name="estate_owner_lbl"> 130 <text length="1" name="estate_owner_lbl" type="string">
141 Propriétaire : 131 Propriétaire :
142 </text> 132 </text>
143 <text type="string" length="1" name="estate_owner_text"> 133 <text length="1" name="estate_owner_text" type="string">
144 (aucun) 134 (aucun)
145 </text> 135 </text>
146 <text type="string" length="1" name="resellable_clause"> 136 <text length="1" name="resellable_clause" type="string">
147 Le terrain acheté dans cette région ne peut être revendu. 137 Le terrain acheté dans cette région ne peut être revendu.
148 </text> 138 </text>
149 <text type="string" length="1" name="changeable_clause"> 139 <text length="1" name="changeable_clause" type="string">
150 Le terrain acheté dans cette région ne peut être revendu/divisé. 140 Le terrain acheté dans cette région ne peut être revendu/divisé.
151 </text> 141 </text>
152 <text_editor type="string" length="1" name="covenant_editor"> 142 <text_editor length="1" name="covenant_editor" type="string">
153 Il n&apos;y a aucun règlement pour ce domaine. 143 Il n&apos;y a aucun règlement pour ce domaine.
154 </text_editor> 144 </text_editor>
155 <text name="can_resell"> 145 <string name="can_resell">
156 Le terrain acheté dans cette région peut être revendu. 146 Le terrain acheté dans cette région peut être revendu.
157 </text> 147 </string>
158 <text name="can_not_resell"> 148 <string name="can_not_resell">
159 Le terrain acheté dans cette région ne peut pas être revendu. 149 Le terrain acheté dans cette région ne peut pas être revendu.
160 </text> 150 </string>
161 <text name="can_change"> 151 <string name="can_change">
162 Le terrain acheté dans cette région peut être fusionné ou divisé. 152 Le terrain acheté dans cette région peut être fusionné ou divisé.
163 </text> 153 </string>
164 <text name="can_not_change"> 154 <string name="can_not_change">
165 Le terrain acheté dans cette région ne peut pas être fusionné ou divisé. 155 Le terrain acheté dans cette région ne peut pas être fusionné ou divisé.
166 </text> 156 </string>
167 </panel> 157 </panel>
168 <panel label="Objets" name="land_objects_panel"> 158 <panel label="Objets" name="land_objects_panel">
169 <text name="parcel_object_bonus"> 159 <text name="parcel_object_bonus">
170 Facteur Bonus Objets : [BONUS] 160 Facteur Bonus Objets : [BONUS]
171 </text> 161 </text>
172 <text type="string" length="1" name="Simulator primitive usage:"> 162 <text length="1" name="Simulator primitive usage:" type="string">
173 Prims utilisés sur le sim : 163 Prims utilisées sur la parcelle :
174 </text>
175 <text type="string" length="1" name="0 out of 0 available">
176 0 sur 14055 (14055 disponibles)
177 </text> 164 </text>
178 <text name="objects_available"> 165 <text name="objects_available" left="214" width="230">
179 [COUNT] sur [COUNT] ([COUNT] disponibles) 166 [COUNT] sur [MAX] ([AVAILABLE] disponibles)
180 </text> 167 </text>
181 <string name="objects_available_text"> 168 <string name="objects_available_text">
182 [COUNT] sur [MAX] ([AVAILABLE] disponibles) 169 [COUNT] sur [MAX] ([AVAILABLE] disponibles)
@@ -184,113 +171,103 @@ Allez dans le menu Monde &gt; À propos du terrain ou sélectionnez une autre pa
184 <string name="objects_deleted_text"> 171 <string name="objects_deleted_text">
185 [COUNT] sur [MAX] ([DELETED] seront supprimés) 172 [COUNT] sur [MAX] ([DELETED] seront supprimés)
186 </string> 173 </string>
187 <text type="string" length="1" name="Primitives parcel supports:"> 174 <text length="1" name="Primitives parcel supports:" type="string" width="200">
188 Prims max. sur la parcelle : 175 Prims max. sur la parcelle :
189 </text> 176 </text>
190 <text type="string" length="1" name="object_contrib_text"> 177 <text length="1" name="object_contrib_text" type="string" left="214" width="152">
191 [COUNT] 178 [COUNT]
192 </text> 179 </text>
193 <text type="string" length="1" name="Primitives on parcel:"> 180 <text length="1" name="Primitives on parcel:" type="string">
194 Prims sur la parcelle : 181 Prims sur la parcelle :
195 </text> 182 </text>
196 <text type="string" length="1" name="total_objects_text"> 183 <text length="1" name="total_objects_text" type="string" left="214" width="48">
197 [COUNT] 184 [COUNT]
198 </text> 185 </text>
199 <text type="string" length="1" name="Owned by parcel owner:"> 186 <text length="1" name="Owned by parcel owner:" type="string" left="14" width="180">
200 Appartenant au propriétaire : 187 Appartenant au propriétaire :
201 </text> 188 </text>
202 <text type="string" length="1" name="owner_objects_text"> 189 <text length="1" name="owner_objects_text" type="string" left="214" width="48">
203 [COUNT] 190 [COUNT]
204 </text> 191 </text>
205 <button label="Afficher" label_selected="Afficher" name="ShowOwner" /> 192 <button label="Afficher" label_selected="Afficher" name="ShowOwner" right="-135" width="60"/>
206 <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOwner..." 193 <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOwner..." tool_tip="Renvoyer les objets à leurs propriétaires." right="-10" width="119"/>
207 tool_tip="Renvoyer les objets à leurs propriétaires." /> 194 <text length="1" name="Set to group:" type="string" left="14" width="180">
208 <text type="string" length="1" name="Set to group:">
209 Donnés au groupe : 195 Donnés au groupe :
210 </text> 196 </text>
211 <text type="string" length="1" name="group_objects_text"> 197 <text length="1" name="group_objects_text" type="string" left="214" width="48">
212 0 198 [COUNT]
213 </text> 199 </text>
214 <button label="Afficher" label_selected="Afficher" name="ShowGroup" /> 200 <button label="Afficher" label_selected="Afficher" name="ShowGroup" width="60" right="-135"/>
215 <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnGroup..." 201 <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnGroup..." tool_tip="Renvoyer les objets à leurs propriétaires." right="-10" width="119"/>
216 tool_tip="Renvoyer les objets à leurs propriétaires." /> 202 <text length="1" name="Owned by others:" type="string" left="14" width="128">
217 <text type="string" length="1" name="Owned by others:">
218 Appartenant à d&apos;autres : 203 Appartenant à d&apos;autres :
219 </text> 204 </text>
220 <text type="string" length="1" name="other_objects_text"> 205 <text length="1" name="other_objects_text" type="string" left="214" width="48">
221 0 206 [COUNT]
222 </text> 207 </text>
223 <button label="Afficher" label_selected="Afficher" name="ShowOther" /> 208 <button label="Afficher" label_selected="Afficher" name="ShowOther" right="-135" width="60"/>
224 <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOther..." 209 <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOther..." tool_tip="Renvoyer les objets à leurs propriétaires." right="-10" width="119"/>
225 tool_tip="Renvoyer les objets à leurs propriétaires." /> 210 <text length="1" name="Selected / sat upon:" type="string" left="14" width="193">
226 <text type="string" length="1" name="Selected / sat upon:">
227 Sélectionnés/où quelqu&apos;un est assis : 211 Sélectionnés/où quelqu&apos;un est assis :
228 </text> 212 </text>
229 <text type="string" length="1" name="selected_objects_text"> 213 <text length="1" name="selected_objects_text" type="string" left="214" width="48">
230 0 214 [COUNT]
231 </text>
232 <text type="string" length="1" name="Autoreturn other resident&amp;apos;s objects (minutes, 0 for off):">
233 Renvoi automatique des objets appartenant aux autres résidents (minutes, 0 pour désactiver):
234 </text> 215 </text>
235 <text name="Autoreturn"> 216 <text name="Autoreturn" width="412" left="4">
236 Renvoi automatique des objets d&apos;autres résidents (minutes, 0 pour désactiver) : 217 Renvoi automatique des objets d&apos;autres résidents (minutes, 0 pour désactiver) :
237 </text> 218 </text>
238 <text type="string" length="1" name="Object Owners:"> 219 <line_editor name="clean other time" right="-6" width="36" />
220 <text length="1" name="Object Owners:" type="string">
239 Propriétaires : 221 Propriétaires :
240 </text> 222 </text>
241 <button label="Rafraîchir la liste" label_selected="Rafraîchir la liste" 223 <button label="Rafraîchir" label_selected="Rafraîchir" name="Refresh List"/>
242 name="Refresh List" /> 224 <button label="Renvoyer les objets..." label_selected="Renvoyer les objets..." name="Return objects..."/>
243 <button label="Renvoyer les objets..." label_selected="Renvoyer les objets..."
244 name="Return objects..." />
245 <button label="" label_selected="" name="Type" tool_tip="Trier par type" />
246 <button label="Nom" label_selected="Nom" name="Name" tool_tip="Trier par nom" />
247 <button label="Trafic" label_selected="Trafic" name="Count" tool_tip="Trier par trafic" />
248 <name_list label="Plus récents" name="owner list"> 225 <name_list label="Plus récents" name="owner list">
249 <column label="Type" name="type" /> 226 <column label="Type" name="type"/>
250 <column label="Nom" name="name" /> 227 <column name="online_status"/>
251 <column label="Nombre" name="count" /> 228 <column label="Nom" name="name"/>
229 <column label="Nombre" name="count"/>
230 <column label="Plus récents" name="mostrecent"/>
252 </name_list> 231 </name_list>
253 </panel> 232 </panel>
254 <panel label="Options" name="land_options_panel"> 233 <panel label="Options" name="land_options_panel">
255 <text type="string" length="1" name="allow_label"> 234 <text length="1" name="allow_label" type="string">
256 Autoriser les autres résidents à : 235 Autoriser les autres résidents à :
257 </text> 236 </text>
258 <text name="allow_label2"> 237 <check_box label="Modifier le terrain" name="edit land check" tool_tip="Si cette option est cochée, n&apos;importe qui peut terraformer votre terrain. Il vaut mieux ne pas cocher cette option pour toujours pouvoir modifer votre propre terrain."/>
238 <check_box label="Créer des repères" name="check landmark"/>
239 <check_box label="Voler" name="check fly" tool_tip="Si cette option est cochée, les résidents peuvent voler sur votre terrain. Si elle n&apos;est pas cochée, ils ne pourront voler que lorsqu&apos;ils arrivent et passent au dessus de votre terrain."/>
240 <text name="allow_label2" left="152">
259 Créer des objets : 241 Créer des objets :
260 </text> 242 </text>
261 <check_box label="Tous les résidents" name="edit objects check" /> 243 <check_box label="Tous les résidents" name="edit objects check" left="285"/>
262 <check_box label="Modifier le terrain" name="edit land check" /> 244 <check_box label="Groupe" name="edit group objects check" left="395"/>
263 <check_box label="Créer des repères" name="check landmark" /> 245 <text name="allow_label3" left="152" width="134">
264 <check_box label="Groupe" name="edit group objects check" /> 246 Laisser entrer des objets :
265 <text name="allow_label3">
266 Apporter des objets :
267 </text> 247 </text>
268 <check_box label="Tous les résidents" name="all object entry check" /> 248 <check_box label="Tous les résidents" name="all object entry check" left="285"/>
269 <check_box label="Groupe" name="group object entry check" /> 249 <check_box label="Groupe" name="group object entry check" left="395"/>
270 <text name="allow_label4"> 250 <text name="allow_label4" left="152">
271 Exécuter des scripts : 251 Exécuter des scripts :
272 </text> 252 </text>
273 <check_box label="Groupe" name="check group scripts" /> 253 <check_box label="Tous les résidents" name="check other scripts" left="285"/>
274 <check_box label="Voler" name="check fly" /> 254 <check_box label="Groupe" name="check group scripts" left="395"/>
275 <check_box label="Tous les résidents" name="check other scripts" /> 255 <text length="1" name="land_options_label" type="string">
276 <text type="string" length="1" name="land_options_label">
277 Options du terrain : 256 Options du terrain :
278 </text> 257 </text>
279 <check_box label="Sécurisé (pas de dégâts)" name="check safe" /> 258 <check_box label="Sécurisé (pas de dégâts)" name="check safe" tool_tip="Si cette option est cochée, le terrain est sécurisé et il n&apos;y pas de risques de dommages causés par des combats. Si elle est décochée, des dommages causés par les combats peuvent avoir lieu."/>
280 <check_box label="Interdire les bousculades" name="PushRestrictCheck" 259 <check_box label="Pas de bousculades" left="14" bottom="-140"
281 tool_tip="llPushObject ne fonctionne que sur les scripts du propriétaire de la parcelle ou sur les scripts où la personne qui bouscule est aussi la propriétaire du script." /> 260 name="PushRestrictCheck" tool_tip="Empêche l&apos;utilisation de scripts causant des bousculades. Cette option est utile pour empêcher les comportements abusifs sur votre terrain."/>
282 <check_box label="Afficher dans la recherche (30 $L/semaine) sous" 261 <check_box label="Afficher dans la recherche (30 L$/semaine) sous" name="ShowDirectoryCheck" tool_tip="Afficher la parcelle dans les résultats de recherche" bottom="-160"/>
283 name="ShowDirectoryCheck" 262 <combo_box name="land category" left="286" width="146" bottom="-160">
284 tool_tip="Afficher la parcelle dans les résultats de recherche" />
285 <combo_box name="land category">
286 <combo_item name="AnyCategory"> 263 <combo_item name="AnyCategory">
287 Toute catégorie 264 Toutes catégories
288 </combo_item> 265 </combo_item>
289 <combo_item name="LindenLocation"> 266 <combo_item name="LindenLocation">
290 Emplacement Linden 267 Appartenant aux Lindens
291 </combo_item> 268 </combo_item>
292 <combo_item name="Adult"> 269 <combo_item name="Adult">
293 Adultes 270 Adulte
294 </combo_item> 271 </combo_item>
295 <combo_item name="Arts&amp;Culture"> 272 <combo_item name="Arts&amp;Culture">
296 Art et Culture 273 Art et Culture
@@ -305,10 +282,10 @@ Allez dans le menu Monde &gt; À propos du terrain ou sélectionnez une autre pa
305 Jeux 282 Jeux
306 </combo_item> 283 </combo_item>
307 <combo_item name="Hangout"> 284 <combo_item name="Hangout">
308 Endroit favori 285 Favoris
309 </combo_item> 286 </combo_item>
310 <combo_item name="NewcomerFriendly"> 287 <combo_item name="NewcomerFriendly">
311 Convivial pour les nouveaux 288 Accueil pour les nouveaux
312 </combo_item> 289 </combo_item>
313 <combo_item name="Parks&amp;Nature"> 290 <combo_item name="Parks&amp;Nature">
314 Parcs et Nature 291 Parcs et Nature
@@ -323,186 +300,142 @@ Allez dans le menu Monde &gt; À propos du terrain ou sélectionnez une autre pa
323 Autre 300 Autre
324 </combo_item> 301 </combo_item>
325 </combo_box> 302 </combo_box>
326 <check_box label="Publier liste sur le web" name="PublishCheck" 303 <button label="?" label_selected="?" name="?" left="436" bottom="-160"/>
327 tool_tip="Publiez vos informations de parcelle sur le web." /> 304 <check_box label="Contenu pour adultes" name="MatureCheck" tool_tip="Les infos sur votre parcelle, ou le contenu de cette dernière, sont à caractère adulte." bottom="-180"/>
328 <check_box label="Contenu pour adultes" name="MatureCheck" 305 <text length="1" name="Snapshot:" type="string" bottom="-200">
329 tool_tip="Les infos sur votre parcelle, ou le contenu de cette dernière, sont à caractère adulte." />
330 <button label="?" label_selected="?" name="?" />
331 <text type="string" length="1" name="Snapshot:">
332 Photo : 306 Photo :
333 </text> 307 </text>
334 <texture_picker label="" name="snapshot_ctrl" tool_tip="Cliquez pour sélectionner une image" /> 308 <texture_picker label="" name="snapshot_ctrl" tool_tip="Cliquez pour sélectionner une image" bottom="-319"/>
335 <text type="string" length="1" name="Landing Point: (none)"> 309 <text name="landing_point" bottom="-323">
336 Point d&apos;atterrissage : (aucun)
337 </text>
338 <text name="landing_point">
339 Lieu d&apos;arrivée : [LANDING] 310 Lieu d&apos;arrivée : [LANDING]
340 </text> 311 </text>
341 <string name="landing_point_none"> 312 <string name="landing_point_none">
342 (aucun) 313 (aucun)
343 </string> 314 </string>
344 <button label="Définir" label_selected="Définir" name="Set" 315 <button label="Définir" label_selected="Définir" name="Set" tool_tip="Définit le point d&apos;arrivée des visiteurs. Définit l&apos;emplacement de votre avatar sur ce terrain." bottom="-323"/>
345 tool_tip="Définir le lieu d&apos;arrivée de l&apos;avatar sur votre position actuelle. ll doit se trouver sur cette parcelle de terrain." /> 316 <button label="Annuler" label_selected="Annuler" name="Clear" tool_tip="Libérer le lieu d&apos;arrivée." bottom="-323"/>
346 <button label="Annuler" label_selected="Annuler" name="Clear" 317 <text length="1" name="Teleport Routing: " type="string" bottom="-343">
347 tool_tip="Dégager le lieu d&apos;arrivée." /> 318 Règles de téléportation :
348 <text type="string" length="1" name="Teleport Routing: "> 319 </text>
349 Options de téléportation : 320 <combo_box name="landing type" tool_tip="Vous permet de paramétrer les téléportations sur votre terrain." left="140" width="140" bottom="-343">
350 </text> 321 <combo_item length="1" name="Blocked" type="string">
351 <combo_box name="landing type" 322 Bloqué
352 tool_tip="Vous permet de paramétrer les téléportations sur votre terrain.">
353 <combo_item type="string" length="1" name="Blocked">
354 Bloquée
355 </combo_item> 323 </combo_item>
356 <combo_item type="string" length="1" name="LandingPoint"> 324 <combo_item length="1" name="LandingPoint" type="string">
357 Lieu d&apos;arrivée défini 325 Lieu d&apos;arrivée fixe
358 </combo_item> 326 </combo_item>
359 <combo_item type="string" length="1" name="Anywhere"> 327 <combo_item length="1" name="Anywhere" type="string">
360 Lieu d&apos;arrivée indéfini 328 Lieu d&apos;arrivée libre
361 </combo_item> 329 </combo_item>
362 </combo_box> 330 </combo_box>
363 <string name="push_restrict_text"> 331 <string name="push_restrict_text">
364 Interdire les bousculades 332 Pas de bousculades
365 </string> 333 </string>
366 <string name="push_restrict_region_text"> 334 <string name="push_restrict_region_text">
367 Interdire les bousculades (passer outre les règles de la région) 335 Pas de bousculades (les règles de la région priment)
368 </string> 336 </string>
369 </panel> 337 </panel>
370 <panel label="Média" name="land_media_panel"> 338 <panel label="Médias" name="land_media_panel">
371 <text name="with media:"> 339 <text name="with media:" width="85">
372 Type de média : 340 Type de média :
373 </text> 341 </text>
374 <combo_box name="media type" 342 <combo_box name="media type" tool_tip="Indiquez s&apos;il s&apos;agit de l&apos;URL d&apos;un film, d&apos;une page web ou autre" left="97"/>
375 tool_tip="Indiquez s&apos;il s&apos;agit de l&apos;URL d&apos;un film, d&apos;une page web ou autre" /> 343 <text name="mime_type"/>
376 <text name="at URL:"> 344 <text name="at URL:" width="85">
377 URL du média : 345 URL du média :
378 </text> 346 </text>
379 <button label="Définir..." label_selected="Définir..." name="set_media_url" /> 347 <line_editor name="media_url" left="97"/>
348 <button label="Définir..." label_selected="Définir..." name="set_media_url"/>
380 <text name="Description:"> 349 <text name="Description:">
381 Description : 350 Description :
382 </text> 351 </text>
383 <line_editor name="url_description" 352 <line_editor name="url_description" tool_tip="Texte affiché à côté du bouton Jouer/Charger" left="97"/>
384 tool_tip="Texte affiché à côté du bouton Jouer/Charger" /> 353 <text length="1" name="Media texture:" type="string">
354 Remplacer
355la texture :
356 </text>
357 <texture_picker label="" name="media texture" tool_tip="Cliquez pour sélectionner une image" left="97"/>
385 <text name="replace_texture_help"> 358 <text name="replace_texture_help">
386 (Les objets avec cette texture affichent le film ou 359 (Les objets avec cette texture affichent le film ou
387la page web quand vous cliquez sur la flèche Jouer). 360la page web quand vous cliquez sur la flèche Jouer.)
388 </text> 361 </text>
389 <text name="Options:"> 362 <text name="Options:">
390 Options 363 Options
391média : 364média :
392 </text> 365 </text>
393 <check_box label="Média en boucle" name="media_loop" 366 <check_box left="97" label="Échelle automatique" name="media_auto_scale" tool_tip="Si vous sélectionnez cette option, le contenu de cette parcelle sera automatiquement mis à l&apos;échelle. La qualité visuelle sera peut-être amoindrie mais vous n&apos;aurez à faire aucune autre mise à l&apos;échelle ou alignement."/>
394 tool_tip="Jouer le média en boucle. Lorsque le média aura fini de jouer, il recommencera." /> 367 <check_box label="Média en boucle" name="media_loop" tool_tip="Jouer le média en boucle. Lorsque le média aura fini de jouer, il recommencera."/>
395 <check_box label="Masquer l&apos;URL du média" name="hide_media_url" 368 <check_box left="97" label="Masquer l&apos;URL du média" name="hide_media_url" tool_tip="Si vous cochez cette option, les personnes non autorisées à accéder aux infos de cette parcelle ne verront pas l&apos;URL du média. Cette option n&apos;est pas disponible pour les fichiers HTML."/>
396 tool_tip="Si vous cochez cette option, les personnes non autorisées à accéder aux infos de cette parcelle ne verront pas l&apos;URL du média. Cette option n&apos;est pas disponible pour les fichiers HTML." /> 369 <check_box label="Masquer l&apos;URL de la musique" name="hide_music_url" tool_tip="Si vous cochez cette option, les personnes non autorisées à accéder aux infos de cette parcelle ne verront pas l&apos;URL de la musique."/>
397 <check_box label="Masquer l&apos;URL de la musique" name="hide_music_url" 370 <text name="media_size" tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut." width="105" left="102">
398 tool_tip="Si vous cochez cette option, les personnes non autorisées à accéder aux infos de cette parcelle ne verront pas l&apos;URL de la musique." />
399 <text name="media_size"
400 tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut.">
401 Taille du média : 371 Taille du média :
402 </text> 372 </text>
403 <spinner name="media_size_width" 373 <spinner name="media_size_width" tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut." left_delta="89"/>
404 tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut." /> 374 <spinner name="media_size_height" tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut."/>
405 <spinner name="media_size_height"
406 tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut." />
407 <text name="pixels"> 375 <text name="pixels">
408 pixels 376 pixels
409 </text> 377 </text>
410 <text name="MusicURL:"> 378 <text name="MusicURL:" bottom_delta="-28">
411 URL de la musique : 379 URL de la
380musique :
412 </text> 381 </text>
382 <line_editor name="music_url" left="97" bottom_delta="-12"/>
413 <text name="Sound:"> 383 <text name="Sound:">
414 Son : 384 Son :
415 </text> 385 </text>
416 <check_box label="Limiter le son spatial à cette parcelle" name="check sound local" /> 386 <check_box label="Limiter le son ambiant à cette parcelle" name="check sound local" left="97" />
417 <text type="string" length="1" name="Music URL:">
418 URL du flux :
419 </text>
420 <text type="string" length="1" name="Media texture:">
421 Remplacer
422la texture :
423 </text>
424 <text type="string" length="1" name="Replace this texture:">
425 Remplacer cette texture :
426 </text>
427 <texture_picker label="" name="media texture" tool_tip="Cliquez pour sélectionner une image" />
428 <text type="string" length="1" name="with content from this URL:">
429 par du contenu situé à l&apos;URL suivante :
430 </text>
431 <check_box label="Échelle automatique" name="media_auto_scale"
432 tool_tip="Si vous sélectionnez cette option, le contenu de cette parcelle sera automatiquement mis à l&apos;échelle. La qualité visuelle sera peut-être amoindrie mais vous n&apos;aurez à faire aucune autre mise à l&apos;échelle ou alignement." />
433 <text name="Voice settings:"> 387 <text name="Voice settings:">
434 Voix : 388 Voix :
435 </text> 389 </text>
436 <radio_group name="parcel_voice_channel"> 390 <radio_group name="parcel_voice_channel" left="97" width="310">
437 <radio_item name="Estate"> 391 <radio_item name="Estate">
438 Utiliser le canal spatial du domaine 392 Utiliser le canal du domaine
439 </radio_item> 393 </radio_item>
440 <radio_item name="Private"> 394 <radio_item name="Private">
441 Utiliser un canal spatial privé 395 Utiliser un canal privé
442 </radio_item> 396 </radio_item>
443 <radio_item name="Disabled"> 397 <radio_item name="Disabled">
444 Désactiver les canaux spatiaux audios sur cette parcelle 398 Désactiver les canaux audios
445 </radio_item> 399 </radio_item>
446 </radio_group> 400 </radio_group>
447 </panel> 401 </panel>
448 <panel label="Accès" name="land_access_panel"> 402 <panel label="Accès" name="land_access_panel">
449 <text type="string" length="1" name="Limit access to this parcel to:"> 403 <text length="1" name="Limit access to this parcel to:" type="string">
450 Accès à cette parcelle 404 Accès à cette parcelle
451 </text> 405 </text>
452 <check_box label="Autoriser l&apos;accès public" name="public_access" /> 406 <check_box label="Autoriser l&apos;accès public" name="public_access"/>
453 <text name="Only Allow"> 407 <text name="Only Allow">
454 Bloquer l&apos;accès : 408 Bloquer l&apos;accès aux résidents :
455 </text> 409 </text>
456 <check_box 410 <check_box label="Qui n&apos;ont pas fourni leurs informations de paiement à Linden Lab" name="limit_payment" tool_tip="Aux résidents non identifés"/>
457 label="Aux résidents qui n&apos;ont pas fourni leurs informations de paiement à Linden Lab" 411 <check_box label="Dont l&apos;âge n&apos;a pas été vérifié" name="limit_age_verified" tool_tip="Aux résidents dont l&apos;âge n&apos;a pas été vérifié. Pour plus d&apos;infos, consultez la page support.secondlife.com."/>
458 name="limit_payment" tool_tip="Aux résidents non identifés" />
459 <check_box label="Aux résidents dont l&apos;âge n&apos;a pas été vérifié"
460 name="limit_age_verified"
461 tool_tip="Aux résidents dont l&apos;âge n&apos;a pas été vérifié. Pour plus d&apos;infos, consultez la page support.secondlife.com." />
462 <string name="estate_override"> 412 <string name="estate_override">
463 Au moins une de ces options est définie au niveau du domaine. 413 Au moins une de ces options est définie au niveau du domaine.
464 </string> 414 </string>
465 <check_box label="Autoriser l&apos;accès au groupe : [GROUP]" name="GroupCheck" 415 <check_box label="Autoriser l&apos;accès au groupe : [GROUP]" name="GroupCheck" tool_tip="Définir le groupe à l&apos;onglet Général."/>
466 tool_tip="Définir le groupe à l&apos;onglet Général." /> 416 <check_box label="Vendre des pass à :" name="PassCheck" tool_tip="Autoriser un accès temporaire à cette parcelle"/>
467 <check_box label="Avatars : (0 dans la liste, 300 max)" name="AccessCheck" />
468 <button label="Ajouter..." label_selected="Ajouter..." name="Add..." />
469 <button label="Retirer" label_selected="Retirer" name="Remove" />
470 <check_box label="Vendre des passes à :" name="PassCheck"
471 tool_tip="Autoriser un accès temporaire à cette parcelle" />
472 <combo_box name="pass_combo"> 417 <combo_box name="pass_combo">
473 <combo_item name="Anyone"> 418 <combo_item name="Anyone">
474 N&apos;importe qui 419 Tout le monde
475 </combo_item> 420 </combo_item>
476 <combo_item name="Group"> 421 <combo_item name="Group">
477 Groupe 422 Groupe
478 </combo_item> 423 </combo_item>
479 </combo_box> 424 </combo_box>
480 <spinner label="Prix en $L :" name="PriceSpin" /> 425 <spinner label="Prix en L$ :" name="PriceSpin"/>
481 <spinner label="Heures d&apos;accès :" name="HoursSpin" /> 426 <spinner label="Durée en heures :" name="HoursSpin"/>
482 <text label="Toujours autoriser" name="AllowedText"> 427 <text label="Toujours autoriser" name="AllowedText">
483 Résidents autorisés 428 Résidents autorisés
484 </text> 429 </text>
485 <name_list name="AccessList" tool_tip="([LISTED] listés, [MAX] max)" /> 430 <name_list name="AccessList" tool_tip="([LISTED] listés, [MAX] max)"/>
486 <button label="Ajouter..." label_selected="Ajouter..." name="add_allowed" /> 431 <button label="Ajouter..." label_selected="Ajouter..." name="add_allowed"/>
487 <button label="Supprimer" label_selected="Supprimer" name="remove_allowed" /> 432 <button label="Supprimer" label_selected="Supprimer" name="remove_allowed"/>
488 <text label="Interdire" name="BanCheck"> 433 <text label="Bannir" name="BanCheck">
489 Résidents interdits 434 Résidents bannis
490 </text> 435 </text>
491 <name_list name="BannedList" tool_tip="([LISTED] listés, [MAX] max)" /> 436 <name_list name="BannedList" tool_tip="([LISTED] listés, [MAX] max)"/>
492 <button label="Ajouter..." label_selected="Ajouter..." name="add_banned" /> 437 <button label="Ajouter..." label_selected="Ajouter..." name="add_banned"/>
493 <button label="Supprimer" label_selected="Supprimer" name="remove_banned" /> 438 <button label="Supprimer" label_selected="Supprimer" name="remove_banned"/>
494 </panel>
495 <panel label="Bannir" name="land_ban_panel">
496 <check_box label="Bannir les avatars suivants : (0 dans la liste, 300 max)"
497 name="LandBanCheck" />
498 <button label="Ajouter..." label_selected="Ajouter..." name="Add..." />
499 <button label="Retirer" label_selected="Retirer" name="Remove" />
500 <text type="string" length="1" name="Deny by Payment Status:">
501 Refuser selon les infos de paiement :
502 </text>
503 <check_box label="Refuser sans infos de paiement enregistrées" name="DenyAnonymousCheck" />
504 <check_box label="Refuser avec infos de paiement enregistrées" name="DenyIdentifiedCheck" />
505 <check_box label="Refuser avec infos de paiement utilisées" name="DenyTransactedCheck" />
506 </panel> 439 </panel>
507 </tab_container> 440 </tab_container>
508</floater> 441</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_active_speakers.xml b/linden/indra/newview/skins/default/xui/fr/floater_active_speakers.xml
index 59be25a..ea277bf 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_active_speakers.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_active_speakers.xml
@@ -1,11 +1,11 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="active_speakers" title="Intervenants actifs"> 2<floater name="active_speakers" title="Intervenants actifs">
3 <panel name="active_speakers_panel"> 3 <panel name="active_speakers_panel">
4 <scroll_list name="speakers_list"> 4 <scroll_list name="speakers_list">
5 <column label="Nom" name="speaker_name" /> 5 <column label="Nom" name="speaker_name"/>
6 </scroll_list> 6 </scroll_list>
7 <panel name="volume_container"> 7 <panel name="volume_container">
8 <button name="mute_btn" tool_tip="Rendre ce résident muet" /> 8 <button name="mute_btn" tool_tip="Ignorer ce résident"/>
9 </panel> 9 </panel>
10 </panel> 10 </panel>
11</floater> 11</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_animation_preview.xml b/linden/indra/newview/skins/default/xui/fr/floater_animation_preview.xml
index bc63609..66e12be 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_animation_preview.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_animation_preview.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Animation Preview" title=""> 2<floater name="Animation Preview" title="">
3 <text name="name_label"> 3 <text name="name_label">
4 Nom : 4 Nom :
@@ -6,13 +6,11 @@
6 <text name="description_label"> 6 <text name="description_label">
7 Description : 7 Description :
8 </text> 8 </text>
9 <spinner label="Priorité" name="priority" 9 <spinner label="Priorité" name="priority" tool_tip="Contrôle quelles animations peuvent êtres écrasées par cette animation."/>
10 tool_tip="Contrôle quelles animations peuvent êtres écrasées par cette animation." /> 10 <text name="preview_label" width="110">
11 <text name="preview_label">
12 Prévisualiser pendant 11 Prévisualiser pendant
13 </text> 12 </text>
14 <combo_box label="" name="preview_base_anim" 13 <combo_box label="" name="preview_base_anim" tool_tip="Utilisez cette option pour tester votre animation pendant que votre avatar fait des choses banales." left_delta="116" width="124">
15 tool_tip="Utilisez cette option pour tester votre animation pendant que votre avatar fait des choses banales.">
16 <combo_item name="Standing"> 14 <combo_item name="Standing">
17 Debout 15 Debout
18 </combo_item> 16 </combo_item>
@@ -26,16 +24,13 @@
26 En train de voler 24 En train de voler
27 </combo_item> 25 </combo_item>
28 </combo_box> 26 </combo_box>
29 <check_box label="Boucle" name="loop_check" tool_tip="Joue cette animation en boucle." /> 27 <check_box left="6" label="Boucle" name="loop_check" tool_tip="Joue cette animation en boucle."/>
30 <spinner label="Début (%)" name="loop_in_point" 28 <spinner left="76" label_width="55" width="105" label="Début (%)" name="loop_in_point" tool_tip="Définit le moment de l&apos;animation où la boucle repart."/>
31 tool_tip="Définit le moment de l&apos;animation où la boucle repart." /> 29 <spinner left="195" label="Fin (%)" name="loop_out_point" tool_tip="Définit le moment de l&apos;animation où la boucle finit."/>
32 <spinner label="Fin (%)" name="loop_out_point" 30 <text name="hand_label" width="110">
33 tool_tip="Définit le moment de l&apos;animation où la boucle finit." />
34 <text name="hand_label">
35 Mouvement de main 31 Mouvement de main
36 </text> 32 </text>
37 <combo_box label="" name="hand_pose_combo" 33 <combo_box label="" name="hand_pose_combo" tool_tip="Contrôle le mouvement des mains au cours de l&apos;animation" left_delta="116" width="124">
38 tool_tip="Contrôle le mouvement des mains au cours de lanimation">
39 <combo_item name="Spread"> 34 <combo_item name="Spread">
40 Doigts écartés 35 Doigts écartés
41 </combo_item> 36 </combo_item>
@@ -73,14 +68,13 @@
73 Taper 68 Taper
74 </combo_item> 69 </combo_item>
75 <combo_item name="PeaceRight"> 70 <combo_item name="PeaceRight">
76 Peace (droite) 71 Paix (main droite)
77 </combo_item> 72 </combo_item>
78 </combo_box> 73 </combo_box>
79 <text name="emote_label"> 74 <text name="emote_label">
80 Expression 75 Expression
81 </text> 76 </text>
82 <combo_box label="" name="emote_combo" 77 <combo_box label="" name="emote_combo" tool_tip="Contrôle l&apos;expression du visage au cours de l&apos;animation." left_delta="116" width="124">
83 tool_tip="Contrôle l&apos;expression du visage au cours de l&apos;animation.">
84 <combo_item name="[None]"> 78 <combo_item name="[None]">
85 [None] 79 [None]
86 </combo_item> 80 </combo_item>
@@ -142,20 +136,19 @@
142 Soucis 136 Soucis
143 </combo_item> 137 </combo_item>
144 </combo_box> 138 </combo_box>
145 <spinner label="Transition début (s)" name="ease_in_time" 139 <spinner label_width="65" label="Transition &#10;début (s)" name="ease_in_time" tool_tip="Durée (en secondes) pendant laquelle l&apos;animation s&apos;intègre au mouvement."/>
146 tool_tip="Durée (en secondes) pendant laquelle l&apos;animation s&apos;intègre au mouvement." /> 140 <spinner label_width="65" left="160" width="125" label="Transition &#10;fin (s)" name="ease_out_time" tool_tip="Durée (en secondes) pendant laquelle l&apos;animation disparaît du mouvement."/>
147 <spinner label="Transition fin (s)" name="ease_out_time" 141 <button label="" name="play_btn" tool_tip="Jouer/Arrêter votre animation." bottom_delta="-48"/>
148 tool_tip="Durée (en secondes) pendant laquelle l&apos;animation disparaît du mouvement." /> 142 <button label="" name="stop_btn" tool_tip="Arrêter le playback"/>
149 <button label="" name="play_btn" tool_tip="Jouer/Pauser votre animation." /> 143 <slider label="" name="playback_slider"/>
150 <button label="" name="stop_btn" tool_tip="Arrêter le playback" />
151 <slider label="" name="playback_slider" />
152 <text name="bad_animation_text"> 144 <text name="bad_animation_text">
153 Impossible de lire le fichier d&apos;animation. 145 Impossible de lire le fichier d&apos;animation.
154 146
155Nous recommandons les fichiers BVH extraits de Poser 4. 147Nous recommandons les fichiers BVH extraits de
148Poser 4.
156 </text> 149 </text>
157 <button label="Annuler" name="cancel_btn" /> 150 <button label="Annuler" name="cancel_btn"/>
158 <button label="Charger ([AMOUNT] $L)" name="ok_btn" /> 151 <button label="Charger ([AMOUNT] L$)" name="ok_btn"/>
159 <string name="failed_to_initialize"> 152 <string name="failed_to_initialize">
160 Echec de l&apos;initialisation du mouvement 153 Echec de l&apos;initialisation du mouvement
161 </string> 154 </string>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml b/linden/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml
index 6730766..82d715d 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="avatarpicker" title="Choisir le résident"> 2<floater name="avatarpicker" title="Choisir le résident">
3 <text name="Type part of the person&apos;s name:"> 3 <text name="Type part of the person&apos;s name:">
4 Entrez les premières lettres du nom de la personne : 4 Entrez les premières lettres du nom de la personne :
@@ -6,15 +6,15 @@
6 <text name="instruct_search_resident_name"> 6 <text name="instruct_search_resident_name">
7 Saisissez une partie du nom du résident : 7 Saisissez une partie du nom du résident :
8 </text> 8 </text>
9 <button label="Trouver" label_selected="Trouver" name="Find" /> 9 <button label="Chercher" label_selected="Chercher" name="Find"/>
10 <text name="Or select a calling card:"> 10 <text name="Or select a calling card:">
11 Ou sélectionnez une carte de visite : 11 Ou sélectionnez une carte de visite :
12 </text> 12 </text>
13 <text name="Or select their calling card:"> 13 <text name="Or select their calling card:">
14 Ou choisissez une carte de visite : 14 Ou sélectionnez une carte de visite :
15 </text> 15 </text>
16 <button label="Sélectionner" label_selected="Sélectionner" name="Select" /> 16 <button label="Sélectionner" label_selected="Sélectionner" name="Select"/>
17 <button label="Fermer" label_selected="Fermer" name="Close" /> 17 <button label="Fermer" label_selected="Fermer" name="Close"/>
18 <text name="NotFound"> 18 <text name="NotFound">
19 &apos;[TEXT]&apos; introuvable 19 &apos;[TEXT]&apos; introuvable
20 </text> 20 </text>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml b/linden/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
index ac7f212..929bc31 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="avatar_texture_debug" title="Textures de l&apos;avatar"> 2<floater name="avatar_texture_debug" title="Textures de l&apos;avatar">
3 <text name=""> 3 <text name="">
4 Baked Textures 4 Baked Textures
@@ -20,7 +20,7 @@
20 <texture_picker label="Å’il" name="eye_texture" /> 20 <texture_picker label="Å’il" name="eye_texture" />
21 <texture_picker label="Haut du corps" name="baked_upper_body" /> 21 <texture_picker label="Haut du corps" name="baked_upper_body" />
22 <texture_picker label="Tatouage haut du corps" name="upper_bodypaint" /> 22 <texture_picker label="Tatouage haut du corps" name="upper_bodypaint" />
23 <texture_picker label="Tricot de peau" name="undershirt" /> 23 <texture_picker label="Tricot" name="undershirt" />
24 <texture_picker label="Gants" name="gloves" /> 24 <texture_picker label="Gants" name="gloves" />
25 <texture_picker label="Chemise" name="shirt" /> 25 <texture_picker label="Chemise" name="shirt" />
26 <texture_picker label="Veste (en haut)" name="upper_jacket" /> 26 <texture_picker label="Veste (en haut)" name="upper_jacket" />
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_beacons.xml b/linden/indra/newview/skins/default/xui/fr/floater_beacons.xml
new file mode 100644
index 0000000..06bcdee
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/fr/floater_beacons.xml
@@ -0,0 +1,15 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="beacons" title="Balises">
3 <panel name="beacons_panel">
4 <check_box label="Objets scriptés avec Toucher uniquement" name="touch_only"/>
5 <check_box label="Objets scriptés" name="scripted"/>
6 <check_box label="Objets physiques" name="physical"/>
7 <check_box label="Sources sonores" name="sounds"/>
8 <check_box label="Sources des particules" name="particles"/>
9 <check_box label="Montrer les surbrillances" name="highlights"/>
10 <check_box label="Montrer les balises" name="beacons"/>
11 <text name="beacon_width_label">
12 Largeur de la balise :
13 </text>
14 </panel>
15</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_buy_contents.xml b/linden/indra/newview/skins/default/xui/fr/floater_buy_contents.xml
index 18d8e1e..3d55a1e 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_buy_contents.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_buy_contents.xml
@@ -1,14 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_buy_contents" title="Acheter des contenus"> 2<floater name="floater_buy_contents" title="Acheter des contenus">
3 <text name="contains_text"> 3 <text name="contains_text">
4 [NAME] contient : 4 [NAME] contient :
5 </text> 5 </text>
6 <text name="buy_text"> 6 <text name="buy_text">
7 Acheter [AMOUNT] $L à [NAME] ? 7 Acheter [AMOUNT] L$ à [NAME] ?
8 </text> 8 </text>
9 <button label="Annuler" label_selected="Annuler" name="cancel_btn" /> 9 <button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
10 <button label="Acheter" label_selected="Acheter" name="buy_btn" /> 10 <button label="Acheter" label_selected="Acheter" name="buy_btn"/>
11 <check_box label="Porter maintenant" name="wear_check" /> 11 <check_box label="Porter maintenant" name="wear_check"/>
12 <string name="no_copy_text"> 12 <string name="no_copy_text">
13 (pas de copie) 13 (pas de copie)
14 </string> 14 </string>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_buy_currency.xml b/linden/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
index d02e8e8..9ae924c 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="buy currency" title="Acheter des devises"> 2<floater name="buy currency" title="Acheter des L$">
3 <text left="5" name="info_buying"> 3 <text left="5" name="info_buying">
4 Achat de devises : 4 Achat de L$ :
5 </text> 5 </text>
6 <text left="5" name="info_cannot_buy" right="-5"> 6 <text left="5" name="info_cannot_buy" right="-5">
7 Impossible d&apos;acheter maintenant : 7 Impossible d&apos;acheter maintenant :
@@ -12,24 +12,24 @@
12 <text name="error_message"> 12 <text name="error_message">
13 Quelque chose ne va pas. 13 Quelque chose ne va pas.
14 </text> 14 </text>
15 <button label="Aller sur le site" name="error_web" /> 15 <button label="Aller sur le site" name="error_web"/>
16 <text name="contacting"> 16 <text name="contacting">
17 En train de contacter Lindex... 17 En train de contacter le Lindex...
18 </text> 18 </text>
19 <text name="buy_action_unknown" right="-5"> 19 <text name="buy_action_unknown" right="-5">
20 Acheter des $L sur le marché des changes du LindeX 20 Acheter des L$ sur le marché du LindeX
21 </text> 21 </text>
22 <text name="buy_action"> 22 <text name="buy_action">
23 [NAME] $L [PRICE] 23 [NAME] L$ [PRICE]
24 </text> 24 </text>
25 <text name="currency_action"> 25 <text name="currency_action">
26 Acheter des $L 26 Acheter des L$
27 </text> 27 </text>
28 <line_editor name="currency_amt"> 28 <line_editor name="currency_amt">
29 1234 29 1234
30 </line_editor> 30 </line_editor>
31 <text name="currency_est" width="138"> 31 <text name="currency_est" width="138">
32 pour environ [USD] $US 32 pour environ [USD] US$
33 </text> 33 </text>
34 <text name="getting_data" width="138"> 34 <text name="getting_data" width="138">
35 Obtention des données... 35 Obtention des données...
@@ -38,19 +38,19 @@
38 Actuellement, vous avez 38 Actuellement, vous avez
39 </text> 39 </text>
40 <text name="balance_amount"> 40 <text name="balance_amount">
41 [AMT] $L 41 [AMT] L$
42 </text> 42 </text>
43 <text name="buying_label"> 43 <text name="buying_label">
44 Vous achetez 44 Vous achetez
45 </text> 45 </text>
46 <text name="buying_amount"> 46 <text name="buying_amount">
47 [AMT] $L 47 [AMT] L$
48 </text> 48 </text>
49 <text name="total_label"> 49 <text name="total_label">
50 Votre solde sera de 50 Votre solde sera de
51 </text> 51 </text>
52 <text name="total_amount"> 52 <text name="total_amount">
53 [AMT] $L 53 [AMT] L$
54 </text> 54 </text>
55 <text name="purchase_warning_repurchase"> 55 <text name="purchase_warning_repurchase">
56 En confirmant cette transaction, vous achetez uniquement les devises. 56 En confirmant cette transaction, vous achetez uniquement les devises.
@@ -60,9 +60,9 @@ Vous devrez recommencer cette opération.
60 Vous n&apos;achetez pas assez de devises. 60 Vous n&apos;achetez pas assez de devises.
61Veuillez saisir un montant plus élevé. 61Veuillez saisir un montant plus élevé.
62 </text> 62 </text>
63 <button label="Acheter" name="buy_btn" /> 63 <button label="Acheter" name="buy_btn"/>
64 <button label="Annuler" name="cancel_btn" /> 64 <button label="Annuler" name="cancel_btn"/>
65 <string name="buy_currency"> 65 <string name="buy_currency">
66 Acheter [LINDENS] $L pour environ [USD] $US 66 Acheter [LINDENS] L$ pour environ [USD] US$
67 </string> 67 </string>
68</floater> 68</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_buy_land.xml b/linden/indra/newview/skins/default/xui/fr/floater_buy_land.xml
index 815e16a..e2d5946 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_buy_land.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_buy_land.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="buy land" title="Acheter le terrain"> 2<floater name="buy land" title="Acheter le terrain">
3 <text name="region_name_label"> 3 <text name="region_name_label">
4 Région : 4 Région :
@@ -19,7 +19,7 @@
19 (inconnu) 19 (inconnu)
20 </text> 20 </text>
21 <text name="resellable_changeable_label"> 21 <text name="resellable_changeable_label">
22 Terrains achetés dans cette région : 22 Terrain acheté dans cette région :
23 </text> 23 </text>
24 <text name="resellable_clause"> 24 <text name="resellable_clause">
25 Le terrain acheté dans cette région peut être revendu ou pas. 25 Le terrain acheté dans cette région peut être revendu ou pas.
@@ -31,9 +31,9 @@
31 Vous devez accepter le règlement du domaine : 31 Vous devez accepter le règlement du domaine :
32 </text> 32 </text>
33 <text_editor name="covenant_editor"> 33 <text_editor name="covenant_editor">
34 Chargement en cours... 34 Chargement...
35 </text_editor> 35 </text_editor>
36 <check_box label="J&apos;accepte le règlement ci-dessus." name="agree_covenant" /> 36 <check_box label="J&apos;accepte le règlement ci-dessus." name="agree_covenant"/>
37 <text name="info_parcel_label"> 37 <text name="info_parcel_label">
38 Parcelle : 38 Parcelle :
39 </text> 39 </text>
@@ -50,15 +50,15 @@
50 Prix : 50 Prix :
51 </text> 51 </text>
52 <text name="info_price"> 52 <text name="info_price">
53 1500 $L, objets inclus 53 1500 L$, objets inclus
54 </text> 54 </text>
55 <text name="info_action"> 55 <text name="info_action" width="275">
56 Si vous achetez ce terrain : 56 Si vous achetez ce terrain :
57 </text> 57 </text>
58 <text name="error_message"> 58 <text name="error_message">
59 Quelque chose ne va pas. 59 Quelque chose ne va pas.
60 </text> 60 </text>
61 <button label="Aller sur le site" name="error_web" /> 61 <button label="Aller sur le site" name="error_web"/>
62 <text name="account_action"> 62 <text name="account_action">
63 Vous passerez à un compte Premium. 63 Vous passerez à un compte Premium.
64 </text> 64 </text>
@@ -67,44 +67,43 @@
67 </text> 67 </text>
68 <combo_box name="account_level"> 68 <combo_box name="account_level">
69 <combo_item name="US$9.95/month,billedmonthly"> 69 <combo_item name="US$9.95/month,billedmonthly">
70 9,95 $US/mois, facturation mensuelle 70 9,95 US$/mois, facturation mensuelle
71 </combo_item> 71 </combo_item>
72 <combo_item name="US$7.50/month,billedquarterly"> 72 <combo_item name="US$7.50/month,billedquarterly">
73 7,50 $US/mois, facturation trimestrielle 73 7,50 US$/mois, facturation trimestrielle
74 </combo_item> 74 </combo_item>
75 <combo_item name="US$6.00/month,billedannually"> 75 <combo_item name="US$6.00/month,billedannually">
76 6,00 $US/mois, facturation annuelle 76 6,00 US$/mois, facturation annuelle
77 </combo_item> 77 </combo_item>
78 </combo_box> 78 </combo_box>
79 <text name="land_use_action"> 79 <text name="land_use_action" width="210" right="430">
80 Augmentez vos frais d&apos;occupation de terrain à 40 $US/mois. 80 Augmentez vos frais d&apos;occupation de terrain à 40 US$/mois.
81 </text> 81 </text>
82 <text name="land_use_reason"> 82 <text name="land_use_reason">
83 Vous possédez un terrain de 1,309 mètres carrés. 83 Vous possédez un terrain de 1,309 mètres carrés.
84Cette parcelle fait 512 mètres carrés. 84Cette parcelle fait 512 mètres carrés.
85 </text> 85 </text>
86 <text name="purchase_action"> 86 <text name="purchase_action">
87 Payez au résident X 4 000 $L pour le terrain 87 Payez au résident X 4 000 L$ pour le terrain
88 </text> 88 </text>
89 <text name="currency_reason"> 89 <text name="currency_reason">
90 Vous avez 2 100 $L. 90 Vous avez 2 100 L$.
91 </text> 91 </text>
92 <text name="currency_action"> 92 <text name="currency_action">
93 Acheter des $L 93 Acheter des L$
94 </text> 94 </text>
95 <line_editor name="currency_amt"> 95 <line_editor name="currency_amt">
96 1000 96 1000
97 </line_editor> 97 </line_editor>
98 <text name="currency_est"> 98 <text name="currency_est">
99 pour environ [AMOUNT2] $US 99 pour environ [AMOUNT2] US$
100 </text> 100 </text>
101 <text name="currency_balance"> 101 <text name="currency_balance">
102 Vous avez 2 100 $L. 102 Vous avez 2 100 L$.
103 </text> 103 </text>
104 <check_box label="Supprimer [AMOUNT] mètres carrés de votre contribution au groupe." 104 <check_box label="Supprimer [AMOUNT] mètres carrés de votre contribution au groupe." name="remove_contribution"/>
105 name="remove_contribution" /> 105 <button label="Acheter" name="buy_btn"/>
106 <button label="Acheter" name="buy_btn" /> 106 <button label="Annuler" name="cancel_btn"/>
107 <button label="Annuler" name="cancel_btn" />
108 <text name="can_resell"> 107 <text name="can_resell">
109 Peut être revendu. 108 Peut être revendu.
110 </text> 109 </text>
@@ -184,20 +183,20 @@ et la seule fois où vous pouvez acheter une parcelle &apos;Premier Terrain&apos
184 </text> 183 </text>
185 <text name="first_time_but_not_first_land"> 184 <text name="first_time_but_not_first_land">
186 Ceci est votre première acquisition de terrain, mais cette 185 Ceci est votre première acquisition de terrain, mais cette
187parcelle n&apos;est pas réservée aux nouveaux acheteurs. Vous devriez 186parcelle n&apos;est pas réservée aux nouveaux acheteurs. Vous devriez
188peut-être chercher une parcelle &apos;Premier Terrain&apos; moins chère. 187peut-être chercher une parcelle Premier Terrain moins chère.
189 </text> 188 </text>
190 <text name="land_holdings"> 189 <text name="land_holdings">
191 Vous possédez un terrain de [BUYER] mètres carrés. 190 Vous possédez un terrain de [BUYER] m².
192 </text> 191 </text>
193 <text name="pay_to_for_land"> 192 <text name="pay_to_for_land">
194 Payez [AMOUNT] $L à [SELLER] pour ce terrain 193 Payez [AMOUNT] L$ à [SELLER] pour ce terrain
195 </text> 194 </text>
196 <text name="buy_for_US"> 195 <text name="buy_for_US">
197 Acheter [AMOUNT] $L pour environ [AMOUNT2] $US, 196 Acheter [AMOUNT] L$ pour environ [AMOUNT2] US$,
198 </text> 197 </text>
199 <text name="parcel_meters"> 198 <text name="parcel_meters">
200 Cette parcelle fait [AMOUNT] mètres carrés. 199 Cette parcelle fait [AMOUNT] m².
201 </text> 200 </text>
202 <text name="premium_land"> 201 <text name="premium_land">
203 Ce terrain est premium et les frais associés sont de [AMOUNT]/m². 202 Ce terrain est premium et les frais associés sont de [AMOUNT]/m².
@@ -206,7 +205,8 @@ peut-être chercher une parcelle &apos;Premier Terrain&apos; moins chère.
206 Ce terrain est en solde et les frais associés sont de [AMOUNT]/m². 205 Ce terrain est en solde et les frais associés sont de [AMOUNT]/m².
207 </text> 206 </text>
208 <text name="meters_supports_object"> 207 <text name="meters_supports_object">
209 [AMOUNT] m² peuvent prendre en charge [AMOUNT2] objets 208 [AMOUNT] m²
209peuvent contenir [AMOUNT2] prims
210 </text> 210 </text>
211 <text name="sold_with_objects"> 211 <text name="sold_with_objects">
212 vendu avec objets 212 vendu avec objets
@@ -215,21 +215,21 @@ peut-être chercher une parcelle &apos;Premier Terrain&apos; moins chère.
215 Ce groupe, [GROUP], aura besoin de suffisamment de crédit pour payer les frais d&apos;occupation de terrain avant que l&apos;achat de cette parcelle ne soit finalisé. 215 Ce groupe, [GROUP], aura besoin de suffisamment de crédit pour payer les frais d&apos;occupation de terrain avant que l&apos;achat de cette parcelle ne soit finalisé.
216 </text> 216 </text>
217 <text name="have_enough_lindens"> 217 <text name="have_enough_lindens">
218 Vous avez [AMOUNT]$L, ce qui est suffisant pour acheter ce terrain. 218 Vous avez [AMOUNT]L$, ce qui est suffisant pour acheter ce terrain.
219 </text> 219 </text>
220 <text name="not_enough_lindens"> 220 <text name="not_enough_lindens">
221 Vous n&apos;avez que [AMOUNT] $L et vous avez besoin de [AMOUNT2] $L de plus. 221 Vous n&apos;avez que [AMOUNT] L$ et vous avez besoin de [AMOUNT2] L$ de plus.
222 </text> 222 </text>
223 <text name="balance_left"> 223 <text name="balance_left">
224 Après cet achat, il vous restera [AMOUNT] $L. 224 Après cet achat, il vous restera [AMOUNT] L$.
225 </text> 225 </text>
226 <text name="balance_needed"> 226 <text name="balance_needed">
227 Pour avoir les moyens d&apos;acquérir ce terrain, vous devez acheter au moins [AMOUNT] $L. 227 Pour avoir les moyens d&apos;acquérir ce terrain, vous devez acheter au moins [AMOUNT] L$.
228 </text> 228 </text>
229 <string name="no_parcel_selected"> 229 <string name="no_parcel_selected">
230 (aucune parcelle sélectionnée) 230 (aucune parcelle sélectionnée)
231 </string> 231 </string>
232 <string name="buy_currency"> 232 <string name="buy_currency">
233 Acheter [LINDENS] $L pour environ [USD] $US 233 Acheter [LINDENS] L$ pour environ [USD] US$
234 </string> 234 </string>
235</floater> 235</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_buy_object.xml b/linden/indra/newview/skins/default/xui/fr/floater_buy_object.xml
index 52b5101..9e0ce25 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_buy_object.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_buy_object.xml
@@ -1,13 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="contents" title="Acheter une copie de l&apos;objet"> 2<floater name="contents" title="Acheter une copie de l&apos;objet">
3 <text name="contents_text"> 3 <text name="contents_text">
4 et ses contenus : 4 et ses contenus :
5 </text> 5 </text>
6 <text name="buy_text"> 6 <text name="buy_text">
7 Acheter pour [AMOUNT] $L à [NAME] ? 7 Acheter pour [AMOUNT] L$ à [NAME] ?
8 </text> 8 </text>
9 <button label="Annuler" label_selected="Annuler" name="cancel_btn" /> 9 <button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
10 <button label="Acheter" label_selected="Acheter" name="buy_btn" /> 10 <button label="Acheter" label_selected="Acheter" name="buy_btn"/>
11 <string name="title_buy_text"> 11 <string name="title_buy_text">
12 Acheter 12 Acheter
13 </string> 13 </string>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_chat_history.xml b/linden/indra/newview/skins/default/xui/fr/floater_chat_history.xml
index 8bb6c40..26476e3 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_chat_history.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_chat_history.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="chat floater" title="Chat local"> 2<floater name="chat floater" title="Chat local">
3 <string name="ringing"> 3 <string name="ringing">
4 Connexion au chat vocal du Monde en cours… 4 Connexion au chat vocal du Monde en cours…
@@ -10,16 +10,16 @@
10 Voix non disponible à l&apos;endroit où vous êtes 10 Voix non disponible à l&apos;endroit où vous êtes
11 </string> 11 </string>
12 <string name="hang_up"> 12 <string name="hang_up">
13 Déconnecté du chat vocal du Monde 13 Déconnecté du chat vocal
14 </string> 14 </string>
15 <string name="voice_icon"> 15 <string name="voice_icon">
16 icn_voice-localchat.tga 16 icn_voice-localchat.tga
17 </string> 17 </string>
18 <string name="IM_logging_string"> 18 <string name="IM_logging_string">
19 -- Connexion de messagerie instantanée activée -- 19 -- Archivage des IM activé --
20 </string> 20 </string>
21 <string name="IM_end_log_string"> 21 <string name="IM_end_log_string">
22 - Fin da la connexion -- 22 - Fin de l&apos;archivage --
23 </string> 23 </string>
24 <layout_stack name="panels"> 24 <layout_stack name="panels">
25 <layout_panel name="im_contents_panel"> 25 <layout_panel name="im_contents_panel">
@@ -28,14 +28,13 @@
28 Gestes 28 Gestes
29 </combo_item> 29 </combo_item>
30 </combo_box> 30 </combo_box>
31 <check_box label="Afficher le texte ignoré" name="show mutes" /> 31 <check_box label="Afficher le texte ignoré" name="show mutes"/>
32 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" 32 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="Affichez/masquez la liste des intervenants actifs dans cette session IM."/>
33 tool_tip="Cliquez ici pour voir la liste des intervenants actifs dans cette session IM." />
34 <panel name="chat_panel"> 33 <panel name="chat_panel">
35 <string name="gesture_label"> 34 <string name="gesture_label">
36 Gestes 35 Gestes
37 </string> 36 </string>
38 <line_editor label="Cliquez ici pour chatter." name="Chat Editor" /> 37 <line_editor label="Cliquez ici pour chatter." name="Chat Editor"/>
39 <flyout_button label="Dire" name="Say" tool_tip="(Entrée)"> 38 <flyout_button label="Dire" name="Say" tool_tip="(Entrée)">
40 <flyout_button_item name="shout_item"> 39 <flyout_button_item name="shout_item">
41 Crier 40 Crier
@@ -43,6 +42,9 @@
43 <flyout_button_item name="say_item"> 42 <flyout_button_item name="say_item">
44 Dire 43 Dire
45 </flyout_button_item> 44 </flyout_button_item>
45 <flyout_button_item name="whisper_item">
46 Chuchoter
47 </flyout_button_item>
46 </flyout_button> 48 </flyout_button>
47 </panel> 49 </panel>
48 </layout_panel> 50 </layout_panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_color_picker.xml b/linden/indra/newview/skins/default/xui/fr/floater_color_picker.xml
index 38c8a18..adab86d 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_color_picker.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_color_picker.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="ColorPicker" title="Sélecteur de couleurs"> 2<floater name="ColorPicker" title="Choix de texture et de couleur">
3 <text name="r_val_text"> 3 <text name="r_val_text">
4 Rouge : 4 Rouge :
5 </text> 5 </text>
@@ -18,14 +18,14 @@
18 <text name="l_val_text"> 18 <text name="l_val_text">
19 Lum : 19 Lum :
20 </text> 20 </text>
21 <check_box label="Appliquer immédiatement" name="apply_immediate" left="4" width="108"/> 21 <check_box label="Application auto" left="4" name="apply_immediate" width="108"/>
22 <button label="" label_selected="" name="color_pipette" left_delta="138"/> 22 <button label="" label_selected="" left_delta="138" name="color_pipette"/>
23 <button label="Annuler" label_selected="Annuler" name="cancel_btn" /> 23 <button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
24 <button label="Sélectionner" label_selected="Sélectionner" name="select_btn" /> 24 <button label="Sélectionner" label_selected="Sélectionner" name="select_btn"/>
25 <text name="Current color:" left="8"> 25 <text left="8" name="Current color:">
26 Couleur actuelle : 26 Couleur actuelle :
27 </text> 27 </text>
28 <text name="(Drag below to save.)" left="8" width="114"> 28 <text left="8" name="(Drag below to save.)" width="114">
29 (Faire glisser dessous 29 (Faire glisser dessous
30pour enregistrer.) 30pour enregistrer.)
31 </text> 31 </text>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_customize.xml b/linden/indra/newview/skins/default/xui/fr/floater_customize.xml
index 0df5c8e..bd499b7 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_customize.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_customize.xml
@@ -1,525 +1,449 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater customize" title="Apparence" width="511"> 2<floater name="floater customize" title="Apparence" width="513">
3 <tab_container name="customize tab container" tab_min_width="113" width="509"> 3 <tab_container name="customize tab container" tab_min_width="115" width="511">
4 <panel label="Parties du corps" /> 4 <panel label="Parties du corps"/>
5 <panel label="Parties du corps" name="body_parts_placeholder" /> 5 <panel label="Parties du corps" name="body_parts_placeholder"/>
6 <panel label="Silhouette" left="119" name="Shape" width="389"> 6 <panel label="Silhouette" left="119" name="Shape" width="389">
7 <button label="Créer une silhouette" label_selected="Créer une silhouette" 7 <button label="Créer une silhouette" label_selected="Créer une silhouette" name="Create New" width="140"/>
8 name="Create New" width="140" /> 8 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
9 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 9 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
10 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 10 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
11 width="82" /> 11 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
12 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 12 <button label="Corps" label_selected="Corps" name="Body"/>
13 name="Save As" width="105" /> 13 <button label="Tête" label_selected="Tête" name="Head"/>
14 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" 14 <button label="Yeux" label_selected="Yeux" name="Eyes"/>
15 width="82" /> 15 <button label="Oreilles" label_selected="Oreilles" name="Ears"/>
16 <button label="Corps" label_selected="Corps" name="Body" /> 16 <button label="Nez" label_selected="Nez" name="Nose"/>
17 <button label="Tête" label_selected="Tête" name="Head" /> 17 <button label="Bouche" label_selected="Bouche" name="Mouth"/>
18 <button label="Yeux" label_selected="Yeux" name="Eyes" /> 18 <button label="Menton" label_selected="Menton" name="Chin"/>
19 <button label="Oreilles" label_selected="Oreilles" name="Ears" /> 19 <button label="Torse" label_selected="Torse" name="Torso"/>
20 <button label="Nez" label_selected="Nez" name="Nose" /> 20 <button label="Jambes" label_selected="Jambes" name="Legs"/>
21 <button label="Bouche" label_selected="Bouche" name="Mouth" /> 21 <button label="Aléatoire" label_selected="Aléatoire" name="Randomize"/>
22 <button label="Menton" label_selected="Menton" name="Chin" /> 22 <text length="1" name="title" type="string">
23 <button label="Torse" label_selected="Torse" name="Torso" />
24 <button label="Jambes" label_selected="Jambes" name="Legs" />
25 <button label="Aléatoire" label_selected="Aléatoire" name="Randomize" />
26 <text type="string" length="1" name="title">
27 [DESC] 23 [DESC]
28 </text> 24 </text>
29 <text type="string" length="1" name="title_no_modify"> 25 <text length="1" name="title_no_modify" type="string">
30 [DESC]: impossible de modifier 26 [DESC]: impossible de modifier
31 </text> 27 </text>
32 <text type="string" length="1" name="title_loading"> 28 <text length="1" name="title_loading" type="string">
33 [DESC]: en cours de chargement... 29 [DESC]: en cours de chargement...
34 </text> 30 </text>
35 <text type="string" length="1" name="title_not_worn"> 31 <text length="1" name="title_not_worn" type="string">
36 [DESC]: non portée 32 [DESC]: non portée
37 </text> 33 </text>
38 <text type="string" length="1" name="path"> 34 <text length="1" name="path" type="string">
39 Emplacement : [PATH] 35 Emplacement : [PATH]
40 </text> 36 </text>
41 <text type="string" length="1" name="not worn instructions"> 37 <text length="1" name="not worn instructions" type="string">
42 Pour changer de silhouette, faites-en glisser une à partir de votre 38 Pour changer de silhouette, faites-en glisser une à partir de votre
43inventaire. jusqu&apos;à votre avatar. L&apos;autre possibilité est d&apos;en créer 39inventaire jusqu&apos;à votre avatar. Vous pouvez aussi en créer une nouvelle et la porter.
44une nouvelle et de la porter. 40une nouvelle et de la porter.
45 </text> 41 </text>
46 <text type="string" length="1" name="no modify instructions"> 42 <text length="1" name="no modify instructions" type="string">
47 Vous n&apos;avez pas la permission de modifier cet objet. 43 Vous n&apos;avez pas la permission de modifier cet objet.
48 </text> 44 </text>
49 <radio_group name="sex radio"> 45 <radio_group name="sex radio">
50 <radio_item type="string" length="1" name="radio"> 46 <radio_item length="1" name="radio" type="string">
51 Femme 47 Femme
52 </radio_item> 48 </radio_item>
53 <radio_item type="string" length="1" name="radio2"> 49 <radio_item length="1" name="radio2" type="string">
54 Homme 50 Homme
55 </radio_item> 51 </radio_item>
56 </radio_group> 52 </radio_group>
57 </panel> 53 </panel>
58 <panel label="Peau" name="Skin"> 54 <panel label="Peau" name="Skin">
59 <button label="Créer une peau" label_selected="Créer une peau" name="Create New" /> 55 <button label="Créer une peau" label_selected="Créer une peau" name="Create New"/>
60 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 56 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
61 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 57 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
62 width="82" /> 58 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
63 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 59 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
64 name="Save As" width="105" /> 60 <button label="Couleur" label_selected="Couleur" name="Skin Color" width="84"/>
65 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" 61 <button label="Détails visage" label_selected="Détails visage" name="Face Detail" width="84"/>
66 width="82" /> 62 <button label="Maquillage" label_selected="Maquillage" name="Makeup" width="84"/>
67 <button label="Couleur" label_selected="Couleur" name="Skin Color" width="84" /> 63 <button label="Détails corps" label_selected="Détails corps" name="Body Detail" width="84"/>
68 <button label="Détails visage" label_selected="Détails visage" name="Face Detail" 64 <button label="Aléatoire" label_selected="Aléatoire" name="Randomize" width="84"/>
69 width="84" /> 65 <text length="1" name="title" type="string">
70 <button label="Maquillage" label_selected="Maquillage" name="Makeup" width="84" />
71 <button label="Détails corps" label_selected="Détails corps" name="Body Detail"
72 width="84" />
73 <button label="Aléatoire" label_selected="Aléatoire" name="Randomize" width="84" />
74 <text type="string" length="1" name="title">
75 [DESC] 66 [DESC]
76 </text> 67 </text>
77 <text type="string" length="1" name="title_no_modify"> 68 <text length="1" name="title_no_modify" type="string">
78 [DESC]: impossible de modifier 69 [DESC]: impossible de modifier
79 </text> 70 </text>
80 <text type="string" length="1" name="title_loading"> 71 <text length="1" name="title_loading" type="string">
81 [DESC]: en cours de chargement... 72 [DESC]: en cours de chargement...
82 </text> 73 </text>
83 <text type="string" length="1" name="title_not_worn"> 74 <text length="1" name="title_not_worn" type="string">
84 [DESC]: non portée 75 [DESC]: non portée
85 </text> 76 </text>
86 <text type="string" length="1" name="path"> 77 <text length="1" name="path" type="string">
87 Emplacement : [PATH] 78 Emplacement : [PATH]
88 </text> 79 </text>
89 <text type="string" length="1" name="not worn instructions"> 80 <text length="1" name="not worn instructions" type="string">
90 Pour changer de peau, faites-en glisser une à partir de votre inventaire. 81 Pour changer de peau, faites-en glisser une à partir de votre inventaire.
91L&apos;autre possibilité est d&apos;en créer une nouvelle et de la porter. 82Vous pouvez aussi en créer une nouvelle et la porter.
92 </text> 83 </text>
93 <text type="string" length="1" name="no modify instructions"> 84 <text length="1" name="no modify instructions" type="string">
94 Vous n&apos;avez pas la permission de modifier cet objet. 85 Vous n&apos;avez pas la permission de modifier cet objet.
95 </text> 86 </text>
96 <texture_picker label="Tatouages tête" name="Head Tattoos" 87 <texture_picker label="Tatouages tête" name="Head Tattoos" tool_tip="Cliquez pour sélectionner une image" width="78"/>
97 tool_tip="Cliquez pour sélectionner une image" width="78" /> 88 <texture_picker label="Tatouages haut" name="Upper Tattoos" tool_tip="Cliquez pour sélectionner une image" width="78"/>
98 <texture_picker label="Tatouages haut" name="Upper Tattoos" 89 <texture_picker label="Tatouages bas" name="Lower Tattoos" tool_tip="Cliquez pour sélectionner une image" width="78"/>
99 tool_tip="Cliquez pour sélectionner une image" width="78" />
100 <texture_picker label="Tatouages bas" name="Lower Tattoos"
101 tool_tip="Cliquez pour sélectionner une image" width="78" />
102 </panel> 90 </panel>
103 <panel label="Cheveux" name="Hair"> 91 <panel label="Cheveux" name="Hair">
104 <button label="Créer des cheveux" label_selected="Créer des cheveux" 92 <button label="Créer des cheveux" label_selected="Créer des cheveux" name="Create New"/>
105 name="Create New" /> 93 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
106 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 94 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
107 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 95 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
108 width="82" /> 96 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
109 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 97 <button label="Couleur" label_selected="Couleur" name="Color"/>
110 name="Save As" width="105" /> 98 <button label="Style" label_selected="Style" name="Style"/>
111 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" 99 <button label="Sourcils" label_selected="Sourcils" name="Eyebrows"/>
112 width="82" /> 100 <button label="Pilosité" label_selected="Pilosité" name="Facial"/>
113 <button label="Couleur" label_selected="Couleur" name="Color" /> 101 <button label="Aléatoire" label_selected="Aléatoire" name="Randomize"/>
114 <button label="Style" label_selected="Style" name="Style" /> 102 <text length="1" name="title" type="string">
115 <button label="Sourcils" label_selected="Sourcils" name="Eyebrows" />
116 <button label="Pilosité" label_selected="Pilosité" name="Facial" />
117 <button label="Aléatoire" label_selected="Aléatoire" name="Randomize" />
118 <text type="string" length="1" name="title">
119 [DESC] 103 [DESC]
120 </text> 104 </text>
121 <text type="string" length="1" name="title_no_modify"> 105 <text length="1" name="title_no_modify" type="string">
122 [DESC]: impossible de modifier 106 [DESC]: impossible de modifier
123 </text> 107 </text>
124 <text type="string" length="1" name="title_loading"> 108 <text length="1" name="title_loading" type="string">
125 [DESC]: en cours de chargement... 109 [DESC]: en cours de chargement...
126 </text> 110 </text>
127 <text type="string" length="1" name="title_not_worn"> 111 <text length="1" name="title_not_worn" type="string">
128 [DESC]: non portés 112 [DESC]: non portés
129 </text> 113 </text>
130 <text type="string" length="1" name="path"> 114 <text length="1" name="path" type="string">
131 Emplacement : [PATH] 115 Emplacement : [PATH]
132 </text> 116 </text>
133 <text type="string" length="1" name="not worn instructions"> 117 <text length="1" name="not worn instructions" type="string">
134 Pour changer de chevelure, faites-en glisser une de votre inventaire 118 Pour changer de chevelure, faites-en glisser une de votre inventaire
135jusqu&apos;à votre avatar. L&apos;autre possibilité est d&apos;en créer une 119jusqu&apos;à votre avatar. Vous pouvez aussi en créer une
136nouvelle et de la porter. 120nouvelle et la porter.
137 </text> 121 </text>
138 <text type="string" length="1" name="no modify instructions"> 122 <text length="1" name="no modify instructions" type="string">
139 Vous n&apos;avez pas la permission de modifier cet objet. 123 Vous n&apos;avez pas la permission de modifier cet objet.
140 </text> 124 </text>
141 <texture_picker label="Texture" name="Texture" tool_tip="Cliquez pour sélectionner une image" /> 125 <texture_picker label="Texture" name="Texture" tool_tip="Cliquez pour sélectionner une image"/>
142 </panel> 126 </panel>
143 <panel label="Yeux" name="Eyes"> 127 <panel label="Yeux" name="Eyes">
144 <button label="Créer des yeux" label_selected="Créer des yeux" name="Create New" /> 128 <button label="Créer des yeux" label_selected="Créer des yeux" name="Create New"/>
145 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 129 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
146 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 130 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
147 width="82" /> 131 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
148 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 132 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
149 name="Save As" width="105" /> 133 <button label="Aléatoire" label_selected="Aléatoire" name="Randomize"/>
150 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" 134 <text length="1" name="title" type="string">
151 width="82" />
152 <button label="Aléatoire" label_selected="Aléatoire" name="Randomize" />
153 <text type="string" length="1" name="title">
154 [DESC] 135 [DESC]
155 </text> 136 </text>
156 <text type="string" length="1" name="title_no_modify"> 137 <text length="1" name="title_no_modify" type="string">
157 [DESC]: impossible de modifier 138 [DESC]: impossible de modifier
158 </text> 139 </text>
159 <text type="string" length="1" name="title_loading"> 140 <text length="1" name="title_loading" type="string">
160 [DESC]: en cours de chargement... 141 [DESC]: en cours de chargement...
161 </text> 142 </text>
162 <text type="string" length="1" name="title_not_worn"> 143 <text length="1" name="title_not_worn" type="string">
163 [DESC]: non portés 144 [DESC]: non portés
164 </text> 145 </text>
165 <text type="string" length="1" name="path"> 146 <text length="1" name="path" type="string">
166 Emplacement : [PATH] 147 Emplacement : [PATH]
167 </text> 148 </text>
168 <text type="string" length="1" name="not worn instructions"> 149 <text length="1" name="not worn instructions" type="string">
169 Pour changer vos yeux, faites-les glisser de votre inventaire 150 Pour changer vos yeux, faites-les glisser de votre inventaire
170jusqu&apos;à votre avatar. L&apos;autre possibilité est 151jusqu&apos;à votre avatar. Vous pouvez aussi en créer de nouveaux et les porter.
171d&apos;en créer de nouveaux et de les porter.
172 </text> 152 </text>
173 <text type="string" length="1" name="no modify instructions"> 153 <text length="1" name="no modify instructions" type="string">
174 Vous n&apos;avez pas la permission de modifier cet objet. 154 Vous n&apos;avez pas la permission de modifier cet objet.
175 </text> 155 </text>
176 <texture_picker label="Iris" name="Iris" tool_tip="Cliquez pour sélectionner une image" /> 156 <texture_picker label="Iris" name="Iris" tool_tip="Cliquez pour sélectionner une image"/>
177 </panel> 157 </panel>
178 <panel label="Vêtements" /> 158 <panel label="Vêtements"/>
179 <panel label="Habits" name="clothes_placeholder" /> 159 <panel label="Habits" name="clothes_placeholder"/>
180 <panel label="Chemise" name="Shirt"> 160 <panel label="Chemise" name="Shirt">
181 <button label="Créer une chemise" label_selected="Créer une chemise" 161 <button label="Créer une chemise" label_selected="Créer une chemise" name="Create New"/>
182 name="Create New" /> 162 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
183 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 163 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
184 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 164 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
185 width="82" /> 165 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
186 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 166 <text length="1" name="title" type="string">
187 name="Save As" width="105" />
188 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert"
189 width="82" />
190 <text type="string" length="1" name="title">
191 [DESC] 167 [DESC]
192 </text> 168 </text>
193 <text type="string" length="1" name="title_no_modify"> 169 <text length="1" name="title_no_modify" type="string">
194 [DESC]: impossible de modifier 170 [DESC]: impossible de modifier
195 </text> 171 </text>
196 <text type="string" length="1" name="title_loading"> 172 <text length="1" name="title_loading" type="string">
197 [DESC]: en cours de chargement... 173 [DESC]: en cours de chargement...
198 </text> 174 </text>
199 <text type="string" length="1" name="title_not_worn"> 175 <text length="1" name="title_not_worn" type="string">
200 [DESC]: non porté 176 [DESC]: non portée
201 </text> 177 </text>
202 <text type="string" length="1" name="path"> 178 <text length="1" name="path" type="string">
203 Emplacement : [PATH] 179 Emplacement : [PATH]
204 </text> 180 </text>
205 <text type="string" length="1" name="not worn instructions"> 181 <text length="1" name="not worn instructions" type="string">
206 Pour changer de chemise, faites-en glisser une de votre inventaire 182 Pour changer de chemise, faites-en glisser une de votre inventaire
207jusqu&apos;à votre avatar. L&apos;autre possibilité est 183jusqu&apos;à votre avatar. Vous pouvez aussi en créer une nouvelle et la porter.
208d&apos;en créer une nouvelle et de la porter.
209 </text> 184 </text>
210 <text type="string" length="1" name="no modify instructions"> 185 <text length="1" name="no modify instructions" type="string">
211 Vous n&apos;avez pas la permission de modifier cet objet. 186 Vous n&apos;avez pas la permission de modifier cet objet.
212 </text> 187 </text>
213 <color_swatch label="Couleur/Teinte" name="Color/Tint" 188 <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
214 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74" /> 189 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
215 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"
216 width="74" />
217 </panel> 190 </panel>
218 <panel label="Pantalon" name="Pants"> 191 <panel label="Pantalon" name="Pants">
219 <button label="Créer un pantalon" label_selected="Créer un pantalon" 192 <button label="Créer un pantalon" label_selected="Créer un pantalon" name="Create New"/>
220 name="Create New" /> 193 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
221 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 194 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
222 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 195 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
223 width="82" /> 196 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
224 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 197 <text length="1" name="title" type="string">
225 name="Save As" width="105" />
226 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert"
227 width="82" />
228 <text type="string" length="1" name="title">
229 [DESC] 198 [DESC]
230 </text> 199 </text>
231 <text type="string" length="1" name="title_no_modify"> 200 <text length="1" name="title_no_modify" type="string">
232 [DESC]: impossible de modifier 201 [DESC]: impossible de modifier
233 </text> 202 </text>
234 <text type="string" length="1" name="title_loading"> 203 <text length="1" name="title_loading" type="string">
235 [DESC]: en cours de chargement... 204 [DESC]: en cours de chargement...
236 </text> 205 </text>
237 <text type="string" length="1" name="title_not_worn"> 206 <text length="1" name="title_not_worn" type="string">
238 [DESC]: non porté 207 [DESC]: non porté
239 </text> 208 </text>
240 <text type="string" length="1" name="path"> 209 <text length="1" name="path" type="string">
241 Emplacement : [PATH] 210 Emplacement : [PATH]
242 </text> 211 </text>
243 <text type="string" length="1" name="not worn instructions"> 212 <text length="1" name="not worn instructions" type="string">
244 Pour changer de pantalon, faites-en glisser un de votre inventaire 213 Pour changer de pantalon, faites-en glisser un de votre inventaire
245jusqu&apos;à votre avatar. L&apos;autre possibilité est 214jusqu&apos;à votre avatar. Vous pouvez aussi en créer un nouveau et le porter.
246d&apos;en créer un nouveau et de le porter.
247 </text> 215 </text>
248 <text type="string" length="1" name="no modify instructions"> 216 <text length="1" name="no modify instructions" type="string">
249 Vous n&apos;avez pas la permission de modifier cet objet. 217 Vous n&apos;avez pas la permission de modifier cet objet.
250 </text> 218 </text>
251 <color_swatch label="Couleur/Teinte" name="Color/Tint" 219 <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
252 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74" /> 220 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
253 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"
254 width="74" />
255 </panel> 221 </panel>
256 <panel label="Chaussures" name="Shoes"> 222 <panel label="Chaussures" name="Shoes">
257 <button label="Créer des chaussures" label_selected="Créer des chaussures" 223 <button label="Créer des chaussures" label_selected="Créer des chaussures" name="Create New" width="140"/>
258 name="Create New" width="140" /> 224 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
259 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 225 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
260 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 226 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
261 width="82" /> 227 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
262 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 228 <text length="1" name="title" type="string">
263 name="Save As" width="105" />
264 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert"
265 width="82" />
266 <text type="string" length="1" name="title">
267 [DESC] 229 [DESC]
268 </text> 230 </text>
269 <text type="string" length="1" name="title_no_modify"> 231 <text length="1" name="title_no_modify" type="string">
270 [DESC]: impossible de modifier 232 [DESC]: impossible de modifier
271 </text> 233 </text>
272 <text type="string" length="1" name="title_loading"> 234 <text length="1" name="title_loading" type="string">
273 [DESC]: en cours de chargement... 235 [DESC]: en cours de chargement...
274 </text> 236 </text>
275 <text type="string" length="1" name="title_not_worn"> 237 <text length="1" name="title_not_worn" type="string">
276 [DESC]: non portées 238 [DESC]: non portées
277 </text> 239 </text>
278 <text type="string" length="1" name="path"> 240 <text length="1" name="path" type="string">
279 Emplacement : [PATH] 241 Emplacement : [PATH]
280 </text> 242 </text>
281 <text type="string" length="1" name="not worn instructions"> 243 <text length="1" name="not worn instructions" type="string">
282 Pour changer de chaussures, faites-en glisser une paire de votre 244 Pour changer de chaussures, faites-en glisser une paire de votre
283inventaire jusqu&apos;à votre avatar. L&apos;autre possibilité est d&apos;en créer une 245inventaire jusqu&apos;à votre avatar. Vous pouvez aussi en créer une
284nouvelle paire et de la porter. 246nouvelle paire et la porter.
285 </text> 247 </text>
286 <text type="string" length="1" name="no modify instructions"> 248 <text length="1" name="no modify instructions" type="string">
287 Vous n&apos;avez pas la permission de modifier cet objet. 249 Vous n&apos;avez pas la permission de modifier cet objet.
288 </text> 250 </text>
289 <color_swatch label="Couleur/Teinte" name="Color/Tint" 251 <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
290 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74" /> 252 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
291 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"
292 width="74" />
293 </panel> 253 </panel>
294 <panel label="Chaussettes" name="Socks"> 254 <panel label="Chaussettes" name="Socks">
295 <button label="Créer des chaussettes" label_selected="Créer des chaussettes" 255 <button label="Créer des chaussettes" label_selected="Créer des chaussettes" name="Create New" width="140"/>
296 name="Create New" width="140" /> 256 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
297 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 257 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
298 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 258 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
299 width="82" /> 259 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
300 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 260 <text length="1" name="title" type="string">
301 name="Save As" width="105" />
302 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert"
303 width="82" />
304 <text type="string" length="1" name="title">
305 [DESC] 261 [DESC]
306 </text> 262 </text>
307 <text type="string" length="1" name="title_no_modify"> 263 <text length="1" name="title_no_modify" type="string">
308 [DESC]: impossible de modifier 264 [DESC]: impossible de modifier
309 </text> 265 </text>
310 <text type="string" length="1" name="title_loading"> 266 <text length="1" name="title_loading" type="string">
311 [DESC]: en cours de chargement... 267 [DESC]: en cours de chargement...
312 </text> 268 </text>
313 <text type="string" length="1" name="title_not_worn"> 269 <text length="1" name="title_not_worn" type="string">
314 [DESC]: non portées 270 [DESC]: non portées
315 </text> 271 </text>
316 <text type="string" length="1" name="path"> 272 <text length="1" name="path" type="string">
317 Emplacement : [PATH] 273 Emplacement : [PATH]
318 </text> 274 </text>
319 <text type="string" length="1" name="not worn instructions"> 275 <text length="1" name="not worn instructions" type="string">
320 Pour changer de chaussettes, faites-en glisser une paire de votre 276 Pour changer de chaussettes, faites-en glisser une paire de votre
321inventaire jusqu&apos;à votre avatar. L&apos;autre possibilité est d&apos;en créer une 277inventaire jusqu&apos;à votre avatar. Vous pouvez aussi en créer une
322nouvelle paire et de la porter. 278nouvelle paire et la porter.
323 </text> 279 </text>
324 <text type="string" length="1" name="no modify instructions"> 280 <text length="1" name="no modify instructions" type="string">
325 Vous n&apos;avez pas la permission de modifier cet objet. 281 Vous n&apos;avez pas la permission de modifier cet objet.
326 </text> 282 </text>
327 <color_swatch label="Couleur/Teinte" name="Color/Tint" 283 <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
328 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74" /> 284 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
329 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"
330 width="74" />
331 </panel> 285 </panel>
332 <panel label="Veste" name="Jacket"> 286 <panel label="Veste" name="Jacket">
333 <button label="Créer une veste" label_selected="Créer une veste" name="Create New" /> 287 <button label="Créer une veste" label_selected="Créer une veste" name="Create New"/>
334 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 288 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
335 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 289 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
336 width="82" /> 290 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
337 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 291 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
338 name="Save As" width="105" /> 292 <text length="1" name="title" type="string">
339 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert"
340 width="82" />
341 <text type="string" length="1" name="title">
342 [DESC] 293 [DESC]
343 </text> 294 </text>
344 <text type="string" length="1" name="title_no_modify"> 295 <text length="1" name="title_no_modify" type="string">
345 [DESC]: impossible de modifier 296 [DESC]: impossible de modifier
346 </text> 297 </text>
347 <text type="string" length="1" name="title_loading"> 298 <text length="1" name="title_loading" type="string">
348 [DESC]: en cours de chargement... 299 [DESC]: en cours de chargement...
349 </text> 300 </text>
350 <text type="string" length="1" name="title_not_worn"> 301 <text length="1" name="title_not_worn" type="string">
351 [DESC]: non portée 302 [DESC]: non portée
352 </text> 303 </text>
353 <text type="string" length="1" name="path"> 304 <text length="1" name="path" type="string">
354 Emplacement : [PATH] 305 Emplacement : [PATH]
355 </text> 306 </text>
356 <text type="string" length="1" name="not worn instructions"> 307 <text length="1" name="not worn instructions" type="string">
357 Pour changer de veste, faites-en glisser une de votre inventaire 308 Pour changer de veste, faites-en glisser une de votre inventaire
358jusqu&apos;à votre avatar. L&apos;autre possibilité est d&apos;en créer une 309jusqu&apos;à votre avatar. Vous pouvez aussi en créer une
359nouvelle et de la porter. 310nouvelle et la porter.
360 </text> 311 </text>
361 <text type="string" length="1" name="no modify instructions"> 312 <text length="1" name="no modify instructions" type="string">
362 Vous n&apos;avez pas la permission de modifier cet objet. 313 Vous n&apos;avez pas la permission de modifier cet objet.
363 </text> 314 </text>
364 <color_swatch label="Couleur/Teinte" name="Color/Tint" 315 <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="81"/>
365 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="81" /> 316 <texture_picker label="Tissu (dessus)" name="Upper Fabric" tool_tip="Cliquez pour sélectionner une image" width="81"/>
366 <texture_picker label="Tissu (dessus)" name="Upper Fabric" 317 <texture_picker label="Tissu (dessous)" name="Lower Fabric" tool_tip="Cliquez pour sélectionner une image" width="81"/>
367 tool_tip="Cliquez pour sélectionner une image" width="81" />
368 <texture_picker label="Tissu (dessous)" name="Lower Fabric"
369 tool_tip="Cliquez pour sélectionner une image" width="81" />
370 </panel> 318 </panel>
371 <panel label="Gants" name="Gloves"> 319 <panel label="Gants" name="Gloves">
372 <button label="Créer des gants" label_selected="Créer des gants" name="Create New" /> 320 <button label="Créer des gants" label_selected="Créer des gants" name="Create New"/>
373 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 321 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
374 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 322 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
375 width="82" /> 323 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
376 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 324 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
377 name="Save As" width="105" /> 325 <text length="1" name="title" type="string">
378 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert"
379 width="82" />
380 <text type="string" length="1" name="title">
381 [DESC] 326 [DESC]
382 </text> 327 </text>
383 <text type="string" length="1" name="title_no_modify"> 328 <text length="1" name="title_no_modify" type="string">
384 [DESC]: impossible de modifier 329 [DESC]: impossible de modifier
385 </text> 330 </text>
386 <text type="string" length="1" name="title_loading"> 331 <text length="1" name="title_loading" type="string">
387 [DESC]: en cours de chargement... 332 [DESC]: en cours de chargement...
388 </text> 333 </text>
389 <text type="string" length="1" name="title_not_worn"> 334 <text length="1" name="title_not_worn" type="string">
390 [DESC]: non portés 335 [DESC]: non portés
391 </text> 336 </text>
392 <text type="string" length="1" name="path"> 337 <text length="1" name="path" type="string">
393 Emplacement : [PATH] 338 Emplacement : [PATH]
394 </text> 339 </text>
395 <text type="string" length="1" name="not worn instructions"> 340 <text length="1" name="not worn instructions" type="string">
396 Pour changer de gants, faites-en glisser une paire à partir de votre 341 Pour changer de gants, faites-en glisser une paire à partir de votre
397inventaire. L&apos;autre possibilité est d&apos;en créer une nouvelle paire 342inventaire. Vous pouvez aussi en créer une nouvelle paire
398et de la porter. 343et la porter.
399 </text> 344 </text>
400 <text type="string" length="1" name="no modify instructions"> 345 <text length="1" name="no modify instructions" type="string">
401 Vous n&apos;avez pas la permission de modifier cet objet. 346 Vous n&apos;avez pas la permission de modifier cet objet.
402 </text> 347 </text>
403 <color_swatch label="Couleur/Teinte" name="Color/Tint" 348 <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
404 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74" /> 349 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
405 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"
406 width="74" />
407 </panel> 350 </panel>
408 <panel label="Tricot de peau" name="Undershirt"> 351 <panel label="Tricot" name="Undershirt">
409 <button label="Créer un tricot de peau" label_selected="Créer un tricot" 352 <button label="Créer un tricot" label_selected="Créer un tricot" name="Create New"/>
410 name="Create New" /> 353 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
411 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 354 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
412 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 355 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
413 width="82" /> 356 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
414 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 357 <text length="1" name="title" type="string">
415 name="Save As" width="105" />
416 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert"
417 width="82" />
418 <text type="string" length="1" name="title">
419 [DESC] 358 [DESC]
420 </text> 359 </text>
421 <text type="string" length="1" name="title_no_modify"> 360 <text length="1" name="title_no_modify" type="string">
422 [DESC]: impossible de modifier 361 [DESC]: impossible de modifier
423 </text> 362 </text>
424 <text type="string" length="1" name="title_loading"> 363 <text length="1" name="title_loading" type="string">
425 [DESC]: en cours de chargement... 364 [DESC]: en cours de chargement...
426 </text> 365 </text>
427 <text type="string" length="1" name="title_not_worn"> 366 <text length="1" name="title_not_worn" type="string">
428 [DESC]: non porté 367 [DESC]: non porté
429 </text> 368 </text>
430 <text type="string" length="1" name="path"> 369 <text length="1" name="path" type="string">
431 Emplacement : [PATH] 370 Emplacement : [PATH]
432 </text> 371 </text>
433 <text type="string" length="1" name="not worn instructions"> 372 <text length="1" name="not worn instructions" type="string">
434 Pour changer de tricot, faites-en glisser un à partir de votre inventaire. 373 Pour changer de tricot, faites-en glisser un à partir de votre inventaire.
435L&apos;autre possibilité est d&apos;en créer un nouveau et de le porter. 374Vous pouvez aussi en créer un nouveau et le porter.
436 </text> 375 </text>
437 <text type="string" length="1" name="no modify instructions"> 376 <text length="1" name="no modify instructions" type="string">
438 Vous n&apos;avez pas la permission de modifier cet objet. 377 Vous n&apos;avez pas la permission de modifier cet objet.
439 </text> 378 </text>
440 <color_swatch label="Couleur/Teinte" name="Color/Tint" 379 <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
441 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74" /> 380 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
442 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"
443 width="74" />
444 </panel> 381 </panel>
445 <panel label="Sous-vêtements" name="Underpants"> 382 <panel label="Sous-vêtements" name="Underpants">
446 <button label="Créer des sous-vêtements" label_selected="Créer des sous-vêtements" 383 <button label="Créer des sous-vêtements" label_selected="Créer des sous-vêtements" name="Create New" width="166"/>
447 name="Create New" /> 384 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
448 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 385 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
449 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 386 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
450 width="82" /> 387 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
451 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 388 <text length="1" name="title" type="string">
452 name="Save As" width="105" />
453 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert"
454 width="82" />
455 <text type="string" length="1" name="title">
456 [DESC] 389 [DESC]
457 </text> 390 </text>
458 <text type="string" length="1" name="title_no_modify"> 391 <text length="1" name="title_no_modify" type="string">
459 [DESC]: impossible de modifier 392 [DESC]: impossible de modifier
460 </text> 393 </text>
461 <text type="string" length="1" name="title_loading"> 394 <text length="1" name="title_loading" type="string">
462 [DESC]: en cours de chargement... 395 [DESC]: en cours de chargement...
463 </text> 396 </text>
464 <text type="string" length="1" name="title_not_worn"> 397 <text length="1" name="title_not_worn" type="string">
465 [DESC]: non portés 398 [DESC]: non portés
466 </text> 399 </text>
467 <text type="string" length="1" name="path"> 400 <text length="1" name="path" type="string">
468 Emplacement : [PATH] 401 Emplacement : [PATH]
469 </text> 402 </text>
470 <text type="string" length="1" name="not worn instructions"> 403 <text length="1" name="not worn instructions" type="string">
471 Pour changer de sous-vêtement, faites-en glisser un à partir de votre 404 Pour changer de sous-vêtement, faites-en glisser une paire à partir de
472inventaire. L&apos;autre possibilité est d&apos;en créer un nouveau et de le porter. 405votre inventaire. Vous pouvez aussi en créer des nouveaux et les porter.
473 </text> 406 </text>
474 <text type="string" length="1" name="no modify instructions"> 407 <text length="1" name="no modify instructions" type="string">
475 Vous n&apos;avez pas la permission de modifier cet objet. 408 Vous n&apos;avez pas la permission de modifier cet objet.
476 </text> 409 </text>
477 <color_swatch label="Couleur/Teinte" name="Color/Tint" 410 <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
478 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74" /> 411 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
479 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"
480 width="74" />
481 </panel> 412 </panel>
482 <panel label="Jupe" name="Skirt"> 413 <panel label="Jupe" name="Skirt">
483 <button label="Créer une jupe" label_selected="Créer une jupe" name="Create New" /> 414 <button label="Créer une jupe" label_selected="Créer une jupe" name="Create New"/>
484 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82" /> 415 <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
485 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" 416 <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
486 width="82" /> 417 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
487 <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" 418 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
488 name="Save As" width="105" /> 419 <text length="1" name="title" type="string">
489 <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert"
490 width="82" />
491 <text type="string" length="1" name="title">
492 [DESC] 420 [DESC]
493 </text> 421 </text>
494 <text type="string" length="1" name="title_no_modify"> 422 <text length="1" name="title_no_modify" type="string">
495 [DESC]: impossible de modifier 423 [DESC]: impossible de modifier
496 </text> 424 </text>
497 <text type="string" length="1" name="title_loading"> 425 <text length="1" name="title_loading" type="string">
498 [DESC]: en cours de chargement... 426 [DESC]: en cours de chargement...
499 </text> 427 </text>
500 <text type="string" length="1" name="title_not_worn"> 428 <text length="1" name="title_not_worn" type="string">
501 [DESC]: non portée 429 [DESC]: non portée
502 </text> 430 </text>
503 <text type="string" length="1" name="path"> 431 <text length="1" name="path" type="string">
504 Emplacement : [PATH] 432 Emplacement : [PATH]
505 </text> 433 </text>
506 <text type="string" length="1" name="not worn instructions"> 434 <text length="1" name="not worn instructions" type="string">
507 Pour changer de jupe, faites-en glisser une à partir de votre inventaire. 435 Pour changer de jupe, faites-en glisser une à partir de votre inventaire.
508L&apos;autre possibilité est d&apos;en créer une nouvelle et de la porter. 436Vous pouvez aussi en créer une nouvelle et la porter.
509 </text> 437 </text>
510 <text type="string" length="1" name="no modify instructions"> 438 <text length="1" name="no modify instructions" type="string">
511 Vous n&apos;avez pas la permission de modifier cet objet. 439 Vous n&apos;avez pas la permission de modifier cet objet.
512 </text> 440 </text>
513 <color_swatch label="Couleur/Teinte" name="Color/Tint" 441 <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
514 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74" /> 442 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
515 <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"
516 width="74" />
517 </panel> 443 </panel>
518 </tab_container> 444 </tab_container>
519 <scroll_container left="214" name="panel_container" /> 445 <scroll_container left="216" name="panel_container"/>
520 <button label="Créer un ensemble" label_selected="Créer un ensemble" 446 <button label="Créer un ensemble" label_selected="Créer un ensemble" name="Make Outfit" right="-252" width="115"/>
521 name="Make Outfit" right="-252" width="115" /> 447 <button label="Tout enregistrer" label_selected="Tout enregistrer" name="Save All" right="-131" width="115"/>
522 <button label="Tout enregistrer" label_selected="Tout enregistrer" name="Save All" 448 <button label="Fermer" label_selected="Fermer" name="Close" width="115"/>
523 right="-131" width="115" />
524 <button label="Fermer" label_selected="Fermer" name="Close" width="115" />
525</floater> 449</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_directory.xml b/linden/indra/newview/skins/default/xui/fr/floater_directory.xml
index 2b08d05..b12b1fb 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_directory.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_directory.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="directory" title="Rechercher dans Second Life"> 2<floater name="directory" title="Rechercher dans Second Life">
3 <tab_container name="Directory Tabs"> 3 <tab_container name="Directory Tabs">
4 <panel label="Tout" name="find_all_panel"> 4 <panel label="Tout" name="find_all_panel">
@@ -8,13 +8,13 @@
8 <string name="not_found_text"> 8 <string name="not_found_text">
9 Aucun résultat. 9 Aucun résultat.
10 </string> 10 </string>
11 <button label="Précédente" name="back_btn" /> 11 <button label="Précédente" name="back_btn"/>
12 <button label="Suivante" name="forward_btn" /> 12 <button label="Suivante" name="forward_btn"/>
13 <line_editor label="Rechercher" name="search_editor" tool_tip="Rechercher dans Second Life" /> 13 <line_editor label="Rechercher" name="search_editor" tool_tip="Rechercher dans Second Life"/>
14 <button label="Rechercher" name="search_btn" width="80" /> 14 <button label="Rechercher" name="search_btn" width="80"/>
15 <combo_box name="Category"> 15 <combo_box name="Category">
16 <combo_item name="AnyCategory"> 16 <combo_item name="AnyCategory">
17 Toute catégorie 17 Toutes catégories
18 </combo_item> 18 </combo_item>
19 <combo_item name="Events"> 19 <combo_item name="Events">
20 Événements 20 Événements
@@ -23,16 +23,16 @@
23 Groupes 23 Groupes
24 </combo_item> 24 </combo_item>
25 <combo_item name="People"> 25 <combo_item name="People">
26 Personnes 26 Résidents
27 </combo_item> 27 </combo_item>
28 <combo_item name="Places"> 28 <combo_item name="Places">
29 Endroits 29 Lieux
30 </combo_item> 30 </combo_item>
31 <combo_item name="Wiki"> 31 <combo_item name="Wiki">
32 Wiki 32 Wiki
33 </combo_item> 33 </combo_item>
34 </combo_box> 34 </combo_box>
35 <check_box label="Inclure le contenu pour adultes" name="mature_check" /> 35 <check_box label="Inclure le contenu pour adultes" name="mature_check"/>
36 <string name="loading_text"> 36 <string name="loading_text">
37 Chargement en cours... 37 Chargement en cours...
38 </string> 38 </string>
@@ -53,56 +53,55 @@
53 <string name="not_found_text"> 53 <string name="not_found_text">
54 Aucun résultat. 54 Aucun résultat.
55 </string> 55 </string>
56 <button label="Parcourir" label_selected="Parcourir" name="Browse" /> 56 <button label="Parcourir" label_selected="Parcourir" name="Browse"/>
57 <scroll_list name="results"> 57 <scroll_list name="results">
58 <column label="" name="icon" /> 58 <column label="" name="icon"/>
59 <column label="" name="type" /> 59 <column label="" name="type"/>
60 <column label="Nom" name="name" /> 60 <column label="Nom" name="name"/>
61 <column label="Prix" name="price" /> 61 <column label="Prix" name="price"/>
62 </scroll_list> 62 </scroll_list>
63 <button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev" /> 63 <button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
64 <button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;" /> 64 <button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
65 <text name="find" width="63"> 65 <text name="find" width="63">
66 Trouver : 66 Trouver :
67 </text> 67 </text>
68 <line_editor left_delta="51" name="name" width="128" /> 68 <line_editor left_delta="51" name="name" width="128"/>
69 <check_box label="Inclure le contenu pour adultes" name="incmature" /> 69 <check_box label="Inclure le contenu pour adultes" name="incmature"/>
70 <combo_box left="195" name="Category"> 70 <combo_box left="195" name="Category">
71 <combo_item name="AnyCategory"> 71 <combo_item name="AnyCategory">
72 Toute catégorie 72 Toutes catégories
73 </combo_item> 73 </combo_item>
74 <combo_item name="Shopping"> 74 <combo_item name="Shopping">
75 Shopping 75 Shopping
76 </combo_item> 76 </combo_item>
77 <combo_item name="LandRental"> 77 <combo_item name="LandRental">
78 Terrain à louer 78 Terrains à louer
79 </combo_item> 79 </combo_item>
80 <combo_item name="PropertyRental"> 80 <combo_item name="PropertyRental">
81 Propriété à louer 81 Propriétés à louer
82 </combo_item> 82 </combo_item>
83 <combo_item name="SpecialAttraction"> 83 <combo_item name="SpecialAttraction">
84 Divertissements spéciaux 84 Divertissements
85 </combo_item> 85 </combo_item>
86 <combo_item name="NewProducts"> 86 <combo_item name="NewProducts">
87 Nouveaux produits 87 Nouveaux produits
88 </combo_item> 88 </combo_item>
89 <combo_item name="Employment"> 89 <combo_item name="Employment">
90 Emploi 90 Emplois
91 </combo_item> 91 </combo_item>
92 <combo_item name="Wanted"> 92 <combo_item name="Wanted">
93 Offres 93 Offres
94 </combo_item> 94 </combo_item>
95 <combo_item name="Service"> 95 <combo_item name="Service">
96 Service 96 Services
97 </combo_item> 97 </combo_item>
98 <combo_item name="Personal"> 98 <combo_item name="Personal">
99 Rencontres 99 Rencontres
100 </combo_item> 100 </combo_item>
101 </combo_box> 101 </combo_box>
102 <button label="Rechercher" label_selected="Rechercher" name="Search" width="85" /> 102 <button label="Rechercher" label_selected="Rechercher" name="Search" width="85"/>
103 <button label="Passer une annonce…" label_selected="Passer une annonce…" 103 <button label="Passer une annonce…" label_selected="Passer une annonce…" name="Place an Ad..." width="135"/>
104 name="Place an Ad..." width="135" /> 104 <button label="Supprimer" label_selected="Supprimer" name="Delete"/>
105 <button label="Supprimer" label_selected="Supprimer" name="Delete" />
106 </panel> 105 </panel>
107 <panel label="Événements" name="events_panel"> 106 <panel label="Événements" name="events_panel">
108 <string name="searching_text"> 107 <string name="searching_text">
@@ -112,15 +111,15 @@
112 Aucun résultat. 111 Aucun résultat.
113 </string> 112 </string>
114 <scroll_list name="results"> 113 <scroll_list name="results">
115 <column label="" name="icon" /> 114 <column label="" name="icon"/>
116 <column label="" name="type" /> 115 <column label="" name="type"/>
117 <column label="Nom" name="name" /> 116 <column label="Nom" name="name"/>
118 <column label="Heure (Californie)" name="date" width="115" /> 117 <column label="Heure (Californie)" name="date" width="115"/>
119 <column label="" name="event_id" /> 118 <column label="" name="event_id"/>
120 <column label="Heure" name="time" /> 119 <column label="Heure" name="time"/>
121 </scroll_list> 120 </scroll_list>
122 <button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev" /> 121 <button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
123 <button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;" /> 122 <button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
124 <radio_group name="date_mode"> 123 <radio_group name="date_mode">
125 <radio_item name="current"> 124 <radio_item name="current">
126 En cours et futurs 125 En cours et futurs
@@ -129,15 +128,12 @@
129 Date 128 Date
130 </radio_item> 129 </radio_item>
131 </radio_group> 130 </radio_group>
132 <button label="&lt;&lt;" label_selected="&lt;&lt;" name="&lt;&lt;" 131 <button label="&lt;&lt;" label_selected="&lt;&lt;" name="&lt;&lt;" tool_tip="Revenir en arrière d&apos;un jour"/>
133 tool_tip="Revenir en arrière d&apos;un jour" />
134 <text name="date_text"> 132 <text name="date_text">
135 6/6 133 6/6
136 </text> 134 </text>
137 <button label="&gt;&gt;" label_selected="&gt;&gt;" name="&gt;&gt;" 135 <button label="&gt;&gt;" label_selected="&gt;&gt;" name="&gt;&gt;" tool_tip="Avancer d&apos;un jour"/>
138 tool_tip="Avancer d&apos;un jour" /> 136 <button label="Aujourd&apos;hui" label_selected="Aujourd&apos;hui" name="Today" tool_tip="Afficher les événements qui ont lieu aujourd&apos;hui"/>
139 <button label="Aujourd&apos;hui" label_selected="Aujourd&apos;hui" name="Today"
140 tool_tip="Afficher les événements qui ont lieu aujourd&apos;hui" />
141 <text name="text"> 137 <text name="text">
142 Catégorie : 138 Catégorie :
143 </text> 139 </text>
@@ -149,7 +145,7 @@
149 Tout 145 Tout
150 </combo_item> 146 </combo_item>
151 <combo_item name="Discussion"> 147 <combo_item name="Discussion">
152 Discussion 148 Discussions
153 </combo_item> 149 </combo_item>
154 <combo_item name="Sports"> 150 <combo_item name="Sports">
155 Sports 151 Sports
@@ -158,7 +154,7 @@
158 Musique live 154 Musique live
159 </combo_item> 155 </combo_item>
160 <combo_item name="Commercial"> 156 <combo_item name="Commercial">
161 Publicité 157 Publicités
162 </combo_item> 158 </combo_item>
163 <combo_item name="Nightlife/Entertainment"> 159 <combo_item name="Nightlife/Entertainment">
164 Divertissements/Soirées 160 Divertissements/Soirées
@@ -182,21 +178,20 @@
182 Divers 178 Divers
183 </combo_item> 179 </combo_item>
184 </combo_box> 180 </combo_box>
185 <line_editor left="370" name="event_search_text" width="175" /> 181 <line_editor left="370" name="event_search_text" width="175"/>
186 <check_box label="Inclure le contenu &#10;pour adultes" left="551" name="incmature" /> 182 <check_box label="Inclure le contenu &#10;pour adultes" left="551" name="incmature"/>
187 <button label="Rechercher" label_selected="Rechercher" left_delta="129" name="Search" 183 <button label="Rechercher" label_selected="Rechercher" left_delta="129" name="Search" tool_tip="Rechercher"/>
188 tool_tip="Rechercher" /> 184 <button label="Supprimer" label_selected="Supprimer" name="Delete"/>
189 <button label="Supprimer" label_selected="Supprimer" name="Delete" />
190 </panel> 185 </panel>
191 <panel label="A la Une" name="showcase_panel"> 186 <panel label="À la Une" name="showcase_panel">
192 <string name="searching_text"> 187 <string name="searching_text">
193 Recherche en cours... 188 Recherche en cours...
194 </string> 189 </string>
195 <string name="not_found_text"> 190 <string name="not_found_text">
196 Aucun résultat. 191 Aucun résultat.
197 </string> 192 </string>
198 <button label="Précédente" name="back_btn" /> 193 <button label="Précédente" name="back_btn"/>
199 <button label="Suivante" name="forward_btn" /> 194 <button label="Suivante" name="forward_btn"/>
200 <string name="loading_text"> 195 <string name="loading_text">
201 Chargement en cours... 196 Chargement en cours...
202 </string> 197 </string>
@@ -218,21 +213,21 @@
218 Aucun résultat. 213 Aucun résultat.
219 </string> 214 </string>
220 <scroll_list name="results"> 215 <scroll_list name="results">
221 <column label="" name="icon" /> 216 <column label="" name="icon"/>
222 <column label="" name="type" /> 217 <column label="" name="type"/>
223 <column label="Nom" name="name" /> 218 <column label="Nom" name="name"/>
224 <column label="Prix en $L" name="price" width="75" /> 219 <column label="Prix en L$" name="price" width="75"/>
225 <column label="Surface" name="area" width="65" /> 220 <column label="Surface" name="area" width="65"/>
226 <column label="$L/m²" name="per_meter" /> 221 <column label="L$/m²" name="per_meter"/>
227 </scroll_list> 222 </scroll_list>
228 <button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev" /> 223 <button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
229 <button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;" /> 224 <button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
230 <combo_box name="type" width="150"> 225 <combo_box name="type" width="150">
231 <combo_item name="AllTypes"> 226 <combo_item name="AllTypes">
232 Tous types 227 Tous types
233 </combo_item> 228 </combo_item>
234 <combo_item name="Auction"> 229 <combo_item name="Auction">
235 Enchère 230 Enchères
236 </combo_item> 231 </combo_item>
237 <combo_item name="MainlandSales"> 232 <combo_item name="MainlandSales">
238 À vendre - Continent 233 À vendre - Continent
@@ -243,28 +238,27 @@
243 </combo_box> 238 </combo_box>
244 <combo_box name="rating" width="150"> 239 <combo_box name="rating" width="150">
245 <combo_item name="PG&amp;Mature"> 240 <combo_item name="PG&amp;Mature">
246 Public averti et adulte 241 Tout public et Adulte
247 </combo_item> 242 </combo_item>
248 <combo_item name="PGonly"> 243 <combo_item name="PGonly">
249 Public averti uniquement 244 Tout public uniquement
250 </combo_item> 245 </combo_item>
251 <combo_item name="Matureonly"> 246 <combo_item name="Matureonly">
252 Adultes uniquement 247 Adulte uniquement
253 </combo_item> 248 </combo_item>
254 </combo_box> 249 </combo_box>
255 <check_box label="Prix &lt;= $L" left="157" name="pricecheck" /> 250 <check_box label="Prix &lt;= L$" left="157" name="pricecheck"/>
256 <check_box label="Surface &gt;= m²" left="157" name="areacheck" /> 251 <check_box label="Surface &gt;= m²" left="157" name="areacheck"/>
257 <line_editor left="251" name="priceedit" width="50" /> 252 <line_editor left="251" name="priceedit" width="50"/>
258 <line_editor left="251" name="areaedit" width="50" /> 253 <line_editor left="251" name="areaedit" width="50"/>
259 <button label="Rechercher" label_selected="Rechercher" left="306" name="Search" 254 <button label="Rechercher" label_selected="Rechercher" left="306" name="Search" width="85"/>
260 width="85" />
261 <text left="399" name="land" width="379"> 255 <text left="399" name="land" width="379">
262 Les terrains peuvent être achetés directement en dollars Linden (L$) ou 256 Vous pouvez acheter un terrain directement en dollars Linden (L$) ou
263aux enchères (en $L ou $US). Pour acheter directement, visitez le terrain 257aux enchères (en L$ ou US$). Pour acheter directement, visitez le terrain
264et cliquez sur le nom de l&apos;endroit dans la barre de titre. 258et cliquez sur le nom de l&apos;endroit dans la barre de titre.
265 </text> 259 </text>
266 </panel> 260 </panel>
267 <panel label="Endroits" name="places_panel"> 261 <panel label="Lieux" name="places_panel">
268 <string name="searching_text"> 262 <string name="searching_text">
269 Recherche en cours... 263 Recherche en cours...
270 </string> 264 </string>
@@ -272,27 +266,27 @@ et cliquez sur le nom de l&apos;endroit dans la barre de titre.
272 Aucun résultat. 266 Aucun résultat.
273 </string> 267 </string>
274 <scroll_list name="results"> 268 <scroll_list name="results">
275 <column label="" name="icon" /> 269 <column label="" name="icon"/>
276 <column label="" name="type" /> 270 <column label="" name="type"/>
277 <column label="Nom" name="name" /> 271 <column label="Nom" name="name"/>
278 <column label="Trafic" name="dwell" /> 272 <column label="Trafic" name="dwell"/>
279 </scroll_list> 273 </scroll_list>
280 <button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev" /> 274 <button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
281 <button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;" /> 275 <button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
282 <text name="find" width="63"> 276 <text name="find" width="63">
283 Trouver : 277 Trouver :
284 </text> 278 </text>
285 <line_editor left_delta="51" name="name" width="128" /> 279 <line_editor left_delta="51" name="name" width="128"/>
286 <check_box label="Inclure les parcelles avec du contenu Adultes" name="incmature" /> 280 <check_box label="Inclure les parcelles avec du contenu Adulte" name="incmature"/>
287 <combo_box left="195" name="Category" width="170"> 281 <combo_box left="195" name="Category" width="170">
288 <combo_item name="AnyCategory"> 282 <combo_item name="AnyCategory">
289 Toute catégorie 283 Toutes catégories
290 </combo_item> 284 </combo_item>
291 <combo_item name="LindenLocation"> 285 <combo_item name="LindenLocation">
292 Emplacement Linden 286 Appartenant aux Lindens
293 </combo_item> 287 </combo_item>
294 <combo_item name="Adult"> 288 <combo_item name="Adult">
295 Adultes 289 Adulte
296 </combo_item> 290 </combo_item>
297 <combo_item name="Arts&amp;Culture"> 291 <combo_item name="Arts&amp;Culture">
298 Art et Culture 292 Art et Culture
@@ -307,10 +301,10 @@ et cliquez sur le nom de l&apos;endroit dans la barre de titre.
307 Jeux 301 Jeux
308 </combo_item> 302 </combo_item>
309 <combo_item name="Hangout"> 303 <combo_item name="Hangout">
310 Endroit favori 304 Favoris
311 </combo_item> 305 </combo_item>
312 <combo_item name="NewcomerFriendly"> 306 <combo_item name="NewcomerFriendly">
313 Convivial pour les nouveaux 307 Accueil pour les nouveaux
314 </combo_item> 308 </combo_item>
315 <combo_item name="Parks&amp;Nature"> 309 <combo_item name="Parks&amp;Nature">
316 Parcs et Nature 310 Parcs et Nature
@@ -325,10 +319,9 @@ et cliquez sur le nom de l&apos;endroit dans la barre de titre.
325 Autre 319 Autre
326 </combo_item> 320 </combo_item>
327 </combo_box> 321 </combo_box>
328 <button label="Rechercher" label_selected="Rechercher" left_delta="178" name="Search" 322 <button label="Rechercher" label_selected="Rechercher" left_delta="178" name="Search" width="80"/>
329 width="80" />
330 </panel> 323 </panel>
331 <panel label="Personnes" name="people_panel"> 324 <panel label="Résidents" name="people_panel">
332 <string name="searching_text"> 325 <string name="searching_text">
333 Recherche en cours... 326 Recherche en cours...
334 </string> 327 </string>
@@ -336,32 +329,32 @@ et cliquez sur le nom de l&apos;endroit dans la barre de titre.
336 Aucun résultat. 329 Aucun résultat.
337 </string> 330 </string>
338 <scroll_list name="results"> 331 <scroll_list name="results">
339 <column label="" name="icon" /> 332 <column label="" name="icon"/>
340 <column label="" name="type" /> 333 <column label="" name="type"/>
341 <column label="Nom" name="name" /> 334 <column label="Nom" name="name"/>
342 </scroll_list> 335 </scroll_list>
343 <button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev" /> 336 <button label="&lt; Préc" label_selected="&lt; Préc" name="&lt; Prev"/>
344 <button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;" /> 337 <button label="Suivante &gt;" label_selected="Suivante &gt;" name="Next &gt;"/>
345 <text name="find" width="63"> 338 <text name="find" width="63">
346 Trouver : 339 Trouver :
347 </text> 340 </text>
348 <line_editor left_delta="51" name="name" width="200" /> 341 <line_editor left_delta="51" name="name" width="200"/>
349 <button label="Rechercher" label_selected="Rechercher" name="Search" width="80" /> 342 <button label="Rechercher" label_selected="Rechercher" name="Search" width="80"/>
350 </panel> 343 </panel>
351 <panel label="Groupes" name="groups_panel"> 344 <panel label="Groupes" name="groups_panel">
352 <button label="&lt; Précédent" label_selected="&lt; Précédent" name="&lt; Prev" /> 345 <button label="&lt; Précédent" label_selected="&lt; Précédent" name="&lt; Prev"/>
353 <button label="Suivant &gt;" label_selected="Suivant &gt;" name="Next &gt;" /> 346 <button label="Suivant &gt;" label_selected="Suivant &gt;" name="Next &gt;"/>
354 <string name="searching_text"> 347 <string name="searching_text">
355 Recherche en cours... 348 Recherche en cours...
356 </string> 349 </string>
357 <string name="not_found_text"> 350 <string name="not_found_text">
358 Aucun résultat. 351 Aucun résultat.
359 </string> 352 </string>
360 <button label="Précédente" name="back_btn" /> 353 <button label="Précédente" name="back_btn"/>
361 <button label="Suivante" name="forward_btn" /> 354 <button label="Suivante" name="forward_btn"/>
362 <line_editor label="Rechercher" name="search_editor" tool_tip="Rechercher dans Second Life" /> 355 <line_editor label="Rechercher" name="search_editor" tool_tip="Rechercher dans Second Life"/>
363 <button label="Rechercher" name="search_btn" width="80" /> 356 <button label="Rechercher" name="search_btn" width="80"/>
364 <check_box label="Inclure le contenu pour adultes" name="mature_check" /> 357 <check_box label="Inclure le contenu pour adultes" name="mature_check"/>
365 <string name="loading_text"> 358 <string name="loading_text">
366 Chargement en cours... 359 Chargement en cours...
367 </string> 360 </string>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_env_settings.xml b/linden/indra/newview/skins/default/xui/fr/floater_env_settings.xml
index c2454a8..1d14142 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_env_settings.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_env_settings.xml
@@ -1,27 +1,27 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Environment Editor Floater" title="Editeur d&apos;environnement"> 2<floater name="Environment Editor Floater" title="Éditeur d&apos;environnement">
3 <text name="EnvTimeText" bottom="-45" > 3 <text bottom="-45" name="EnvTimeText">
4 Heure de la 4 Heure de la
5journée 5journée
6 </text> 6 </text>
7 <text name="EnvTimeText2" bottom_delta="-36" > 7 <text bottom_delta="-36" name="EnvTimeText2">
8 Midi 8 Midi
9 </text> 9 </text>
10 <text name="EnvCloudText"> 10 <text name="EnvCloudText">
11 Couverture 11 Couverture
12nuageuse 12nuageuse
13 </text> 13 </text>
14 <text name="EnvWaterColorText" bottom="-45" > 14 <text bottom="-45" name="EnvWaterColorText">
15 Couleur de 15 Couleur de
16l&apos;eau 16l&apos;eau
17 </text> 17 </text>
18 <color_swatch name="EnvWaterColor" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" /> 18 <color_swatch name="EnvWaterColor" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs"/>
19 <text name="EnvWaterFogText"> 19 <text name="EnvWaterFogText">
20 Brouillard 20 Brouillard
21dans l&apos;eau 21dans l&apos;eau
22 </text> 22 </text>
23 <button label="Utiliser heure du domaine" name="EnvUseEstateTimeButton" bottom="-144"/> 23 <button bottom="-144" label="Utiliser heure du domaine" name="EnvUseEstateTimeButton" width="145"/>
24 <button label="Ciel avancé" name="EnvAdvancedSkyButton" /> 24 <button label="Ciel avancé" name="EnvAdvancedSkyButton" width="145" left="162" />
25 <button label="Eau avancée" name="EnvAdvancedWaterButton" /> 25 <button label="Eau avancée" name="EnvAdvancedWaterButton" width="145" left="316"/>
26 <button label="?" name="EnvSettingsHelpButton" /> 26 <button label="?" name="EnvSettingsHelpButton"/>
27</floater> 27</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_god_tools.xml b/linden/indra/newview/skins/default/xui/fr/floater_god_tools.xml
index c8e618b..531080f 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_god_tools.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_god_tools.xml
@@ -1,117 +1,77 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="godtools floater" title="Outils Admin"> 2<floater name="godtools floater" title="Outils divins">
3 <tab_container name="GodTools Tabs"> 3 <tab_container name="GodTools Tabs">
4 <panel label="Grille" name="grid"> 4 <panel label="Grille" name="grid">
5 <button label="Vider Tous" label_selected="Vider Tous" name="Kick all users" /> 5 <button label="Éjecter tous" label_selected="Éjecter tous" name="Kick all users" width="175" />
6 <button label="Vider le cache cartographique de la région" 6 <button label="Vider le cache cartographique de la région" label_selected="Vider le cache cartographique de la région" name="Flush This Region&apos;s Map Visibility Caches" width="285"/>
7 label_selected="Vider le cache cartographique de la région"
8 name="Flush This Region&apos;s Map Visibility Caches" />
9 </panel> 7 </panel>
10 <panel label="Région" name="region"> 8 <panel label="Région" name="region">
11 <text name="Sim Name:"> 9 <text name="Sim Name:" width="70">
12 Nom du sim : 10 Nom du sim :
13 </text> 11 </text>
14 <check_box label="Initiation" name="check prelude" 12 <line_editor left="85" name="region name" width="198" />
15 tool_tip="Définir cette région comme zone d&apos;initiation." /> 13 <check_box label="Initiation" name="check prelude" tool_tip="Définir cette région comme zone d&apos;initiation."/>
16 <check_box label="Soleil fixe" name="check fixed sun" 14 <check_box label="Soleil fixe" name="check fixed sun" tool_tip="Définir la position du soleil (comme dans Région et Domaine &gt; Terrain.)"/>
17 tool_tip="Définir la position du soleil (comme dans Région/Domaine &gt; Terrain.)" /> 15 <check_box label="Réinitialiser le domicile &#10;à la téléportation" name="check reset home" tool_tip="Lorsqu&apos;un résident se téléporte à l&apos;extérieur, réinitialise son domicile à la position de sa destination." height="32"/>
18 <check_box label="Réinitialiser le domicile à la téléportation" 16 <check_box label="Visible" name="check visible" tool_tip="Cochez pour rendre la région visible aux non-admins." bottom_delta="-32"/>
19 name="check reset home" 17 <check_box label="Dégâts" name="check damage" tool_tip="Cochez pour activer les dégâts dans cette région."/>
20 tool_tip="Lorsqu&apos;un résident se téléporte à l&apos;extérieur, réinitialise son domicile à la position de sa destination." /> 18 <check_box label="Bloquer le suivi de trafic" name="block dwell" tool_tip="Cochez pour que la région ne comptabilise pas le trafic."/>
21 <check_box label="Visible" name="check visible" 19 <check_box label="Bloquer le terraformage" name="block terraform" tool_tip="Cochez pour empêcher les personnes de terraformer leur terrain"/>
22 tool_tip="Cochez pour rendre la région visible aux non-admins." /> 20 <check_box label="Bac à sable" name="is sandbox" tool_tip="Basculer cette région en bac à sable."/>
23 <check_box label="Dégâts" name="check damage" 21 <button label="Figer le terrain" label_selected="Figer le terrain" name="Bake Terrain" tool_tip="Enregistrer le terrain actuel comme terrain par défaut." width="118" />
24 tool_tip="Cochez pour activer les dégâts dans cette région." /> 22 <button label="Rétablir le terrain" label_selected="Rétablir le terrain" name="Revert Terrain" tool_tip="Remplacer le terrain actuel avec le terrain par défaut." width="118" />
25 <check_box label="Bloquer le suivi de trafic" name="block dwell" 23 <button label="Échanger le terrain" label_selected="Échanger le terrain" name="Swap Terrain" tool_tip="Échangez le terrain actuel avec le terrain par défaut." width="118" />
26 tool_tip="Cochez pour que la région ne comptabilise pas le trafic." />
27 <check_box label="Bloquer le terraformage" name="block terraform"
28 tool_tip="Cochez pour empêcher les personnes de terraformer leur terrain" />
29 <check_box label="Bac à sable" name="is sandbox"
30 tool_tip="Basculer cette région en bac à sable." />
31 <button label="Figer le terrain" label_selected="Figer le terrain" name="Bake Terrain"
32 tool_tip="Enregistrer le terrain actuel comme terrain par défaut." />
33 <button label="Rétablir le terrain" label_selected="Rétablir le terrain"
34 name="Revert Terrain"
35 tool_tip="Remplacer le terrain actuel avec le terrain par défaut." />
36 <button label="Échanger le terrain" label_selected="Échanger le terrain"
37 name="Swap Terrain"
38 tool_tip="Échanger le terrain actuel avec le terrain par défaut." />
39 <text name="estate id"> 24 <text name="estate id">
40 ID du domaine : 25 ID du domaine :
41 </text> 26 </text>
42 <text name="parent id"> 27 <text name="parent id">
43 ID parent : 28 ID parent :
44 </text> 29 </text>
45 <line_editor name="parentestate" 30 <line_editor name="parentestate" tool_tip="Il s&apos;agit du domaine parent de cette région"/>
46 tool_tip="Il s&apos;agit du domaine parent de cette région" />
47 <text name="Grid Pos: "> 31 <text name="Grid Pos: ">
48 Position sur la grille : 32 Position sur la grille :
49 </text> 33 </text>
50 <line_editor name="gridposx" tool_tip="Position x de cette région sur la grille" /> 34 <line_editor name="gridposx" tool_tip="Position x de cette région sur la grille" left_delta="120" width="35"/>
51 <line_editor name="gridposy" tool_tip="Position y de cette région sur la grille" /> 35 <line_editor name="gridposy" tool_tip="Position y de cette région sur la grille" left_delta="40" width="35" />
52 <text name="Redirect to Grid: "> 36 <text name="Redirect to Grid: ">
53 Rediriger vers la grille : 37 Rediriger vers la grille :
54 </text> 38 </text>
55 <text name="billable factor text"> 39 <line_editor left_delta="120" name="redirectx" width="35" />
40 <line_editor left_delta="40" name="redirecty" width="35" />
41 <spinner left="320" name="billable factor" width="70" />
42 <text name="billable factor text" font="SansSerifSmall" left_delta="-120" width="120">
56 Facteur de facturation : 43 Facteur de facturation :
57 </text> 44 </text>
58 <text name="land cost text"> 45 <spinner left="320" name="land cost" width="70" />
59 $L par m² : 46 <text name="land cost text" left_delta="-120">
47 L$ par m² :
60 </text> 48 </text>
61 <button label="Rafraîchir" label_selected="Rafraîchir" name="Refresh" 49 <button label="Rafraîchir" label_selected="Rafraîchir" name="Refresh" tool_tip="Cliquez ici pour rafraîchir les informations ci-dessus."/>
62 tool_tip="Cliquez ici pour rafraîchir les informations ci-dessus." /> 50 <button label="Appliquer" label_selected="Appliquer" name="Apply" tool_tip="Cliquez ici pour appliquer les modifications effectuées ci-dessus."/>
63 <button label="Appliquer" label_selected="Appliquer" name="Apply" 51 <button label="Sélectionner une région" label_selected="Sélectionner une région" name="Select Region" tool_tip="Sélectionnez une région entière à l&apos;aide de l&apos;outil Terrain." width="140" left="136"/>
64 tool_tip="Cliquez ici pour appliquer les modifications effectuées ci-dessus." /> 52 <button label="Sauvegarde automatique" label_selected="Sauvegarde automatique" name="Autosave now" tool_tip="Sauvegarde automatique au format gzip." width="140" left="136"/>
65 <button label="Sélectionner une région" label_selected="Sélectionner une région"
66 name="Select Region"
67 tool_tip="Sélectionnez une région entière à l&apos;aide de l&apos;outil Terrain." />
68 <button label="Sauvegarde automatique" label_selected="Sauvegarde automatique"
69 name="Autosave now" tool_tip="Sauvegarde automatique au format gzip." />
70 </panel> 53 </panel>
71 <panel label="Objets" name="objects"> 54 <panel label="Objets" name="objects">
72 <text name="Sim Name:"> 55 <text name="Sim Name:" width="70">
73 Nom du sim : 56 Nom du sim :
74 </text> 57 </text>
75 <text name="region name"> 58 <text name="region name" left_delta="75">
76 Gallois 59 Welsh
77 </text> 60 </text>
78 <check_box label="Désactiver les scripts" name="disable scripts" 61 <check_box label="Désactiver les &#10;scripts" name="disable scripts" tool_tip="Cochez pour désactiver tous les scripts dans cette région"/>
79 tool_tip="Cochez pour désactiver tous les scripts dans cette région" /> 62 <check_box label="Désactiver les &#10;collisions" name="disable collisions" tool_tip="Cochez pour désactiver les collisions entre non-avatars dans cette région"/>
80 <check_box label="Désactiver les collisions" name="disable collisions" 63 <check_box label="Désactiver les &#10;propriétés physiques" name="disable physics" tool_tip="Cochez pour désactiver toutes les propriétés physiques dans cette région"/>
81 tool_tip="Cochez pour désactiver les collisions entre non-avatars dans cette région" /> 64 <button label="Appliquer" label_selected="Appliquer" name="Apply" tool_tip="Cliquez ici pour appliquer les modifications effectuées ci-dessus." bottom="-85"/>
82 <check_box label="Désactiver les propriétés physiques" name="disable physics" 65 <button label="Définir la cible" label_selected="Définir la cible" name="Set Target" tool_tip="Définir l&apos;avatar cible pour la suppression de l&apos;objet."/>
83 tool_tip="Cochez pour désactiver toutes les propriétés physiques dans cette région" />
84 <button label="Appliquer" label_selected="Appliquer" name="Apply"
85 tool_tip="Cliquez ici pour appliquer les modifications effectuées ci-dessus." />
86 <button label="Définir la cible" label_selected="Définir la cible" name="Set Target"
87 tool_tip="Définir l&apos;avatar cible pour la suppression de l&apos;objet." />
88 <text name="target_avatar_name"> 66 <text name="target_avatar_name">
89 (aucune cible) 67 (aucune cible)
90 </text> 68 </text>
91 <button 69 <button label="Supprimer tous les objets scriptés de la cible sur les terrains des autres" label_selected="Supprimer tous les objets scriptés de la cible sur les terrains des autres" name="Delete Target&apos;s Scripted Objects On Others Land" tool_tip="Supprimer tous les objets scriptés appartenant à la cible sur les terrains ne lui appartenant pas. Les objets non reproductibles seront renvoyés."/>
92 label="Supprimer tous les objets scriptés de la cible sur les terrains des autres" 70 <button label="Supprimer les objets scriptés de la cible sur *tous* les terrains" label_selected="Supprimer les objets scriptés de la cible sur *tous* les terrains" name="Delete Target&apos;s Scripted Objects On *Any* Land" tool_tip="Supprimer les objets scriptés appartenant à la cible dans cette région. Les objets non reproductibles seront renvoyés."/>
93 label_selected="Supprimer tous les objets scriptés de la cible sur les terrains des autres" 71 <button label="Supprimer *tous* les objets de la cible" label_selected="Supprimer *tous* les objets de la cible" name="Delete *ALL* Of Target&apos;s Objects" tool_tip="Supprimer tous les objets appartenant à la cible dans cette région. Les objets non reproductibles seront renvoyés."/>
94 name="Delete Target&apos;s Scripted Objects On Others Land" 72 <button width="300" label="Afficher les objets souvent responsables de collision" label_selected="Afficher les objets souvent responsables de collision" name="Get Top Colliders" tool_tip="Dresse une liste des objets avec les callbacks les plus fréquents. "/>
95 tool_tip="Supprimer tous les objets scriptés appartenant à la cible sur les terrains ne lui appartenant pas. Les objets non reproductibles seront renvoyés." /> 73 <button width="300" label="Afficher les scripts fréquemment utilisés" label_selected="Afficher les scripts fréquemment utilisés" name="Get Top Scripts" tool_tip="Dresse une liste des objets qui passent le plus de temps à exécuter des scripts."/>
96 <button label="Supprimer les objets scriptés de la cible sur *tous* les terrains" 74 <button width="300" label="Résumé des scripts" label_selected="Résumé des scripts" name="Scripts digest" tool_tip="Dresse une liste des scripts et de leurs occurrences."/>
97 label_selected="Supprimer les objets scriptés de la cible sur *tous* les terrains"
98 name="Delete Target&apos;s Scripted Objects On *Any* Land"
99 tool_tip="Supprimer les objets scriptés appartenant à la cible dans cette région. Les objets non reproductibles seront renvoyés." />
100 <button label="Supprimer *tous* les objets de la cible"
101 label_selected="Supprimer *tous* les objets de la cible"
102 name="Delete *ALL* Of Target&apos;s Objects"
103 tool_tip="Supprimer tous les objets appartenant à la cible dans cette région. Les objets non reproductibles seront renvoyés." />
104 <button label="Afficher les objets souvent responsables de collision"
105 label_selected="Afficher les objets souvent responsables de collision"
106 name="Get Top Colliders"
107 tool_tip="Dresse une liste des objets avec les callbacks les plus fréquents. " />
108 <button label="Afficher les scripts fréquemment utilisés"
109 label_selected="Afficher les scripts fréquemment utilisés"
110 name="Get Top Scripts"
111 tool_tip="Dresse une liste des objets qui passent le plus de temps à exécuter des scripts." />
112 <button label="Résumé des scripts" label_selected="Résumé des scripts"
113 name="Scripts digest"
114 tool_tip="Dresse une liste des scripts et de leurs occurrences." />
115 </panel> 75 </panel>
116 <panel label="Requête" name="request"> 76 <panel label="Requête" name="request">
117 <text name="Destination:"> 77 <text name="Destination:">
@@ -145,8 +105,7 @@
145 <text name="Parameter:"> 105 <text name="Parameter:">
146 Paramètre : 106 Paramètre :
147 </text> 107 </text>
148 <button label="Effectuer la requête" label_selected="Effectuer la requête" 108 <button label="Effectuer la requête" label_selected="Effectuer la requête" name="Make Request" width="140"/>
149 name="Make Request" />
150 </panel> 109 </panel>
151 </tab_container> 110 </tab_container>
152</floater> 111</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_group_info.xml b/linden/indra/newview/skins/default/xui/fr/floater_group_info.xml
index d2c7857..af58b2a 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_group_info.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_group_info.xml
@@ -1,24 +1,24 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="groupinfo" title="Les Linden – Informations sur le groupe"> 2<floater name="groupinfo" title="Les Linden – Profil du groupe">
3 <tab_container name="tab"> 3 <tab_container name="tab">
4 <panel label="Général" name="gen"> 4 <panel label="Général" name="gen">
5 <text name="title_box"> 5 <text name="title_box">
6 Infos sur le groupe 6 Profil du groupe
7 </text> 7 </text>
8 <text name="txt"> 8 <text name="txt">
9 Les groupes sont un moyen divertissant de collaborer avec vos amis. 9 Les groupes sont un moyen divertissant de collaborer avec vos amis.
10 </text> 10 </text>
11 <text name="txt2"> 11 <text name="txt2">
12 Les groupes vous permettent d&apos;avoir un titre, un emblème et de voter. 12 Les groupes vous permettent d&apos;avoir un titre, un logo et de voter.
13 </text> 13 </text>
14 <text name="txt3"> 14 <text name="txt3">
15 Tout le monde peut créer un groupe. Chaque personne peut appartenir à 15 groupes maximum. 15 Tout le monde peut créer un groupe. Chaque résident peut appartenir jusqu&apos;à 15 groupes.
16 </text> 16 </text>
17 <text name="txt4"> 17 <text name="txt4">
18 Pour rester actif, un groupe doit avoir au moins 3 membres. 18 Pour rester actif, un groupe doit avoir au moins 3 membres.
19 </text> 19 </text>
20 <text name="group_create_text"> 20 <text name="group_create_text">
21 La création d&apos;un groupe coûte 100 $L. 21 La création d&apos;un groupe coûte 100 L$.
22 </text> 22 </text>
23 <text name="lbl"> 23 <text name="lbl">
24 Nom : 24 Nom :
@@ -29,17 +29,15 @@
29 <text name="lbl2"> 29 <text name="lbl2">
30 Charte : 30 Charte :
31 </text> 31 </text>
32 <check_box label="Afficher dans la liste du groupe" name="sho" /> 32 <check_box label="Afficher dans la liste du groupe" name="sho"/>
33 <check_box label="Afficher les membres dans la liste du groupe" name="sho_mem" /> 33 <check_box label="Afficher les membres dans la liste du groupe" name="sho_mem"/>
34 <check_box label="Publier sur le web." name="allow_publish" 34 <check_box label="Publier sur le web." name="allow_publish" tool_tip="Publiez votre profil sur le web."/>
35 tool_tip="Publiez votre profil sur le web." /> 35 <button label="?" label_selected="?" name="publish_help_btn"/>
36 <button label="?" label_selected="?" name="publish_help_btn" /> 36 <check_box label="Adulte" name="mature" tool_tip="Les informations de votre profil sont à caractère adulte."/>
37 <check_box label="Adulte" name="mature"
38 tool_tip="Les informations de votre profil sont à caractère adulte." />
39 </panel> 37 </panel>
40 <panel label="Titres" name="tit"> 38 <panel label="Titres" name="tit">
41 <text name="txt"> 39 <text name="txt">
42 Titres au sein du groupe 40 Titres de groupe
43 </text> 41 </text>
44 <text name="txt2"> 42 <text name="txt2">
45 Les groupes peuvent avoir des officiers et des membres avec des titres particuliers. 43 Les groupes peuvent avoir des officiers et des membres avec des titres particuliers.
@@ -54,9 +52,9 @@
54 Titre du membre : 52 Titre du membre :
55 </text> 53 </text>
56 <text name="lbl3"> 54 <text name="lbl3">
57 Pour créer l&apos;emblème du groupe, faites glisser une texture depuis votre inventaire. 55 Pour créer le logo du groupe, faites glisser une texture depuis votre inventaire.
58 </text> 56 </text>
59 <texture_picker name="insig" tool_tip="Cliquez pour sélectionner une image" /> 57 <texture_picker name="insig" tool_tip="Cliquez pour sélectionner une image"/>
60 </panel> 58 </panel>
61 <panel label="Membres" name="mem"> 59 <panel label="Membres" name="mem">
62 <text name="txt"> 60 <text name="txt">
@@ -74,44 +72,40 @@
74 <text name="members_label"> 72 <text name="members_label">
75 Membres : 73 Membres :
76 </text> 74 </text>
77 <button label="Expulser le membre" label_selected="Expulser le membre" 75 <button label="Expulser le membre" label_selected="Expulser le membre" name="eject_member_btn"/>
78 name="eject_member_btn" />
79 </panel> 76 </panel>
80 <panel label="Vote" name="voting"> 77 <panel label="Vote" name="voting">
81 <tab_container name="tab"> 78 <tab_container name="tab">
82 <panel label="Élection" name="recall"> 79 <panel label="Élection" name="recall">
83 <text name="txt"> 80 <text name="txt">
84 Élections du groupe 81 Élections
85 </text> 82 </text>
86 <text name="instructions"> 83 <text name="instructions">
87 Pour commencer une nouvelle élection, cliquez sur Lancer l&apos;élection. 84 Pour commencer une nouvelle élection, cliquez sur Lancer l&apos;élection.
88Tous les membres qui ne sont pas officiers sont candidats. 85Les candidats incluent tous les membres qui ne sont pas officiers.
89 </text> 86 </text>
90 <text name="lbl"> 87 <text name="lbl">
91 Candidats : 88 Candidats :
92 </text> 89 </text>
93 <button label="Vote" label_selected="Voter" name="btn_vote" /> 90 <button label="Vote" label_selected="Voter" name="btn_vote"/>
94 <button label="M&apos;abstenir" label_selected="M&apos;abstenir" name="btn_abstain" /> 91 <button label="M&apos;abstenir" label_selected="M&apos;abstenir" name="btn_abstain"/>
95 <button label="Lancer l&apos;élection" label_selected="Lancer l&apos;élection" 92 <button label="Lancer l&apos;élection" label_selected="Lancer l&apos;élection" name="btn_start_election"/>
96 name="btn_start_election" />
97 <text name="lbl2"> 93 <text name="lbl2">
98 Quorum : 94 Quorum :
99 </text> 95 </text>
100 <spinner name="quorum" 96 <spinner name="quorum" tool_tip="Nombre total de votants nécessaires pour que les résultats de l&apos;élection soient valides."/>
101 tool_tip="Nombre total de votants nécessaires pour que les résultats de l&apos;élection soient valides." />
102 <text name="quorum_text"> 97 <text name="quorum_text">
103 sur un total de 111 membres. 98 sur un total de 111 membres.
104 </text> 99 </text>
105 <text name="lbl3"> 100 <text name="lbl3">
106 Majorité : 101 Majorité :
107 </text> 102 </text>
108 <radio_group name="majority" 103 <radio_group name="majority" tool_tip="Majorité de tous les votes nécessaires pour remporter l&apos;élection.">
109 tool_tip="Majorité de tous les votes nécessaires pour remporter l&apos;élection.">
110 <radio_item name="radio"> 104 <radio_item name="radio">
111 Majorité simple 105 Majorité simple
112 </radio_item> 106 </radio_item>
113 <radio_item name="radio2"> 107 <radio_item name="radio2">
114 Majorité des deux-tiers 108 Majorité des 2/3
115 </radio_item> 109 </radio_item>
116 <radio_item name="radio3"> 110 <radio_item name="radio3">
117 Unanimité 111 Unanimité
@@ -120,7 +114,7 @@ Tous les membres qui ne sont pas officiers sont candidats.
120 <text name="duration_lbl"> 114 <text name="duration_lbl">
121 Durée : 115 Durée :
122 </text> 116 </text>
123 <spinner name="duration" tool_tip="Durée de l&apos;élection (en nombre de jours)." /> 117 <spinner name="duration" tool_tip="Durée de l&apos;élection (en nombre de jours)."/>
124 <text name="duration_days"> 118 <text name="duration_days">
125 jours 119 jours
126 </text> 120 </text>
@@ -141,34 +135,29 @@ Tous les membres qui ne sont pas officiers sont candidats.
141 <text name="proposal_lbl"> 135 <text name="proposal_lbl">
142 Propositions : 136 Propositions :
143 </text> 137 </text>
144 <button label="Oui" label_selected="Oui" name="btn_yes" /> 138 <button label="Oui" label_selected="Oui" name="btn_yes"/>
145 <button label="Non" label_selected="Non" name="btn_no" /> 139 <button label="Non" label_selected="Non" name="btn_no"/>
146 <button label="M&apos;abstenir" label_selected="M&apos;abstenir" name="btn_abstain" /> 140 <button label="M&apos;abstenir" label_selected="M&apos;abstenir" name="btn_abstain"/>
147 <button label="Afficher la liste" label_selected="Afficher la liste" 141 <button label="Afficher la liste" label_selected="Afficher la liste" name="btn_view_list"/>
148 name="btn_view_list" /> 142 <button label="Afficher l&apos;objet" label_selected="Afficher l&apos;objet" name="btn_view_item"/>
149 <button label="Afficher l&apos;objet" label_selected="Afficher l&apos;objet" 143 <button label="Créer une proposition" label_selected="Créer une proposition" name="btn_proposal"/>
150 name="btn_view_item" /> 144 <button label="Soumettre" label_selected="Soumettre" name="btn_submit"/>
151 <button label="Créer une proposition" label_selected="Créer une proposition"
152 name="btn_proposal" />
153 <button label="Soumettre" label_selected="Soumettre" name="btn_submit" />
154 <text name="quorum_lbl"> 145 <text name="quorum_lbl">
155 Quorum : 146 Quorum :
156 </text> 147 </text>
157 <spinner name="quorum" 148 <spinner name="quorum" tool_tip="Nombre total de votants nécessaires pour que les résultats de l&apos;élection soient valides."/>
158 tool_tip="Nombre total de votants nécessaires pour que les résultats de l&apos;élection soient valides." />
159 <text name="quorum_text"> 149 <text name="quorum_text">
160 sur un total de 111 membres. 150 sur un total de 111 membres.
161 </text> 151 </text>
162 <text name="majority_lbl"> 152 <text name="majority_lbl">
163 Majorité : 153 Majorité :
164 </text> 154 </text>
165 <radio_group name="majority" 155 <radio_group name="majority" tool_tip="Majorité de tous les votes nécessaires pour remporter l&apos;élection.">
166 tool_tip="Majorité de tous les votes nécessaires pour remporter l&apos;élection.">
167 <radio_item name="radio"> 156 <radio_item name="radio">
168 Majorité simple 157 Majorité simple
169 </radio_item> 158 </radio_item>
170 <radio_item name="radio2"> 159 <radio_item name="radio2">
171 Majorité des deux-tiers 160 Majorité des 2/3
172 </radio_item> 161 </radio_item>
173 <radio_item name="radio3"> 162 <radio_item name="radio3">
174 Unanimité 163 Unanimité
@@ -177,20 +166,20 @@ Tous les membres qui ne sont pas officiers sont candidats.
177 <text name="duration_lbl"> 166 <text name="duration_lbl">
178 Durée : 167 Durée :
179 </text> 168 </text>
180 <spinner name="duration" tool_tip="Durée de l&apos;élection (en nombre de jours)." /> 169 <spinner name="duration" tool_tip="Durée de l&apos;élection (en nombre de jours)."/>
181 <text name="duration_text"> 170 <text name="duration_text">
182 jours 171 jours
183 </text> 172 </text>
184 <text name="start_lbl"> 173 <text name="start_lbl">
185 Début du vote : 174 Début :
186 </text> 175 </text>
187 <text name="end_lbl"> 176 <text name="end_lbl">
188 Fin du vote : 177 Fin :
189 </text> 178 </text>
190 </panel> 179 </panel>
191 <panel label="Historique" name="History"> 180 <panel label="Historique" name="History">
192 <text name="txt"> 181 <text name="txt">
193 Historique des votes du groupe 182 Historique des votes
194 </text> 183 </text>
195 <text name="instructions"> 184 <text name="instructions">
196 Vous pouvez afficher les anciens résultats en sélectionnant le vote et 185 Vous pouvez afficher les anciens résultats en sélectionnant le vote et
@@ -204,16 +193,14 @@ Tous les membres qui ne sont pas officiers sont candidats.
204 <text name="vote_text_lbl"> 193 <text name="vote_text_lbl">
205 Résultats du vote : 194 Résultats du vote :
206 </text> 195 </text>
207 <button label="Afficher la liste" label_selected="Afficher la liste" 196 <button label="Afficher la liste" label_selected="Afficher la liste" name="btn_view_list"/>
208 name="btn_view_list" /> 197 <button label="Afficher l&apos;objet" label_selected="Afficher l&apos;objet" name="btn_view_item"/>
209 <button label="Afficher l&apos;objet" label_selected="Afficher l&apos;objet"
210 name="btn_view_item" />
211 </panel> 198 </panel>
212 </tab_container> 199 </tab_container>
213 </panel> 200 </panel>
214 <panel label="Invitation" name="inv"> 201 <panel label="Invitation" name="inv">
215 <text name="txt"> 202 <text name="txt">
216 Invitations du groupe 203 Invitations
217 </text> 204 </text>
218 <text name="txt2"> 205 <text name="txt2">
219 Les invitations sont envoyées par messagerie instantanée. 206 Les invitations sont envoyées par messagerie instantanée.
@@ -224,21 +211,17 @@ Tous les membres qui ne sont pas officiers sont candidats.
224 <text name="lbl"> 211 <text name="lbl">
225 Officiers : 212 Officiers :
226 </text> 213 </text>
227 <button label="Ajouter un officier..." label_selected="Ajouter un officier..." 214 <button label="Ajouter un officier..." label_selected="Ajouter un officier..." name="add_officer_btn"/>
228 name="add_officer_btn" /> 215 <button label="Supprimer la sélection" label_selected="Supprimer la sélection" name="remove_officer_btn"/>
229 <button label="Supprimer la sélection" label_selected="Supprimer la sélection"
230 name="remove_officer_btn" />
231 <text name="lbl2"> 216 <text name="lbl2">
232 Membres : 217 Membres :
233 </text> 218 </text>
234 <button label="Ajouter un membre..." label_selected="Ajouter un membre..." 219 <button label="Ajouter un membre..." label_selected="Ajouter un membre..." name="add_member_btn"/>
235 name="add_member_btn" /> 220 <button label="Supprimer la sélection" label_selected="Supprimer la sélection" name="remove_member_btn"/>
236 <button label="Supprimer la sélection" label_selected="Supprimer la sélection"
237 name="remove_member_btn" />
238 <text name="lbl3"> 221 <text name="lbl3">
239 Frais d&apos;adhésion : 222 Frais d&apos;inscription :
240 </text> 223 </text>
241 <check_box label="Inscription libre (sans invitation)" name="open" /> 224 <check_box label="Inscription libre (sans invitation)" name="open"/>
242 </panel> 225 </panel>
243 <panel label="Terrain" name="land"> 226 <panel label="Terrain" name="land">
244 <text name="txt"> 227 <text name="txt">
@@ -247,37 +230,32 @@ Tous les membres qui ne sont pas officiers sont candidats.
247 <text name="lbl"> 230 <text name="lbl">
248 Total des contributions : 231 Total des contributions :
249 </text> 232 </text>
250 <button label="Carte..." label_selected="Carte..." name="map_btn" /> 233 <button label="Carte..." label_selected="Carte..." name="map_btn"/>
251 <text name="lbl2"> 234 <text name="lbl2">
252 Total du terrain utilisé : 235 Superficie déjà utilisée :
253 </text> 236 </text>
254 <text name="lbl3"> 237 <text name="lbl3">
255 Terrain disponible : 238 Superficie disponible :
256 </text> 239 </text>
257 <button label="Définir la contribution" label_selected="Définir la contribution" 240 <button label="Définir la contribution" label_selected="Définir la contribution" name="set_contrib_btn"/>
258 name="set_contrib_btn" />
259 <text name="warning_label"> 241 <text name="warning_label">
260 Avertissement : ce groupe a trop de terrain. les membres du groupe doivent faire une contribution plus importante. 242 Avertissement : ce groupe a trop de terrain. Les membres du groupe doivent faire une contribution plus importante.
261 </text> 243 </text>
262 </panel> 244 </panel>
263 <panel label="Argent" name="mon"> 245 <panel label="Argent" name="mon">
264 <tab_container name="group money history tab"> 246 <tab_container name="group money history tab">
265 <panel label="Planification" name="money panel" /> 247 <panel label="Planification" name="money panel"/>
266 <panel label="Détails" name="money panel2"> 248 <panel label="Détails" name="money panel2">
267 <button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" name="&lt; Earlier" 249 <button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" name="&lt; Earlier" tool_tip="Reculer dans le temps"/>
268 tool_tip="Reculer dans le temps" /> 250 <button label="Plus tard &gt;" label_selected="Plus tard &gt;" name="Later &gt;" tool_tip="Avancer dans le temps"/>
269 <button label="Plus tard &gt;" label_selected="Plus tard &gt;" name="Later &gt;"
270 tool_tip="Avancer dans le temps" />
271 </panel> 251 </panel>
272 <panel label="Ventes" name="money panel3"> 252 <panel label="Ventes" name="money panel3">
273 <button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" name="&lt; Earlier" 253 <button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" name="&lt; Earlier" tool_tip="Reculer dans le temps"/>
274 tool_tip="Reculer dans le temps" /> 254 <button label="Plus tard &gt;" label_selected="Plus tard &gt;" name="Later &gt;" tool_tip="Avancer dans le temps"/>
275 <button label="Plus tard &gt;" label_selected="Plus tard &gt;" name="Later &gt;"
276 tool_tip="Avancer dans le temps" />
277 </panel> 255 </panel>
278 </tab_container> 256 </tab_container>
279 </panel> 257 </panel>
280 </tab_container> 258 </tab_container>
281 <button label="OK" label_selected="OK" name="OK" /> 259 <button label="OK" label_selected="OK" name="OK"/>
282 <button label="Annuler" label_selected="Annuler" name="Cancel" /> 260 <button label="Annuler" label_selected="Annuler" name="Cancel"/>
283</floater> 261</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml b/linden/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml
index 1f17670..e3624c7 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Hardware Settings Floater" title="Configuration du matériel"> 2<floater name="Hardware Settings Floater" title="Configuration du matériel">
3 <text name="Filtering:"> 3 <text name="Filtering:">
4 Filtres : 4 Filtres :
5 </text> 5 </text>
6 <check_box label="Filtre anisotrope (plus lent si activé)" name="ani" /> 6 <check_box label="Filtre anisotrope (plus lent si activé)" name="ani"/>
7 <text name="Antialiasing:"> 7 <text name="Antialiasing:">
8 Anti-aliasing : 8 Anti-aliasing :
9 </text> 9 </text>
@@ -24,17 +24,15 @@
24 16x 24 16x
25 </combo_item> 25 </combo_item>
26 </combo_box> 26 </combo_box>
27 <spinner label="Gamma :" name="gamma" /> 27 <spinner label="Gamma :" name="gamma"/>
28 <text name="(brightness, lower is brighter)" left="217" > 28 <text left="217" name="(brightness, lower is brighter)">
29 (luminosité, valeur faible = plus lumineux, 0 = défaut) 29 (0 = défaut, valeur faible = plus lumineux)
30 </text> 30 </text>
31 <text name="Enable VBO:"> 31 <text name="Enable VBO:">
32 Activer le VBO : 32 Activer le VBO :
33 </text> 33 </text>
34 <check_box label="Activer OpenGL Vertex Buffer Objects" name="vbo" 34 <check_box label="Activer OpenGL Vertex Buffer Objects" name="vbo" tool_tip="Sur un matériel moderne, cette option permet une meilleure performance. Par contre, sur un matériel plus ancien, les VBO sont souvent mal implémentés et peuvent causer des crashs lorsqu&apos;ils sont activés."/>
35 tool_tip="Sur un matériel moderne, cette option permet une meilleure performance. Par contre, sur un matériel plus ancien, les VBO sont souvent mal implémentés et peuvent causer des crashs lorsqu&apos;ils sont activés." /> 35 <slider label="Mémoire vidéo (Mo) :" name="GrapicsCardTextureMemory" tool_tip="Total de la mémoire alloué aux textures. Mémoire de la carte vidéo par défaut. En réduisant cette valeur, vous pouvez accroître la performance mais les textures risquent de devenir floues."/>
36 <slider label="Mémoire texture (Mo) :" name="GrapicsCardTextureMemory" 36 <spinner label="Indice du brouillard :" name="fog"/>
37 tool_tip="Total de la mémoire alloué aux textures. Mémoire de la carte vidéo par défaut. En réduisant cette valeur, vous pouvez accroître la performance mais les textures risquent de devenir floues." /> 37 <button label="OK" label_selected="OK" name="OK"/>
38 <spinner label="Rapport de distance &#10;du brouillard :" name="fog" />
39 <button label="OK" label_selected="OK" name="OK" />
40</floater> 38</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_html.xml b/linden/indra/newview/skins/default/xui/fr/floater_html.xml
new file mode 100644
index 0000000..1538189
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/fr/floater_html.xml
@@ -0,0 +1,16 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="htmlfloater" title="">
3 <button label="Fermer" name="close_btn" />
4 <button label="Précédente" name="back_btn" />
5 <button label="Suivante" name="forward_btn" />
6 <button label="Rafraîchir" name="reload_btn" />
7 <button label="Arrêter" name="stop_btn" />
8 <button label="Domicile" name="home_btn" />
9 <button label="Aller" name="go_btn" />
10 <string name="home_page_url">
11 http://www.secondlife.com
12 </string>
13 <string name="support_page_url">
14 http://support.secondlife.com
15 </string>
16</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_image_preview.xml b/linden/indra/newview/skins/default/xui/fr/floater_image_preview.xml
index 9833fd2..3727e35 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_image_preview.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_image_preview.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Image Preview" title=""> 2<floater name="Image Preview" title="">
3 <text name="name_label"> 3 <text name="name_label">
4 Nom : 4 Nom :
@@ -9,7 +9,7 @@
9 <text name="preview_label"> 9 <text name="preview_label">
10 Prévisualiser comme : 10 Prévisualiser comme :
11 </text> 11 </text>
12 <combo_box label="Habits" name="clothing_type_combo"> 12 <combo_box label="Habits" name="clothing_type_combo" left="126" >
13 <combo_item name="Image"> 13 <combo_item name="Image">
14 Image 14 Image
15 </combo_item> 15 </combo_item>
@@ -38,7 +38,7 @@
38 Jupe 38 Jupe
39 </combo_item> 39 </combo_item>
40 <combo_item name="SculptedPrim"> 40 <combo_item name="SculptedPrim">
41 Prim sculpté 41 Sculptie
42 </combo_item> 42 </combo_item>
43 </combo_box> 43 </combo_box>
44 <text name="bad_image_text"> 44 <text name="bad_image_text">
@@ -46,7 +46,7 @@
46 46
47Sauvegardez en Targa 24 bit (.tga). 47Sauvegardez en Targa 24 bit (.tga).
48 </text> 48 </text>
49 <check_box label="Utiliser une compression sans perte" name="lossless_check" /> 49 <check_box label="Utiliser une compression sans perte" name="lossless_check"/>
50 <button label="Annuler" name="cancel_btn" /> 50 <button label="Annuler" name="cancel_btn"/>
51 <button label="Charger ([AMOUNT] $L)" name="ok_btn" /> 51 <button label="Charger ([AMOUNT] L$)" name="ok_btn"/>
52</floater> 52</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_import.xml b/linden/indra/newview/skins/default/xui/fr/floater_import.xml
index 2b0995c..4f106a6 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_import.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_import.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Import" title=""> 2<floater name="Import" title="">
3 <text name="name_label"> 3 <text name="name_label">
4 Nom : 4 Nom :
@@ -9,8 +9,8 @@
9 <text name="preview_label"> 9 <text name="preview_label">
10 Fichiers à charger : 10 Fichiers à charger :
11 </text> 11 </text>
12 <button label="Annuler" name="cancel_btn" /> 12 <button label="Annuler" name="cancel_btn"/>
13 <button label="Charger (10 $L)" name="ok_btn" /> 13 <button label="Charger (10 L$)" name="ok_btn"/>
14 <text name="preview_label2"> 14 <text name="preview_label2">
15 Prévisualisation de l&apos;image : 15 Prévisualisation de l&apos;image :
16 </text> 16 </text>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml
index fb95ccd..b7e2f8d 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater label="(inconnue)" name="im_floater" title="(inconnue)"> 2<floater label="(inconnue)" name="im_floater" title="(inconnue)">
3 <button label="Profil..." label_selected="Profil..." name="profile_btn" /> 3 <button label="Profil..." label_selected="Profil..." name="profile_btn"/>
4 <button label="Fermer" label_selected="Fermer" name="close_btn" /> 4 <button label="Fermer" label_selected="Fermer" name="close_btn"/>
5 <string name="ringing"> 5 <string name="ringing">
6 Appel en cours... 6 Appel en cours...
7 </string> 7 </string>
@@ -26,14 +26,14 @@
26 <string name="default_text_label"> 26 <string name="default_text_label">
27 Cliquez ici pour envoyer un message instantané. 27 Cliquez ici pour envoyer un message instantané.
28 </string> 28 </string>
29 <button label="Profil..." name="profile_callee_btn" /> 29 <button label="Profil..." name="profile_callee_btn"/>
30 <button label="Appeler" name="start_call_btn" /> 30 <button label="Appeler" name="start_call_btn"/>
31 <button label="Raccrocher" name="end_call_btn" /> 31 <button label="Raccrocher" name="end_call_btn"/>
32 <panel name="speaker_controls"> 32 <panel name="speaker_controls">
33 <button name="mute_btn" tool_tip="Ignorer" /> 33 <button name="mute_btn" tool_tip="Ignorez"/>
34 </panel> 34 </panel>
35 <line_editor label="Cliquez ici pour envoyer un message instantané" name="chat_editor" /> 35 <line_editor label="Cliquez ici pour envoyer un message instantané" name="chat_editor"/>
36 <button label="Envoyer" name="send_btn" /> 36 <button label="Envoyer" name="send_btn"/>
37 <text name="live_help_dialog"> 37 <text name="live_help_dialog">
38 *** Bienvenue sur la page Demande d&apos;aide *** 38 *** Bienvenue sur la page Demande d&apos;aide ***
39Veuillez au préalable consulter les pages d&apos;aide de Second Life en appuyant sur la touche F1, ou en accédant à la base de connaissances http://secondlife.com/knowledgebase/ 39Veuillez au préalable consulter les pages d&apos;aide de Second Life en appuyant sur la touche F1, ou en accédant à la base de connaissances http://secondlife.com/knowledgebase/
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_instant_message_ad_hoc.xml b/linden/indra/newview/skins/default/xui/fr/floater_instant_message_ad_hoc.xml
index 35a43d5..38119fa 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_instant_message_ad_hoc.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_instant_message_ad_hoc.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater label="(inconnu)" name="im_floater" title="(inconnu)"> 2<floater label="(inconnu)" name="im_floater" title="(inconnu)">
3 <string name="ringing"> 3 <string name="ringing">
4 En train de rejoindre le chat vocal... 4 En train de rejoindre le chat vocal...
@@ -27,11 +27,10 @@
27 <layout_stack name="panels"> 27 <layout_stack name="panels">
28 <layout_panel name="im_contents_panel"> 28 <layout_panel name="im_contents_panel">
29 <button label="Appeler" name="start_call_btn" width="95"/> 29 <button label="Appeler" name="start_call_btn" width="95"/>
30 <button label="Raccrocher" name="end_call_btn" width="95" halign="right"/> 30 <button halign="right" label="Raccrocher" name="end_call_btn" width="95"/>
31 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" 31 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="Affichez/masquez la liste des intervenants actifs dans cette session IM."/>
32 tool_tip="Cliquez ici pour mettre la liste des intervenants actifs dans cette session IM en mode bascule." /> 32 <line_editor label="Cliquez ici pour envoyer un message instantané" name="chat_editor"/>
33 <line_editor label="Cliquez ici pour envoyer un message instantané" name="chat_editor" /> 33 <button label="Envoyer" name="send_btn"/>
34 <button label="Envoyer" name="send_btn" />
35 </layout_panel> 34 </layout_panel>
36 </layout_stack> 35 </layout_stack>
37 <string name="live_help_dialog"> 36 <string name="live_help_dialog">
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml b/linden/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml
index d1e9888..e5057ee 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater label="(inconnu)" name="im_floater" title="(inconnu)"> 2<floater label="(inconnu)" name="im_floater" title="(inconnu)">
3 <string name="ringing"> 3 <string name="ringing">
4 En train de rejoindre le chat vocal... 4 En train de rejoindre le chat vocal...
@@ -38,13 +38,11 @@
38 </string> 38 </string>
39 <layout_stack name="panels"> 39 <layout_stack name="panels">
40 <layout_panel name="im_contents_panel"> 40 <layout_panel name="im_contents_panel">
41 <button label="Infos sur le groupe" name="group_info_btn" width="120" /> 41 <button label="Infos sur le groupe" name="group_info_btn" width="120"/>
42 <button label="Participer à l&apos;appel" left_delta="125" name="start_call_btn" 42 <button label="Participer à l&apos;appel" left_delta="125" name="start_call_btn" width="145"/>
43 width="145" /> 43 <button halign="center" label="Raccrocher" name="end_call_btn" width="145"/>
44 <button halign="center" label="Raccrocher" name="end_call_btn" width="145" /> 44 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="Affichez/Masquez la liste des intervenants actifs dans cette session IM."/>
45 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" 45 <button label="Envoyer" name="send_btn"/>
46 tool_tip="Cliquez ici pour mettre la liste des intervenants actifs dans cette session IM en mode bascule." />
47 <button label="Envoyer" name="send_btn" />
48 </layout_panel> 46 </layout_panel>
49 </layout_stack> 47 </layout_stack>
50</floater> 48</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_inventory.xml b/linden/indra/newview/skins/default/xui/fr/floater_inventory.xml
index d522af9..071c0ae 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_inventory.xml
@@ -1,55 +1,55 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Inventory" title="Inventaire"> 2<floater name="Inventory" title="Inventaire">
3 <search_editor label="Saisissez votre recherche ici" name="inventory search editor" /> 3 <search_editor label="Saisissez votre recherche ici" name="inventory search editor"/>
4 <tab_container name="inventory filter tabs"> 4 <tab_container name="inventory filter tabs">
5 <inventory_panel label="Tous les objets" name="All Items" /> 5 <inventory_panel label="Tous les objets" name="All Items"/>
6 <inventory_panel label="Objets récents" name="Recent Items" /> 6 <inventory_panel label="Objets récents" name="Recent Items"/>
7 </tab_container> 7 </tab_container>
8 <menu_bar name="Inventory Menu"> 8 <menu_bar name="Inventory Menu">
9 <menu label="Fichier" name="File"> 9 <menu label="Fichier" name="File">
10 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 10 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
11 <menu_item_call label="Ouvrir" name="Open" /> 11 <menu_item_call label="Ouvrir" name="Open"/>
12 <menu_item_call label="Nouvelle fenêtre" name="New Window" /> 12 <menu_item_call label="Nouvelle fenêtre" name="New Window"/>
13 <menu_item_call label="Afficher les filtres" name="Show Filters" /> 13 <menu_item_call label="Afficher les filtres" name="Show Filters"/>
14 <menu_item_call label="Réinitialiser les filtres" name="Reset Current" /> 14 <menu_item_call label="Réinitialiser les filtres" name="Reset Current"/>
15 <menu_item_call label="Fermer tous les dossiers" name="Close All Folders" /> 15 <menu_item_call label="Fermer tous les dossiers" name="Close All Folders"/>
16 <menu_item_call label="Vider la corbeille" name="Empty Trash" /> 16 <menu_item_call label="Vider la corbeille" name="Empty Trash"/>
17 </menu> 17 </menu>
18 <menu label="Créer" name="Create"> 18 <menu label="Créer" name="Create">
19 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 19 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
20 <menu_item_call label="Nouveau dossier" name="New Folder" /> 20 <menu_item_call label="Nouveau dossier" name="New Folder"/>
21 <menu_item_call label="Nouveau script" name="New Script" /> 21 <menu_item_call label="Nouveau script" name="New Script"/>
22 <menu_item_call label="Nouvelle note" name="New Note" /> 22 <menu_item_call label="Nouvelle note" name="New Note"/>
23 <menu_item_call label="Nouveau geste" name="New Gesture" /> 23 <menu_item_call label="Nouveau geste" name="New Gesture"/>
24 <menu name="New Clothes"> 24 <menu name="New Clothes">
25 <menu_item_call label="Nouvelle jupe" name="New Shirt" /> 25 <menu_item_call label="Nouvelle chemise" name="New Shirt"/>
26 <menu_item_call label="Nouveau pantalon" name="New Pants" /> 26 <menu_item_call label="Nouveau pantalon" name="New Pants"/>
27 <menu_item_call label="Nouvelles chaussures" name="New Shoes" /> 27 <menu_item_call label="Nouvelles chaussures" name="New Shoes"/>
28 <menu_item_call label="Nouvelles chaussettes" name="New Socks" /> 28 <menu_item_call label="Nouvelles chaussettes" name="New Socks"/>
29 <menu_item_call label="Nouvelle veste" name="New Jacket" /> 29 <menu_item_call label="Nouvelle veste" name="New Jacket"/>
30 <menu_item_call label="Nouvelle jupe" name="New Skirt" /> 30 <menu_item_call label="Nouvelle jupe" name="New Skirt"/>
31 <menu_item_call label="Nouveaux gants" name="New Gloves" /> 31 <menu_item_call label="Nouveaux gants" name="New Gloves"/>
32 <menu_item_call label="Nouveau tricot de peau" name="New Undershirt" /> 32 <menu_item_call label="Nouveau tricot" name="New Undershirt"/>
33 <menu_item_call label="Nouveaux sous-vêtements" name="New Underpants" /> 33 <menu_item_call label="Nouveaux sous-vêtements" name="New Underpants"/>
34 </menu> 34 </menu>
35 <menu name="New Body Parts"> 35 <menu name="New Body Parts">
36 <menu_item_call label="Nouvelle silhouette" name="New Shape" /> 36 <menu_item_call label="Nouvelle silhouette" name="New Shape"/>
37 <menu_item_call label="Nouvelle peau" name="New Skin" /> 37 <menu_item_call label="Nouvelle peau" name="New Skin"/>
38 <menu_item_call label="Nouveaux cheveux" name="New Hair" /> 38 <menu_item_call label="Nouveaux cheveux" name="New Hair"/>
39 <menu_item_call label="Nouveaux yeux" name="New Eyes" /> 39 <menu_item_call label="Nouveaux yeux" name="New Eyes"/>
40 </menu> 40 </menu>
41 </menu> 41 </menu>
42 <menu label="Trier" name="Sort"> 42 <menu label="Trier" name="Sort">
43 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 43 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
44 <menu_item_check label="Par nom" name="By Name" /> 44 <menu_item_check label="Par nom" name="By Name"/>
45 <menu_item_check label="Par date" name="By Date" /> 45 <menu_item_check label="Par date" name="By Date"/>
46 <menu_item_check label="Dossiers toujours par nom" name="Folders Always By Name" /> 46 <menu_item_check label="Trier les dossiers par nom" name="Folders Always By Name"/>
47 <menu_item_check label="Dossiers système au dessus" name="System Folders To Top" /> 47 <menu_item_check label="Dossiers système en premier" name="System Folders To Top"/>
48 </menu> 48 </menu>
49 <menu label="Filters" name="Filters"> 49 <menu label="Filters" name="Filters">
50 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 50 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
51 <menu_item_check label="Modifier actuel" name="Modify Current" /> 51 <menu_item_check label="Modifier actuel" name="Modify Current"/>
52 <menu_item_call label="Réinitialiser actuel" name="Reset Current" /> 52 <menu_item_call label="Réinitialiser actuel" name="Reset Current"/>
53 </menu> 53 </menu>
54 </menu_bar> 54 </menu_bar>
55</floater> 55</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml b/linden/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
index 462692c..92dbc36 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
@@ -1,6 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="item properties" 2<floater name="item properties" title="Propriétés de l&apos;objet de l&apos;inventaire">
3 title="Propriétés de l&apos;objet de l&apos;inventaire">
4 <text name="LabelItemNameTitle"> 3 <text name="LabelItemNameTitle">
5 Nom : 4 Nom :
6 </text> 5 </text>
@@ -13,14 +12,14 @@
13 <text name="LabelCreatorName"> 12 <text name="LabelCreatorName">
14 Nicole Linden 13 Nicole Linden
15 </text> 14 </text>
16 <button label="Profil..." label_selected="" name="BtnCreator" /> 15 <button label="Profil..." label_selected="" name="BtnCreator"/>
17 <text name="LabelOwnerTitle"> 16 <text name="LabelOwnerTitle">
18 Propriétaire : 17 Propriétaire :
19 </text> 18 </text>
20 <text name="LabelOwnerName"> 19 <text name="LabelOwnerName">
21 Thrax Linden 20 Thrax Linden
22 </text> 21 </text>
23 <button label="Profil..." label_selected="" name="BtnOwner" /> 22 <button label="Profil..." label_selected="" name="BtnOwner"/>
24 <text name="LabelAcquiredTitle"> 23 <text name="LabelAcquiredTitle">
25 Acquis : 24 Acquis :
26 </text> 25 </text>
@@ -30,9 +29,9 @@
30 <text name="OwnerLabel"> 29 <text name="OwnerLabel">
31 Vous pouvez : 30 Vous pouvez :
32 </text> 31 </text>
33 <check_box label="Modifier" name="CheckOwnerModify" /> 32 <check_box label="Modifier" name="CheckOwnerModify"/>
34 <check_box label="Copier" name="CheckOwnerCopy" /> 33 <check_box label="Copier" name="CheckOwnerCopy"/>
35 <check_box label="Revendre/Donner" name="CheckOwnerTransfer" /> 34 <check_box label="Revendre/Donner" name="CheckOwnerTransfer"/>
36 <text name="BaseMaskDebug"> 35 <text name="BaseMaskDebug">
37 B : 36 B :
38 </text> 37 </text>
@@ -48,18 +47,18 @@
48 <text name="NextMaskDebug"> 47 <text name="NextMaskDebug">
49 N : 48 N :
50 </text> 49 </text>
51 <check_box label="Partager avec le groupe" name="CheckShareWithGroup" /> 50 <check_box label="Partager avec le groupe" name="CheckShareWithGroup"/>
52 <check_box label="Autoriser tout le monde à copier" name="CheckEveryoneCopy" /> 51 <check_box label="Autoriser tout le monde à copier" name="CheckEveryoneCopy"/>
53 <text name="NextOwnerLabel"> 52 <text name="NextOwnerLabel" width="192">
54 Le prochain propriétaire pourra : 53 Le prochain propriétaire pourra :
55 </text> 54 </text>
56 <check_box label="Modifier" name="CheckNextOwnerModify" /> 55 <check_box label="Modifier" name="CheckNextOwnerModify"/>
57 <check_box label="Copier" name="CheckNextOwnerCopy" /> 56 <check_box label="Copier" name="CheckNextOwnerCopy"/>
58 <check_box label="Revendre/Donner" name="CheckNextOwnerTransfer" /> 57 <check_box label="Revendre/Donner" name="CheckNextOwnerTransfer"/>
59 <text name="SaleLabel"> 58 <text name="SaleLabel">
60 Marquer l&apos;objet : 59 Marquer l&apos;objet :
61 </text> 60 </text>
62 <check_box label="À vendre" name="CheckPurchase" /> 61 <check_box label="À vendre" name="CheckPurchase"/>
63 <radio_group name="RadioSaleType"> 62 <radio_group name="RadioSaleType">
64 <radio_item name="radio"> 63 <radio_item name="radio">
65 Original 64 Original
@@ -69,7 +68,7 @@
69 </radio_item> 68 </radio_item>
70 </radio_group> 69 </radio_group>
71 <text name="TextPrice"> 70 <text name="TextPrice">
72 Prix : $L 71 Prix : L$
73 </text> 72 </text>
74 <string name="unknown"> 73 <string name="unknown">
75 (inconnu) 74 (inconnu)
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml b/linden/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
index d5cdba4..090f5f6 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
@@ -1,24 +1,24 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Inventory Finder" title="inventory_recent_items"> 2<floater name="Inventory Finder" title="inventory_recent_items">
3 <check_box label="Animation" name="check_animation" /> 3 <check_box label="Animations" name="check_animation"/>
4 <check_box label="Cartes de visite" name="check_calling_card" /> 4 <check_box label="Cartes de visite" name="check_calling_card"/>
5 <check_box label="Habits" name="check_clothing" /> 5 <check_box label="Habits" name="check_clothing"/>
6 <check_box label="Gestes" name="check_gesture" /> 6 <check_box label="Gestes" name="check_gesture"/>
7 <check_box label="Repères" name="check_landmark" /> 7 <check_box label="Repères" name="check_landmark"/>
8 <check_box label="Notes" name="check_notecard" /> 8 <check_box label="Notes" name="check_notecard"/>
9 <check_box label="Objets" name="check_object" /> 9 <check_box label="Objets" name="check_object"/>
10 <check_box label="Scripts" name="check_script" /> 10 <check_box label="Scripts" name="check_script"/>
11 <check_box label="Sons" name="check_sound" /> 11 <check_box label="Sons" name="check_sound"/>
12 <check_box label="Textures" name="check_texture" /> 12 <check_box label="Textures" name="check_texture"/>
13 <check_box label="Photos" name="check_snapshot" /> 13 <check_box label="Photos" name="check_snapshot"/>
14 <button label="Tout" label_selected="Tout" name="All" /> 14 <button label="Tout" label_selected="Tout" name="All" width="70"/>
15 <button label="Aucun" label_selected="Aucun" name="None" /> 15 <button label="Aucun" label_selected="Aucun" name="None" width="70" bottom="-260" left="83"/>
16 <check_box label="Toujours montrer les dossiers" name="check_show_empty" /> 16 <check_box label="Toujours montrer &#10;les dossiers" name="check_show_empty" bottom="-284"/>
17 <check_box label="Depuis la déconnexion" name="check_since_logoff" /> 17 <check_box label="Depuis la déconnexion" name="check_since_logoff" bottom="-318"/>
18 <text type="string" length="1" name="- OR -"> 18 <text length="1" name="- OR -" type="string">
19 Ou il y a... 19 Ou il y a...
20 </text> 20 </text>
21 <spinner label="Heures" name="spin_hours_ago" /> 21 <spinner label="Heures" name="spin_hours_ago"/>
22 <spinner label="Jours" name="spin_days_ago" /> 22 <spinner label="Jours" name="spin_days_ago"/>
23 <button label="Fermer" label_selected="Fermer" name="Close" /> 23 <button label="Fermer" label_selected="Fermer" name="Close"/>
24</floater> 24</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_joystick.xml b/linden/indra/newview/skins/default/xui/fr/floater_joystick.xml
index eddbe19..ab841e4 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_joystick.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_joystick.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Joystick" title="Configuration du joystick"> 2<floater name="Joystick" title="Configuration du joystick">
3 <check_box name="enable_joystick"> 3 <check_box name="enable_joystick">
4 Activer le joystick : 4 Activer :
5 </check_box> 5 </check_box>
6 <spinner label="Mapping axe des X " name="JoystickAxis1" /> 6 <spinner label="Mapping axe des X " name="JoystickAxis1" />
7 <spinner label="Mapping axe des Y" name="JoystickAxis2" /> 7 <spinner label="Mapping axe des Y" name="JoystickAxis2" />
@@ -78,6 +78,6 @@
78 Axe [NUM] 78 Axe [NUM]
79 </string> 79 </string>
80 <string name="NoDevice"> 80 <string name="NoDevice">
81 aucun dispositif détecté 81 aucun joystick détecté
82 </string> 82 </string>
83</floater> 83</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_lagmeter.xml b/linden/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
index 22f5ab4..54069c9 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
@@ -1,30 +1,30 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_lagmeter" title="Calcul du lag"> 2<floater name="floater_lagmeter" title="Mesure du lag">
3 <button name="client_lagmeter" tool_tip="Statut du lag client" /> 3 <button name="client_lagmeter" tool_tip="Statut du lag client"/>
4 <text name="client"> 4 <text name="client">
5 Client : 5 Client :
6 </text> 6 </text>
7 <text name="client_text"> 7 <text name="client_text">
8 Normal 8 Normal
9 </text> 9 </text>
10 <button name="network_lagmeter" tool_tip="Statut du lag réseau" /> 10 <button name="network_lagmeter" tool_tip="Statut du lag réseau"/>
11 <text name="network"> 11 <text name="network">
12 Réseau : 12 Réseau :
13 </text> 13 </text>
14 <text name="network_text"> 14 <text name="network_text">
15 Normal 15 Normal
16 </text> 16 </text>
17 <button name="server_lagmeter" tool_tip="Statut du lag serveur" /> 17 <button name="server_lagmeter" tool_tip="Statut du lag serveur"/>
18 <text name="server"> 18 <text name="server">
19 Serveur : 19 Serveur :
20 </text> 20 </text>
21 <text name="server_text"> 21 <text name="server_text">
22 Normal 22 Normal
23 </text> 23 </text>
24 <button label="?" name="server_help" /> 24 <button label="?" name="server_help"/>
25 <button label="&gt;&gt;" name="minimize" /> 25 <button label="&gt;&gt;" name="minimize"/>
26 <string name="max_title_msg"> 26 <string name="max_title_msg">
27 Calcul du lag 27 Mesure du lag
28 </string> 28 </string>
29 <string name="max_width_px"> 29 <string name="max_width_px">
30 360 30 360
@@ -57,7 +57,7 @@
57 Normal 57 Normal
58 </string> 58 </string>
59 <string name="client_draw_distance_cause_msg"> 59 <string name="client_draw_distance_cause_msg">
60 Cause possible : la distance d&apos;affichage est trop élevée 60 Cause possible : la limite d&apos;affichage est trop élevée
61 </string> 61 </string>
62 <string name="client_texture_loading_cause_msg"> 62 <string name="client_texture_loading_cause_msg">
63 Cause possible : images en cours de chargement 63 Cause possible : images en cours de chargement
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_land_holdings.xml b/linden/indra/newview/skins/default/xui/fr/floater_land_holdings.xml
index c9489b8..4a63abf 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_land_holdings.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_land_holdings.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="land holdings floater" title="Mon terrain"> 2<floater name="land holdings floater" title="Mes terrains">
3 <scroll_list name="parcel list"> 3 <scroll_list name="parcel list">
4 <column label="Nom" name="name" /> 4 <column label="Nom" name="name" />
5 <column label="Emplacement" name="location" /> 5 <column label="Emplacement" name="location" />
@@ -7,9 +7,9 @@
7 <column label="" name="hidden" /> 7 <column label="" name="hidden" />
8 </scroll_list> 8 </scroll_list>
9 <button label="Téléporter" label_selected="Téléporter" name="Teleport" 9 <button label="Téléporter" label_selected="Téléporter" name="Teleport"
10 tool_tip="Téléporter au milieu de ce terrain." /> 10 tool_tip="Téléportez-vous au milieu de ce terrain." />
11 <button label="Voir sur la carte" label_selected="Voir sur la carte" name="Show on Map" 11 <button label="Voir sur la carte" label_selected="Voir sur la carte" name="Show on Map"
12 tool_tip="Afficher ce terrain sur la carte du monde." /> 12 tool_tip="Affichez ce terrain sur la carte du monde." />
13 <text name="contrib_label"> 13 <text name="contrib_label">
14 Vos contributions : 14 Vos contributions :
15 </text> 15 </text>
@@ -18,7 +18,7 @@
18 <column label="Surface" name="area" /> 18 <column label="Surface" name="area" />
19 </scroll_list> 19 </scroll_list>
20 <text name="allowed_label"> 20 <text name="allowed_label">
21 Surface de terrain autorisée avec votre compte actuel : 21 Surface de terrain autorisée avec votre compte :
22 </text> 22 </text>
23 <text name="allowed_text"> 23 <text name="allowed_text">
24 [AREA] m² 24 [AREA] m²
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml b/linden/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml
index 68b7d82..5dc0fa7 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="script ed float" title="Wiki LSL"> 2<floater name="script ed float" title="Wiki LSL">
3 <check_box label="Suivre le curseur" name="lock_check" /> 3 <check_box label="Suivre le curseur" name="lock_check" />
4 <combo_box label="Verrouiller" name="history_combo" /> 4 <combo_box label="Verrouiller" name="history_combo" left_delta="120" width="70"/>
5 <button label="Précédente" name="back_btn" /> 5 <button label="Précédente" name="back_btn" left_delta="75"/>
6 <button label="Suivante" name="fwd_btn" /> 6 <button label="Suivante" name="fwd_btn" />
7</floater> 7</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_media_browser.xml b/linden/indra/newview/skins/default/xui/fr/floater_media_browser.xml
index 0ee7bab..b0b842a 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_media_browser.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_media_browser.xml
@@ -1,20 +1,20 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_about" title="Navigateur média"> 2<floater name="floater_about" title="Navigateur">
3 <layout_stack name="stack1"> 3 <layout_stack name="stack1">
4 <layout_panel name="nav_controls"> 4 <layout_panel name="nav_controls">
5 <button label="Précédente" name="back" width="75" /> 5 <button label="Précédente" name="back" width="75"/>
6 <button label="Suivante" name="forward" width="70" left_delta="75" /> 6 <button label="Suivante" left_delta="75" name="forward" width="70"/>
7 <button label="Recharger" name="reload" left_delta="75" /> 7 <button label="Rafraîchir" left_delta="75" name="reload"/>
8 <combo_box left_delta="75" name="address" width="250" /> 8 <combo_box left_delta="75" name="address" width="250"/>
9 <button label="Aller" name="go" left_delta="255"/> 9 <button label="OK" left_delta="255" name="go"/>
10 </layout_panel> 10 </layout_panel>
11 <layout_panel name="parcel_owner_controls"> 11 <layout_panel name="parcel_owner_controls">
12 <button label="Envoyer URL actuelle sur parcelle" name="assign" /> 12 <button label="Envoyer l&apos;URL sur la parcelle" name="assign"/>
13 </layout_panel> 13 </layout_panel>
14 <layout_panel name="external_controls"> 14 <layout_panel name="external_controls">
15 <button label="Ouvrir dans mon navigateur web" name="open_browser" width="190" /> 15 <button label="Ouvrir dans mon navigateur web" name="open_browser" width="196"/>
16 <check_box label="Toujours ouvrir dans mon navigateur web" name="open_always" left_delta="195"/> 16 <check_box label="Toujours ouvrir dans mon navigateur web" left_delta="201" name="open_always"/>
17 <button label="Fermer" name="close" /> 17 <button label="Fermer" name="close"/>
18 </layout_panel> 18 </layout_panel>
19 </layout_stack> 19 </layout_stack>
20</floater> 20</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_moveview.xml b/linden/indra/newview/skins/default/xui/fr/floater_moveview.xml
index 311f8be..55ea870 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_moveview.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_moveview.xml
@@ -1,15 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="move floater" title=""> 2<floater name="move floater" title="">
3 <button label="" label_selected="" name="turn left btn" tool_tip="Tourner à gauche" /> 3 <button label="" label_selected="" name="turn left btn" tool_tip="Tourner à gauche"/>
4 <button label="" label_selected="" name="turn right btn" tool_tip="Tourner à droite" /> 4 <button label="" label_selected="" name="turn right btn" tool_tip="Tourner à droite"/>
5 <button label="" label_selected="" name="move up btn" 5 <button label="" label_selected="" name="move up btn" tool_tip="Sauter ou voler vers le haut"/>
6 tool_tip="Sauter ou voler vers le haut" /> 6 <button label="" label_selected="" name="move down btn" tool_tip="S&apos;accroupir ou voler vers le bas"/>
7 <button label="" label_selected="" name="move down btn" 7 <button label="Voler" label_selected="Voler" name="fly btn" tool_tip="Démarrer/arrêter le vol"/>
8 tool_tip="S&apos;accroupir ou voler vers le bas" /> 8 <joystick_slide name="slide left btn" tool_tip="Se déplacer vers la gauche"/>
9 <button label="Voler" label_selected="Voler" name="fly btn" 9 <joystick_slide name="slide right btn" tool_tip="Se déplacer vers la droite"/>
10 tool_tip="Démarrer/arrêter vol" /> 10 <joystick_turn name="forward btn" tool_tip="Se déplacer vers l&apos;avant"/>
11 <joystick_slide name="slide left btn" tool_tip="Se déplacer vers la gauche" /> 11 <joystick_turn name="backward btn" tool_tip="Se déplacer vers l&apos;arrière"/>
12 <joystick_slide name="slide right btn" tool_tip="Se déplacer vers la droite" />
13 <joystick_turn name="forward btn" tool_tip="Se déplacer vers l&apos;avant" />
14 <joystick_turn name="backward btn" tool_tip="Se déplacer vers l&apos;arrière" />
15</floater> 12</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_mute.xml b/linden/indra/newview/skins/default/xui/fr/floater_mute.xml
index aeed682..0a527c9 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_mute.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_mute.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="mute floater" title="Résidents et objets ignorés"> 2<floater name="mute floater" title="Résidents et objets ignorés" short_title="Liste des ignorés">
3 <scroll_list name="mutes" tool_tip="Liste des résidents ignorés actuellement" /> 3 <scroll_list name="mutes" tool_tip="Liste des résidents ignorés actuellement" />
4 <button label="Ignorer le résident..." label_selected="Ignorer le résident..." 4 <button label="Ignorer le résident..." label_selected="Ignorer le résident..."
5 name="Mute resident..." 5 name="Mute resident..."
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_mute_object.xml b/linden/indra/newview/skins/default/xui/fr/floater_mute_object.xml
index 441c527..23d351f 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_mute_object.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_mute_object.xml
@@ -1,12 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="mute by name" title="Ignorer les objets par nom"> 2<floater name="mute by name" title="Ignorer les objets par nom">
3 <text name="message"> 3 <text name="message">
4 Ignorer par nom ne marche que pour les chats et IM, pas les sons. 4 Cette fonction ne marche que pour les chats et les IM,
5Vous devez saisir le nom exact de l&apos;objet. 5pas les sons. Saisissez le nom exact de l&apos;objet.
6 </text> 6 </text>
7 <line_editor name="object_name"> 7 <line_editor name="object_name">
8 Nom de l&apos;objet 8 Nom de l&apos;objet
9 </line_editor> 9 </line_editor>
10 <button label="OK" name="OK" /> 10 <button label="OK" name="OK"/>
11 <button label="Annuler" name="Cancel" /> 11 <button label="Annuler" name="Cancel"/>
12</floater> 12</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_name_description.xml b/linden/indra/newview/skins/default/xui/fr/floater_name_description.xml
index e1915bd..7ddc913 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_name_description.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_name_description.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Name/Description" title=""> 2<floater name="Name/Description" title="">
3 <text name="name_label"> 3 <text name="name_label">
4 Nom : 4 Nom :
@@ -6,6 +6,6 @@
6 <text name="description_label"> 6 <text name="description_label">
7 Description : 7 Description :
8 </text> 8 </text>
9 <button label="Annuler" name="cancel_btn" /> 9 <button label="Annuler" name="cancel_btn"/>
10 <button label="Charger (10 $L)" name="ok_btn" /> 10 <button label="Charger (10 L$)" name="ok_btn"/>
11</floater> 11</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_new_outfit_dialog.xml b/linden/indra/newview/skins/default/xui/fr/floater_new_outfit_dialog.xml
index a716724..b3f329e 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_new_outfit_dialog.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_new_outfit_dialog.xml
@@ -1,86 +1,85 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="modal container" width="585"> 2<floater name="modal container" width="585">
3 <button label="Enregistrer" label_selected="Enregistrer" left="171" name="Save" 3 <button label="Enregistrer" label_selected="Enregistrer" left="171" name="Save" width="100"/>
4 width="100" /> 4 <button label="Annuler" label_selected="Annuler" left="280" name="Cancel" width="100"/>
5 <button label="Annuler" label_selected="Annuler" left="280" name="Cancel" width="100" /> 5 <check_box label="Silhouette" name="checkbox_Shape"/>
6 <check_box label="Silhouette" name="checkbox_Shape" /> 6 <check_box label="Peau" name="checkbox_Skin"/>
7 <check_box label="Peau" name="checkbox_Skin" /> 7 <check_box label="Cheveux" name="checkbox_Hair"/>
8 <check_box label="Cheveux" name="checkbox_Hair" /> 8 <check_box label="Yeux" name="checkbox_Eyes"/>
9 <check_box label="Yeux" name="checkbox_Eyes" /> 9 <check_box label="Donner le nom du dossier &#10;à l&apos;ensemble" name="rename"/>
10 <check_box label="Donner un nom de &#10;dossier à l&apos;ensemble" name="rename" /> 10 <check_box label="Chemise" name="checkbox_Shirt"/>
11 <check_box label="Chemise" name="checkbox_Shirt" /> 11 <check_box label="Pantalon" name="checkbox_Pants"/>
12 <check_box label="Pantalon" name="checkbox_Pants" /> 12 <check_box label="Chaussures" name="checkbox_Shoes"/>
13 <check_box label="Chaussures" name="checkbox_Shoes" /> 13 <check_box label="Chaussettes" name="checkbox_Socks"/>
14 <check_box label="Chaussettes" name="checkbox_Socks" /> 14 <check_box label="Veste" name="checkbox_Jacket"/>
15 <check_box label="Veste" name="checkbox_Jacket" /> 15 <check_box label="Gants" name="checkbox_Gloves"/>
16 <check_box label="Gants" name="checkbox_Gloves" /> 16 <check_box label="Tricot" name="checkbox_Undershirt"/>
17 <check_box label="Tricot de peau" name="checkbox_Undershirt" /> 17 <check_box label="Sous-vêtements" name="checkbox_Underpants"/>
18 <check_box label="Sous-vêtements" name="checkbox_Underpants" /> 18 <check_box label="Jupe" name="checkbox_Skirt"/>
19 <check_box label="Jupe" name="checkbox_Skirt" /> 19 <check_box label="Poitrine" left="225" name="checkbox_Chest"/>
20 <check_box label="Poitrine" left="225" name="checkbox_Chest" /> 20 <check_box label="Crâne" left="225" name="checkbox_Skull"/>
21 <check_box label="Crâne" left="225" name="checkbox_Skull" /> 21 <check_box label="Épaule gauche" left="225" name="checkbox_Left Shoulder"/>
22 <check_box label="Épaule gauche" left="225" name="checkbox_Left Shoulder" /> 22 <check_box label="Épaule droite" left="225" name="checkbox_Right Shoulder"/>
23 <check_box label="Épaule droite" left="225" name="checkbox_Right Shoulder" /> 23 <check_box label="Main gauche" left="225" name="checkbox_Left Hand"/>
24 <check_box label="Main gauche" left="225" name="checkbox_Left Hand" /> 24 <check_box label="Main droite" left="225" name="checkbox_Right Hand"/>
25 <check_box label="Main droite" left="225" name="checkbox_Right Hand" /> 25 <check_box label="Pied gauche" left="225" name="checkbox_Left Foot"/>
26 <check_box label="Pied gauche" left="225" name="checkbox_Left Foot" /> 26 <check_box label="Pied droit" left="225" name="checkbox_Right Foot"/>
27 <check_box label="Pied droit" left="225" name="checkbox_Right Foot" /> 27 <check_box label="Colonne" left="225" name="checkbox_Spine"/>
28 <check_box label="Colonne" left="225" name="checkbox_Spine" /> 28 <check_box label="Bassin" left="225" name="checkbox_Pelvis"/>
29 <check_box label="Bassin" left="225" name="checkbox_Pelvis" /> 29 <check_box label="Bouche" left="225" name="checkbox_Mouth"/>
30 <check_box label="Bouche" left="225" name="checkbox_Mouth" /> 30 <check_box label="Menton" left="225" name="checkbox_Chin"/>
31 <check_box label="Menton" left="225" name="checkbox_Chin" /> 31 <check_box label="Oreille gauche" left="225" name="checkbox_Left Ear"/>
32 <check_box label="Oreille gauche" left="225" name="checkbox_Left Ear" /> 32 <check_box label="Oreille droite" left="325" name="checkbox_Right Ear"/>
33 <check_box label="Oreille droite" left="325" name="checkbox_Right Ear" /> 33 <check_box label="Å’il gauche" left="325" name="checkbox_Left Eyeball"/>
34 <check_box label="Globe oculaire gauche" left="325" name="checkbox_Left Eyeball" /> 34 <check_box label="Å’il droit" left="325" name="checkbox_Right Eyeball"/>
35 <check_box label="Globe oculaire droit" left="325" name="checkbox_Right Eyeball" /> 35 <check_box label="Nez" left="325" name="checkbox_Nose"/>
36 <check_box label="Nez" left="325" name="checkbox_Nose" /> 36 <check_box label="Bras droit" left="325" name="checkbox_R Upper Arm"/>
37 <check_box label="Bras droit" left="325" name="checkbox_R Upper Arm" /> 37 <check_box label="Avant-bras droit" left="325" name="checkbox_R Forearm"/>
38 <check_box label="Avant-bras droit" left="325" name="checkbox_R Forearm" /> 38 <check_box label="Bras gauche" left="325" name="checkbox_L Upper Arm"/>
39 <check_box label="Bras gauche" left="325" name="checkbox_L Upper Arm" /> 39 <check_box label="Avant-bras gauche" left="325" name="checkbox_L Forearm"/>
40 <check_box label="Avant-bras gauche" left="325" name="checkbox_L Forearm" /> 40 <check_box label="Hanche droite" left="325" name="checkbox_Right Hip"/>
41 <check_box label="Hanche droite" left="325" name="checkbox_Right Hip" /> 41 <check_box label="Cuisse droite" left="325" name="checkbox_R Upper Leg"/>
42 <check_box label="Cuisse droite" left="325" name="checkbox_R Upper Leg" /> 42 <check_box label="Jambe droite" left="325" name="checkbox_R Lower Leg"/>
43 <check_box label="Jambe droite" left="325" name="checkbox_R Lower Leg" /> 43 <check_box label="Hanche gauche" left="325" name="checkbox_Left Hip"/>
44 <check_box label="Hanche gauche" left="325" name="checkbox_Left Hip" /> 44 <check_box label="Cuisse gauche" left="325" name="checkbox_L Upper Leg"/>
45 <check_box label="Cuisse gauche" left="325" name="checkbox_L Upper Leg" /> 45 <check_box label="Jambe gauche" left="460" name="checkbox_L Lower Leg"/>
46 <check_box label="Jambe gauche" left="460" name="checkbox_L Lower Leg" /> 46 <check_box label="Estomac" left="460" name="checkbox_Stomach"/>
47 <check_box label="Estomac" left="460" name="checkbox_Stomach" /> 47 <check_box label="Pectoral gauche" left="460" name="checkbox_Left Pec"/>
48 <check_box label="Pectoral gauche" left="460" name="checkbox_Left Pec" /> 48 <check_box label="Pectoral droit" left="460" name="checkbox_Right Pec"/>
49 <check_box label="Pectoral droit" left="460" name="checkbox_Right Pec" /> 49 <check_box label="Centre 2" left="460" name="checkbox_Center 2"/>
50 <check_box label="Centre 2" left="460" name="checkbox_Center 2" /> 50 <check_box label="En haut à droite" left="460" name="checkbox_Top Right"/>
51 <check_box label="En haut à droite" left="460" name="checkbox_Top Right" /> 51 <check_box label="En haut" left="460" name="checkbox_Top"/>
52 <check_box label="En haut" left="460" name="checkbox_Top" /> 52 <check_box label="En haut à gauche" left="460" name="checkbox_Top Left"/>
53 <check_box label="En haut à gauche" left="460" name="checkbox_Top Left" /> 53 <check_box label="Centre" left="460" name="checkbox_Center"/>
54 <check_box label="Centre" left="460" name="checkbox_Center" /> 54 <check_box label="En bas à gauche" left="460" name="checkbox_Bottom Left"/>
55 <check_box label="En bas à gauche" left="460" name="checkbox_Bottom Left" /> 55 <check_box label="En bas" left="460" name="checkbox_Bottom"/>
56 <check_box label="En bas" left="460" name="checkbox_Bottom" /> 56 <check_box label="En bas à droite" left="460" name="checkbox_Bottom Right"/>
57 <check_box label="En bas à droite" left="460" name="checkbox_Bottom Right" /> 57 <text length="1" name="Make New Outfit" type="string">
58 <text type="string" length="1" name="Make New Outfit">
59 Créer un ensemble 58 Créer un ensemble
60 </text> 59 </text>
61 <text type="string" length="1" 60 <text length="1" name="Outfits are folders that contain clothing and body parts. Drag an outfit folder onto your avatar to put it on. &quot;Make New Outfit&quot; makes a new folder and saves copies of the items you are now wearing into it." type="string">
62 name="Outfits are folders that contain clothing and body parts. Drag an outfit folder onto your avatar to put it on. &quot;Make New Outfit&quot; makes a new folder and saves copies of the items you are now wearing into it.">
63 Les ensembles sont des dossiers qui contiennent des habits et des parties du corps. 61 Les ensembles sont des dossiers qui contiennent des habits et des parties du corps.
64Faites glisser le dossier contenant un ensemble vers votre avatar pour lui faire porter. 62Faites glisser le dossier contenant un ensemble vers votre avatar pour lui faire porter.
65 63
66Le bouton Créer un ensemble vous permet de créer un dossier et d&apos;y sauvegarder les copies des articles que vous portez maintenant. 64Le bouton Créer un ensemble vous permet de créer un dossier et d&apos;y sauvegarder les copies
65des articles que vous portez maintenant.
67 </text> 66 </text>
68 <text type="string" length="1" name="Folder name:"> 67 <text length="1" name="Folder name:" type="string">
69 Nom du dossier : 68 Nom du dossier :
70 </text> 69 </text>
71 <text type="string" length="1" name="Items to include in outfit:"> 70 <text length="1" name="Items to include in outfit:" type="string">
72 Articles à inclure à l&apos;ensemble : 71 Articles à inclure à l&apos;ensemble :
73 </text> 72 </text>
74 <text type="string" length="1" name="Body Parts:"> 73 <text length="1" name="Body Parts:" type="string">
75 Parties du corps : 74 Parties du corps :
76 </text> 75 </text>
77 <text type="string" length="1" left="115" name="Clothes:"> 76 <text left="115" length="1" name="Clothes:" type="string">
78 Habits : 77 Habits :
79 </text> 78 </text>
80 <text type="string" length="1" left="227" name="Attachments:"> 79 <text left="227" length="1" name="Attachments:" type="string">
81 Attachements : 80 Attachements :
82 </text> 81 </text>
83 <text type="string" length="1" name="Options:"> 82 <text length="1" name="Options:" type="string">
84 Options : 83 Options :
85 </text> 84 </text>
86 <line_editor name="name ed"> 85 <line_editor name="name ed">
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_openobject.xml b/linden/indra/newview/skins/default/xui/fr/floater_openobject.xml
index 65c73ef..36c712e 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_openobject.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_openobject.xml
@@ -3,9 +3,6 @@
3 <text type="string" length="1" name="object_name"> 3 <text type="string" length="1" name="object_name">
4 [DESC]: 4 [DESC]:
5 </text> 5 </text>
6 <button label="Copier vers l&apos;inventaire" 6 <button label="Copier vers l&apos;inventaire" label_selected="Copier vers l&apos;inventaire" name="copy_to_inventory_button" width="132" />
7 label_selected="Copier vers l&apos;inventaire" 7 <button label="Copier et porter" label_selected="Copier et porter" name="copy_and_wear_button" left="152"/>
8 name="copy_to_inventory_button" />
9 <button label="Copier et porter" label_selected="Copier et porter"
10 name="copy_and_wear_button" />
11</floater> 8</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_pay.xml b/linden/indra/newview/skins/default/xui/fr/floater_pay.xml
index af573bf..c5b689e 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_pay.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_pay.xml
@@ -1,22 +1,22 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Give Money" title=""> 2<floater name="Give Money" title="">
3 <button label="1 $L" label_selected="1 $L" name="fastpay 1" /> 3 <button label="1 L$" label_selected="1 L$" name="fastpay 1"/>
4 <button label="5 $L" label_selected="5 $L" name="fastpay 5" /> 4 <button label="5 L$" label_selected="5 L$" name="fastpay 5"/>
5 <button label="10 $L" label_selected="10 $L" name="fastpay 10" /> 5 <button label="10 L$" label_selected="10 L$" name="fastpay 10"/>
6 <button label="20 $L" label_selected="20 $L" name="fastpay 20" /> 6 <button label="20 L$" label_selected="20 L$" name="fastpay 20"/>
7 <button label="Payer" label_selected="Payer" name="pay btn" /> 7 <button label="Payer" label_selected="Payer" name="pay btn"/>
8 <button label="Annuler" label_selected="Annuler" name="cancel btn" /> 8 <button label="Annuler" label_selected="Annuler" name="cancel btn"/>
9 <text type="string" length="1" name="payee_label"> 9 <text length="1" name="payee_label" type="string" left="5">
10 Payer : 10 Payer :
11 </text> 11 </text>
12 <text type="string" length="1" name="payee_name"> 12 <text length="1" name="payee_name" type="string">
13 [FIRST] [LAST] 13 [FIRST] [LAST]
14 </text> 14 </text>
15 <text type="string" length="1" name="fastpay text"> 15 <text length="1" name="fastpay text" type="string" width="100" halign="left">
16 Paiement rapide : 16 Paiement rapide :
17 </text> 17 </text>
18 <text type="string" length="1" name="amount text" left="4"> 18 <text left="4" length="1" name="amount text" type="string">
19 Montant : 19 Montant :
20 </text> 20 </text>
21 <line_editor left="60" name="amount" width="55" /> 21 <line_editor left="60" name="amount" width="55"/>
22</floater> 22</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_pay_object.xml b/linden/indra/newview/skins/default/xui/fr/floater_pay_object.xml
index 7b33668..3dc0af7 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_pay_object.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_pay_object.xml
@@ -1,30 +1,31 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Give Money" title=""> 2<floater name="Give Money" title="">
3 <text type="string" length="1" name="payee_group"> 3 <text length="1" name="payee_group" type="string" width="95">
4 Payer le groupe : 4 Payer le groupe :
5 </text> 5 </text>
6 <text type="string" length="1" name="payee_resident"> 6 <text length="1" name="payee_resident" type="string" width="100" halign="left" >
7 Payer le résident : 7 Payer le résident :
8 </text> 8 </text>
9 <text type="string" length="1" name="payee_name"> 9 <text length="1" name="payee_name" type="string" left="105">
10 [FIRST] [LAST] 10 [FIRST] [LAST]
11 </text> 11 </text>
12 <text type="string" length="1" name="object_name_label"> 12 <text length="1" name="object_name_label" type="string" left="25">
13 Via un objet : 13 Via un objet :
14 </text> 14 </text>
15 <text type="string" length="1" name="object_name_text"> 15 <text length="1" name="object_name_text" type="string" left="105">
16 ... 16 ...
17 </text> 17 </text>
18 <text type="string" length="1" name="fastpay text"> 18 <text length="1" name="fastpay text" type="string" width="95">
19 Paiement rapide : 19 Paiement rapide :
20 </text> 20 </text>
21 <text type="string" length="1" name="amount text"> 21 <text length="1" name="amount text" type="string" left="5" halign="left">
22 Montant : 22 Montant :
23 </text> 23 </text>
24 <button label="1 $L" label_selected="1 $L" name="fastpay 1" /> 24 <button label="1 L$" label_selected="1 L$" name="fastpay 1" left="105" />
25 <button label="5 $L" label_selected="5 $L" name="fastpay 5" /> 25 <button label="5 L$" label_selected="5 L$" name="fastpay 5" left="190"/>
26 <button label="10 $L" label_selected="10 $L" name="fastpay 10" /> 26 <button label="10 L$" label_selected="10 L$" name="fastpay 10" left="105" />
27 <button label="20 $L" label_selected="20 $L" name="fastpay 20" /> 27 <button label="20 L$" label_selected="20 L$" name="fastpay 20" left="190"/>
28 <button label="Payer" label_selected="Payer" name="pay btn" /> 28 <button label="Payer" label_selected="Payer" name="pay btn"/>
29 <button label="Annuler" label_selected="Annuler" name="cancel btn" /> 29 <button label="Annuler" label_selected="Annuler" name="cancel btn"/>
30 <line_editor left="65" name="amount" width="50" />
30</floater> 31</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_preferences.xml b/linden/indra/newview/skins/default/xui/fr/floater_preferences.xml
index b35fe38..9dab4d6 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_preferences.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_preferences.xml
@@ -1,8 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Preferences" title="Préférences"> 2<floater name="Preferences" title="Préférences" min_width="330" width="626">
3 <button label="À propos" label_selected="À propos" name="About..." /> 3 <button label="À propos" label_selected="À propos" name="About..." />
4 <button label="OK" label_selected="OK" name="OK" /> 4 <button label="OK" label_selected="OK" name="OK" />
5 <button label="Annuler" label_selected="Annuler" name="Cancel" /> 5 <button label="Annuler" label_selected="Annuler" name="Cancel" />
6 <button label="Appliquer" label_selected="Appliquer" name="Apply" /> 6 <button label="Appliquer" label_selected="Appliquer" name="Apply" />
7 <button label="Aide" label_selected="Aide" name="Help" /> 7 <button label="Aide" label_selected="Aide" name="Help" />
8 <tab_container name="pref core" tab_width="126" width="626" />
8</floater> 9</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_preview_animation.xml b/linden/indra/newview/skins/default/xui/fr/floater_preview_animation.xml
index ebb2420..0ee4ea1 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_preview_animation.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_preview_animation.xml
@@ -4,7 +4,7 @@
4 Description : 4 Description :
5 </text> 5 </text>
6 <button label="Jouer dans le Monde" label_selected="Stop" name="Anim play btn" 6 <button label="Jouer dans le Monde" label_selected="Stop" name="Anim play btn"
7 tool_tip="Jouer cette animation et partagez-la avec d&apos;autres." width="125" left="20"/> 7 tool_tip="Jouer cette animation et partagez-la avec d&apos;autres." width="131" left="20"/>
8 <button label="Jouer localement" label_selected="Stop" name="Anim audition btn" 8 <button label="Jouer localement" label_selected="Stop" name="Anim audition btn"
9 tool_tip="Jouer cette animation et soyez le seul à la voir." width="125" left="160"/> 9 tool_tip="Jouer cette animation et soyez le seul à la voir." width="125" left="162"/>
10</floater> 10</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml b/linden/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
index 1def967..e43805b 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
@@ -33,12 +33,14 @@
33 <text name="steps_label"> 33 <text name="steps_label">
34 Étapes : 34 Étapes :
35 </text> 35 </text>
36 <!-- Revert translations as interim fix to VWR-9985 while the code is not properly internationalized
36 <scroll_list name="library_list"> 37 <scroll_list name="library_list">
37 Animation 38 Animation
38Son 39Son
39Chat 40Chat
40Attendre 41Attendre
41 </scroll_list> 42 </scroll_list>
43 -->
42 <button label="Ajouter &gt;&gt;" name="add_btn" /> 44 <button label="Ajouter &gt;&gt;" name="add_btn" />
43 <button label="Monter" name="up_btn" /> 45 <button label="Monter" name="up_btn" />
44 <button label="Descendre" name="down_btn" /> 46 <button label="Descendre" name="down_btn" />
@@ -60,6 +62,6 @@ ajoutez des pauses.
60 <check_box label="temps en secondes" name="wait_time_check" /> 62 <check_box label="temps en secondes" name="wait_time_check" />
61 <check_box label="Actifs" name="active_check" 63 <check_box label="Actifs" name="active_check"
62 tool_tip="Les gestes actifs peuvent être déclenchés en saisissant leur raccourci dans le chat ou en appuyant sur les raccourcis. Les gestes deviennent généralement inactifs lorsqu&apos;il y a un conflit entre les raccourcis." /> 64 tool_tip="Les gestes actifs peuvent être déclenchés en saisissant leur raccourci dans le chat ou en appuyant sur les raccourcis. Les gestes deviennent généralement inactifs lorsqu&apos;il y a un conflit entre les raccourcis." />
63 <button label="Prévisualiser" name="preview_btn" /> 65 <button label="Prévisualiser" name="preview_btn" width="86" />
64 <button label="Enregistrer" name="save_btn" /> 66 <button label="Enregistrer" name="save_btn" width="86" left_delta="96"/>
65</floater> 67</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml b/linden/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml
index 90cadba..5e7d7b8 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml
@@ -5,7 +5,7 @@
5 Description : 5 Description :
6 </text> 6 </text>
7 <text_editor type="string" length="1" name="Notecard Editor"> 7 <text_editor type="string" length="1" name="Notecard Editor">
8 Chargement en cours... 8 Chargement...
9 </text_editor> 9 </text_editor>
10 <string name="no_object"> 10 <string name="no_object">
11 Impossible de trouver l&apos;objet contenant cette note. 11 Impossible de trouver l&apos;objet contenant cette note.
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_preview_notecard_keep_discard.xml b/linden/indra/newview/skins/default/xui/fr/floater_preview_notecard_keep_discard.xml
index 55ed5a9..f7c8646 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_preview_notecard_keep_discard.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_preview_notecard_keep_discard.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="preview_notecard"> 2<floater name="preview_notecard">
3 <text_editor type="string" length="1" name="Notecard Editor"> 3 <text_editor type="string" length="1" name="Notecard Editor">
4 Chargement en cours... 4 Chargement..
5 </text_editor> 5 </text_editor>
6 <text type="string" length="1" name="desc txt"> 6 <text type="string" length="1" name="desc txt">
7 Description : 7 Description :
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_preview_sound.xml b/linden/indra/newview/skins/default/xui/fr/floater_preview_sound.xml
index 71b5a24..e55ca1a 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_preview_sound.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_preview_sound.xml
@@ -5,7 +5,7 @@
5 </text> 5 </text>
6 <button label="Jouer dans le Monde" label_selected="Jouer dans le Monde" 6 <button label="Jouer dans le Monde" label_selected="Jouer dans le Monde"
7 name="Sound play btn" 7 name="Sound play btn"
8 tool_tip="Jouer ce son et partagez-le avec d&apos;autres." width="125" left_delta="-136"/> 8 tool_tip="Jouer ce son et partagez-le avec d&apos;autres." width="131" left_delta="-142"/>
9 <button label="Jouer localement" label_selected="Jouer localement" 9 <button label="Jouer localement" label_selected="Jouer localement"
10 name="Sound audition btn" 10 name="Sound audition btn"
11 tool_tip="Jouer ce son et soyez le seul à l&apos;entendre." width="125" left="162"/> 11 tool_tip="Jouer ce son et soyez le seul à l&apos;entendre." width="125" left="162"/>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_price_for_listing.xml b/linden/indra/newview/skins/default/xui/fr/floater_price_for_listing.xml
index ad8bdf9..d8668dc 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_price_for_listing.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_price_for_listing.xml
@@ -1,14 +1,19 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="price_for_listing" title="Publier la petite annonce"> 2<floater name="price_for_listing" title="Publier la petite annonce">
3 <text name="explanation_text"> 3 <text name="explanation_text">
4 Votre petite annonce restera en ligne pendant une semaine à compter de sa date de publication. 4 Votre petite annonce restera en ligne pendant une
5 5semaine à compter de sa date de publication.
6La position de votre annonce dans les listes dépend du montant que vous décidez de payer. 6
7Les annonces les plus chères paraissent en tête de liste et sont plus visibles dans les résultats de recherche. 7La position de votre annonce dans les listes
8dépend du montant que vous décidez de payer.
9Les annonces les plus chères paraissent en tête de
10liste et sont plus visibles dans les résultats de
11recherche.
8 </text> 12 </text>
9 <text name="price_text"> 13 <text name="price_text" width="133">
10 Coût de l&apos;annonce ($L) : 14 Coût de l&apos;annonce (L$) :
11 </text> 15 </text>
12 <button label="Fixer le prix" name="set_price_btn" /> 16 <line_editor left="155" name="price_edit" />
13 <button label="Annuler" name="cancel_btn" /> 17 <button label="Fixer le prix" name="set_price_btn"/>
18 <button label="Annuler" name="cancel_btn"/>
14</floater> 19</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_region_info.xml b/linden/indra/newview/skins/default/xui/fr/floater_region_info.xml
index d60ebed..d69f212 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_region_info.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_region_info.xml
@@ -1,2 +1,2 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="regioninfo" title="Région/Domaine" /> 2<floater name="regioninfo" title="Région et domaine"/>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_report_abuse.xml b/linden/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
index 0afaa0d..aee7f9c 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
@@ -1,5 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_report_abuse" title="Signaler une infraction"> 2<floater name="floater_report_abuse" title="Signaler une infraction">
3 <texture_picker label="" name="screenshot"/>
4 <check_box label="Inclure une capture d&apos;écran" name="screen_check"/>
3 <text name="reporter_title" width="60"> 5 <text name="reporter_title" width="60">
4 Déposant : 6 Déposant :
5 </text> 7 </text>
@@ -15,19 +17,26 @@
15 <text name="pos_title"> 17 <text name="pos_title">
16 Position : 18 Position :
17 </text> 19 </text>
18 <texture_picker name="screenshot" />
19 <check_box label="Inclure une capture d&apos;écran" name="screen_check" />
20 <text name="pos_field"> 20 <text name="pos_field">
21 {128.1, 128.1, 15.4} 21 {128.1, 128.1, 15.4}
22 </text> 22 </text>
23 <text name="select_object_label">
24 Cliquez sur le bouton puis l&apos;objet :
25 </text>
26 <button label="" label_selected="" name="pick_btn" tool_tip="Le sélecteur d&apos;objet vous permet d&apos;identifier un objet comme sujet du rapport."/>
27 <text name="object_name_label">
28 Nom :
29 </text>
23 <text left_delta="70" name="object_name" width="105"> 30 <text left_delta="70" name="object_name" width="105">
24 Consetetur Sadipscing 31 Consetetur Sadipscing
25 </text> 32 </text>
33 <text name="owner_name_label" width="66">
34 Propriétaire :
35 </text>
26 <text left_delta="70" name="owner_name" width="105"> 36 <text left_delta="70" name="owner_name" width="105">
27 Hendrerit Vulputate 37 Hendrerit Vulputate
28 </text> 38 </text>
29 <combo_box name="category_combo" 39 <combo_box name="category_combo" tool_tip="Choisissez la catégorie qui décrit le mieux ce rapport">
30 tool_tip="Choisissez la catégorie qui décrit le mieux ce rapport">
31 <combo_item name="Select_category"> 40 <combo_item name="Select_category">
32 Sélectionnez une catégorie 41 Sélectionnez une catégorie
33 </combo_item> 42 </combo_item>
@@ -49,14 +58,11 @@
49 <combo_item name="Assault__Weapons_testing_sandbox"> 58 <combo_item name="Assault__Weapons_testing_sandbox">
50 Assaut &gt; Bac à sable pour tests d&apos;armes à feu 59 Assaut &gt; Bac à sable pour tests d&apos;armes à feu
51 </combo_item> 60 </combo_item>
52 <combo_item name="Copyright_or_intellectual_property_violation">
53 Violation de droits d&apos;auteur ou de propriété intellectuelle
54 </combo_item>
55 <combo_item name="Commerce__Failure_to_deliver_product_or_service"> 61 <combo_item name="Commerce__Failure_to_deliver_product_or_service">
56 Commerce &gt; Incapacité à fournir un produit ou service 62 Commerce &gt; Incapacité à fournir un produit ou service
57 </combo_item> 63 </combo_item>
58 <combo_item name="Disclosure__First_Life_information"> 64 <combo_item name="Disclosure__Real_world_information">
59 Divulgation &gt; Informations sur la première vie (First Life) 65 Divulgation &gt; Informations sur la vie réelle
60 </combo_item> 66 </combo_item>
61 <combo_item name="Disclosure__Remotely_monitoring chat"> 67 <combo_item name="Disclosure__Remotely_monitoring chat">
62 Divulgation &gt; Écoute d&apos;un chat à distance 68 Divulgation &gt; Écoute d&apos;un chat à distance
@@ -80,7 +86,7 @@
80 Trouble de la paix &gt; Spam à caractère commercial 86 Trouble de la paix &gt; Spam à caractère commercial
81 </combo_item> 87 </combo_item>
82 <combo_item name="Fraud__L$"> 88 <combo_item name="Fraud__L$">
83 Fraude &gt; $L 89 Fraude &gt; L$
84 </combo_item> 90 </combo_item>
85 <combo_item name="Fraud__Land"> 91 <combo_item name="Fraud__Land">
86 Fraude &gt; Terrain 92 Fraude &gt; Terrain
@@ -89,7 +95,7 @@
89 Fraude &gt; Vente pyramidale ou lettre-chaîne 95 Fraude &gt; Vente pyramidale ou lettre-chaîne
90 </combo_item> 96 </combo_item>
91 <combo_item name="Fraud__US$"> 97 <combo_item name="Fraud__US$">
92 Fraude &gt; $US 98 Fraude &gt; US$
93 </combo_item> 99 </combo_item>
94 <combo_item name="Harassment__Advert_farms___visual_spam"> 100 <combo_item name="Harassment__Advert_farms___visual_spam">
95 Harcèlement &gt; Spam visuel 101 Harcèlement &gt; Spam visuel
@@ -119,10 +125,16 @@
119 Indécence &gt; Nom d&apos;avatar inapproprié 125 Indécence &gt; Nom d&apos;avatar inapproprié
120 </combo_item> 126 </combo_item>
121 <combo_item name="Indecency__Mature_content_in_PG_region"> 127 <combo_item name="Indecency__Mature_content_in_PG_region">
122 Indécence &gt; Contenu Adulte dans une région où l&apos;accompagnement parental est requis 128 Indécence &gt; Contenu Adultes dans une région Tout public
129 </combo_item>
130 <combo_item name="Intellectual_property_infringement_Content_Removal">
131 Violation de droits de propriété intellectuelle &gt; Suppression de contenu
132 </combo_item>
133 <combo_item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit">
134 Violation de droits de propriété intellectuelle &gt; CopyBot ou exploitation abusive des permissions
123 </combo_item> 135 </combo_item>
124 <combo_item name="Intolerance"> 136 <combo_item name="Intolerance">
125 Intolerance 137 Intolérance
126 </combo_item> 138 </combo_item>
127 <combo_item name="Land__Abuse_of_sandbox_resources"> 139 <combo_item name="Land__Abuse_of_sandbox_resources">
128 Terrain &gt; Utilisation abusive des ressources du bac à sable 140 Terrain &gt; Utilisation abusive des ressources du bac à sable
@@ -136,9 +148,6 @@
136 <combo_item name="Land__Encroachment__Trees_plants"> 148 <combo_item name="Land__Encroachment__Trees_plants">
137 Terrain &gt; Empiètement &gt; Arbres/plantes 149 Terrain &gt; Empiètement &gt; Arbres/plantes
138 </combo_item> 150 </combo_item>
139 <combo_item name="Trademark_violation">
140 Violation des droits de marque
141 </combo_item>
142 <combo_item name="Wagering_gambling"> 151 <combo_item name="Wagering_gambling">
143 Paris/jeux d&apos;argent 152 Paris/jeux d&apos;argent
144 </combo_item> 153 </combo_item>
@@ -146,26 +155,13 @@
146 Autre 155 Autre
147 </combo_item> 156 </combo_item>
148 </combo_box> 157 </combo_box>
149 <button label="" label_selected="" name="pick_btn"
150 tool_tip="Le sélecteur d&apos;objet vous permet d&apos;identifier un objet comme sujet du rapport." />
151 <text name="select_object_label">
152 Cliquez sur le bouton puis l&apos;objet :
153 </text>
154 <text name="object_name_label">
155 Nom :
156 </text>
157 <text name="owner_name_label" width="66">
158 Propriétaire :
159 </text>
160 <text name="abuser_name_title"> 158 <text name="abuser_name_title">
161 Nom du contrevenant : 159 Nom du contrevenant :
162 </text> 160 </text>
163 <button label="Choisir le résident" label_selected="" name="select_abuser" 161 <button label="Choisir le résident" label_selected="" name="select_abuser" tool_tip="Sélectionnez le nom du résident dans une liste"/>
164 tool_tip="Sélectionnez le nom du résident dans une liste" /> 162 <check_box label="Ne connaît pas le nom du contrevenant" name="omit_abuser_name" tool_tip="Cochez cette case si vous ne connaissez pas le nom du contrevenant"/>
165 <check_box label="Ne connaît pas le nom du contrevenant" name="omit_abuser_name"
166 tool_tip="Cochez cette case si vous ne connaissez pas le nom du contrevenant" />
167 <text name="abuser_name_title2"> 163 <text name="abuser_name_title2">
168 Lieu où l&apos;infraction a eu lieu : 164 Indiquez où l&apos;infraction a eu lieu :
169 </text> 165 </text>
170 <text name="sum_title"> 166 <text name="sum_title">
171 Récapitulatif : 167 Récapitulatif :
@@ -176,13 +172,12 @@
176 <text name="bug_aviso"> 172 <text name="bug_aviso">
177 Indiquez la date, le lieu, la nature de l&apos;infraction, ainsi que 173 Indiquez la date, le lieu, la nature de l&apos;infraction, ainsi que
178tout chat ou IM relatif à l&apos;infraction, en étant aussi précis 174tout chat ou IM relatif à l&apos;infraction, en étant aussi précis
179que possible. Essayez aussi d&apos;indiquer un sujet. 175que possible. Pensez à indiquer un objet si possible.
180 </text> 176 </text>
181 <text bottom_delta="-16" name="incomplete_title"> 177 <text bottom_delta="-16" name="incomplete_title">
182 Remarque : les rapports incomplets ne feront pas l&apos;objet d&apos;une 178 Remarque : les rapports incomplets ne feront pas l&apos;objet d&apos;une
183enquête. 179enquête.
184 </text> 180 </text>
185 <button label="Signaler une infraction" label_selected="Signaler une infraction" 181 <button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
186 name="send_btn" /> 182 <button label="Signaler une infraction" label_selected="Signaler une infraction" name="send_btn"/>
187 <button label="Annuler" label_selected="Annuler" name="cancel_btn" />
188</floater> 183</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_report_bug.xml b/linden/indra/newview/skins/default/xui/fr/floater_report_bug.xml
index bf4300e..80a42f1 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_report_bug.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_report_bug.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="bug_reporter" title="Signaler un bug"> 2<floater name="bug_reporter" title="Signaler un bug">
3 <text name="reporter_title"> 3 <text name="reporter_title">
4 Signalant : 4 Signalant :
@@ -12,8 +12,7 @@
12 <text name="select_object_label"> 12 <text name="select_object_label">
13 Cliquez sur le bouton puis l&apos;objet : 13 Cliquez sur le bouton puis l&apos;objet :
14 </text> 14 </text>
15 <button label="" label_selected="" name="pick_btn" 15 <button label="" label_selected="" name="pick_btn" tool_tip="Le sélecteur d&apos;objet vous permet d&apos;identifier un objet comme sujet du rapport."/>
16 tool_tip="Le sélecteur d&apos;objet vous permet d&apos;identifier un objet comme sujet du rapport." />
17 <text name="object_name_label"> 16 <text name="object_name_label">
18 Nom : 17 Nom :
19 </text> 18 </text>
@@ -23,16 +22,15 @@
23 <text name="owner_name_label"> 22 <text name="owner_name_label">
24 Propriétaire : 23 Propriétaire :
25 </text> 24 </text>
26 <check_box label="Inclure une capture d&apos;écran" name="screen_check" /> 25 <check_box label="Inclure une capture d&apos;écran" name="screen_check"/>
27 <texture_picker label="Instantané en cours..." name="screenshot" /> 26 <texture_picker label="Instantané en cours..." name="screenshot"/>
28 <text name="category_label"> 27 <text name="category_label">
29 Catégorie : 28 Catégorie :
30 </text> 29 </text>
31 <text name="owner_name"> 30 <text name="owner_name">
32 Hendrerit Vulputate 31 Hendrerit Vulputate
33 </text> 32 </text>
34 <combo_box name="category_combo" 33 <combo_box name="category_combo" tool_tip="Choisissez la catégorie qui décrit le mieux ce rapport">
35 tool_tip="Choisissez la catégorie qui décrit le mieux ce rapport">
36 <combo_item name="Selectcategory"> 34 <combo_item name="Selectcategory">
37 Sélectionnez une catégorie 35 Sélectionnez une catégorie
38 </combo_item> 36 </combo_item>
@@ -64,7 +62,7 @@
64 Contenu manquant 62 Contenu manquant
65 </combo_item> 63 </combo_item>
66 <combo_item name="LindenDollars(L$)"> 64 <combo_item name="LindenDollars(L$)">
67 Dollar Linden ($L) 65 Dollar Linden (L$)
68 </combo_item> 66 </combo_item>
69 <combo_item name="Permissions"> 67 <combo_item name="Permissions">
70 Autorisations 68 Autorisations
@@ -92,7 +90,7 @@
92 Récapitulatif : 90 Récapitulatif :
93 </text> 91 </text>
94 <text name="dscr_title"> 92 <text name="dscr_title">
95 Détails : (Soyez aussi précis que possible) 93 Détails (soyez aussi précis que possible) :
96 </text> 94 </text>
97 <text_editor name="details_edit"> 95 <text_editor name="details_edit">
98 Étapes pour reproduire le bug : 96 Étapes pour reproduire le bug :
@@ -105,6 +103,6 @@ Résultats attendus :
105 Remarque : les rapports incomplets ne feront pas l&apos;objet d&apos;une enquête. 103 Remarque : les rapports incomplets ne feront pas l&apos;objet d&apos;une enquête.
106Si ce bug vous permet de faire quelque chose que vous ne devriez pas pouvoir faire, surtout s&apos;il a des conséquences sur la sécurité et la performance, veuillez sélectionner la catégorie Exploit. Merci ! 104Si ce bug vous permet de faire quelque chose que vous ne devriez pas pouvoir faire, surtout s&apos;il a des conséquences sur la sécurité et la performance, veuillez sélectionner la catégorie Exploit. Merci !
107 </text> 105 </text>
108 <button label="Signaler un bug" label_selected="Signaler un bug" name="send_btn" /> 106 <button label="Signaler un bug" label_selected="Signaler un bug" name="send_btn"/>
109 <button label="Annuler" label_selected="Annuler" name="cancel_btn" /> 107 <button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
110</floater> 108</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_script_ed_panel.xml b/linden/indra/newview/skins/default/xui/fr/floater_script_ed_panel.xml
index 0507360..3f9c4b8 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_script_ed_panel.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_script_ed_panel.xml
@@ -2,7 +2,7 @@
2<panel name="script panel"> 2<panel name="script panel">
3 <button label="Enregistrer" label_selected="Enregistrer" name="Save_btn" /> 3 <button label="Enregistrer" label_selected="Enregistrer" name="Save_btn" />
4 <text_editor type="string" length="1" name="Script Editor"> 4 <text_editor type="string" length="1" name="Script Editor">
5 Chargement en cours... 5 Chargement...
6 </text_editor> 6 </text_editor>
7 <combo_box label="Insérer..." name="Insert..." /> 7 <combo_box label="Insérer..." name="Insert..." />
8 <menu_bar name="script_menu"> 8 <menu_bar name="script_menu">
@@ -29,7 +29,7 @@
29 </menu> 29 </menu>
30 </menu_bar> 30 </menu_bar>
31 <string name="loading"> 31 <string name="loading">
32 Chargement en cours... 32 Chargement...
33 </string> 33 </string>
34 <string name="can_not_view"> 34 <string name="can_not_view">
35 Vous n&apos;êtes pas autorisé à afficher ce script. 35 Vous n&apos;êtes pas autorisé à afficher ce script.
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_sell_land.xml b/linden/indra/newview/skins/default/xui/fr/floater_sell_land.xml
index f8c0c6d..9ba1d56 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_sell_land.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_sell_land.xml
@@ -1,20 +1,22 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="sell land" title="Vendre terrain"> 2<floater name="sell land" title="Vendre terrain">
3 <text name="info_parcel_label"> 3 <text name="info_parcel_label" width="48">
4 Parcelle : 4 Parcelle :
5 </text> 5 </text>
6 <text name="info_parcel"> 6 <text name="info_parcel" left="66">
7 Nom de la parcelle 7 PARCEL NAME
8 </text> 8 </text>
9 <text name="info_size_label"> 9 <text name="info_size_label">
10 Taille : 10 Taille :
11 </text> 11 </text>
12 <text name="info_size"> 12 <text name="info_size" left="66">
13 [AREA] m² 13 [AREA] m²
14 </text> 14 </text>
15 <text name="info_action"> 15 <text name="info_action" bottom_delta="-60">
16 Pour vendre cette parcelle : 16 Pour vendre cette
17parcelle :
17 </text> 18 </text>
19 <icon bottom_delta="-86" name="step_price" />
18 <text name="price_label"> 20 <text name="price_label">
19 Votre prix de vente : 21 Votre prix de vente :
20 </text> 22 </text>
@@ -22,18 +24,19 @@
22 Fixez un prix convenable pour ce terrain. 24 Fixez un prix convenable pour ce terrain.
23 </text> 25 </text>
24 <text name="price_ld"> 26 <text name="price_ld">
25 $L 27 L$
26 </text> 28 </text>
27 <text name="price_per_m"> 29 <text name="price_per_m">
28 ([PER_METER] $L par mètre carré) 30 ([PER_METER] L$ par mètre carré)
29 </text> 31 </text>
30 <text name="sell_to_label"> 32 <text name="sell_to_label">
31 Vos acheteurs : 33 Vos acheteurs :
32 </text> 34 </text>
33 <text name="sell_to_text"> 35 <text name="sell_to_text">
34 Vendez votre terrain à n&apos;importe qui ou uniquement à un acheteur spécifique. 36 Vendez votre terrain à n&apos;importe qui ou uniquement à un acheteur
37spécifique.
35 </text> 38 </text>
36 <combo_box name="sell_to"> 39 <combo_box name="sell_to" bottom_delta="-32">
37 <combo_item name="--selectone--"> 40 <combo_item name="--selectone--">
38 -- Sélectionnez -- 41 -- Sélectionnez --
39 </combo_item> 42 </combo_item>
@@ -44,14 +47,15 @@
44 Acheteur spécifique : 47 Acheteur spécifique :
45 </combo_item> 48 </combo_item>
46 </combo_box> 49 </combo_box>
47 <button label="Sélectionner..." name="sell_to_select_agent" /> 50 <button label="Sélectionner..." name="sell_to_select_agent" width="100"/>
48 <text name="sell_objects_label"> 51 <text name="sell_objects_label">
49 Vendez-vous des objets avec ce terrain ? 52 Vendez-vous des objets avec ce terrain ?
50 </text> 53 </text>
51 <text name="sell_objects_text"> 54 <text name="sell_objects_text">
52 Les objets transférables se trouvant sur la parcelle changeront de propriétaire. 55 Les objets transférables se trouvant sur la parcelle changeront
56de propriétaire.
53 </text> 57 </text>
54 <radio_group name="sell_objects"> 58 <radio_group name="sell_objects" right="430" bottom_delta="-54">
55 <radio_item name="no"> 59 <radio_item name="no">
56 Non, rester le propriétaire des objets 60 Non, rester le propriétaire des objets
57 </radio_item> 61 </radio_item>
@@ -59,10 +63,10 @@
59 Oui, vendre les objets avec le terrain 63 Oui, vendre les objets avec le terrain
60 </radio_item> 64 </radio_item>
61 </radio_group> 65 </radio_group>
62 <button label="Afficher les objets" name="show_objects" /> 66 <button label="Afficher les objets" name="show_objects" right="420" width="120"/>
63 <text name="nag_message_label"> 67 <text name="nag_message_label" bottom_delta="-30">
64 Rappel : toute vente est définitive. 68 Rappel : Toute vente est définitive.
65 </text> 69 </text>
66 <button label="Mettre le terrain en vente" name="sell_btn" /> 70 <button label="Mettre le terrain en vente" name="sell_btn" width="165"/>
67 <button label="Annuler" name="cancel_btn" /> 71 <button label="Annuler" name="cancel_btn"/>
68</floater> 72</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_settings_debug.xml b/linden/indra/newview/skins/default/xui/fr/floater_settings_debug.xml
index 41c03df..3018334 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_settings_debug.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_settings_debug.xml
@@ -8,7 +8,7 @@
8 FALSE 8 FALSE
9 </combo_item> 9 </combo_item>
10 </combo_box> 10 </combo_box>
11 <color_swatch label="Couleur" name="color_swatch" /> 11 <color_swatch label="Couleur" name="color_swatch" width="43" />
12 <spinner label="x" name="val_spinner_1" /> 12 <spinner label="x" name="val_spinner_1" />
13 <spinner label="x" name="val_spinner_2" /> 13 <spinner label="x" name="val_spinner_2" />
14 <spinner label="x" name="val_spinner_3" /> 14 <spinner label="x" name="val_spinner_3" />
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_skin_preview_template.xml b/linden/indra/newview/skins/default/xui/fr/floater_skin_preview_template.xml
index 293e00e..4439745 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_skin_preview_template.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_skin_preview_template.xml
@@ -1,19 +1,16 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<multi_floater name="floater_chatterbox"> 2<multi_floater name="floater_chatterbox">
3 <icon label="Voler" label_selected="Atterrir" name="" 3 <icon label="Voler" label_selected="Atterrir" name="" tool_tip="Commencez à voler. Utilisez E/C ou PgHaut/PageBas pour voler vers le haut et vers le bas."/>
4 tool_tip="Commencez à voler. Utilisez E/C ou PgHaut/PageBas pour voler vers le haut et vers le bas." />
5 <panel name="panel_littletoolbar"> 4 <panel name="panel_littletoolbar">
6 <button name="chat_btn" tool_tip="Afficher la barre de chat. (Entrée)" /> 5 <button name="chat_btn" tool_tip="Affichez la barre de chat. (Entrée)"/>
7 <flyout_button label="Communiquer" name="communicate_btn" 6 <flyout_button label="Communiquer" name="communicate_btn" tool_tip="Communiquez avec vos amis et vos groupes."/>
8 tool_tip="Communiquer avec vos amis et vos groupes." /> 7 <button label="Voler" label_selected="Atterrir" name="fly_btn" tool_tip="Commencez à voler. Utilisez E/C ou PgHaut/PageBas pour voler vers le haut et vers le bas."/>
9 <button label="Voler" label_selected="Atterrir" name="fly_btn"
10 tool_tip="Commencez à voler. Utilisez E/C ou PgHaut/PageBas pour voler vers le haut et vers le bas." />
11 </panel> 8 </panel>
12 <panel name="panel_unfocused_floater"> 9 <panel name="panel_unfocused_floater">
13 <text name="titlebar_focused"> 10 <text name="titlebar_focused">
14 Pas de mise au point 11 Pas de mise au point
15 </text> 12 </text>
16 <combo_box label="Zone combinée" name="combo_box_1" /> 13 <combo_box label="Zone combinée" name="combo_box_1"/>
17 <text_editor name="Chat History Editor"> 14 <text_editor name="Chat History Editor">
18 Texte 15 Texte
19 </text_editor> 16 </text_editor>
@@ -24,14 +21,14 @@
24 </text> 21 </text>
25 <tab_container name="chatterbox_tabs"> 22 <tab_container name="chatterbox_tabs">
26 <panel label="Mise au point" name="test_1"> 23 <panel label="Mise au point" name="test_1">
27 <slider label="Curseur" name="SliderTestName" /> 24 <slider label="Curseur" name="SliderTestName"/>
28 <check_box label="Vrai" name="check_box_test_1" /> 25 <check_box label="Vrai" name="check_box_test_1"/>
29 <check_box label="Faux" name="check_box_test_2" /> 26 <check_box label="Faux" name="check_box_test_2"/>
30 <text_editor name="Chat History Editor"> 27 <text_editor name="Chat History Editor">
31 Texte du chat 28 Texte du chat
32 </text_editor> 29 </text_editor>
33 </panel> 30 </panel>
34 <panel label="Pas de mise au point" name="test_2" /> 31 <panel label="Pas de mise au point" name="test_2"/>
35 </tab_container> 32 </tab_container>
36 </panel> 33 </panel>
37</multi_floater> 34</multi_floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_snapshot.xml b/linden/indra/newview/skins/default/xui/fr/floater_snapshot.xml
index 7177ddc..cd30291 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_snapshot.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_snapshot.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater height="536" name="Snapshot" title="Prévisualiser la photo" width="245"> 2<floater name="Snapshot" title="Prévisualiser la photo" width="247">
3 <text name="type_label"> 3 <text name="type_label">
4 Destination de la photo 4 Destination de la photo
5 </text> 5 </text>
@@ -8,14 +8,14 @@
8 Envoyer par e-mail 8 Envoyer par e-mail
9 </radio_item> 9 </radio_item>
10 <radio_item name="texture"> 10 <radio_item name="texture">
11 Enregistrer dans votre inventaire (10 $L) 11 Enregistrer dans votre inventaire (10 L$)
12 </radio_item> 12 </radio_item>
13 <radio_item name="local"> 13 <radio_item name="local">
14 Enregistrer sur votre disque dur 14 Enregistrer sur votre disque dur
15 </radio_item> 15 </radio_item>
16 </radio_group> 16 </radio_group>
17 <button label="Plus &gt;&gt;" name="more_btn" tool_tip="Options avancées" /> 17 <button label="Plus &gt;&gt;" name="more_btn" tool_tip="Options avancées"/>
18 <button label="&lt;&lt; Moins" name="less_btn" tool_tip="Options avancées" /> 18 <button label="&lt;&lt; Moins" name="less_btn" tool_tip="Options avancées"/>
19 <text name="type_label2"> 19 <text name="type_label2">
20 Taille 20 Taille
21 </text> 21 </text>
@@ -93,9 +93,9 @@
93 BMP 93 BMP
94 </combo_item> 94 </combo_item>
95 </combo_box> 95 </combo_box>
96 <spinner label="Largeur" label_width="41" name="snapshot_width" width="101" /> 96 <spinner label="Largeur" label_width="41" name="snapshot_width" width="101"/>
97 <spinner label="Hauteur" label_width="41" left="121" name="snapshot_height" width="101" /> 97 <spinner label="Hauteur" label_width="41" left="121" name="snapshot_height" width="101"/>
98 <slider label="Qualité de l&apos;image" name="image_quality_slider" /> 98 <slider label="Qualité de l&apos;image" name="image_quality_slider"/>
99 <text name="layer_type_label"> 99 <text name="layer_type_label">
100 Capturer : 100 Capturer :
101 </text> 101 </text>
@@ -113,20 +113,16 @@
113 <text name="file_size_label"> 113 <text name="file_size_label">
114 Taille du fichier : [SIZE] Ko 114 Taille du fichier : [SIZE] Ko
115 </text> 115 </text>
116 <check_box bottom_delta="-20" label="Voir l&apos;interface sur la photo" name="ui_check" /> 116 <check_box label="Voir l&apos;interface sur la photo" name="ui_check"/>
117 <check_box bottom_delta="-18" label="Voir les éléments HUD sur la photo" 117 <check_box label="Voir les éléments HUD sur la photo" name="hud_check"/>
118 name="hud_check" /> 118 <check_box label="Garder ouvert après enregistrement" name="keep_open_check"/>
119 <check_box bottom_delta="-18" label="Garder ouvert après enregistrement" 119 <check_box label="Imposer les proportions" name="keep_aspect_check"/>
120 name="keep_open_check" /> 120 <check_box label="Prévisualisation plein écran (geler l&apos;écran)" name="freeze_frame_check"/>
121 <check_box label="Imposer les proportions" name="keep_aspect_check" /> 121 <button label="Rafraîchir" name="new_snapshot_btn"/>
122 <check_box bottom_delta="-18" label="Geler le cadre (prévisualisation &#10;plein écran)" 122 <check_box label="Rafraîchissement automatique" name="auto_snapshot_check"/>
123 name="freeze_frame_check" /> 123 <button label="Enregistrer (10 L$)" name="upload_btn" width="118"/>
124 <button bottom_delta="-18" label="Rafraîchir" name="new_snapshot_btn" /> 124 <button label="Envoyer" name="send_btn" width="118"/>
125 <check_box bottom_delta="-30" label="Auto-rafraîchir" name="auto_snapshot_check" /> 125 <flyout_button label="Enregistrer" name="save_btn" tool_tip="Enregistrer l&apos;image dans un fichier" width="118">
126 <button label="Enregistrer (10 $L)" name="upload_btn" />
127 <button label="Envoyer" name="send_btn" />
128 <flyout_button label="Enregistrer" name="save_btn"
129 tool_tip="Enregistrer l&apos;image dans un fichier">
130 <flyout_button_item name="save_item"> 126 <flyout_button_item name="save_item">
131 Enregistrer 127 Enregistrer
132 </flyout_button_item> 128 </flyout_button_item>
@@ -134,7 +130,7 @@
134 Enregistrer sous... 130 Enregistrer sous...
135 </flyout_button_item> 131 </flyout_button_item>
136 </flyout_button> 132 </flyout_button>
137 <button label="Annuler" name="discard_btn" /> 133 <button label="Annuler" name="discard_btn" left="133" width="72" />
138 <string name="unknown"> 134 <string name="unknown">
139 inconnu 135 inconnu
140 </string> 136 </string>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_sound_preview.xml b/linden/indra/newview/skins/default/xui/fr/floater_sound_preview.xml
index b0d63d4..8c47034 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_sound_preview.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_sound_preview.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Name/Description" title="sound.wav"> 2<floater name="Name/Description" title="sound.wav">
3 <text name="name_label"> 3 <text name="name_label">
4 Nom : 4 Nom :
@@ -6,8 +6,8 @@
6 <text name="description_label"> 6 <text name="description_label">
7 Description : 7 Description :
8 </text> 8 </text>
9 <button label="Annuler" label_selected="Annuler" name="cancel_btn" /> 9 <button label="Annuler" label_selected="Annuler" name="cancel_btn"/>
10 <button label="Charger (10 $L)" label_selected="Charger (10 $L)" name="ok_btn" /> 10 <button label="Charger (10 L$)" label_selected="Charger (10 L$)" name="ok_btn"/>
11 <text name="text"> 11 <text name="text">
12 Débit (kbps) : 12 Débit (kbps) :
13 </text> 13 </text>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_telehub.xml b/linden/indra/newview/skins/default/xui/fr/floater_telehub.xml
index f53f447..e620178 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_telehub.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_telehub.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="telehub" title="Téléhub"> 2<floater name="telehub" title="Téléhub" min_height="310" height="310" >
3 <text name="status_text_connected"> 3 <text name="status_text_connected">
4 Téléhub connecté à l&apos;objet [OBJECT] 4 Téléhub connecté à l&apos;objet [OBJECT]
5 </text> 5 </text>
@@ -9,20 +9,23 @@
9 <text name="help_text_connected"> 9 <text name="help_text_connected">
10 Pour supprimer, cliquez sur Déconnecter. 10 Pour supprimer, cliquez sur Déconnecter.
11 </text> 11 </text>
12 <text name="help_text_not_connected"> 12 <text name="help_text_not_connected" height="38" bottom_delta="-18">
13 Sélectionner l&apos;objet et cliquez sur Connecter le téléhub. 13 Sélectionner l&apos;objet et cliquez sur Connecter
14le téléhub.
14 </text> 15 </text>
15 <button label="Connecter le téléhub" name="connect_btn" /> 16 <button label="Connecter le téléhub" name="connect_btn" width="122"/>
16 <button label="Déconnecter" name="disconnect_btn" /> 17 <button label="Déconnecter" name="disconnect_btn" left="142" width="98"/>
17 <text name="spawn_points_text"> 18 <text name="spawn_points_text" width="230">
18 Points d&apos;apparition (positions, pas objets): 19 Points d&apos;apparition (positions, pas objets) :
19 </text> 20 </text>
20 <button label="Ajouter point" name="add_spawn_point_btn" /> 21 <button label="Ajouter point" name="add_spawn_point_btn" />
21 <button label="Supprimer point" name="remove_spawn_point_btn" /> 22 <button label="Supprimer point" name="remove_spawn_point_btn" />
22 <text name="spawn_point_help"> 23 <text name="spawn_point_help">
23 Sélectionnez l&apos;objet et cliquez sur Ajouter pour indiquer la position. 24 Sélectionnez l&apos;objet et cliquez sur Ajouter pour
24Vous pourrez ensuite déplacer ou supprimer l&apos;objet. 25indiquer la position. Vous pourrez ensuite
26déplacer ou supprimer l&apos;objet.
25Les positions sont relatives au centre du téléhub. 27Les positions sont relatives au centre du téléhub.
26Sélectionnez l&apos;élément dans la liste pour afficher sa position dans le Monde. 28Sélectionnez l&apos;élément dans la liste pour afficher
29sa position dans le Monde.
27 </text> 30 </text>
28</floater> 31</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml b/linden/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml
index 94b4258..2a234a3 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml
@@ -1,23 +1,23 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="texture picker" title="Choisir : Texture"> 2<floater name="texture picker" title="Texture">
3 <string name="choose_picture"> 3 <string name="choose_picture">
4 Cliquez pour sélectionner une image 4 Cliquez pour sélectionner une image
5 </string> 5 </string>
6 <text type="string" length="1" name="Multiple"> 6 <text length="1" name="Multiple" type="string">
7 Multiple 7 Multiple
8 </text> 8 </text>
9 <text type="string" length="1" name="unknown"> 9 <text length="1" name="unknown" type="string">
10 Dimensions : [DIMENSIONS] 10 Dimensions : [DIMENSIONS]
11 </text> 11 </text>
12 <button label="Défaut" label_selected="Défaut" name="Default" /> 12 <button label="Défaut" label_selected="Défaut" name="Default" width="60" />
13 <button label="Aucune" label_selected="Aucune" name="None" /> 13 <button label="Aucune" label_selected="Aucune" name="None" width="60" left="68" />
14 <button label="Vierge" label_selected="Vierge" name="Blank" /> 14 <button label="Vierge" label_selected="Vierge" name="Blank" width="60" />
15 <check_box label="Afficher les dossiers" name="show_folders_check" /> 15 <check_box label="Afficher les dossiers" name="show_folders_check"/>
16 <search_editor label="Saisissez votre recherche ici" name="inventory search editor" /> 16 <search_editor label="Saisissez votre recherche ici" name="inventory search editor"/>
17 <check_box label="Appliquer immédiatement" name="apply_immediate_check" /> 17 <check_box label="Appliquer immédiatement" name="apply_immediate_check" />
18 <button label="" label_selected="" name="Pipette" /> 18 <button label="" label_selected="" name="Pipette" bottom="-240" />
19 <button label="Annuler" label_selected="Annuler" name="Cancel" /> 19 <button label="Annuler" label_selected="Annuler" name="Cancel"/>
20 <button label="Sélectionner" label_selected="Sélectionner" name="Select" /> 20 <button label="Sélectionner" label_selected="Sélectionner" name="Select"/>
21 <string name="pick title"> 21 <string name="pick title">
22 Choisir : 22 Choisir :
23 </string> 23 </string>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_tools.xml b/linden/indra/newview/skins/default/xui/fr/floater_tools.xml
index 0fb1681..b4e63a1 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_tools.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_tools.xml
@@ -1,45 +1,46 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="toolbox floater" title=""> 2<floater name="toolbox floater" title="">
3 <button label="" label_selected="" name="button focus" tool_tip="Mise au point" /> 3 <button label="" label_selected="" name="button focus" tool_tip="Mise au point"/>
4 <text name="tool label"> 4 <text name="tool label">
5 Faire le point 5 Mise au point
6 </text> 6 </text>
7 <button label="" label_selected="" name="button move" tool_tip="Déplacer" /> 7 <button label="" label_selected="" name="button move" tool_tip="Déplacer"/>
8 <text name="tool label2"> 8 <text name="tool label2">
9 Se déplacer 9 Se déplacer
10 </text> 10 </text>
11 <button label="" label_selected="" name="button edit" tool_tip="Modifier" /> 11 <button label="" label_selected="" name="button edit" tool_tip="Modifier"/>
12 <text name="tool label3"> 12 <text name="tool label3">
13 Edition 13 Edition
14 </text> 14 </text>
15 <button label="" label_selected="" name="button create" tool_tip="Créer" /> 15 <button label="" label_selected="" name="button create" tool_tip="Créer"/>
16 <text name="tool label4"> 16 <text name="tool label4">
17 Créer 17 Créer
18 </text> 18 </text>
19 <button label="" label_selected="" name="button land" tool_tip="Terrain" /> 19 <button label="" label_selected="" name="button land" tool_tip="Terrain"/>
20 <text name="tool label5"> 20 <text name="tool label5">
21 Terrain 21 Terrain
22 </text> 22 </text>
23 <check_box label="Zoom" name="radio zoom" /> 23 <check_box label="Zoom" name="radio zoom"/>
24 <check_box label="Orbite (Ctrl)" name="radio orbit" /> 24 <check_box label="Orbite (Ctrl)" name="radio orbit"/>
25 <check_box label="Panoramique (Ctrl-Maj)" name="radio pan" /> 25 <check_box label="Panoramique (Ctrl-Maj)" name="radio pan"/>
26 <check_box label="Déplacer" name="radio move" /> 26 <check_box label="Déplacer" name="radio move"/>
27 <check_box label="Orbite (Ctrl)" name="radio lift" /> 27 <check_box label="Orbite (Ctrl)" name="radio lift"/>
28 <check_box label="Faire tourner (Ctrl-Maj)" name="radio spin" /> 28 <check_box label="Faire tourner (Ctrl-Maj)" name="radio spin"/>
29 <check_box label="Position" name="radio position" /> 29 <check_box label="Positionner" name="radio position"/>
30 <check_box label="Faire pivoter (Ctrl)" name="radio rotate" /> 30 <check_box label="Pivoter (Ctrl)" name="radio rotate"/>
31 <check_box label="Étirer (Ctrl-Maj)" name="radio stretch" /> 31 <check_box label="Étirer (Ctrl-Maj)" name="radio stretch"/>
32 <check_box label="Sélectionner une texture" name="radio select face" /> 32 <check_box label="Sélectionner une face" name="radio select face"/>
33 <check_box label="Modifier les parties liées" name="checkbox edit linked parts" /> 33 <check_box label="Modifier les parties liées" name="checkbox edit linked parts"/>
34 <check_box label="Utiliser la grille" name="checkbox snap to grid" /> 34 <check_box label="Utiliser la grille" name="checkbox snap to grid"/>
35 <button label="Options..." label_selected="Options..." name="Options..." /> 35 <button label="Options..." label_selected="Options..." name="Options..."/>
36 <check_box label="Étirer les deux côtés" name="checkbox uniform" /> 36 <check_box label="Étirer les deux côtés" name="checkbox uniform"/>
37 <check_box label="Étirer les textures" name="checkbox stretch textures" /> 37 <check_box label="Étirer les textures" name="checkbox stretch textures"/>
38 <text name="text ruler mode"> 38 <text name="text ruler mode">
39 Règle : 39 Axe :
40 </text> 40 </text>
41 <text name="text status"> 41 <text name="text status">
42 Faîtes glisser pour déplacer, Maj-faire glisser pour copier. 42 Faîtes glisser pour déplacer, Maj-faire glisser pour
43 copier.
43 </text> 44 </text>
44 <combo_box name="combobox grid mode"> 45 <combo_box name="combobox grid mode">
45 <combo_item name="World"> 46 <combo_item name="World">
@@ -52,32 +53,32 @@
52 Référence 53 Référence
53 </combo_item> 54 </combo_item>
54 </combo_box> 55 </combo_box>
55 <button label="" label_selected="" name="ToolCube" tool_tip="Cube" /> 56 <button label="" label_selected="" name="ToolCube" tool_tip="Cube"/>
56 <button label="" label_selected="" name="ToolPrism" tool_tip="Prisme" /> 57 <button label="" label_selected="" name="ToolPrism" tool_tip="Prisme"/>
57 <button label="" label_selected="" name="ToolPyramid" tool_tip="Pyramide" /> 58 <button label="" label_selected="" name="ToolPyramid" tool_tip="Pyramide"/>
58 <button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tétraèdre" /> 59 <button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tétraèdre"/>
59 <button label="" label_selected="" name="ToolCylinder" tool_tip="Cylindre" /> 60 <button label="" label_selected="" name="ToolCylinder" tool_tip="Cylindre"/>
60 <button label="" label_selected="" name="ToolHemiCylinder" tool_tip="Demi-cylindre" /> 61 <button label="" label_selected="" name="ToolHemiCylinder" tool_tip="Demi-cylindre"/>
61 <button label="" label_selected="" name="ToolCone" tool_tip="Cône" /> 62 <button label="" label_selected="" name="ToolCone" tool_tip="Cône"/>
62 <button label="" label_selected="" name="ToolHemiCone" tool_tip="Demi-cône" /> 63 <button label="" label_selected="" name="ToolHemiCone" tool_tip="Demi-cône"/>
63 <button label="" label_selected="" name="ToolSphere" tool_tip="Sphère" /> 64 <button label="" label_selected="" name="ToolSphere" tool_tip="Sphère"/>
64 <button label="" label_selected="" name="ToolHemiSphere" tool_tip="Demi-sphère" /> 65 <button label="" label_selected="" name="ToolHemiSphere" tool_tip="Demi-sphère"/>
65 <check_box label="Copier la sélection" name="checkbox copy selection" /> 66 <check_box label="Copier la sélection" name="checkbox copy selection"/>
66 <button label="" label_selected="" name="ToolTorus" tool_tip="Tore" /> 67 <button label="" label_selected="" name="ToolTorus" tool_tip="Tore"/>
67 <button label="" label_selected="" name="ToolTube" tool_tip="Tube" /> 68 <button label="" label_selected="" name="ToolTube" tool_tip="Tube"/>
68 <button label="" label_selected="" name="ToolRing" tool_tip="Anneau" /> 69 <button label="" label_selected="" name="ToolRing" tool_tip="Anneau"/>
69 <button label="" label_selected="" name="ToolTree" tool_tip="Arbre" /> 70 <button label="" label_selected="" name="ToolTree" tool_tip="Arbre"/>
70 <button label="" label_selected="" name="ToolGrass" tool_tip="Herbe" /> 71 <button label="" label_selected="" name="ToolGrass" tool_tip="Herbe"/>
71 <check_box label="Maintenir l&apos;outil sélectionné" name="checkbox sticky" /> 72 <check_box label="Maintenir l&apos;outil sélectionné" name="checkbox sticky"/>
72 <check_box label="Centrer la copie" name="checkbox copy centers" /> 73 <check_box label="Centrer la copie" name="checkbox copy centers"/>
73 <check_box label="Faire pivoter la copie" name="checkbox copy rotates" /> 74 <check_box label="Pivoter la copie" name="checkbox copy rotates"/>
74 <check_box label="Sélectionner le terrain" name="radio select land" /> 75 <check_box label="Sélectionner le terrain" name="radio select land"/>
75 <check_box label="Aplatir le terrain" name="radio flatten" /> 76 <check_box label="Aplatir le terrain" name="radio flatten"/>
76 <check_box label="Surélever le terrain" name="radio raise" /> 77 <check_box label="Ãlever le terrain" name="radio raise"/>
77 <check_box label="Abaisser le terrain" name="radio lower" /> 78 <check_box label="Abaisser le terrain" name="radio lower"/>
78 <check_box label="Lisser le terrain" name="radio smooth" /> 79 <check_box label="Lisser le terrain" name="radio smooth"/>
79 <check_box label="Bosseler le terrain" name="radio noise" /> 80 <check_box label="Bosseler le terrain" name="radio noise"/>
80 <check_box label="Rétablir le terrain" name="radio revert" /> 81 <check_box label="Annuler modification" name="radio revert"/>
81 <combo_box name="combobox brush size"> 82 <combo_box name="combobox brush size">
82 <combo_item name="Small"> 83 <combo_item name="Small">
83 Petit 84 Petit
@@ -92,12 +93,10 @@
92 <text name="Strength:"> 93 <text name="Strength:">
93 Force : 94 Force :
94 </text> 95 </text>
95 <button label="Appliquer à la sélection" label_selected="Appliquer à la sélection" 96 <button label="Appliquer à la sélection" label_selected="Appliquer à la sélection" name="button apply to selection" tool_tip="Modifier le terrain sélectionné"/>
96 name="button apply to selection" 97 <check_box label="Afficher les limites" name="checkbox show owners"/>
97 tool_tip="Modifier le terrain sélectionné" /> 98 <button label="Plus &gt;&gt;" name="button more" tool_tip="Options avancées"/>
98 <check_box label="Afficher les propriétaires" name="checkbox show owners" /> 99 <button label="&lt;&lt; Moins" name="button less" tool_tip="Options avancées"/>
99 <button label="Plus &gt;&gt;" name="button more" tool_tip="Options avancées" />
100 <button label="&lt;&lt; Moins" name="button less" tool_tip="Options avancées" />
101 <tab_container name="Object Info Tabs"> 100 <tab_container name="Object Info Tabs">
102 <panel label="Général" name="General"> 101 <panel label="Général" name="General">
103 <text name="Name:"> 102 <text name="Name:">
@@ -112,21 +111,21 @@
112 <text name="Creator Name"> 111 <text name="Creator Name">
113 Thrax Linden 112 Thrax Linden
114 </text> 113 </text>
115 <button label="Profil..." label_selected="Profil..." name="button creator profile" /> 114 <button label="Profil..." label_selected="Profil..." name="button creator profile"/>
116 <text name="Owner:"> 115 <text name="Owner:">
117 Propriétaire : 116 Propriétaire :
118 </text> 117 </text>
119 <text name="Owner Name"> 118 <text name="Owner Name">
120 Thrax Linden 119 Thrax Linden
121 </text> 120 </text>
122 <button label="Profil..." label_selected="Profil..." name="button owner profile" /> 121 <button label="Profil..." label_selected="Profil..." name="button owner profile"/>
123 <text name="Group:"> 122 <text name="Group:">
124 Groupe : 123 Groupe :
125 </text> 124 </text>
126 <text name="Group Name Proxy"> 125 <text name="Group Name Proxy">
127 Les Linden 126 Les Lindens
128 </text> 127 </text>
129 <button label="Définir..." label_selected="Définir..." name="button set group" /> 128 <button label="Définir..." label_selected="Définir..." name="button set group"/>
130 <text name="prim info"> 129 <text name="prim info">
131 1 objet, 1 prim 130 1 objet, 1 prim
132 </text> 131 </text>
@@ -136,34 +135,30 @@
136 <text name="perm_modify"> 135 <text name="perm_modify">
137 Vous pouvez modifier cet objet. 136 Vous pouvez modifier cet objet.
138 </text> 137 </text>
139 <check_box label="Partager avec le groupe" name="checkbox share with group" 138 <check_box label="Partager avec le groupe" name="checkbox share with group" tool_tip="Autoriser les membres du groupe à déplacer, copier et supprimer."/>
140 tool_tip="Autoriser les membres du groupe à déplacer, copier et supprimer." />
141 <text name="text deed continued"> 139 <text name="text deed continued">
142 Transférer... 140 Transférer...
143 </text> 141 </text>
144 <text name="text deed"> 142 <text name="text deed">
145 Transférer 143 Transférer
146 </text> 144 </text>
147 <button label="Transférer..." label_selected="Transférer..." name="button deed" 145 <button label="Céder..." label_selected="Céder..." name="button deed" tool_tip="Les objets partagés par un groupe peuvent être cédés par un officier."/>
148 tool_tip="Les objets partagés par un groupe peuvent être transférés par un officier." /> 146 <check_box label="Autoriser tout le monde à déplacer" name="checkbox allow everyone move"/>
149 <check_box label="Autoriser tout le monde à déplacer" 147 <check_box label="Autoriser tout le monde à copier" name="checkbox allow everyone copy"/>
150 name="checkbox allow everyone move" /> 148 <check_box label="Afficher dans la recherche" name="search_check" tool_tip="Afficher l&apos;objet dans les résultats de recherche"/>
151 <check_box label="Autoriser tout le monde à copier" name="checkbox allow everyone copy" /> 149 <check_box label="À vendre" name="checkbox for sale"/>
152 <check_box label="Afficher dans la recherche" name="search_check"
153 tool_tip="Afficher l&apos;objet dans les résultats de recherche" />
154 <check_box label="À vendre" name="checkbox for sale" />
155 <text name="Price: L$"> 150 <text name="Price: L$">
156 Prix : L$ 151 Prix : L$
157 </text> 152 </text>
158 <text name="Cost"> 153 <text name="Cost">
159 Prix : $L 154 Prix : L$
160 </text> 155 </text>
161 <radio_group name="sale type"> 156 <radio_group name="sale type">
162 <radio_item name="Original"> 157 <radio_item name="Original">
163 Original 158 Original
164 </radio_item> 159 </radio_item>
165 <radio_item name="Copy"> 160 <radio_item name="Copy">
166 Copier 161 Copie
167 </radio_item> 162 </radio_item>
168 <radio_item name="Contents"> 163 <radio_item name="Contents">
169 Contenus 164 Contenus
@@ -172,18 +167,18 @@
172 <text name="Next owner can:"> 167 <text name="Next owner can:">
173 Le prochain propriétaire pourra : 168 Le prochain propriétaire pourra :
174 </text> 169 </text>
175 <check_box label="Modifier" name="checkbox next owner can modify" /> 170 <check_box label="Modifier" name="checkbox next owner can modify"/>
176 <check_box label="Copier" name="checkbox next owner can copy" /> 171 <check_box label="Copier" name="checkbox next owner can copy" left_delta="66" />
177 <check_box label="Revendre/Donner" name="checkbox next owner can transfer" /> 172 <check_box label="Revendre/Donner" name="checkbox next owner can transfer"/>
178 <text name="label click action"> 173 <text name="label click action">
179 Action clic-gauche : 174 Action du clic-gauche :
180 </text> 175 </text>
181 <combo_box name="clickaction"> 176 <combo_box name="clickaction" width="178">
182 <combo_item name="Touch/grab(default)"> 177 <combo_item name="Touch/grab(default)">
183 Toucher/attraper (défaut) 178 Toucher/attraper (défaut)
184 </combo_item> 179 </combo_item>
185 <combo_item name="Sitonobject"> 180 <combo_item name="Sitonobject">
186 M&apos;asseoir sur l&apos;objet 181 S&apos;asseoir sur l&apos;objet
187 </combo_item> 182 </combo_item>
188 <combo_item name="Buyobject"> 183 <combo_item name="Buyobject">
189 Acheter l&apos;objet 184 Acheter l&apos;objet
@@ -195,10 +190,10 @@
195 Ouvrir 190 Ouvrir
196 </combo_item> 191 </combo_item>
197 <combo_item name="Play"> 192 <combo_item name="Play">
198 Jouer le média sur la parcelle 193 Jouer le média de la parcelle
199 </combo_item> 194 </combo_item>
200 <combo_item name="Opemmedia"> 195 <combo_item name="Opemmedia">
201 Ouvrir le média sur la parcelle 196 Ouvrir le média de la parcelle
202 </combo_item> 197 </combo_item>
203 </combo_box> 198 </combo_box>
204 <text name="B:"> 199 <text name="B:">
@@ -232,16 +227,16 @@
232 Vous ne pouvez pas modifier ces objets. 227 Vous ne pouvez pas modifier ces objets.
233 </text> 228 </text>
234 <text name="text modify warning"> 229 <text name="text modify warning">
235 Pour définir les permissions, vous devez sélectionner l&apos;objet en entier. 230 Sélectionnez l&apos;objet en entier.
236 </text> 231 </text>
237 <string name="Cost Default"> 232 <string name="Cost Default">
238 Prix : $L 233 Prix : L$
239 </string> 234 </string>
240 <string name="Cost Total"> 235 <string name="Cost Total">
241 Prix total : $L 236 Prix total : L$
242 </string> 237 </string>
243 <string name="Cost Per Unit"> 238 <string name="Cost Per Unit">
244 Prix par : $L 239 Prix par : L$
245 </string> 240 </string>
246 <string name="Cost Mixed"> 241 <string name="Cost Mixed">
247 Prix mixte 242 Prix mixte
@@ -252,37 +247,33 @@
252 </panel> 247 </panel>
253 <panel label="Objet" name="Object"> 248 <panel label="Objet" name="Object">
254 <text name="select_single"> 249 <text name="select_single">
255 Sélectionnez un seul prim pour modifier les paramètres. 250 Sélectionnez un prim pour modifier les paramètres.
256 </text> 251 </text>
257 <text name="edit_object"> 252 <text name="edit_object">
258 Modifier les paramètres de l&apos;objet : 253 Modifier les paramètres de l&apos;objet :
259 </text> 254 </text>
260 <check_box label="Verrouillé" name="checkbox locked" 255 <check_box label="Verrouillé" name="checkbox locked" tool_tip="Empêche l&apos;objet d&apos;être déplacé ou supprimé. Utile pendant la construction pour éviter les modifications involontaires."/>
261 tool_tip="Empêche l&apos;objet d&apos;être déplacé ou supprimé. Utile pendant la construction pour éviter les modifications involontaires." /> 256 <check_box label="Physique" name="Physical Checkbox Ctrl" tool_tip="Permet à l&apos;objet d&apos;être poussé et affecté par la gravité"/>
262 <check_box label="Physique" name="Physical Checkbox Ctrl" 257 <check_box label="Temporaire" name="Temporary Checkbox Ctrl" tool_tip="L&apos;objet est supprimé 1 mn après sa création."/>
263 tool_tip="Permet à l&apos;objet d&apos;être poussé et affecté par la gravité" /> 258 <check_box label="Fantôme" name="Phantom Checkbox Ctrl" tool_tip="Permet à l&apos;objet de ne pas entrer en collision avec d&apos;autres objets ou avatars."/>
264 <check_box label="Temporaire" name="Temporary Checkbox Ctrl"
265 tool_tip="L&apos;objet est supprimé 1 mn après sa création." />
266 <check_box label="Fantôme" name="Phantom Checkbox Ctrl"
267 tool_tip="Permet à l&apos;objet de ne pas entrer en collision avec d&apos;autres objets ou avatars." />
268 <text name="label position"> 259 <text name="label position">
269 Position (mètres) 260 Position (mètres)
270 </text> 261 </text>
271 <spinner label="X" name="Pos X" /> 262 <spinner label="X" name="Pos X"/>
272 <spinner label="Y" name="Pos Y" /> 263 <spinner label="Y" name="Pos Y"/>
273 <spinner label="Z" name="Pos Z" /> 264 <spinner label="Z" name="Pos Z"/>
274 <text name="label size"> 265 <text name="label size">
275 Taille (mètres) 266 Taille (mètres)
276 </text> 267 </text>
277 <spinner label="X" name="Scale X" /> 268 <spinner label="X" name="Scale X"/>
278 <spinner label="Y" name="Scale Y" /> 269 <spinner label="Y" name="Scale Y"/>
279 <spinner label="Z" name="Scale Z" /> 270 <spinner label="Z" name="Scale Z"/>
280 <text name="label rotation"> 271 <text name="label rotation">
281 Rotation (degrés) 272 Rotation (degrés)
282 </text> 273 </text>
283 <spinner label="X" name="Rot X" /> 274 <spinner label="X" name="Rot X"/>
284 <spinner label="Y" name="Rot Y" /> 275 <spinner label="Y" name="Rot Y"/>
285 <spinner label="Z" name="Rot Z" /> 276 <spinner label="Z" name="Rot Z"/>
286 <text name="label material"> 277 <text name="label material">
287 Matériau 278 Matériau
288 </text> 279 </text>
@@ -335,19 +326,19 @@
335 Anneau 326 Anneau
336 </combo_item> 327 </combo_item>
337 <combo_item name="Sculpted"> 328 <combo_item name="Sculpted">
338 Sculpté 329 Sculptie
339 </combo_item> 330 </combo_item>
340 </combo_box> 331 </combo_box>
341 <text name="text cut"> 332 <text name="text cut">
342 Début et fin de la découpe du tracé 333 Début et fin de découpe du tracé
343 </text> 334 </text>
344 <spinner label="D" name="cut begin" /> 335 <spinner label="D" name="cut begin"/>
345 <spinner label="F" name="cut end" /> 336 <spinner label="F" name="cut end"/>
346 <text name="text hollow"> 337 <text name="text hollow">
347 Creux 338 Creux
348 </text> 339 </text>
349 <text name="text skew"> 340 <text name="text skew">
350 Biaiser 341 Biais
351 </text> 342 </text>
352 <text name="Hollow Shape"> 343 <text name="Hollow Shape">
353 Forme du creux 344 Forme du creux
@@ -367,50 +358,47 @@
367 </combo_item> 358 </combo_item>
368 </combo_box> 359 </combo_box>
369 <text name="text twist"> 360 <text name="text twist">
370 Début et fin de la vrille 361 Début et fin de vrille
371 </text> 362 </text>
372 <spinner label="D" name="Twist Begin" /> 363 <spinner label="D" name="Twist Begin"/>
373 <spinner label="F" name="Twist End" /> 364 <spinner label="F" name="Twist End"/>
374 <text name="scale_taper"> 365 <text name="scale_taper">
375 Biseauter 366 Biseautage
376 </text> 367 </text>
377 <text name="scale_hole"> 368 <text name="scale_hole">
378 Taille du trou 369 Taille du trou
379 </text> 370 </text>
380 <spinner label="X" name="Taper Scale X" /> 371 <spinner label="X" name="Taper Scale X"/>
381 <spinner label="Y" name="Taper Scale Y" /> 372 <spinner label="Y" name="Taper Scale Y"/>
382 <text name="text topshear"> 373 <text name="text topshear">
383 Inclinaison 374 Inclinaison
384 </text> 375 </text>
385 <spinner label="X" name="Shear X" /> 376 <spinner label="X" name="Shear X"/>
386 <spinner label="Y" name="Shear Y" /> 377 <spinner label="Y" name="Shear Y"/>
387 <text name="advanced_cut"> 378 <text name="advanced_cut">
388 Début et fin de la découpe du profilé 379 Début et fin de découpe du profilé
389 </text> 380 </text>
390 <text name="advanced_dimple"> 381 <text name="advanced_dimple">
391 Début et fin du creux 382 Début et fin du creux
392 </text> 383 </text>
393 <spinner label="D" name="Path Limit Begin" /> 384 <spinner label="D" name="Path Limit Begin"/>
394 <spinner label="F" name="Path Limit End" /> 385 <spinner label="F" name="Path Limit End"/>
395 <text name="text taper2"> 386 <text name="text taper2">
396 Biseauter 387 Biseautage
397 </text> 388 </text>
398 <spinner label="X" name="Taper X" /> 389 <spinner label="X" name="Taper X"/>
399 <spinner label="Y" name="Taper Y" /> 390 <spinner label="Y" name="Taper Y"/>
400 <text name="text radius delta"> 391 <text name="text radius delta">
401 Rayon 392 Rayon
402 </text> 393 </text>
403 <text name="text revolutions"> 394 <text name="text revolutions">
404 Révolutions 395 Révolutions
405 </text> 396 </text>
406 <texture_picker label="Sculpter la texture" name="sculpt texture control" 397 <texture_picker label="Texture du sculptie" name="sculpt texture control" tool_tip="Cliquez pour sélectionner une image"/>
407 tool_tip="Cliquez pour sélectionner une image" /> 398 <check_box label="Mirroir" name="sculpt mirror control" tool_tip="Retourne le sculptie le long de l&apos;axe des X."/>
408 <check_box label="Mirroir" name="sculpt mirror control" 399 <check_box label="A l&apos;envers" name="sculpt invert control" tool_tip="Inverse les valeurs normales d&apos;un sculptie et le fait apparaître à l&apos;envers."/>
409 tool_tip="Retourne le prim sculpté le long de l&apos;axe des X." />
410 <check_box label="A l&apos;envers" name="sculpt invert control"
411 tool_tip="Inverse les valeurs normales d&apos;un prim sculpté et le fait apparaître à l&apos;envers." />
412 <text name="label sculpt type"> 400 <text name="label sculpt type">
413 Type de couture 401 Type de raccord
414 </text> 402 </text>
415 <combo_box name="sculpt type control"> 403 <combo_box name="sculpt type control">
416 <combo_item name="None"> 404 <combo_item name="None">
@@ -432,44 +420,39 @@
432 </panel> 420 </panel>
433 <panel label="Attributs" name="Features"> 421 <panel label="Attributs" name="Features">
434 <text name="select_single"> 422 <text name="select_single">
435 Sélectionnez un seul prim pour modifier les attributs. 423 Sélectionnez un prim pour modifier les attributs.
436 </text> 424 </text>
437 <text name="edit_object"> 425 <text name="edit_object">
438 Modifier les attributs de l&apos;objet : 426 Modifier les attributs de l&apos;objet :
439 </text> 427 </text>
440 <check_box label="Tracé flexible" name="Flexible1D Checkbox Ctrl" 428 <check_box label="Flexibilité" name="Flexible1D Checkbox Ctrl" tool_tip="Donne à l&apos;objet de la souplesse sur l&apos;axe des Z (côté client uniquement)."/>
441 tool_tip="Donne à l&apos;objet de la souplesse sur l&apos;axe des Z. (côté client uniquement)" /> 429 <spinner label="Souplesse" name="FlexNumSections"/>
442 <spinner label="Souplesse" name="FlexNumSections" /> 430 <spinner label="Gravité" name="FlexGravity"/>
443 <spinner label="Gravité" name="FlexGravity" /> 431 <spinner label="Élasticité" name="FlexFriction"/>
444 <spinner label="Faire glisser" name="FlexFriction" /> 432 <spinner label="Vent" name="FlexWind"/>
445 <spinner label="Vent" name="FlexWind" /> 433 <spinner label="Tension" name="FlexTension"/>
446 <spinner label="Tension" name="FlexTension" /> 434 <spinner label="Force X" name="FlexForceX"/>
447 <spinner label="Force X" name="FlexForceX" /> 435 <spinner label="Force Y" name="FlexForceY"/>
448 <spinner label="Force Y" name="FlexForceY" /> 436 <spinner label="Force Z" name="FlexForceZ"/>
449 <spinner label="Force Z" name="FlexForceZ" /> 437 <check_box label="Lumière" name="Light Checkbox Ctrl" tool_tip="Permet aux objets d&apos;émettre de la lumière"/>
450 <check_box label="Lumière" name="Light Checkbox Ctrl"
451 tool_tip="Permet aux objets d&apos;émettre de la lumière" />
452 <text name="label color"> 438 <text name="label color">
453 Couleur 439 Couleur
454 </text> 440 </text>
455 <color_swatch label="" name="colorswatch" 441 <color_swatch label="" name="colorswatch" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>
456 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" /> 442 <spinner label="Intensité" name="Light Intensity"/>
457 <spinner label="Intensité" name="Light Intensity" /> 443 <spinner label="Portée" name="Light Radius"/>
458 <spinner label="Rayon" name="Light Radius" /> 444 <spinner label="Atténuation" name="Light Falloff"/>
459 <spinner label="Atténuation" name="Light Falloff" />
460 </panel> 445 </panel>
461 <panel label="Texture" name="Texture"> 446 <panel label="Texture" name="Texture">
462 <texture_picker label="Texture" name="texture control" 447 <texture_picker label="Texture" name="texture control" tool_tip="Cliquez pour sélectionner une image"/>
463 tool_tip="Cliquez pour sélectionner une image" /> 448 <color_swatch label="Couleur" name="colorswatch" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs"/>
464 <color_swatch label="Couleur" name="colorswatch"
465 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" />
466 <text name="color trans" width="88"> 449 <text name="color trans" width="88">
467 Transparence (%) 450 Transparence
468 </text> 451 </text>
469 <text name="glow label"> 452 <text name="glow label">
470 Rayonnement 453 Rayonnement
471 </text> 454 </text>
472 <check_box label="Luminosité &#10;maximale" name="checkbox fullbright" /> 455 <check_box label="Lumineux" name="checkbox fullbright"/>
473 <text name="tex gen"> 456 <text name="tex gen">
474 Application 457 Application
475 </text> 458 </text>
@@ -478,7 +461,7 @@
478 Défaut 461 Défaut
479 </combo_item> 462 </combo_item>
480 <combo_item name="Planar"> 463 <combo_item name="Planar">
481 Planaire 464 Planar
482 </combo_item> 465 </combo_item>
483 </combo_box> 466 </combo_box>
484 <text name="label shininess"> 467 <text name="label shininess">
@@ -512,108 +495,106 @@
512 Obscurité 495 Obscurité
513 </combo_item> 496 </combo_item>
514 <combo_item name="woodgrain"> 497 <combo_item name="woodgrain">
515 aggloméré 498 Aggloméré
516 </combo_item> 499 </combo_item>
517 <combo_item name="bark"> 500 <combo_item name="bark">
518 écorce 501 Ãcorce
519 </combo_item> 502 </combo_item>
520 <combo_item name="bricks"> 503 <combo_item name="bricks">
521 briques 504 Briques
522 </combo_item> 505 </combo_item>
523 <combo_item name="checker"> 506 <combo_item name="checker">
524 damier 507 Damier
525 </combo_item> 508 </combo_item>
526 <combo_item name="concrete"> 509 <combo_item name="concrete">
527 béton 510 Béton
528 </combo_item> 511 </combo_item>
529 <combo_item name="crustytile"> 512 <combo_item name="crustytile">
530 carrelage 513 Carrelage
531 </combo_item> 514 </combo_item>
532 <combo_item name="cutstone"> 515 <combo_item name="cutstone">
533 pierre de taille 516 Pierre de taille
534 </combo_item> 517 </combo_item>
535 <combo_item name="discs"> 518 <combo_item name="discs">
536 rondelles 519 Disques
537 </combo_item> 520 </combo_item>
538 <combo_item name="gravel"> 521 <combo_item name="gravel">
539 gravier 522 Gravier
540 </combo_item> 523 </combo_item>
541 <combo_item name="petridish"> 524 <combo_item name="petridish">
542 boîte de Petri 525 Boîte de Petri
543 </combo_item> 526 </combo_item>
544 <combo_item name="siding"> 527 <combo_item name="siding">
545 bardage 528 Lattes
546 </combo_item> 529 </combo_item>
547 <combo_item name="stonetile"> 530 <combo_item name="stonetile">
548 carreau 531 Carreaux
549 </combo_item> 532 </combo_item>
550 <combo_item name="stucco"> 533 <combo_item name="stucco">
551 stuc 534 Stuc
552 </combo_item> 535 </combo_item>
553 <combo_item name="suction"> 536 <combo_item name="suction">
554 ventouses 537 Ventouses
555 </combo_item> 538 </combo_item>
556 <combo_item name="weave"> 539 <combo_item name="weave">
557 tissage 540 Tissage
558 </combo_item> 541 </combo_item>
559 </combo_box> 542 </combo_box>
560 <text name="tex scale"> 543 <text name="tex scale">
561 Répétitions par face 544 Répétitions par face
562 </text> 545 </text>
563 <spinner label="Horizontal (U)" name="TexScaleU" /> 546 <spinner label="Horizontal (U)" name="TexScaleU"/>
564 <check_box label="Retourner" name="checkbox flip s" /> 547 <check_box label="Inverser" name="checkbox flip s"/>
565 <spinner label="Vertical (V)" name="TexScaleV" /> 548 <spinner label="Vertical (V)" name="TexScaleV"/>
566 <check_box label="Retourner" name="checkbox flip t" /> 549 <check_box label="Inverser" name="checkbox flip t"/>
567 <text name="tex rotate"> 550 <text name="tex rotate">
568 Rotation (degrés) 551 Rotation (degrés)
569 </text> 552 </text>
570 <text name="string repeats per meter"> 553 <spinner left="122" name="TexRot" width="58" />
554 <string name="string repeats per meter">
571 Répétitions au mètre 555 Répétitions au mètre
572 </text> 556 </string>
573 <text name="string repeats per face"> 557 <string name="string repeats per face">
574 Répétitions par face 558 Répétitions par face
575 </text> 559 </string>
576 <text name="rpt"> 560 <text name="rpt" width="160">
577 Répétitions au mètre 561 Répétitions au mètre
578 </text> 562 </text>
579 <button label="Appliquer" label_selected="Appliquer" name="button apply" /> 563 <spinner left="122" name="rptctrl" width="58" />
564 <button label="Appliquer" label_selected="Appliquer" name="button apply" left_delta="68" width="75"/>
580 <text name="tex offset"> 565 <text name="tex offset">
581 Décaler 566 Décalage
582 </text> 567 </text>
583 <spinner label="Horizontal (U)" name="TexOffsetU" /> 568 <spinner label="Horizontal (U)" name="TexOffsetU"/>
584 <spinner label="Vertical (V)" name="TexOffsetV" /> 569 <spinner label="Vertical (V)" name="TexOffsetV"/>
585 <text name="textbox autofix"> 570 <text name="textbox autofix">
586 Ajuster la texture du média 571 Ajuster la texture du média
587(chargement préalable) 572(chargement préalable)
588 </text> 573 </text>
589 <button label="Ajuster" label_selected="Ajuster" name="button align" /> 574 <button left="150" label="Ajuster" label_selected="Ajuster" name="button align"/>
590 </panel> 575 </panel>
591 <panel label="Contenu" name="Contents"> 576 <panel label="Contenu" name="Contents">
592 <button label="Nouveau script..." label_selected="Nouveau script..." 577 <button label="Nouveau script..." label_selected="Nouveau script..." name="button new script"/>
593 name="button new script" />
594 </panel> 578 </panel>
595 </tab_container> 579 </tab_container>
596 <panel name="land info panel"> 580 <panel name="land info panel">
597 <text name="label_area_price"> 581 <text name="label_area_price">
598 Prix : [PRICE] $L pour [AREA] m². 582 Prix : [PRICE] L$ pour [AREA] m².
599 </text> 583 </text>
600 <text name="label_area"> 584 <text name="label_area">
601 Surface : [AREA] m² 585 Surface : [AREA] m²
602 </text> 586 </text>
603 <button label="Acheter le terrain..." label_selected="Acheter le terrain..." 587 <button label="Acheter le terrain..." label_selected="Acheter le terrain..." name="button buy land" width="132"/>
604 name="button buy land" width="132" /> 588 <button label="Abandonner le terrain..." label_selected="Abandonner le terrain..." name="button abandon land" width="132"/>
605 <button label="Céder le terrain..." label_selected="Céder le terrain..." 589 <button label="Diviser..." label_selected="Diviser..." name="button subdivide land" width="132"/>
606 name="button abandon land" width="132" /> 590 <button label="Fusionner..." label_selected="Fusionner..." name="button join land" width="132"/>
607 <button label="Diviser..." label_selected="Diviser..." name="button subdivide land" width="132" /> 591 <button label="À propos du terrain..." label_selected="À propos du terrain..." name="button about land" width="132"/>
608 <button label="Fusionner..." label_selected="Fusionner..." name="button join land" width="132" />
609 <button label="À propos du terrain..." label_selected="À propos du terrain..."
610 name="button about land" width="132" />
611 </panel> 592 </panel>
612 <string name="status_rotate"> 593 <string name="status_rotate">
613 Pour faire tourner l&apos;objet, faîtes glisser les bandes de couleur. 594 Pour faire tourner l&apos;objet, faîtes glisser les bandes de couleur.
614 </string> 595 </string>
615 <string name="status_scale"> 596 <string name="status_scale">
616 Pour étirer le côté sélectionné, cliquez et faîtes glisser 597 Pour étirer le côté sélectionné, cliquez et faites glisser
617 </string> 598 </string>
618 <string name="status_move"> 599 <string name="status_move">
619 Faîtes glisser pour déplacer, Maj-faire glisser pour copier. 600 Faîtes glisser pour déplacer, Maj-faire glisser pour copier.
@@ -622,7 +603,7 @@
622 Cliquez et maintenez pour modifier le terrain 603 Cliquez et maintenez pour modifier le terrain
623 </string> 604 </string>
624 <string name="status_camera"> 605 <string name="status_camera">
625 Cliquez et faîtes glisser pour changer l&apos;affichage 606 Cliquez et faites glisser pour changer l&apos;affichage
626 </string> 607 </string>
627 <string name="status_grab"> 608 <string name="status_grab">
628 Faîtes glisser pour déplacer les objets, appuyez sur Ctrl pour soulever, Crtl-Maj pour faire tourner 609 Faîtes glisser pour déplacer les objets, appuyez sur Ctrl pour soulever, Crtl-Maj pour faire tourner
@@ -631,10 +612,10 @@
631 Cliquez dans le Monde pour créer, Maj-clic pour sélectionner 612 Cliquez dans le Monde pour créer, Maj-clic pour sélectionner
632 </string> 613 </string>
633 <string name="status_selectland"> 614 <string name="status_selectland">
634 Cliquez et faîtes glisser pour sélectionner le terrain 615 Cliquez et faites glisser pour sélectionner le terrain
635 </string> 616 </string>
636 <string name="grid_screen_text"> 617 <string name="grid_screen_text">
637 Ecran 618 Écran
638 </string> 619 </string>
639 <string name="grid_local_text"> 620 <string name="grid_local_text">
640 Local 621 Local
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_top_objects.xml b/linden/indra/newview/skins/default/xui/fr/floater_top_objects.xml
index acf84c4..3be281b 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_top_objects.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_top_objects.xml
@@ -1,51 +1,55 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="top_objects" title="en cours de chargement..."> 2<floater name="top_objects" title="en cours de chargement...">
3 <text name="title_text"> 3 <text name="title_text">
4 Chargement en cours... 4 Chargement...
5 </text> 5 </text>
6 <scroll_list name="objects_list"> 6 <scroll_list name="objects_list">
7 <column label="Score" name="score" /> 7 <column label="Score" name="score"/>
8 <column label="Nom" name="name" /> 8 <column label="Nom" name="name"/>
9 <column label="Propriétaire" name="owner" /> 9 <column label="Propriétaire" name="owner"/>
10 <column label="Emplacement" name="location" /> 10 <column label="Lieu" name="location"/>
11 <column label="Heure" name="time" /> 11 <column label="Heure" name="time"/>
12 <column label="Heure Mono" name="mono_time"/>
12 </scroll_list> 13 </scroll_list>
13 <text name="id_text"> 14 <text name="id_text">
14 ID de l&apos;objet : 15 ID de l&apos;objet :
15 </text> 16 </text>
16 <button label="Afficher balise" name="show_beacon_btn" /> 17 <button label="Afficher balise" name="show_beacon_btn"/>
17 <text name="obj_name_text"> 18 <text name="obj_name_text">
18 Nom : 19 Nom :
19 </text> 20 </text>
20 <button label="Filtre" name="filter_object_btn" /> 21 <button label="Filtre" name="filter_object_btn"/>
21 <text name="owner_name_text"> 22 <text name="owner_name_text">
22 Nom : 23 Nom :
23 </text> 24 </text>
24 <button label="Filtre" name="filter_owner_btn" /> 25 <button label="Filtre" name="filter_owner_btn"/>
25 <button label="Renvoyer" name="return_selected_btn" /> 26 <button label="Renvoyer" name="return_selected_btn"/>
26 <button label="Renvoyer tous" name="return_all_btn" /> 27 <button label="Renvoyer tous" name="return_all_btn"/>
27 <button label="Désactiver" name="disable_selected_btn" /> 28 <button label="Désactiver" name="disable_selected_btn"/>
28 <button label="Désactiver tous" name="disable_all_btn" /> 29 <button label="Désactiver tous" name="disable_all_btn"/>
29 <button label="Rafraîchir" name="refresh_btn" /> 30 <button label="Rafraîchir" name="refresh_btn"/>
30 <text name="top_scripts_title"> 31 <string name="top_scripts_title">
31 Scripts principaux 32 Scripts principaux
32 </text> 33 </string>
33 <text name="top_scripts_text"> 34 <string name="top_scripts_text">
34 [COUNT] scripts prenant un total de [TIME] ms 35 [COUNT] scripts prenant un total de [TIME] ms
35 </text> 36 </string>
36 <text name="scripts_score_label"> 37 <string name="scripts_score_label">
37 Heure 38 Heure
38 </text> 39 </string>
39 <text name="top_colliders_title"> 40 <string name="scripts_mono_time_label">
41 Heure Mono
42 </string>
43 <string name="top_colliders_title">
40 Objets souvent responsables de collision 44 Objets souvent responsables de collision
41 </text> 45 </string>
42 <text name="top_colliders_text"> 46 <string name="top_colliders_text">
43 [COUNT] objets le plus souvent responsables de collisions 47 [COUNT] objets souvent responsables de collisions
44 </text> 48 </string>
45 <text name="colliders_score_label"> 49 <string name="colliders_score_label">
46 Score 50 Score
47 </text> 51 </string>
48 <text name="none_descriptor"> 52 <string name="none_descriptor">
49 Aucun résultat. 53 Aucun résultat.
50 </text> 54 </string>
51</floater> 55</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_url_entry.xml b/linden/indra/newview/skins/default/xui/fr/floater_url_entry.xml
index b8de210..6a90731 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_url_entry.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_url_entry.xml
@@ -3,10 +3,11 @@
3 <text name="media_label"> 3 <text name="media_label">
4 URL du média : 4 URL du média :
5 </text> 5 </text>
6 <combo_box left="100" name="media_entry" width="360" />
6 <button label="OK" name="ok_btn" /> 7 <button label="OK" name="ok_btn" />
7 <button label="Annuler" name="cancel_btn" /> 8 <button label="Annuler" name="cancel_btn" />
8 <button label="Effacer" name="clear_btn" /> 9 <button label="Effacer" name="clear_btn" />
9 <text name="loading_label"> 10 <text name="loading_label">
10 Chargement en cours... 11 Chargement...
11 </text> 12 </text>
12</floater> 13</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_windlight_options.xml b/linden/indra/newview/skins/default/xui/fr/floater_windlight_options.xml
index bc3fda3..d1a62dc 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_windlight_options.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_windlight_options.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="WindLight floater" title="Éditeur de ciel avancé"> 2<floater name="WindLight floater" title="Éditeur de ciel avancé" width="706">
3 <text name="KeyFramePresetsText"> 3 <text name="KeyFramePresetsText">
4 Préréglages ciel : 4 Préréglages ciel :
5 </text> 5 </text>
@@ -8,7 +8,7 @@
8 <button label="Supprimer" label_selected="Supprimer" name="WLDeletePreset" left_delta="80"/> 8 <button label="Supprimer" label_selected="Supprimer" name="WLDeletePreset" left_delta="80"/>
9 <button label="Éditeur du cycle du jour" label_selected="Éditeur du cycle du jour" 9 <button label="Éditeur du cycle du jour" label_selected="Éditeur du cycle du jour"
10 name="WLDayCycleMenuButton" width="150" left_delta="95" /> 10 name="WLDayCycleMenuButton" width="150" left_delta="95" />
11 <tab_container name="WindLight Tabs"> 11 <tab_container name="WindLight Tabs" width="706">
12 <panel label="Atmosphère" name="Atmosphere"> 12 <panel label="Atmosphère" name="Atmosphere">
13 <text name="BHText"> 13 <text name="BHText">
14 Bleu de l&apos;horizon 14 Bleu de l&apos;horizon
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_world_map.xml b/linden/indra/newview/skins/default/xui/fr/floater_world_map.xml
index 99ef292..6c5854d 100644
--- a/linden/indra/newview/skins/default/xui/fr/floater_world_map.xml
+++ b/linden/indra/newview/skins/default/xui/fr/floater_world_map.xml
@@ -1,107 +1,90 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="worldmap" title="Carte du monde"> 2<floater name="worldmap" title="Carte du monde">
3 <tab_container name="maptab" width="955"> 3 <tab_container name="maptab" width="955">
4 <panel label="Objets" name="objects_mapview" width="953" /> 4 <panel label="Objets" name="objects_mapview" width="953"/>
5 <panel label="Terrain" name="terrain_mapview" width="953" /> 5 <panel label="Terrain" name="terrain_mapview" width="953"/>
6 </tab_container> 6 </tab_container>
7 <icon left="973" name="square" /> 7 <icon left="973" name="square"/>
8 <text name="land_for_sale_label"> 8 <text name="land_for_sale_label">
9 Terrain à vendre 9 Terrain à vendre
10 </text> 10 </text>
11 <icon left="1113" name="square2" /> 11 <icon left="1113" name="square2"/>
12 <text name="auction_label"> 12 <text name="auction_label">
13 Enchère 13 Terrain aux enchères
14 </text> 14 </text>
15 <icon left="973" name="self" /> 15 <icon left="973" name="self"/>
16 <text name="you_label"> 16 <text name="you_label">
17 Vous 17 Vous
18 </text> 18 </text>
19 <icon left="1033" name="home" /> 19 <icon left="1033" name="home"/>
20 <text name="home_label"> 20 <text name="home_label">
21 Domicile 21 Domicile
22 </text> 22 </text>
23 <button label="Aller chez moi" label_selected="Aller chez moi" name="Go Home" 23 <button label="Aller chez moi" label_selected="Aller chez moi" name="Go Home" tool_tip="Vous téléporte à votre domicile"/>
24 tool_tip="Vous téléporte à votre domicile" /> 24 <icon left="977" name="person"/>
25 <icon left="977" name="person" />
26 <text name="person_label"> 25 <text name="person_label">
27 Personne 26 Résident
28 </text> 27 </text>
29 <icon left="973" name="infohub" /> 28 <icon left="973" name="infohub"/>
30 <check_box label=" " left_delta="60" name="people_chk" /> 29 <check_box label=" " left_delta="60" name="people_chk"/>
31 <text name="infohub_label"> 30 <text name="infohub_label">
32 Infohub 31 Infohub
33 </text> 32 </text>
34 <icon left="973" name="telehub" /> 33 <icon left="973" name="telehub"/>
35 <check_box label=" " left_delta="60" name="infohub_chk" /> 34 <check_box label=" " left_delta="60" name="infohub_chk"/>
36 <text name="telehub_label"> 35 <text name="telehub_label">
37 Téléhub 36 Téléhub
38 </text> 37 </text>
39 <check_box label=" " left_delta="60" name="telehubchk" /> 38 <check_box label=" " left_delta="60" name="telehubchk"/>
40 <icon left="1113" name="landforsale" /> 39 <icon left="1113" name="landforsale"/>
41 <text name="land_for_sale_label2"> 40 <text name="land_for_sale_label2">
42 Terrain à vendre 41 Terrain à vendre
43 </text> 42 </text>
44 <check_box label=" " name="land_for_sale_chk" /> 43 <check_box label=" " name="land_for_sale_chk"/>
45 <icon left="1113" name="event" /> 44 <icon left="1113" name="event"/>
46 <text name="events_label"> 45 <text name="events_label">
47 Événements 46 Événements
48 </text> 47 </text>
49 <check_box label=" " name="event_chk" /> 48 <check_box label=" " name="event_chk"/>
50 <icon left="1113" name="events_mature_icon" /> 49 <icon left="1113" name="events_mature_icon"/>
51 <text name="events_mature_label"> 50 <text name="events_mature_label">
52 Événements (A) 51 Événements (A)
53 </text> 52 </text>
54 <check_box label=" " name="event_mature_chk" /> 53 <check_box label=" " name="event_mature_chk"/>
55 <icon left="973" name="avatar_icon" /> 54 <icon left="973" name="avatar_icon"/>
56 <combo_box label="Amis connectés" name="friend combo" 55 <combo_box label="Amis connectés" name="friend combo" tool_tip="Ami à afficher sur la carte" width="232">
57 tool_tip="Ami à afficher sur la carte" width="232">
58 <combo_item name="none_selected"> 56 <combo_item name="none_selected">
59 Amis connectés 57 Amis connectés
60 </combo_item> 58 </combo_item>
61 </combo_box> 59 </combo_box>
62 <icon left="973" name="landmark_icon" /> 60 <icon left="973" name="landmark_icon"/>
63 <combo_box label="Repères" name="landmark combo" 61 <combo_box label="Repères" name="landmark combo" tool_tip="Repère à afficher sur la carte" width="232">
64 tool_tip="Repère à afficher sur la carte" width="232">
65 <combo_item name="none_selected"> 62 <combo_item name="none_selected">
66 Repères 63 Repères
67 </combo_item> 64 </combo_item>
68 </combo_box> 65 </combo_box>
69 <icon left="973" name="location_icon" /> 66 <icon left="973" name="location_icon"/>
70 <line_editor label="Rechercher par nom de région" name="location" 67 <line_editor label="Rechercher par nom de région" name="location" tool_tip="Saisissez le nom d&apos;une région" width="155">
71 tool_tip="Saisissez le nom d&apos;une région" width="155">
72 Recherche par nom de région 68 Recherche par nom de région
73 </line_editor> 69 </line_editor>
74 <button label="Rechercher" label_selected="&gt;" left_delta="160" name="DoSearch" 70 <button label="Rechercher" label_selected="&gt;" left_delta="160" name="DoSearch" tool_tip="Recherchez sur la carte" width="75"/>
75 tool_tip="Rechercher dans la région" width="75" />
76 <text left="973" name="search_label"> 71 <text left="973" name="search_label">
77 Résultats de la recherche : 72 Résultats de la recherche :
78 </text> 73 </text>
79 <scroll_list left="973" name="search_results" width="252"> 74 <scroll_list left="973" name="search_results" width="252">
80 <column label="" name="icon" /> 75 <column label="" name="icon"/>
81 <column label="" name="sim_name" /> 76 <column label="" name="sim_name"/>
82 </scroll_list> 77 </scroll_list>
83 <text left="973" name="location_label"> 78 <text left="973" name="location_label">
84 Emplacement : 79 Emplacement :
85 </text> 80 </text>
86 <spinner left="993" name="spin x" 81 <spinner left="993" name="spin x" tool_tip="Coordonnées des X du lieu à afficher sur la carte"/>
87 tool_tip="Coordonnées des X du lieu à afficher sur la carte" /> 82 <spinner left="993" name="spin y" tool_tip="Coordonnées des Y du lieu à afficher sur la carte"/>
88 <spinner left="993" name="spin y" 83 <spinner left="993" name="spin z" tool_tip="Coordonnées des Z du lieu à afficher sur la carte"/>
89 tool_tip="Coordonnées des Y du lieu à afficher sur la carte" /> 84 <button label="Téléporter" label_selected="Téléporter" left="-270" name="Teleport" tool_tip="Téléporter à l&apos;endroit sélectionné"/>
90 <spinner left="993" name="spin z" 85 <button label="Afficher la destination" label_selected="Afficher la destination" name="Show Destination" tool_tip="Centrer la carte sur l&apos;endroit sélectionné" width="165"/>
91 tool_tip="Coordonnées des Z du lieu à afficher sur la carte" /> 86 <button label="Effacer" label_selected="Effacer" left="-270" name="Clear" tool_tip="Arrêter de suivre"/>
92 <button label="Téléporter" label_selected="Téléporter" left="-270" name="Teleport" 87 <button label="Afficher mon emplacement" label_selected="Afficher mon emplacement" name="Show My Location" tool_tip="Centrer la carte sur l&apos;emplacement de votre avatar" width="165"/>
93 tool_tip="Téléporter à l&apos;endroit sélectionné" /> 88 <button label="Copier la SLURL dans le presse-papier" left="-270" name="copy_slurl" tool_tip="Copier l&apos;emplacement actuel comme SLURL pour l&apos;utiliser sur le Web." width="262"/>
94 <button label="Afficher la destination" label_selected="Afficher la destination" 89 <slider label="Zoom" left="-270" name="zoom slider"/>
95 name="Show Destination"
96 tool_tip="Centrer la carte sur l&apos;endroit sélectionné" width="165" />
97 <button label="Effacer" label_selected="Effacer" left="-270" name="Clear"
98 tool_tip="Arrêter de suivre" />
99 <button label="Afficher mon emplacement" label_selected="Afficher mon emplacement"
100 name="Show My Location"
101 tool_tip="Centrer la carte sur l&apos;emplacement de votre avatar"
102 width="165" />
103 <button label="Copier la SLURL sur le presse-papier" left="-270" name="copy_slurl"
104 tool_tip="Copier l&apos;emplacement actuel comme SLURL pour l&apos;utiliser sur le Web."
105 width="262" />
106 <slider label="Zoom" left="-270" name="zoom slider" />
107</floater> 90</floater>
diff --git a/linden/indra/newview/skins/default/xui/fr/menu_inventory.xml b/linden/indra/newview/skins/default/xui/fr/menu_inventory.xml
index e6db0c5..d1cc928 100644
--- a/linden/indra/newview/skins/default/xui/fr/menu_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/fr/menu_inventory.xml
@@ -1,70 +1,67 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<menu name="Popup"> 2<menu name="Popup">
3 <menu_item_call label="Acheter" name="Task Buy" /> 3 <menu_item_call label="Acheter" name="Task Buy"/>
4 <menu_item_call label="Ouvrir" name="Task Open" /> 4 <menu_item_call label="Ouvrir" name="Task Open"/>
5 <menu_item_call label="Jouer" name="Task Play" /> 5 <menu_item_call label="Jouer" name="Task Play"/>
6 <menu_item_call label="Propriétés" name="Task Properties" /> 6 <menu_item_call label="Propriétés" name="Task Properties"/>
7 <menu_item_call label="Renommer" name="Task Rename" /> 7 <menu_item_call label="Renommer" name="Task Rename"/>
8 <menu_item_call label="Supprimer" name="Task Remove" /> 8 <menu_item_call label="Supprimer" name="Task Remove"/>
9 <menu_item_call label="Vider la corbeille" name="Empty Trash" /> 9 <menu_item_call label="Vider la corbeille" name="Empty Trash"/>
10 <menu_item_call label="Vider les objets trouvés" name="Empty Lost And Found" /> 10 <menu_item_call label="Vider les objets trouvés" name="Empty Lost And Found"/>
11 <menu_item_call label="Nouveau dossier" name="New Folder" /> 11 <menu_item_call label="Nouveau dossier" name="New Folder"/>
12 <menu_item_call label="Nouveau script" name="New Script" /> 12 <menu_item_call label="Nouveau script" name="New Script"/>
13 <menu_item_call label="Nouvelle note" name="New Note" /> 13 <menu_item_call label="Nouvelle note" name="New Note"/>
14 <menu_item_call label="Nouveau geste" name="New Gesture" /> 14 <menu_item_call label="Nouveau geste" name="New Gesture"/>
15 <menu name="New Clothes"> 15 <menu name="New Clothes">
16 <menu_item_call label="Nouvelle jupe" name="New Shirt" /> 16 <menu_item_call label="Nouvelle chemise" name="New Shirt"/>
17 <menu_item_call label="Nouveau pantalon" name="New Pants" /> 17 <menu_item_call label="Nouveau pantalon" name="New Pants"/>
18 <menu_item_call label="Nouvelles chaussures" name="New Shoes" /> 18 <menu_item_call label="Nouvelles chaussures" name="New Shoes"/>
19 <menu_item_call label="Nouvelles chaussettes" name="New Socks" /> 19 <menu_item_call label="Nouvelles chaussettes" name="New Socks"/>
20 <menu_item_call label="Nouvelle veste" name="New Jacket" /> 20 <menu_item_call label="Nouvelle veste" name="New Jacket"/>
21 <menu_item_call label="Nouvelle jupe" name="New Skirt" /> 21 <menu_item_call label="Nouvelle jupe" name="New Skirt"/>
22 <menu_item_call label="Nouveaux gants" name="New Gloves" /> 22 <menu_item_call label="Nouveaux gants" name="New Gloves"/>
23 <menu_item_call label="Nouveau tricot de peau" name="New Undershirt" /> 23 <menu_item_call label="Nouveau tricot" name="New Undershirt"/>
24 <menu_item_call label="Nouveaux sous-vêtements" name="New Underpants" /> 24 <menu_item_call label="Nouveaux sous-vêtements" name="New Underpants"/>
25 </menu> 25 </menu>
26 <menu name="New Body Parts"> 26 <menu name="New Body Parts">
27 <menu_item_call label="Nouvelle silhouette" name="New Shape" /> 27 <menu_item_call label="Nouvelle silhouette" name="New Shape"/>
28 <menu_item_call label="Nouvelle peau" name="New Skin" /> 28 <menu_item_call label="Nouvelle peau" name="New Skin"/>
29 <menu_item_call label="Nouveaux cheveux" name="New Hair" /> 29 <menu_item_call label="Nouveaux cheveux" name="New Hair"/>
30 <menu_item_call label="Nouveaux yeux" name="New Eyes" /> 30 <menu_item_call label="Nouveaux yeux" name="New Eyes"/>
31 </menu> 31 </menu>
32 <menu_item_call label="Téléporter" name="Landmark Open" /> 32 <menu_item_call label="Téléporter" name="Landmark Open"/>
33 <menu_item_call label="Ouvrir" name="Animation Open" /> 33 <menu_item_call label="Ouvrir" name="Animation Open"/>
34 <menu_item_call label="Ouvrir" name="Sound Open" /> 34 <menu_item_call label="Ouvrir" name="Sound Open"/>
35 <menu_item_call label="Purger l&apos;objet" name="Purge Item" /> 35 <menu_item_call label="Purger l&apos;objet" name="Purge Item"/>
36 <menu_item_call label="Restaurer l&apos;objet" name="Restore Item" /> 36 <menu_item_call label="Restaurer l&apos;objet" name="Restore Item"/>
37 <menu_item_call label="Ouvrir" name="Open" /> 37 <menu_item_call label="Ouvrir" name="Open"/>
38 <menu_item_call label="Propriétés" name="Properties" /> 38 <menu_item_call label="Propriétés" name="Properties"/>
39 <menu_item_call label="Renommer" name="Rename" /> 39 <menu_item_call label="Renommer" name="Rename"/>
40 <menu_item_call label="Copier l&apos;identifiant universel unique (UUID) de l&apos;actif" 40 <menu_item_call label="Copier l&apos;UUID (identifiant universel unique)" name="Copy Asset UUID"/>
41 name="Copy Asset UUID" /> 41 <menu_item_call label="Copier" name="Copy"/>
42 <menu_item_call label="Copier" name="Copy" /> 42 <menu_item_call label="Coller" name="Paste"/>
43 <menu_item_call label="Coller" name="Paste" /> 43 <menu_item_call label="Supprimer" name="Delete"/>
44 <menu_item_call label="Supprimer" name="Delete" /> 44 <menu_item_call label="Ajouter à l&apos;ensemble" name="Add To Outfit"/>
45 <menu_item_call label="Ajouter à l&apos;ensemble" name="Add To Outfit" /> 45 <menu_item_call label="Remplacer l&apos;ensemble" name="Replace Outfit"/>
46 <menu_item_call label="Remplacer l&apos;ensemble" name="Replace Outfit" /> 46 <menu_item_call label="Enlever les objets" name="Take Off Items"/>
47 <menu_item_call label="Enlever les objets" name="Take Off Items" /> 47 <menu_item_call label="Envoyer un IM aux contacts en ligne dans le dossier" name="IM Online Contacts In Folder"/>
48 <menu_item_call label="Envoyer un IM aux contacts en ligne dans le dossier" 48 <menu_item_call label="Envoyer un IM à tous les contacts dans le dossier" name="IM All Contacts In Folder"/>
49 name="IM Online Contacts In Folder" /> 49 <menu_item_call label="Démarrer le chat conférence" name="Conference Chat Folder"/>
50 <menu_item_call label="Envoyer un IM à tous les contacts dans le dossier" 50 <menu_item_call label="Jouer" name="Sound Play"/>
51 name="IM All Contacts In Folder" /> 51 <menu_item_call label="Au sujet du repère" name="Teleport To Landmark"/>
52 <menu_item_call label="Démarrer le chat conférence" name="Conference Chat Folder" /> 52 <menu_item_call label="Jouer dans le Monde" name="Animation Play"/>
53 <menu_item_call label="Jouer" name="Sound Play" /> 53 <menu_item_call label="Jouer localement" name="Animation Audition"/>
54 <menu_item_call label="Au sujet du repère" name="Teleport To Landmark" /> 54 <menu_item_call label="Envoyer un message instantané" name="Send Instant Message"/>
55 <menu_item_call label="Jouer dans le Monde" name="Animation Play" /> 55 <menu_item_call label="Offrir de téléporter..." name="Offer Teleport..."/>
56 <menu_item_call label="Jouer localement" name="Animation Audition" /> 56 <menu_item_call label="Démarrer le chat conférence" name="Conference Chat"/>
57 <menu_item_call label="Envoyer un message instantané" name="Send Instant Message" /> 57 <menu_item_call label="Activer" name="Activate"/>
58 <menu_item_call label="Offrir de téléporter..." name="Offer Teleport..." /> 58 <menu_item_call label="Désactiver" name="Deactivate"/>
59 <menu_item_call label="Démarrer le chat conférence" name="Conference Chat" /> 59 <menu_item_call label="Détacher de vous" name="Detach From Yourself"/>
60 <menu_item_call label="Activer" name="Activate" /> 60 <menu_item_call label="Porter" name="Object Wear"/>
61 <menu_item_call label="Désactiver" name="Deactivate" /> 61 <menu label="Attacher à" name="Attach To"/>
62 <menu_item_call label="Détacher de vous" name="Detach From Yourself" /> 62 <menu label="Attacher au HUD " name="Attach To HUD"/>
63 <menu_item_call label="Porter" name="Object Wear" /> 63 <menu_item_call label="Porter" name="Wearable Wear"/>
64 <menu label="Attacher à" name="Attach To" /> 64 <menu_item_call label="Éditer" name="Wearable Edit"/>
65 <menu label="Attacher au HUD " name="Attach To HUD" /> 65 <menu_item_call label="Enlever" name="Take Off"/>
66 <menu_item_call label="Porter" name="Wearable Wear" /> 66 <menu_item_call label="--aucune option--" name="--no options--"/>
67 <menu_item_call label="Éditer" name="Wearable Edit" />
68 <menu_item_call label="Enlever" name="Take Off" />
69 <menu_item_call label="--aucune option--" name="--no options--" />
70</menu> 67</menu>
diff --git a/linden/indra/newview/skins/default/xui/fr/menu_pie_avatar.xml b/linden/indra/newview/skins/default/xui/fr/menu_pie_avatar.xml
index 9e0a93f..1dcc2fc 100644
--- a/linden/indra/newview/skins/default/xui/fr/menu_pie_avatar.xml
+++ b/linden/indra/newview/skins/default/xui/fr/menu_pie_avatar.xml
@@ -1,17 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<pie_menu name="Avatar Pie"> 2<pie_menu name="Avatar Pie">
3 <menu_item_call label="Profil..." name="Profile..." /> 3 <menu_item_call label="Profil..." name="Profile..."/>
4 <menu_item_call label="Ignorer" name="Avatar Mute" /> 4 <menu_item_call label="Ignorer" name="Avatar Mute"/>
5 <menu_item_call label="Aller" name="Go To" /> 5 <menu_item_call label="Aller" name="Go To"/>
6 <menu_item_call label="Ajouter comme ami..." name="Add Friend" /> 6 <menu_item_call label="Devenir amis..." name="Add Friend"/>
7 <menu_item_call label="Payer..." name="Pay..." /> 7 <menu_item_call label="Payer..." name="Pay..."/>
8 <pie_menu label="Plus &gt;" name="More &gt;"> 8 <pie_menu label="Plus &gt;" name="More &gt;">
9 <menu_item_call label="Geler..." name="Freeze..." /> 9 <menu_item_call label="Geler..." name="Freeze..."/>
10 <menu_item_call label="Donner une carte" name="Give Card" /> 10 <menu_item_call label="Donner une carte" name="Give Card"/>
11 <menu_item_call label="Invitation de groupe..." name="Invite..." /> 11 <menu_item_call label="Inviter dans le groupe..." name="Invite..."/>
12 <menu_item_call label="Expulser..." name="Eject..." /> 12 <menu_item_call label="Expulser..." name="Eject..."/>
13 <menu_item_call label="Débugger..." name="Debug..." /> 13 <menu_item_call label="Débugger..." name="Debug..."/>
14 <menu_item_call label="Inspecter" name="Object Inspect" /> 14 <menu_item_call label="Inspecter" name="Object Inspect"/>
15 </pie_menu> 15 </pie_menu>
16 <menu_item_call label="Envoyer IM..." name="Send IM..." /> 16 <menu_item_call label="Envoyer IM..." name="Send IM..."/>
17</pie_menu> 17</pie_menu>
diff --git a/linden/indra/newview/skins/default/xui/fr/menu_pie_land.xml b/linden/indra/newview/skins/default/xui/fr/menu_pie_land.xml
index e594172..798cea0 100644
--- a/linden/indra/newview/skins/default/xui/fr/menu_pie_land.xml
+++ b/linden/indra/newview/skins/default/xui/fr/menu_pie_land.xml
@@ -1,10 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<pie_menu name="Land Pie"> 2<pie_menu name="Land Pie">
3 <menu_item_call label="À propos du terrain..." name="About Land..." /> 3 <menu_item_call label="À propos du terrain..." name="About Land..."/>
4 <menu_item_call label="Créer" name="Create" /> 4 <menu_item_call label="Créer" name="Create"/>
5 <menu_item_call label="Aller ici" name="Go Here" /> 5 <menu_item_call label="Aller ici" name="Go Here"/>
6 <menu_item_call label="M&apos;asseoir ici" name="Sit Here" /> 6 <menu_item_call label="M&apos;asseoir ici" name="Sit Here"/>
7 <menu_item_call label="Acheter laissez-passer..." name="Land Buy Pass" /> 7 <menu_item_call label="Acheter pass..." name="Land Buy Pass"/>
8 <menu_item_call label="Modifier le terrain" name="Edit Terrain" /> 8 <menu_item_call label="Modifier le terrain" name="Edit Terrain"/>
9 <menu_item_call label="Acheter le terrain..." name="Land Buy" /> 9 <menu_item_call label="Acheter le terrain..." name="Land Buy"/>
10</pie_menu> 10</pie_menu>
diff --git a/linden/indra/newview/skins/default/xui/fr/menu_pie_self.xml b/linden/indra/newview/skins/default/xui/fr/menu_pie_self.xml
index 2be82ce..c26581f 100644
--- a/linden/indra/newview/skins/default/xui/fr/menu_pie_self.xml
+++ b/linden/indra/newview/skins/default/xui/fr/menu_pie_self.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<pie_menu name="Self Pie"> 2<pie_menu name="Self Pie">
3 <menu_item_call label="Profil..." name="Profile..." /> 3 <menu_item_call label="Profil..." name="Profile..." />
4 <menu_item_call label="Groupes..." name="Groups..." /> 4 <menu_item_call label="Groupes..." name="Groups..." />
@@ -15,7 +15,7 @@
15 <menu_item_call label="Veste" name="Jacket" /> 15 <menu_item_call label="Veste" name="Jacket" />
16 <menu_item_call label="Gants" name="Gloves" /> 16 <menu_item_call label="Gants" name="Gloves" />
17 <pie_menu label="Plus &gt;" name="More &gt;"> 17 <pie_menu label="Plus &gt;" name="More &gt;">
18 <menu_item_call label="Tricot de peau" name="Self Undershirt" /> 18 <menu_item_call label="Tricot" name="Self Undershirt" />
19 <menu_item_call label="Tous les habits" name="All Clothes" /> 19 <menu_item_call label="Tous les habits" name="All Clothes" />
20 <menu_item_call label="Sous-vêtements" name="Self Underpants" /> 20 <menu_item_call label="Sous-vêtements" name="Self Underpants" />
21 </pie_menu> 21 </pie_menu>
diff --git a/linden/indra/newview/skins/default/xui/fr/menu_viewer.xml b/linden/indra/newview/skins/default/xui/fr/menu_viewer.xml
index 776f8fd..165d1fb 100644
--- a/linden/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -1,279 +1,207 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<menu_bar name="Main Menu"> 2<menu_bar name="Main Menu">
3 <menu label="Fichier" name="File"> 3 <menu label="Fichier" name="File">
4 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 4 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
5 <menu_item_call label="Charger une image ([COST] $L)..." name="Upload Image" /> 5 <menu_item_call label="Charger une image ([COST] L$)..." name="Upload Image"/>
6 <menu_item_call label="Charger un son ([COST] $L)..." name="Upload Sound" /> 6 <menu_item_call label="Charger un son ([COST] L$)..." name="Upload Sound"/>
7 <menu_item_call label="Charger une animation ([COST] $L)..." name="Upload Animation" /> 7 <menu_item_call label="Charger une animation ([COST] L$)..." name="Upload Animation"/>
8 <menu_item_call label="Charger un lot de fichiers ([COST] $L par fichier)..." 8 <menu_item_call label="Charger un lot de fichiers ([COST] L$ par fichier)..." name="Bulk Upload"/>
9 name="Bulk Upload" /> 9 <menu_item_separator label="-----------" name="separator"/>
10 <menu_item_separator label="-----------" name="separator" /> 10 <menu_item_call label="Fermer la fenêtre" name="Close Window"/>
11 <menu_item_call label="Fermer la fenêtre" name="Close Window" /> 11 <menu_item_call label="Fermer toutes les fenêtres" name="Close All Windows"/>
12 <menu_item_call label="Fermer toutes les fenêtres" name="Close All Windows" /> 12 <menu_item_separator label="-----------" name="separator2"/>
13 <menu_item_separator label="-----------" name="separator2" /> 13 <menu_item_call label="Enregistrer la texture sous..." name="Save Texture As..."/>
14 <menu_item_call label="Enregistrer la texture sous..." name="Save Texture As..." /> 14 <menu_item_separator label="-----------" name="separator3"/>
15 <menu_item_separator label="-----------" name="separator3" /> 15 <menu_item_call label="Prendre une photo" name="Take Snapshot"/>
16 <menu_item_call label="Prendre une photo" name="Take Snapshot" /> 16 <menu_item_call label="Enregistrer la photo sur le disque" name="Snapshot to Disk" shortcut="control|shift|X"/>
17 <menu_item_call label="Enregistrer la photo sur le disque" name="Snapshot to Disk" 17 <menu_item_separator label="-----------" name="separator4"/>
18 shortcut="control|shift|X" /> 18 <menu_item_call label="Quitter" name="Quit"/>
19 <menu_item_separator label="-----------" name="separator4" />
20 <menu label="Définir taille de la fenêtre" name="Set Window Size">
21 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
22 <menu_item_call label="320x240" name="320x240" />
23 <menu_item_call label="640x480" name="640x480" />
24 <menu_item_call label="800x600" name="800x600" />
25 <menu_item_separator label="-----------" name="separator" />
26 <menu_item_call label="720x480 (NTSC)" name="720x480 (NTSC)" />
27 <menu_item_call label="768x576 (PAL)" name="768x576 (PAL)" />
28 </menu>
29 <menu_item_separator label="-----------" name="separator5" />
30 <menu_item_call label="Quitter" name="Quit" />
31 </menu> 19 </menu>
32 <menu label="Édition" name="Edit"> 20 <menu label="Édition" name="Edit">
33 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 21 <menu_item_call label="Annuler" name="Undo"/>
34 <menu_item_call label="Annuler" name="Undo" /> 22 <menu_item_call label="Recommencer" name="Redo"/>
35 <menu_item_call label="Recommencer" name="Redo" /> 23 <menu_item_separator label="-----------" name="separator"/>
36 <menu_item_separator label="-----------" name="separator" /> 24 <menu_item_call label="Couper" name="Cut"/>
37 <menu_item_call label="Couper" name="Cut" /> 25 <menu_item_call label="Copier" name="Copy"/>
38 <menu_item_call label="Copier" name="Copy" /> 26 <menu_item_call label="Coller" name="Paste"/>
39 <menu_item_call label="Coller" name="Paste" /> 27 <menu_item_call label="Supprimer" name="Delete"/>
40 <menu_item_call label="Supprimer" name="Delete" /> 28 <menu_item_separator label="-----------" name="separator2"/>
41 <menu_item_separator label="-----------" name="separator2" /> 29 <menu_item_call label="Rechercher..." name="Search..."/>
42 <menu_item_call label="Rechercher..." name="Search..." /> 30 <menu_item_separator label="-----------" name="separator3"/>
43 <menu_item_separator label="-----------" name="separator3" /> 31 <menu_item_call label="Tout sélectionner" name="Select All"/>
44 <menu_item_call label="Tout sélectionner" name="Select All" /> 32 <menu_item_call label="Désélectionner" name="Deselect"/>
45 <menu_item_call label="Désélectionner" name="Deselect" /> 33 <menu_item_separator label="-----------" name="separator4"/>
46 <menu_item_separator label="-----------" name="separator4" /> 34 <menu_item_call label="Dupliquer" name="Duplicate"/>
47 <menu_item_call label="Dupliquer" name="Duplicate" /> 35 <menu_item_separator label="-----------" name="separator5"/>
48 <menu_item_separator label="-----------" name="separator5" /> 36 <menu label="Attacher l&apos;objet" name="Attach Object"/>
49 <menu label="Attacher objet" name="Attach Object" /> 37 <menu label="Détacher l&apos;objet" name="Detach Object"/>
50 <menu label="Détacher objet" name="Detach Object" />
51 <menu label="Enlever mes habits" name="Take Off Clothing"> 38 <menu label="Enlever mes habits" name="Take Off Clothing">
52 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 39 <menu_item_call label="Chemise" name="Shirt"/>
53 <menu_item_call label="Chemise" name="Shirt" /> 40 <menu_item_call label="Pantalon" name="Pants"/>
54 <menu_item_call label="Pantalon" name="Pants" /> 41 <menu_item_call label="Chaussures" name="Shoes"/>
55 <menu_item_call label="Chaussures" name="Shoes" /> 42 <menu_item_call label="Chaussettes" name="Socks"/>
56 <menu_item_call label="Chaussettes" name="Socks" /> 43 <menu_item_call label="Veste" name="Jacket"/>
57 <menu_item_call label="Veste" name="Jacket" /> 44 <menu_item_call label="Gants" name="Gloves"/>
58 <menu_item_call label="Gants" name="Gloves" /> 45 <menu_item_call label="Tricot" name="Menu Undershirt"/>
59 <menu_item_call label="Tricot de peau" name="Menu Undershirt" /> 46 <menu_item_call label="Sous-vêtements" name="Menu Underpants"/>
60 <menu_item_call label="Sous-vêtements" name="Menu Underpants" /> 47 <menu_item_call label="Jupe" name="Skirt"/>
61 <menu_item_call label="Jupe" name="Skirt" /> 48 <menu_item_call label="Tous les habits" name="All Clothes"/>
62 <menu_item_call label="Tous les habits" name="All Clothes" />
63 </menu> 49 </menu>
64 <menu_item_separator label="-----------" name="separator6" /> 50 <menu_item_separator label="-----------" name="separator6"/>
65 <menu_item_call label="Gestes..." name="Gestures..." /> 51 <menu_item_call label="Gestes..." name="Gestures..."/>
66 <menu_item_call label="Profil..." name="Profile..." /> 52 <menu_item_call label="Profil..." name="Profile..."/>
67 <menu_item_call label="Apparence..." name="Appearance..." /> 53 <menu_item_call label="Apparence..." name="Appearance..."/>
68 <menu_item_separator label="-----------" name="separator7" /> 54 <menu_item_separator label="-----------" name="separator7"/>
69 <menu_item_check label="Amis..." name="Friends..." /> 55 <menu_item_check label="Amis..." name="Friends..."/>
70 <menu_item_call label="Groupes..." name="Groups..." /> 56 <menu_item_call label="Groupes..." name="Groups..."/>
71 <menu_item_separator label="-----------" name="separator8" /> 57 <menu_item_separator label="-----------" name="separator8"/>
72 <menu_item_call label="Préférences..." name="Preferences..." /> 58 <menu_item_call label="Préférences..." name="Preferences..."/>
73 </menu> 59 </menu>
74 <menu label="Affichage" name="View"> 60 <menu label="Affichage" name="View">
75 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 61 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
76 <menu_item_call label="Vue subjective" name="Mouselook" /> 62 <menu_item_call label="Vue subjective" name="Mouselook"/>
77 <menu_item_check label="Construire" name="Build" /> 63 <menu_item_check label="Construire" name="Build"/>
78 <menu_item_check label="Joystick Flycam" name="Joystick Flycam" /> 64 <menu_item_check label="Vue au joystick" name="Joystick Flycam"/>
79 <menu_item_call label="Réinitialiser l&apos;affichage" name="Reset View" /> 65 <menu_item_call label="Réinitialiser l&apos;affichage" name="Reset View"/>
80 <menu_item_call label="Regarder la dernière personne qui a parlé" name="Look at Last Chatter" 66 <menu_item_call label="Regarder le dernier intervenant" name="Look at Last Chatter" shortcut="alt|V"/>
81 shortcut="alt|V" /> 67 <menu_item_separator label="-----------" name="separator"/>
82 <menu_item_separator label="-----------" name="separator" /> 68 <menu_item_check label="Barre d&apos;outils" name="Toolbar"/>
83 <menu_item_check label="Barre d&apos;outils" name="Toolbar" /> 69 <menu_item_check label="Chat local" name="Chat History"/>
84 <menu_item_check label="Chat local" name="Chat History" /> 70 <menu_item_check label="Communiquer" name="Instant Message"/>
85 <menu_item_check label="Communiquer" name="Instant Message" /> 71 <menu_item_call label="Inventaire" name="Inventory"/>
86 <menu_item_call label="Inventaire" name="Inventory" /> 72 <menu_item_check label="Intervenants actifs" name="Active Speakers"/>
87 <menu_item_check label="Intervenants actifs" name="Active Speakers" /> 73 <menu_item_check label="Liste des ignorés" name="Mute List"/>
88 <menu_item_check label="Liste des ignorés" name="Mute List" /> 74 <menu_item_separator label="-----------" name="separator2"/>
89 <menu_item_separator label="-----------" name="separator2" /> 75 <menu_item_check label="Contrôles de la caméra" name="Camera Controls"/>
90 <menu_item_check label="Contrôles de la caméra" name="Camera Controls" /> 76 <menu_item_check label="Contrôle des déplacements" name="Movement Controls"/>
91 <menu_item_check label="Contrôle des déplacements" name="Movement Controls" /> 77 <menu_item_check label="Carte du monde" name="World Map"/>
92 <menu_item_check label="Carte du monde" name="World Map" /> 78 <menu_item_check label="Mini-carte" name="Mini-Map"/>
93 <menu_item_check label="Mini-carte" name="Mini-Map" /> 79 <menu_item_separator label="-----------" name="separator3"/>
94 <menu_item_separator label="-----------" name="separator3" /> 80 <menu_item_check label="Statistiques" name="Statistics Bar"/>
95 <menu_item_check label="Barre de statistiques" name="Statistics Bar" /> 81 <menu_item_check label="Limites des parcelles" name="Property Lines"/>
96 <menu_item_check label="Limites de la propriété" name="Property Lines" /> 82 <menu_item_check label="Propriétaires fonciers" name="Land Owners"/>
97 <menu_item_check label="Propriétaires fonciers" name="Land Owners" /> 83 <menu_item_separator label="-----------" name="separator4"/>
98 <menu_item_separator label="-----------" name="separator4" /> 84 <menu label="Infobulles" name="Hover Tips">
99 <menu label="Astuces en survol" name="Hover Tips"> 85 <menu_item_check label="Affichez les infobulles" name="Show Tips"/>
100 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 86 <menu_item_separator label="-----------" name="separator"/>
101 <menu_item_check label="Afficher les astuces" name="Show Tips" /> 87 <menu_item_check label="Infobulles des terrains" name="Land Tips"/>
102 <menu_item_separator label="-----------" name="separator" /> 88 <menu_item_check label="Infobulles de tous les objets" name="Tips On All Objects"/>
103 <menu_item_check label="Astuces sur les terrains" name="Land Tips" />
104 <menu_item_check label="Astuces sur tous les objets" name="Tips On All Objects" />
105 </menu>
106 <menu_item_check label="Alt affiche les propriétés physiques" name="Alt Shows Physical" />
107 <menu_item_check label="Voir les objets invisibles" name="Highlight Transparent" />
108 <menu_item_check label="Balises toujours activées" name="Beacons Always On" />
109 <menu label="Balises" name="Beacons">
110 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
111 <menu_item_check label="Objets scriptés avec Toucher uniquement"
112 name="Scripted Objects With Touch Only" />
113 <menu_item_check label="Objets scriptés" name="Scripted Objects" />
114 <menu_item_check label="Objets physiques" name="Physical Objects" />
115 <menu_item_check label="Sources sonores" name="Sound Sources" />
116 <menu_item_check label="Sources des particules" name="Particle Sources" />
117 <menu_item_separator label="-----------" name="separator" />
118 <menu_item_check label="Montrer les surbrillances" name="Render Highlights" />
119 <menu_item_check label="Montrer les balises" name="Render Beacons" />
120 <menu_item_separator label="-----------" name="separator2" />
121 <menu_item_check label="Masquer les particules" name="Hide Particles" />
122 <menu_item_separator label="-----------" name="separator3" />
123 <menu label="Largeur de la balise" name="Beacon Width">
124 <menu_item_call label="1" name="Beacon Width 1" />
125 <menu_item_call label="4" name="Beacon Width 4" />
126 <menu_item_call label="16" name="Beacon Width 16" />
127 <menu_item_call label="32" name="Beacon Width 32" />
128 </menu>
129 </menu> 89 </menu>
130 <menu_item_check label="Afficher les éléments HUD" name="Show HUD Attachments" /> 90 <menu_item_check label="Voir les objets invisibles" name="Highlight Transparent"/>
131 <menu_item_separator label="-----------" name="separator5" /> 91 <menu_item_check label="Balises" name="beacons"/>
132 <menu_item_call label="Zoomer" name="Zoom In" /> 92 <menu_item_check label="Masquer les particules" name="Hide Particles"/>
133 <menu_item_call label="Zoom par défaut" name="Zoom Default" /> 93 <menu_item_check label="Afficher les éléments HUD" name="Show HUD Attachments"/>
134 <menu_item_call label="Zoomer en arrière" name="Zoom Out" /> 94 <menu_item_separator label="-----------" name="separator5"/>
135 <menu_item_separator label="-----------" name="separator6" /> 95 <menu_item_call label="Zoomer" name="Zoom In"/>
136 <menu label="Plus" name="More"> 96 <menu_item_call label="Zoom par défaut" name="Zoom Default"/>
137 <menu_item_call label="Passer en plein écran" name="Toggle Fullscreen" /> 97 <menu_item_call label="Zoomer en arrière" name="Zoom Out"/>
138 <menu_item_call label="Définir la taille de l&apos;IU à sa valeur par défaut" 98 <menu_item_separator label="-----------" name="separator6"/>
139 name="Set UI Size to Default" /> 99 <menu_item_call label="Activer/Quitter le plein écran" name="Toggle Fullscreen"/>
140 </menu> 100 <menu_item_call label="Taille de l&apos;interface par défaut" name="Set UI Size to Default"/>
141 <menu_item_call label="Plein écran en mode bascule" name="Toggle Fullscreen" />
142 <menu_item_call label="Taille de l&apos;interface par défaut" name="Set UI Size to Default" />
143 </menu> 101 </menu>
144 <menu label="Monde" name="World"> 102 <menu label="Monde" name="World">
145 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 103 <menu_item_call label="Chat" name="Chat"/>
146 <menu_item_call label="Chat" name="Chat" /> 104 <menu_item_check label="Toujours courir" name="Always Run"/>
147 <menu_item_call label="Démarrer geste" name="Start Gesture" /> 105 <menu_item_check label="Voler" name="Fly" shortcut="F"/>
148 <menu_item_check label="Toujours courir" name="Always Run" /> 106 <menu_item_separator label="-----------" name="separator"/>
149 <menu_item_check label="Voler" name="Fly" shortcut="F" /> 107 <menu_item_call label="Créer un repère ici" name="Create Landmark Here"/>
150 <menu_item_separator label="-----------" name="separator" /> 108 <menu_item_call label="Définir comme domicile" name="Set Home to Here"/>
151 <menu_item_call label="Créer un repère ici" name="Create Landmark Here" /> 109 <menu_item_separator label="-----------" name="separator2"/>
152 <menu_item_call label="Définir comme domicile" name="Set Home to Here" /> 110 <menu_item_call label="Me téléporter chez moi" name="Teleport Home"/>
153 <menu_item_separator label="-----------" name="separator2" /> 111 <menu_item_separator label="-----------" name="separator3"/>
154 <menu_item_call label="Téléporter chez moi" name="Teleport Home" /> 112 <menu_item_call label="Me mettre absent(e)" name="Set Away"/>
155 <menu_item_separator label="-----------" name="separator3" /> 113 <menu_item_call label="Me mettre occupé(e)" name="Set Busy"/>
156 <menu_item_call label="Définir comme absent(e)" name="Set Away" /> 114 <menu_item_call label="Arrêter mes animations" name="Stop All Animations"/>
157 <menu_item_call label="Définir comme occupé(e)" name="Set Busy" /> 115 <menu_item_call label="Reprendre le contrôle" name="Release Keys"/>
158 <menu_item_call label="Arrêter toutes les animations" name="Stop All Animations" /> 116 <menu_item_separator label="-----------" name="separator4"/>
159 <menu_item_call label="Libérer les touches" name="Release Keys" /> 117 <menu_item_call label="Historique de mon compte..." name="Account History...">
160 <menu_item_separator label="-----------" name="separator4" /> 118 <on_click name="AccountHistory_url" userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php?lang=fr" />
161 <menu_item_call label="Historique du compte..." name="Account History..." /> 119 </menu_item_call>
162 <menu_item_call label="Gérer mon compte..." name="Manage My Account..." /> 120 <menu_item_call label="Gérer mon compte..." name="Manage My Account...">
163 <menu_item_call label="Acheter des $L..." name="Buy and Sell L$..." /> 121 <on_click name="ManageMyAccount_url" userdata="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=fr" />
164 <menu_item_separator label="-----------" name="separator5" /> 122 </menu_item_call>
165 <menu_item_call label="Mon terrain..." name="My Land..." /> 123 <menu_item_call label="Acheter des L$..." name="Buy and Sell L$..."/>
166 <menu_item_call label="À propos du terrain..." name="About Land..." /> 124 <menu_item_separator label="-----------" name="separator5"/>
167 <menu_item_call label="Acheter le terrain..." name="Buy Land..." /> 125 <menu_item_call label="Mes terrains..." name="My Land..."/>
168 <menu_item_call label="Région/Domaine..." name="Region/Estate..." /> 126 <menu_item_call label="À propos du terrain..." name="About Land..."/>
169 <menu_item_separator label="-----------" name="separator6" /> 127 <menu_item_call label="Acheter le terrain..." name="Buy Land..."/>
170 <menu label="Forcer le soleil" name="Force Sun"> 128 <menu_item_call label="Région et domaine..." name="Region/Estate..."/>
171 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 129 <menu_item_separator label="-----------" name="separator6"/>
172 <menu_item_call label="Soleil Levant" name="Sunrise" /> 130 <menu label="Environnement" name="Environment Settings">
173 <menu_item_call label="Midi" name="Noon" /> 131 <menu_item_call label="Aube" name="Sunrise"/>
174 <menu_item_call label="Soleil Couchant" name="Sunset" /> 132 <menu_item_call label="Milieu de journée" name="Noon"/>
175 <menu_item_call label="Minuit" name="Midnight" /> 133 <menu_item_call label="Coucher de soleil" name="Sunset"/>
176 <menu_item_separator label="-----------" name="separator" /> 134 <menu_item_call label="Minuit" name="Midnight"/>
177 <menu_item_call label="Revenir aux valeurs par défaut de la région" 135 <menu_item_call label="Revenir aux options par défaut" name="Revert to Region Default"/>
178 name="Revert to Region Default" /> 136 <menu_item_separator label="-----------" name="separator"/>
179 </menu> 137 <menu_item_call label="Éditeur d&apos;environnement" name="Environment Editor"/>
180 <menu label="Paramètres de l&apos;environnement" name="Environment Settings">
181 <menu_item_call label="Lever de soleil" name="Sunrise" />
182 <menu_item_call label="Milieu de journée" name="Noon" />
183 <menu_item_call label="Coucher de soleil" name="Sunset" />
184 <menu_item_call label="Minuit" name="Midnight" />
185 <menu_item_call label="Revenir aux options par défaut" name="Revert to Region Default" />
186 <menu_item_separator label="-----------" name="separator" />
187 <menu_item_call label="Éditeur d&apos;environnement" name="Environment Editor" />
188 </menu> 138 </menu>
189 </menu> 139 </menu>
190 <menu label="Outils" name="Tools"> 140 <menu label="Outils" name="Tools">
191 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
192 <menu label="Sélectionner un outil" name="Select Tool"> 141 <menu label="Sélectionner un outil" name="Select Tool">
193 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 142 <menu_item_call label="Mise au point" name="Focus"/>
194 <menu_item_call label="Mise au point" name="Focus" /> 143 <menu_item_call label="Déplacer" name="Move"/>
195 <menu_item_call label="Déplacer" name="Move" /> 144 <menu_item_call label="Éditer" name="Edit"/>
196 <menu_item_call label="Éditer" name="Edit" /> 145 <menu_item_call label="Créer" name="Create"/>
197 <menu_item_call label="Créer" name="Create" /> 146 <menu_item_call label="Terrain" name="Land"/>
198 <menu_item_call label="Terrain" name="Land" />
199 </menu> 147 </menu>
200 <menu_item_separator label="-----------" name="separator" /> 148 <menu_item_separator label="-----------" name="separator"/>
201 <menu_item_check label="Sélectionner mes objets uniquement" name="Select Only My Objects" /> 149 <menu_item_check label="Sélectionner mes objets uniquement" name="Select Only My Objects"/>
202 <menu_item_check label="Sélectionner les objets déplaçables uniquement" 150 <menu_item_check label="Sélectionner les objets déplaçables uniquement" name="Select Only Movable Objects"/>
203 name="Select Only Movable Objects" /> 151 <menu_item_check label="Sélectionner en entourant" name="Select By Surrounding"/>
204 <menu_item_check label="Sélectionner mes alentours" name="Select By Surrounding" /> 152 <menu_item_check label="Afficher les parties cachées de la sélection" name="Show Hidden Selection"/>
205 <menu_item_check label="Afficher la sélection cachée" name="Show Hidden Selection" /> 153 <menu_item_check label="Afficher la sphère de lumière de la sélection" name="Show Light Radius for Selection"/>
206 <menu_item_check label="Afficher le marquage lumineux de la sélection" 154 <menu_item_check label="Afficher le faisceau de sélection" name="Show Selection Beam"/>
207 name="Show Light Radius for Selection" /> 155 <menu_item_separator label="-----------" name="separator2"/>
208 <menu_item_check label="Afficher le faisceau de sélection" name="Show Selection Beam" /> 156 <menu_item_check label="Aligner sur la grille" name="Snap to Grid"/>
209 <menu_item_separator label="-----------" name="separator2" /> 157 <menu_item_call label="Aligner sur les axes XY de la grille" name="Snap Object XY to Grid"/>
210 <menu_item_check label="Fixer sur la grille" name="Snap to Grid" /> 158 <menu_item_call label="Utiliser la sélection pour la grille" name="Use Selection for Grid"/>
211 <menu_item_call label="Fixer sur les axes XY de la grille" name="Snap Object XY to Grid" /> 159 <menu_item_call label="Options de la grille..." name="Grid Options..."/>
212 <menu_item_call label="Utiliser la sélection pour la grille" name="Use Selection for Grid" /> 160 <menu_item_separator label="-----------" name="separator3"/>
213 <menu_item_call label="Options de la grille..." name="Grid Options..." /> 161 <menu_item_check label="Modifier les parties liées" name="Edit Linked Parts"/>
214 <menu_item_separator label="-----------" name="separator3" /> 162 <menu_item_call label="Lier" name="Link"/>
215 <menu_item_check label="Modifier les parties liées" name="Edit Linked Parts" /> 163 <menu_item_call label="Délier" name="Unlink"/>
216 <menu_item_call label="Lier" name="Link" /> 164 <menu_item_separator label="-----------" name="separator4"/>
217 <menu_item_call label="Délier" name="Unlink" /> 165 <menu_item_call label="Mise au point sur la sélection" name="Focus on Selection"/>
218 <menu_item_separator label="-----------" name="separator4" /> 166 <menu_item_call label="Zoom sur la sélection" name="Zoom to Selection"/>
219 <menu_item_separator label="-----------" name="separator5" /> 167 <menu_item_call label="Acheter l&apos;objet" name="Menu Object Take"/>
220 <menu_item_call label="Mise au point sur la sélection" name="Focus on Selection" /> 168 <menu_item_call label="Prendre une copie" name="Take Copy"/>
221 <menu_item_call label="Zoom sur la sélection" name="Zoom to Selection" /> 169 <menu_item_call label="Remplacer l&apos;objet dans mon inventaire" name="Save Object Back to My Inventory"/>
222 <menu_item_call label="Acheter l&apos;objet" name="Menu Object Take" /> 170 <menu_item_call label="Remplacer l&apos;objet dans le contenu de l&apos;objet" name="Save Object Back to Object Contents"/>
223 <menu_item_call label="Prendre une copie" name="Take Copy" /> 171 <menu_item_separator label="-----------" name="separator6"/>
224 <menu_item_call label="Remettre et enregistrer l&apos;objet dans mon inventaire" 172 <menu_item_call label="Afficher la fenêtre d&apos;alertes/erreurs de script" name="Show Script Warning/Error Window"/>
225 name="Save Object Back to My Inventory" /> 173 <menu label="Recompiler les scripts dans la sélection" name="Recompile Scripts in Selection">
226 <menu_item_call label="Remettre et enregistrer l&apos;objet dans les Contenus de l&apos;objet" 174 <menu_item_call label="Mono" name="Mono"/>
227 name="Save Object Back to Object Contents" /> 175 <menu_item_call label="LSL" name="LSL"/>
228 <menu_item_separator label="-----------" name="separator6" /> 176 </menu>
229 <menu_item_call label="Afficher fenêtre d&apos;alertes/erreurs de script" 177 <menu_item_call label="Réinitialiser les scripts dans la sélection" name="Reset Scripts in Selection"/>
230 name="Show Script Warning/Error Window" /> 178 <menu_item_call label="Activer les scripts dans la sélection" name="Set Scripts to Running in Selection"/>
231 <menu_item_call label="Recompiler les scripts dans la sélection" 179 <menu_item_call label="Désactiver les scripts dans la sélection" name="Set Scripts to Not Running in Selection"/>
232 name="Recompile Scripts in Selection">
233 <menu_item_call label="Mono" name="Mono" />
234 <menu_item_call label="LSL" name="LSL" />
235 </menu_item_call>
236 <menu_item_call label="Réinitialiser les scripts dans la sélection"
237 name="Reset Scripts in Selection" />
238 <menu_item_call label="Activer les scripts dans la sélection"
239 name="Set Scripts to Running in Selection" />
240 <menu_item_call label="Désactiver les scripts dans la sélection"
241 name="Set Scripts to Not Running in Selection" />
242 </menu> 180 </menu>
243 <menu label="Aide" name="Help"> 181 <menu label="Aide" name="Help">
244 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 182 <menu_item_call label="Aide Second Life" name="Second Life Help"/>
245 <menu_item_call label="Aide Second Life" name="Second Life Help" /> 183 <menu_item_call label="Didacticiel" name="Tutorial"/>
246 <menu_item_call label="Base de connaissances…" name="Knowledge Base..." /> 184 <menu_item_separator label="-----------" name="separator"/>
247 <menu_item_call label="Aide en ligne" name="Live Help..." /> 185 <menu_item_call label="Blog officiel..." name="Official Linden Blog..."/>
248 <menu_item_call label="Didacticiel" name="Tutorial" /> 186 <menu_item_separator label="-----------" name="separator2"/>
249 <menu_item_separator label="-----------" name="separator" /> 187 <menu_item_call label="Aide sur le LSL..." name="Scripting Portal..."/>
250 <menu_item_call label="Blog officiel des Linden..." name="Official Linden Blog..." /> 188 <menu_item_separator label="-----------" name="separator3"/>
251 <menu_item_separator label="-----------" name="separator2" /> 189 <menu_item_call label="Signaler une infraction..." name="Report Abuse..."/>
252 <menu_item_call label="Guide de scripting..." name="Scripting Guide..." /> 190 <menu_item_call label="Collisions, coups et bousculades…" name="Bumps, Pushes &amp;amp; Hits..."/>
253 <menu_item_call label="Scripting Wiki..." name="Scripting Wiki..." /> 191 <menu_item_call label="Mesure du lag" name="Lag Meter"/>
254 <menu_item_call label="Portail de scripting..." name="Scripting Portal..." /> 192 <menu_item_separator label="-----------" name="separator7"/>
255 <menu_item_separator label="-----------" name="separator3" />
256 <menu_item_call label="Message du jour..." name="Message of the Day..." />
257 <menu_item_separator label="-----------" name="separator4" />
258 <menu_item_call label="Signaler une infraction..." name="Report Abuse..." />
259 <menu_item_call label="Collisions, coups et bousculades…"
260 name="Bumps, Pushes &amp;amp; Hits..." />
261 <menu_item_separator label="-----------" name="separator5" />
262 <menu_item_call label="Signaler un bug..." name="Report Bug..." />
263 <menu_item_call label="Notes de version…" name="Release Notes..." />
264 <menu_item_separator label="-----------" name="separator6" />
265 <menu_item_call label="Calcul du lag" name="Lag Meter" />
266 <menu_item_separator label="-----------" name="separator7" />
267 <menu label="Signaler des bugs" name="Bug Reporting"> 193 <menu label="Signaler des bugs" name="Bug Reporting">
268 <menu_item_call label="Suivi des problèmes..." name="Public Issue Tracker..." /> 194 <menu_item_call label="Ouvrir un JIRA..." name="Public Issue Tracker..."/>
269 <menu_item_call label="Aide au suivi des problèmes..." name="Publc Issue Tracker Help..." /> 195 <menu_item_call label="Comment utiliser JIRA ?" name="Publc Issue Tracker Help..."/>
270 <menu_item_separator label="-----------" name="separator7" /> 196 <menu_item_separator label="-----------" name="separator7"/>
271 <menu_item_call label="Comment signaler des bugs ?" name="Bug Reporing 101..." /> 197 <menu_item_call label="Comment signaler des bugs ?" name="Bug Reporing 101..."/>
272 <menu_item_call label="Problèmes de sécurité..." name="Security Issues..." /> 198 <menu_item_call label="Comment signaler un problème de sécurité ?" name="Security Issues...">
273 <menu_item_call label="Wiki Assurance Qualité…" name="QA Wiki..." /> 199 <on_click name="SecurityIssues_url" userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues/fr" />
274 <menu_item_separator label="-----------" name="separator9" /> 200 </menu_item_call>
275 <menu_item_call label="Signaler un bug..." name="Report Bug..." /> 201 <menu_item_call label="Wiki Assurance Qualité…" name="QA Wiki..."/>
202 <menu_item_separator label="-----------" name="separator9"/>
203 <menu_item_call label="Signaler un bug..." name="Report Bug..."/>
276 </menu> 204 </menu>
277 <menu_item_call label="À propos de Second Life..." name="About Second Life..." /> 205 <menu_item_call label="À propos de Second Life..." name="About Second Life..."/>
278 </menu> 206 </menu>
279</menu_bar> 207</menu_bar>
diff --git a/linden/indra/newview/skins/default/xui/fr/mime_types.xml b/linden/indra/newview/skins/default/xui/fr/mime_types.xml
index 01fcf4d..322887f 100644
--- a/linden/indra/newview/skins/default/xui/fr/mime_types.xml
+++ b/linden/indra/newview/skins/default/xui/fr/mime_types.xml
@@ -1,11 +1,11 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<mimetypes name="default"> 2<mimetypes name="default">
3 <widgetset name="web"> 3 <widgetset name="web">
4 <label name="web_label"> 4 <label name="web_label">
5 Contenu web 5 Contenu web
6 </label> 6 </label>
7 <tooltip name="web_tooltip"> 7 <tooltip name="web_tooltip">
8 Il y a du contenu web à cet endroit 8 Cette parcelle propose du contenu multimédia
9 </tooltip> 9 </tooltip>
10 <playtip name="web_playtip"> 10 <playtip name="web_playtip">
11 Afficher le contenu web 11 Afficher le contenu web
@@ -35,7 +35,7 @@
35 Image 35 Image
36 </label> 36 </label>
37 <tooltip name="image_tooltip"> 37 <tooltip name="image_tooltip">
38 Il y a une image ici 38 Cette parcelle contient une image
39 </tooltip> 39 </tooltip>
40 <playtip name="image_playtip"> 40 <playtip name="image_playtip">
41 Afficher l&apos;image qui se trouve ici 41 Afficher l&apos;image qui se trouve ici
@@ -46,7 +46,7 @@
46 Audio 46 Audio
47 </label> 47 </label>
48 <tooltip name="audio_tooltip"> 48 <tooltip name="audio_tooltip">
49 Il y a du contenu audio ici 49 Cette parcelle propose du contenu audio
50 </tooltip> 50 </tooltip>
51 <playtip name="audio_playtip"> 51 <playtip name="audio_playtip">
52 Jouer le contenu audio qui se trouve ici 52 Jouer le contenu audio qui se trouve ici
diff --git a/linden/indra/newview/skins/default/xui/fr/notify.xml b/linden/indra/newview/skins/default/xui/fr/notify.xml
index feaf15a..cee896c 100644
--- a/linden/indra/newview/skins/default/xui/fr/notify.xml
+++ b/linden/indra/newview/skins/default/xui/fr/notify.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<notifications> 2<notifications>
3 <notify name="SystemMessageTip"> 3 <notify name="SystemMessageTip">
4 <message name="message"> 4 <message name="message">
@@ -37,7 +37,7 @@
37 </notify> 37 </notify>
38 <notify name="AddSelfFriend"> 38 <notify name="AddSelfFriend">
39 <message name="message"> 39 <message name="message">
40 Vous ne pouvez pas vous ajouter comme ami. 40 Vous ne pouvez pas devenir ami avec vous-même.
41 </message> 41 </message>
42 </notify> 42 </notify>
43 <notify name="UploadingAuctionSnapshot"> 43 <notify name="UploadingAuctionSnapshot">
@@ -48,7 +48,7 @@
48 </notify> 48 </notify>
49 <notify name="UploadPayment"> 49 <notify name="UploadPayment">
50 <message name="message"> 50 <message name="message">
51 Le chargement a coûté [AMOUNT] $L. 51 Le chargement a coûté [AMOUNT] L$.
52 </message> 52 </message>
53 </notify> 53 </notify>
54 <notify name="UploadingSnapshot"> 54 <notify name="UploadingSnapshot">
@@ -100,7 +100,7 @@ Merci de réessayer.
100 </notify> 100 </notify>
101 <notify name="UnableToLoadLandmark"> 101 <notify name="UnableToLoadLandmark">
102 <message name="message"> 102 <message name="message">
103 Impossible de charger le repère. Merci de réessayer. 103 Impossible de charger le repère. Merci de réessayer.
104 </message> 104 </message>
105 </notify> 105 </notify>
106 <notify name="CapsKeyOn"> 106 <notify name="CapsKeyOn">
@@ -143,7 +143,7 @@ Merci de réessayer.
143 </notify> 143 </notify>
144 <notify name="UnableToLoadScript"> 144 <notify name="UnableToLoadScript">
145 <message name="message"> 145 <message name="message">
146 Impossible de charger le script. Merci de réessayer. 146 Impossible de charger le script. Merci de réessayer.
147 </message> 147 </message>
148 </notify> 148 </notify>
149 <notify name="IncompleteInventory"> 149 <notify name="IncompleteInventory">
@@ -198,12 +198,12 @@ propriétaires différents. Veuillez sélectionner un seul objet.
198 </notify> 198 </notify>
199 <notify name="EnteringGodMode"> 199 <notify name="EnteringGodMode">
200 <message name="message"> 200 <message name="message">
201 Activation du mode admin : niveau [LEVEL] 201 Activation du mode divin : niveau [LEVEL]
202 </message> 202 </message>
203 </notify> 203 </notify>
204 <notify name="LeavingGodMode"> 204 <notify name="LeavingGodMode">
205 <message name="message"> 205 <message name="message">
206 Désactivation du mode admin : niveau [LEVEL] 206 Désactivation du mode divin : niveau [LEVEL]
207 </message> 207 </message>
208 </notify> 208 </notify>
209 <notify name="CopyFailed"> 209 <notify name="CopyFailed">
@@ -307,7 +307,7 @@ Veuillez sélectionner un terrain plus petit.
307 </notify> 307 </notify>
308 <notify name="TransferObjectsHighlighted"> 308 <notify name="TransferObjectsHighlighted">
309 <message name="message"> 309 <message name="message">
310 Tous les objets sur cette parcelle qui seront 310 Tous les objets de cette parcelle qui seront
311transférés à l&apos;acheteur sont maintenant mis en surbrillance. 311transférés à l&apos;acheteur sont maintenant mis en surbrillance.
312 312
313* Les arbres et la pelouse qui seront transférés ne sont pas mis en surbrillance. 313* Les arbres et la pelouse qui seront transférés ne sont pas mis en surbrillance.
@@ -348,7 +348,7 @@ ont été renvoyés dans votre inventaire.
348 </notify> 348 </notify>
349 <notify name="OtherObjectsReturned2"> 349 <notify name="OtherObjectsReturned2">
350 <message name="message"> 350 <message name="message">
351 Les objets sur la parcelle de terrain 351 Les objets sur la parcelle
352appartenant à « [NAME] » 352appartenant à « [NAME] »
353ont étés renvoyés à leur propriétaire. 353ont étés renvoyés à leur propriétaire.
354 </message> 354 </message>
@@ -368,7 +368,7 @@ Les objets non transférables donnés au groupe ont étés supprimés.
368 <notify name="NotSafe"> 368 <notify name="NotSafe">
369 <message name="message"> 369 <message name="message">
370 Les dégâts sont autorisés sur ce terrain (« non sécurisé »). 370 Les dégâts sont autorisés sur ce terrain (« non sécurisé »).
371Vous pouvez être blessé ici. Si vous décédez, vous serez téléporté à votre domicile. 371Vous pouvez être blessé ici. Si vous décédez, vous serez téléporté à votre domicile.
372 </message> 372 </message>
373 </notify> 373 </notify>
374 <notify name="NoFly"> 374 <notify name="NoFly">
@@ -379,7 +379,7 @@ Vous ne pouvez pas voler ici.
379 </notify> 379 </notify>
380 <notify name="PushRestricted"> 380 <notify name="PushRestricted">
381 <message name="message"> 381 <message name="message">
382 Ce terrain est « llPushObject Restricted ». 382 Les bousculades sont interdites sur ce terrain.
383Vous ne pouvez pas pousser les autres à moins que vous soyez propriétaire de ce terrain. 383Vous ne pouvez pas pousser les autres à moins que vous soyez propriétaire de ce terrain.
384 </message> 384 </message>
385 </notify> 385 </notify>
@@ -494,7 +494,7 @@ Aucun script n&apos;est exécuté à part ceux du propriétaire du terrain.
494 <message name="message"> 494 <message name="message">
495 [NAME] vous invite à 495 [NAME] vous invite à
496rejoindre un groupe comme officier. 496rejoindre un groupe comme officier.
497L&apos;adhésion est gratuite. 497L&apos;inscription est gratuite.
498 498
499[MESSAGE] 499[MESSAGE]
500 </message> 500 </message>
@@ -512,7 +512,7 @@ L&apos;adhésion est gratuite.
512 <message name="message"> 512 <message name="message">
513 [NAME] vous invite à 513 [NAME] vous invite à
514rejoindre un groupe. 514rejoindre un groupe.
515L&apos;adhésion coûte [COST] $L. 515L&apos;inscription coûte [COST] L$.
516 516
517[MESSAGE] 517[MESSAGE]
518 </message> 518 </message>
@@ -530,7 +530,7 @@ L&apos;adhésion coûte [COST] $L.
530 <message name="message"> 530 <message name="message">
531 [NAME] vous invite à 531 [NAME] vous invite à
532rejoindre un groupe. 532rejoindre un groupe.
533L&apos;adhésion est gratuite. 533L&apos;inscription est gratuite.
534 534
535[MESSAGE] 535[MESSAGE]
536 </message> 536 </message>
@@ -576,7 +576,7 @@ le/la rejoindre par téléportation :
576 576
577[MESSAGE] 577[MESSAGE]
578 578
579(Par défaut, vous pourrez voir chacun si l&apos;autre est connecté.) 579(Par défaut, vous pourrez voir lorsque vous êtes tous deux connectés.)
580 </message> 580 </message>
581 <option name="Accept"> 581 <option name="Accept">
582 Accepter 582 Accepter
@@ -625,13 +625,13 @@ vous permet d&apos;envoyer rapidement un IM à ce résident.
625 <notify name="RegionRestartMinutes"> 625 <notify name="RegionRestartMinutes">
626 <message name="message"> 626 <message name="message">
627 La région va redémarrer dans [MINUTES] minutes. 627 La région va redémarrer dans [MINUTES] minutes.
628Si vous restez dans cette région, vous serez déconnecté. 628Si vous restez dans cette région, vous serez déconnecté(e).
629 </message> 629 </message>
630 </notify> 630 </notify>
631 <notify name="RegionRestartSeconds"> 631 <notify name="RegionRestartSeconds">
632 <message name="message"> 632 <message name="message">
633 La région va redémarrer dans [SECONDS] secondes. 633 La région va redémarrer dans [SECONDS] secondes.
634Si vous restez dans cette région, vous serez déconnecté. 634Si vous restez dans cette région, vous serez déconnecté(e).
635 </message> 635 </message>
636 </notify> 636 </notify>
637 <notify name="LoadWebPage"> 637 <notify name="LoadWebPage">
@@ -640,7 +640,7 @@ Si vous restez dans cette région, vous serez déconnecté.
640 640
641[MESSAGE] 641[MESSAGE]
642 642
643Venant de l&apos;objet : [OBJECTNAME], appartenant à : [NAME]? 643Venant de l&apos;objet : [OBJECTNAME], appartenant à : [NAME]?
644 </message> 644 </message>
645 <option name="Gotopage"> 645 <option name="Gotopage">
646 Aller sur cette page 646 Aller sur cette page
@@ -679,7 +679,7 @@ Réessayez dans une minute le temps de résoudre le problème.
679 </notify> 679 </notify>
680 <notify name="ScriptTakeMoney"> 680 <notify name="ScriptTakeMoney">
681 <message name="message"> 681 <message name="message">
682 Débite vos dollars Linden ($L) 682 Débite vos dollars Linden (L$)
683 </message> 683 </message>
684 </notify> 684 </notify>
685 <notify name="ActOnControlInputs"> 685 <notify name="ActOnControlInputs">
@@ -751,22 +751,22 @@ Acceptez-vous ?
751 </notify> 751 </notify>
752 <notify name="ScriptQuestionCautionChatGranted"> 752 <notify name="ScriptQuestionCautionChatGranted">
753 <message name="message"> 753 <message name="message">
754 &apos;[OBJECTNAME]&apos;, un objet appartenant à &apos;[OWNERNAME]&apos;, situé dans [REGIONNAME] à [REGIONPOS], a reçu la permission de : [PERMISSIONS]. 754 &apos;[OBJECTNAME]&apos;, un objet appartenant à [OWNERNAME], situé dans [REGIONNAME] à [REGIONPOS], a reçu la permission de : [PERMISSIONS].
755 </message> 755 </message>
756 </notify> 756 </notify>
757 <notify name="ScriptQuestionCautionChatDenied"> 757 <notify name="ScriptQuestionCautionChatDenied">
758 <message name="message"> 758 <message name="message">
759 &apos;[OBJECTNAME]&apos;, un objet appartenant à &apos;[OWNERNAME]&apos;, situé dans [REGIONNAME] à [REGIONPOS], n&apos;a pas reçu la permission de : [PERMISSIONS]. 759 &apos;[OBJECTNAME]&apos;, un objet appartenant à [OWNERNAME], situé dans [REGIONNAME] à [REGIONPOS], n&apos;a pas reçu la permission de : [PERMISSIONS].
760 </message> 760 </message>
761 </notify> 761 </notify>
762 <notify name="ScriptQuestionCautionWarn"> 762 <notify name="ScriptQuestionCautionWarn">
763 <message name="message"> 763 <message name="message">
764 Un objet demande la permission de prélever des dollars Linden ($L) sur votre compte. 764 Un objet demande la permission de prélever des dollars Linden (L$) sur votre compte.
765 </message> 765 </message>
766 </notify> 766 </notify>
767 <notify name="ScriptQuestionCaution"> 767 <notify name="ScriptQuestionCaution">
768 <message name="message"> 768 <message name="message">
769 &apos;[OBJECTNAME]&apos;, un objet appartenant à &apos;[NAME]&apos;, aimerait : 769 [OBJECTNAME], un objet appartenant à [NAME], aimerait :
770 770
771[QUESTIONS] 771[QUESTIONS]
772Si vous n&apos;avez pas confiance en cet objet ni en son créateur, vous devriez refuser cette requête. Pour plus d&apos;informations, cliquez sur le bouton Détails. 772Si vous n&apos;avez pas confiance en cet objet ni en son créateur, vous devriez refuser cette requête. Pour plus d&apos;informations, cliquez sur le bouton Détails.
@@ -803,14 +803,14 @@ Accepter cette requête ?
803 </notify> 803 </notify>
804 <notify name="FirstBalanceIncrease"> 804 <notify name="FirstBalanceIncrease">
805 <message name="message"> 805 <message name="message">
806 Vous venez de recevoir [AMOUNT] $L. 806 Vous venez de recevoir [AMOUNT] L$.
807Des objets et des utilisateurs peuvent vous donner des $L. 807Des objets et des utilisateurs peuvent vous donner des L$.
808Votre solde est affiché dans le coin en haut à droite de l&apos;écran. 808Votre solde est affiché dans le coin en haut à droite de l&apos;écran.
809 </message> 809 </message>
810 </notify> 810 </notify>
811 <notify name="FirstBalanceDecrease"> 811 <notify name="FirstBalanceDecrease">
812 <message name="message"> 812 <message name="message">
813 Vous venez de payer [AMOUNT] $L. 813 Vous venez de payer [AMOUNT] L$.
814Votre solde est affiché dans le coin en haut à droite de l&apos;écran. 814Votre solde est affiché dans le coin en haut à droite de l&apos;écran.
815 </message> 815 </message>
816 </notify> 816 </notify>
@@ -823,7 +823,7 @@ Pour vous lever, cliquez sur le bouton Me lever.
823 </notify> 823 </notify>
824 <notify name="FirstMap"> 824 <notify name="FirstMap">
825 <message name="message"> 825 <message name="message">
826 Cliquez et faîtes glisser pour faire défiler la carte. 826 Cliquez et faites glisser pour faire défiler la carte.
827Double-cliquez pour vous téléporter. 827Double-cliquez pour vous téléporter.
828Utilisez les contrôles à droite pour trouver des choses et afficher différents arrière-plans. 828Utilisez les contrôles à droite pour trouver des choses et afficher différents arrière-plans.
829 </message> 829 </message>
@@ -867,10 +867,10 @@ Vous pouvez modifier votre apparence aussi souvent que vous le souhaitez.
867 </notify> 867 </notify>
868 <notify name="FirstInventory"> 868 <notify name="FirstInventory">
869 <message name="message"> 869 <message name="message">
870 Il s&apos;agit de votre inventaire qui contient des objets, notes, vêtements, et autres choses que vous possédez. 870 Il s&apos;agit de votre inventaire qui contient des objets, notes, vêtements, et autres possessions.
871* Pour porter un objet ou le dossier contenant un ensemble complet, faites-le glisser sur vous-même. 871* Pour porter un objet ou le dossier contenant un ensemble complet, faites-le glisser sur vous-même.
872* Pour mettre un objet dans le monde, faites-le glisser sur le sol. 872* Pour mettre un objet dans le monde, faites-le glisser sur le sol.
873* Pour lire une notice, double-cliquez dessus. 873* Pour lire une note, double-cliquez dessus.
874 </message> 874 </message>
875 </notify> 875 </notify>
876 <notify name="FirstSandbox"> 876 <notify name="FirstSandbox">
@@ -896,9 +896,9 @@ Pour activer/désactiver ce menu sous Windows, appuyez sur Ctrl-Alt-D. Sur un Ma
896 </notify> 896 </notify>
897 <notify name="FirstSculptedPrim"> 897 <notify name="FirstSculptedPrim">
898 <message name="message"> 898 <message name="message">
899 Vous êtes en train d&apos;éditer un prim sculpté. 899 Vous êtes en train d&apos;éditer un sculptie.
900Pour spécifier la forme d&apos;un prim sculpté, vous devez utiliser une texture spécifique. 900Pour spécifier la forme d&apos;un sculptie, vous devez utiliser une texture spécifique.
901Vous trouverez des exemples de textures sculptées dans la bibliothèque de l&apos;inventaire. 901Vous trouverez des textures dans la bibliothèque de votre inventaire.
902 </message> 902 </message>
903 </notify> 903 </notify>
904 <notify name="FirstMedia"> 904 <notify name="FirstMedia">
@@ -944,7 +944,7 @@ Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignore
944 </notify> 944 </notify>
945 <notify name="VoiceInviteGroup"> 945 <notify name="VoiceInviteGroup">
946 <message name="message"> 946 <message name="message">
947 [NAME] a rejoint un chat oral avec le groupe [GROUP]. 947 [NAME] a rejoint un chat vocal avec le groupe [GROUP].
948Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignorer cette personne, cliquez sur Ignorer. 948Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignorer cette personne, cliquez sur Ignorer.
949 </message> 949 </message>
950 <option name="Accept"> 950 <option name="Accept">
@@ -994,7 +994,7 @@ Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignore
994 </notify> 994 </notify>
995 <notify name="ProximalVoiceChannelFull"> 995 <notify name="ProximalVoiceChannelFull">
996 <message name="message"> 996 <message name="message">
997 Nous sommes désolés. Le nombre maximum de conversations orales a été atteint dans cette zone. Veuillez trouver un autre endroit pour discuter. 997 Nous sommes désolés. Le nombre maximum de conversations vocales a été atteint dans cette zone. Veuillez trouver un autre endroit pour discuter.
998 </message> 998 </message>
999 </notify> 999 </notify>
1000 <notify name="VoiceChannelDisconnected"> 1000 <notify name="VoiceChannelDisconnected">
@@ -1044,7 +1044,7 @@ Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignore
1044 </notify> 1044 </notify>
1045 <notify name="VoiceNotAllowed"> 1045 <notify name="VoiceNotAllowed">
1046 <message name="message"> 1046 <message name="message">
1047 Vous n&apos;êtes pas autorisé à vous connecter au chat oral pour [VOICE_CHANNEL_NAME]. 1047 Vous n&apos;êtes pas autorisé à vous connecter au chat vocal pour [VOICE_CHANNEL_NAME].
1048 </message> 1048 </message>
1049 </notify> 1049 </notify>
1050 <notify name="VoiceCallGenericError"> 1050 <notify name="VoiceCallGenericError">
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_audio.xml b/linden/indra/newview/skins/default/xui/fr/panel_audio.xml
index 06b432e..1e4aedf 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_audio.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_audio.xml
@@ -1,10 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Audio et Vidéo" name="Media panel"> 2<panel label="Audio et Vidéo" name="Media panel">
3 <slider label="Master" name="System Volume" label_width="65" /> 3 <slider label="Principal" label_width="65" name="System Volume"/>
4 <slider label="Musique" name="Music Volume" label_width="65" /> 4 <slider label="Musique" label_width="65" name="Music Volume"/>
5 <slider label="Média" name="Media Volume" label_width="65" /> 5 <slider label="Média" label_width="65" name="Media Volume"/>
6 <slider label="Voix" name="Voice Volume" label_width="65" /> 6 <slider label="Voix" label_width="65" name="Voice Volume"/>
7 <slider label="Sons" name="SFX Volume" label_width="65"/> 7 <slider label="Sons" label_width="65" name="SFX Volume"/>
8 <slider label="Son ambiant" name="Wind Volume" label_width="65" /> 8 <slider label="Son ambiant" label_width="65" name="Wind Volume"/>
9 <slider label="UI" name="UI Volume" label_width="65"/> 9 <slider label="Interface" label_width="65" name="UI Volume"/>
10</panel> 10</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_audio_device.xml b/linden/indra/newview/skins/default/xui/fr/panel_audio_device.xml
index 7288cc3..a9540d8 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_audio_device.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_audio_device.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="device_settings"> 2<panel name="device_settings">
3 <text name="Audio Devices"> 3 <text name="Audio Devices">
4 Matériel audio 4 Matériel audio
@@ -7,16 +7,15 @@
7 Périphérique d&apos;entrée (micro) : 7 Périphérique d&apos;entrée (micro) :
8 </text> 8 </text>
9 <text name="Output device (speakers):"> 9 <text name="Output device (speakers):">
10 Périphérique de sortie (speakers) : 10 Périphérique de sortie (haut-parleurs) :
11 </text> 11 </text>
12 <text name="Input level:"> 12 <text name="Input level:">
13 Volume d&apos;entrée 13 Volume d&apos;entrée
14 </text> 14 </text>
15 <text_editor name="voice_intro_text1"> 15 <text_editor name="voice_intro_text1">
16 Pour que les autres résidents vous entendent plus ou moins fort, utilisez le curseur. Pour tester le volume d&apos;entrée, il vous suffit de parler dans le micro. 16 Pour que les autres résidents vous entendent plus ou moins fort, utilisez le curseur. Pour tester le volume, parlez dans le micro.
17 </text_editor> 17 </text_editor>
18 <volume_slider name="mic_volume_slider" 18 <volume_slider name="mic_volume_slider" tool_tip="Réglez le volume avec ce curseur."/>
19 tool_tip="Réglez le volume à l&apos;aide de ce curseur." />
20 <text name="wait_text"> 19 <text name="wait_text">
21 Veuillez patienter 20 Veuillez patienter
22 </text> 21 </text>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_avatar.xml b/linden/indra/newview/skins/default/xui/fr/panel_avatar.xml
index f09ff35..dccf88f 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_avatar.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_avatar.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="Panel Avatar"> 2<panel name="Panel Avatar">
3 <tab_container name="tab"> 3 <tab_container name="tab">
4 <panel label="2nd Life" name="2nd Life"> 4 <panel label="2ème vie" name="2nd Life">
5 <string name="CaptionTextAcctInfo"> 5 <string name="CaptionTextAcctInfo">
6 [ACCTTYPE] 6 [ACCTTYPE]
7[PAYMENTINFO] 7[PAYMENTINFO]
@@ -28,16 +28,16 @@
28 Aucune info de paiement enregistrée 28 Aucune info de paiement enregistrée
29 </string> 29 </string>
30 <string name="AgeVerified"> 30 <string name="AgeVerified">
31 Personne dont l&apos;âge a été vérifié 31 Ãge vérifié
32 </string> 32 </string>
33 <string name="NotAgeVerified"> 33 <string name="NotAgeVerified">
34 Personne dont l&apos;âge n&apos;a pas été vérifié 34 Ãge non vérifié
35 </string> 35 </string>
36 <text name="Name:"> 36 <text name="Name:">
37 Nom : 37 Nom :
38 </text> 38 </text>
39 <text name="online_yes"> 39 <text name="online_yes">
40 Connecté actuellement 40 Actuellement connecté(e)
41 </text> 41 </text>
42 <text name="label"> 42 <text name="label">
43 Né(e) le : 43 Né(e) le :
@@ -45,21 +45,18 @@
45 <text name="label2"> 45 <text name="label2">
46 Compte : 46 Compte :
47 </text> 47 </text>
48 <text name="partner_label" 48 <text name="partner_label" tool_tip="Partenaire sur Second Life. Pour en savoir plus, allez sur www.secondlife.com/partner">
49 tool_tip="Partenaire sur Second Life. Pour en savoir plus, allez sur www.secondlife.com/partner">
50 Partenaire : 49 Partenaire :
51 </text> 50 </text>
52 <button label="i" label_selected="i" left_delta="62" name="partner_info" 51 <button label="i" label_selected="i" left_delta="62" name="partner_info" tool_tip="Cliquez pour ouvrir le profil du partenaire"/>
53 tool_tip="Cliquez pour ouvrir le profil du partenaire" /> 52 <button label="?" label_selected="?" left_delta="24" name="partner_help"/>
54 <button label="?" label_selected="?" left_delta="24" name="partner_help" /> 53 <line_editor name="partner_edit" tool_tip="Partenaire sur Second Life. Pour en savoir plus, allez sur www.secondlife.com/partner">
55 <line_editor name="partner_edit"
56 tool_tip="Partenaire sur Second Life. Pour en savoir plus, allez sur www.secondlife.com/partner">
57 [FIRST] [LAST] 54 [FIRST] [LAST]
58 </line_editor> 55 </line_editor>
59 <text name="Photo:"> 56 <text name="Photo:">
60 Photo : 57 Photo :
61 </text> 58 </text>
62 <texture_picker label="" name="img" tool_tip="Cliquez pour sélectionner une image" /> 59 <texture_picker label="" name="img" tool_tip="Cliquez pour sélectionner une image"/>
63 <text name="Groups:"> 60 <text name="Groups:">
64 Groupes : 61 Groupes :
65 </text> 62 </text>
@@ -69,91 +66,83 @@
69 <text name="(500 chars)"> 66 <text name="(500 chars)">
70 (500 car.) 67 (500 car.)
71 </text> 68 </text>
72 <text name="Give item:"> 69 <text name="Give item:" height="20" bottom="-397">
73 Donner objet : 70 Donner des
74 </text> 71objets :</text>
75 <text name="Give inventory" 72 <text name="Give inventory" tool_tip="Mettez les objets de l&apos;inventaire ici pour les donner à cette personne.">
76 tool_tip="Mettez les objets de l&apos;inventaire ici pour les donner à cette personne."> 73 Mettez les objets à transférer ici.
77 Mettez les objets de l&apos;inventaire ici. 74 </text>
78 </text> 75 <check_box label="Afficher dans la recherche" name="allow_publish" tool_tip="Publiez des infos suplémentaires telles qu&apos;une description et une image dans la Recherche."/>
79 <check_box label="Afficher dans la recherche" name="allow_publish" 76 <button label="?" label_selected="?" left_delta="160" name="?"/>
80 tool_tip="Publiez des infos suplémentaires telles qu&apos;une description et une image dans la Recherche." /> 77 <button label="Localiser" label_selected="Localiser" name="Find on Map"/>
81 <button label="?" label_selected="?" left_delta="160" name="?" /> 78 <button label="Proposer téléportation..." label_selected="Proposer téléportation..." name="Offer Teleport..."/>
82 <button label="Localiser" label_selected="Localiser" name="Find on Map" /> 79 <button label="Devenir amis..." label_selected="Devenir amis..." name="Add Friend..."/>
83 <button label="Offrir téléportation..." label_selected="Offrir téléportation..." 80 <button label="Payer..." label_selected="Payer..." name="Pay..."/>
84 name="Offer Teleport..." /> 81 <button label="Message instantané..." label_selected="Message instantané..." name="Instant Message..." tool_tip="Message instantané (IM)"/>
85 <button label="Ajouter comme ami..." label_selected="Ajouter comme ami..." 82 <button label="Ignorer" label_selected="Ignorer" name="Mute"/>
86 name="Add Friend..." />
87 <button label="Payer..." label_selected="Payer..." name="Pay..." />
88 <button label="Message instantané..." label_selected="Message instantané..."
89 name="Instant Message..." tool_tip="Message instantané (IM)" />
90 <button label="Ignorer" label_selected="Ignorer" name="Mute" />
91 </panel> 83 </panel>
92 <panel label="Web" name="WebProfile"> 84 <panel label="Web" name="WebProfile">
93 <flyout_button label="Charger" label_selected="Charger" name="load" 85 <flyout_button label="Charger" label_selected="Charger" name="load" tool_tip="Charger cette page du profil avec le navigateur web incorporé.">
94 tool_tip="Charger cette page du profil avec le navigateur web incorporé.">
95 <flyout_button_item name="open_item"> 86 <flyout_button_item name="open_item">
96 Dans un navigateur externe 87 Dans un navigateur externe
97 </flyout_button_item> 88 </flyout_button_item>
98 <flyout_button_item name="home_item"> 89 <flyout_button_item name="home_item">
99 URL du domicile 90 URL de la page d'accueil
100 </flyout_button_item> 91 </flyout_button_item>
101 </flyout_button> 92 </flyout_button>
102 <button label="?" label_selected="?" name="web_profile_help" /> 93 <button label="?" label_selected="?" name="web_profile_help"/>
103 <check_box label="Charger automatiquement les profils du web" name="auto_load" 94 <check_box label="Charger directement la page web" name="auto_load" tool_tip="Charger automatiquement toutes les pages web des profils sans demander au préalable."/>
104 tool_tip="Charger automatiquement toutes les pages web des profils sans demander au préalable." />
105 </panel> 95 </panel>
106 <panel label="Intérêts" name="Interests"> 96 <panel label="Intérêts" name="Interests">
107 <text left="2" name="I Want To:"> 97 <text left="2" name="I Want To:">
108 Je veux : 98 Je veux :
109 </text> 99 </text>
110 <check_box label="Construire" name="chk0" /> 100 <check_box label="Construire" name="chk0"/>
111 <check_box label="Explorer" left_delta="160" name="chk1" /> 101 <check_box label="Explorer" left_delta="160" name="chk1"/>
112 <check_box label="Faire des rencontres" left_delta="-160" name="chk2" /> 102 <check_box label="Faire des rencontres" left_delta="-160" name="chk2"/>
113 <check_box label="Être engagé" left_delta="160" name="chk6" /> 103 <check_box label="Être engagé" left_delta="160" name="chk6"/>
114 <check_box label="Rejoindre un groupe" left_delta="-160" name="chk3" /> 104 <check_box label="Rejoindre un groupe" left_delta="-160" name="chk3"/>
115 <check_box label="Acheter" left_delta="160" name="chk4" /> 105 <check_box label="Acheter" left_delta="160" name="chk4"/>
116 <check_box label="Vendre" left_delta="-160" name="chk5" /> 106 <check_box label="Vendre" left_delta="-160" name="chk5"/>
117 <check_box label="Recruter" left_delta="160" name="chk7" /> 107 <check_box label="Recruter" left_delta="160" name="chk7"/>
118 <text left="2" name="Skills:"> 108 <text left="2" name="Skills:">
119 Mes talents : 109 Mes talents :
120 </text> 110 </text>
121 <check_box label="Textures" name="schk0" /> 111 <check_box label="Textures" name="schk0"/>
122 <check_box label="Architecture" left_delta="160" name="schk1" /> 112 <check_box label="Architecture" left_delta="160" name="schk1"/>
123 <check_box label="Organisation d&apos;événements" name="schk2" /> 113 <check_box label="Organisation d&apos;événements" name="schk2"/>
124 <check_box label="Modélisation" left_delta="-160" name="schk3" /> 114 <check_box label="Modélisation" left_delta="-160" name="schk3"/>
125 <check_box label="Rédaction de scripts" name="schk4" /> 115 <check_box label="Rédaction de scripts" name="schk4"/>
126 <check_box label="Customisation de personnages" left_delta="160" name="schk5" /> 116 <check_box label="Customisation de personnages" left_delta="160" name="schk5"/>
127 <text left="2" name="Languages:"> 117 <text left="2" name="Languages:">
128 Langues : 118 Langues :
129 </text> 119 </text>
130 </panel> 120 </panel>
131 <panel label="Favoris" name="Picks"> 121 <panel label="Favoris" name="Picks">
132 <text left="10" name="Tell everyone about your favorite places in Second Life." 122 <text left="10" name="Tell everyone about your favorite places in Second Life." width="412">
133 width="412">
134 Faites connaître aux autres résidents vos endroits favoris dans Second Life. 123 Faites connaître aux autres résidents vos endroits favoris dans Second Life.
135 </text> 124 </text>
136 <button label="Créer..." label_selected="Créer..." name="New..." /> 125 <button label="Créer..." label_selected="Créer..." name="New..."/>
137 <button label="Supprimer..." label_selected="Supprimer..." name="Delete..." /> 126 <button label="Supprimer..." label_selected="Supprimer..." name="Delete..."/>
138 <text name="loading_text"> 127 <text name="loading_text">
139 Chargement en cours... 128 Chargement...
140 </text> 129 </text>
141 </panel> 130 </panel>
142 <panel label="Annonces" name="Classified"> 131 <panel label="Annonces" name="Classified">
143 <text name="Place an ad in Second Life&apos;s classified listings."> 132 <text name="Place an ad in Second Life&apos;s classified listings.">
144 Passez une petite annonce sur Second Life. 133 Passez une petite annonce sur Second Life.
145 </text> 134 </text>
146 <button label="Créer..." label_selected="Créer..." name="New..." /> 135 <button label="Créer..." label_selected="Créer..." name="New..."/>
147 <button label="Supprimer..." label_selected="Supprimer..." name="Delete..." /> 136 <button label="Supprimer..." label_selected="Supprimer..." name="Delete..."/>
148 <text name="loading_text"> 137 <text name="loading_text">
149 Chargement en cours... 138 Chargement...
150 </text> 139 </text>
151 </panel> 140 </panel>
152 <panel label="1st Life" name="1st Life"> 141 <panel label="1ère vie" name="1st Life">
153 <text name="Photo:"> 142 <text name="Photo:">
154 Photo : 143 Photo :
155 </text> 144 </text>
156 <texture_picker label="" name="img" tool_tip="Cliquez pour sélectionner une photo" /> 145 <texture_picker label="" name="img" tool_tip="Cliquez pour sélectionner une photo"/>
157 <text name="Info:"> 146 <text name="Info:">
158 Infos : 147 Infos :
159 </text> 148 </text>
@@ -163,26 +152,23 @@
163 </panel> 152 </panel>
164 <panel label="Mes notes" name="My Notes"> 153 <panel label="Mes notes" name="My Notes">
165 <string name="Loading"> 154 <string name="Loading">
166 Chargement en cours... 155 Chargement...
167 </string> 156 </string>
168 <text name="label"> 157 <text name="label">
169 Dans cet espace, vous pouvez enregistrer vos remarques au sujet de ce 158 Dans cet espace, vous pouvez enregistrer vos remarques au sujet de ce
170résident. Vous pouvez aussi utiliser cet onglet pour prendre des notes sur 159résident ou prendre des notes sur certains projets. Vous êtes le seul à
171certains projets. Vous êtes le seul à pouvoir y accéder. Même le résident 160pouvoir accéder à cette page et même le résident dont vous consultez le profil
172dont vous consultez le profil actuellement ne peut pas voir vos notes. 161ne pourra pas voir ce que vous avez écrit.
173 </text> 162 </text>
174 <text_editor bottom_delta="-260" height="240" name="notes edit" /> 163 <text_editor bottom_delta="-260" height="240" name="notes edit"/>
175 </panel> 164 </panel>
176 </tab_container> 165 </tab_container>
177 <button label="OK" label_selected="OK" name="OK" /> 166 <button label="OK" label_selected="OK" name="OK"/>
178 <button label="Annuler" label_selected="Annuler" name="Cancel" /> 167 <button label="Annuler" label_selected="Annuler" name="Cancel"/>
179 <button label="Vider" label_selected="Vider" name="Kick" /> 168 <button label="Éjecter" label_selected="Éjecter" name="Kick"/>
180 <button label="Geler" label_selected="Geler" name="Freeze" 169 <button label="Geler" label_selected="Geler" name="Freeze" tool_tip="Empêcher ce résident de bouger et de chatter."/>
181 tool_tip="Empêcher ce résident de bouger et de chatter." /> 170 <button label="Dégeler" label_selected="Dégeler" name="Unfreeze" tool_tip="Dégeler le résident"/>
182 <button label="Dégeler" label_selected="Dégeler" name="Unfreeze" 171 <button label="Admin" label_selected="Admin" name="csr_btn" tool_tip="Contacter le Service Clientèle pour ce résident"/>
183 tool_tip="Dégeler le résident" />
184 <button label="Admin" label_selected="Admin" name="csr_btn"
185 tool_tip="Contacter le Service Clientèle pour ce résident" />
186 <string name="ShowOnMapNonFriend"> 172 <string name="ShowOnMapNonFriend">
187 Voir sur la carte. 173 Voir sur la carte.
188Ceci n&apos;est pas possible car vous 174Ceci n&apos;est pas possible car vous
@@ -200,13 +186,13 @@ n&apos;êtes pas ami avec cette personne.
200 Téléporter le résident là où vous êtes de force. 186 Téléporter le résident là où vous êtes de force.
201 </string> 187 </string>
202 <string name="TeleportPrelude"> 188 <string name="TeleportPrelude">
203 Offrir au résident d&apos;être téléporté là où vous êtes. 189 Proposer au résident d&apos;être téléporté là où vous êtes.
204Ceci n&apos;est pas possible tant que vous êtes sur l&apos;île d&apos;orientation. 190Ceci n&apos;est pas possible tant que vous êtes sur l&apos;île d&apos;orientation.
205 </string> 191 </string>
206 <string name="TeleportNormal"> 192 <string name="TeleportNormal">
207 Offrir au résident d&apos;être téléporté là où vous êtes. 193 Offrir au résident d&apos;être téléporté là où vous êtes.
208 </string> 194 </string>
209 <string name="Loading"> 195 <string name="Loading">
210 Chargement en cours... 196 Chargement...
211 </string> 197 </string>
212</panel> 198</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_avatar_classified.xml b/linden/indra/newview/skins/default/xui/fr/panel_avatar_classified.xml
index 6ee30dc..f75ac67 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_avatar_classified.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_avatar_classified.xml
@@ -1,36 +1,32 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="Classified" title="Annonces"> 2<panel name="Classified" title="Annonces">
3 <line_editor name="given_name_editor" 3 <line_editor name="given_name_editor" tool_tip="Le nom doit commencer par une lettre ou un chiffre, et non un signe de ponctuation."/>
4 tool_tip="Le nom doit commencer par une lettre ou un chiffre, et non un signe de ponctuation." /> 4 <line_editor name="location_editor" tool_tip="Définir votre position actuelle comme emplacement pour cette annonce."/>
5 <line_editor name="location_editor" 5 <button label="Définir position" name="set_location_btn"/>
6 tool_tip="Définir votre position actuelle comme emplacement pour cette annonce." /> 6 <button label="Téléporter" name="classified_teleport_btn"/>
7 <button label="Définir position" name="set_location_btn" /> 7 <button label="Carte" name="classified_map_btn"/>
8 <button label="Téléporter" name="classified_teleport_btn" /> 8 <combo_box label="" name="classified_category_combo"/>
9 <button label="Carte" name="classified_map_btn" />
10 <combo_box label="" name="classified_category_combo" />
11 <check_box label="Adulte" name="classified_mature_check"> 9 <check_box label="Adulte" name="classified_mature_check">
12 <combo_item name="select_mature"> 10 <combo_item name="select_mature">
13 - Pour adultes - 11 - Type de public -
14 </combo_item> 12 </combo_item>
15 <combo_item name="mature"> 13 <combo_item name="mature">
16 Contenu réservé aux adultes 14 Adulte
17 </combo_item> 15 </combo_item>
18 <combo_item name="not_mature"> 16 <combo_item name="not_mature">
19 Contenu non réservé aux adultes 17 Tout public
20 </combo_item> 18 </combo_item>
21 </check_box> 19 </check_box>
22 <text name="classified_info_text" 20 <text name="classified_info_text" tool_tip="Plus vous payez cher pour votre annonce, mieux elle est placée dans la liste.">
23 tool_tip="Plus vous payez pour votre annonce, mieux elle est placée dans la liste."> 21 Annonce passée, pas encore publiée
24 Annonce passée : pas encore publiée
25 </text> 22 </text>
26 <text name="click_through_text" 23 <text name="click_through_text" tool_tip="Nombre total de clics sur chaque bouton depuis la parution de l&apos;annonce.">
27 tool_tip="Nombre total de clics sur chaque bouton depuis la parution de l&apos;annonce.">
28 Clics : 24 Clics :
29 </text> 25 </text>
30 <button label="Publier..." name="classified_update_btn" /> 26 <button label="Publier..." name="classified_update_btn"/>
31 <check_box label="Republier chaque semaine" name="auto_renew_check" /> 27 <check_box label="Publier chaque semaine" name="auto_renew_check"/>
32 <text name="ad_placed_paid"> 28 <text name="ad_placed_paid">
33 Annonce passée : [DATE], a payé [AMT] $L pour l&apos;annonce. 29 Annonce passée le : [DATE]. Prix : [AMT] L$.
34 </text> 30 </text>
35 <string name="update_txt"> 31 <string name="update_txt">
36 Mise à jour 32 Mise à jour
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_chat_bar.xml b/linden/indra/newview/skins/default/xui/fr/panel_chat_bar.xml
index 0c5e32f..2ba8dde 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_chat_bar.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_chat_bar.xml
@@ -4,11 +4,14 @@
4 <button label="Chat local" name="History" tool_tip="Cliquez ici pour voir ce qui a été dit"/> 4 <button label="Chat local" name="History" tool_tip="Cliquez ici pour voir ce qui a été dit"/>
5 <line_editor label="Cliquez ici pour chatter." name="Chat Editor" tool_tip="Appuyez sur Entrée pour dire quelque chose, Ctrl-Entrée pour crier."/> 5 <line_editor label="Cliquez ici pour chatter." name="Chat Editor" tool_tip="Appuyez sur Entrée pour dire quelque chose, Ctrl-Entrée pour crier."/>
6 <flyout_button label="Dire" name="Say" tool_tip="(Entrée)"> 6 <flyout_button label="Dire" name="Say" tool_tip="(Entrée)">
7 <flyout_button_item name="shout_item">
8 Crier
9 </flyout_button_item>
7 <flyout_button_item name="say_item"> 10 <flyout_button_item name="say_item">
8 Dire 11 Dire
9 </flyout_button_item> 12 </flyout_button_item>
10 <flyout_button_item name="shout_item"> 13 <flyout_button_item name="whisper_item">
11 Crier 14 Chuchoter
12 </flyout_button_item> 15 </flyout_button_item>
13 </flyout_button> 16 </flyout_button>
14 <combo_box label="Gestes" name="Gesture"/> 17 <combo_box label="Gestes" name="Gesture"/>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_classified.xml b/linden/indra/newview/skins/default/xui/fr/panel_classified.xml
index 31aaf1c..0383532 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_classified.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_classified.xml
@@ -1,14 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="Classified" title="Annonces"> 2<panel name="Classified" title="Annonces">
3 <line_editor name="given_name_editor" 3 <line_editor name="given_name_editor" tool_tip="Le nom doit commencer par une lettre ou un chiffre, et non un signe de ponctuation."/>
4 tool_tip="Le nom doit commencer par une lettre ou un chiffre, et non un signe de ponctuation." /> 4 <line_editor name="location_editor" tool_tip="Définir votre position actuelle comme emplacement pour cette annonce."/>
5 <line_editor name="location_editor" 5 <button label="Définir" name="set_location_btn"/>
6 tool_tip="Définir votre position actuelle comme emplacement pour cette annonce." /> 6 <button label="Téléporter" name="classified_teleport_btn"/>
7 <button label="Définir" name="set_location_btn" /> 7 <button label="Voir sur la carte" name="classified_map_btn" width="115"/>
8 <button label="Téléporter" name="classified_teleport_btn" /> 8 <button label="Profil" left="245" name="classified_profile_btn"/>
9 <button label="Voir sur la carte" name="classified_map_btn" width="115" /> 9 <check_box label="Adulte" name="classified_mature_check" width="190">
10 <button label="Profil" left="245" name="classified_profile_btn" />
11 <check_box label="Adulte" name="classified_mature_check">
12 <combo_item name="select_mature"> 10 <combo_item name="select_mature">
13 - Sélectionner Pour adultes - 11 - Sélectionner Pour adultes -
14 </combo_item> 12 </combo_item>
@@ -19,10 +17,10 @@
19 Contenu non réservé aux adultes 17 Contenu non réservé aux adultes
20 </combo_item> 18 </combo_item>
21 </check_box> 19 </check_box>
22 <combo_box label="" name="classified_category_combo" /> 20 <combo_box label="" name="classified_category_combo"/>
23 <button label="Mise à jour" name="classified_update_btn" /> 21 <button label="Mise à jour" name="classified_update_btn" width="80" />
24 <string name="ad_placed_paid"> 22 <string name="ad_placed_paid">
25 Annonce passée  : [DATE], a payé [AMT] $L pour l&apos;annonce. 23 Annonce passée le : [DATE]. Prix : [AMT] L$.
26 </string> 24 </string>
27 <string name="update_txt"> 25 <string name="update_txt">
28 Mise à jour 26 Mise à jour
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_event.xml b/linden/indra/newview/skins/default/xui/fr/panel_event.xml
index 0612569..20743ed 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_event.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_event.xml
@@ -43,7 +43,7 @@
43 (personne) 43 (personne)
44 </text> 44 </text>
45 <text name="event_location_label"> 45 <text name="event_location_label">
46 Emplacement : 46 Lieu :
47 </text> 47 </text>
48 <text name="event_location"> 48 <text name="event_location">
49 (aucun) 49 (aucun)
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_friends.xml b/linden/indra/newview/skins/default/xui/fr/panel_friends.xml
index d80372b..fa0d08b 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_friends.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_friends.xml
@@ -1,29 +1,20 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="friends"> 2<panel name="friends">
3 <string name="Multiple"> 3 <string name="Multiple">
4 Amis multiples... 4 Amis multiples...
5 </string> 5 </string>
6 <scroll_list name="friend_list" 6 <scroll_list name="friend_list" tool_tip="Pour sélectionner plusieurs amis, cliquez en maintenant la touche Maj ou Ctrl appuyée">
7 tool_tip="Pour sélectionner plusieurs amis, cliquez en maintenant la touche Maj ou Ctrl appuyée"> 7 <column name="icon_online_status" tool_tip="Statut en ligne"/>
8 <column name="icon_online_status" tool_tip="Statut en ligne" /> 8 <column label="Nom" name="friend_name" tool_tip="Nom"/>
9 <column label="Nom" name="friend_name" tool_tip="Nom" /> 9 <column name="icon_visible_online" tool_tip="Vos amis voient si vous êtes connecté(e)"/>
10 <column name="icon_visible_online" 10 <column name="icon_visible_map" tool_tip="Vos amis peuvent vous situer sur la carte"/>
11 tool_tip="Vos amis voient si vous êtes connecté(e)" /> 11 <column name="icon_edit_mine" tool_tip="Vos amis peuvent modifier, supprimer ou prendre vos objets"/>
12 <column name="icon_visible_map" tool_tip="Vos amis peuvent vous situer sur la carte" /> 12 <column name="icon_edit_theirs" tool_tip="Vous pouvez modifier les objets de cet ami"/>
13 <column name="icon_edit_mine"
14 tool_tip="Vos amis peuvent modifier, supprimer ou prendre vos objets" />
15 <column name="icon_edit_theirs" tool_tip="Vous pouvez modifier les objets de cet ami" />
16 </scroll_list> 13 </scroll_list>
17 <button label="IM/Appel" name="im_btn" 14 <button label="IM/Appel" name="im_btn" tool_tip="Ouvrez une session de messagerie instantanée"/>
18 tool_tip="Ouvrez une session de messagerie instantanée" /> 15 <button label="Profil" name="profile_btn" tool_tip="Affichez une photo, vos groupes et autres infos"/>
19 <button label="Profil" name="profile_btn" 16 <button label="Téléporter..." name="offer_teleport_btn" tool_tip="Proposez à cet ami d&apos;être téléporté là où vous êtes"/>
20 tool_tip="Affichez une photo, vos groupes et autres infos" /> 17 <button label="Payer..." name="pay_btn" tool_tip="Donnez des L$ à cet ami"/>
21 <button label="Téléporter..." name="offer_teleport_btn" 18 <button label="Supprimer..." name="remove_btn" tool_tip="Supprimez cette personne de votre liste d&apos;amis"/>
22 tool_tip="Proposez à cet ami d&apos;être téléporté là où vous êtes" /> 19 <button label="Ajouter..." name="add_btn" tool_tip="Demandez à un résident de devenir votre ami"/>
23 <button label="Payer..." name="pay_btn"
24 tool_tip="Donnez des dollars Linden ($L) à cet ami" />
25 <button label="Supprimer..." name="remove_btn"
26 tool_tip="Supprimez cette personne de votre liste d&apos;amis" />
27 <button label="Ajouter..." name="add_btn"
28 tool_tip="Demandez à un résident de devenir votre ami" />
29</panel> 20</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_group.xml b/linden/indra/newview/skins/default/xui/fr/panel_group.xml
index c4f4dfa..697efed 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_group.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_group.xml
@@ -1,10 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="GroupInfo" title="Infos du groupe"> 2<panel name="GroupInfo" title="Profil du groupe">
3 <text name="default_needs_apply_text"> 3 <text name="default_needs_apply_text">
4 Certains changements n&apos;ont pas été appliqués sur cet onglet. 4 Certains changements n&apos;ont pas été appliqués sur cet onglet.
5 </text> 5 </text>
6 <text name="want_apply_text"> 6 <text name="want_apply_text">
7 Voulez-vous les appliquer ? 7 Voulez-vous enregistrer les modifications ?
8 </text> 8 </text>
9 <button label="Appliquer" label_selected="Appliquer" name="btn_apply" /> 9 <button label="Appliquer" label_selected="Appliquer" name="btn_apply" />
10 <button label="Annuler" label_selected="Annuler" name="btn_cancel" /> 10 <button label="Annuler" label_selected="Annuler" name="btn_cancel" />
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_group_finder.xml b/linden/indra/newview/skins/default/xui/fr/panel_group_finder.xml
index 335179b..0d36bd8 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_group_finder.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_group_finder.xml
@@ -4,6 +4,6 @@
4 Certains changements n&apos;ont pas été appliqués sur cet onglet. 4 Certains changements n&apos;ont pas été appliqués sur cet onglet.
5 </text> 5 </text>
6 <text name="want_apply_text"> 6 <text name="want_apply_text">
7 Voulez-vous les appliquer ? 7 Voulez-vous enregistrer les modifications ?
8 </text> 8 </text>
9</panel> 9</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_group_general.xml b/linden/indra/newview/skins/default/xui/fr/panel_group_general.xml
index 6686f3d..82baee7 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_group_general.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_group_general.xml
@@ -1,37 +1,33 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Général" name="general_tab"> 2<panel label="Général" name="general_tab">
3 <text name="help_text"> 3 <text name="help_text">
4 L&apos;onglet Général contient des infos générales sur le groupe, une liste des propriétaires et des membres visibles, les préférences relatives au groupe ainsi que différentes options concernant les membres. 4 L&apos;onglet Général contient les infos générales et les préférences du groupe ainsi que la liste des propriétaires et des membres visibles.
5 5
6Pour obtenir de l&apos;aide, survolez les options avec votre souris.
7 </text> 6 </text>
8 <string name="group_info_unchanged"> 7 <string name="group_info_unchanged">
9 Les infos générales du groupe ont changé. 8 Le profil du groupe a changé.
10 </string> 9 </string>
11 <button label="?" label_selected="?" name="help_button" /> 10 <button label="?" label_selected="?" name="help_button"/>
12 <line_editor label="Saisissez le nom du groupe ici" name="group_name_editor"> 11 <line_editor label="Saisissez le nom du groupe ici" name="group_name_editor">
13 Entrez le nom de votre nouveau groupe ici 12 Saisissez le nom du groupe ici
14 </line_editor> 13 </line_editor>
15 <text name="group_name"> 14 <text name="group_name">
16 Saisissez le nom du groupe ici 15 Saisissez le nom du groupe ici
17 </text> 16 </text>
18 <text name="prepend_founded_by"> 17 <text name="prepend_founded_by">
19 Fondé par 18 Fondé par </text>
20 </text> 19 <text name="founder_name" left_delta="54">
21 <text name="founder_name">
22 (en attente) 20 (en attente)
23 </text> 21 </text>
24 <text name="group_charter_label"> 22 <text name="group_charter_label">
25 Charte du groupe 23 Charte du groupe
26 </text> 24 </text>
27 <texture_picker label="Emblème du groupe" name="insignia" 25 <texture_picker label="Logo du groupe" name="insignia" tool_tip="Cliquez pour sélectionner une image"/>
28 tool_tip="Cliquez pour sélectionner une image" />
29 <text_editor name="charter"> 26 <text_editor name="charter">
30 Charte du groupe 27 Indiquez ici la charte de votre groupe
31 </text_editor> 28 </text_editor>
32 <button label="Rejoindre (0$L)" label_selected="Rejoindre (0$L)" name="join_button" /> 29 <button label="Rejoindre (0L$)" label_selected="Rejoindre (0L$)" name="join_button"/>
33 <button label="Affichage détaillé" label_selected="Affichage détaillé" 30 <button label="Affichage détaillé" label_selected="Affichage détaillé" name="info_button"/>
34 name="info_button" />
35 <text> 31 <text>
36 Propriétaires et membres visibles 32 Propriétaires et membres visibles
37 </text> 33 </text>
@@ -50,54 +46,44 @@ Pour obtenir de l&apos;aide, survolez les options avec votre souris.
50 <column label="Dernière connexion" name="online" relwidth="0.35"/> 46 <column label="Dernière connexion" name="online" relwidth="0.35"/>
51 </name_list> 47 </name_list>
52 <text name="text_group_preferences"> 48 <text name="text_group_preferences">
53 Préférences du groupe 49 Préférences
54 </text> 50 </text>
55 <text name="incomplete_member_data_str"> 51 <text name="incomplete_member_data_str">
56 Extraction des données du résident en cours 52 Extraction des données du résident en cours
57 </text> 53 </text>
58 <text name="confirm_group_create_str"> 54 <text name="confirm_group_create_str">
59 La création de ce groupe coûte 100 $L. 55 La création de ce groupe coûte 100 L$.
60Êtes-vous vraiment certain de vouloir dépenser 100 $L pour créer ce groupe ? 56Êtes-vous vraiment certain de vouloir dépenser 100 L$ pour créer ce groupe ?
61Sachez que si personne ne rejoint ce groupe sous 48h, il sera démantelé et ne pourra plus être utilisé à l&apos;avenir. 57Sachez que si personne ne rejoint ce groupe sous 48h, il sera démantelé et ne pourra plus être utilisé.
62 </text> 58 </text>
63 <text> 59 <text>
64 Préférences du Groupe 60 Préférences
65 </text> 61 </text>
66 <panel name="preferences_container"> 62 <panel name="preferences_container">
67 <check_box label="Afficher dans la recherche" name="show_in_group_list" 63 <check_box label="Afficher dans la recherche" name="show_in_group_list" tool_tip="Afficher ce groupe dans les résultats de recherche."/>
68 tool_tip="Afficher ce groupe dans les résultats de recherche." /> 64 <check_box label="Publier sur le web" name="publish_on_web" tool_tip="Cochez pour publier les informations de ce groupe sur le web."/>
69 <check_box label="Publier sur le web" name="publish_on_web" 65 <check_box label="Inscription libre" name="open_enrollement" tool_tip="Indique si une invitation est nécessaire pour devenir membre de ce groupe."/>
70 tool_tip="Cochez pour publier les informations de ce groupe sur le web." /> 66 <check_box label="Frais d&apos;inscription : L$" name="check_enrollment_fee" tool_tip="Indique s&apos;il y a des frais d&apos;inscription pour devenir membre."/>
71 <check_box label="Inscription libre" name="open_enrollement" 67 <spinner name="spin_enrollment_fee" tool_tip="Si la case Frais d&apos;inscription est cochée, cela signifie qu&apos;il faut payer des frais pour devenir membre."/>
72 tool_tip="Indique si une invitation est nécessaire pour devenir membre de ce groupe." /> 68 <check_box label="Adulte" name="mature" tool_tip="Cochez si les informations de votre groupe sont à caractère adulte."/>
73 <check_box label="Frais d&apos;inscription : $L" name="check_enrollment_fee" 69 <combo_box name="group_mature_check" tool_tip="Indique si les informations de votre groupe sont considérées comme étant réservées aux adultes." width="195">
74 tool_tip="Indique s&apos;il y a des frais d&apos;inscription pour devenir membre." /> 70 <combo_item name="select_mature">
75 <spinner name="spin_enrollment_fee" 71 - Type de public -
76 tool_tip="Lorsque la case Frais d&apos;inscription est cochée, cela signifie qu&apos;il faut payer des frais pour devenir membre." />
77 <check_box label="Adulte" name="mature"
78 tool_tip="Cochez si les informations de votre groupe sont à caractère adulte." />
79 <combo_box width="195" name="group_mature_check"
80 tool_tip="Indique si les informations de votre groupe sont considérées comme étant réservées aux adultes.">
81 <combo_item name="select_mature" >
82 - Sélectionner Pour adultes -
83 </combo_item> 72 </combo_item>
84 <combo_item name="mature"> 73 <combo_item name="mature">
85 Contenu pour adultes 74 Adulte
86 </combo_item> 75 </combo_item>
87 <combo_item name="not_mature"> 76 <combo_item name="not_mature">
88 Contenu non réservé aux adultes 77 Tout public
89 </combo_item> 78 </combo_item>
90 </combo_box> 79 </combo_box>
91 <panel name="title_container"> 80 <panel name="title_container">
92 <text name="active_title_label"> 81 <text name="active_title_label">
93 Mon titre actuel 82 Mon titre actuel
94 </text> 83 </text>
95 <combo_box name="active_title" 84 <combo_box name="active_title" tool_tip="Définit le titre qui apparaît près du nom de votre avatar lorsque ce groupe est actif."/>
96 tool_tip="Définit le titre qui apparaît près du nom de votre avatar lorsque ce groupe est actif." />
97 </panel> 85 </panel>
98 <check_box label="Recevoir des notes de groupe" name="receive_notices" 86 <check_box label="Recevoir les notices" name="receive_notices" tool_tip="Cochez si vous souhaitez recevoir les notices envoyées au groupe. Décochez si ce groupe vous envoie des spams."/>
99 tool_tip="Définit si vous souhaitez recevoir les notes envoyées au groupe. Décochez si ce groupe vous envoie des spams." /> 87 <check_box label="Afficher dans mon profil" name="list_groups_in_profile" tool_tip="Indique si vous voulez que ce groupe apparaisse dans votre profil"/>
100 <check_box label="Afficher dans mon profil" name="list_groups_in_profile"
101 tool_tip="Indique si vous voulez que ce groupe apparaisse dans votre profil" />
102 </panel> 88 </panel>
103</panel> 89</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_group_invite.xml b/linden/indra/newview/skins/default/xui/fr/panel_group_invite.xml
index df13e89..f22918d 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_group_invite.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_group_invite.xml
@@ -1,30 +1,27 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Inviter un membre" name="invite_panel"> 2<panel label="Inviter un résident" name="invite_panel">
3 <text> 3 <text>
4 Vous pouvez sélectionner plusieurs résidents 4 Vous pouvez sélectionner plusieurs résidents
5à inviter dans votre groupe. Cliquez sur &apos;Ouvrir 5à inviter dans votre groupe. Cliquez sur &apos;Ouvrir
6le Sélecteur de Personnes&apos; pour commencer. 6le Sélecteur de Personnes&apos; pour commencer.
7 </text> 7 </text>
8 <text name="help_text"> 8 <text name="help_text">
9 Vous pouvez inviter plusieurs résidents. 9 Vous pouvez inviter plusieurs résidents.
10Cliquez sur Sélecteur 10Pour commencer, cliquez sur
11de personnes pour commencer. 11Choisir un résident.
12 </text> 12 </text>
13 <button label="Sélecteur de personnes" name="add_button" tool_tip="" /> 13 <button label="Choisir un résident" name="add_button" tool_tip=""/>
14 <name_list name="invitee_list" 14 <name_list name="invitee_list" tool_tip="Pour sélectionner plusieurs noms, maintenez la touche Ctrl enfoncée en cliquant sur le nom des résidents."/>
15 tool_tip="Pour sélectionner plusieurs noms, maintenez la touche Ctrl enfoncée en cliquant sur le nom des résidents." /> 15 <button label="Supprimer de la liste" name="remove_button" tool_tip="Supprime les résidents sélectionnés de la liste des invités."/>
16 <button label="Supprimer de la liste" name="remove_button"
17 tool_tip="Supprime les résidents sélectionnés de la liste des invités." />
18 <text> 16 <text>
19 Choisissez le Rôle à leur attribuer : 17 Assignez-leur un rôle :
20 </text> 18 </text>
21 <text name="role_text"> 19 <text name="role_text">
22 Assignez-leur un rôle : 20 Assignez-leur un rôle :
23 </text> 21 </text>
24 <combo_box name="role_name" 22 <combo_box name="role_name" tool_tip="Choisissez des rôles à assigner aux membres dans la liste."/>
25 tool_tip="Choisissez des rôles à assigner aux membres dans la liste." /> 23 <button label="Envoyer les invitations" name="ok_button"/>
26 <button label="Envoyer des invitations" name="ok_button" /> 24 <button label="Annuler" name="cancel_button"/>
27 <button label="Annuler" name="cancel_button" />
28 <string name="confirm_invite_owner_str"> 25 <string name="confirm_invite_owner_str">
29 Etes-vous certain de vouloir inviter un/de nouveau(x) propriétaire(s) ? Ce choix est permanent ! 26 Etes-vous certain de vouloir inviter un/de nouveau(x) propriétaire(s) ? Ce choix est permanent !
30 </string> 27 </string>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_group_land_money.xml b/linden/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
index 6e3d0f8..dfed082 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
@@ -1,42 +1,43 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Terrain &amp; $L" name="land_money_tab"> 2<panel label="Terrain et L$" name="land_money_tab">
3 <text name="help_text"> 3 <text name="help_text">
4 Les parcelles appartenant au groupe apparaissent avec les détails des contributions. Un avertissement apparaîtra tant que le Total du terrain utilisé sera inférieur ou égal aux Contributions totales. Les onglets Planification, Détails et Ventes fournissent des détails sur les finances du groupe. 4 Les parcelles appartenant au groupe sont indiquées avec le détails des contributions. Un avertissement apparaît si la surface utilisée par le groupe est supérieure ou égale au total des contributions. Les onglets Détails et Ventes correspondent aux finances du groupe.
5 </text> 5 </text>
6 <button label="?" name="help_button" /> 6 <button label="?" name="help_button"/>
7 <text name="cant_view_group_land_text"> 7 <text name="cant_view_group_land_text">
8 Vous n&apos;avez pas la permission de voir quel terrain possède ce groupe. 8 Vous n&apos;avez pas la permission de voir quel terrain possède ce groupe.
9 </text> 9 </text>
10 <text name="cant_view_group_accounting_text"> 10 <text name="cant_view_group_accounting_text">
11 Vous n&apos;avez pas la permission d&apos;accéder aux informations financières de ce groupe. 11 Vous n&apos;avez pas la permission d&apos;accéder aux informations
12financières de ce groupe.
12 </text> 13 </text>
13 <string name="loading_txt"> 14 <string name="loading_txt">
14 Chargement en cours... 15 Chargement...
15 </string> 16 </string>
16 <text name="group_land_heading"> 17 <text name="group_land_heading">
17 Terrain du groupe 18 Terrain du groupe
18 </text> 19 </text>
19 <scroll_list name="group_parcel_list"> 20 <scroll_list name="group_parcel_list">
20 <column label="Nom de la parcelle" name="name" /> 21 <column label="Nom de la parcelle" name="name"/>
21 <column label="Région" name="location" /> 22 <column label="Région" name="location"/>
22 <column label="Surface" name="area" /> 23 <column label="Surface" name="area"/>
23 <column label="" name="hidden" /> 24 <column label="" name="hidden"/>
24 </scroll_list> 25 </scroll_list>
25 <button label="Voir sur la carte" label_selected="Voir sur la carte" name="map_button" /> 26 <button label="Voir sur la carte" label_selected="Voir sur la carte" name="map_button"/>
26 <text name="total_contributed_land_label"> 27 <text name="total_contributed_land_label">
27 Contributions totales : 28 Total des contributions :
28 </text> 29 </text>
29 <text name="total_contributed_land_value"> 30 <text name="total_contributed_land_value">
30 [AREA] m² 31 [AREA] m²
31 </text> 32 </text>
32 <text name="total_land_in_use_label"> 33 <text name="total_land_in_use_label">
33 Total du terrain utilisé : 34 Superficie déjà utilisée :
34 </text> 35 </text>
35 <text name="total_land_in_use_value"> 36 <text name="total_land_in_use_value">
36 [AREA] m² 37 [AREA] m²
37 </text> 38 </text>
38 <text name="land_available_label"> 39 <text name="land_available_label">
39 Terrain disponible : 40 Superficie disponible :
40 </text> 41 </text>
41 <text name="land_available_value"> 42 <text name="land_available_value">
42 [AREA] m² 43 [AREA] m²
@@ -58,7 +59,7 @@
58charge le terrain utilisé. 59charge le terrain utilisé.
59 </text> 60 </text>
60 <text name="group_money_heading"> 61 <text name="group_money_heading">
61 $L du groupe 62 Finances
62 </text> 63 </text>
63 <tab_container name="group_money_tab_container"> 64 <tab_container name="group_money_tab_container">
64 <panel label="Planification" name="group_money_planning_tab"> 65 <panel label="Planification" name="group_money_planning_tab">
@@ -70,19 +71,15 @@ charge le terrain utilisé.
70 <text_editor name="group_money_details_text"> 71 <text_editor name="group_money_details_text">
71 Calcul en cours... 72 Calcul en cours...
72 </text_editor> 73 </text_editor>
73 <button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" 74 <button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" name="earlier_details_button" tool_tip="Reculer dans le temps"/>
74 name="earlier_details_button" tool_tip="Reculer dans le temps" /> 75 <button label="Plus tard &gt;" label_selected="Plus tard &gt;" name="later_details_button" tool_tip="Avancer dans le temps"/>
75 <button label="Plus tard &gt;" label_selected="Plus tard &gt;"
76 name="later_details_button" tool_tip="Avancer dans le temps" />
77 </panel> 76 </panel>
78 <panel label="Ventes" name="group_money_sales_tab"> 77 <panel label="Ventes" name="group_money_sales_tab">
79 <text_editor name="group_money_sales_text"> 78 <text_editor name="group_money_sales_text">
80 Calcul en cours... 79 Calcul en cours...
81 </text_editor> 80 </text_editor>
82 <button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" 81 <button label="&lt; Plus tôt" label_selected="&lt; Plus tôt" name="earlier_sales_button" tool_tip="Reculer dans le temps"/>
83 name="earlier_sales_button" tool_tip="Reculer dans le temps" /> 82 <button label="Plus tard &gt;" label_selected="Plus tard &gt;" name="later_sales_button" tool_tip="Avancer dans le temps"/>
84 <button label="Plus tard &gt;" label_selected="Plus tard &gt;"
85 name="later_sales_button" tool_tip="Avancer dans le temps" />
86 </panel> 83 </panel>
87 </tab_container> 84 </tab_container>
88</panel> 85</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_group_notices.xml b/linden/indra/newview/skins/default/xui/fr/panel_group_notices.xml
index 9ff1456..d824ae5 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_group_notices.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_group_notices.xml
@@ -1,70 +1,64 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Notes" name="notices_tab"> 2<panel label="Notices" name="notices_tab">
3 <text name="help_text"> 3 <text name="help_text">
4 Les notes vous permettent d&apos;envoyer des messages et pièces-jointes à tous les membres du groupe en même temps. Ces messages ne sont envoyés qu&apos;aux membres dont le rôle les autorise à recevoir des notes. Vous pouvez désactiver les notes à l&apos;onglet Général. 4 Les notices vous permettent d&apos;envoyer des messages et pièces-jointes aux membres du groupe autorisés à les recevoir. Vous pouvez désactiver la réception des notices à l&apos;onglet Général.
5 </text> 5 </text>
6 <text name="no_notices_text"> 6 <text name="no_notices_text">
7 Aucune note précédemment envoyée. 7 Aucune notice
8 </text> 8 </text>
9 <button label="?" label_selected="?" name="help_button" /> 9 <button label="?" label_selected="?" name="help_button"/>
10 <text name="lbl"> 10 <text name="lbl">
11 Archive des notes du groupe 11 Anciennes notices du groupe
12 </text> 12 </text>
13 <text name="lbl2"> 13 <text name="lbl2">
14 Les notes sont conservées pendant 14 jours. Cliquez sur la note que vous 14 Double-cliquez sur une notice pour l'afficher. Les notices sont conservées
15voulez afficher. Pour voir si vous avez reçu de nouvelles notes, cliquez sur 15pendant 14 jours et chaque groupe a une limite quotidienne de 200 notices.
16Rafraîchir. Chaque groupe a une limite quotidienne de 200 notes.
17 </text> 16 </text>
18 <scroll_list name="notice_list"> 17 <scroll_list name="notice_list">
19 <column label="" name="icon" /> 18 <column label="" name="icon"/>
20 <column label="Sujet" name="subject" /> 19 <column label="Sujet" name="subject"/>
21 <column label="De" name="from" /> 20 <column label="De" name="from"/>
22 <column label="Date" name="date" /> 21 <column label="Date" name="date"/>
23 </scroll_list> 22 </scroll_list>
24 <text name="notice_list_none_found"> 23 <text name="notice_list_none_found">
25 Aucun résultat. 24 Aucun résultat.
26 </text> 25 </text>
27 <button label="Créer une note" label_selected="Créer une note" 26 <button label="Créer une notice" label_selected="Créer une notice" name="create_new_notice"/>
28 name="create_new_notice" /> 27 <button label="Rafraîchir" label_selected="Rafraîchir la liste" name="refresh_notices"/>
29 <button label="Rafraîchir" label_selected="Rafraîchir la liste" 28 <panel label="Créer une notice" name="panel_create_new_notice">
30 name="refresh_notices" />
31 <panel label="Créer une note" name="panel_create_new_notice">
32 <text name="lbl"> 29 <text name="lbl">
33 Créer une note 30 Créer une notice
34 </text> 31 </text>
35 <text name="lbl2"> 32 <text name="lbl2">
36 Pour envoyer une note, vous devez saisir un sujet. Pour joindre 33 Pour envoyer une notice, saisissez un sujet. Pour joindre
37une pièce-jointe à cette note, faites-la glisser depuis votre 34une pièce-jointe à cette notice, faites-la glisser depuis votre
38inventaire vers cette fenêtre. Les pièces-jointes doivent être 35inventaire vers cette fenêtre. Les pièces-jointes doivent être
39copiables et transférables. Il n&apos;est pas possible d&apos;envoyer de 36copiables et transférables. Il n&apos;est pas possible d&apos;envoyer de
40dossiers. 37dossiers.
41 </text> 38 </text>
42 <text name="lbl3" bottom_delta="-79" > 39 <text bottom_delta="-79" name="lbl3" left="20">
43 Sujet : 40 Sujet :
44 </text> 41 </text>
45 <line_editor name="create_subject" width="346" /> 42 <line_editor name="create_subject" width="331" left_delta="61"/>
46 <text name="lbl4"> 43 <text name="lbl4" left="20">
47 Message : 44 Message :
48 </text> 45 </text>
49 <text_editor bottom_delta="-90" height="104" name="create_message" /> 46 <text_editor name="create_message" bottom_delta="-90" height="104" left_delta="61" width="330"/>
50 <text name="lbl5"> 47 <text name="lbl5" width="68">
51 Attacher : 48 Pièce-jointe :
52 </text> 49 </text>
53 <line_editor name="create_inventory_name" width="206" /> 50 <line_editor name="create_inventory_name" width="190" left_delta="74"/>
54 <button label="Supprimer pièce-jointe" label_selected="Supprimer pièce-jointe" 51 <button label="Supprimer pièce-jointe" label_selected="Supprimer pièce-jointe" left="274" name="remove_attachment" width="140"/>
55 name="remove_attachment" left="274" width="140"/> 52 <button label="Envoyer la notice" label_selected="Envoyer la notice" left="274" name="send_notice" width="140"/>
56 <button label="Envoyer note" label_selected="Envoyer note" name="send_notice" left="274" width="140"/> 53 <panel name="drop_target2" tool_tip="Pour joindre un objet de l&apos;inventaire à la notice, faites-le glisser dans la boîte de message. Pour envoyer l&apos;objet avec la notice, vous devez avoir la permission de le copier et de le transférer."/>
57 <panel name="drop_target2" 54 <panel name="drop_target" tool_tip="Pour joindre un objet de l&apos;inventaire à la notice, faites-le glisser dans la boîte de message. Pour envoyer l&apos;objet avec la notice, vous devez avoir la permission de le copier et de le transférer."/>
58 tool_tip="Drag an inventory item onto the message box to send it with the notice. You must have permission to copy and transfer the object to send it with the notice." />
59 <panel name="drop_target"
60 tool_tip="Pour joindre un objet de l&apos;inventaire à la note, faites-le glisser dans la boîte de message. Pour envoyer l&apos;objet avec la note, vous devez avoir la permission de le copier et de le transférer." />
61 </panel> 55 </panel>
62 <panel label="Voir ancienne note" name="panel_view_past_notice"> 56 <panel label="Voir ancienne notice" name="panel_view_past_notice">
63 <text name="lbl"> 57 <text name="lbl">
64 Note archivée 58 Détails
65 </text> 59 </text>
66 <text name="lbl2"> 60 <text name="lbl2">
67 Pour envoyer une nouvelle note, cliquez sur Créer une note ci-dessus. 61 Pour envoyer une nouvelle notice, cliquez sur Créer une notice ci-dessus.
68 </text> 62 </text>
69 <text name="lbl3"> 63 <text name="lbl3">
70 Sujet : 64 Sujet :
@@ -72,8 +66,7 @@ dossiers.
72 <text name="lbl4"> 66 <text name="lbl4">
73 Message : 67 Message :
74 </text> 68 </text>
75 <button label="Ouvrir pièce-jointe" label_selected="Ouvrir pièce-jointe" 69 <button label="Ouvrir pièce-jointe" label_selected="Ouvrir pièce-jointe" name="open_attachment" width="118"/>
76 name="open_attachment" width="118" /> 70 <line_editor left="128" name="view_inventory_name" width="256"/>
77 <line_editor left="128" name="view_inventory_name" width="256" />
78 </panel> 71 </panel>
79</panel> 72</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_group_roles.xml b/linden/indra/newview/skins/default/xui/fr/panel_group_roles.xml
index c6553ea..255083f 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_group_roles.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_group_roles.xml
@@ -1,23 +1,22 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Membres et rôles" name="roles_tab"> 2<panel label="Membres et rôles" name="roles_tab">
3 <text name="default_needs_apply_text"> 3 <text name="default_needs_apply_text">
4 Certains changements n&apos;ont pas été appliqués sur ce sous-onglet. 4 Certains changements n&apos;ont pas été appliqués sur ce sous-onglet.
5 </text> 5 </text>
6 <text name="want_apply_text"> 6 <text name="want_apply_text">
7 Voulez-vous les appliquer ? 7 Voulez-vous enregistrer les modifications ?
8 </text> 8 </text>
9 <text name="cant_delete_role"> 9 <text name="cant_delete_role">
10 Les Rôles &apos;Tout le monde&apos; et &apos;Propriétaires&apos; sont particuliers, et ne peuvent être supprimés. 10 Les Rôles Tout le monde et Propriétaires sont spéciaux et ne peuvent être supprimés.
11 </text> 11 </text>
12 <button label="?" name="help_button" /> 12 <button label="?" name="help_button"/>
13 <panel name="members_header"> 13 <panel name="members_header">
14 <text name="static"> 14 <text name="static">
15 Membres et rôles 15 Membres
16 </text> 16 </text>
17 <text name="static2"> 17 <text name="static2">
18 Chaque membre reçoit un rôle auquel sont associés certains pouvoirs. Ces 18 Les rôles de chaque membre peuvent être personnalisés, ce qui permet une
19paramètres peuvent être facilement personnalisés, ce qui permet une 19meilleure organisation du groupe.
20meilleure organisation et plus de flexibilité.
21 </text> 20 </text>
22 </panel> 21 </panel>
23 <panel name="roles_header"> 22 <panel name="roles_header">
@@ -32,7 +31,7 @@ description et le titre du membre.
32 Sélectionnez un rôle ci-dessous pour en connaître les propriétés, les 31 Sélectionnez un rôle ci-dessous pour en connaître les propriétés, les
33membres et les pouvoirs. 32membres et les pouvoirs.
34 </text> 33 </text>
35 <text name="role_actions_modifiable" bottom_delta="-28"> 34 <text bottom_delta="-28" name="role_actions_modifiable">
36 Vous pouvez aussi assigner des pouvoirs au rôle. 35 Vous pouvez aussi assigner des pouvoirs au rôle.
37 </text> 36 </text>
38 <text name="role_actions_not_modifiable"> 37 <text name="role_actions_not_modifiable">
@@ -48,52 +47,51 @@ membres et les pouvoirs.
48quels membres ces pouvoirs sont assignés. 47quels membres ces pouvoirs sont assignés.
49 </text> 48 </text>
50 </panel> 49 </panel>
51 <tab_container name="roles_tab_container" height="164"> 50 <tab_container height="164" name="roles_tab_container">
52 <panel label="Membres" name="members_sub_tab" tool_tip="Membres" height="148"> 51 <panel height="148" label="Membres" name="members_sub_tab" tool_tip="Membres">
53 <line_editor bottom="127" name="search_text" /> 52 <line_editor bottom="127" name="search_text"/>
54 <button label="Rechercher" name="search_button" width="75" /> 53 <button label="Rechercher" name="search_button" width="75"/>
55 <button label="Afficher tout" name="show_all_button" left_delta="80" /> 54 <button label="Afficher tout" left_delta="80" name="show_all_button"/>
56 <name_list name="member_list" height="104" bottom_delta="-105"> 55 <name_list bottom_delta="-105" height="104" name="member_list">
57 <column label="Nom du membre" name="name" /> 56 <column label="Nom du membre" name="name"/>
58 <column label="Terrain donné" name="donated" width="116"/> 57 <column label="Surface donnée" name="donated" width="116"/>
59 <column label="Dernière connexion" name="online" width="136"/> 58 <column label="Dernière connexion" name="online" width="136"/>
60 </name_list> 59 </name_list>
61 <button label="Inviter nouvelle personne..." name="member_invite" width="165"/> 60 <button label="Inviter un nouveau membre" name="member_invite" width="165"/>
62 <button label="Expulser du groupe" name="member_eject" /> 61 <button label="Expulser un membre" name="member_eject"/>
63 <text name="help_text"> 62 <text name="help_text">
64 Vous pouvez ajouter ou supprimer les rôles assignés aux membres. 63 Vous pouvez ajouter ou supprimer les rôles assignés aux membres.
65Pour sélectionner plusieurs membres, cliquez sur leurs noms en maintenant la touche Ctrl enfoncée. 64Pour sélectionner plusieurs membres, cliquez sur leurs noms en maintenant la touche Ctrl enfoncée.
66 </text> 65 </text>
67 </panel> 66 </panel>
68 <panel label="Rôles" name="roles_sub_tab" height="148"> 67 <panel height="148" label="Rôles" name="roles_sub_tab">
69 <line_editor bottom="127" name="search_text" /> 68 <line_editor bottom="127" name="search_text"/>
70 <button label="Rechercher" name="search_button" width="75"/> 69 <button label="Rechercher" name="search_button" width="75"/>
71 <button label="Afficher tout" name="show_all_button" left_delta="80"/> 70 <button label="Afficher tout" left_delta="80" name="show_all_button"/>
72 <scroll_list name="role_list" height="104" bottom_delta="-104"> 71 <scroll_list bottom_delta="-104" height="104" name="role_list">
73 <column label="Nom du rôle" name="name" /> 72 <column label="Nom du rôle" name="name"/>
74 <column label="Titre" name="title" /> 73 <column label="Titre" name="title"/>
75 <column label="Membres" name="members" /> 74 <column label="Membres" name="members"/>
76 </scroll_list> 75 </scroll_list>
77 <button label="Créer un rôle..." name="role_create" /> 76 <button label="Créer un rôle..." name="role_create"/>
78 <button label="Supprimer le rôle" name="role_delete" /> 77 <button label="Supprimer le rôle" name="role_delete"/>
79 <text name="help_text"> 78 <text name="help_text">
80 Chaque rôle a un titre et une liste des pouvoirs assignés aux membres. Chaque membre peut avoir un ou plusieurs rôles. Un groupe peut avoir jusqu&apos;à 10 rôles, y compris les rôles Tous et Propriétaires. 79 Chaque rôle possède un titre et des pouvoirs. Un membre peut avoir plusieurs rôles mais il ne peut y avoir que 10 rôles dans un groupe, Visiteur et Propriétaire inclus.
81 </text> 80 </text>
82 <string name="cant_delete_role"> 81 <string name="cant_delete_role">
83 Les rôles Tous et Propriétaires sont spéciaux et ne peuvent pas être supprimés. 82 Les rôles Tous et Propriétaires sont spéciaux et ne peuvent pas être supprimés.
84 </string> 83 </string>
85 </panel> 84 </panel>
86 <panel label="Pouvoirs" name="actions_sub_tab" height="148"> 85 <panel height="148" label="Pouvoirs" name="actions_sub_tab">
87 <line_editor bottom="127" name="search_text" /> 86 <line_editor bottom="127" name="search_text"/>
88 <button label="Rechercher" name="search_button" width="75"/> 87 <button label="Rechercher" name="search_button" width="75"/>
89 <button label="Afficher tout" name="show_all_button" left_delta="80"/> 88 <button label="Afficher tout" left_delta="80" name="show_all_button"/>
90 <scroll_list name="action_list" 89 <scroll_list bottom_delta="-120" height="118" name="action_list" tool_tip="Sélectionnez un pouvoir pour en afficher les détails.">
91 tool_tip="Sélectionnez un pouvoir pour en afficher les détails." height="118" bottom_delta="-120"> 90 <column label="" name="icon"/>
92 <column label="" name="icon" /> 91 <column label="" name="action"/>
93 <column label="" name="action" />
94 </scroll_list> 92 </scroll_list>
95 <text name="help_text"> 93 <text name="help_text">
96 Lorsqu&apos;un membre a des pouvoirs, il peut faire un certain nombre de choses dans le groupe. Il existe un grand nombre de pouvoirs. 94 Les pouvoirs déterminent les facultés de chaque membre dans le groupe.
97 </text> 95 </text>
98 </panel> 96 </panel>
99 </tab_container> 97 </tab_container>
@@ -105,13 +103,12 @@ Pour sélectionner plusieurs membres, cliquez sur leurs noms en maintenant la to
105 Pouvoirs attribués 103 Pouvoirs attribués
106 </text> 104 </text>
107 <scroll_list name="member_assigned_roles"> 105 <scroll_list name="member_assigned_roles">
108 <column label="" name="checkbox" /> 106 <column label="" name="checkbox"/>
109 <column label="" name="role" /> 107 <column label="" name="role"/>
110 </scroll_list> 108 </scroll_list>
111 <scroll_list name="member_allowed_actions" 109 <scroll_list name="member_allowed_actions" tool_tip="Pour avoir des détails sur chacun des pouvoirs attribués, allez à l&apos;onglet Pouvoirs.">
112 tool_tip="Pour avoir des détails sur chacun des pouvoirs attribués, allez à l&apos;onglet Pouvoirs."> 110 <column label="" name="icon"/>
113 <column label="" name="icon" /> 111 <column label="" name="action"/>
114 <column label="" name="action" />
115 </scroll_list> 112 </scroll_list>
116 </panel> 113 </panel>
117 <panel name="roles_footer"> 114 <panel name="roles_footer">
@@ -136,17 +133,14 @@ Pour sélectionner plusieurs membres, cliquez sur leurs noms en maintenant la to
136 <text name="static4"> 133 <text name="static4">
137 Membres assignés 134 Membres assignés
138 </text> 135 </text>
139 <text name="static5" 136 <text name="static5" tool_tip="Une liste des pouvoirs auquel le rôle sélectionné a accès.">
140 tool_tip="Une liste des pouvoirs auquel le rôle sélectionné a accès.">
141 Pouvoirs attribués 137 Pouvoirs attribués
142 </text> 138 </text>
143 <check_box label="Les membres sont &#10;visibles" name="role_visible_in_list" 139 <check_box label="Membres visibles" name="role_visible_in_list" tool_tip="Définit si les membres de ce rôle sont visibles à partir de l&apos;onglet Général aux personnes en dehors du groupe."/>
144 tool_tip="Définit si les membres de ce rôle sont visibles à partir de l&apos;onglet Général aux personnes en dehors du groupe." /> 140 <scroll_list name="role_allowed_actions" tool_tip="Pour avoir des détails sur chacun des pouvoirs attribués, allez à l&apos;onglet Pouvoirs.">
145 <scroll_list name="role_allowed_actions" 141 <column label="" name="icon"/>
146 tool_tip="Pour avoir des détails sur chacun des pouvoirs attribués, allez à l&apos;onglet Pouvoirs."> 142 <column label="" name="checkbox"/>
147 <column label="" name="icon" /> 143 <column label="" name="action"/>
148 <column label="" name="checkbox" />
149 <column label="" name="action" />
150 </scroll_list> 144 </scroll_list>
151 </panel> 145 </panel>
152 <panel name="actions_footer"> 146 <panel name="actions_footer">
@@ -154,13 +148,13 @@ Pour sélectionner plusieurs membres, cliquez sur leurs noms en maintenant la to
154 Description 148 Description
155 </text> 149 </text>
156 <text_editor name="action_description"> 150 <text_editor name="action_description">
157 Ce pouvoir permet d&apos; « expulser les membres de ce groupe ». Seul un propriétaire peut expulser un autre propriétaire. 151 Ce pouvoir permet d&apos;expulser des membres du groupe. Seul un propriétaire peut expulser un autre propriétaire.
158 </text_editor> 152 </text_editor>
159 <text name="static2"> 153 <text name="static2">
160 Rôles avec pouvoirs 154 Rôles avec ce pouvoir
161 </text> 155 </text>
162 <text name="static3"> 156 <text name="static3">
163 Membres avec pouvoirs 157 Membres avec ce pouvoir
164 </text> 158 </text>
165 </panel> 159 </panel>
166</panel> 160</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_group_voting.xml b/linden/indra/newview/skins/default/xui/fr/panel_group_voting.xml
index 4db861a..a19ba53 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_group_voting.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_group_voting.xml
@@ -1,17 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Propositions" name="voting_tab"> 2<panel label="Propositions" name="voting_tab">
3 <text name="help_text"> 3 <text name="help_text">
4 Les propositions de groupe permettent d&apos;en savoir plus sur les objectifs du groupe ou son avis sur un sujet donné. Si vous avez les pouvoirs requis, vous pouvez créer des propositions, voter et accéder à d&apos;anciennes propositions. 4 Les propositions de groupe permettent d&apos;en savoir plus sur les objectifs du groupe ou son avis sur un sujet donné. Si vous avez les pouvoirs requis, vous pouvez créer des propositions, voter et accéder à d&apos;anciennes propositions.
5 </text> 5 </text>
6 <button label="?" name="help_button" /> 6 <button label="?" name="help_button"/>
7 <text name="proposal_header"> 7 <text name="proposal_header">
8 Propositions du groupe actives 8 Propositions du groupe en cours
9 </text> 9 </text>
10 <text name="proposal_voting_lbl"> 10 <text name="proposal_voting_lbl">
11 Proposition Fin du vote Votée ? 11 Proposition Fin du vote Votée ?
12 </text> 12 </text>
13 <text name="proposals_header_view_txt"> 13 <text name="proposals_header_view_txt">
14 Propositions du groupe actives 14 Propositions en cours
15 </text> 15 </text>
16 <string name="proposals_header_view_inst"> 16 <string name="proposals_header_view_inst">
17 Double-cliquez sur la proposition pour laquelle vous aimeriez voter 17 Double-cliquez sur la proposition pour laquelle vous aimeriez voter
@@ -38,66 +38,59 @@ ou abstenez-vous en cliquant sur M&apos;abstenir.
38 La proposition que vous essayez de créer est vide. Veuillez saisir une description avant de créer la proposition. 38 La proposition que vous essayez de créer est vide. Veuillez saisir une description avant de créer la proposition.
39 </text> 39 </text>
40 <text name="proposal_instructions"> 40 <text name="proposal_instructions">
41 Double-cliquez sur la proposition sur laquelle vous voulez voter ou cliquez sur Créer une nouvelle proposition pour en créer une nouvelle. 41 Double-cliquez sur la proposition sur laquelle vous voulez voter ou cliquez
42sur Créer une nouvelle proposition pour en créer une nouvelle.
42 </text> 43 </text>
43 <text name="proposal_lbl"> 44 <text name="proposal_lbl">
44 Description de la proposition 45 Description de la proposition
45 </text> 46 </text>
46 <button label="Créer une proposition" label_selected="Créer une proposition" 47 <button label="Créer une proposition" label_selected="Créer une proposition" name="btn_proposal"/>
47 name="btn_proposal" /> 48 <button label="Afficher la proposition" label_selected="Afficher la proposition" name="btn_view_proposal_item"/>
48 <button label="Afficher la proposition" label_selected="Afficher la proposition" 49 <button label="Afficher la liste" label_selected="Afficher la liste" name="btn_view_proposal_list"/>
49 name="btn_view_proposal_item" />
50 <button label="Afficher la liste" label_selected="Afficher la liste"
51 name="btn_view_proposal_list" />
52 <text name="quorum_lbl"> 50 <text name="quorum_lbl">
53 Quorum : 51 Quorum :
54 </text> 52 </text>
55 <spinner name="quorum" 53 <spinner name="quorum" tool_tip="Nombre total de votants nécessaires pour que les résultats soient valides."/>
56 tool_tip="Nombre total de votants nécessaires pour que les résultats de l&apos;élection soient valides." />
57 <text name="quorum_text"> 54 <text name="quorum_text">
58 sur [MEMBERS] membres doivent voter. 55 sur [MEMBERS] membres doivent voter.
59 </text> 56 </text>
60 <text name="duration_lbl"> 57 <text name="duration_lbl">
61 Durée : 58 Durée :
62 </text> 59 </text>
63 <spinner name="duration" tool_tip="Durée de l&apos;élection (en nombre de jours)." /> 60 <spinner name="duration" tool_tip="Durée du vote (en nombre de jours)."/>
64 <text name="duration_text"> 61 <text name="duration_text">
65 jours 62 jours
66 </text> 63 </text>
67 <radio_group name="majority" left="296" 64 <radio_group left="296" name="majority" tool_tip="Majorité de tous les votes nécessaires pour remporter le vote.">
68 tool_tip="Majorité de tous les votes nécessaires pour remporter l&apos;élection.">
69 Majorité simple 65 Majorité simple
70 Majorité des 2/3 66 Majorité des 2/3
71 Unanimité 67 Unanimité
72 </radio_group> 68 </radio_group>
73 <text name="start_lbl"> 69 <text name="start_lbl">
74 Début du vote : 70 Début :
75 </text> 71 </text>
76 <text name="end_lbl"> 72 <text name="end_lbl">
77 Fin du vote : 73 Fin :
78 </text> 74 </text>
79 <button label="Soumettre la proposition" label_selected="Soumettre la proposition" 75 <button label="Soumettre" label_selected="Soumettre" left="170" name="btn_submit" width="100"/>
80 name="btn_submit" width="150" left="170" /> 76 <button label="Annuler" label_selected="Annuler" left_delta="158" name="btn_cancel"/>
81 <button label="Annuler" label_selected="Annuler" name="btn_cancel" left_delta="158"/> 77 <button font="SansSerifSmall" label="Oui" label_selected="Oui" left="205" name="btn_yes" width="60"/>
82 <button label="Oui" label_selected="Oui" name="btn_yes" width="70" left="183" font="SansSerifSmall" /> 78 <button font="SansSerifSmall" label="Non" label_selected="Non" left_delta="66" name="btn_no" width="60"/>
83 <button label="Non" label_selected="Non" name="btn_no" width="70" left_delta="77" font="SansSerifSmall"/> 79 <button font="SansSerifSmall" label="M&apos;abstenir" label_selected="M&apos;abstenir" left_delta="66" name="btn_abstain" width="70"/>
84 <button label="M&apos;abstenir" label_selected="M&apos;abstenir" name="btn_abstain" width="70" left_delta="77" font="SansSerifSmall"/> 80 <text left="7" name="txt">
85 <text name="txt" left="7"> 81 Historique des votes
86 Historique des votes du groupe 82 </text>
87 </text> 83 <text left="7" name="instructions" width="405">
88 <text name="instructions" left="7" width="405">
89 Double-cliquez sur un ancien vote ou sélectionnez-en un pour voir les résultats. 84 Double-cliquez sur un ancien vote ou sélectionnez-en un pour voir les résultats.
90 </text> 85 </text>
91 <text name="history_list_lbl"> 86 <text name="history_list_lbl">
92 Ancien vote Fin du vote 87 Ancien vote Fin du vote
93 </text> 88 </text>
94 <button label="Afficher la proposition" label_selected="Afficher la proposition" 89 <button label="Afficher la proposition" label_selected="Afficher la proposition" left="247" name="btn_view_history_item" width="160"/>
95 name="btn_view_history_item" width="160" left="247"/>
96 <text name="vote_text_lbl"> 90 <text name="vote_text_lbl">
97 Résultats du vote : 91 Résultats du vote :
98 </text> 92 </text>
99 <button label="Afficher la liste" label_selected="Afficher la liste" 93 <button label="Afficher la liste" label_selected="Afficher la liste" name="btn_view_history_list"/>
100 name="btn_view_history_list" />
101 <string name="proposals_submit_yes_txt"> 94 <string name="proposals_submit_yes_txt">
102 Soumission du Oui en cours... 95 Soumission du Oui en cours...
103 </string> 96 </string>
@@ -111,9 +104,9 @@ ou abstenez-vous en cliquant sur M&apos;abstenir.
111 Soumission de la nouvelle proposition en cours... 104 Soumission de la nouvelle proposition en cours...
112 </string> 105 </string>
113 <string name="vote_recorded"> 106 <string name="vote_recorded">
114 Votre vote a été reçu. 107 Votre vote a bien été reçu.
115 </string> 108 </string>
116 <string name="vote_previously_recorded"> 109 <string name="vote_previously_recorded">
117 Vous avez déjà voté. Vous ne pouvez voter qu&apos;une fois au cours d&apos;une élection. 110 Vous avez déjà voté. Vous ne pouvez voter qu&apos;une seule fois sur une proposition.
118 </string> 111 </string>
119</panel> 112</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_groups.xml b/linden/indra/newview/skins/default/xui/fr/panel_groups.xml
index 641cedd..9832065 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_groups.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_groups.xml
@@ -1,18 +1,16 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="groups"> 2<panel name="groups">
3 <scroll_list bottom="50" name="group list" /> 3 <scroll_list bottom="50" name="group list"/>
4 <text name="groupdesc" bottom="16" height="32" width="268"> 4 <text bottom="16" height="32" name="groupdesc" width="268">
5 Le groupe dans lequel vous êtes actif en ce moment 5 Le groupe actif est en gras.
6est en gras.
7 </text> 6 </text>
8 <text name="groupcount" bottom="3" > 7 <text bottom="3" name="groupcount">
9 Vous appartenez à [COUNT] groupes (sur [MAX] maximum). 8 Vous appartenez à [COUNT] groupes ([MAX] max).
10 </text> 9 </text>
11 <button label="IM/Appel" name="IM" 10 <button label="IM/Appel" name="IM" tool_tip="Ouvrir une session de messagerie instantanée"/>
12 tool_tip="Ouvrir une session de messagerie instantanée" /> 11 <button label="Infos" name="Info"/>
13 <button label="Infos" name="Info" /> 12 <button label="Activer" name="Activate"/>
14 <button label="Activer" name="Activate" /> 13 <button label="Quitter" name="Leave"/>
15 <button label="Quitter" name="Leave" /> 14 <button label="Créer..." name="Create"/>
16 <button label="Créer..." name="Create" /> 15 <button label="Rechercher..." name="Search..."/>
17 <button label="Rechercher..." name="Search..." />
18</panel> 16</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_login.xml b/linden/indra/newview/skins/default/xui/fr/panel_login.xml
index c155e13..1769778 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_login.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_login.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="panel_login"> 2<panel name="panel_login">
3 <string name="forgot_password_url"> 3 <string name="forgot_password_url">
4 http://secondlife.com/account/request.php 4 http://secondlife.com/account/request.php
@@ -17,7 +17,7 @@
17 </text> 17 </text>
18 <combo_box name="start_location_combo"> 18 <combo_box name="start_location_combo">
19 <combo_item name="MyHome"> 19 <combo_item name="MyHome">
20 Mon domicile 20 Domicile
21 </combo_item> 21 </combo_item>
22 <combo_item name="MyLastLocation"> 22 <combo_item name="MyLastLocation">
23 Dernier emplacement 23 Dernier emplacement
@@ -29,16 +29,14 @@
29 &lt;Nom de la région&gt; 29 &lt;Nom de la région&gt;
30 </combo_item> 30 </combo_item>
31 </combo_box> 31 </combo_box>
32 <check_box label="Enregistrer le mot de passe" name="remember_check" /> 32 <check_box label="Mémoriser" name="remember_check"/>
33 <text name="full_screen_text"> 33 <text name="full_screen_text">
34 Le plein écran sera activé après identification. 34 Le plein écran sera activé après identification.
35 </text> 35 </text>
36 <button label="Nouveau Compte..." label_selected="Nouveau Compte..." 36 <button label="Nouveau Compte..." label_selected="Nouveau Compte..." name="new_account_btn"/>
37 name="new_account_btn" /> 37 <button label="Me connecter" label_selected="Me connecter" name="connect_btn"/>
38 <button label="Me connecter" label_selected="Me connecter" name="connect_btn" /> 38 <button label="Préférences..." label_selected="Préférences..." name="preferences_btn"/>
39 <button label="Préférences..." label_selected="Préférences..." 39 <button label="Quitter" label_selected="Quitter" name="quit_btn"/>
40 name="preferences_btn" />
41 <button label="Quitter" label_selected="Quitter" name="quit_btn" />
42 <text name="version_text"> 40 <text name="version_text">
43 1.23.4 (5) 41 1.23.4 (5)
44 </text> 42 </text>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_master_volume.xml b/linden/indra/newview/skins/default/xui/fr/panel_master_volume.xml
index d8d7726..3cb8558 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_master_volume.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_master_volume.xml
@@ -1,6 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="master_volume"> 2<panel name="master_volume">
3 <button name="volume" 3 <button name="volume" tool_tip="Contrôle du volume principal, cliquez pour ouvrir les paramètres"/>
4 tool_tip="Contrôle du volume master, cliquez pour ouvrir les paramètres" /> 4 <volume_slider name="volume_slider" tool_tip="Réglez le volume à l&apos;aide de ce curseur."/>
5 <volume_slider name="volume_slider" tool_tip="Réglez le volume à l&apos;aide de ce curseur." />
6</panel> 5</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_media_controls.xml b/linden/indra/newview/skins/default/xui/fr/panel_media_controls.xml
index 7b601b4..172aa65 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_media_controls.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_media_controls.xml
@@ -1,15 +1,16 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="media_controls"> 2<panel name="media_controls">
3 <icon name="music_icon" tool_tip="Jouer/pauser le flux musical" /> 3 <icon name="music_icon" tool_tip="Jouez le flux musical"/>
4 <button name="music_play" tool_tip="Jouer/pauser le flux musical" /> 4 <button name="music_play" tool_tip="Jouez le flux musical"/>
5 <button name="music_stop" tool_tip="Arrêter le flux musical" /> 5 <button name="music_pause" tool_tip="Mettez le flux musical en pause"/>
6 <icon name="media_icon" tool_tip="Jouer/pauser le flux musical" /> 6 <button name="music_stop" tool_tip="Arrêtez le flux musical"/>
7 <button name="media_play" tool_tip="Jouer/pauser le flux musical" /> 7 <icon name="media_icon" tool_tip="Jouez le flux musical"/>
8 <button name="media_pause" tool_tip="Pauser le flux de média" /> 8 <button name="media_play" tool_tip="Jouez le flux musical"/>
9 <button name="media_stop" tool_tip="Arrêter le flux de média" /> 9 <button name="media_pause" tool_tip="Mettez le flux de média en pause"/>
10 <volume_slider name="volume_slider" tool_tip="Volume master" /> 10 <button name="media_stop" tool_tip="Arrêtez le flux de média"/>
11 <button name="mute_master" tool_tip="Master muet" /> 11 <volume_slider name="volume_slider" tool_tip="Volume principal"/>
12 <button name="expand" tool_tip="Ajuster les niveaux de volume individuels" /> 12 <button name="mute_master" tool_tip="Coupez le volume principal"/>
13 <button name="expand" tool_tip="Ajustez les niveaux de volume individuels"/>
13 <string name="play_label"> 14 <string name="play_label">
14 Jouer 15 Jouer
15 </string> 16 </string>
@@ -17,7 +18,7 @@
17 Stop 18 Stop
18 </string> 19 </string>
19 <string name="pause_label"> 20 <string name="pause_label">
20 Pauser 21 Mettre en pause
21 </string> 22 </string>
22 <string name="default_tooltip_label"> 23 <string name="default_tooltip_label">
23 Aucun média spécifié 24 Aucun média spécifié
@@ -26,12 +27,12 @@
26 (URL cachée par le propriétaire de la parcelle) 27 (URL cachée par le propriétaire de la parcelle)
27 </string> 28 </string>
28 <string name="media_icon_tooltip_web"> 29 <string name="media_icon_tooltip_web">
29 Il y a du contenu web à cet endroit. Cliquez sur Jouer pour afficher le contenu web. 30 Cet endroit propose du contenu Web. Cliquez sur Jouer pour afficher le contenu web.
30 </string> 31 </string>
31 <string name="media_icon_tooltip_movie"> 32 <string name="media_icon_tooltip_movie">
32 Il y a du contenu vidéo à cet endroit. Cliquez sur Jouer pour lire la vidéo. 33 Cet endroit propose du contenu vidéo. Cliquez sur Jouer pour lire la vidéo.
33 </string> 34 </string>
34 <string name="media_play_tooltip"> 35 <string name="media_play_tooltip">
35 Afficher le contenu web qui se trouve ici. 36 Affichez le contenu web.
36 </string> 37 </string>
37</panel> 38</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_media_remote.xml b/linden/indra/newview/skins/default/xui/fr/panel_media_remote.xml
index 20174d9..d2ee33a 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_media_remote.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_media_remote.xml
@@ -1,10 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="music_remote"> 2<panel name="music_remote">
3 <text type="string" length="1" name="text"> 3 <text length="1" name="text" type="string">
4 Vidéo 4 Vidéo
5 </text> 5 </text>
6 <button label="" label_selected="" name="stop_btn" tool_tip="Arrêter le media" /> 6 <button label="" label_selected="" name="stop_btn" tool_tip="Arrêter le média"/>
7 <button label="" label_selected="" name="play_btn" tool_tip="Lire le flux" /> 7 <button label="" label_selected="" name="play_btn" tool_tip="Lire le flux"/>
8 <button label="" label_selected="" name="pause_btn" tool_tip="Suspendre le flux" /> 8 <button label="" label_selected="" name="pause_btn" tool_tip="Suspendre le flux"/>
9 <volume_slider name="volume_slider" tool_tip="Réglez le volume à l&apos;aide du curseur" /> 9 <volume_slider name="volume_slider" tool_tip="Réglez le volume à l&apos;aide du curseur"/>
10</panel> 10</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_media_remote_expanded.xml b/linden/indra/newview/skins/default/xui/fr/panel_media_remote_expanded.xml
index 17f5825..5a28237 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_media_remote_expanded.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_media_remote_expanded.xml
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="media_remote"> 2<panel name="media_remote">
3 <panel label="Audio et Vidéo" name="Volume Panel" /> 3 <panel label="Audio et Vidéo" name="Volume Panel"/>
4 <string name="play_label"> 4 <string name="play_label">
5 Jouer 5 Jouer
6 </string> 6 </string>
@@ -17,7 +17,7 @@
17 (URL cachée par le propriétaire de la parcelle) 17 (URL cachée par le propriétaire de la parcelle)
18 </string> 18 </string>
19 <string name="media_icon_tooltip_web"> 19 <string name="media_icon_tooltip_web">
20 Il y a du contenu web à cet endroit. Cliquez sur Jouer pour afficher le contenu web. 20 Il y a du contenu web à cet endroit. Cliquez sur Jouer pour afficher le contenu web.
21 </string> 21 </string>
22 <string name="media_icon_tooltip_movie"> 22 <string name="media_icon_tooltip_movie">
23 Il y a du contenu vidéo à cet endroit. Cliquez sur Jouer pour lire la vidéo. 23 Il y a du contenu vidéo à cet endroit. Cliquez sur Jouer pour lire la vidéo.
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_overlaybar.xml b/linden/indra/newview/skins/default/xui/fr/panel_overlaybar.xml
index 61ebfb2..66bfe95 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_overlaybar.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_overlaybar.xml
@@ -1,20 +1,19 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="overlay"> 2<panel name="overlay">
3 <layout_stack name="overlay_layout_panel"> 3 <layout_stack name="overlay_layout_panel">
4 <layout_panel name="main_panel"> 4 <layout_panel name="main_panel" width="410" min_width="410">
5 <layout_stack name="chatbar_and_buttons"> 5 <layout_stack name="chatbar_and_buttons" right="410">
6 <layout_panel name="state_buttons"> 6 <layout_panel name="padding" width="410" />
7 <button label="IM reçus" label_selected="IM reçus" name="IM Received" 7 <layout_panel name="state_buttons" width="410">
8 tool_tip="Vous avez reçu un message instantané. Cliquez pour afficher les IM." /> 8 <button label="IM reçus" label_selected="IM reçus" name="IM Received" tool_tip="Vous avez reçu des messages instantanés. Cliquez pour afficher les IM."/>
9 <button label="Disponible" 9 <button label="Disponible" label_selected="Disponible" name="Set Not Busy" tool_tip="Le chat et les IM ne s&apos;affichent pas. Cliquez ici pour ne plus être en mode occupé(e)."/>
10 label_selected="Disponible" name="Set Not Busy" 10 <button label="Vue subjective" label_selected="Vue subjective" name="Mouselook" tool_tip="Utilisez la souris pour diriger votre vue. Si vous avez un pistolet, vous pouvez tirer en cliquant."/>
11 tool_tip="Le chat et les IM ne s&apos;affichent pas. Cliquez ici pour ne pas apparaître occupé(e)." /> 11 <button label="Me lever" label_selected="Me lever" name="Stand Up" tool_tip="Cliquez ici pour vous lever."/>
12 <button label="Vue subjective" label_selected="Vue subjective" name="Mouselook"
13 tool_tip="Utilisez la souris pour diriger votre vue. Si vous avez un pistolet, vous pouvez tirer en cliquant." />
14 <button label="Me lever" label_selected="Me lever" name="Stand Up"
15 tool_tip="Cliquez ici pour vous lever." />
16 </layout_panel> 12 </layout_panel>
13 <layout_panel name="chat_bar" />
17 </layout_stack> 14 </layout_stack>
18 </layout_panel> 15 </layout_panel>
16 <layout_panel name="media_remote_container" width="220" min_width="220" />
17 <layout_panel name="voice_remote_container" width="140" min_width="138" />
19 </layout_stack> 18 </layout_stack>
20</panel> 19</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_place.xml b/linden/indra/newview/skins/default/xui/fr/panel_place.xml
index af3378a..4669c71 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_place.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_place.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="Place" title="Emplacement"> 2<panel name="Place" title="Emplacement">
3 <text name="name_label"> 3 <text name="name_label">
4 Nom : 4 Nom :
@@ -9,14 +9,14 @@
9 <text name="information_label"> 9 <text name="information_label">
10 Informations : 10 Informations :
11 </text> 11 </text>
12 <text left="103" name="info_editor" width="338" /> 12 <text left="103" name="info_editor" width="338"/>
13 <text name="location_label"> 13 <text name="location_label">
14 Emplacement : 14 Emplacement :
15 </text> 15 </text>
16 <text left="103" name="location_editor" width="338" /> 16 <text left="103" name="location_editor" width="338"/>
17 <button label="Téléporter" name="teleport_btn" /> 17 <button label="Téléporter" name="teleport_btn"/>
18 <button label="Voir sur la carte" name="map_btn" /> 18 <button label="Voir sur la carte" name="map_btn"/>
19 <button label="Enchères..." name="auction_btn" /> 19 <button label="Enchères..." name="auction_btn"/>
20 <string name="traffic_text"> 20 <string name="traffic_text">
21 Trafic : [TRAFFIC] 21 Trafic : [TRAFFIC]
22 </string> 22 </string>
@@ -24,18 +24,18 @@
24 Surface : [AREA] m² 24 Surface : [AREA] m²
25 </string> 25 </string>
26 <string name="forsale_text"> 26 <string name="forsale_text">
27 En vente pour [PRICE] $L 27 En vente pour [PRICE] L$
28 </string> 28 </string>
29 <string name="auction_text"> 29 <string name="auction_text">
30 Code de l&apos;enchère [ID]. 30 Code de l&apos;enchère [ID].
31 </string> 31 </string>
32 <string name="server_update_text"> 32 <string name="server_update_text">
33 Les informations sur l&apos;emplacement ne sont pas disponibles sans mise à jour du serveur. 33 Les informations sur le lieu ne sont pas disponibles sans mise à jour du serveur.
34 </string> 34 </string>
35 <string name="server_error_text"> 35 <string name="server_error_text">
36 Aucune information sur cet emplacement n&apos;est disponible actuellement, veuillez réessayer ultérieurement. 36 Aucune information sur ce lieu n&apos;est disponible actuellement, veuillez réessayer ultérieurement.
37 </string> 37 </string>
38 <string name="server_forbidden_text"> 38 <string name="server_forbidden_text">
39 Les informations sur cet emplacement ne sont pas disponibles car l&apos;accès y est restreint. Veuillez vérifier vos permissions avec le propriétaire de la parcelle. 39 Les informations sur ce lieu ne sont pas disponibles car l&apos;accès y est restreint. Veuillez vérifier vos permissions avec le propriétaire de la parcelle.
40 </string> 40 </string>
41</panel> 41</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_place_small.xml b/linden/indra/newview/skins/default/xui/fr/panel_place_small.xml
index af3378a..aa89576 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_place_small.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_place_small.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="Place" title="Emplacement"> 2<panel name="Place" title="Lieu">
3 <text name="name_label"> 3 <text name="name_label">
4 Nom : 4 Nom :
5 </text> 5 </text>
@@ -9,14 +9,14 @@
9 <text name="information_label"> 9 <text name="information_label">
10 Informations : 10 Informations :
11 </text> 11 </text>
12 <text left="103" name="info_editor" width="338" /> 12 <text left="103" name="info_editor" width="338"/>
13 <text name="location_label"> 13 <text name="location_label">
14 Emplacement : 14 Lieu :
15 </text> 15 </text>
16 <text left="103" name="location_editor" width="338" /> 16 <text left="103" name="location_editor" width="338"/>
17 <button label="Téléporter" name="teleport_btn" /> 17 <button label="Téléporter" name="teleport_btn"/>
18 <button label="Voir sur la carte" name="map_btn" /> 18 <button label="Voir sur la carte" name="map_btn"/>
19 <button label="Enchères..." name="auction_btn" /> 19 <button label="Enchères..." name="auction_btn"/>
20 <string name="traffic_text"> 20 <string name="traffic_text">
21 Trafic : [TRAFFIC] 21 Trafic : [TRAFFIC]
22 </string> 22 </string>
@@ -24,18 +24,18 @@
24 Surface : [AREA] m² 24 Surface : [AREA] m²
25 </string> 25 </string>
26 <string name="forsale_text"> 26 <string name="forsale_text">
27 En vente pour [PRICE] $L 27 En vente pour [PRICE] L$
28 </string> 28 </string>
29 <string name="auction_text"> 29 <string name="auction_text">
30 Code de l&apos;enchère [ID]. 30 Code de l&apos;enchère [ID].
31 </string> 31 </string>
32 <string name="server_update_text"> 32 <string name="server_update_text">
33 Les informations sur l&apos;emplacement ne sont pas disponibles sans mise à jour du serveur. 33 Les informations sur le lieu ne sont pas disponibles sans mise à jour du serveur.
34 </string> 34 </string>
35 <string name="server_error_text"> 35 <string name="server_error_text">
36 Aucune information sur cet emplacement n&apos;est disponible actuellement, veuillez réessayer ultérieurement. 36 Aucune information sur ce lieu n&apos;est disponible actuellement, veuillez réessayer ultérieurement.
37 </string> 37 </string>
38 <string name="server_forbidden_text"> 38 <string name="server_forbidden_text">
39 Les informations sur cet emplacement ne sont pas disponibles car l&apos;accès y est restreint. Veuillez vérifier vos permissions avec le propriétaire de la parcelle. 39 Les informations sur ce lieu ne sont pas disponibles car l&apos;accès y est restreint. Veuillez vérifier vos permissions avec le propriétaire de la parcelle.
40 </string> 40 </string>
41</panel> 41</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_preferences_audio.xml b/linden/indra/newview/skins/default/xui/fr/panel_preferences_audio.xml
index dcfb518..925f404 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_preferences_audio.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_preferences_audio.xml
@@ -1,29 +1,26 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Audio et Vidéo" name="Media panel"> 2<panel label="Audio et Vidéo" name="Media panel">
3 <text type="string" length="1" name="muting_text"> 3 <text length="1" name="muting_text" type="string">
4 Volume : 4 Volume :
5 </text> 5 </text>
6 <panel left="159" name="Volume Panel" width="249" /> 6 <panel left="159" name="Volume Panel" width="249"/>
7 <check_box label="Désactiver le son" name="disable audio" /> 7 <check_box label="Couper le son" name="disable audio"/>
8 <text name="streaming_prefs_text" width="145" bottom="-195" > 8 <text bottom="-195" name="streaming_prefs_text" width="145">
9 Préférences de flux continu : 9 Média :
10 </text> 10 </text>
11 <text name="audio_prefs_text"> 11 <text name="audio_prefs_text">
12 Préférences audio : 12 Audio :
13 </text> 13 </text>
14 <panel label="Volume" name="Volume Panel" /> 14 <panel label="Volume" name="Volume Panel"/>
15 <check_box label="Désactiver le son lorsque la fenêtre est minimisée" 15 <check_box label="Couper le son lorsque la fenêtre est minimisée" left="159" name="mute_when_minimized"/>
16 name="mute_when_minimized" left="159" /> 16 <check_box bottom="-200" height="32" label="Jouer la musique disponible&#10;
17 <check_box 17(consommateur en bande passante)" left="159" name="streaming_music"/>
18 label="Jouer des flux musicaux quand cela est possible&#10;(gourmand en bande passante)" 18 <check_box bottom_delta="-32" height="32" label="Jouer le média disponible&#10;
19 name="streaming_music" left="159" bottom="-200" height="32" /> 19(consommateur en bande passante)" left="159" name="streaming_video"/>
20 <check_box 20 <check_box bottom_delta="-32" label="Lire automatiquement le média" left="179" name="auto_streaming_video"/>
21 label="Jouer des flux médias quand cela est possible&#10;(gourmand en bande passante)" 21 <slider label="Effet Doppler" label_width="115" left="165" name="Doppler Effect"/>
22 name="streaming_video" left="159" bottom_delta="-32" height="32" /> 22 <slider label="Facteur d&apos;éloignement" label_width="115" left="165" name="Distance Factor"/>
23 <check_box label="Lire automatiquement le média" name="auto_streaming_video" left="179" bottom_delta="-32" /> 23 <slider label="Facteur d&apos;atténuation" label_width="115" left="165" name="Rolloff Factor"/>
24 <slider label="Effet Doppler" name="Doppler Effect" left="165" label_width="115" /> 24 <spinner label="Alerte L$" left="165" name="L$ Change Threshold"/>
25 <slider label="Facteur d&apos;éloignement" name="Distance Factor" left="165" label_width="115" /> 25 <spinner label="Alerte santé" left="165" name="Health Change Threshold"/>
26 <slider label="Facteur d&apos;atténuation" name="Rolloff Factor" left="165" label_width="115" />
27 <spinner label="Alerte dépenses" name="L$ Change Threshold" left="165" />
28 <spinner label="Alerte santé" name="Health Change Threshold" left="165" />
29</panel> 26</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
index ceaa458..d29ec67 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
@@ -1,66 +1,59 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Chat écrit" name="chat"> 2<panel label="Chat écrit" name="chat">
3 <text type="string" length="1" name="text_box"> 3 <text length="1" name="text_box" type="string">
4 Taille de la police 4 Taille de la police
5du chat : 5du chat :
6 </text> 6 </text>
7 <radio_group name="chat font size"> 7 <radio_group name="chat_font_size">
8 <radio_item type="string" length="1" name="radio"> 8 <radio_item length="1" name="radio" type="string">
9 Petite 9 Petite
10 </radio_item> 10 </radio_item>
11 <radio_item type="string" length="1" name="radio2"> 11 <radio_item length="1" name="radio2" type="string">
12 Moyenne 12 Moyenne
13 </radio_item> 13 </radio_item>
14 <radio_item type="string" length="1" name="radio3"> 14 <radio_item length="1" name="radio3" type="string">
15 Grande 15 Grande
16 </radio_item> 16 </radio_item>
17 </radio_group> 17 </radio_group>
18 <text type="string" length="1" name="text_box2"> 18 <text length="1" name="text_box2" type="string">
19 Couleur du chat : 19 Couleur du chat :
20 </text> 20 </text>
21 <color_swatch label="Vous" name="user" /> 21 <color_swatch label="Vous" name="user"/>
22 <color_swatch label="Les autres" name="agent" width="60" /> 22 <color_swatch label="Avatars" name="agent" width="60"/>
23 <color_swatch label="IM" left_delta="64" name="im" /> 23 <color_swatch label="IM" left_delta="64" name="im"/>
24 <color_swatch label="Système" name="system" /> 24 <color_swatch label="Système" name="system"/>
25 <color_swatch label="Erreurs" name="script_error" /> 25 <color_swatch label="Erreurs" name="script_error"/>
26 <color_swatch label="Objets" name="objects" /> 26 <color_swatch label="Objets" name="objects"/>
27 <color_swatch label="Propriétaire" name="owner" width="60" /> 27 <color_swatch label="Propriétaire" name="owner" width="60"/>
28 <color_swatch label="Bulle" left_delta="64" name="background" /> 28 <color_swatch label="Bulle" left_delta="64" name="background"/>
29 <color_swatch label="URL" name="links" /> 29 <color_swatch label="URL" name="links"/>
30 <text type="string" length="1" name="text_box3"> 30 <text length="1" name="text_box3" type="string">
31 Console du chat : 31 Console du chat :
32 </text> 32 </text>
33 <spinner label="Effacer le texte après" label_width="112" name="fade_chat_time" 33 <spinner label="Effacer le texte après" label_width="112" name="fade_chat_time" width="162"/>
34 width="162" /> 34 <text left="313" length="1" name="text_box4" type="string">
35 <text type="string" length="1" left="313" name="text_box4">
36 s 35 s
37 </text> 36 </text>
38 <spinner left="335" name="max_chat_count" /> 37 <spinner left="335" name="max_chat_count"/>
39 <text type="string" length="1" left="397" name="text_box5" width="74"> 38 <text left="397" length="1" name="text_box5" type="string" width="74">
40 (nb de lignes) 39 lignes
41 </text> 40 </text>
42 <slider label="Opacité" name="console_opacity" /> 41 <slider label="Opacité" name="console_opacity"/>
43 <text type="string" length="1" name="text_box6"> 42 <text length="1" name="text_box6" type="string">
44 Options du chat : 43 Options du chat :
45 </text> 44 </text>
46 <check_box label="Utiliser la largeur du plein écran (redémarrage requis)" 45 <check_box label="Utiliser la largeur de l&apos;écran (redémarrage requis)" name="chat_full_width_check"/>
47 name="chat_full_width_check" /> 46 <check_box label="Fermer le chat après avoir appuyé sur Entrée" name="close_chat_on_return_check"/>
48 <check_box label="Fermer le chat après avoir appuyé sur Entrée" 47 <check_box label="Faire bouger l&apos;avatar avec les touches de direction" name="arrow_keys_move_avatar_check"/>
49 name="close_chat_on_return_check" /> 48 <check_box label="Afficher les heures dans le chat" name="show_timestamps_check"/>
50 <check_box label="Faire bouger l&apos;avatar avec les touches de direction" 49 <check_box label="Jouer l&apos;animation clavier quand vous écrivez" name="play_typing_animation"/>
51 name="arrow_keys_move_avatar_check" /> 50 <text length="1" name="text_box7" type="string">
52 <check_box label="Afficher les marques temporelles dans le chat local"
53 name="show_timestamps_check" />
54 <check_box label="Montrer lorsque vous écrivez pendant la discussion"
55 name="play_typing_animation" />
56 <text type="string" length="1" name="text_box7">
57 Bulles de chat  : 51 Bulles de chat  :
58 </text> 52 </text>
59 <check_box label="Afficher les bulles de chat" name="bubble_text_chat" /> 53 <check_box label="Afficher les bulles de chat" name="bubble_text_chat"/>
60 <slider label="Opacité" name="bubble_chat_opacity" /> 54 <slider label="Opacité" name="bubble_chat_opacity"/>
61 <text type="string" length="1" name="text_box8"> 55 <text length="1" name="text_box8" type="string">
62 Erreurs de script : 56 Erreurs de script :
63 </text> 57 </text>
64 <check_box label="Afficher les erreurs et avertissements comme chat ordinaire" 58 <check_box label="Afficher les erreurs dans le chat" name="script_errors_as_chat"/>
65 name="script_errors_as_chat" />
66</panel> 59</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
index cbcc7b0..b9d075b 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
@@ -1,15 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Général" name="general_panel"> 2<panel label="Général" name="general_panel">
3 <combo_box name="location_combobox" width="166"> 3 <radio_group name="default_start_location" width="166">
4 <combo_item name="MyHome"> 4 <radio_item name="MyHome" tool_tip="Par défaut, choisir mon domicile comme lieu de départ.">
5 Mon domicile 5 Domicile
6 </combo_item> 6 </radio_item>
7 <combo_item name="MyLastLocation"> 7 <radio_item name="MyLastLocation" tool_tip="Par défaut, choisir mon dernier emplacement comme lieu de départ.">
8 Mon dernier emplacement 8 Dernier emplacement
9 </combo_item> 9 </radio_item>
10 </combo_box> 10 </radio_group>
11 <check_box label="Afficher le lieu de départ sur l&apos;écran de connexion" 11 <check_box label="Afficher le lieu de départ sur l&apos;écran de connexion" name="show_location_checkbox"/>
12 name="show_location_checkbox" />
13 <combo_box name="fade_out_combobox" width="166"> 12 <combo_box name="fade_out_combobox" width="166">
14 <combo_item name="Never"> 13 <combo_item name="Never">
15 Jamais 14 Jamais
@@ -21,79 +20,56 @@
21 Toujours 20 Toujours
22 </combo_item> 21 </combo_item>
23 </combo_box> 22 </combo_box>
24 <check_box label="Masquer mon nom sur mon écran" name="show_my_name_checkbox" /> 23 <check_box label="Nom des avatars en petit" name="small_avatar_names_checkbox"/>
24 <check_box label="Masquer mon nom sur mon écran" name="show_my_name_checkbox"/>
25 <text name="group_titles_textbox"> 25 <text name="group_titles_textbox">
26 Titres de groupe : 26 Titres de groupe :
27 </text> 27 </text>
28 <check_box label="Masquer tous les titres de groupe" 28 <check_box label="Masquer tous les titres de groupe" name="show_all_title_checkbox"/>
29 name="show_all_title_checkbox" /> 29 <check_box label="Masquer mon titre de groupe" name="show_my_title_checkbox"/>
30 <check_box label="Masquer mon titre de groupe" name="show_my_title_checkbox" /> 30 <color_swatch label="" name="effect_color_swatch" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs"/>
31 <check_box label="Nom de l&apos;avatar en petit" name="small_avatar_names_checkbox" />
32 <check_box label="M&apos;avertir lorsque mes amis se connectent"
33 name="friends_online_notify_checkbox" />
34 <text name="UI Size:"> 31 <text name="UI Size:">
35 Taille de l&apos;interface : 32 Taille de l&apos;interface :
36 </text> 33 </text>
37 <check_box label="Utiliser une échelle indépendante de la résolution" 34 <slider name="ui_scale_slider"/>
38 name="ui_auto_scale" /> 35 <check_box label="Utiliser une échelle indépendante de la résolution" name="ui_auto_scale"/>
39 <check_box label="Faire pivoter la mini-carte" name="rotate_mini_map_checkbox" /> 36 <spinner label="Absent(e) après :" name="afk_timeout_spinner"/>
40 <check_box label="M&apos;avertir lorsque je dépense ou reçois des dollars Linden ($L)" 37 <check_box label="Pivoter la mini-carte" name="rotate_mini_map_checkbox"/>
41 name="notify_money_change_checkbox" /> 38 <check_box label="M&apos;avertir lorsque je dépense ou reçois des L$" name="notify_money_change_checkbox"/>
42 <check_box label="Détecter carte graphique au prochain démarrage" 39 <check_box label="Utiliser le sélecteur de couleur par défaut" name="use_system_color_picker_checkbox" tool_tip="Utiliser le sélecteur de couleur par défaut au lieu de celui intégré à Second Life."/>
43 name="probe_hardware_checkbox" 40 <check_box label="Afficher la boîte de recherche en haut à droite de l&apos;écran" name="show_search_panel" tool_tip="Affiche la boîte de recherche incorporée."/>
44 tool_tip="Second Life configure automatiquement certains réglages de la carte graphique d&apos;après votre configuration matérielle. Nous vous recommandons d&apos;effectuer la détection à chaque nouvelle installation de matériel." /> 41 <text length="1" name="start_location_textbox" type="string">
45 <check_box label="Utiliser le sélecteur de couleur par défaut"
46 name="use_system_color_picker_checkbox"
47 tool_tip="Utiliser le sélecteur de couleur par défaut au lieu de celui intégré à Second Life." />
48 <check_box label="Afficher la boîte de recherche en haut à droite de l&apos;écran"
49 name="show_search_panel"
50 tool_tip="Affiche la boîte de recherche incorporée." />
51 <text type="string" length="1" name="start_location_textbox">
52 Lieu de départ : 42 Lieu de départ :
53 </text> 43 </text>
54 <text type="string" length="1" name="show_names_textbox"> 44 <text length="1" name="show_names_textbox" type="string">
55 Afficher les noms : 45 Afficher les noms :
56 </text> 46 </text>
57 <text type="string" length="1" name="effects_color_textbox"> 47 <text bottom="-174" length="1" name="effects_color_textbox" type="string">
58 Couleur de mes effets : 48 Couleur du faisceau &#10;de sélection :
59 </text> 49 </text>
60 <text type="string" length="1" name="seconds_textbox"> 50 <text length="1" name="seconds_textbox" type="string">
61 secondes 51 secondes
62 </text> 52 </text>
63 <text type="string" length="1" name="crash_report_textbox"> 53 <text length="1" name="crash_report_textbox" type="string">
64 Rapports de crash : 54 Rapports de crash :
65 </text> 55 </text>
66 <text type="string" length="1" name="language_textbox"> 56 <text length="1" name="language_textbox" type="string">
67 Langue : 57 Langue :
68 </text> 58 </text>
69 <text type="string" length="1" left_delta="313" name="language_textbox2"> 59 <text left_delta="313" length="1" name="language_textbox2" type="string">
70 (nécessite un redémarrage) 60 (redémarrage requis)
71 </text> 61 </text>
72 <radio_group name="fade_out_radio"> 62 <string name="region_name_prompt">
73 <radio_item type="string" length="1" name="Never">
74 Jamais
75 </radio_item>
76 <radio_item type="string" length="1" name="Temporarily">
77 Temporairement
78 </radio_item>
79 <radio_item type="string" length="1" name="Always">
80 Toujours
81 </radio_item>
82 </radio_group>
83 <color_swatch label="" name="effect_color_swatch"
84 tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" />
85 <spinner label="Absent(e) après :" name="afk_timeout_spinner" />
86 <text name="region_name_prompt">
87 &lt;Saisissez le nom de la région&gt; 63 &lt;Saisissez le nom de la région&gt;
88 </text> 64 </string>
89 <combo_box name="crash_behavior_combobox" width="166"> 65 <combo_box name="crash_behavior_combobox" width="166">
90 <combo_item type="string" length="1" name="Askbeforesending"> 66 <combo_item length="1" name="Askbeforesending" type="string">
91 Demander avant d&apos;envoyer 67 Demander avant d&apos;envoyer
92 </combo_item> 68 </combo_item>
93 <combo_item type="string" length="1" name="Alwayssend"> 69 <combo_item length="1" name="Alwayssend" type="string">
94 Toujours envoyer 70 Toujours envoyer
95 </combo_item> 71 </combo_item>
96 <combo_item type="string" length="1" name="Neversend"> 72 <combo_item length="1" name="Neversend" type="string">
97 Ne jamais envoyer 73 Ne jamais envoyer
98 </combo_item> 74 </combo_item>
99 </combo_box> 75 </combo_box>
@@ -101,31 +77,39 @@
101 <combo_item name="System Default Language"> 77 <combo_item name="System Default Language">
102 Choix par défaut 78 Choix par défaut
103 </combo_item> 79 </combo_item>
104 <combo_item type="string" length="1" name="English"> 80 <combo_item length="1" name="English" type="string">
105 Anglais 81 English (Anglais)
106 </combo_item> 82 </combo_item>
107 <combo_item type="string" length="1" name="Deutsch(German)"> 83 <combo_item length="1" name="Danish" type="string">
84 Dansk (Danois) - Bêta
85 </combo_item>
86 <combo_item length="1" name="Deutsch(German)" type="string">
108 Deutsch (Allemand) - Bêta 87 Deutsch (Allemand) - Bêta
109 </combo_item> 88 </combo_item>
89 <combo_item name="Spanish">
90 Español (Espagnol) - Bêta
91 </combo_item>
110 <combo_item name="French"> 92 <combo_item name="French">
111 Français - Bêta 93 Français - Bêta
112 </combo_item> 94 </combo_item>
113 <combo_item type="string" length="1" name="(Japanese)"> 95 <combo_item name="Hungarian">
114 日本語 (Japonais) - Bêta 96 Magyar (Hongrois) - Bêta
115 </combo_item>
116 <combo_item type="string" length="1" name="(Korean)">
117 한국어 (Coréen) - Bêta
118 </combo_item> 97 </combo_item>
119 <combo_item type="string" length="1" name="Chinese"> 98 <combo_item name="Polish">
120 汉语/漢語 (Chinois) - Bêta 99 Polski (Polonais) - Bêta
121 </combo_item> 100 </combo_item>
122 <combo_item name="Portugese"> 101 <combo_item name="Portugese">
123 Portugués (Portugais) - Bêta 102 Portugués (Portugais) - Bêta
124 </combo_item> 103 </combo_item>
125 <combo_item name="Spanish"> 104 <combo_item length="1" name="Chinese" type="string">
126 Español (Espagnol) - Bêta 105 中文 (简体) (Chinois) - Bêta
106 </combo_item>
107 <combo_item length="1" name="(Japanese)" type="string">
108 日本語 (Japonais) - Bêta
109 </combo_item>
110 <combo_item length="1" name="(Korean)" type="string">
111 한국어 (Coréen) - Bêta
127 </combo_item> 112 </combo_item>
128 </combo_box> 113 </combo_box>
129 <check_box label="Partager la langue avec les objets" name="language_is_public" 114 <check_box label="Partager la langue avec les objets" name="language_is_public" tool_tip="Cette option permet de faire connaître aux objets du Monde votre langue favorite."/>
130 tool_tip="Cette option permet de faire connaître aux objets du Monde votre langue favorite." />
131</panel> 115</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml b/linden/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
index b9415f6..27825b7 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
@@ -1,8 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Graphiques" name="Display panel"> 2<panel label="Graphiques" name="Display panel">
3 <button label="?" name="GraphicsPreferencesHelpButton" /> 3 <button label="?" name="GraphicsPreferencesHelpButton"/>
4 <text_editor bottom="-56" height="40" left="25" name="FullScreenInfo" width="460"> 4 <text_editor bottom="-56" height="40" left="25" name="FullScreenInfo" width="460">
5 Si cette option n&apos;est pas cochée, le visualisateur prend tout l&apos;écran lorsque vous êtes connecté(e). 5 Décochez cette option pour passer en mode plein écran.
6 </text_editor> 6 </text_editor>
7 <text name="WindowSizeLabel"> 7 <text name="WindowSizeLabel">
8 Taille de la fenêtre : 8 Taille de la fenêtre :
@@ -31,42 +31,42 @@
31 Rapport hauteur/largeur : 31 Rapport hauteur/largeur :
32 </text> 32 </text>
33 <combo_box name="aspect_ratio" tool_tip="largeur/hauteur"> 33 <combo_box name="aspect_ratio" tool_tip="largeur/hauteur">
34 <combo_item type="string" length="1" name="4:3(StandardCRT)"> 34 <combo_item length="1" name="4:3(StandardCRT)" type="string">
35 4:3 (Standard CRT) 35 4:3 (Standard CRT)
36 </combo_item> 36 </combo_item>
37 <combo_item type="string" length="1" name="5:4(1280x1024LCD)"> 37 <combo_item length="1" name="5:4(1280x1024LCD)" type="string">
38 5:4 (1280 x 1024 LCD) 38 5:4 (1280 x 1024 LCD)
39 </combo_item> 39 </combo_item>
40 <combo_item name="8:5(Widescreen)"> 40 <combo_item name="8:5(Widescreen)">
41 8 : 5 (écran large) 41 8:5 (écran large)
42 </combo_item> 42 </combo_item>
43 <combo_item type="string" length="1" name="16:9(Widescreen)"> 43 <combo_item length="1" name="16:9(Widescreen)" type="string">
44 16:9 (plein écran) 44 16:9 (plein écran)
45 </combo_item> 45 </combo_item>
46 </combo_box> 46 </combo_box>
47 <text type="string" length="1" name="text"> 47 <text length="1" name="text" type="string">
48 Résolution d&apos;affichage : 48 Résolution d&apos;affichage :
49 </text> 49 </text>
50 <text type="string" length="1" name="Fullscreen Aspect Ratio:"> 50 <text length="1" name="Fullscreen Aspect Ratio:" type="string">
51 Format de plein écran : 51 Format de plein écran :
52 </text> 52 </text>
53 <text type="string" length="1" name="(width / height)"> 53 <text length="1" name="(width / height)" type="string">
54 (largeur / hauteur) 54 (largeur / hauteur)
55 </text> 55 </text>
56 <text type="string" length="1" name="UI Size:"> 56 <text length="1" name="UI Size:" type="string">
57 Taille de l&apos;IU : 57 Taille de l&apos;IU :
58 </text> 58 </text>
59 <text type="string" length="1" name="(meters, lower is faster)"> 59 <text length="1" name="(meters, lower is faster)" type="string">
60 (mètres, moins = plus rapide) 60 (mètres, moins = plus rapide)
61 </text> 61 </text>
62 <text type="string" length="1" name="text2"> 62 <text length="1" name="text2" type="string">
63 Options d&apos;affichage : 63 Options d&apos;affichage :
64 </text> 64 </text>
65 <check_box label="Lancer Second Life dans une fenêtre" name="windowed mode" /> 65 <check_box label="Lancer Second Life en mode fenêtré" name="windowed mode"/>
66 <check_box label="Auto-détection du ratio" left="350" name="aspect_auto_detect" /> 66 <check_box label="Auto-détection du ratio" left="350" name="aspect_auto_detect"/>
67 <check_box label="Utiliser échelle de résolution indépendante" name="ui_auto_scale" /> 67 <check_box label="Utiliser échelle de résolution indépendante" name="ui_auto_scale"/>
68 <check_box label="Montrer l&apos;avatar en mode Mouselook" name="avfp" /> 68 <check_box label="Montrer l&apos;avatar en vue subjective" name="avfp"/>
69 <spinner label="Draw Distance :" name="draw_distance" /> 69 <spinner label="Distance d&apos;affichage :" name="draw_distance"/>
70 <text name="HigherText"> 70 <text name="HigherText">
71 Qualité et 71 Qualité et
72 </text> 72 </text>
@@ -91,28 +91,27 @@
91 <text bottom="-86" left="325" name="HigherText2"> 91 <text bottom="-86" left="325" name="HigherText2">
92 Plus élevée 92 Plus élevée
93 </text> 93 </text>
94 <text name="QualityText2" visible="false" /> 94 <text name="QualityText2" visible="false"/>
95 <check_box label="Personnaliser" left="395" name="CustomSettings" /> 95 <check_box label="Personnaliser" left="395" name="CustomSettings"/>
96 <text name="ShadersText"> 96 <text name="ShadersText">
97 Shaders : 97 Effets :
98 </text> 98 </text>
99 <check_box label="Placage de relief et brillance" name="BumpShiny" /> 99 <check_box label="Placage de relief et brillance" name="BumpShiny"/>
100 <check_box label="Shaders de base" name="BasicShaders" 100 <check_box label="Effets de base" name="BasicShaders" tool_tip="Désactiver cette option peut empêcher certains drivers de cartes graphiques de planter."/>
101 tool_tip="Désactiver cette option peut empêcher certains drivers de cartes graphiques de planter." /> 101 <check_box label="Effets atmosphériques" name="WindLightUseAtmosShaders"/>
102 <check_box label="Shaders atmosphériques" name="WindLightUseAtmosShaders" /> 102 <check_box label="Reflets de l&apos;eau" name="Reflections"/>
103 <check_box label="Reflets de l&apos;eau" name="Reflections" />
104 <text name="ReflectionDetailText"> 103 <text name="ReflectionDetailText">
105 Détails des reflets : 104 Objets reflétés :
106 </text> 105 </text>
107 <radio_group name="ReflectionDetailRadio"> 106 <radio_group name="ReflectionDetailRadio">
108 <radio_item name="0"> 107 <radio_item name="0">
109 Terrain et Arbres 108 Terrain et Arbres
110 </radio_item> 109 </radio_item>
111 <radio_item name="1"> 110 <radio_item name="1">
112 Tous les objets statiques 111 Objets statiques
113 </radio_item> 112 </radio_item>
114 <radio_item name="2"> 113 <radio_item name="2">
115 Tous les objets et avatars 114 Objets et avatars
116 </radio_item> 115 </radio_item>
117 <radio_item name="3"> 116 <radio_item name="3">
118 Tout 117 Tout
@@ -121,27 +120,27 @@
121 <text name="AvatarRenderingText"> 120 <text name="AvatarRenderingText">
122 Rendu de l&apos;avatar : 121 Rendu de l&apos;avatar :
123 </text> 122 </text>
124 <check_box label="Avatars éloignés en 2D" name="AvatarImpostors" /> 123 <check_box label="Avatars éloignés en 2D" name="AvatarImpostors"/>
125 <check_box label="Rendu matériel des skins" name="AvatarVertexProgram" /> 124 <check_box label="Accélération du rendu" name="AvatarVertexProgram"/>
126 <check_box label="Habit de l&apos;avatar" name="AvatarCloth" /> 125 <check_box label="Mouvement des habits" name="AvatarCloth"/>
127 <text name="DrawDistanceMeterText1"> 126 <text name="DrawDistanceMeterText1">
128 m 127 m
129 </text> 128 </text>
130 <text name="DrawDistanceMeterText2"> 129 <text name="DrawDistanceMeterText2">
131 m 130 m
132 </text> 131 </text>
133 <slider label="Distance d&apos;affichage :" name="DrawDistance" /> 132 <slider label="Limite d&apos;affichage :" name="DrawDistance"/>
134 <slider label="Nombre de particules max. :" label_width="143" name="MaxParticleCount" /> 133 <slider label="Nombre de particules max. :" label_width="143" name="MaxParticleCount"/>
135 <slider label="Qualité post-traitement :" name="RenderPostProcess" /> 134 <slider label="Qualité post-traitement :" name="RenderPostProcess"/>
136 <text name="MeshDetailText"> 135 <text name="MeshDetailText">
137 Détails du maillage : 136 Détails des rendus :
138 </text> 137 </text>
139 <slider label=" Objets :" name="ObjectMeshDetail" /> 138 <slider label=" Objets :" name="ObjectMeshDetail"/>
140 <slider label=" Flexiprims :" name="FlexibleMeshDetail" /> 139 <slider label=" Flexiprims :" name="FlexibleMeshDetail"/>
141 <slider label=" Arbres :" name="TreeMeshDetail" /> 140 <slider label=" Arbres :" name="TreeMeshDetail"/>
142 <slider label=" Avatars :" name="AvatarMeshDetail" /> 141 <slider label=" Avatars :" name="AvatarMeshDetail"/>
143 <slider label=" Terrain :" name="TerrainMeshDetail" /> 142 <slider label=" Relief :" name="TerrainMeshDetail"/>
144 <slider label=" Ciel :" name="SkyMeshDetail" /> 143 <slider label=" Ciel :" name="SkyMeshDetail"/>
145 <text name="PostProcessText"> 144 <text name="PostProcessText">
146 Faible 145 Faible
147 </text> 146 </text>
@@ -164,7 +163,7 @@
164 Faible 163 Faible
165 </text> 164 </text>
166 <text name="LightingDetailText"> 165 <text name="LightingDetailText">
167 Détails de la lumière : 166 Sources lumineuses :
168 </text> 167 </text>
169 <radio_group name="LightingDetailRadio"> 168 <radio_group name="LightingDetailRadio">
170 <radio_item name="SunMoon"> 169 <radio_item name="SunMoon">
@@ -175,7 +174,7 @@
175 </radio_item> 174 </radio_item>
176 </radio_group> 175 </radio_group>
177 <text left="380" name="TerrainDetailText"> 176 <text left="380" name="TerrainDetailText">
178 Détails du terrain : 177 Rendu du terrain :
179 </text> 178 </text>
180 <radio_group name="TerrainDetailRadio"> 179 <radio_group name="TerrainDetailRadio">
181 <radio_item name="0"> 180 <radio_item name="0">
@@ -185,9 +184,8 @@
185 Élevé 184 Élevé
186 </radio_item> 185 </radio_item>
187 </radio_group> 186 </radio_group>
188 <button label="Paramètres recommandés" name="Defaults" /> 187 <button label="Paramètres recommandés" name="Defaults"/>
189 <button label="Configuration du matériel" label_selected="Configuration du matériel" 188 <button label="Configuration du matériel" label_selected="Configuration du matériel" name="GraphicsHardwareButton"/>
190 name="GraphicsHardwareButton" />
191 <text name="resolution_format"> 189 <text name="resolution_format">
192 [RES_X] x [RES_Y] 190 [RES_X] x [RES_Y]
193 </text> 191 </text>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/fr/panel_preferences_im.xml
index 58b70b4..b73f004 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_preferences_im.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_preferences_im.xml
@@ -1,38 +1,32 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Communication" name="im"> 2<panel label="Communication" name="im">
3 <text type="string" length="1" name="text_box"> 3 <text length="1" name="text_box" type="string">
4 Mon statut en ligne : 4 Mon statut en ligne :
5 </text> 5 </text>
6 <check_box label="Seuls mes amis et groupes voient quand je suis connecté(e)" 6 <check_box label="Seuls mes amis et groupes voient quand je suis connecté(e)" name="online_visibility"/>
7 name="online_visibility" />
8 <text name="log_in_to_change"> 7 <text name="log_in_to_change">
9 se connecter pour changer 8 se connecter pour changer
10 </text> 9 </text>
11 <check_box label="Envoyer l&apos;IM à une adresse e-mail ([EMAIL])" 10 <check_box label="Envoyer les IM à mon adresse e-mail ([EMAIL])" name="send_im_to_email"/>
12 name="send_im_to_email" /> 11 <check_box label="Afficher les IM dans le chat" name="include_im_in_chat_history"/>
13 <check_box label="Inclure les IM dans le chat local" name="include_im_in_chat_history" /> 12 <check_box label="Afficher l&apos;heure dans les IM" name="show_timestamps_check"/>
14 <check_box label="Afficher les marques temporelles dans les IM" 13 <check_box label="Me prévenir quand des amis se connectent" name="friends_online_notify_checkbox"/>
15 name="show_timestamps_check" />
16 <check_box label="Me prévenir quand des amis se connectent"
17 name="friends_online_notify_checkbox" />
18 <text name="text_box3"> 14 <text name="text_box3">
19 Réponse mode occupé : 15 Réponse si occupé(e) :
20 </text> 16 </text>
21 <text name="text_box4"> 17 <text name="text_box4">
22 Options de connexion : 18 Enregistrements :
23 </text> 19 </text>
24 <check_box label="Enregistrer un journal des IM sur mon ordinateur" 20 <check_box label="Enregistrer les IM sur mon ordinateur" name="log_instant_messages"/>
25 name="log_instant_messages" /> 21 <check_box label="Inclure les heures" name="log_instant_messages_timestamp"/>
26 <check_box label="Inclure les marques temporelles" name="log_instant_messages_timestamp" /> 22 <check_box label="Enregistrer le chat local sur mon ordinateur" name="log_chat"/>
27 <check_box label="Enregistrer un journal du chat local sur mon ordinateur" name="log_chat" /> 23 <check_box label="Inclure la fin de la dernière conversation IM" name="log_show_history"/>
28 <check_box label="Inclure la fin de la dernière conversation IM" name="log_show_history" /> 24 <check_box label="Inclure les heures" name="log_chat_timestamp"/>
29 <check_box label="Inclure les marques temporelles" name="log_chat_timestamp" /> 25 <check_box label="Inclure les IM reçus" name="log_chat_IM"/>
30 <check_box label="Inclure les IM reçus" name="log_chat_IM" /> 26 <check_box label="Inclure la date avec les heures" name="log_date_timestamp"/>
31 <check_box label="Inclure la date avec les marques temporelles" name="log_date_timestamp" /> 27 <button label="Changer d&apos;emplacement" label_selected="Changer d&apos;emplacement" name="log_path_button" width="150"/>
32 <button label="Changer d&apos;emplacement" label_selected="Changer d&apos;emplacement" 28 <line_editor left="308" name="log_path_string" right="-20"/>
33 name="log_path_button" width="150" /> 29 <text length="1" name="text_box2" type="string">
34 <line_editor left="308" name="log_path_string" right="-20" /> 30 IM :
35 <text type="string" length="1" name="text_box2">
36 Options IM :
37 </text> 31 </text>
38</panel> 32</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/fr/panel_preferences_input.xml
index 5351f55..2d82bb1 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_preferences_input.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_preferences_input.xml
@@ -1,25 +1,24 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Entrée et Caméra" name="Input panel"> 2<panel label="Contrôle et Caméra" name="Input panel">
3 <text type="string" length="1" name=" Mouselook Options:"> 3 <text length="1" name=" Mouselook Options:" type="string">
4 Vue subjective : 4 Vue subjective :
5 </text> 5 </text>
6 <text type="string" length="1" name=" Mouse Sensitivity:"> 6 <text length="1" name=" Mouse Sensitivity:" type="string">
7 Sensibilité de la souris : 7 Sensibilité de la souris :
8 </text> 8 </text>
9 <text type="string" length="1" name=" Auto Fly Options:"> 9 <text length="1" name=" Auto Fly Options:" type="string">
10 Vol automatique : 10 Vol automatique :
11 </text> 11 </text>
12 <text type="string" length="1" name=" Camera Options:"> 12 <text length="1" name=" Camera Options:" type="string">
13 Options de la caméra : 13 Options de la caméra :
14 </text> 14 </text>
15 <text type="string" length="1" name="Camera Springiness:"> 15 <text length="1" name="Camera Springiness:" type="string">
16 Réactivité : 16 Réactivité :
17 </text> 17 </text>
18 <check_box label="Inverser la souris" name="invert mouse" /> 18 <check_box label="Inverser la souris" name="invert_mouse"/>
19 <check_box label="Voler/atterrir en appuyant sur la flèche du haut/bas" 19 <check_box label="Voler/atterrir en appuyant sur la flèche du haut/bas" name="automatic_fly"/>
20 name="automatic fly" />
21 <text name="Camera Follow Distance:"> 20 <text name="Camera Follow Distance:">
22 Distance de la caméra : 21 Distance :
23 </text> 22 </text>
24 <text name="Camera Transition Time:"> 23 <text name="Camera Transition Time:">
25 Temps de transition : 24 Temps de transition :
@@ -27,18 +26,14 @@
27 <text name="Camera Smoothing:"> 26 <text name="Camera Smoothing:">
28 Effet de lissage : 27 Effet de lissage :
29 </text> 28 </text>
30 <check_box label="Ajustement automatique de la caméra en mode Édition" 29 <check_box label="Ajustement automatique en mode Édition" name="edit_camera_movement" tool_tip="Positionner automatiquement la caméra lors de l&apos;entrée ou de la sortie du mode Édition"/>
31 name="edit camera movement" 30 <check_box label="Ajustement automatique en mode Édition d&apos;apparence" name="appearance_camera_movement" tool_tip="Positionner automatiquement la caméra en mode Édition"/>
32 tool_tip="Positionner automatiquement la caméra lors de l&apos;entrée ou de la sortie du mode Édition" />
33 <check_box label="Ajustement automatique de la caméra en mode Apparence"
34 name="appearance camera movement"
35 tool_tip="Positionner automatiquement la caméra en mode Édition" />
36 <text name="text2"> 31 <text name="text2">
37 Affichage de l&apos;avatar : 32 Affichage de l&apos;avatar :
38 </text> 33 </text>
39 <check_box label="Montrer l&apos;avatar dans la vue subjective" name="avfp" /> 34 <check_box label="Montrer l&apos;avatar en vue subjective" name="first_person_avatar_visible"/>
40 <text name="text5"> 35 <text name="text5">
41 Options du joystick : 36 Options du joystick :
42 </text> 37 </text>
43 <button label="Configuration du joystick" name="joystic_setup_button" width="175" /> 38 <button label="Configuration du joystick" name="joystick_setup_button" width="175"/>
44</panel> 39</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_preferences_network.xml b/linden/indra/newview/skins/default/xui/fr/panel_preferences_network.xml
index 5e7bc2f..a6ec0fc 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_preferences_network.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_preferences_network.xml
@@ -1,24 +1,23 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Réseau" name="network"> 2<panel label="Réseau" name="network">
3 <text type="string" length="1" name="text_box"> 3 <text length="1" name="text_box" type="string">
4 Bande passante maximum : 4 Bande passante maximale :
5 </text> 5 </text>
6 <text type="string" length="1" name="text_box2"> 6 <text length="1" name="text_box2" type="string">
7 kbps (kilobits par seconde) 7 kbps (kilobits par seconde)
8 </text> 8 </text>
9 <text name="cache_size_label_l" width="210"> 9 <text name="cache_size_label_l" width="210">
10 Taille de la mémoire cache du disque : 10 Taille de la mémoire :
11 </text> 11 </text>
12 <text type="string" length="1" name="text_box5"> 12 <text length="1" name="text_box5" type="string">
13 Mo 13 Mo
14 </text> 14 </text>
15 <button label="Vider la mémoire cache" label_selected="Vider le cache" 15 <button label="Vider la mémoire cache" label_selected="Vider le cache" name="clear_cache" width="150"/>
16 name="clear_cache" width="150"/>
17 <text name="cache_location_label"> 16 <text name="cache_location_label">
18 Emplacement du cache : 17 Emplacement du cache :
19 </text> 18 </text>
20 <button label="Définir" label_selected="Définir" name="set_cache" /> 19 <button label="Modifier" label_selected="Modifier" name="set_cache"/>
21 <button label="Redéfinir" label_selected="Définir" name="reset_cache" /> 20 <button label="Réinitialiser" label_selected="Réinitialiser" name="reset_cache"/>
22 <check_box label="Port de connexion personnalisé" name="connection_port_enabled" /> 21 <check_box label="Port de connexion personnalisé" name="connection_port_enabled"/>
23 <spinner label="Numéro de port :" name="connection_port" label_width="95" width="170"/> 22 <spinner label="Numéro de port :" label_width="95" name="connection_port" width="170"/>
24</panel> 23</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_preferences_popups.xml b/linden/indra/newview/skins/default/xui/fr/panel_preferences_popups.xml
index cf4b0da..0eff381 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_preferences_popups.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_preferences_popups.xml
@@ -1,29 +1,21 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Pop-ups" name="popups" title="Pop-ups"> 2<panel label="Pop-ups" name="popups" title="Pop-ups">
3 <text type="string" length="1" name="text_box"> 3 <text length="1" name="text_box" type="string">
4 Ne pas afficher les pop-ups : 4 Ne pas afficher les pop-ups :
5 </text> 5 </text>
6 <text name="dont_show_label"> 6 <text name="dont_show_label">
7 Ne pas afficher ces pop-ups : 7 Ne pas afficher ces pop-ups :
8 </text> 8 </text>
9 <button label="Activer ce pop-up" label_selected="Autoriser cette pop-up" 9 <button label="Activer ce pop-up" label_selected="Autoriser ce pop-up" name="enable_popup"/>
10 name="enable_popup" />
11 <text name="show_label"> 10 <text name="show_label">
12 Afficher ces pop-ups : 11 Afficher ces pop-ups :
13 </text> 12 </text>
14 <button width="185" label="Désactiver tous ces pop-ups..." name="skip_dialogs_btn" 13 <button label="Désactiver tous les pop-ups" name="skip_dialogs_btn" tool_tip="Désactiver tous les pop-ups et les notifications envoyées lors d&apos;un premier usage." width="185"/>
15 tool_tip="Désactiver tous les pop-ups facultatifs et les notifications envoyées lors d&apos;un premier usage." /> 14 <text length="1" name="text_box2" type="string">
16 <text type="string" length="1" name="text_box2">
17 Offres de notes, textures et repères : 15 Offres de notes, textures et repères :
18 </text> 16 </text>
19 <button width="185" label="Activer tous les pop-ups..." 17 <button label="Activer tous les pop-ups" label_selected="Réinitialiser les dialogues &apos;Afficher la prochaine fois&apos;..." name="reset_dialogs_btn" tool_tip="Activer tous les pop-ups et les notifications envoyées lors d&apos;un premier usage." width="185"/>
20 label_selected="Réinitialiser les dialogues &apos;Afficher la prochaine fois&apos;..." 18 <check_box label="Accepter automatiquement" name="accept_new_inventory"/>
21 name="reset_dialogs_btn" 19 <check_box label="Afficher après avoir accepté" name="show_new_inventory"/>
22 tool_tip="Activer tous les pop-ups facultatifs et les notifications envoyées lors d&apos;un premier usage." /> 20 <check_box label="Ouvrir l&apos;inventaire et sélectionner les objets reçus" name="show_in_inventory"/>
23 <check_box label="Accepter automatiquement" name="accept_new_inventory" />
24 <check_box label="Afficher automatiquement après avoir accepté"
25 name="show_new_inventory" />
26 <check_box
27 label="Afficher automatiquement les objets récemment acceptés dans l&apos;inventaire"
28 name="show_in_inventory" />
29</panel> 21</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_preferences_voice.xml b/linden/indra/newview/skins/default/xui/fr/panel_preferences_voice.xml
index 2f3855c..7a9876a 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_preferences_voice.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_preferences_voice.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Chat vocal" name="chat"> 2<panel label="Chat vocal" name="chat">
3 <text_editor name="voice_unavailable"> 3 <text_editor name="voice_unavailable">
4 Le chat vocal n&apos;est pas disponible 4 Le chat vocal n&apos;est pas disponible
5 </text_editor> 5 </text_editor>
6 <check_box label="Activer le chat vocal" name="enable_voice_check" /> 6 <check_box label="Activer la voix" name="enable_voice_check"/>
7 <radio_group name="ear_location"> 7 <radio_group name="ear_location">
8 <radio_item name="0"> 8 <radio_item name="0">
9 Écouter depuis la position de la caméra. 9 Écouter depuis la position de la caméra.
@@ -16,22 +16,20 @@
16 Mode Appuyer pour parler 16 Mode Appuyer pour parler
17 </text> 17 </text>
18 <text_editor name="voice_chat_description" width="465"> 18 <text_editor name="voice_chat_description" width="465">
19 En mode Appuyer pour parler, vous contrôlez le moment où votre voix est transmise. Lorsque vous êtes en mode bascule, appuyez et relâchez le bouton Appuyer pour parler pour activer ou désactiver votre micro. Lorsque vous n&apos;êtes pas en mode bascule, le micro n&apos;est activé que lorsque vous appuyez sur le déclencheur. 19 Avec ce mode, vous contrôlez quand vous parlez en appuyant sur le bouton Parler de l&apos;interface. Vous pouvez définir une touche de contrôle supplémentaire en cochant l&apos;option ci-dessous. Pour laisser votre micro constamment ouvert, verrouillez le petit cadenas de l&apos;interface en cliquant dessus.
20 </text_editor> 20 </text_editor>
21 <check_box label="Utiliser la fonction Appuyer pour parler en mode bascule" 21 <check_box label="Attribuer une touche de contrôle" name="push_to_talk_toggle_check"/>
22 name="push_to_talk_toggle_check" />
23 <text name="push_to_talk_label"> 22 <text name="push_to_talk_label">
24 Déclencheur de la fonction Appuyer pour parler : 23 Touche de contrôle :
25 </text> 24 </text>
26 <button label="Choisir la touche" name="set_voice_hotkey_button" /> 25 <button label="Choisir la touche" name="set_voice_hotkey_button"/>
27 <button label="Molette de la souris" name="set_voice_middlemouse_button" /> 26 <button label="Molette de la souris" name="set_voice_middlemouse_button"/>
28 <text name="privacy_heading"> 27 <text name="privacy_heading">
29 Options de confidentialité 28 Options de confidentialité
30 </text> 29 </text>
31 <check_box label="N&apos;accepter que les appels de mes amis" 30 <check_box label="N&apos;accepter que les appels de mes amis" name="voice_call_friends_only_check"/>
32 name="voice_call_friends_only_check" /> 31 <text_editor name="device_settings_text" height="48" bottom_delta="-45">
33 <text_editor name="device_settings_text"> 32 Remarque : si vous cliquez sur Paramètres du matériel, vous serez temporairement déconnecté du Chat vocal. Tous les changements que vous faites seront immédiatement appliqués.
34 Remarque : si vous cliquez sur Paramètres du matériel, vous serez temporairement deconnecté du chat vocal.
35 </text_editor> 33 </text_editor>
36 <button label="Paramètres du matériel" name="device_settings_btn" /> 34 <button label="Paramètres du matériel" name="device_settings_btn"/>
37</panel> 35</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_preferences_web.xml b/linden/indra/newview/skins/default/xui/fr/panel_preferences_web.xml
index 45b60ea..47c401e 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_preferences_web.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_preferences_web.xml
@@ -1,31 +1,28 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Web" name="web"> 2<panel label="Web" name="web">
3 <radio_group name="use_external_browser"> 3 <radio_group name="use_external_browser">
4 <radio_item name="external" 4 <radio_item name="external" tool_tip="Utilisez le navigateur web du système pour l&apos;aide, les liens web etc. Déconseillé en mode plein écran.">
5 tool_tip="Utilisez le navigateur web du système pour l&apos;aide, les liens web etc. Déconseillé en mode plein écran.">
6 Utiliser un navigateur web externe (Firefox, Safari, Internet Explorer) 5 Utiliser un navigateur web externe (Firefox, Safari, Internet Explorer)
7 </radio_item> 6 </radio_item>
8 <radio_item name="internal" 7 <radio_item name="internal" tool_tip="Utilisez le navigateur web intégré pour l&apos;aide, les liens etc. Ce navigateur s&apos;ouvre dans une nouvelle fenêtre à l&apos;intérieur de Second Life.">
9 tool_tip="Utilisez le navigateur web intégré pour l&apos;aide, les liens etc. Ce navigateur s&apos;ouvre dans une nouvelle fenêtre à l&apos;intérieur de Second Life.">
10 Utiliser le navigateur web intégré 8 Utiliser le navigateur web intégré
11 </radio_item> 9 </radio_item>
12 </radio_group> 10 </radio_group>
13 <text name="cache_size_label_l"> 11 <text name="cache_size_label_l">
14 Cache du navigateur : 12 Cache du navigateur :
15 </text> 13 </text>
16 <button label="Vider" name="clear_cache" /> 14 <button label="Vider" name="clear_cache"/>
17 <text name="cookie_label"> 15 <text name="cookie_label">
18 Cookies : 16 Cookies :
19 </text> 17 </text>
20 <check_box label="Accepter les cookies d&apos;autres sites" name="cookies_enabled" /> 18 <check_box label="Accepter les cookies" name="cookies_enabled"/>
21 <text name="proxy_label"> 19 <text name="proxy_label">
22 Web proxy : 20 Proxy web :
23 </text> 21 </text>
24 <check_box label="Activer le Web proxy" name="web_proxy_enabled" /> 22 <check_box label="Activer le proxy web" name="web_proxy_enabled"/>
25 <text name="proxy_text_label"> 23 <text name="proxy_text_label">
26 Adresse : 24 Adresse :
27 </text> 25 </text>
28 <line_editor name="web_proxy_editor" 26 <line_editor left="237" name="web_proxy_editor" tool_tip="Le nom ou adresse IP du proxy que vous souhaitez utiliser"/>
29 tool_tip="Le nom ou adresse IP du proxy que vous souhaitez utiliser" left="237" /> 27 <spinner label="Numéro de port :" label_width="95" name="web_proxy_port" width="170"/>
30 <spinner label="Numéro de port :" name="web_proxy_port" label_width="95" width="170"/>
31</panel> 28</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_region_covenant.xml b/linden/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
index 6ab8cee..557e882 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
@@ -1,15 +1,16 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="Règlement" name="Covenant"> 2<panel label="Règlement" name="Covenant">
3 <text name="covenant_help_text"> 3 <text name="covenant_help_text" bottom="-25">
4 Les changements apportés au règlement apparaîtront sur toutes les parcelles du domaine. 4 Les changements apportés au règlement apparaîtront sur toutes les
5parcelles du domaine.
5 </text> 6 </text>
6 <text name="region_name_lbl"> 7 <text name="region_name_lbl" bottom_delta="-31">
7 Région : 8 Région :
8 </text> 9 </text>
9 <text name="region_name_text"> 10 <text name="region_name_text">
10 (inconnue) 11 (inconnue)
11 </text> 12 </text>
12 <text name="estate_name_lbl"> 13 <text name="estate_name_lbl" bottom_delta="-19">
13 Domaine : 14 Domaine :
14 </text> 15 </text>
15 <text name="estate_name_text"> 16 <text name="estate_name_text">
@@ -20,7 +21,7 @@
20 </text> 21 </text>
21 <button label="?" name="covenant_help" /> 22 <button label="?" name="covenant_help" />
22 <button label="Redéfinir" name="reset_covenant" /> 23 <button label="Redéfinir" name="reset_covenant" />
23 <text name="estate_owner_lbl"> 24 <text name="estate_owner_lbl" bottom_delta="-19">
24 Propriétaire : 25 Propriétaire :
25 </text> 26 </text>
26 <text name="estate_owner_text"> 27 <text name="estate_owner_text">
@@ -33,7 +34,7 @@
33 Le terrain acheté dans cette région peut être fusionné/divisé ou pas. 34 Le terrain acheté dans cette région peut être fusionné/divisé ou pas.
34 </text> 35 </text>
35 <text_editor name="covenant_editor"> 36 <text_editor name="covenant_editor">
36 Chargement en cours... 37 Chargement...
37 </text_editor> 38 </text_editor>
38 <text name="can_resell"> 39 <text name="can_resell">
39 Le terrain acheté dans cette région peut être revendu. 40 Le terrain acheté dans cette région peut être revendu.
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_region_debug.xml b/linden/indra/newview/skins/default/xui/fr/panel_region_debug.xml
index 08b675e..92f44fa 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_region_debug.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_region_debug.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Débugger" name="Debug"> 2<panel label="Débugger" name="Debug">
3 <text name="region_text_lbl"> 3 <text name="region_text_lbl">
4 Région : 4 Région :
@@ -6,46 +6,35 @@
6 <text name="region_text"> 6 <text name="region_text">
7 (inconnue) 7 (inconnue)
8 </text> 8 </text>
9 <check_box label="Désactiver les scripts" name="disable_scripts_check" 9 <check_box label="Désactiver les scripts" name="disable_scripts_check" tool_tip="Désactiver tous les scripts dans cette région"/>
10 tool_tip="Désactiver tous les scripts dans cette région" /> 10 <button label="?" name="disable_scripts_help"/>
11 <button label="?" name="disable_scripts_help" /> 11 <check_box label="Désactiver les collisions" name="disable_collisions_check" tool_tip="Désactiver les collisions entre non-avatars dans cette région"/>
12 <check_box label="Désactiver les collisions" name="disable_collisions_check" 12 <button label="?" name="disable_collisions_help"/>
13 tool_tip="Désactiver les collisions entre non-avatars dans cette région" /> 13 <check_box label="Désactiver les propriétés &#10;physiques" name="disable_physics_check" tool_tip="Désactiver toutes les propriétés physiques dans cette région"/>
14 <button label="?" name="disable_collisions_help" /> 14 <button label="?" name="disable_physics_help"/>
15 <check_box label="Désactiver les propriétés physiques" name="disable_physics_check" 15 <button label="Appliquer" name="apply_btn" bottom_delta="-38"/>
16 tool_tip="Désactiver toutes les propriétés physiques dans cette région" /> 16 <text name="objret_text_lbl" bottom_delta="-42">
17 <button label="?" name="disable_physics_help" /> 17 Renvoi de l&apos;objet
18 <button label="Appliquer" name="apply_btn" /> 18 </text>
19 <text name="resident_text_lbl">
20 Résident :
21 </text>
19 <line_editor name="target_avatar_name"> 22 <line_editor name="target_avatar_name">
20 (aucun) 23 (aucun)
21 </line_editor> 24 </line_editor>
22 <button label="Choisir..." name="choose_avatar_btn" /> 25 <button label="Choisir..." name="choose_avatar_btn"/>
23 <button 26 <text name="options_text_lbl">
24 label="Renvoyer les objets scriptés de l&apos;avatar vers une propriété tierce" 27 Options :
25 name="return_scripted_other_land_btn" /> 28 </text>
26 <button label="Renvoyer TOUS les objets scriptés de l&apos;avatar" 29 <check_box label="Ne renvoyer que les objets avec des scripts" name="return_scripts" tool_tip="Ne renvoyer que les objets avec des scripts."/>
27 name="return_scripted_all_btn" /> 30 <check_box label="Ne renvoyer que les objets sur le terrain de quelqu&apos;un d&apos;autre" name="return_other_land" tool_tip="Ne renvoyer que les objets se trouvant sur le terrain de quelqu&apos;un d&apos;autre"/>
28 <check_box label="Ne renvoyer que les objets avec des scripts" name="return_scripts" 31 <check_box label="Renvoyer les objets dans toutes les régions de ce domaine" name="return_estate_wide" tool_tip="Renvoyer les objets dans toutes les régions qui constituent ce domaine"/>
29 tool_tip="Ne renvoyer que les objets avec des scripts." /> 32 <button label="Renvoyer" name="return_btn"/>
30 <check_box 33 <button label="Afficher les objets souvent responsables de collision..." name="top_colliders_btn" tool_tip="Liste des objets avec le plus de collisions potentielles" width="320"/>
31 label="Ne renvoyer que les objets sur le terrain de quelqu&apos;un d&apos;autre" 34 <button label="?" name="top_colliders_help" left="337"/>
32 name="return_other_land" 35 <button label="Afficher les objets exécutant le plus de scripts..." name="top_scripts_btn" tool_tip="Liste des objets qui passent le plus de temps à exécuter des scripts" width="320"/>
33 tool_tip="Ne renvoyer que les objets se trouvant sur le terrain de quelqu&apos;un d&apos;autre" /> 36 <button label="?" name="top_scripts_help" left="337"/>
34 <check_box label="Renvoyer les objets dans toutes les régions de ce domaine" 37 <button label="Redémarrer la région" name="restart_btn" tool_tip="Redémarrer la région au bout de 2 minutes" width="160"/>
35 name="return_estate_wide" 38 <button label="?" name="restart_help" left="177" />
36 tool_tip="Renvoyer les objets dans toutes les régions qui constituent ce domaine" /> 39 <button label="Retarder le redémarrage" name="cancel_restart_btn" tool_tip="Retarder le redémarrage de la région d&apos;une heure" width="160"/>
37 <button label="Renvoyer" name="return_btn" />
38 <button label="Afficher les objets souvent responsables de collision..."
39 name="top_colliders_btn"
40 tool_tip="Liste des objets avec le plus de collisions potentielles" />
41 <button label="?" name="top_colliders_help" />
42 <button label="Afficher les objets exécutant le plus de scripts..."
43 name="top_scripts_btn"
44 tool_tip="Liste des objets qui passent le plus de temps à exécuter des scripts" />
45 <button label="?" name="top_scripts_help" />
46 <button label="Redémarrer la région" name="restart_btn"
47 tool_tip="Redémarrer la région au bout de 2 minutes" />
48 <button label="?" name="restart_help" />
49 <button label="Retarder le redémarrage" name="cancel_restart_btn"
50 tool_tip="Retarder le redémarrage de la région d&apos;une heure" />
51</panel> 40</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_region_estate.xml b/linden/indra/newview/skins/default/xui/fr/panel_region_estate.xml
index 7f11b0a..425f273 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_region_estate.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_region_estate.xml
@@ -1,9 +1,11 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Domaine" name="Estate"> 2<panel label="Domaine" name="Estate">
3 <text name="estate_help_text"> 3 <text name="estate_help_text" bottom="-34">
4 Les changements apportés aux paramètres de cet onglet auront des répercussions sur toutes les régions du domaine. 4 Les changements apportés aux paramètres
5de cet onglet auront des répercussions sur
6toutes les régions du domaine.
5 </text> 7 </text>
6 <text name="estate_text"> 8 <text name="estate_text" bottom_delta="-34">
7 Domaine : 9 Domaine :
8 </text> 10 </text>
9 <text name="estate_name"> 11 <text name="estate_name">
@@ -16,63 +18,61 @@
16 (inconnu) 18 (inconnu)
17 </text> 19 </text>
18 <text name="Only Allow"> 20 <text name="Only Allow">
19 Limiter l&apos;accès aux résidents : 21 Limiter l&apos;accès aux résidents qui :
20 </text> 22 </text>
21 <check_box label="Qui ont enregistré leurs infos de paiement" name="limit_payment" 23 <check_box label="Ont enregistré leurs infos de paiement" name="limit_payment" tool_tip="Bannir les résidents non identifés."/>
22 tool_tip="Interdire les résidents non identifés." /> 24 <check_box label="Ont fait vérifier leur âge" name="limit_age_verified" tool_tip="Bannir les résidents dont l&apos;âge n&apos;a pas été vérifié. Pour plus d&apos;infos, consultez la page support.secondlife.com."/>
23 <check_box label="Adultes dont l&apos;âge a été vérifié" name="limit_age_verified" 25 <check_box label="Autoriser les chats vocaux" name="voice_chat_check"/>
24 tool_tip="Interdire les résidents dont l&apos;âge n&apos;a pas été vérifié. Pour plus d&apos;infos, consultez la page support.secondlife.com." /> 26 <button label="?" name="voice_chat_help"/>
25 <check_box label="Autoriser les chats vocaux" name="voice_chat_check" />
26 <button label="?" name="voice_chat_help" />
27 <text name="abuse_email_text"> 27 <text name="abuse_email_text">
28 E-mail où signaler l&apos;infraction : 28 E-mail où signaler l&apos;infraction :
29 </text> 29 </text>
30 <string name="email_unsupported"> 30 <string name="email_unsupported">
31 Non pris en charge 31 Non pris en charge
32 </string> 32 </string>
33 <button label="?" name="abuse_email_address_help" /> 33 <button label="?" name="abuse_email_address_help"/>
34 <text name="estate_manager_label"> 34 <text name="estate_manager_label">
35 Gérants du domaine : 35 Gérants du domaine :
36 </text> 36 </text>
37 <button label="?" name="estate_manager_help" /> 37 <button label="?" name="estate_manager_help"/>
38 <button label="Ajouter..." name="add_estate_manager_btn" /> 38 <button label="Ajouter..." name="add_estate_manager_btn"/>
39 <button label="Supprimer..." name="remove_estate_manager_btn" /> 39 <button label="Supprimer..." name="remove_estate_manager_btn"/>
40 <check_box label="Utiliser le temps universel" name="use_global_time_check" /> 40 <check_box label="Utiliser le temps universel" name="use_global_time_check"/>
41 <button label="?" name="use_global_time_help" /> 41 <button label="?" name="use_global_time_help"/>
42 <check_box label="Soleil fixe" name="fixed_sun_check" /> 42 <check_box label="Soleil fixe" name="fixed_sun_check"/>
43 <button label="?" name="fixed_sun_help" /> 43 <button label="?" name="fixed_sun_help"/>
44 <slider label="Phase" name="sun_hour_slider" /> 44 <slider label="Phase" name="sun_hour_slider"/>
45 <check_box label="Autoriser l&apos;accès public" name="externally_visible_check" /> 45 <check_box label="Autoriser l&apos;accès public" name="externally_visible_check"/>
46 <button label="?" name="externally_visible_help" /> 46 <button label="?" name="externally_visible_help"/>
47 <check_box label="Vue sur le continent" name="mainland_visible_check" /> 47 <check_box label="Vue sur le continent" name="mainland_visible_check"/>
48 <button label="?" name="mainland_visible_help" /> 48 <button label="?" name="mainland_visible_help"/>
49 <check_box label="Autoriser la téléportation directe" name="allow_direct_teleport" /> 49 <check_box label="Autoriser la téléportation directe" name="allow_direct_teleport"/>
50 <button label="?" name="allow_direct_teleport_help" /> 50 <button label="?" name="allow_direct_teleport_help"/>
51 <text name="region_text_lbl"> 51 <text name="region_text_lbl">
52 Refuser l&apos;accès selon les infos de paiement : 52 Refuser l&apos;accès selon les infos de paiement :
53 </text> 53 </text>
54 <check_box label="Refuser sans infos de paiement enregistrées" name="deny_anonymous" /> 54 <check_box label="Refuser sans infos de paiement enregistrées" name="deny_anonymous"/>
55 <check_box label="Refuser avec infos de paiement enregistrées" name="deny_identified" /> 55 <check_box label="Refuser avec infos de paiement enregistrées" name="deny_identified"/>
56 <check_box label="Refuser avec infos de paiement utilisées" name="deny_transacted" /> 56 <check_box label="Refuser avec infos de paiement utilisées" name="deny_transacted"/>
57 <button label="Appliquer" name="apply_btn" /> 57 <button label="Appliquer" name="apply_btn"/>
58 <text name="allow_resident_label"> 58 <text name="allow_resident_label">
59 Résidents autorisés : 59 Résidents autorisés :
60 </text> 60 </text>
61 <button label="?" name="allow_resident_help" /> 61 <button label="?" name="allow_resident_help"/>
62 <button label="Ajouter..." name="add_allowed_avatar_btn" /> 62 <button label="Ajouter..." name="add_allowed_avatar_btn"/>
63 <button label="Supprimer..." name="remove_allowed_avatar_btn" /> 63 <button label="Supprimer..." name="remove_allowed_avatar_btn"/>
64 <text name="allow_group_label"> 64 <text name="allow_group_label">
65 Groupes autorisés : 65 Groupes autorisés :
66 </text> 66 </text>
67 <button label="?" name="allow_group_help" /> 67 <button label="?" name="allow_group_help"/>
68 <button label="Ajouter..." name="add_allowed_group_btn" /> 68 <button label="Ajouter..." name="add_allowed_group_btn"/>
69 <button label="Supprimer..." name="remove_allowed_group_btn" /> 69 <button label="Supprimer..." name="remove_allowed_group_btn"/>
70 <text name="ban_resident_label"> 70 <text name="ban_resident_label">
71 Résidents interdits : 71 Résidents bannis :
72 </text> 72 </text>
73 <button label="?" name="ban_resident_help" /> 73 <button label="?" name="ban_resident_help"/>
74 <button label="Ajouter..." name="add_banned_avatar_btn" /> 74 <button label="Ajouter..." name="add_banned_avatar_btn"/>
75 <button label="Supprimer..." name="remove_banned_avatar_btn" /> 75 <button label="Supprimer..." name="remove_banned_avatar_btn"/>
76 <button label="Envoyer un message au domaine..." name="message_estate_btn" /> 76 <button label="Envoyer un message au domaine..." name="message_estate_btn"/>
77 <button label="Expulser le résident du domaine..." name="kick_user_from_estate_btn" /> 77 <button label="Éjecter le résident du domaine..." name="kick_user_from_estate_btn"/>
78</panel> 78</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_region_general.xml b/linden/indra/newview/skins/default/xui/fr/panel_region_general.xml
index 59ff4a8..c3ef963 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_region_general.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_region_general.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Région" name="General"> 2<panel label="Région" name="General">
3 <text name="region_text_lbl"> 3 <text name="region_text_lbl">
4 Région : 4 Région :
@@ -12,42 +12,39 @@
12 <text name="version_channel_text"> 12 <text name="version_channel_text">
13 (inconnu) 13 (inconnu)
14 </text> 14 </text>
15 <check_box label="Bloquer le terraformage" name="block_terraform_check" /> 15 <check_box label="Bloquer le terraformage" name="block_terraform_check"/>
16 <button label="?" name="terraform_help" /> 16 <button label="?" name="terraform_help"/>
17 <check_box label="Interdire le vol" name="block_fly_check" /> 17 <check_box label="Interdire le vol" name="block_fly_check"/>
18 <button label="?" name="fly_help" /> 18 <button label="?" name="fly_help"/>
19 <check_box label="Autoriser les dégâts" name="allow_damage_check" /> 19 <check_box label="Autoriser les dégâts" name="allow_damage_check"/>
20 <button label="?" name="damage_help" /> 20 <button label="?" name="damage_help"/>
21 <check_box label="Interdire les bousculades" name="restrict_pushobject" /> 21 <check_box label="Interdire les bousculades" name="restrict_pushobject"/>
22 <button label="?" name="restrict_pushobject_help" /> 22 <button label="?" name="restrict_pushobject_help"/>
23 <check_box label="Autoriser la revente de terrain" name="allow_land_resell_check" /> 23 <check_box label="Autoriser la revente" name="allow_land_resell_check"/>
24 <button label="?" name="land_resell_help" /> 24 <button label="?" name="land_resell_help"/>
25 <check_box label="Autoriser la fusion/division de terrain" 25 <check_box label="Autoriser la fusion/division" name="allow_parcel_changes_check"/>
26 name="allow_parcel_changes_check" /> 26 <button label="?" name="parcel_changes_help"/>
27 <button label="?" name="parcel_changes_help" /> 27 <check_box label="Ne pas afficher dans la recherche" name="block_parcel_search_check" tool_tip="Afficher cette région et ses parcelles dans les résultats de recherche"/>
28 <check_box label="Ne pas afficher le terrain dans la recherche" 28 <button label="?" name="parcel_search_help"/>
29 name="block_parcel_search_check" 29 <spinner label="Nombre limite d&apos;avatars" name="agent_limit_spin" label_width="127" width="190"/>
30 tool_tip="Afficher cette région et ses parcelles dans les résultats de recherche" /> 30 <button label="?" name="agent_limit_help"/>
31 <button label="?" name="parcel_search_help" /> 31 <spinner label="Bonus objet" name="object_bonus_spin" label_width="127" width="190"/>
32 <spinner label="Nombre limite d&apos;avatars" name="agent_limit_spin" /> 32 <button label="?" name="object_bonus_help"/>
33 <button label="?" name="agent_limit_help" />
34 <spinner label="Bonus objet" name="object_bonus_spin" />
35 <button label="?" name="object_bonus_help" />
36 <text label="Maturité" name="access_text"> 33 <text label="Maturité" name="access_text">
37 Maturité : 34 Maturité :
38 </text> 35 </text>
39 <combo_box label="Adulte" name="access_combo"> 36 <combo_box label="Adulte" name="access_combo">
40 <combo_item name="PG"> 37 <combo_item name="PG">
41 Accompagnement parental 38 Tout public
42 </combo_item> 39 </combo_item>
43 <combo_item name="Mature"> 40 <combo_item name="Mature">
44 Adulte 41 Adulte
45 </combo_item> 42 </combo_item>
46 </combo_box> 43 </combo_box>
47 <button label="?" name="access_help" /> 44 <button label="?" name="access_help"/>
48 <button label="Appliquer" name="apply_btn" /> 45 <button label="Appliquer" name="apply_btn"/>
49 <button label="Téléporter un résident chez lui..." name="kick_btn" /> 46 <button label="Téléporter un résident chez lui..." name="kick_btn"/>
50 <button label="Téléporter tous les résidents chez eux..." name="kick_all_btn" /> 47 <button label="Téléporter tous les résidents chez eux..." name="kick_all_btn"/>
51 <button label="Envoyer un message à la région..." name="im_btn" /> 48 <button label="Envoyer un message à la région..." name="im_btn"/>
52 <button label="Gérer le Téléhub..." name="manage_telehub_btn" /> 49 <button label="Gérer le Téléhub..." name="manage_telehub_btn"/>
53</panel> 50</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_region_terrain.xml b/linden/indra/newview/skins/default/xui/fr/panel_region_terrain.xml
index de149b0..4d7652e 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_region_terrain.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_region_terrain.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Terrain" name="Terrain"> 2<panel label="Terrain" name="Terrain">
3 <text name="region_text_lbl"> 3 <text name="region_text_lbl">
4 Région : 4 Région :
@@ -6,25 +6,22 @@
6 <text name="region_text"> 6 <text name="region_text">
7 (inconnue) 7 (inconnue)
8 </text> 8 </text>
9 <spinner label="Niveau de l&apos;eau" name="water_height_spin" /> 9 <spinner label="Niveau de l&apos;eau" name="water_height_spin"/>
10 <button label="?" name="water_height_help" /> 10 <button label="?" name="water_height_help"/>
11 <spinner label="Limite de surélévation du terrain" name="terrain_raise_spin" /> 11 <spinner label="Limite d&apos;élévation du &#10;terrain" name="terrain_raise_spin"/>
12 <button label="?" name="terrain_raise_help" /> 12 <button label="?" name="terrain_raise_help"/>
13 <spinner label="Limite d&apos;abaissement du terrain" name="terrain_lower_spin" /> 13 <spinner label="Limite d&apos;abaissement &#10;du terrain" name="terrain_lower_spin" bottom_delta="-34"/>
14 <button label="?" name="terrain_lower_help" /> 14 <button label="?" name="terrain_lower_help"/>
15 <check_box label="Utiliser le soleil du domaine" name="use_estate_sun_check" /> 15 <check_box label="Utiliser le soleil du domaine" name="use_estate_sun_check"/>
16 <button label="?" name="use_estate_sun_help" /> 16 <button label="?" name="use_estate_sun_help"/>
17 <check_box label="Soleil fixe" name="fixed_sun_check" /> 17 <check_box label="Soleil fixe" name="fixed_sun_check"/>
18 <button label="?" name="fixed_sun_help" /> 18 <button label="?" name="fixed_sun_help"/>
19 <slider label="Phase" name="sun_hour_slider" /> 19 <slider label="Phase" name="sun_hour_slider"/>
20 <button label="Appliquer" name="apply_btn" /> 20 <button label="Appliquer" name="apply_btn"/>
21 <button label="Télécharger le terrain au format RAW..." name="download_raw_btn" 21 <button label="Télécharger le terrain au format RAW..." name="download_raw_btn" tool_tip="Réservé aux propriétaires de domaine, pas aux gérants" width="230"/>
22 tool_tip="Réservé aux propriétaires de domaine, pas aux gérants" /> 22 <button label="?" name="download_raw_help" left="246" />
23 <button label="?" name="download_raw_help" /> 23 <button label="Charger le terrain au format RAW..." name="upload_raw_btn" tool_tip="Réservé aux propriétaires de domaine, pas aux gérants" width="230"/>
24 <button label="Charger le terrain au format RAW..." name="upload_raw_btn" 24 <button label="?" name="upload_raw_help" left="246" />
25 tool_tip="Réservé aux propriétaires de domaine, pas aux gérants" /> 25 <button label="Figer le terrain" name="bake_terrain_btn" tool_tip="Définir le terrain actuel comme point central pour les limites d&apos;élévation/abaissement"/>
26 <button label="?" name="upload_raw_help" /> 26 <button label="?" name="bake_terrain_help"/>
27 <button label="Figer le terrain" name="bake_terrain_btn"
28 tool_tip="Définir le terrain actuel comme point central pour les limites de surélévation/abaissement" />
29 <button label="?" name="bake_terrain_help" />
30</panel> 27</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml b/linden/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml
index 09fe3df..a6ec93b 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml
@@ -1,10 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="LLScrollingPanelParam"> 2<panel name="LLScrollingPanelParam">
3 <text type="string" length="1" name="Loading..."> 3 <text type="string" length="1" name="Loading...">
4 Chargement en cours... 4 Chargement...
5 </text> 5 </text>
6 <text type="string" length="1" name="Loading...2"> 6 <text type="string" length="1" name="Loading...2">
7 Chargement en cours... 7 Chargement...
8 </text> 8 </text>
9 <button label="" label_selected="" name="less" /> 9 <button label="" label_selected="" name="less" />
10 <button label="" label_selected="" name="more" /> 10 <button label="" label_selected="" name="more" />
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_speaker_controls.xml b/linden/indra/newview/skins/default/xui/fr/panel_speaker_controls.xml
index 4500b66..125fb1e 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_speaker_controls.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_speaker_controls.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="active_speakers_panel"> 2<panel name="active_speakers_panel">
3 <string name="moderator_label"> 3 <string name="moderator_label">
4 (Modérateur) 4 (Modérateur)
@@ -7,23 +7,23 @@
7 <layout_panel name="moderation_mode_panel"> 7 <layout_panel name="moderation_mode_panel">
8 <combo_box name="moderation_mode"> 8 <combo_box name="moderation_mode">
9 <combo_item name="OpenVoice"> 9 <combo_item name="OpenVoice">
10 Voix activées par défaut) 10 Voix activées par défaut
11 </combo_item> 11 </combo_item>
12 <combo_item name="ModeratedVoice"> 12 <combo_item name="ModeratedVoice">
13 Voix désactivées par défaut) 13 Voix désactivées par défaut
14 </combo_item> 14 </combo_item>
15 </combo_box> 15 </combo_box>
16 </layout_panel> 16 </layout_panel>
17 <layout_panel name="moderate_chat_panel"> 17 <layout_panel name="moderate_chat_panel">
18 <scroll_list name="speakers_list"> 18 <scroll_list name="speakers_list">
19 <column label="Nom" name="speaker_name" /> 19 <column label="Nom" name="speaker_name"/>
20 </scroll_list> 20 </scroll_list>
21 <panel name="speaker_controls"> 21 <panel name="speaker_controls">
22 <text name="resident_name"> 22 <text name="resident_name">
23 Rumplstiltskin Califragilistic 23 Rumplstiltskin Califragilistic
24 </text> 24 </text>
25 <button name="mute_btn" tool_tip="Rendre ce résident muet" /> 25 <button name="mute_btn" tool_tip="Ignorer ce résident"/>
26 <check_box label="Ignorer le texte" name="mute_text_btn" /> 26 <check_box label="Ignorer les messages" name="mute_text_btn"/>
27 </panel> 27 </panel>
28 </layout_panel> 28 </layout_panel>
29 <layout_panel name="moderator_controls"> 29 <layout_panel name="moderator_controls">
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_status_bar.xml b/linden/indra/newview/skins/default/xui/fr/panel_status_bar.xml
index b8418d3..2e4c694 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_status_bar.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_status_bar.xml
@@ -1,14 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="status"> 2<panel name="status">
3 <text type="string" length="1" name="ParcelNameText" 3 <text length="1" name="ParcelNameText" tool_tip="Nom de la parcelle de terrain sur laquelle vous vous trouvez. Cliquez pour ouvrir la section À propos du terrain." type="string">
4 tool_tip="Nom de la parcelle de terrain sur laquelle vous vous trouvez. Cliquez pour ouvrir À propos du terrain.">
5 Saisissez le nom de la parcelle ici 4 Saisissez le nom de la parcelle ici
6 </text> 5 </text>
7 <text type="string" length="1" name="BalanceText" tool_tip="Solde du compte"> 6 <text length="1" name="BalanceText" tool_tip="Solde du compte" type="string">
8 Chargement en cours... 7 Chargement...
9 </text> 8 </text>
10 <button label="" label_selected="" name="buycurrency" tool_tip="Acheter des devises" /> 9 <button label="" label_selected="" name="buycurrency" tool_tip="Acheter des devises"/>
11 <text type="string" length="12" name="TimeText" tool_tip="Heure actuelle (Californie)"> 10 <text length="12" name="TimeText" tool_tip="Heure actuelle (Californie)" type="string">
12 midi 11 midi
13 </text> 12 </text>
14 <string name="StatBarDaysOfWeek"> 13 <string name="StatBarDaysOfWeek">
@@ -17,23 +16,22 @@
17 <string name="StatBarMonthsOfYear"> 16 <string name="StatBarMonthsOfYear">
18 January:February:March:April:May:June:July:August:September:October:November:December 17 January:February:March:April:May:June:July:August:September:October:November:December
19 </string> 18 </string>
20 <button label="" label_selected="" name="scriptout" 19 <button label="" label_selected="" name="scriptout" tool_tip="Alertes et erreurs de scripts"/>
21 tool_tip="Alertes et erreurs de scripts" /> 20 <button label="" label_selected="" name="health" tool_tip="Santé"/>
22 <button label="" label_selected="" name="health" tool_tip="Santé" /> 21 <text length="1" name="HealthText" tool_tip="Santé" type="string">
23 <text type="string" length="1" name="HealthText" tool_tip="Santé"> 22 100 %
24 100%
25 </text> 23 </text>
26 <button label="" label_selected="" name="fly" tool_tip="Vol interdit" /> 24 <button label="" label_selected="" name="fly" tool_tip="Vol interdit"/>
27 <button label="" label_selected="" name="build" tool_tip="Construction interdite" /> 25 <button label="" label_selected="" name="build" tool_tip="Construction interdite"/>
28 <button label="" label_selected="" name="scripts" tool_tip="Scripts interdits" /> 26 <button label="" label_selected="" name="scripts" tool_tip="Scripts interdits"/>
29 <button name="no_fly" tool_tip="Interdiction de voler" /> 27 <button name="no_fly" tool_tip="Interdiction de voler"/>
30 <button name="no_build" tool_tip="Interdiction de construire/rezzer" /> 28 <button name="no_build" tool_tip="Interdiction de construire/rezzer"/>
31 <button name="no_scripts" tool_tip="Interdiction d&apos;utiliser des scripts" /> 29 <button name="no_scripts" tool_tip="Interdiction d&apos;utiliser des scripts"/>
32 <button label="" label_selected="" name="restrictpush" tool_tip="llPushObject interdit" /> 30 <button label="" label_selected="" name="restrictpush" tool_tip="Pas de bousculades"/>
33 <button name="status_no_voice" tool_tip="Voix non disponible ici" /> 31 <button name="status_no_voice" tool_tip="Voix non disponible ici"/>
34 <button label="" label_selected="" name="buyland" tool_tip="Acheter cette parcelle" /> 32 <button label="" label_selected="" name="buyland" tool_tip="Acheter cette parcelle"/>
35 <line_editor label="Rechercher" name="search_editor" tool_tip="Rechercher dans Second Life" /> 33 <line_editor label="Rechercher" name="search_editor" tool_tip="Rechercher dans Second Life"/>
36 <button name="search_btn" tool_tip="Rechercher dans Second Life" /> 34 <button name="search_btn" tool_tip="Rechercher dans Second Life"/>
37 <text name="packet_loss_tooltip"> 35 <text name="packet_loss_tooltip">
38 Perte de paquets 36 Perte de paquets
39 </text> 37 </text>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_toolbar.xml b/linden/indra/newview/skins/default/xui/fr/panel_toolbar.xml
index 4405b38..80adabf 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_toolbar.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_toolbar.xml
@@ -1,22 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="toolbar"> 2<panel name="toolbar">
3 <string name="Redock Windows"> 3 <string name="Redock Windows">
4 Rétablir les fenêtres 4 Rétablir les fenêtres
5 </string> 5 </string>
6 <layout_stack name="toolbar_stack"> 6 <layout_stack name="toolbar_stack">
7 <button label="" name="chat_btn" tool_tip="Afficher la barre de chat. (Entrée)" /> 7 <button label="" name="chat_btn" tool_tip="Affichez la barre de chat. (Entrée)"/>
8 <flyout_button label="Communiquer" name="communicate_btn" 8 <flyout_button label="Communiquer" name="communicate_btn" tool_tip="Communiquez avec vos amis et vos groupes."/>
9 tool_tip="Communiquer avec vos amis et vos groupes." /> 9 <button label="Voler" label_selected="Atterrir" name="fly_btn" tool_tip="Commencez à voler. Utilisez E/C ou PgHaut/PageBas pour voler vers le haut et vers le bas."/>
10 <button label="Voler" label_selected="Atterrir" name="fly_btn" 10 <button label="Photo" name="snapshot_btn" tool_tip="Enregistrez une photo sur le disque ou dans l&apos;inventaire."/>
11 tool_tip="Commencer à voler. Utilisez E/C ou PgHaut/PageBas pour voler vers le haut et vers le bas." /> 11 <button label="Rechercher" name="directory_btn" tool_tip="Recherchez des endroits, des événements, des résidents, et plus encore."/>
12 <button label="Photo" name="snapshot_btn" 12 <button label="Construire" name="build_btn" tool_tip="Créez de nouveaux objets."/>
13 tool_tip="Enregistrer une photo sur le disque ou dans l&apos;inventaire." /> 13 <button label="Mini-carte" name="radar_btn" tool_tip="Affichez la carte de la zone autour de vous. (Ctrl-Maj-M)"/>
14 <button label="Rechercher" name="directory_btn" 14 <button label="Carte" name="map_btn" tool_tip="Affichez la carte du Monde. (Ctrl-M)"/>
15 tool_tip="Rechercher des endroits, des événements, des personnes, et plus encore." /> 15 <button label="Inventaire" name="inventory_btn" tool_tip="Vos objets (Ctrl-I)"/>
16 <button label="Construire" name="build_btn" tool_tip="Créer de nouveaux objets." />
17 <button label="Mini-carte" name="radar_btn"
18 tool_tip="Carte de la zone autour de vous. (Ctrl-Maj-M)" />
19 <button label="Carte" name="map_btn" tool_tip="Carte du monde. (Ctrl-M)" />
20 <button label="Inventaire" name="inventory_btn" tool_tip="Vos objets. (Ctrl-I)" />
21 </layout_stack> 16 </layout_stack>
22</panel> 17</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_voice_controls.xml b/linden/indra/newview/skins/default/xui/fr/panel_voice_controls.xml
index 3dc9dfe..dc0da1c 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_voice_controls.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_voice_controls.xml
@@ -1,8 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="voice_controls"> 2<panel name="voice_controls" width="138">
3 <!-- WARNING: separate formatting and translations of these same strings (for using the Silver skin) is controlled by a different file in \skins\silver\xui\fr\panel_voice_controls.xml You must make changes to translations in both files.-->
3 <button name="speakers_btn" 4 <button name="speakers_btn"
4 tool_tip="Afficher la liste des résidents utilisant le chat vocal près de vous" /> 5 tool_tip="Affichez la liste des résidents utilisant le chat vocal près de vous" />
5 <button label="Parler" name="push_to_talk" tool_tip="Appuyer sur le bouton pour parler" /> 6 <button label="Parler" name="push_to_talk" tool_tip="Appuyez sur le bouton pour parler" width="74" />
6 <button name="ptt_lock" tool_tip="Cliquer sur Verrouiller pour passer au mode Parler" /> 7 <button name="ptt_lock" tool_tip="Cliquez sur Verrouiller pour passer au mode Parler" />
7 <button name="show_channel" tool_tip="Cliquer pour afficher le canal vocal actuel" /> 8 <icon name="voice_volume" left_delta="50" />
9 <button name="show_channel" tool_tip="Cliquez pour afficher le canal vocal utilisé" left_delta="20"/>
8</panel> 10</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_voice_enable.xml b/linden/indra/newview/skins/default/xui/fr/panel_voice_enable.xml
index ab95e4e..97c4770 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_voice_enable.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_voice_enable.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="content_panel"> 2<panel name="content_panel">
3 <text_editor name="voice_intro_text1"> 3 <text_editor name="voice_intro_text1">
4 Bienvenue dans le chat vocal de Second Life ! Le chat vocal vous permet de communiquer avec les autres résidents. Cet assistant vous aidera à le paramétrer correctement. Le chat vocal requiert l&apos;utilisation de speakers audio. Pour parler, il vous faudra aussi un micro ou un casque stéréo avec un micro. 4 Bienvenue dans le chat vocal de Second Life ! Le chat vocal vous permet de communiquer avec les autres résidents. Cet assistant vous aidera à le paramétrer correctement. Le chat vocal requiert l&apos;utilisation de haut-parleurs audio. Pour parler, il vous faudra aussi un micro ou un casque stéréo avec un micro.
5 </text_editor> 5 </text_editor>
6 <text_editor name="voice_intro_text2"> 6 <text_editor name="voice_intro_text2">
7 Le chat vocal est activé par défaut. Souhaitez-vous continuer à l&apos;utiliser ? 7 Le chat vocal est activé par défaut. Souhaitez-vous continuer à l&apos;utiliser ?
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_voice_options.xml b/linden/indra/newview/skins/default/xui/fr/panel_voice_options.xml
index dde5c59..be3331e 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_voice_options.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_voice_options.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="content_panel"> 2<panel name="content_panel">
3 <text_editor name="voice_intro_text1"> 3 <text_editor name="voice_intro_text1">
4 Pour configurer votre chat vocal, utilisez les options ci-dessous. 4 Pour configurer votre chat vocal, utilisez les options ci-dessous.
@@ -11,13 +11,11 @@
11 Écouter depuis la position de l&apos;avatar. 11 Écouter depuis la position de l&apos;avatar.
12 </radio_item> 12 </radio_item>
13 </radio_group> 13 </radio_group>
14 <check_box label="N&apos;autoriser que mes amis à m&apos;appeler." 14 <check_box label="N&apos;autoriser que mes amis à m&apos;appeler." name="friends_only_check"/>
15 name="friends_only_check" /> 15 <check_box label="Attribuer une touche de contrôle" name="push_to_talk_toggle_check"/>
16 <check_box label="Utiliser la fonction Appuyer pour parler en mode bascule"
17 name="push_to_talk_toggle_check" />
18 <text name="push_to_talk_label"> 16 <text name="push_to_talk_label">
19 Déclencheur de la fonction Appuyer pour parler : 17 Touche de contrôle de la fonction Appuyer pour parler :
20 </text> 18 </text>
21 <button label="Choisir la touche" name="set_voice_hotkey_button" /> 19 <button label="Choisir la touche" name="set_voice_hotkey_button"/>
22 <button label="Molette de la souris" name="set_voice_middlemouse_button" /> 20 <button label="Molette de la souris" name="set_voice_middlemouse_button"/>
23</panel> 21</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_voice_remote.xml b/linden/indra/newview/skins/default/xui/fr/panel_voice_remote.xml
new file mode 100644
index 0000000..96e3032
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/fr/panel_voice_remote.xml
@@ -0,0 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="voice_remote" width="140">
3 <panel name="panel_bg_tab" width="138" />
4 <panel name="panel_voice_controls" width="140" />
5</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/panel_voice_remote_expanded.xml b/linden/indra/newview/skins/default/xui/fr/panel_voice_remote_expanded.xml
index b8b75d9..83efac4 100644
--- a/linden/indra/newview/skins/default/xui/fr/panel_voice_remote_expanded.xml
+++ b/linden/indra/newview/skins/default/xui/fr/panel_voice_remote_expanded.xml
@@ -1,4 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="voice_remote"> 2<panel name="voice_remote">
3 <panel name="panel_bg_tab" width="138" />
3 <button name="end_call_btn" tool_tip="Cliquer pour raccrocher" /> 4 <button name="end_call_btn" tool_tip="Cliquer pour raccrocher" />
4</panel> 5</panel>
diff --git a/linden/indra/newview/skins/default/xui/fr/role_actions.xml b/linden/indra/newview/skins/default/xui/fr/role_actions.xml
index 2d076b5..4dd1288 100644
--- a/linden/indra/newview/skins/default/xui/fr/role_actions.xml
+++ b/linden/indra/newview/skins/default/xui/fr/role_actions.xml
@@ -4,198 +4,198 @@
4 description="Ces pouvoirs permettent d&apos;ajouter et de supprimer des membres du groupe et permettent aux nouveaux membres de rejoindre le groupe sans recevoir d&apos;invitation." 4 description="Ces pouvoirs permettent d&apos;ajouter et de supprimer des membres du groupe et permettent aux nouveaux membres de rejoindre le groupe sans recevoir d&apos;invitation."
5 name="Membership"> 5 name="Membership">
6 <action description="Inviter des membres dans ce groupe" 6 <action description="Inviter des membres dans ce groupe"
7 longdescription="Invitez des membres à rejoindre ce goupe en utilisant le bouton Inviter nouvelle personne à partir de l&apos;onglet Membres et rôles &gt; Membres." 7 longdescription="Invitez des membres à rejoindre ce groupe en utilisant le bouton Inviter un nouveau membre à partir de l&apos;onglet Membres et rôles &gt; Membres."
8 name="member invite" value="1" /> 8 name="member invite" value="1" />
9 <action description="Expulser des membres de ce groupe" 9 <action description="Expulser des membres du groupe"
10 longdescription="Expulsez des membres de ce goupe en utilisant le bouton Expulser du groupe à partir de l&apos;onglet Membres et rôles &gt; Membres. Un propriétaire peur expulser n&apos;importe qui sauf un autre propriétaire. Si vous n&apos;êtes pas propriétaire, notez qu&apos;un membre peut être expulsé d&apos;un groupe uniquement s&apos;il se trouve dans le rôle Tous et dans aucun autre rôle. Pour supprimer des rôles, vous devez avoir le pouvoir de retirer des rôles aux membres." 10 longdescription="Expulsez des membres de ce groupe en utilisant le bouton Expulser un membre à partir de l&apos;onglet Membres et rôles &gt; Membres. Un propriétaire ne peut pas être expulsé. Un membre peut être expulsé d&apos;un groupe uniquement s&apos;il a le rôle Tous (Everyone). Si vous n&apos;êtes pas propriétaire, vous devez d&apos;abord retirer les rôles d&apos;un membre avant de pouvoir l&apos;expulser."
11 name="member eject" value="2" /> 11 name="member eject" value="2" />
12 <action 12 <action
13 description="Mettre l&apos;inscription libre en mode bascule et changer les frais d&apos;inscription." 13 description="Gérer l&apos;inscription et les frais d&apos;inscription"
14 longdescription="Mettez Inscription libre en mode bascule pour permettre aux nouveaux membres de rejoindre le groupe sans invitation et modifiez Frais d&apos;inscription dans les Préférences du groupe, sous l&apos;onglet Général." 14 longdescription="Choisissez l&apos;inscription libre pour permettre aux nouveaux membres de rejoindre le groupe sans invitation et modifiez les frais d&apos;inscription à l&apos;onglet Général."
15 name="member options" value="3" /> 15 name="member options" value="3" />
16 </action_set> 16 </action_set>
17 <action_set 17 <action_set
18 description="Ces pouvoirs permettent d&apos;ajouter, supprimer et modifier les rôles dans le groupe, d&apos;ajouter et de supprimer des membres affectés à ces rôles et d&apos;assigner des pouvoirs aux rôles." 18 description="Ces pouvoirs permettent d&apos;ajouter, de supprimer et de modifier les rôles dans le groupe et d&apos;y assigner des membres et des pouvoirs."
19 name="Roles"> 19 name="Roles">
20 <action description="Créer des rôles" 20 <action description="Créer des rôles"
21 longdescription="Créez de nouveaux rôles à l&apos;onglet Membres et rôles, sous-onglet Rôles." 21 longdescription="Créez de nouveaux rôles à l&apos;onglet Membres et rôles &gt; Rôles."
22 name="role create" value="4" /> 22 name="role create" value="4" />
23 <action description="Supprimer des rôles" 23 <action description="Supprimer des rôles"
24 longdescription="Supprimez des rôles à l&apos;onglet Membres et rôles, sous-onglet Rôles." 24 longdescription="Supprimez des rôles à l&apos;onglet Membres et rôles &gt; Rôles."
25 name="role delete" value="5" /> 25 name="role delete" value="5" />
26 <action description="Modifier les noms, titres et descriptions des rôles" 26 <action description="Modifier les noms, les titres et les descriptions des rôles"
27 longdescription="Modifiez les noms, titres et descriptions des rôles à l&apos;onglet Membres et rôles, sous-onglet Rôles, après avoir sélectionné un rôle." 27 longdescription="Modifiez les noms, titres et descriptions des rôles à l&apos;onglet Membres et rôles &gt; Rôles."
28 name="role properties" value="6" /> 28 name="role properties" value="6" />
29 <action description="Affecter des membres à des rôles d&apos;attribution" 29 <action description="Attribuer des rôles limités"
30 longdescription="Affectez des membres à des rôles dans la section Rôles attribués à l&apos;onglet Membres et rôles, sous-onglet Membres. Un membre disposant de ce pouvoir ne peut affecter de nouveaux membres qu&apos;à un rôle auquel il est lui même affecté." 30 longdescription="Affectez des membres à certains rôles à l&apos;onglet Membres et rôles &gt; Membres. Un membre ne peut attribuer que des rôles auxquels il est lui-même affecté."
31 name="role assign member limited" value="7" /> 31 name="role assign member limited" value="7" />
32 <action description="Affecter des membres à tous types de rôles" 32 <action description="Attribuer tous les rôles"
33 longdescription="Affectez des membres à tous types de rôles dans la section Rôles attribués à l&apos;onglet Membres et rôles, sous-onglet Membres. Avertissement : tout membre disposant de ce pouvoir peut s&apos;affecter lui-même, ainsi que tout autre membre non-propriétaire du groupe, à des rôles disposant de facultés plus importantes, et accéder potentiellement à des pouvoirs proches de ceux d&apos;un propriétaire. Assurez-vous de bien comprendre ce que vous faites avant d&apos;attribuer ce pouvoir." 33 longdescription="Affectez des membres à tous types de rôles à l&apos;onglet Membres et rôles &gt; Membres &gt; Rôles assignés. Attention : ce pouvoir peut conférer des rôles très importants, proches de ceux d&apos;un propriétaire. Assurez-vous de bien comprendre ce pouvoir avant de l&apos;attribuer."
34 name="role assign member" value="8" /> 34 name="role assign member" value="8" />
35 <action description="Destituer des membres de leurs rôles" 35 <action description="Destituer des membres de leurs rôles"
36 longdescription="Destituez des membres de leurs rôles dans la section Rôles attribués à l&apos;onglet Membres et rôles, sous-onglet Membres. Les propriétaires ne peuvent pas être destitués." 36 longdescription="Destituez des membres de leurs rôles à partir du menu Rôles attribués à l&apos;onglet Membres et rôles &gt; Membres. Les propriétaires ne peuvent pas être destitués."
37 name="role remove member" value="9" /> 37 name="role remove member" value="9" />
38 <action description="Attribuer et retirer les pouvoirs d&apos;un rôle" 38 <action description="Modifier les pouvoirs d&apos;un rôle"
39 longdescription="Attribuez et retirez les pouvoirs d&apos;un rôle à partir de la section Pouvoirs attribués à l&apos;onglet Membres et rôles, sous-onglet Rôles. Avertissement : tout membre dans un rôle avec ce pouvoir peut s&apos;attribuer à lui-même, ainsi qu&apos;à tout autre membre non-propriétaire du groupe, Tous les pouvoirs, et accéder potentiellement à des pouvoirs proches de ceux d&apos;un propriétaire. Assurez-vous de bien comprendre ce que vous faites avant d&apos;attribuer ce pouvoir." 39 longdescription="Attribuez et retirez les pouvoirs d&apos;un rôle à partir du menu Pouvoirs attribués à l&apos;onglet Membres et rôles &gt; Rôles &gt; Pouvoirs attribués. Attention : ce pouvoir peut donner des rôles très importants, proches de ceux d&apos;un propriétaire. Assurez-vous de bien comprendre ce pouvoir avant de l&apos;attribuer."
40 name="role change actions" value="10" /> 40 name="role change actions" value="10" />
41 </action_set> 41 </action_set>
42 <action_set 42 <action_set
43 description="Ces pouvoirs permettent de modifier l&apos;identité du groupe, et donc sa visibilité publique, sa charte et son emblème." 43 description="Ces pouvoirs permettent de modifier le profil public du groupe, sa charte et son logo."
44 name="Group Identity"> 44 name="Group Identity">
45 <action 45 <action
46 description="Modifier la charte, l&apos;emblème, les résultats dans la recherche, et quels membres apparaissent dans les Informations du groupe." 46 description="Modifier le profil public du groupe"
47 longdescription="Modifier la charte, l&apos;emblème, les résultats dans la recherche, et quels membres apparaissent dans les Informations du groupe. Ces opérations s&apos;effectuent à l&apos;onglet Général." 47 longdescription="Modifiez la charte, le logo, l&apos;affichage dans la recherche et la liste des membres visibles à l&apos;onglet Général."
48 name="group change identity" value="11" /> 48 name="group change identity" value="11" />
49 </action_set> 49 </action_set>
50 <action_set 50 <action_set
51 description="Ces pouvoirs permettent de transférer, modifier et vendre du terrain appartenant au patrimoine du groupe. Pour accéder au menu du terrain, cliquez à droite sur le sol et sélectionnez À propos du terrain, ou bien cliquez sur les infos de la parcelle dans la barre de menus." 51 description="Ces pouvoirs permettent de transférer, modifier et vendre du terrain appartenant au groupe. Pour accéder au menu À propos du terrain, cliquez sur le nom de la parcelle en haut de l&apos;écran ou cliquez à droite sur le sol."
52 name="Parcel Management"> 52 name="Parcel Management">
53 <action description="Transférer du terrain et acheter du terrain pour le groupe" 53 <action description="Transférer et acheter des parcelles pour le groupe"
54 longdescription="Transférez du terrain et achetez du terrain pour le groupe Ces opérations s&apos;effectuent à partir de À propos du terrain &gt; Général." 54 longdescription="Transférez et achetez des parcelles pour le groupe à partir du menu À propos du terrain &gt; Général."
55 name="land deed" value="12" /> 55 name="land deed" value="12" />
56 <action description="Céder le terrain au Governor Linden" 56 <action description="Abandonner le terrain"
57 longdescription="Cédez le terrain au Governor Linden. Avertissement : seul un membre dont le rôle lui confère ce pouvoir peut céder son terrain à la section À propos du terrain, onglet Général, le rendant ainsi au patrimoine des Linden sans le vendre ! Assurez-vous de bien comprendre ce que vous faites avant d&apos;attribuer ce pouvoir." 57 longdescription="Abandonnez des parcelles du groupe à Linden Lab. Attention : ce pouvoir autorise l&apos;abandon d&apos;un terrain appartenant au groupe. Ce terrain sera alors définitivement perdu. Assurez-vous de bien comprendre ce pouvoir avant de l&apos;attribuer."
58 name="land release" value="13" /> 58 name="land release" value="13" />
59 <action description="Infos sur la mise en vente du terrain" 59 <action description="Vendre du terrain"
60 longdescription="Infos sur la mise en vente du terrain. Avertissement : seul un membre dans un rôle avec ce pouvoir peut vendre un terrain possédé par le groupe à la section À propos du terrain &gt; Général. Assurez-vous de bien comprendre ce que vous faites avant d&apos;attribuer ce pouvoir." 60 longdescription="Vendez des parcelles du groupe. Attention : ce pouvoir autorise la vente d&apos;un terrain appartenant au groupe. Ce terrain sera alors définitivement perdu. Assurez-vous de bien comprendre ce pouvoir avant de l&apos;attribuer."
61 name="land set sale info" value="14" /> 61 name="land set sale info" value="14" />
62 <action description="Diviser et fusionner des parcelles" 62 <action description="Diviser et fusionner des parcelles"
63 longdescription="Divisez et fusionnez des parcelles Pour cela, cliquez à droite sur le sol, sélectionnez Modifier le terrain, et faites glisser votre souris sur l&apos;endroit du terrain que vous souhaitez modifier. Pour sous-diviser le terrain, sélectionnez un endroit puis cliquez sur Diviser... Pour fusionner des parcelles, sélectionnez au moins deux parcelles adjacentes et cliquez sur Fusionner. " 63 longdescription="Divisez et fusionnez des parcelles. Pour cela, cliquez à droite sur le sol, sélectionnez Modifier le terrain, et faites glisser votre souris sur l&apos;endroit que vous souhaitez modifier. Pour diviser le terrain, sélectionnez un endroit puis cliquez sur Diviser... Pour fusionner des parcelles, sélectionnez au moins deux parcelles adjacentes et cliquez sur Fusionner."
64 name="land divide join" value="15" /> 64 name="land divide join" value="15" />
65 </action_set> 65 </action_set>
66 <action_set 66 <action_set
67 description="Ces pouvoirs permettent de modifier le nom de la parcelle, la visibilité dans l&apos;annuaire et les options de routage et de téléportation." 67 description="Ces pouvoirs permettent de modifier le nom de la parcelle, son référencement dans la recherche et le lieu de téléportation."
68 name="Parcel Identity"> 68 name="Parcel Identity">
69 <action 69 <action
70 description="Mettre Afficher dans la recherche d&apos;endroits en mode bascule et définir une catégorie." 70 description="Afficher dans la recherche et définir une catégorie"
71 longdescription="Mettez Afficher dans la recherche d&apos;endroits en mode bascule et définissez une catégorie pour la parcelle dans À propos du terrain &gt; Options." 71 longdescription="Choisissez de faire apparaître la parcelle dans la recherche et définissez sa catégorie à partir du menu À propos du terrain &gt; Options."
72 name="land find places" value="17" /> 72 name="land find places" value="17" />
73 <action 73 <action
74 description="Modifier le nom de la parcelle, la description et les paramètres d&apos;affichage dans la recherche" 74 description="Modifier le nom, la description et le référencement du terrain dans la recherche"
75 longdescription="Modifiez le nom de la parcelle, la description et les paramètres d&apos;affichage dans les résultats de recherche. Ces opérations s&apos;effectuent à partir de À propos du terrain &gt; Options." 75 longdescription="Modifiez le nom, la description de la parcelle et son référencement dans la recherche à partir du menu À propos du terrain &gt; Options."
76 name="land change identity" value="18" /> 76 name="land change identity" value="18" />
77 <action 77 <action
78 description="Définir le lieu d&apos;arrivée et le routage de téléportation " 78 description="Définir le lieu d&apos;arrivée et le routage des téléportations"
79 longdescription="Sur une parcelle appartenant au groupe, les membres ayant un rôle avec ce pouvoir peuvent définir le lieu d&apos;arrivée des téléportations et définir le routage des téléportations pour plus de contrôle. Ces opérations s&apos;effectuent à partir de À propos du terrain, onglet Options." 79 longdescription="Définissez le lieu d&apos;arrivée des téléportations et le routage à partir du menu À propos du terrain &gt; Options."
80 name="land set landing point" value="19" /> 80 name="land set landing point" value="19" />
81 </action_set> 81 </action_set>
82 <action_set 82 <action_set
83 description="Ces pouvoirs permettent de contrôler les options de la parcelle, telles que l&apos;option Créer des objets ou Modifier le terrain, ainsi que les paramètres de musique et de médias." 83 description="Ces pouvoirs permettent de définir les options de la parcelle concernant la musique, les médias, la création d&apos;objets et le relief."
84 name="Parcel Settings"> 84 name="Parcel Settings">
85 <action description="Modifier les paramètres de musique et médias" 85 <action description="Modifier la musique et les médias"
86 longdescription="Modifiez les paramètres de flux musicaux et vidéos à partir de la section À propos du terrain, onglet Média." 86 longdescription="Changez la musique et les médias à partir du menu À propos du terrain &gt; Médias."
87 name="land change media" value="20" /> 87 name="land change media" value="20" />
88 <action description="Mettre la section Modifier le terrain en mode bascule" 88 <action description="Changer l&apos;option Modifier le terrain"
89 longdescription="Mettez la section Modifier le terrain en mode bascule. Avertissement : la section À propos du terrain &gt; Options &gt; Modifier le terrain permet à tout le monde de terraformer votre terrain, disposer des plantes Linden et les déplacer. Assurez-vous de bien comprendre ce que vous faites avant d&apos;attribuer ce pouvoir. Ces opérations s&apos;effectuent à partir de À propos du terrain &gt; Options." 89 longdescription="Changez l&apos;option Modifier le terrain à partir du menu À propos du terrain &gt; Options. Attention : ce pouvoir permet de terraformer votre terrain et de placer ou déplacer des plantes Linden. Assurez-vous de bien comprendre ce pouvoir avant de l&apos;attribuer. "
90 name="land edit" value="21" /> 90 name="land edit" value="21" />
91 <action 91 <action
92 description="Mettre en bascule divers paramètres À propos du terrain &gt; Options" 92 description="Changer diverses options du terrain"
93 longdescription="Mettre en bascule Sécurisé (pas de dégâts) et Voler, et permettre aux autres résidents de : Créer des objets, Modifier le terrain, Créer des repères et Lancer des scripts sur des terrains appartenant au groupe, à partir de la section À propos du terrain &gt; Options." 93 longdescription="Changez diverses options de la parcelle à partir du menu À propos du terrain &gt; Options. Vous pouvez permettre aux autres résidents de voler, créer des objets, modifier le terrain, lancer des scripts, créer des repères etc."
94 name="land options" value="22" /> 94 name="land options" value="22" />
95 </action_set> 95 </action_set>
96 <action_set 96 <action_set
97 description="Ces pouvoirs permettent aux membres d&apos;outrepasser les restrictions sur les parcelles appartenant à un groupe." 97 description="Ces pouvoirs permettent aux membres d&apos;outrepasser les restrictions sur les parcelles du groupe."
98 name="Parcel Powers"> 98 name="Parcel Powers">
99 <action description="Toujours autoriser Modifier le terrain" 99 <action description="Toujours autoriser Modifier le terrain"
100 longdescription="Les membres dans un rôle leur conférant ce pouvoir peuvent modifier le terrain d&apos;une parcelle appartenant au groupe, même si l&apos;option est désactivée dans la section À propos du terrain &gt; Options." 100 longdescription="Vous pouvez modifier le relief d&apos;une parcelle du groupe, même si l&apos;option est désactivée à partir du menu À propos du terrain &gt; Options."
101 name="land allow edit land" value="23" /> 101 name="land allow edit land" value="23" />
102 <action description="Toujours autoriser à voler" 102 <action description="Toujours autoriser à voler"
103 longdescription="Les membres dans un rôle leur conférant ce pouvoir peuvent voler sur une parcelle appartenant au groupe, même si l&apos;option est désactivée dans la section À propos du terrain &gt; Options." 103 longdescription="Vous pouvez voler sur une parcelle du groupe, même si l&apos;option est désactivée à partir du menu À propos du terrain &gt; Options."
104 name="land allow fly" value="24" /> 104 name="land allow fly" value="24" />
105 <action description="Toujours autoriser à créer des objets" 105 <action description="Toujours autoriser à créer des objets"
106 longdescription="Les membres dans un rôle leur conférant ce pouvoir peuvent créer des objets sur une parcelle appartenant au groupe, même si l&apos;option est désactivée dans la section À propos du terrain &gt; Options." 106 longdescription="Vous pouvez créer des objets sur une parcelle du groupe, même si l&apos;option est désactivée à partir du menu À propos du terrain &gt; Options."
107 name="land allow create" value="25" /> 107 name="land allow create" value="25" />
108 <action description="Toujours autoriser à créer des repères" 108 <action description="Toujours autoriser à créer des repères"
109 longdescription="Les membres dans un rôle leur conférant ce pouvoir peuvent créer un repère sur une parcelle appartenant au groupe, même si l&apos;option est désactivée dans la section À propos du terrain &gt; Options." 109 longdescription="Vous pouvez créer un repère sur une parcelle du groupe, même si l&apos;option est désactivée à partir du menu À propos du terrain &gt; Options."
110 name="land allow landmark" value="26" /> 110 name="land allow landmark" value="26" />
111 <action description="Autoriser à définir un domicile ici sur le terrain du groupe" 111 <action description="Autoriser à définir un domicile sur le terrain du groupe"
112 longdescription="Les membres dans un rôle leur conférant ce pouvoir peuvent utiliser le menu Monde &gt; Définir comme domicile sur une parcelle transférée à ce groupe." 112 longdescription="Vous pouvez définir votre domicile sur une parcelle du groupe à partir du menu Monde &gt; Définir comme domicile."
113 name="land allow set home" value="28" /> 113 name="land allow set home" value="28" />
114 </action_set> 114 </action_set>
115 <action_set 115 <action_set
116 description="Ces pouvoirs permettent d&apos;autoriser ou d&apos;interdire l&apos;accès à des parcelles appartenant au groupe, y compris de geler ou d&apos;expulser des résidents." 116 description="Ces pouvoirs permettent d&apos;autoriser ou d&apos;interdire l&apos;accès à des parcelles du groupe et de geler ou d&apos;expulser des résidents."
117 name="Parcel Access"> 117 name="Parcel Access">
118 <action description="Gérer les listes d&apos;accès à cette parcelle" 118 <action description="Gérer la liste d&apos;accès à la parcelle"
119 longdescription="Gérez les listes d&apos;accès à la parcelle à partir de la section À propos du terrain &gt; Accès." 119 longdescription="Gérez la liste des résidents autorisés sur la parcelle à partir du menu À propos du terrain &gt; Accès."
120 name="land manage allowed" value="29" /> 120 name="land manage allowed" value="29" />
121 <action description="Gérer les listes noires de cette parcelle" 121 <action description="Gérer la liste noire de cette parcelle"
122 longdescription="Gérez les listes de membres interdits sur la parcelle à partir de la section À propos du terrain &gt; Interdire." 122 longdescription="Gérez la liste des résidents interdits sur la parcelle à partir du menu À propos du terrain &gt; Interdire."
123 name="land manage banned" value="30" /> 123 name="land manage banned" value="30" />
124 <action description="Modifier les paramètres Vendre des passes sur cette parcelle" 124 <action description="Vendre des pass"
125 longdescription="Modifiez les paramètres Vendre des passes à la section À propos du terrain &gt; Accès." 125 longdescription="Choisissez le prix et la durée des pass pour accéder à la parcelle à partir du menu À propos du terrain &gt; Accès."
126 name="land manage passes" value="31" /> 126 name="land manage passes" value="31" />
127 <action description="Expulser et geler des résidents sur les parcelles" 127 <action description="Expulser et geler des résidents"
128 longdescription="Les membres dans un rôle leur conférant ce pouvoir peuvent intervenir auprès d&apos;un résident indésirable en cliquant-droit sur lui &gt; Plus et en choisissant de les expulser ou de les geler." 128 longdescription="Vous pouvez expulser ou geler un résident indésirable en cliquant-droit sur lui, menu radial &gt; Plus."
129 name="land admin" value="32" /> 129 name="land admin" value="32" />
130 </action_set> 130 </action_set>
131 <action_set 131 <action_set
132 description="Ces pouvoirs permettent d&apos;autoriser des membres à renvoyer des objets et de placer ou déplacer des plantes Linden. Ceci permet aux membres de jeter les déchets et d&apos;aménager le paysage. A utiliser avec précaution car les objets rendus le sont définitivement." 132 description="Ces pouvoirs permettent de renvoyer des objets du groupe et de placer ou déplacer des plantes Linden pour aménager le paysage. Utilisez ce pouvoir avec précaution car les objets renvoyés le sont définitivement."
133 name="Parcel Content"> 133 name="Parcel Content">
134 <action description="Renvoyer les objets appartenant au groupe" 134 <action description="Renvoyer les objets transférés au groupe"
135 longdescription="Renvoyez les objets sur des parcelles appartenant au groupe à la section À propos du terrain &gt; Objets." 135 longdescription="Vous pouvez renvoyer des objets appartenant au groupe à partir du menu À propos du terrain &gt; Objets."
136 name="land return group owned" value="48" /> 136 name="land return group owned" value="48" />
137 <action description="Renvoyer les objets attribués au groupe" 137 <action description="Renvoyer les objets attribués au groupe"
138 longdescription="Renvoyez les objets attribués au groupe et sur des parcelles appartenant au groupe à la section À propos du terrain &gt; Objets." 138 longdescription="Renvoyez les objets attribués au groupe et sur des parcelles du groupe à partir du menu À propos du terrain &gt; Objets."
139 name="land return group set" value="33" /> 139 name="land return group set" value="33" />
140 <action description="Renvoyer des objets n&apos;appartenant pas au groupe" 140 <action description="Renvoyer des objets n&apos;appartenant pas au groupe"
141 longdescription="Renvoyez les objets non attribués au groupe et sur des parcelles appartenant au groupe à la section À propos du terrain &gt; Objets." 141 longdescription="Renvoyez les objets n&apos;appartenant pas au groupe et sur des parcelles du groupe à partir du menu À propos du terrain &gt; Objets."
142 name="land return non group" value="34" /> 142 name="land return non group" value="34" />
143 <action description="Aménager le paysage avec des plantes Linden" 143 <action description="Aménager le paysage avec des plantes Linden"
144 longdescription="Le pouvoir de placer et de déplacer des arbres, plantes et pelouses Linden. Ces éléments sont disponibles dans le dossier Objets de la bibiliothèque de votre inventaire ou peuvent être créés à l&apos;aide du bouton Construire." 144 longdescription="Placez et déplacez des arbres, plantes et herbes Linden. Vous les trouverez dans le dossier Objets de la bibliothèque de votre inventaire mais aussi à partir du menu Construire."
145 name="land gardening" value="35" /> 145 name="land gardening" value="35" />
146 </action_set> 146 </action_set>
147 <action_set 147 <action_set
148 description="Ces pouvoirs permettent de transférer, modifier et vendre des objets appartenant au groupe. Ces changements se font à partir de la section Construire &gt; Modifier &gt; Général. Cliquez-droite sur un objet pour le modifier et afficher ses paramètres. " 148 description="Ces pouvoirs permettent de transférer, modifier et vendre des objets du groupe. Ces changements se font à partir du menu Construire &gt; Modifier &gt; Général."
149 name="Object Management"> 149 name="Object Management">
150 <action description="Transférer des objets au groupe" 150 <action description="Transférer des objets au groupe"
151 longdescription="Transférez des objets à un groupe à la section Construire &gt; Modifier &gt; Général." 151 longdescription="Transférez des objets au groupe à partir du menu Construire &gt; Modifier &gt; Général."
152 name="object deed" value="36" /> 152 name="object deed" value="36" />
153 <action 153 <action
154 description="Manipuler (déplacer, copier, modifier) des objets appartenant au groupe" 154 description="Manipuler les objets du groupe"
155 longdescription="Manipulez (déplacez, copiez, modifiez) des objets appartenant au groupe à la section Construire &gt; Modifier &gt; Général." 155 longdescription="Déplacez, copiez et modifiez les objets du groupe à partir du menu Construire &gt; Modifier &gt; Général."
156 name="object manipulate" value="38" /> 156 name="object manipulate" value="38" />
157 <action description="Mettre en vente des objets appartenant au groupe" 157 <action description="Vendre des objets du groupe"
158 longdescription="Définissez les objets du groupe à vendre à la section Construire &gt; Modifier &gt; Général." 158 longdescription="Mettez en vente des objets du groupe à partir du menu Construire &gt; Modifier &gt; Général."
159 name="object set sale" value="39" /> 159 name="object set sale" value="39" />
160 </action_set> 160 </action_set>
161 <action_set 161 <action_set
162 description="Les membres avec ces pouvoirs contribuent aux frais du groupe, reçoivent des dividendes et ont accès à l&apos;historique du compte du groupe." 162 description="Ce pouvoir définit les contributions aux frais du groupe, la réception des dividendes et l&apos;accès aux finances du groupe."
163 name="Accounting"> 163 name="Accounting">
164 <action description="Contribuer aux frais du groupe et recevoir des dividendes" 164 <action description="Contribuer aux frais du groupe et recevoir des dividendes"
165 longdescription="Les membres ayant ce pouvoir contribueront automatiquement aux frais du groupe et recevront aussi des dividendes. Cela signifie qu&apos;ils recevront une portion des ventes de terrains appartenant au groupe (distribuée quotidiennement) et contribueront aux frais divers, tels que les frais de mise en vente des terrains. " 165 longdescription="Contribuez aux frais du groupe et recevez des dividendes en cas de bénéfices. Vous recevrez une partie des ventes de terrains et objets appartenant au groupe et contribuerez aux frais divers (mise en vente des terrains etc.)"
166 name="accounting accountable" value="40" /> 166 name="accounting accountable" value="40" />
167 </action_set> 167 </action_set>
168 <action_set 168 <action_set
169 description="Ces pouvoirs permettent d&apos;envoyer, recevoir et consulter les notes du groupe." 169 description="Envoyez, recevez et consultez les notices du groupe."
170 name="Notices"> 170 name="Notices">
171 <action description="Envoyer des notes" 171 <action description="Envoyer des notices"
172 longdescription="Ces pouvoirs permettent d&apos;envoyer des notes à la section Infos du groupe &gt; Notes." 172 longdescription="Envoyez des notices à l&apos;onglet Notices."
173 name="notices send" value="42" /> 173 name="notices send" value="42" />
174 <action description="Recevoir des notes et consulter les anciennes notes" 174 <action description="Recevoir et consulter les notices"
175 longdescription="Ces pouvoirs permettent de recevoir des notes et de consulter d&apos;anciennes notes à la section Infos du groupe &gt; Notes." 175 longdescription="Recevez des notices et consulter d&apos;anciennes notices à l&apos;onglet Notices."
176 name="notices receive" value="43" /> 176 name="notices receive" value="43" />
177 </action_set> 177 </action_set>
178 <action_set 178 <action_set
179 description="Ces pouvoirs permettent de créer de nouvelles propositions, de voter et de consulter l&apos;historique des votes." 179 description="Ces pouvoirs permettent de créer de nouvelles propositions, de voter et de consulter l&apos;historique des votes."
180 name="Proposals"> 180 name="Proposals">
181 <action description="Créer des propositions" 181 <action description="Créer des propositions"
182 longdescription="Ces pouvoirs permettent de créer des propositions et de les soumettre au vote, à partir de la section Infos du groupe &gt; Propositions." 182 longdescription="Ces pouvoirs permettent de créer des propositions et de les soumettre au vote, à partir du menu Profil du groupe &gt; Propositions."
183 name="proposal start" value="44" /> 183 name="proposal start" value="44" />
184 <action description="Voter les propositions" 184 <action description="Voter les propositions"
185 longdescription="Ces pouvoirs permettent de voter des propositions à la section Infos du groupe &gt; Propositions." 185 longdescription="Votez les propositions à partir du menu Profil du groupe &gt; Propositions."
186 name="proposal vote" value="45" /> 186 name="proposal vote" value="45" />
187 </action_set> 187 </action_set>
188 <action_set 188 <action_set
189 description="Ces pouvoirs vous permettent d&apos;autoriser ou dinterdire l&apos;accès aux sessions de chat de groupe et au chat de groupe vocal." 189 description="Ces pouvoirs vous permettent de gérer l&apos;accès aux sessions de chat écrit ou vocal du groupe."
190 name="Chat"> 190 name="Chat">
191 <action description="Participer au chat de groupe" 191 <action description="Participer aux chats"
192 longdescription="Les membres qui ont ce pouvoir peuvent participer aux chats de groupe, texte ou vocal." 192 longdescription="Participez aux chats du groupe."
193 name="join group chat" /> 193 name="join group chat" />
194 <action description="Participer au chat de groupe vocal" 194 <action description="Participer au chat vocal"
195 longdescription="Les membres qui ont ce pouvoir peuvent participer aux chats de groupe vocaux. Remarque : pour accéder à une session de chat vocal, vous devez avoir le droit de participer à un chat de groupe." 195 longdescription="Participez au chat vocal du groupe. Remarque : vous devez au préalable avoir le pouvoir de participer aux chats."
196 name="join voice chat" /> 196 name="join voice chat" />
197 <action description="Modérer un chat de groupe" 197 <action description="Modérer les chats"
198 longdescription="Les membres dont le rôle leur confèrent ce pouvoir contrôlent l&apos;accès et la participation aux chats de groupe écrits et vocaux.le" 198 longdescription="Contrôlez l&apos;accès et la participation aux chats de groupe écrits et vocaux."
199 name="moderate group chat" /> 199 name="moderate group chat" />
200 </action_set> 200 </action_set>
201</role_actions> 201</role_actions>
diff --git a/linden/indra/newview/skins/default/xui/fr/strings.xml b/linden/indra/newview/skins/default/xui/fr/strings.xml
index 90585d3..a26088f 100644
--- a/linden/indra/newview/skins/default/xui/fr/strings.xml
+++ b/linden/indra/newview/skins/default/xui/fr/strings.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<strings> 2<strings>
3 <string name="LoginInProgress"> 3 <string name="LoginInProgress">
4 La connexion à [APP_NAME] apparaît peut-être comme étant gelée. Veuillez patienter. 4 La connexion à [APP_NAME] apparaît peut-être comme étant gelée. Veuillez patienter.
@@ -82,7 +82,7 @@
82 Toucher 82 Toucher
83 </string> 83 </string>
84 <string name="TooltipFlagL$"> 84 <string name="TooltipFlagL$">
85 $L 85 L$
86 </string> 86 </string>
87 <string name="TooltipFlagDropInventory"> 87 <string name="TooltipFlagDropInventory">
88 Laisser tomber l&apos;inventaire 88 Laisser tomber l&apos;inventaire
@@ -100,7 +100,7 @@
100 Copie autorisée 100 Copie autorisée
101 </string> 101 </string>
102 <string name="TooltipForSaleL$"> 102 <string name="TooltipForSaleL$">
103 À vendre : [AMOUNT] $L 103 À vendre : [AMOUNT] L$
104 </string> 104 </string>
105 <string name="TooltipForSaleMsg"> 105 <string name="TooltipForSaleMsg">
106 À vendre : [MESSAGE] 106 À vendre : [MESSAGE]
@@ -139,7 +139,7 @@
139 Notes de version 139 Notes de version
140 </string> 140 </string>
141 <string name="LoadingData"> 141 <string name="LoadingData">
142 Chargement en cours... 142 Chargement..
143 </string> 143 </string>
144 <string name="AvatarNameNobody"> 144 <string name="AvatarNameNobody">
145 (personne) 145 (personne)
@@ -301,7 +301,7 @@
301 Non 301 Non
302 </string> 302 </string>
303 <string name="anim_nyanya"> 303 <string name="anim_nyanya">
304 Na na na nère 304 Na na na na nère
305 </string> 305 </string>
306 <string name="anim_punch_onetwo"> 306 <string name="anim_punch_onetwo">
307 Gauche-droite 307 Gauche-droite
@@ -403,15 +403,15 @@
403 Oui 403 Oui
404 </string> 404 </string>
405 <string name="texture_loading"> 405 <string name="texture_loading">
406 Chargement en cours... 406 Chargement...
407 </string> 407 </string>
408 <string name="worldmap_offline"> 408 <string name="worldmap_offline">
409 Hors ligne 409 Hors ligne
410 </string> 410 </string>
411 <string name="whisper"> 411 <string name="whisper">
412 chuchotages : 412 chuchote :
413 </string> 413 </string>
414 <string name="shout"> 414 <string name="shout">
415 cris : 415 crie :
416 </string> 416 </string>
417</strings> 417</strings>
diff --git a/linden/indra/newview/skins/default/xui/ja/alerts.xml b/linden/indra/newview/skins/default/xui/ja/alerts.xml
index 9fb7a12..30ba935 100644
--- a/linden/indra/newview/skins/default/xui/ja/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/ja/alerts.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<alerts> 2<alerts>
3 <global name="skipnexttime"> 3 <global name="skipnexttime">
4 今後ã¯è¡¨ç¤ºã—ãªã„ 4 今後ã¯è¡¨ç¤ºã—ãªã„
@@ -200,7 +200,7 @@ Studio exhibitã®ã‚¦ã‚§ãƒ–・ページã§ç¢ºèªã—ã¦ãã ã•ã„。
200 </alert> 200 </alert>
201 <alert name="GroupCreateSuccess"> 201 <alert name="GroupCreateSuccess">
202 <message name="message"> 202 <message name="message">
203 グループã®ä½œæˆãŒæ­£å¸¸ã«çµäº†ãã¾ã—ãŸã€‚ 203 グループã®ä½œæˆãŒæ­£å¸¸ã«è¡Œãã‚Œã¾ã—ãŸã€‚
204 </message> 204 </message>
205 </alert> 205 </alert>
206 <alert name="UnableToCreateGroup"> 206 <alert name="UnableToCreateGroup">
@@ -383,22 +383,22 @@ Studio exhibitã®ã‚¦ã‚§ãƒ–・ページã§ç¢ºèªã—ã¦ãã ã•ã„。
383 </alert> 383 </alert>
384 <alert name="ClickWebProfileHelpAvatar"> 384 <alert name="ClickWebProfileHelpAvatar">
385 <message name="message"> 385 <message name="message">
386 ã“ã®ä½äººãŒã‚¦ã‚§ãƒ–プロフィールURLを設定ã—ã¦ã„ã‚‹å ´åˆã¯ã€ä»¥ä¸‹ã®ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚ 386 ã“ã®ä½äººãŒã‚¦ã‚§ãƒ–・プロフィールURLを設定ã—ã¦ã„ã‚‹å ´åˆã¯ã€ä»¥ä¸‹ã®ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚
387 * ãã®ãƒšãƒ¼ã‚¸ã‚’内蔵ブラウã‚ーã§è¡¨ç¤ºãã‚‹ã«ã¯ã€ [ロード]ã‚クリックã—ã¾ã™ã€ 387 * [ロード]をクリックãããã®ã‚¦ã‚§ãƒãƒ»ã‚¿ãƒ–内ã§ãƒšãƒ¼ã‚¸ã‚’表示
388 * ãã®ãƒšãƒ¼ã‚¸ã‚’外部ブラウザーã§è¡¨ç¤ºã™ã‚‹ã«ã¯ã€ [ロード]-[é–‹ã]をクリックã—ã¾ã™ã€‚ 388 * [ロード] &gt; &apos;外部ブラウザ&apos; をクリックã—ã€ãƒ‡ã‚£ãƒ•ã‚©ãƒ«ãƒˆã®ã‚¦ã‚§ãƒ–・ブラウザã§ãƒšãƒ¼ã‚¸ã‚’表示
389 * 別ã®ãƒšãƒ¼ã‚¸ã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã—ã¾ã„〠ä½äººã®ã‚¦ã‚§ãƒ–・プロフィールã«æˆ»ã‚ŠãŸã„時ã¯ã€ [ロード]-[ホームURL]をクリックã—ã¾ã™ã€‚ 389 * [ロード] &gt; &apos;ホームURL&apos; をクリックã—ã€ä»–ã®ãƒšãƒ¼ã‚¸ã‹ã‚‰ã“ã®ä½äººã®ã‚¦ã‚§ãƒ–・プロフィールã«æˆ»ã‚‹
390 390
391自分ã®ãƒ—ロフィールを表示ã—ã¦ã„ã‚‹ã¨ãã¯ã€ä»»æ„ã®URLをウェブプロフィールã¨ã—ã¦å…¥åŠ›ã—ã€[OK]をクリックã—ã¦è¨­å®šã§ãã¾ã™ã€‚ 391自分ã®ãƒ—ロフィールã«ä»»æ„ã®URLを入力ã—OKをクリックã—ã¦ã€ã‚¦ã‚§ãƒ–・プロフィールã¨ã—ã¦è¨­å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
392プロフã£ãƒ¼ãƒ«ã‚’見ãŸä»–ã®ä½äººã¯ããã®URLã«ã¢ã‚¯ã‚»ã‚¹ãã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 392ãれを見ãŸä»–ã®ä½äººãŒãã®ã‚µã‚¤ãƒˆã‚’訪れるã“ã¨ãŒã§ãã¾ã™ã€‚
393 </message> 393 </message>
394 </alert> 394 </alert>
395 <alert name="ClickWebProfileNoWebHelpAvatar"> 395 <alert name="ClickWebProfileNoWebHelpAvatar">
396 <message name="message"> 396 <message name="message">
397 ã“ã®ä½äººãŒã‚¦ã‚§ãƒ–・プロフィールURLを設定ã—ã¦ã„ã‚‹å ´åˆã¯ã€ä»¥ä¸‹ã®ã“ã¨ãŒå¯èƒ½ã§ã™: 397 ã“ã®ä½äººãŒã‚¦ã‚§ãƒ–・プロフィールURLを設定ã—ã¦ã„ã‚‹å ´åˆã¯ã€ä»¥ä¸‹ã®ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚
398*ãã®ãƒšãƒ¼ã‚¸ã‚’デフォルトã®å¤–部ウェブ・ブラウザーã§è¡¨ç¤ºã™ã‚‹ã«ã¯ã€[é–‹ã]をクリックã—ã¾ã™ã€‚ 398 * Openをクリックã—ã€ãƒ‡ã‚£ãƒ•ã‚©ãƒ«ãƒˆã®ã‚¦ã‚§ãƒ–・ブラウザã§ãƒšãƒ¼ã‚¸ã‚’表示
399 399
400自分ã®ãƒ—ロフィールを表示ã—ã¦ã„ã‚‹ã¨ãã¯ã€ä»»æ„ã®URLをウェブ・プロフィールã¨ã—ã¦å…¥åŠ›ã§ãã¾ã™ã€‚ 400自分ã®ãƒ—ロフィールã«ä»»æ„ã®URLを入力ã—OKをクリックã—ã¦ã€ã‚¦ã‚§ãƒ–・プロフィールã¨ã—ã¦è¨­å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
401プロフã£ãƒ¼ãƒ«ã‚’見ãŸä½äººã¯ããã®URLã«ã¢ã‚¯ã‚»ã‚¹ãã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 401ãれを見ãŸä»–ã®ä½äººãŒãã®ã‚µã‚¤ãƒˆã‚’訪れるã“ã¨ãŒã§ãã¾ã™ã€‚
402 </message> 402 </message>
403 </alert> 403 </alert>
404 <alert name="ReputationMinGreaterThanMax"> 404 <alert name="ReputationMinGreaterThanMax">
@@ -468,8 +468,8 @@ Studio exhibitã®ã‚¦ã‚§ãƒ–・ページã§ç¢ºèªã—ã¦ãã ã•ã„。
468 </alert> 468 </alert>
469 <alert name="JoinGroupCannotAfford"> 469 <alert name="JoinGroupCannotAfford">
470 <message name="message"> 470 <message name="message">
471 ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚加ã™ã‚‹ã«ã¯L$[COST]ããã‚Šã¾ã™ã€‚ 471 ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«åŠ å…¥ã™ã‚‹ã«ã¯ã€L$[COST]å¿…è¦ã§ã™ã€‚
472残金ä¸è¶³ã®ãŸã‚ãã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚加ã§ãã¾ã›ã‚“。 472L$ãŒä¸è¶³ãã¦ã„ã‹ã®ã§ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚加ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。
473 </message> 473 </message>
474 </alert> 474 </alert>
475 <alert name="LandBuyPass"> 475 <alert name="LandBuyPass">
@@ -656,12 +656,12 @@ Studio exhibitã®ã‚¦ã‚§ãƒ–・ページã§ç¢ºèªã—ã¦ãã ã•ã„。
656 </alert> 656 </alert>
657 <alert name="PromptRecipientEmail"> 657 <alert name="PromptRecipientEmail">
658 <message name="message"> 658 <message name="message">
659 å—信者ã®é›»å­ãƒ¡ãƒ¼ãƒ«ãƒ»ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。 659 å—信者ã®æœ‰åŠ¹ãªEメールアドレスを入力ã—ã¦ãã ã•ã„。
660 </message> 660 </message>
661 </alert> 661 </alert>
662 <alert name="PromptSelfEmail"> 662 <alert name="PromptSelfEmail">
663 <message name="message"> 663 <message name="message">
664 ã‚ãªãŸã®é›»å­ãƒ¡ãƒ¼ãƒ«ãƒ»ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。 664 ã‚ãªãŸã®Eメール・アドレスを入力ã—ã¦ãã ã•ã„。
665 </message> 665 </message>
666 </alert> 666 </alert>
667 <alert name="PromptMissingSubjMsg"> 667 <alert name="PromptMissingSubjMsg">
@@ -716,14 +716,6 @@ Studio exhibitã®ã‚¦ã‚§ãƒ–・ページã§ç¢ºèªã—ã¦ãã ã•ã„。
716 ã¾ã èª­ã¿è¾¼ã¾ã‚Œã¦ã„ãªã„ãŸã‚ã€ãã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’装ç€ã§ãã¾ã›ã‚“。後ã§ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。 716 ã¾ã èª­ã¿è¾¼ã¾ã‚Œã¦ã„ãªã„ãŸã‚ã€ãã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’装ç€ã§ãã¾ã›ã‚“。後ã§ã‚„ã‚Šç›´ã—ã¦ãã ã•ã„。
717 </message> 717 </message>
718 </alert> 718 </alert>
719 <alert name="MustHaveAccountToLogInNoLinks">
720 <message name="message">
721 [SECOND_LIFE]ã¸ã®æŽ¥ç¶šã«ã¯ã‚¢ã‚«ã‚¦ãƒ³ãƒˆãŒå¿…è¦ã§ã™ã€‚
722 </message>
723 <option name="OK">
724 é–‰ã˜ã‚‹
725 </option>
726 </alert>
727 <alert name="MustHaveAccountToLogIn"> 719 <alert name="MustHaveAccountToLogIn">
728 <message name="message"> 720 <message name="message">
729 ãŠã£ã¨! 記入æ¼ã‚ŒãŒã‚ã‚Šã¾ã™ã‚ˆã€‚ 721 ãŠã£ã¨! 記入æ¼ã‚ŒãŒã‚ã‚Šã¾ã™ã‚ˆã€‚
@@ -886,8 +878,7 @@ Studio exhibitã®ã‚¦ã‚§ãƒ–・ページã§ç¢ºèªã—ã¦ãã ã•ã„。
886 </alert> 878 </alert>
887 <alert name="GoToAuctionPage"> 879 <alert name="GoToAuctionPage">
888 <message name="message"> 880 <message name="message">
889 オークションã®è©³ç´°ã‚’見ãŸã‚Šã€ 881 [SECOND_LIFE]ウェブ・ページã«ç§»å‹•ã—〠入札ã‚ã‚‹ã„ã¯ã‚ªãƒ¼ã‚¯ã‚·ãƒ§ãƒ³ã®è©³ç´°ã‚’確èªã—ã¾ã™ã‹ï¼Ÿ
890入札をã™ã‚‹ãŸã‚ã«[SECOND_LIFE]ウェブ・ページã«ç§»å‹•ã—ã¾ã™ã‹ï¼Ÿ
891 </message> 882 </message>
892 <option name="GotoPage"> 883 <option name="GotoPage">
893 OK 884 OK
@@ -1026,10 +1017,10 @@ Studio exhibitã®ã‚¦ã‚§ãƒ–・ページã§ç¢ºèªã—ã¦ãã ã•ã„。
1026 </alert> 1017 </alert>
1027 <alert name="UnsupportedHardware"> 1018 <alert name="UnsupportedHardware">
1028 <message name="message"> 1019 <message name="message">
1029 警告: ã‚ãªãŸã®ã‚·ã‚¹ãƒ†ãƒ ã¯ Second Life を使用ã™ã‚‹ãŸã‚ã«å¿…è¦ãªå¿…須動作環境ã®æ¡ä»¶ã‚’を満ãŸã—ã¦ã„ã¾ã›ã‚“。 Second Life ã‚’ã“ã®ã¾ã¾ã”使用ã«ãªã‚‹ã¨ã€ä¸å分ãªãƒ‘フォーマンスã—ã‹å¾—られãªã„ãŠãã‚ŒãŒã‚ã‚Šã¾ã™ã€‚ ã¾ãŸã€ã‚µãƒãƒ¼ãƒˆå¤–ã®ã‚·ã‚¹ãƒ†ãƒ æ§‹æˆã§ã”使用ã®å ´åˆã€ãƒ†ã‚¯ãƒ‹ã‚«ãƒ«ã‚µãƒãƒ¼ãƒˆã‚’ã”利用ã„ãŸã ãã“ã¨ãŒã§ãã¾ã›ã‚“。 1020 警告: ã‚ãªãŸã®ã‚·ã‚¹ãƒ†ãƒ ã¯ Second Life を使用ã™ã‚‹ãŸã‚ã«å¿…è¦ãªå¿…須動作環境ã®æ¡ä»¶ã‚’満ãŸã—ã¦ã„ã¾ã›ã‚“。 Second Life ã‚’ã“ã®ã¾ã¾ã”使用ã«ãªã‚‹ã¨ã€ä¸å分ãªãƒ‘フォーマンスã—ã‹å¾—られãªã„ãŠãã‚ŒãŒã‚ã‚Šã¾ã™ã€‚ ã¾ãŸã€ã‚µãƒãƒ¼ãƒˆå¤–ã®ã‚·ã‚¹ãƒ†ãƒ æ§‹æˆã§ã”使用ã®å ´åˆã€ãƒ†ã‚¯ãƒ‹ã‚«ãƒ«ã‚µãƒãƒ¼ãƒˆã‚’ã”利用ã„ãŸã ãã“ã¨ãŒã§ãã¾ã›ã‚“。
1030 1021
1031 必須動作環境ã®æ¡ä»¶ 1022 必須動作環境ã®æ¡ä»¶
1032ï¼»_URLï¼½ ã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã€ã•ã‚‰ã«è©³ã—ã„情報をã”覧ã«ãªã‚Šã¾ã™ã‹? 1023[_URL] ã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã€ã•ã‚‰ã«è©³ã—ã„情報をã”覧ã«ãªã‚Šã¾ã™ã‹?
1033 </message> 1024 </message>
1034 <ignore name="ignore"> 1025 <ignore name="ignore">
1035 サãƒãƒ¼ãƒˆå¤–ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã®æ¤œå‡ºæ™‚ 1026 サãƒãƒ¼ãƒˆå¤–ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã®æ¤œå‡ºæ™‚
@@ -1394,6 +1385,28 @@ www.secondlife.comã«æˆ»ã£ã¦ã€æ–°è¦ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®ä½œæˆã‚’è¡Œã„ã¾ã™ã
1394 キャンセル 1385 キャンセル
1395 </option> 1386 </option>
1396 </alert> 1387 </alert>
1388 <alert name="EjectAvatarNoBan">
1389 <message name="message">
1390 ã“ã®ã‚¢ãƒã‚¿ãƒ¼ã‚’ã‚ãªãŸã®åœŸåœ°ã‹ã‚‰è¿½æ”¾ã—ã¾ã™ã‹ï¼Ÿ
1391 </message>
1392 <option name="Eject">
1393 追放
1394 </option>
1395 <option name="Cancel">
1396 キャンセル
1397 </option>
1398 </alert>
1399 <alert name="EjectAvatarFullnameNoBan">
1400 <message name="message">
1401 [AVATAR_NAME] ã‚’ã‚ãªãŸã®åœŸåœ°ã‹ã‚‰è¿½æ”¾ã—ã¾ã™ã‹ï¼Ÿ
1402 </message>
1403 <option name="Eject">
1404 追放
1405 </option>
1406 <option name="Cancel">
1407 キャンセル
1408 </option>
1409 </alert>
1397 <alert name="InvalidUUID"> 1410 <alert name="InvalidUUID">
1398 <message name="message"> 1411 <message name="message">
1399 UUIDãŒç„¡åŠ¹ã§ã™ã€‚ 1412 UUIDãŒç„¡åŠ¹ã§ã™ã€‚
@@ -1573,12 +1586,12 @@ www.secondlife.comã«æˆ»ã£ã¦ã€æ–°è¦ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®ä½œæˆã‚’è¡Œã„ã¾ã™ã
1573 </alert> 1586 </alert>
1574 <alert name="InsufficientFundsToUploadFile"> 1587 <alert name="InsufficientFundsToUploadFile">
1575 <message name="message"> 1588 <message name="message">
1576 ファイルをアップロードã™ã‚‹ã«ã¯è³‡é‡‘ä¸è¶³ã§ã™:価格ã¯L$[COST]ã§ã™ãŒã€æ®‹é‡‘ã¯L$[BALANCE]ã§ã™ã€‚ 1589 L$ä¸è¶³ã®ãŸã‚ã€ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚¢ãƒƒãƒ—ロードãŒã§ãã¾ã›ã‚“。 å¿…è¦é‡‘é¡ã¯L$[COST], 残高ã¯L$[BALANCE]ã§ã™ã€‚
1577 </message> 1590 </message>
1578 </alert> 1591 </alert>
1579 <alert name="InsufficientFundsToFinishUpload"> 1592 <alert name="InsufficientFundsToFinishUpload">
1580 <message name="message"> 1593 <message name="message">
1581 ファイル[FILE]ã®ã‚¢ãƒƒãƒ—ロードを完了ã™ã‚‹ã«ã¯è³‡é‡‘ä¸è¶³ã§ã™:価格ã¯L$[COST]ã§ã™ãŒã€æ®‹é‡‘ã¯L$[BALANCE]ã§ã™ã€‚ 1594 L$ä¸è¶³ã®ãŸã‚ã€[FILE]ã®ã‚¢ãƒƒãƒ—ロードãŒã§ãã¾ã›ã‚“。 å¿…è¦é‡‘é¡ã¯L$[COST], 残高ã¯L$[BALANCE]ã§ã™ã€‚
1582 </message> 1595 </message>
1583 </alert> 1596 </alert>
1584 <alert name="CannotUploadReason"> 1597 <alert name="CannotUploadReason">
@@ -2074,10 +2087,13 @@ L$ã¯è´ˆä¸Žã•ã‚Œã¾ã›ã‚“。
2074 </alert> 2087 </alert>
2075 <alert name="AddFriend" title="フレンドを追加"> 2088 <alert name="AddFriend" title="フレンドを追加">
2076 <message name="message"> 2089 <message name="message">
2077 フレンドåŒå£«ã¯ãŠäº’ã„ã®ç¾åœ¨åœ°ã‚’地図ã«è¡¨ç¤ºã™ã‚‹ã“ã¨ã‚’許å¯ã—ã€ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã®æ›´æ–°ãŒã§ãã¾ã™ 2090 フレンドã¨ã—ã¦è¿½åŠ ã™ã‚‹ã¨ã€ãŠäº’ã„ã®ç¾åœ¨åœ°ã®åœ°å›³ã¸ã®è¡¨ç¤ºè¨±å¯ã€ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹è¡¨ç¤ºã®è¨­å®šã‚’ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
2078 2091
2079[NAME] ã«ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒ—ã‚’é€ã‚Šã¾ã™ã‹ï¼Ÿ 2092[NAME] ã«ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒ—ã‚’é€ã‚Šã¾ã™ã‹ï¼Ÿ
2080 </message> 2093 </message>
2094 <editline name="editline">
2095 フレンドã¨ã—ã¦ç™»éŒ²ã—ã¦ãã‚Œã¾ã™ã‹ï¼Ÿ
2096 </editline>
2081 <option name="Offer"> 2097 <option name="Offer">
2082 OK 2098 OK
2083 </option> 2099 </option>
@@ -2087,12 +2103,12 @@ L$ã¯è´ˆä¸Žã•ã‚Œã¾ã›ã‚“。
2087 </alert> 2103 </alert>
2088 <alert name="AddFriendWithMessage" title="フレンドを追加"> 2104 <alert name="AddFriendWithMessage" title="フレンドを追加">
2089 <message name="message"> 2105 <message name="message">
2090 フレンドåŒå£«ã¯ãŠäº’ã„ã®ç¾åœ¨åœ°ã‚’地図ã«è¡¨ç¤ºã™ã‚‹ã“ã¨ã‚’許å¯ã—ã€ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã®æ›´æ–°ãŒã§ãã¾ã™ 2106 フレンドã¨ã—ã¦è¿½åŠ ã™ã‚‹ã¨ã€ãŠäº’ã„ã®ç¾åœ¨åœ°ã®åœ°å›³ã¸ã®è¡¨ç¤ºè¨±å¯ã€ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹è¡¨ç¤ºã®è¨­å®šã‚’ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
2091 2107
2092[NAME] ã«ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒ—ã®ã‚ªãƒ•ã‚¡ãƒ¼ã‚’ã—ã¾ã™ã‹ï¼Ÿ 2108[NAME] ã«ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒ—ã®ã‚ªãƒ•ã‚¡ãƒ¼ã‚’ã—ã¾ã™ã‹ï¼Ÿ
2093 </message> 2109 </message>
2094 <editline name="editline"> 2110 <editline name="editline">
2095 ç§ã®ãƒ•ãƒ¬ãƒ³ãƒ‰ã«ãªã£ã¦ããŸã ãã¾ã™ã‹ï¼Ÿ 2111 フレンドã¨ãã¦ç™»éŒ²ãã¦ãã‚Œã¾ã™ã‹ï¼Ÿ
2096 </editline> 2112 </editline>
2097 <option name="Offer"> 2113 <option name="Offer">
2098 OK 2114 OK
@@ -2444,8 +2460,8 @@ http://www.apple.com/quicktime/ã§ã€æœ€æ–°ç‰ˆã‚’ダウンロードã—ã¦ãã ã
2444 </alert> 2460 </alert>
2445 <alert name="AvatarMoved"> 2461 <alert name="AvatarMoved">
2446 <message name="message"> 2462 <message name="message">
2447 [TYPE]ã®ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã¯ç¾åœ¨åˆ©ç”¨ã§ãã¾ã›ã‚“。 [HELP] 2463 ã‚ãªãŸãŒè¨ªã‚ŒãŸã„[TYPE]ã®ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã¯ç¾åœ¨ã”利用ã§ãã¾ã›ã‚“。 [HELP]
2448ã‚ãªãŸã¯è¿‘ãã®åœ°åŸŸã«ç§»ã•ã‚Œã¾ã—ãŸã€‚ 2464è¿‘ãã®åœ°åŸŸã«ç§»å‹•ãã¾ã—ãŸã€‚
2449 </message> 2465 </message>
2450 </alert> 2466 </alert>
2451 <alert name="ClothingLoading"> 2467 <alert name="ClothingLoading">
@@ -2523,7 +2539,7 @@ F1キーを押ã—ã¦ãã ã•ã„。
2523 </alert> 2539 </alert>
2524 <alert name="NotEnoughCurrency"> 2540 <alert name="NotEnoughCurrency">
2525 <message name="message"> 2541 <message name="message">
2526 [NAME] L$ [PRICE] 残金ãŒè¶³ã‚Šã¾ãã‚。 2542 [NAME] L$ [PRICE] 残高ä¸è¶³ã®ãŸã‚実行ä¸å¯ã§ã™ã€‚
2527 </message> 2543 </message>
2528 </alert> 2544 </alert>
2529 <alert name="GrantedModifyRights"> 2545 <alert name="GrantedModifyRights">
@@ -2781,10 +2797,10 @@ F1キーを押ã—ã¦ãã ã•ã„。
2781 </alert> 2797 </alert>
2782 <alert name="WebLaunchExternalTarget"> 2798 <alert name="WebLaunchExternalTarget">
2783 <message name="message"> 2799 <message name="message">
2784 ãŠä½¿ã„ã®ã‚·ã‚¹ãƒ†ãƒ ã®ã‚¦ã‚§ãƒ–・ブラウザーを開ã„ã¦ã€ã“ã®å†…容を表示ã—ã¾ã™ã‹? 2800 ãŠä½¿ã„ã®ã‚·ã‚¹ãƒ†ãƒ ã®ã‚¦ã‚§ãƒ–・ブラウザを開ã„ã¦ã€ã“ã®å†…容を表示ã—ã¾ã™ã‹?
2785 </message> 2801 </message>
2786 <ignore name="ignore"> 2802 <ignore name="ignore">
2787 ãŠä½¿ã„ã®ã‚·ã‚¹ãƒ†ãƒ ã®ãƒ–ラウザーを開ã„ã¦ã‚¦ã‚§ãƒ–・ページを表示ã—よã†ã¨ã—ãŸã¨ã 2803 ãŠä½¿ã„ã®ã‚·ã‚¹ãƒ†ãƒ ã®ãƒ–ラウザを開ã„ã¦ã‚¦ã‚§ãƒ–・ページを表示ã—よã†ã¨ã—ãŸã¨ã
2788 </ignore> 2804 </ignore>
2789 <option name="Open"> 2805 <option name="Open">
2790 OK 2806 OK
@@ -2798,7 +2814,7 @@ F1キーを押ã—ã¦ãã ã•ã„。
2798 www.secondlife.comã«ç§»å‹•ã—ã¦ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’管ç†ã—ã¾ã™ã‹ï¼Ÿ 2814 www.secondlife.comã«ç§»å‹•ã—ã¦ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’管ç†ã—ã¾ã™ã‹ï¼Ÿ
2799 </message> 2815 </message>
2800 <ignore name="ignore"> 2816 <ignore name="ignore">
2801 å£åº§ã‚’管ç†ã™ã‚‹ãŸã‚ã€ã‚¦ã‚§ãƒ–・ブラウザーを起動ã™ã‚‹ã¨ã 2817 アカウントを管ç†ã™ã‚‹ãŸã‚ã€ã‚¦ã‚§ãƒ–・ブラウザを起動ã™ã‚‹ã¨ã
2802 </ignore> 2818 </ignore>
2803 <option name="OK"> 2819 <option name="OK">
2804 OK 2820 OK
@@ -2837,10 +2853,10 @@ F1キーを押ã—ã¦ãã ã•ã„。
2837 </alert> 2853 </alert>
2838 <alert name="WebLaunchQAWiki"> 2854 <alert name="WebLaunchQAWiki">
2839 <message name="message"> 2855 <message name="message">
2840 [SECOND_LIFE] QA Wikiã‚’ã”覧ãã ã•ã„。 2856 [SECOND_LIFE] å“質ä¿è¨¼é–¢é€£Wikiã‚’ã”覧ãã ã•ã„。
2841 </message> 2857 </message>
2842 <ignore name="ignore"> 2858 <ignore name="ignore">
2843 QA Wikiを閲覧ã™ã‚‹ãŸã‚ã«ã‚¦ã‚§ãƒ–・ブラウザを起動ã™ã‚‹ã«ã‚ãŸã£ã¦ 2859 å“質ä¿è¨¼é–¢é€£Wikiを閲覧ã™ã‚‹ãŸã‚ã«ã‚¦ã‚§ãƒ–・ブラウザを起動ã™ã‚‹ã«ã‚ãŸã£ã¦
2844 </ignore> 2860 </ignore>
2845 <option name="Gotopage"> 2861 <option name="Gotopage">
2846 OK 2862 OK
@@ -2879,10 +2895,10 @@ F1キーを押ã—ã¦ãã ã•ã„。
2879 </alert> 2895 </alert>
2880 <alert name="WebLaunchForums"> 2896 <alert name="WebLaunchForums">
2881 <message name="message"> 2897 <message name="message">
2882 最新ã®ãƒ’ントãŠã‚ˆã³ãƒˆãƒªãƒƒã‚¯ã«ã¤ã„ã¦ã¯ã€[SECOND_LIFE]ã®çŸ¥è­˜ãƒ™ãƒ¼ã‚¹ã‚’検索ã—ã¦ãã ã•ã„。 2898 最新ã®ãƒ’ントãŠã‚ˆã³ãƒˆãƒªãƒƒã‚¯ã«ã¤ã„ã¦ã¯ã€[SECOND_LIFE]ã®ãƒŠãƒ¬ãƒƒã‚¸ãƒ™ãƒ¼ã‚¹ã‚’検索ã—ã¦ãã ã•ã„。
2883 </message> 2899 </message>
2884 <ignore name="ignore"> 2900 <ignore name="ignore">
2885 知識ベースを表示ã™ã‚‹ãŸã‚ã€ã‚¦ã‚§ãƒ–・ブラウザーを起動ã™ã‚‹ã¨ã 2901 ナレッジベースを表示ã™ã‚‹ãŸã‚ã€ã‚¦ã‚§ãƒ–・ブラウザを起動ã™ã‚‹ã¨ã
2886 </ignore> 2902 </ignore>
2887 <option name="Gotopage"> 2903 <option name="Gotopage">
2888 OK 2904 OK
@@ -2896,7 +2912,7 @@ F1キーを押ã—ã¦ãã ã•ã„。
2896 [SECOND_LIFE]サãƒãƒ¼ãƒˆã«ã‚³ãƒ³ã‚¿ã‚¯ãƒˆ 2912 [SECOND_LIFE]サãƒãƒ¼ãƒˆã«ã‚³ãƒ³ã‚¿ã‚¯ãƒˆ
2897 </message> 2913 </message>
2898 <ignore name="ignore"> 2914 <ignore name="ignore">
2899 サãƒãƒ¼ãƒˆã«é€£çµ¡ã™ã‚‹ãŸã‚ã€ã‚¦ã‚§ãƒ–・ブラウザーを起動ã™ã‚‹ã¨ã 2915 サãƒãƒ¼ãƒˆã«é€£çµ¡ã™ã‚‹ãŸã‚ã€ã‚¦ã‚§ãƒ–・ブラウザを起動ã™ã‚‹ã¨ã
2900 </ignore> 2916 </ignore>
2901 <option name="Gotopage"> 2917 <option name="Gotopage">
2902 OK 2918 OK
@@ -2910,7 +2926,7 @@ F1キーを押ã—ã¦ãã ã•ã„。
2910 Lindenå…¬å¼ãƒ–ログã§ã€æœ€æ–°ã®ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚„情報を入手ã—ã¦ãã ã•ã„。 2926 Lindenå…¬å¼ãƒ–ログã§ã€æœ€æ–°ã®ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚„情報を入手ã—ã¦ãã ã•ã„。
2911 </message> 2927 </message>
2912 <ignore name="ignore"> 2928 <ignore name="ignore">
2913 ブログを表示ã™ã‚‹ãŸã‚ã€ã‚¦ã‚§ãƒ–・ブラウザーを起動ã™ã‚‹ã¨ã 2929 ブログを表示ã™ã‚‹ãŸã‚ã€ã‚¦ã‚§ãƒ–・ブラウザを起動ã™ã‚‹ã¨ã
2914 </ignore> 2930 </ignore>
2915 <option name="Gotopage"> 2931 <option name="Gotopage">
2916 OK 2932 OK
@@ -2924,7 +2940,7 @@ F1キーを押ã—ã¦ãã ã•ã„。
2924 スクリプトガイドを開ã„ã¦ã€ã‚¹ã‚¯ãƒªãƒ—トã®ãƒ˜ãƒ«ãƒ—ã‚’å‚ç…§ã—ã¾ã™ã‹ï¼Ÿ 2940 スクリプトガイドを開ã„ã¦ã€ã‚¹ã‚¯ãƒªãƒ—トã®ãƒ˜ãƒ«ãƒ—ã‚’å‚ç…§ã—ã¾ã™ã‹ï¼Ÿ
2925 </message> 2941 </message>
2926 <ignore name="ignore"> 2942 <ignore name="ignore">
2927 LSLガイドを表示ã™ã‚‹ãŸã‚ã€ã‚¦ã‚§ãƒ–・ブラウザーを起動ã™ã‚‹ã¨ã 2943 LSLガイドを表示ã™ã‚‹ãŸã‚ã€ã‚¦ã‚§ãƒ–・ブラウザを起動ã™ã‚‹ã¨ã
2928 </ignore> 2944 </ignore>
2929 <option name="Gotopage"> 2945 <option name="Gotopage">
2930 OK 2946 OK
@@ -2938,7 +2954,7 @@ F1キーを押ã—ã¦ãã ã•ã„。
2938 LSLãƒãƒ¼ã‚¿ãƒ«ã‚’é–‹ã„ã¦ã‚¹ã‚¯ãƒªãƒ—トã®ãƒ˜ãƒ«ãƒ—ã‚’å‚ç…§ã—ã¾ã™ã‹ï¼Ÿ 2954 LSLãƒãƒ¼ã‚¿ãƒ«ã‚’é–‹ã„ã¦ã‚¹ã‚¯ãƒªãƒ—トã®ãƒ˜ãƒ«ãƒ—ã‚’å‚ç…§ã—ã¾ã™ã‹ï¼Ÿ
2939 </message> 2955 </message>
2940 <ignore name="ignore"> 2956 <ignore name="ignore">
2941 LSLãƒãƒ¼ã‚¿ãƒ«ã‚’表示ã™ã‚‹ãŸã‚ã«ã€ã‚¦ã‚§ãƒ–・ブラウザーを起動ã™ã‚‹ã¨ã 2957 LSLãƒãƒ¼ã‚¿ãƒ«ã‚’表示ã™ã‚‹ãŸã‚ã«ã€ã‚¦ã‚§ãƒ–・ブラウザを起動ã™ã‚‹ã¨ã
2942 </ignore> 2958 </ignore>
2943 <option name="Gotopage"> 2959 <option name="Gotopage">
2944 ページã«ç§»å‹• 2960 ページã«ç§»å‹•
@@ -3062,14 +3078,13 @@ F1キーを押ã—ã¦ãã ã•ã„。
3062 </alert> 3078 </alert>
3063 <alert name="BusyModeSet"> 3079 <alert name="BusyModeSet">
3064 <message name="message"> 3080 <message name="message">
3065 ビジーモードã«è¨­å®šã•ã‚Œã¾ã—ãŸã€‚ 3081 å–ã‚Šè¾¼ã¿ä¸­ã«è¨­å®šã•ã‚Œã¾ã—ãŸã€‚
3066ãƒãƒ£ãƒƒãƒˆã¨ï¼©ï¼­ãŒéš ã‚Œã¾ã™ã€‚ IM 3082ãƒãƒ£ãƒƒãƒˆã¨ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ãƒˆãƒ»ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ï¼ˆIM)ãŒéš ã‚Œã¾ã™ã€‚
3067ã¯ã€ãƒ“ジーモードã®å¿œç­”ã‚’å—ã‘å–ã‚Šã¾ã™ã€‚ å…¨ã¦ã®ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ 3083相手ã¯ã€Œå–ã‚Šè¾¼ã¿ä¸­å¿œç­”メッセージã€ã‚’IMã§å—ã‘å–ã‚Šã¾ã™ã€‚
3068ã®ã‚ªãƒ•ã‚¡ãƒ¼ã¯æ‹’å¦ã•ã‚Œã¾ã™ã€‚ å…¨ã¦ã®æŒã¡ç‰©ã®ã‚ªãƒ•ã‚¡ãƒ¼ã¯ã‚´ãƒŸç®±ã« 3084テレãƒãƒ¼ãƒˆã®ã‚ªãƒ•ã‚¡ãƒ¼ã¯å…¨ã¦æ‹’å¦ã•ã‚Œã€æŒã¡ç‰©ã®ã‚ªãƒ•ã‚¡ãƒ¼ã¯å…¨ã¦ã‚´ãƒŸç®±ã«é€ã‚‰ã‚Œã¾ã™ã€‚
3069é€ã‚‰ã‚Œã¾ã™ã€‚
3070 </message> 3085 </message>
3071 <ignore name="ignore"> 3086 <ignore name="ignore">
3072 ビã¸ãƒ¼ãƒ»ãƒ¢ãƒ¼ãƒ‰ã‚’設定ã™ã‚‹ã¨ã 3087 å–ã‚Šè¾¼ã¿ä¸­ã®è¨­å®šã‚’ã™ã‚‹ã¨ã
3073 </ignore> 3088 </ignore>
3074 <option name="OK"> 3089 <option name="OK">
3075 OK 3090 OK
@@ -3195,10 +3210,10 @@ F1キーを押ã—ã¦ãã ã•ã„。
3195 </alert> 3210 </alert>
3196 <alert name="OfferTeleport"> 3211 <alert name="OfferTeleport">
3197 <message name="message"> 3212 <message name="message">
3198 ã‚ãªãŸã®ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã¸ã®ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã‚’次ã®ãƒ¡ãƒƒã»ãƒ¼ã‚¸ã¨å…±ã«è´ˆã‚Šã¾ã™ã‹ï¼Ÿ 3213 次ã®ãƒ¡ãƒƒã»ãƒ¼ã‚¸ã‚’æ·»ãˆã¦ã‚ãªãŸãŒä»Šã„る場所ã¸ã®ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã‚’é€ã‚Šã¾ã™ã‹ï¼Ÿ
3199 </message> 3214 </message>
3200 <editline name="editline"> 3215 <editline name="editline">
3201 [REGION]ã«å‚åŠ å¸Œæœ 3216 [REGION]ã«æ¥ã¾ãã‚“ã‹ï¼Ÿ
3202 </editline> 3217 </editline>
3203 <option name="OK"> 3218 <option name="OK">
3204 OK 3219 OK
@@ -3212,7 +3227,7 @@ F1キーを押ã—ã¦ãã ã•ã„。
3212 ユーザーをゴッド・コールã§å‘¼ã³å¯„ã›ã¾ã™ã‹ï¼Ÿ 3227 ユーザーをゴッド・コールã§å‘¼ã³å¯„ã›ã¾ã™ã‹ï¼Ÿ
3213 </message> 3228 </message>
3214 <editline name="editline"> 3229 <editline name="editline">
3215 [REGION]ã«å‚åŠ å¸Œæœ 3230 [REGION]ã«æ¥ã¾ãã‚“ã‹ï¼Ÿ
3216 </editline> 3231 </editline>
3217 <option name="OK"> 3232 <option name="OK">
3218 OK 3233 OK
@@ -3240,6 +3255,7 @@ F1キーを押ã—ã¦ãã ã•ã„。
3240 今ã‚ãªãŸã®ä¸å‹•ç”£ã«ã„る人全員ã«é€ã‚‹ 3255 今ã‚ãªãŸã®ä¸å‹•ç”£ã«ã„る人全員ã«é€ã‚‹
3241短ã„メッセージを入力ã—ã¦ãã ã•ã„。. 3256短ã„メッセージを入力ã—ã¦ãã ã•ã„。.
3242 </message> 3257 </message>
3258 <editline name="editline"/>
3243 <option name="OK"> 3259 <option name="OK">
3244 OK 3260 OK
3245 </option> 3261 </option>
@@ -3527,6 +3543,7 @@ L$[AMOUNT]ã§ã€ã“ã®ã‚¯ãƒ©ã‚·ãƒ•ã‚¡ã‚¤ãƒ‰åºƒå‘Šã‚’今ã™ã公開ã—ã¾ã™ã‹ï
3527 ã“ã®åœ°åŸŸã«ã„る人全員ã«é€ã‚‹ 3543 ã“ã®åœ°åŸŸã«ã„る人全員ã«é€ã‚‹
3528短ã„メッセージを入力ã—ã¦ãã ã•ã„。 3544短ã„メッセージを入力ã—ã¦ãã ã•ã„。
3529 </message> 3545 </message>
3546 <editline name="editline"/>
3530 <option name="OK"> 3547 <option name="OK">
3531 OK 3548 OK
3532 </option> 3549 </option>
@@ -4137,7 +4154,7 @@ Linden社所有ã®ãƒ¡ã‚¤ãƒ³ãƒ©ãƒ³ãƒ‰ã®ä¸å‹•ç”£ã§ã®å¤ªé™½ã®ä½ç½®ã«
4137 SecondLifeウェブ・ページを開ã„ã¦ã‚¢ã‚«ã‚¦ãƒ³ãƒˆå±¥æ­´ã‚’確èªã—ã¾ã™ã‹ï¼Ÿ 4154 SecondLifeウェブ・ページを開ã„ã¦ã‚¢ã‚«ã‚¦ãƒ³ãƒˆå±¥æ­´ã‚’確èªã—ã¾ã™ã‹ï¼Ÿ
4138 </message> 4155 </message>
4139 <ignore name="ignore"> 4156 <ignore name="ignore">
4140 å£åº§å±¥æ­´ã®ã‚¦ã‚§ãƒ–・ページをロードã™ã‚‹ã¨ã 4157 アカウント履歴ã®ã‚¦ã‚§ãƒ–・ページをロードã™ã‚‹ã¨ã
4141 </ignore> 4158 </ignore>
4142 <option name="Gotopage"> 4159 <option name="Gotopage">
4143 ページã«ç§»å‹• 4160 ページã«ç§»å‹•
@@ -4190,17 +4207,15 @@ Linden社所有ã®ãƒ¡ã‚¤ãƒ³ãƒ©ãƒ³ãƒ‰ã®ä¸å‹•ç”£ã§ã®å¤ªé™½ã®ä½ç½®ã«
4190 </alert> 4207 </alert>
4191 <alert name="HelpReportAbuseEmailLL"> 4208 <alert name="HelpReportAbuseEmailLL">
4192 <message name="message"> 4209 <message name="message">
4193 ã“ã®ãƒ„ールã¯åˆ©ç”¨è¦ç´„é•åã¨ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãƒ¼ã‚¹ã‚¿ãƒ³ãƒ€ãƒ¼ãƒ‰é•åã® 4210 利用è¦ç´„é•åã¨ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãƒ¼ã‚¹ã‚¿ãƒ³ãƒ€ãƒ¼ãƒ‰é•åã®å ±å‘Šã«ã“ã®ãƒ„ールをã”使用ãã ã•ã„。 å‚照:
4194報告ã«ä½¿ç”¨ã—ã¦ãã ã•ã„。 å‚ç…§:
4195 4211
4196http://secondlife.com/corporate/tos.php 4212http://secondlife.com/corporate/tos.php
4197http://secondlife.com/corporate/cs.php 4213http://secondlife.com/corporate/cs.php
4198 4214
4199利用è¦ç´„é•åã¨ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãƒ¼ã‚¹ã‚¿ãƒ³ãƒ€ãƒ¼ãƒ‰é•åã«é–¢ã™ã‚‹å…¨ã¦ã®ãƒ¬ãƒãƒ¼ãƒˆã¯ 4215利用è¦ç´„é•åã¨ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãƒ¼ã‚¹ã‚¿ãƒ³ãƒ€ãƒ¼ãƒ‰é•åã«é–¢ã™ã‚‹å…¨ã¦ã®ãƒ¬ãƒãƒ¼ãƒˆã¯ã€èª¿æŸ»ã•ã‚Œã€è§£æ±ºã•ã‚Œã¾ã™ã€‚
4200調査ã•ã‚Œã€è§£æ±ºã•ã‚Œã¾ã™ã€‚ 以下ã®Police Blotter㧠4216以下ã®ãƒªãƒ³ã‚¯å…ˆã®Incident Reportã«ã¦ãã®ç¢ºèªã‚’ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
4201解決ã®ç¢ºèªã‚’ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™:
4202 4217
4203http://secondlife.com/community/blotter.php 4218http://secondlife.com/support/incidentreport.php
4204 </message> 4219 </message>
4205 </alert> 4220 </alert>
4206 <alert name="HelpReportAbuseEmailEO"> 4221 <alert name="HelpReportAbuseEmailEO">
@@ -4220,7 +4235,7 @@ http://secondlife.com/community/blotter.php
4220使用ã—ã¦ãã ã•ã„。ã§ãã‚‹ã ã‘詳ã—ã„情報をæä¾›ã—ã¦ãã ã•ã„。 4235使用ã—ã¦ãã ã•ã„。ã§ãã‚‹ã ã‘詳ã—ã„情報をæä¾›ã—ã¦ãã ã•ã„。
4221自動返答メールã«ã€ã‚ˆã‚Šè©³ã—ã„情報を付ã‘加ãˆã¦è¿”ä¿¡ã™ã‚‹ã“ã¨ã‚‚ 4236自動返答メールã«ã€ã‚ˆã‚Šè©³ã—ã„情報を付ã‘加ãˆã¦è¿”ä¿¡ã™ã‚‹ã“ã¨ã‚‚
4222ã§ãã¾ã™ã€‚ 4237ã§ãã¾ã™ã€‚
4223ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆã¯å…¨ã¦èª¿æŸ»ã•ã‚Œè§£æ±ºã•ã‚Œã¾ã™ã€‚ã“ã‚Œã«ã‚ˆã£ã¦é›»å­ãƒ¡ãƒ¼ãƒ«ã§è¿”ç­”ãŒé€ã‚‰ã‚Œã¦ãã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。 4238ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆã¯å…¨ã¦èª¿æŸ»ã•ã‚Œè§£æ±ºã•ã‚Œã¾ã™ã€‚ã“ã‚Œã«ã‚ˆã£ã¦Eメールã§è¿”ç­”ãŒé€ã‚‰ã‚Œã¦ãã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。
4224- 4239-
4225テクニカルãªå•é¡ŒãŒç”Ÿã˜ãŸå ´åˆã¯ã€æ¬¡ã®ã‚µãƒãƒ¼ãƒˆã«é€£çµ¡ã—ã¦ãã ã•ã„: 4240テクニカルãªå•é¡ŒãŒç”Ÿã˜ãŸå ´åˆã¯ã€æ¬¡ã®ã‚µãƒãƒ¼ãƒˆã«é€£çµ¡ã—ã¦ãã ã•ã„:
4226http://secondlife.com/community/support.php 4241http://secondlife.com/community/support.php
@@ -4282,18 +4297,22 @@ http://secondlife.com/community/support.php
4282 </alert> 4297 </alert>
4283 <alert name="HelpReportAbuseContainsCopyright"> 4298 <alert name="HelpReportAbuseContainsCopyright">
4284 <message name="message"> 4299 <message name="message">
4285 親愛ãªã‚‹ä½äººã®çš†æ§˜ã¸ 4300 Dear Resident,
4286 4301
4287知的所有権ã®ä¾µå®³ã‚’報告ã™ã‚‹å ´åˆã¯ã€ä»¥ä¸‹ã®ã¨ãŠã‚Šæ­£ç¢ºã«å ±å‘Šã—ã¦ãã ã•ã„。 4302知的財産ã®ä¾µå®³ã«é–¢ã™ã‚‹å ±å‘Šã‚’è¡Œã†éš›ã«ã¯ã€ä»¥ä¸‹ã®ç‚¹ã«æ³¨æ„ã—ã¦ãã ã•ã„。
4288
4289(1) å«ŒãŒã‚‰ã›ã®å‡¦ç†ã€‚ ä½äººãŒSecond Lifeã®è¨±å¯ã‚·ã‚¹ãƒ†ãƒ ã‚’ä¸å½“ã«ä½¿ç”¨ã—ã€çŸ¥çš„所有権ãŒä¾µå®³ã•ã‚Œã¦ã„ã‚‹ã¨è€ƒãˆã‚‰ã‚Œã‚‹å ´åˆã¯ã€å«ŒãŒã‚‰ã›å ±å‘Šã‚’æ出ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚許å¯ã‚·ã‚¹ãƒ†ãƒ ã‚’ä¸å½“ã«ä½¿ç”¨ã™ã‚‹æ‰‹æ®µã¨ã—ã¦ã¯ã€ãŸã¨ãˆã°ã€CopyBotã¾ãŸã¯é¡žä¼¼ã—ãŸã‚³ãƒ”ー・ツールãŒã‚ã‚Šã¾ã™ã€‚ å«ŒãŒã‚‰ã›å¯¾å¿œæ‹…当ãƒãƒ¼ãƒ ãŒèª¿æŸ»ã‚’è¡Œã„ã€Second Lifeã®ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãƒ»ã‚¹ã‚¿ãƒ³ãƒ€ãƒ¼ãƒ‰ã¾ãŸã¯åˆ©ç”¨è¦ç´„ã«é•åã™ã‚‹æ…‹åº¦ã«å¯¾ã—ã¦ã¯é©åˆ‡ãªæ‡²ç½°å‡¦åˆ†ãŒè¡Œã‚ã‚Œã¾ã™ã€‚ ãŸã ã—ã€å«ŒãŒã‚‰ã›å¯¾å¿œæ‹…当ãƒãƒ¼ãƒ ã§ã¯ã€ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã‚’Second Lifeワールドã‹ã‚‰å‰Šé™¤ã™ã‚‹ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«å¯¾ã™ã‚‹å‡¦ç†ã¾ãŸã¯å›žç­”ã¯è¡Œã„ã¾ã›ã‚“。
4290 4303
4291(2) DMCAã¾ãŸã¯ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®å‰Šé™¤å‡¦ç†ã€‚ Second Lifeã‹ã‚‰ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®å‰Šé™¤ã‚’リクエストã™ã‚‹ã«ã¯ã€http://secondlife.com/corporate/dmca.phpã®DMCAãƒãƒªã‚·ãƒ¼ã«ã‚ã‚‹ã€ä¾µå®³ã«é–¢ã™ã‚‹æœ‰åŠ¹ãªé€šçŸ¥ã‚’æ出ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ 4304(1) å«ŒãŒã‚‰ã›ã®å ±å‘Šã®ãƒ—ロセス。Second Lifeã®æ¨©é™ã‚·ã‚¹ãƒ†ãƒ ã‚’悪用ã—ã¦ã„ã‚‹ä½äººã‚’見ã¤ã‘ãŸã‚‰ã€å«ŒãŒã‚‰ã›ã®å ±å‘Šã‚’è¡Œã£ã¦ãã ã•ã„。
4305例ãˆã°ã‚³ãƒ”ーBotã®ä½¿ç”¨ã€ãã‚Œã«ä¼¼ãŸãƒ„ールã®ä½¿ç”¨ã«ã‚ˆã‚‹çŸ¥çš„財産権ã®ä¾µå®³ãŒã‚ã‚Šã¾ã™ã€‚
4306アビューズãƒãƒ¼ãƒ ã¯èª¿æŸ»ã«åŸºã¥ãSecond Lifeã®ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ãƒ¼ã‚¹ã‚¿ãƒ³ãƒ€ãƒ¼ãƒ‰ã‚„利用è¦ç´„ã«é•åã™ã‚‹è¡Œç‚ºã¨åˆ¤æ–­ã•ã‚ŒãŸå ´åˆã«ã¯é©åˆ‡ãªå‡¦ç½®ã‚’è¡Œã£ã¦ã„ã¾ã™ã€‚
4307ãŸã ã—ã€ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã‚’Second Lifeã‹ã‚‰æ’¤åŽ»ã—ã¦ã»ã—ã„ã€ã¨ã„ã£ãŸè¦æœ›ã«ã¯ã‚¢ãƒ“ューズãƒãƒ¼ãƒ ã¯å¿œãˆã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。
4292 4308
4293å«ŒãŒã‚‰ã›ã®å‡¦ç†ã‚’継続ã™ã‚‹å ´åˆã¯ã€ã“ã®ã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ã€å ±å‘Šã‚’æ出ã—ã¦ãã ã•ã„。 4309(2) DMCA(デジタルミレニアム著作権法)åŠã³ã‚³ãƒ³ãƒ†ãƒ³ãƒ„撤去プロセス。 Second Lifeã‹ã‚‰ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®æ’¤åŽ»ã‚’リクエストã™ã‚‹ã«ã¯ã€è‘—作権侵害通知ã®æ出を行ã†å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚
4310å‚照:http://secondlife.com/corporate/dmca.php
4294 4311
4295ã”å”力ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚ 4312ã“ã®ä»¶ã«é–¢ã™ã‚‹å«ŒãŒã‚‰ã›ã®å ±å‘Šã‚’続ã‘ã‚‹éš›ã¯ã€ã“ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ã¦ãã ã•ã„。é¸æŠžã™ã¹ãカテゴリã¯ã€ŒçŸ¥çš„財産ã®ä¾µå®³ &gt; コピーBotåŠã³æ¨©é™ã®æ‚ªç”¨ã€ãŒé©ã—ã¦ã„ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“ã®ã§ã”確èªãã ã•ã„。
4296 4313
4314Thank you,
4315
4297Linden Lab 4316Linden Lab
4298 </message> 4317 </message>
4299 </alert> 4318 </alert>
@@ -4318,17 +4337,16 @@ Linden Lab
4318 キャンセル 4337 キャンセル
4319 </option> 4338 </option>
4320 </alert> 4339 </alert>
4321 <alert name="BusyModePay" title="ビã¸ãƒ¼ãƒ»ãƒ¢ãƒ¼ãƒ‰ã®è­¦å‘Š"> 4340 <alert name="BusyModePay" title="å–ã‚Šè¾¼ã¿ä¸­ã®è­¦å‘Š">
4322 <message name="message"> 4341 <message name="message">
4323 ç¾åœ¨ã€ãƒ“ã¸ãƒ¼ãƒ»ãƒ¢ãƒ¼ãƒ‰ã®ãŸã‚ã€ã“ã®æ”¯æ‰•ã„㨠4342 ç¾åœ¨ã€å–ã‚Šè¾¼ã¿ä¸­ã®ãŸã‚ã€ã“ã®æ”¯æ‰•ã„ã¨
4324引ãæ›ãˆã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’å—ã‘å–ã‚‹ã“ã¨ãŒ 4343引ãæ›ãˆã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’å—ã‘å–ã‚‹ã“ã¨ãŒ
4325ã§ãã¾ã›ã‚“。 4344ã§ãã¾ã›ã‚“。
4326 4345
4327ã“ã®å–引を完了ã™ã‚‹å‰ã«ã€ãƒ“ジー・ 4346ã“ã®å–引を完了ã™ã‚‹å‰ã«ã€å–ã‚Šè¾¼ã¿ä¸­ã®è¨­å®šã‚’解除ã—ã¾ã™ã‹ï¼Ÿ
4328モードを外ã—ã¾ã™ã‹ï¼Ÿ
4329 </message> 4347 </message>
4330 <ignore name="ignore"> 4348 <ignore name="ignore">
4331 ビã¸ãƒ¼ãƒ»ãƒ¢ãƒ¼ãƒ‰ã®äººã¾ãŸã¯ã‚ªãƒ–ジェクトã«æ”¯æ‰•ã†ã¨ã 4349 å–ã‚Šè¾¼ã¿ä¸­ã®äººã¾ãŸã¯ã‚ªãƒ–ジェクトã«æ”¯æ‰•ã†ã¨ã
4332 </ignore> 4350 </ignore>
4333 <option name="Yes"> 4351 <option name="Yes">
4334 OK 4352 OK
@@ -4412,7 +4430,7 @@ Linden Lab
4412 </alert> 4430 </alert>
4413 <alert name="GraphicsPreferencesHelp"> 4431 <alert name="GraphicsPreferencesHelp">
4414 <message name="message"> 4432 <message name="message">
4415 ã“ã®ãƒ‘ãƒãƒ«ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®ã‚µã‚¤ã‚ºã¨è§£åƒåº¦ã€ãŠã‚ˆã³ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã®ã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯ã®å“質を制御ã—ã¾ã™ã€‚ [環境設定]&gt;[グラフィック]ã®ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã§ã¯ã€æ¬¡ã® 4 ã¤ã®ä¸­ã‹ã‚‰ã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯ãƒ»ãƒ¬ãƒ™ãƒ«ã‚’é¸æŠžã§ãã¾ã™ã€‚低ã€ä¸­ã€é«˜ã€è¶…高。 ã¾ãŸã€[カスタム]ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’クリックã—ã€æ¬¡ã®è¨­å®šã‚’æ“作ã™ã‚‹ã“ã¨ã§ã€ã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯ã‚¹ã®è¨­å®šã‚’カスタマイズã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ 4433 ã“ã®ãƒ‘ãƒãƒ«ã§ã¯ã€ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®ã‚µã‚¤ã‚ºã¨è§£åƒåº¦ã€ãŠã‚ˆã³ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã®ã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯ã®å“質を設定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚[環境設定]&gt;[表示]ã®ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã§ã¯ã€ä½Žã€ä¸­ã€é«˜ã€è¶…高ã®4ã¤ã®ä¸­ã‹ã‚‰ã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯ãƒ»ãƒ¬ãƒ™ãƒ«ã‚’é¸æŠžã§ãã¾ã™ã€‚ã¾ãŸã€[カスタム]ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’クリックã—ã€ä»¥ä¸‹ã®ã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯ã‚¹ã®è¨­å®šã‚’カスタマイズã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
4416 4434
4417シェーダー:ピクセル・シェーダーã®ã•ã¾ã–ã¾ãªç¨®é¡žã‚’有効ã¾ãŸã¯ç„¡åŠ¹ã«ã—ã¾ã™ã€‚ 4435シェーダー:ピクセル・シェーダーã®ã•ã¾ã–ã¾ãªç¨®é¡žã‚’有効ã¾ãŸã¯ç„¡åŠ¹ã«ã—ã¾ã™ã€‚
4418 4436
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_about.xml b/linden/indra/newview/skins/default/xui/ja/floater_about.xml
index f281193..c8f6b76 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_about.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_about.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_about" title="Second Lifeã«ã¤ã„ã¦"> 2<floater name="floater_about" title="Second Lifeã«ã¤ã„ã¦">
3 <text_editor name="credits_editor"> 3 <text_editor name="credits_editor">
4 Second Lifeã¯ã€ Philipã€Tessaã€Andrewã€Coryã€Jamesã€Benã€Charã€Charlieã€Colinã€Danã€Danielã€Dougã€Ericã€Hamletã€Haneyã€Eveã€Hunterã€Ianã€Jeffã€Jenniferã€Jimã€Johnã€Leeã€Markã€Peterã€Phoenixã€Richardã€Robinã€Xenonã€Steveã€Tanyaã€Eddieã€Aviã€Frankã€Bruceã€Aaronã€Aliceã€Bobã€Debraã€Eileenã€Helenã€Janetã€Louieã€Leviathaniaã€Stefanã€Rayã€Kevinã€Tomã€Mikebã€MikeTã€Burgessã€Elenaã€Tracyã€Billã€Toddã€Ryanã€Zachã€Sarahã€Novaã€Timã€Stephanieã€Michaelã€Evanã€Nicolasã€Catherineã€Rachelleã€Daveã€Hollyã€Bubã€Kellyã€Magellanã€Ramziã€Donã€Sabinã€Jillã€Rheyaã€Jeskaã€Torleyã€Konaã€Callumã€Charityã€Ventrellaã€Jackã€Vektorã€Irisã€Chrisã€Nicoleã€Mickã€Reubenã€Blueã€Babbageã€Yedwabã€Deanaã€Laurenã€Brentã€Pathfinderã€Chadrickã€Altruimaã€Jesseã€Teenyã€Monroeã€Icculusã€Davidã€Tessã€Lizzieã€Patsyã€Isaacã€Lawrenceã€Cynã€Boã€Giaã€Annetteã€Mariusã€Tboneã€Jonathanã€Karenã€Ginsuã€Satokoã€Yukoã€Makikoã€Thomasã€Harryã€Sethã€Alexeiã€Brianã€Guyã€Runitaiã€Ethanã€Dataã€Corneliusã€Kennyã€Swissã€Zeroã€Natriaã€Wendyã€Stephenã€Teepleã€Thumperã€Lucyã€Deeã€Miaã€Lianaã€Warrenã€Brankaã€Auraã€beezã€Miloã€Hermiaã€Redã€Thraxã€Joeã€Sallyã€Magentaã€Moguraã€Paulã€Joseã€Rejeanã€Henrikã€Lexieã€Amberã€Loganã€Xanã€Noraã€Morpheusã€Donovanã€Leylaã€MichaelFrancisã€Beastã€Cubeã€Buckyã€Joshuaã€Stryfeã€Harmonyã€Teresaã€Claudiaã€Walkerã€Glennã€Fritzã€Fordakã€Juneã€Cleopetraã€Jeanã€Ivyã€Betsyã€Rooseveltã€Spikeã€Kenã€Whichã€Tofuã€Chiyoã€Robã€Zeeã€dustinã€Georgeã€Delã€Matthewã€Catã€Jacquiã€Lightfootã€Adrianã€Violaã€Alfredã€Noelã€Irfanã€Sunilã€Yoolã€Rikaã€Janeã€Xtremeã€Frontierã€a2ã€Neoã€Siobhanã€Yozã€Justinã€Elleã€Qarlã€Benjaminã€Isabelã€Gulliverã€Everettã€Christopherã€Izzyã€Stephanyã€Garryã€Sejongã€Seanã€Tobinã€Iridiumã€Metaã€Anthonyã€Jeremyã€JPã€Jakeã€Mauriceã€Madhaviã€Leopardã€Kyleã€Joonã€Kariã€Bertã€Belindaã€Jonã€Kristiã€Bridieã€Pramodã€KJã€Socratesã€Mariaã€Ivanã€Aricã€Yamasakiã€Adreanneã€Jayã€MitchKã€Cerenã€Cocoã€Durlã€Jennyã€Periapseã€Karticã€Storrsã€Lotteã€Sandyã€Rohnã€Colossusã€Zenã€BigPapiã€Bradã€Pastramiã€Kurzã€Maniã€Neuroã€Jaimeã€MJã€Rowanã€Sgtã€Elvisã€Geckoã€Samuelã€Sardonyxã€Leoã€Bryanã€Nikoã€Softã€Poppyã€Rachelã€Akiã€Angeloã€Banzaiã€Alexaã€Sueã€CeeLoã€Benderã€CGã€Gillianã€Pelleã€Nickã€Echoã€Zaraã€Christineã€Shamiranã€Emmaã€Blakeã€Keikoã€Plexusã€Joppaã€Sidewinderã€Ericaã€Ashleiã€Twilightã€Kristenã€Brettã€Qã€Enusã€Simonã€Bevisã€Kraftã€Kipã€Chandlerã€Ronã€LauraPã€Ramã€KyleJMã€Scouseã€Prosperoã€Melissaã€Martyã€Natã€Hamiltonã€Kendã€Lordanã€Jimmyã€Kosmoã€Seraphã€Greenã€Ekimã€Wiggoã€JTã€Romeã€Dorisã€Mizã€Benocã€Whumpã€Trinityã€Patchã€Kateã€TJã€Baoã€Joohwanã€Christyã€Sofiaã€Matiasã€Cogsworthã€Johanã€Orehã€Cheahã€Angelaã€Brandyã€Mangoã€Lanã€Aleksã€Gloriaã€Heidyã€Mitchellã€Spaceã€Coltonã€Bambersã€Einsteinã€Maggieã€Malbersã€Roseã€Winnieã€Stellaã€Miltonã€Rothmanã€Niallã€Marinã€Allisonã€Katieã€Dawnã€Kattã€Dustyã€Kalpanaã€Judyã€Andreaã€Ambroffã€Infinityã€Gailã€Ricoã€Raymondã€Yiã€Williamã€Christaã€Mã€Teaganã€Scoutã€Mollyã€Danteã€Corrã€Dynamikeã€Usiã€Kayleeã€Vidtutsã€Lilã€Danicaã€Saschaã€Kelvã€Jacobã€Nyaã€Rodneyã€Brandonã€Elsieã€Blondinã€Grantã€Katrinã€Nyxã€Gabrielã€Locklainnã€Claireã€Devinã€Minervaã€Montyã€Austinã€Bradfordã€Siã€Keiraã€Hã€Caitlinã€Ditaã€Makaiã€Jennã€Annã€Meredithã€Clareã€Joyã€Praveenã€Codyã€Edmundã€Rutheã€Sirenaã€Gayathriã€Spiderã€FJã€Davidoffã€Tianã€Jennieã€Louiseã€Oskarã€Landonã€Noelleã€Jarvã€Ingridã€Alã€Sommerã€Docã€Ariaã€Huinã€Grayã€Liliã€Virã€DJã¨ã€ãã®ä»–多数ã®äººé”ã«ã‚ˆã£ã¦ä½œæˆã•ã‚Œã¾ã—ãŸã€‚ 4 Second Lifeã¯ã€ Philipã€Tessaã€Andrewã€Coryã€Jamesã€Benã€Charã€Charlieã€Colinã€Danã€Danielã€Dougã€Ericã€Hamletã€Haneyã€Eveã€Hunterã€Ianã€Jeffã€Jenniferã€Jimã€Johnã€Leeã€Markã€Peterã€Phoenixã€Richardã€Robinã€Xenonã€Steveã€Tanyaã€Eddieã€Aviã€Frankã€Bruceã€Aaronã€Aliceã€Bobã€Debraã€Eileenã€Helenã€Janetã€Louieã€Leviathaniaã€Stefanã€Rayã€Kevinã€Tomã€Mikebã€MikeTã€Burgessã€Elenaã€Tracyã€Billã€Toddã€Ryanã€Zachã€Sarahã€Novaã€Timã€Stephanieã€Michaelã€Evanã€Nicolasã€Catherineã€Rachelleã€Daveã€Hollyã€Bubã€Kellyã€Magellanã€Ramziã€Donã€Sabinã€Jillã€Rheyaã€Jeskaã€Torleyã€Konaã€Callumã€Charityã€Ventrellaã€Jackã€Vektorã€Irisã€Chrisã€Nicoleã€Mickã€Reubenã€Blueã€Babbageã€Yedwabã€Deanaã€Laurenã€Brentã€Pathfinderã€Chadrickã€Altruimaã€Jesseã€Teenyã€Monroeã€Icculusã€Davidã€Tessã€Lizzieã€Patsyã€Isaacã€Lawrenceã€Cynã€Boã€Giaã€Annetteã€Mariusã€Tboneã€Jonathanã€Karenã€Ginsuã€Satokoã€Yukoã€Makikoã€Thomasã€Harryã€Sethã€Alexeiã€Brianã€Guyã€Runitaiã€Ethanã€Dataã€Corneliusã€Kennyã€Swissã€Zeroã€Natriaã€Wendyã€Stephenã€Teepleã€Thumperã€Lucyã€Deeã€Miaã€Lianaã€Warrenã€Brankaã€Auraã€beezã€Miloã€Hermiaã€Redã€Thraxã€Joeã€Sallyã€Magentaã€Moguraã€Paulã€Joseã€Rejeanã€Henrikã€Lexieã€Amberã€Loganã€Xanã€Noraã€Morpheusã€Donovanã€Leylaã€MichaelFrancisã€Beastã€Cubeã€Buckyã€Joshuaã€Stryfeã€Harmonyã€Teresaã€Claudiaã€Walkerã€Glennã€Fritzã€Fordakã€Juneã€Cleopetraã€Jeanã€Ivyã€Betsyã€Rooseveltã€Spikeã€Kenã€Whichã€Tofuã€Chiyoã€Robã€Zeeã€dustinã€Georgeã€Delã€Matthewã€Catã€Jacquiã€Lightfootã€Adrianã€Violaã€Alfredã€Noelã€Irfanã€Sunilã€Yoolã€Rikaã€Janeã€Xtremeã€Frontierã€a2ã€Neoã€Siobhanã€Yozã€Justinã€Elleã€Qarlã€Benjaminã€Isabelã€Gulliverã€Everettã€Christopherã€Izzyã€Stephanyã€Garryã€Sejongã€Seanã€Tobinã€Iridiumã€Metaã€Anthonyã€Jeremyã€JPã€Jakeã€Mauriceã€Madhaviã€Leopardã€Kyleã€Joonã€Kariã€Bertã€Belindaã€Jonã€Kristiã€Bridieã€Pramodã€KJã€Socratesã€Mariaã€Ivanã€Aricã€Yamasakiã€Adreanneã€Jayã€MitchKã€Cerenã€Cocoã€Durlã€Jennyã€Periapseã€Karticã€Storrsã€Lotteã€Sandyã€Rohnã€Colossusã€Zenã€BigPapiã€Bradã€Pastramiã€Kurzã€Maniã€Neuroã€Jaimeã€MJã€Rowanã€Sgtã€Elvisã€Geckoã€Samuelã€Sardonyxã€Leoã€Bryanã€Nikoã€Softã€Poppyã€Rachelã€Akiã€Angeloã€Banzaiã€Alexaã€Sueã€CeeLoã€Benderã€CGã€Gillianã€Pelleã€Nickã€Echoã€Zaraã€Christineã€Shamiranã€Emmaã€Blakeã€Keikoã€Plexusã€Joppaã€Sidewinderã€Ericaã€Ashleiã€Twilightã€Kristenã€Brettã€Qã€Enusã€Simonã€Bevisã€Kraftã€Kipã€Chandlerã€Ronã€LauraPã€Ramã€KyleJMã€Scouseã€Prosperoã€Melissaã€Martyã€Natã€Hamiltonã€Kendã€Lordanã€Jimmyã€Kosmoã€Seraphã€Greenã€Ekimã€Wiggoã€JTã€Romeã€Dorisã€Mizã€Benocã€Whumpã€Trinityã€Patchã€Kateã€TJã€Baoã€Joohwanã€Christyã€Sofiaã€Matiasã€Cogsworthã€Johanã€Orehã€Cheahã€Angelaã€Brandyã€Mangoã€Lanã€Aleksã€Gloriaã€Heidyã€Mitchellã€Spaceã€Coltonã€Bambersã€Einsteinã€Maggieã€Malbersã€Roseã€Winnieã€Stellaã€Miltonã€Rothmanã€Niallã€Marinã€Allisonã€Katieã€Dawnã€Kattã€Dustyã€Kalpanaã€Judyã€Andreaã€Ambroffã€Infinityã€Gailã€Ricoã€Raymondã€Yiã€Williamã€Christaã€Mã€Teaganã€Scoutã€Mollyã€Danteã€Corrã€Dynamikeã€Usiã€Kayleeã€Vidtutsã€Lilã€Danicaã€Saschaã€Kelvã€Jacobã€Nyaã€Rodneyã€Brandonã€Elsieã€Blondinã€Grantã€Katrinã€Nyxã€Gabrielã€Locklainnã€Claireã€Devinã€Minervaã€Montyã€Austinã€Bradfordã€Siã€Keiraã€Hã€Caitlinã€Ditaã€Makaiã€Jennã€Annã€Meredithã€Clareã€Joyã€Praveenã€Codyã€Edmundã€Rutheã€Sirenaã€Gayathriã€Spiderã€FJã€Davidoffã€Tianã€Jennieã€Louiseã€Oskarã€Landonã€Noelleã€Jarvã€Ingridã€Alã€Sommerã€Docã€Ariaã€Huinã€Grayã€Liliã€Virã€DJã€Yangã€Tã€Simoneã€Maestroã€Scottã€Charleneã€Quixoteã€Amandaã€Susanã€Zedã€Anneã€Enkiduã€Esbeeã€Joroanã€Katelinã€Roxieã€Tayã€Scarletã€Kevinã€Johnnyã€Wolfgangã€Andrenã€Bobã€Howardã€Merovã€Randã€Rayã€Michonã€Newellã€Galenã€Dessieã€Lesã¨ã€ãã®ä»–多数ã®äººé”ã«ã‚ˆã£ã¦ä½œæˆã•ã‚Œã¾ã—ãŸã€‚
5 5
6 ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ã“ã‚Œã¾ã§ã§æœ€é«˜ã®ã‚‚ã®ã«ãªã‚‹ã‚ˆã†ã”å”力をã„ãŸã ã„ãŸä»¥ä¸‹ã®ä½äººã®çš†æ§˜ã«æ·±ãæ„Ÿè¬ã„ãŸã—ã¾ã™ã€‚ Aminom Marvinã€ava ganacheã€Balthazar Fourouxã€CrystalShard Fooã€Davec Horsforthã€Drew Dwiã€Ellla McMahonã€Gellan Glenelgã€Harleen Gretzkyã€istephanija munroã€Iustinian Tomsenã€JC Glimmerã€Joeseph Albaneseã€kelly youngã€Latif Khalifaã€Lex Nevaã€McCabe Maxstedã€Michi Luminã€moni duettmannã€Moon Mettyã€motor loonã€Opensource Obscureã€Sky Hyeã€Soap Clawtoothã€velveeta biedermannã€zeebster colasanti 6 ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ã“ã‚Œã¾ã§ã§æœ€é«˜ã®ã‚‚ã®ã«ãªã‚‹ã‚ˆã†ã”å”力をã„ãŸã ã„ãŸä»¥ä¸‹ã®ä½äººã®çš†æ§˜ã«æ·±ãæ„Ÿè¬ã„ãŸã—ã¾ã™ã€‚ afon shepherdã€Aimee Trescothickã€Alexandrea Frideã€Alissa Sabreã€Amber DeCuirã€Asuka Neelyã€Auron Forcellaã€Blue Revolutionã€Bocan Undercroftã€Boroondas Gupteã€Brandon Shinobuã€Bri Guflerã€Buckaroo Muã€Celierra Darlingã€Christos Atlantisã€Coder Kasã€Cummere Mayoã€dakota schwadeã€Dirk Talamascaã€Dizzy Banjoã€Drew Dwiã€Duckling Kwakã€Ellla McMahonã€Erikah Jamesonã€Erinyse Planerã€Eyana Yohkohã€Ezian Ecksolã€Faron Karuã€Fenoe Loweyã€Fox Hwasungã€Francisca Biedermannã€Gally Youngã€Gellan Glenelgã€Geneko Nemethã€Glenn Rotaruã€Hagar Qinanã€Harleen Gretzkyã€Holger Gilruthã€hotrodjohnny gearsã€IAm Zabelinã€Inigo Catteneoã€Iustinian Tomsenã€Jacek Antonellã€James Benedekã€Jim Kupferbergã€Joeseph Albaneseã€JPT62089 Agnonã€Kardargo Adamczykã€Kirstenlee Cinquettiã€Latif Khalifaã€lea Parnallã€Lex Nevaã€Lillith Anatineã€Lilly Zenovkaã€Lim Catteneoã€Lindal Kiddã€Mark Rosenbaumã€MasterJ Chaplinã€McCabe Maxstedã€Melvin Starbrookã€Meni Kaiouseiã€Mero Collasã€Minakothegothicgeisha Kamachiã€Moon Mettyã€neofilo aabyeã€Neutron Chesnokovã€Nomad Ingwerã€norritt Xiã€Opensource Obscureã€Oracle Weatherwaxã€Ourasi Ferrarisã€Pabl0 Roffoã€Peyton Aleixandreã€Phli Foxchaseã€Psi Merlinã€r2d2 Wunderlichã€Regi Yifuã€Saijanai Kuhnã€Sandor Balczoã€Sarkan Dreamscapeã€Scree Raymakerã€Sedona Millsã€Selena Bealeã€Sheet Spotterã€Shibari Twineã€Silver Keyã€Simon Klineã€SLB Wireflyã€Stacy Wombatã€Sugarcult Daggerã€Tayra Dagostinoã€Tetsuryu Vlodovicã€ThaBiGGDoGG Richezã€Timo Guflerã€tx Ohã€wayfinder wishbringerã€Wizzytoe McCulloughã€Wundur Primbeeã€Yann Dufauxã€Yuu Nakamichiã€Aminom Marvinã€Andred Qinanã€arminasx saimanã€caroline apolloã€Iskar Arianthoã€Jenika Connollyã€Maghnus Baloghã€Nefertiti Nefariousã€RodneyLee Jessop
7 7
8 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion 8 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
9 APR Copyright (C) 2000-2004 The Apache Software Foundation 9 APR Copyright (C) 2000-2004 The Apache Software Foundation
@@ -26,9 +26,9 @@
26 Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) 26 Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
27 27
28 28
29 éã®ã‚Šã¯çŸ­ã„ãŒããã¹ãã“ã¨ã¯å±±ã®ãˆãã«ãã‚‹ –アラン・ãƒãƒ¥ãƒ¼ãƒ‹ãƒ³ã‚° 29 å‹éã®åŠ©ããŒãã‚Œã°ä½•ã¨ãã‚ã£ã¦ãã‘ã‚‹ --リãƒãƒ£ãƒ¼ãƒãƒ»ã‚¹ã‚¿ãƒ¼ã‚­ãƒ¼
30 </text_editor> 30 </text_editor>
31 <text name="you_are_at"> 31 <text name="you_are_at">
32 [POSITION]中 32 [POSITION]
33 </text> 33 </text>
34</floater> 34</floater>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_about_land.xml b/linden/indra/newview/skins/default/xui/ja/floater_about_land.xml
index adc85df..15a4c91 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -1,288 +1,260 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floaterland" title="土地情報"> 2<floater name="floaterland" title="土地情報">
3 <tab_container name="landtab"> 3 <tab_container name="landtab">
4 <panel label="一般" name="land_general_panel"> 4 <panel label="一般" name="land_general_panel">
5 <text type="string" length="1" name="Name:"> 5 <text length="1" name="Name:" type="string">
6 åå‰ï¼š 6 åå‰ï¼š
7 </text> 7 </text>
8 <text type="string" length="1" name="Description:"> 8 <line_editor name="Name"/>
9 <text length="1" name="Description:" type="string">
9 説明: 10 説明:
10 </text> 11 </text>
11 <text type="string" length="1" name="Owner:"> 12 <text length="1" name="Owner:" type="string">
12 オーナー: 13 オーナー:
13 </text> 14 </text>
14 <text type="string" length="1" name="OwnerText"> 15 <text length="1" name="OwnerText" type="string">
15 Leyla Linden 16 Leyla Linden
16 </text> 17 </text>
17 <button label="プロフィール..." label_selected="プロフィール..." 18 <button label="プロフィール..." label_selected="プロフィール..." name="Profile..."/>
18 name="Profile..." /> 19 <text length="1" name="Group:" type="string">
19 <text type="string" length="1" name="Group:">
20 グループ: 20 グループ:
21 </text> 21 </text>
22 <button label="設定..." label_selected="設定..." name="Set..." /> 22 <button label="設定..." label_selected="設定..." name="Set..."/>
23 <check_box label="グループã¸ã®è­²æ¸¡ã‚’許å¯" name="check deed" 23 <check_box label="グループã¸ã®è­²æ¸¡ã‚’許å¯" name="check deed" tool_tip="グループ・オフィサーã¯ã€ã“ã®åœŸåœ°ã‚’グループã«è­²æ¸¡ã—ã€ã‚°ãƒ«ãƒ¼ãƒ—ã®åœŸåœ°é…分ã«å§”ã­ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"/>
24 tool_tip="グループ・オフィサーã¯ã€ã“ã®åœŸåœ°ã‚’グループã«è­²æ¸¡ã—ã€ã‚°ãƒ«ãƒ¼ãƒ—ã®åœŸåœ°é…分ã«å§”ã­ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" /> 24 <button label="譲渡..." label_selected="譲渡..." name="Deed..." tool_tip="é¸æŠžã•ã‚ŒãŸã‚°ãƒ«ãƒ¼ãƒ—ã®ã‚ªãƒ•ã‚£ã‚µãƒ¼ã§ã‚ã‚‹ã¨ãã®ã¿ã€åœŸåœ°ã‚’譲渡ã§ãã¾ã™ã€‚"/>
25 <button label="譲渡..." label_selected="譲渡..." name="Deed..." 25 <check_box label="オーナーãŒè­²æ¸¡ã¨å…±ã«å¯„付" name="check contrib" tool_tip="土地ãŒã‚°ãƒ«ãƒ¼ãƒ—ã«è­²æ¸¡ã•ã‚Œã‚‹ã¨ãã€å‰ã®æ‰€æœ‰è€…ã¯è­²æ¸¡ãŒæˆç«‹ã™ã‚‹ã‚ˆã†ã€å分ãªåœŸåœ°ã‚’寄付ã—ã¾ã™ã€‚"/>
26 tool_tip="é¸æŠžã•ã‚ŒãŸã‚°ãƒ«ãƒ¼ãƒ—ã®ã‚ªãƒ•ã‚£ã‚µãƒ¼ã§ã‚ã‚‹ã¨ãã®ã¿ã€åœŸåœ°ã‚’譲渡ã§ãã¾ã™ã€‚" /> 26 <text length="1" name="For Sale:" type="string">
27 <check_box label="オーナーãŒè­²æ¸¡ã¨å…±ã«å¯„付" name="check contrib"
28 tool_tip="土地ãŒã‚°ãƒ«ãƒ¼ãƒ—ã«è­²æ¸¡ã•ã‚Œã‚‹ã¨ãã€å‰ã®æ‰€æœ‰è€…ã¯è­²æ¸¡ãŒæˆç«‹ã™ã‚‹ã‚ˆã†ã€å分ãªåœŸåœ°ã‚’寄付ã—ã¾ã™ã€‚" />
29 <text type="string" length="1" name="For Sale:">
30 売り出ã—中: 27 売り出ã—中:
31 </text> 28 </text>
32 <text type="string" length="1" name="Not for sale."> 29 <text length="1" name="Not for sale." type="string">
33 販売対象外。 30 販売対象外
34 </text> 31 </text>
35 <text type="string" length="1" name="For Sale: Price L$[PRICE]."> 32 <text length="1" name="For Sale: Price L$[PRICE]." type="string">
36 料金:L$[PRICE] 33 料金:L$[PRICE]
37 </text> 34 </text>
38 <button label="土地を販売..." label_selected="土地を販売..." 35 <button label="土地を販売..." label_selected="土地を販売..." name="Sell Land..."/>
39 name="Sell Land..." /> 36 <text length="1" name="For sale to" type="string">
40 <text type="string" length="1" name="For sale to">
41 販売先:[BUYER] 37 販売先:[BUYER]
42 </text> 38 </text>
43 <text type="string" length="1" name="Sell with landowners objects in parcel."> 39 <text length="1" name="Sell with landowners objects in parcel." type="string">
44 販売ã«å«ãるオブジェクトã 40 オブジェクトも販売価格ã«å«ã¾ã‚Œã¾ã™
45 </text> 41 </text>
46 <text type="string" length="1" name="Selling with no objects in parcel."> 42 <text length="1" name="Selling with no objects in parcel." type="string">
47 販売ã«å«ããªã„オブジェクト。 43 オブジェクトã¯è²©å£²å¯¾è±¡å¤–ã§ã™
48 </text> 44 </text>
49 <button label="土地販売ã®å–り消ã—" 45 <button label="土地販売ã®å–り消ã—" label_selected="土地販売ã®å–り消ã—" name="Cancel Land Sale"/>
50 label_selected="土地販売ã®å–り消ã—" name="Cancel Land Sale" /> 46 <text length="1" name="Claimed:" type="string">
51 <text type="string" length="1" name="Claimed:">
52 è¦æ±‚: 47 è¦æ±‚:
53 </text> 48 </text>
54 <text type="string" length="1" name="DateClaimText"> 49 <text length="1" name="DateClaimText" type="string">
55 2006å¹´8月15æ—¥ç«æ›œæ—¥13:47:25 50 2006å¹´8月15æ—¥ç«æ›œæ—¥13:47:25
56 </text> 51 </text>
57 <text type="string" length="1" name="PriceLabel"> 52 <text length="1" name="PriceLabel" type="string">
58 é¢ç©ï¼š 53 é¢ç©ï¼š
59 </text> 54 </text>
60 <text type="string" length="1" name="PriceText"> 55 <text length="1" name="PriceText" type="string">
61 4048平方メートル 56 4048平方メートル
62 </text> 57 </text>
63 <text type="string" length="1" name="Traffic:"> 58 <text length="1" name="Traffic:" type="string">
64 交通é‡: 59 交通é‡:
65 </text> 60 </text>
66 <text type="string" length="1" name="DwellText"> 61 <text length="1" name="DwellText" type="string">
67 誤 62 誤
68 </text> 63 </text>
69 <button label="土地を購入..." label_selected="土地を購入..." 64 <button label="土地を購入..." label_selected="土地を購入..." name="Buy Land..." width="125" left="130"/>
70 name="Buy Land..." /> 65 <button label="グループ用ã«è³¼å…¥..." label_selected="グループ用ã«è³¼å…¥..." name="Buy For Group..."/>
71 <button label="グループ用ã«è³¼å…¥..." 66 <button label="入場許å¯ã‚’購入..." label_selected="入場許å¯ã‚’購入..." name="Buy Pass..." tool_tip="ã“ã®åœŸåœ°ã¸ã®ä¸€æ™‚çš„ãªã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ã—ã¾ã™ã€‚" width="125" left="130"/>
72 label_selected="グループ用ã«è³¼å…¥..." name="Buy For Group..." /> 67 <button label="土地を放棄..." label_selected="土地を放棄..." name="Abandon Land..."/>
73 <button label="パスを購入..." label_selected="パスを購入..." 68 <button label="土地開拓..." label_selected="土地開拓..." name="Reclaim Land..."/>
74 name="Buy Pass..." 69 <button label="Lindenセール..." label_selected="Lindenセール..." name="Linden Sale..." tool_tip="土地ãŒæ‰€æœ‰ã•ã‚Œã¦ãŠã‚Šã€ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ãŒè¨­å®šã•ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚オークションã®å¯¾è±¡ã«ãªã£ã¦ã„ãªã„ã“ã¨ã‚‚å¿…è¦æ¡ä»¶ã§ã™ã€‚"/>
75 tool_tip="パスã¯ã“ã®åœŸåœ°ã¸ã®ä¸€æ™‚çš„ãªã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ã—ã¾ã™ã€‚" /> 70 <string name="new users only">
76 <button label="土地を放棄..." label_selected="土地を放棄..."
77 name="Abandon Land..." />
78 <button label="土地開拓..." label_selected="土地開拓..." name="Reclaim Land..." />
79 <button label="Lindenセール..." label_selected="Lindenセール..."
80 name="Linden Sale..."
81 tool_tip="土地ãŒæ‰€æœ‰ã•ã‚Œã¦ãŠã‚Šã€ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ãŒè¨­å®šã•ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚オークションã®å¯¾è±¡ã«ãªã£ã¦ã„ãªã„ã“ã¨ã‚‚å¿…è¦æ¡ä»¶ã§ã™ã€‚" />
82 <text name="new users only">
83 æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã¿ 71 æ–°è¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ã¿
84 </text> 72 </string>
85 <text name="anyone"> 73 <string name="anyone">
86 誰ã§ã‚‚ 74 誰ã§ã‚‚
87 </text> 75 </string>
88 <text name="area_text"> 76 <string name="area_text">
89 エリア 77 エリア
90 </text> 78 </string>
91 <text name="area_size_text"> 79 <string name="area_size_text">
92 [AREA]平方メートル 80 [AREA]平方メートル
93 </text> 81 </string>
94 <text name="auction_id_text"> 82 <string name="auction_id_text">
95 オークションID: [ID] 83 オークションID: [ID]
96 </text> 84 </string>
97 <text name="need_tier_to_modify"> 85 <string name="need_tier_to_modify">
98 ã“ã®åœŸåœ°ã‚’修正変更ã™ã‚‹ã«ã¯ã€è³¼å…¥ã‚’承èªã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ 86 ã“ã®åœŸåœ°ã‚’修正変更ã™ã‚‹ã«ã¯ã€è³¼å…¥ã‚’承èªã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚
99 </text> 87 </string>
100 <text name="group_owned_text"> 88 <string name="group_owned_text">
101 (グループ所有) 89 (グループ所有)
102 </text> 90 </string>
103 <text name="profile_text"> 91 <string name="profile_text">
104 プロフィール... 92 プロフィール...
105 </text> 93 </string>
106 <text name="info_text"> 94 <string name="info_text">
107 インフォ... 95 情報...
108 </text> 96 </string>
109 <text name="public_text"> 97 <string name="public_text">
110 (公共) 98 (公共)
111 </text> 99 </string>
112 <text name="none_text"> 100 <string name="none_text">
113 (ãªã—) 101 (ãªã—)
114 </text> 102 </string>
115 <text name="sale_pending_text"> 103 <string name="sale_pending_text">
116 (購入審査中) 104 (購入審査中)
117 </text> 105 </string>
118 <string name="no_selection_text"> 106 <string name="no_selection_text">
119 区画ãŒé¸å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。 107 区画ãŒé¸å®šã•ã‚Œã¦ã„ã¾ã›ã‚“。
120[世界]メニュー&gt;[土地情報]ã«é€²ã‚€ã‹ã€åˆ¥ã®åŒºç”»ã‚’é¸æŠžã—ã¦ã€è©³ç´°ã‚’表示ã—ã¾ã™ã€‚ 108[世界]メニュー&gt;[土地情報]ã«é€²ã‚€ã‹ã€åˆ¥ã®åŒºç”»ã‚’é¸æŠžã—ã¦ã€è©³ç´°ã‚’表示ã—ã¾ã™ã€‚
121 </string> 109 </string>
122 </panel> 110 </panel>
123 <panel label="約款" name="land_covenant_panel"> 111 <panel label="約款" name="land_covenant_panel">
124 <text type="string" length="1" name="covenant_timestamp_text"> 112 <text length="1" name="covenant_timestamp_text" type="string">
125 最後ã®æ›´æ–°1969å¹´12月31日水曜日16:00:00 113 最後ã®æ›´æ–°1969å¹´12月31日水曜日16:00:00
126 </text> 114 </text>
127 <text type="string" length="1" name="region_name_lbl"> 115 <text length="1" name="region_name_lbl" type="string">
128 地域: 116 地域:
129 </text> 117 </text>
130 <text type="string" length="1" name="region_name_text"> 118 <text length="1" name="region_name_text" type="string">
131 Leyla 119 Leyla
132 </text> 120 </text>
133 <text type="string" length="1" name="estate_name_lbl"> 121 <text length="1" name="estate_name_lbl" type="string">
134 ä¸å‹•ç”£ï¼š 122 ä¸å‹•ç”£ï¼š
135 </text> 123 </text>
136 <text type="string" length="1" name="estate_name_text"> 124 <text length="1" name="estate_name_text" type="string">
137 メインランド 125 メインランド
138 </text> 126 </text>
139 <text type="string" length="1" name="estate_owner_lbl"> 127 <text length="1" name="estate_owner_lbl" type="string">
140 ä¸å‹•ç”£ã‚ªãƒ¼ãƒŠãƒ¼ï¼š 128 ä¸å‹•ç”£ã‚ªãƒ¼ãƒŠãƒ¼ï¼š
141 </text> 129 </text>
142 <text type="string" length="1" name="estate_owner_text"> 130 <text length="1" name="estate_owner_text" type="string">
143 (ãªã—) 131 (ãªã—)
144 </text> 132 </text>
145 <text type="string" length="1" name="resellable_clause"> 133 <text length="1" name="resellable_clause" type="string">
146 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€å†è²©ã§ããªã„ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ 134 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€å†è²©ã§ããªã„ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚
147 </text> 135 </text>
148 <text type="string" length="1" name="changeable_clause"> 136 <text length="1" name="changeable_clause" type="string">
149 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€çµ±åˆï¼å†åˆ†å‰²ã§ããªã„ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ 137 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€çµ±åˆï¼å†åˆ†å‰²ã§ããªã„ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚
150 </text> 138 </text>
151 <text_editor type="string" length="1" name="covenant_editor"> 139 <text_editor length="1" name="covenant_editor" type="string">
152 ã“ã®ä¸å‹•ç”£ã«ã¯ç´„款ãŒã‚ã‚Šã¾ã›ã‚“。 140 ã“ã®ä¸å‹•ç”£ã«ã¯ç´„款ãŒã‚ã‚Šã¾ã›ã‚“。
153 </text_editor> 141 </text_editor>
154 <text name="can_resell"> 142 <string name="can_resell">
155 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€å†è²©ã§ãã¾ã™ã€‚ 143 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€å†è²©ã§ãã¾ã™ã€‚
156 </text> 144 </string>
157 <text name="can_not_resell"> 145 <string name="can_not_resell">
158 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€å†è²©ã§ããªã„ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ 146 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€å†è²©ã§ããªã„ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚
159 </text> 147 </string>
160 <text name="can_change"> 148 <string name="can_change">
161 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€çµ±åˆã¾ãŸã¯å†åˆ†å‰²ã§ãã¾ã™ã€‚ 149 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€çµ±åˆã¾ãŸã¯å†åˆ†å‰²ã§ãã¾ã™ã€‚
162 </text> 150 </string>
163 <text name="can_not_change"> 151 <string name="can_not_change">
164 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€çµ±åˆï¼å†åˆ†å‰²ã§ããªã„ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ 152 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€çµ±åˆï¼å†åˆ†å‰²ã§ããªã„ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚
165 </text> 153 </string>
166 </panel> 154 </panel>
167 <panel label="オブジェクト" name="land_objects_panel"> 155 <panel label="オブジェクト" name="land_objects_panel">
168 <text name="parcel_object_bonus"> 156 <text name="parcel_object_bonus">
169 地域オブジェクトボーナスè¦å› : [BONUS] 157 地域オブジェクトボーナスè¦å› : [BONUS]
170 </text> 158 </text>
171 <text type="string" length="1" name="Simulator primitive usage:" width="500"> 159 <text length="1" name="Simulator primitive usage:" type="string" width="500">
172 シミュレータã®åŸºæœ¬è¦ç´ ä½¿ç”¨çŠ¶æ³ï¼š 160 地域全体ã®ãƒ—リム使用状æ³ï¼š
173 </text>
174 <text type="string" length="1" left="200" name="0 out of 0 available">
175 14055ã®ã†ã¡0(14055利用å¯èƒ½ï¼‰
176 </text> 161 </text>
177 <text left="200" name="objects_available"> 162 <text left="200" name="objects_available">
178 [MAX]ã®å†…[COUNT]([AVAILABLE]利用å¯èƒ½ï¼‰ 163 [MAX]ã®å†…[COUNT]([AVAILABLE]利用å¯èƒ½ï¼‰
179 </text> 164 </text>
180 <text left="200" name="objects_available_text"> 165 <string left="200" name="objects_available_text">
181 [MAX]ã®å†…[COUNT]([AVAILABLE]利用å¯èƒ½ï¼‰ 166 [MAX]ã®å†…[COUNT]([AVAILABLE]利用å¯èƒ½ï¼‰
182 </text> 167 </string>
183 <text left="200" name="objects_deleted_text"> 168 <string left="200" name="objects_deleted_text">
184 [MAX]ã®å†…[COUNT]([DELETED]を削除) 169 [MAX]ã®å†…[COUNT]([DELETED]を削除)
170 </string>
171 <text length="1" name="Primitives parcel supports:" type="string" width="200">
172 区画ã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œã‚‹ãƒ—リム数:
185 </text> 173 </text>
186 <text type="string" length="1" name="Primitives parcel supports:" width="200"> 174 <text left="200" length="1" name="object_contrib_text" type="string">
187 区画ã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œã‚‹åŸºæœ¬è¦ç´ æ•°ï¼š
188 </text>
189 <text type="string" length="1" left="200" name="object_contrib_text">
190 [COUNT] 175 [COUNT]
191 </text> 176 </text>
192 <text type="string" length="1" name="Primitives on parcel:"> 177 <text length="1" name="Primitives on parcel:" type="string">
193 区画上ã®åŸºæœ¬è¦ç´ æ•°ï¼š 178 区画上ã®ãƒ—リム数:
194 </text> 179 </text>
195 <text type="string" length="1" left="200" name="total_objects_text"> 180 <text left="200" length="1" name="total_objects_text" type="string">
196 [COUNT] 181 [COUNT]
197 </text> 182 </text>
198 <text type="string" length="1" name="Owned by parcel owner:" width="300"> 183 <text length="1" name="Owned by parcel owner:" type="string" width="300">
199 区画オーナーã«ã‚ˆã‚‹æ‰€æœ‰ï¼š 184 区画オーナーã«ã‚ˆã‚‹æ‰€æœ‰ï¼š
200 </text> 185 </text>
201 <text type="string" length="1" left="200" name="owner_objects_text"> 186 <text left="200" length="1" name="owner_objects_text" type="string">
202 [COUNT] 187 [COUNT]
203 </text> 188 </text>
204 <button label="表示" label_selected="表示" name="ShowOwner" right="-145" /> 189 <button label="表示" label_selected="表示" name="ShowOwner" right="-145"/>
205 <button label="è¿”å´..." label_selected="è¿”å´..." name="ReturnOwner..." right="-15" 190 <button label="è¿”å´..." label_selected="è¿”å´..." name="ReturnOwner..." right="-15" tool_tip="オブジェクトをオーナーã«è¿”å´ã—ã¾ã™"/>
206 tool_tip="オブジェクトをオーナーã«è¿”å´ã—ã¾ã™" /> 191 <text length="1" name="Set to group:" type="string">
207 <text type="string" length="1" name="Set to group:">
208 グループã«è¨­å®šï¼š 192 グループã«è¨­å®šï¼š
209 </text> 193 </text>
210 <text type="string" length="1" left="200" name="group_objects_text"> 194 <text left="200" length="1" name="group_objects_text" type="string">
211 [COUNT] 195 [COUNT]
212 </text> 196 </text>
213 <button label="表示" label_selected="表示" name="ShowGroup" right="-145" /> 197 <button label="表示" label_selected="表示" name="ShowGroup" right="-145"/>
214 <button label="è¿”å´..." label_selected="è¿”å´..." name="ReturnGroup..." right="-15" 198 <button label="è¿”å´..." label_selected="è¿”å´..." name="ReturnGroup..." right="-15" tool_tip="オブジェクトをオーナーã«è¿”å´ã—ã¾ã™"/>
215 tool_tip="オブジェクトをオーナーã«è¿”å´ã—ã¾ã™" /> 199 <text length="1" name="Owned by others:" type="string">
216 <text type="string" length="1" name="Owned by others:">
217 他人ã«ã‚ˆã‚‹æ‰€æœ‰ï¼š 200 他人ã«ã‚ˆã‚‹æ‰€æœ‰ï¼š
218 </text> 201 </text>
219 <text type="string" length="1" left="200" name="other_objects_text"> 202 <text left="200" length="1" name="other_objects_text" type="string">
220 [COUNT] 203 [COUNT]
221 </text> 204 </text>
222 <button label="表示" label_selected="表示" name="ShowOther" right="-145" /> 205 <button label="表示" label_selected="表示" name="ShowOther" right="-145"/>
223 <button label="è¿”å´..." label_selected="è¿”å´..." name="ReturnOther..." right="-15" 206 <button label="è¿”å´..." label_selected="è¿”å´..." name="ReturnOther..." right="-15" tool_tip="オブジェクトをオーナーã«è¿”å´ã—ã¾ã™"/>
224 tool_tip="オブジェクトをオーナーã«è¿”å´ã—ã¾ã™" /> 207 <text length="1" name="Selected / sat upon:" type="string">
225 <text type="string" length="1" name="Selected / sat upon:">
226 é¸æŠžæ¸ˆã¿ï¼æ±ºå®šæ¸ˆã¿ï¼š 208 é¸æŠžæ¸ˆã¿ï¼æ±ºå®šæ¸ˆã¿ï¼š
227 </text> 209 </text>
228 <text type="string" length="1" left="200" name="selected_objects_text"> 210 <text left="200" length="1" name="selected_objects_text" type="string">
229 [COUNT] 211 [COUNT]
230 </text> 212 </text>
231 <text type="string" length="1" name="Autoreturn" width="500"> 213 <text length="1" name="Autoreturn" type="string" width="500">
232 ä»–ã®ä½äººã®ã‚ªãƒ–ジェクトã®è‡ªå‹•è¿”å´ï¼ˆåˆ†ã€ãªãƒã®è¨­å®šã¯0) 214 ä»–ã®ä½äººã®ã‚ªãƒ–ジェクトã®è‡ªå‹•è¿”å´(分ã€0ã§è‡ªå‹•è¿”å´ãªã—)
233 </text> 215 </text>
234 <line_editor left_delta="5" name="clean other time" right="-80" /> 216 <line_editor left_delta="5" name="clean other time" right="-80"/>
235 <text type="string" length="1" name="Object Owners:" width="150"> 217 <text length="1" name="Object Owners:" type="string" width="150">
236 オブジェクトã®ã‚ªãƒ¼ãƒŠãƒ¼ï¼š 218 オブジェクトã®ã‚ªãƒ¼ãƒŠãƒ¼ï¼š
237 </text> 219 </text>
238 <button label="リスト更新" label_selected="リスト更新" left="146" 220 <button label="リスト更新" label_selected="リスト更新" left="146" name="Refresh List"/>
239 name="Refresh List" /> 221 <button label="オブジェクトã®è¿”å´..." label_selected="オブジェクトã®è¿”å´..." left="256" name="Return objects..."/>
240 <button label="オブジェクトã®è¿”å´..."
241 label_selected="オブジェクトã®è¿”å´..." left="256"
242 name="Return objects..." />
243 <button label="" label_selected="" name="Type" tool_tip="種類ã§æŒ¯ã‚Šåˆ†ã‘" />
244 <button label="åå‰" label_selected="åå‰" name="Name"
245 tool_tip="åå‰ã§æŒ¯ã‚Šåˆ†ã‘" />
246 <button label="カウント" label_selected="カウント" name="Count"
247 tool_tip="カウントã§æŒ¯ã‚Šåˆ†ã‘" />
248 <name_list label="カウント" name="owner list"> 222 <name_list label="カウント" name="owner list">
249 <column label="タイプ" name="type" /> 223 <column label="タイプ" name="type"/>
250 <column label="åå‰" name="name" /> 224 <column name="online_status"/>
251 <column label="カウント" name="count" /> 225 <column label="åå‰" name="name"/>
226 <column label="カウント" name="count"/>
227 <column label="最新" name="mostrecent"/>
252 </name_list> 228 </name_list>
253 /&gt;
254 </panel> 229 </panel>
255 <panel label="オプション" name="land_options_panel"> 230 <panel label="オプション" name="land_options_panel">
256 <text type="string" length="1" name="allow_label"> 231 <text length="1" name="allow_label" type="string">
257 ä»–ã®ä½äººã«ä»¥ä¸‹ã‚’許å¯ï¼š 232 ä»–ã®ä½äººã«ä»¥ä¸‹ã‚’許å¯ï¼š
258 </text> 233 </text>
259 <check_box label="地形を編集" name="edit land check" /> 234 <check_box label="地形を編集" name="edit land check" tool_tip="ãƒã‚§ãƒƒã‚¯ã‚’入れるã¨ã€ä»–人ãŒã‚ãªãŸã®åœŸåœ°ã®åœ°å½¢ç·¨é›†ã‚’è¡Œã†ã“ã¨ãŒå¯èƒ½ã¨ãªã‚Šã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã®ãƒã‚§ãƒƒã‚¯ã‚’外ã—ã¦ãŠãã“ã¨ã‚’ãŠã™ã™ã‚ã—ã¾ã™ã€‚外ã—ãŸçŠ¶æ…‹ã§ã‚ãªãŸã®åœŸåœ°ã®åœ°å½¢ç·¨é›†ãŒå¯èƒ½ã§ã™ã€‚"/>
260 <check_box label="ランドマーク作æˆ" name="check landmark" /> 235 <check_box label="ランドマーク作æˆ" name="check landmark"/>
261 <check_box label="飛行" name="check fly" /> 236 <check_box label="飛行" name="check fly" tool_tip="ãƒã‚§ãƒƒã‚¯ã‚’入れるã¨ã“ã®åœŸåœ°ã§ã®é£›è¡ŒãŒå¯èƒ½ã¨ãªã‚Šã¾ã™ã€‚ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨åœŸåœ°ã«å…¥ã‚‹éš›ã¨é€šã‚ŠéŽãŽã‚‹ã¨ãã®ã¿é£›è¡Œå¯èƒ½ã¨ãªã‚Šã¾ã™ã€‚"/>
262 <text type="string" length="1" left="138" name="allow_label2" width="144"> 237 <text left="138" length="1" name="allow_label2" type="string" width="144">
263 オブジェクトã®ä½œæˆï¼š 238 オブジェクトã®ä½œæˆï¼š
264 </text> 239 </text>
265 <check_box label="ã™ã¹ã¦ã®ä½äºº" left="280" name="edit objects check" /> 240 <check_box label="ã™ã¹ã¦ã®ä½äºº" left="280" name="edit objects check"/>
266 <check_box label="グループ" left="380" name="edit group objects check" /> 241 <check_box label="グループ" left="380" name="edit group objects check"/>
267 <text type="string" length="1" left="138" name="allow_label3" width="144"> 242 <text left="138" length="1" name="allow_label3" type="string" width="144">
268 オブジェクト・エントリ: 243 オブジェクトã®é€²å…¥ï¼š
269 </text> 244 </text>
270 <check_box label="ã™ã¹ã¦ã®ä½äºº" left="280" name="all object entry check" /> 245 <check_box label="ã™ã¹ã¦ã®ä½äºº" left="280" name="all object entry check"/>
271 <check_box label="グループ" left="380" name="group object entry check" /> 246 <check_box label="グループ" left="380" name="group object entry check"/>
272 <text type="string" length="1" left="138" name="allow_label4" width="144"> 247 <text left="138" length="1" name="allow_label4" type="string" width="144">
273 スクリプト実行: 248 スクリプトã®å®Ÿè¡Œï¼š
274 </text> 249 </text>
275 <check_box label="ã™ã¹ã¦ã®ä½äºº" left="280" name="check other scripts" /> 250 <check_box label="ã™ã¹ã¦ã®ä½äºº" left="280" name="check other scripts"/>
276 <check_box label="グループ" left="380" name="check group scripts" /> 251 <check_box label="グループ" left="380" name="check group scripts"/>
277 <text type="string" length="1" name="land_options_label"> 252 <text length="1" name="land_options_label" type="string">
278 土地オプション: 253 土地オプション:
279 </text> 254 </text>
280 <check_box label="安全(ダメージãªã—)" name="check safe" /> 255 <check_box label="安全(ダメージãªã—)" name="check safe" tool_tip="ãƒã‚§ãƒƒã‚¯ã‚’入れるã¨ã“ã®åœŸåœ°ã§ã®ãƒ€ãƒ¡ãƒ¼ã‚¸ã‚³ãƒ³ãƒãƒƒãƒˆãŒç„¡åŠ¹ã«ãªã‚Šã€ã€Œå®‰å…¨ã€ã«è¨­å®šã•ã‚Œã¾ã™ã€‚ ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã¨ãƒ€ãƒ¡ãƒ¼ã‚¸ã‚³ãƒ³ãƒãƒƒãƒˆãŒæœ‰åŠ¹ã«ãªã‚Šã¾ã™ã€‚"/>
281 <check_box label="プッシュを制é™" name="PushRestrictCheck" 256 <check_box label="プッシングを制é™" name="PushRestrictCheck" tool_tip="スクリプトã«ã‚ˆã‚‹ãƒ—ッシングを制é™ã—ã¾ã™ã€‚ ã“ã®ã‚ªãƒ—ションをé¸æŠžã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€ã‚ãªãŸã®åœŸåœ°ã§ã®ç ´å£Šçš„行動を妨ã’ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"/>
282 tool_tip="llPushObjectãŒæ©Ÿèƒ½ã™ã‚‹ã®ã¯ã€åŒºç”»ã‚ªãƒ¼ãƒŠãƒ¼ã®ã‚¹ã‚¯ãƒªãƒ—トを通ã˜ã¦ä½¿ç”¨ã•ã‚ŒãŸå ´åˆã‹ã€ã¾ãŸã¯ãƒ—ッシュ元ãŒã‚ªãƒ¼ãƒŠãƒ¼ã«ãªã£ã¦ã„るスクリプトを通ã˜ã¦ä½¿ç”¨ã•ã‚ŒãŸå ´åˆã ã‘ã§ã™ã€‚" /> 257 <check_box label="検索ã«è¡¨ç¤ºï¼žï¼ˆé€±L$30)以下ã®å ´æ‰€" name="ShowDirectoryCheck" tool_tip="検索çµæžœã§ã“ã®åŒºç”»ã‚’表示ã•ã›ã‚‹"/>
283 <check_box label="検索ã«è¡¨ç¤ºï¼žï¼ˆé€±L$30)以下ã®å ´æ‰€"
284 name="ShowDirectoryCheck"
285 tool_tip="検索çµæžœã§ã€ã“ã®åŒºç”»ã‚’人ã«è¦‹ã›ã‚‹" />
286 <combo_box name="land category"> 258 <combo_box name="land category">
287 <combo_item name="AnyCategory"> 259 <combo_item name="AnyCategory">
288 全カテゴリー 260 全カテゴリー
@@ -324,66 +296,59 @@
324 ãã®ä»– 296 ãã®ä»–
325 </combo_item> 297 </combo_item>
326 </combo_box> 298 </combo_box>
327 <check_box label="æˆäººå‘ã‘コンテンツ" name="MatureCheck" 299 <button label="?" label_selected="?" name="?"/>
328 tool_tip="ã‚ãªãŸã®åŒºç”»æƒ…å ±ã¾ãŸã¯ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ãŒæˆäººå‘ã‘ã¨è¦‹ãªã•ã‚Œã¦ã„ã¾ã™ã€‚" /> 300 <check_box label="æˆäººå‘ã‘コンテンツ" name="MatureCheck" tool_tip="ã‚ãªãŸã®åŒºç”»æƒ…å ±ã¾ãŸã¯ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ãŒæˆäººå‘ã‘ã¨è¦‹ãªã•ã‚Œã¦ã„ã¾ã™ã€‚"/>
329 <check_box label="リストをウェブ上ã§å…¬é–‹" name="PublishCheck" 301 <text length="1" name="Snapshot:" type="string">
330 tool_tip="自分ã®åŒºç”»æƒ…報をウェブ上ã§å…¬é–‹ã—ã¾ã™ã€‚" />
331 <button label="?" label_selected="?" name="?" />
332 <text type="string" length="1" name="Snapshot:">
333 スナップショット: 302 スナップショット:
334 </text> 303 </text>
335 <texture_picker label="" left="116" name="snapshot_ctrl" 304 <texture_picker label="" left="116" name="snapshot_ctrl" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
336 tool_tip="写真をクリックã—ã¦é¸æŠž" />
337 <text type="string" length="1" name="Landing Point: (none)">
338 ç€åœ°ç‚¹ï¼šï¼ˆãªã—)
339 </text>
340 <text name="landing_point"> 305 <text name="landing_point">
341 ç€é™¸åœ°ç‚¹: [LANDING] 306 ç€é™¸åœ°ç‚¹: [LANDING]
342 </text> 307 </text>
343 <text name="landing_point_none"> 308 <string name="landing_point_none">
344 (ãªã—) 309 (ãªã—)
345 </text> 310 </string>
346 <button label="設定" label_selected="設定" name="Set" 311 <button label="設定" label_selected="設定" name="Set" tool_tip="訪å•è€…ã®ç€åœ°åœ°ç‚¹ã®è¨­å®šã‚’è¡Œã„ã¾ã™ã€‚ã“ã®åŒºç”»å†…ã«ç«‹ã£ã¦è¡Œã£ã¦ãã ã•ã„。"/>
347 tool_tip="ã‚ãªãŸã®ã‚¢ãƒã‚¿ãƒ¼ã®ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã«ç€åœ°ç‚¹ã‚’設定ã—ã¦ãã ã•ã„。 ã“ã®åœŸåœ°åŒºç”»ã®ä¸­ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。" /> 312 <button label="クリア" label_selected="クリア" name="Clear" tool_tip="ç€åœ°ç‚¹ã‚’クリアã—ã¦ãã ã•ã„。"/>
348 <button label="クリア" label_selected="クリア" name="Clear" 313 <text length="1" name="Teleport Routing: " type="string">
349 tool_tip="ç€åœ°ç‚¹ã‚’クリアã—ã¦ãã ã•ã„。" /> 314 テレãƒãƒ¼ãƒˆåˆ¶é™ï¼š
350 <text type="string" length="1" name="Teleport Routing: "> 315 </text>
351 テレãƒãƒ¼ãƒˆãƒ»ãƒ«ãƒ¼ãƒˆ: 316 <combo_box name="landing type" tool_tip="Teleport Routing -- select how to handle teleports onto your land.">
352 </text> 317 <combo_item length="1" name="Blocked" type="string">
353 <combo_box name="landing type" 318 ä¸å¯
354 tool_tip="Teleport Routing -- select how to handle teleports onto your land.">
355 <combo_item type="string" length="1" name="Blocked">
356 ブロック済ã¿
357 </combo_item> 319 </combo_item>
358 <combo_item type="string" length="1" name="LandingPoint"> 320 <combo_item length="1" name="LandingPoint" type="string">
359 ç€åœ°ç‚¹ 321 ç€åœ°ç‚¹
360 </combo_item> 322 </combo_item>
361 <combo_item type="string" length="1" name="Anywhere"> 323 <combo_item length="1" name="Anywhere" type="string">
362 ã©ã“ã§ã‚‚ 324 ã©ã“ã§ã‚‚
363 </combo_item> 325 </combo_item>
364 </combo_box> 326 </combo_box>
365 <text name="push_restrict_text"> 327 <string name="push_restrict_text">
366 ãƒ—ãƒƒã‚·ãƒ³ã‚°ã‚’åˆ¶é™ 328 プッシングを制é™
367 </text> 329 </string>
368 <text name="push_restrict_region_text"> 330 <string name="push_restrict_region_text">
369 ãƒ—ãƒƒã‚·ãƒ³ã‚°ã‚’åˆ¶é™ (地域ç¡åŠ¹) 331 ãƒ—ãƒƒã‚·ãƒ³ã‚°ã‚’åˆ¶é™ (地域åªå…ˆ)
370 </text> 332 </string>
371 </panel> 333 </panel>
372 <panel label="メディア" name="land_media_panel"> 334 <panel label="メディア" name="land_media_panel">
373 <text name="at URL:">
374 URL:
375 </text>
376 <button label="設定..." label_selected="設定..." name="set_media_url" />
377 <text name="with media:"> 335 <text name="with media:">
378 タイプ: 336 タイプ:
379 </text> 337 </text>
380 <combo_box name="media type" 338 <combo_box name="media type" tool_tip="URL ãŒå‹•ç”»ã€ã‚¦ã‚§ãƒ–・ページã€ãã®ä»–ã®ãƒ¡ãƒ‡ã‚£ã‚¢ã®å ´åˆã«æŒ‡å®šã—ã¾ã™"/>
381 tool_tip="URL ãŒå‹•ç”»ã€ã‚¦ã‚§ãƒ–・ページã€ãã®ä»–ã®ãƒ¡ãƒ‡ã‚£ã‚¢ã®å ´åˆã«æŒ‡å®šã—ã¾ã™" /> 339 <text name="at URL:">
340 URL:
341 </text>
342 <button label="設定..." label_selected="設定..." name="set_media_url"/>
382 <text name="Description:"> 343 <text name="Description:">
383 説明: 344 説明:
384 </text> 345 </text>
385 <line_editor name="url_description" 346 <line_editor name="url_description" tool_tip="ï¼»å†ç”Ÿï¼½/[ロード]ボタンã®éš£ã«è¡¨ç¤ºã•ã‚Œã‚‹ãƒ†ã‚­ã‚¹ãƒˆ"/>
386 tool_tip="ï¼»å†ç”Ÿï¼½/[ロード]ボタンã®éš£ã«è¡¨ç¤ºã•ã‚Œã‚‹ãƒ†ã‚­ã‚¹ãƒˆ" /> 347 <text length="1" name="Media texture:" type="string">
348 テクスãƒ
349ャå–替:
350 </text>
351 <texture_picker label="" name="media texture" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
387 <text name="replace_texture_help"> 352 <text name="replace_texture_help">
388 ï¼»å†ç”Ÿï¼½çŸ¢å°ã‚’クリックã™ã‚‹ã¨ã€ã“ã®ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ã‚’使用ã™ã‚‹ã‚ªãƒ–ジェクト㫠353 ï¼»å†ç”Ÿï¼½çŸ¢å°ã‚’クリックã™ã‚‹ã¨ã€ã“ã®ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ã‚’使用ã™ã‚‹ã‚ªãƒ–ジェクトã«
389å‹•ç”»ã¾ãŸã¯ã‚¦ã‚§ãƒ–・ページãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ 354å‹•ç”»ã¾ãŸã¯ã‚¦ã‚§ãƒ–・ページãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚
@@ -392,20 +357,15 @@
392 メディア 357 メディア
393オプション: 358オプション:
394 </text> 359 </text>
395 <check_box label="メディアã®ãƒ«ãƒ¼ãƒ—" name="media_loop" 360 <check_box label="スケールを自動設定" name="media_auto_scale" tool_tip="ã“ã®ã‚ªãƒ—ションをãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€ã“ã®åŒºç”»ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®ã‚¹ã‚±ãƒ¼ãƒ«ãŒè‡ªå‹•çš„ã«è¨­å®šã•ã‚Œã¾ã™ã€‚ 動作速度ã¨ç”»è³ªãŒå°‘ã—低下ã™ã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ãŒã€ä»–ã®ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ã®ã‚¹ã‚±ãƒ¼ãƒªãƒ³ã‚°ã‚„整列ãŒå¿…è¦ã«ãªã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。"/>
396 tool_tip="メディアをループå†ç”Ÿã—ã¾ã™ã€‚ メディアã®å†ç”ŸãŒçµ‚ã‚ã£ãŸã‚‰ã€æœ€åˆã‹ã‚‰å†ç”Ÿã—ç›´ã—ã¾ã™ã€‚" /> 361 <check_box label="メディアã®ãƒ«ãƒ¼ãƒ—" name="media_loop" tool_tip="メディアをループå†ç”Ÿã—ã¾ã™ã€‚ メディアã®å†ç”ŸãŒçµ‚ã‚ã£ãŸã‚‰ã€æœ€åˆã‹ã‚‰å†ç”Ÿã—ç›´ã—ã¾ã™ã€‚"/>
397 <check_box label="メディア URL ã‚’éš ã™" name="hide_media_url" 362 <check_box label="メディア URL ã‚’éš ã™" name="hide_media_url" tool_tip="ã“ã®ã‚ªãƒ—ションをオンã«ã™ã‚‹ã¨ã€è¨±å¯ãªã—ã§ã“ã®åŒºç”»æƒ…å ±ã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã„るユーザーã«ã¯ãƒ¡ãƒ‡ã‚£ã‚¢ URL ãŒè¡¨ç¤ºã•ã‚Œã¾ã›ã‚“。 ã“れ㯠HTML タイプã«ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“ã®ã§ã”注æ„ãã ã•ã„。"/>
398 tool_tip="ã“ã®ã‚ªãƒ—ションをオンã«ã™ã‚‹ã¨ã€è¨±å¯ãªã—ã§ã“ã®åŒºç”»æƒ…å ±ã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã„るユーザーã«ã¯ãƒ¡ãƒ‡ã‚£ã‚¢ URL ãŒè¡¨ç¤ºã•ã‚Œã¾ã›ã‚“。 ã“れ㯠HTML タイプã«ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“ã®ã§ã”注æ„ãã ã•ã„。" /> 363 <check_box label="音楽ã®URLã‚’éš ã™" name="hide_music_url" tool_tip="ã“ã®ã‚ªãƒ—ションをオンã«ã™ã‚‹ã¨ã€è¨±å¯ãªã—ã§ã“ã®åŒºç”»æƒ…å ±ã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã„るユーザーã«ã¯éŸ³æ¥½ã® URL ãŒè¡¨ç¤ºã•ã‚Œã¾ã›ã‚“。"/>
399 <check_box label="音楽ã®URLã‚’éš ã™" name="hide_music_url" 364 <text name="media_size" tool_tip="レンダリングã™ã‚‹ã‚¦ã‚§ãƒ–・メディアã®ã‚µã‚¤ã‚ºã€‚デフォルト㮠0 ã®ã¾ã¾ã«ã—ã¾ã™ã€‚">
400 tool_tip="ã“ã®ã‚ªãƒ—ションをオンã«ã™ã‚‹ã¨ã€è¨±å¯ãªã—ã§ã“ã®åŒºç”»æƒ…å ±ã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¦ã„るユーザーã«ã¯éŸ³æ¥½ã® URL ãŒè¡¨ç¤ºã•ã‚Œã¾ã›ã‚“。" />
401 <text name="media_size"
402 tool_tip="レンダリングã™ã‚‹ã‚¦ã‚§ãƒ–・メディアã®ã‚µã‚¤ã‚ºã€‚デフォルト㮠0 ã®ã¾ã¾ã«ã—ã¾ã™ã€‚">
403 サイズ: 365 サイズ:
404 </text> 366 </text>
405 <spinner name="media_size_width" 367 <spinner name="media_size_width" tool_tip="レンダリングã™ã‚‹ã‚¦ã‚§ãƒ–・メディアã®ã‚µã‚¤ã‚ºã€‚デフォルト㮠0 ã®ã¾ã¾ã«ã—ã¾ã™ã€‚"/>
406 tool_tip="レンダリングã™ã‚‹ã‚¦ã‚§ãƒ–・メディアã®ã‚µã‚¤ã‚ºã€‚デフォルト㮠0 ã®ã¾ã¾ã«ã—ã¾ã™ã€‚" /> 368 <spinner name="media_size_height" tool_tip="レンダリングã™ã‚‹ã‚¦ã‚§ãƒ–・メディアã®ã‚µã‚¤ã‚ºã€‚デフォルト㮠0 ã®ã¾ã¾ã«ã—ã¾ã™ã€‚"/>
407 <spinner name="media_size_height"
408 tool_tip="レンダリングã™ã‚‹ã‚¦ã‚§ãƒ–・メディアã®ã‚µã‚¤ã‚ºã€‚デフォルト㮠0 ã®ã¾ã¾ã«ã—ã¾ã™ã€‚" />
409 <text name="pixels"> 369 <text name="pixels">
410 ピクセル 370 ピクセル
411 </text> 371 </text>
@@ -415,27 +375,11 @@
415 <text name="Sound:"> 375 <text name="Sound:">
416 サウンド: 376 サウンド:
417 </text> 377 </text>
418 <check_box label="空間音響をã“ã®åŒºç”»ã ã‘ã«é™å®š" name="check sound local" /> 378 <check_box label="空間音響をã“ã®åŒºç”»ã ã‘ã«é™å®š" name="check sound local"/>
419 <text type="string" length="1" name="Music URL:">
420 ミュージックURL:
421 </text>
422 <text type="string" length="1" name="Media texture:">
423 テクスãƒ
424ャå–替:
425 </text>
426 <text type="string" length="1" name="Replace this texture:">
427 ã“ã®ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ã‚’ç½®æ›ï¼š
428 </text>
429 <texture_picker label="" name="media texture" tool_tip="写真をクリックã—ã¦é¸æŠž" />
430 <text type="string" length="1" name="with content from this URL:">
431 ã“ã® URLã‹ã‚‰ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„:
432 </text>
433 <check_box label="スケールを自動設定" name="media_auto_scale"
434 tool_tip="ã“ã®ã‚ªãƒ—ションをãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€ã“ã®åŒºç”»ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã®ã‚¹ã‚±ãƒ¼ãƒ«ãŒè‡ªå‹•çš„ã«è¨­å®šã•ã‚Œã¾ã™ã€‚ 動作速度ã¨ç”»è³ªãŒå°‘ã—低下ã™ã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ãŒã€ä»–ã®ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ã®ã‚¹ã‚±ãƒ¼ãƒªãƒ³ã‚°ã‚„整列ãŒå¿…è¦ã«ãªã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。" />
435 <text name="Voice settings:"> 379 <text name="Voice settings:">
436 ボイス: 380 ボイス:
437 </text> 381 </text>
438 <radio_group name="parcel_voice_channel"> 382 <radio_group name="parcel_voice_channel" width="310">
439 <radio_item name="Estate"> 383 <radio_item name="Estate">
440 ä¸å‹•ç”£ç©ºé–“ãƒãƒ£ãƒ³ãƒãƒ«ã‚’使用 384 ä¸å‹•ç”£ç©ºé–“ãƒãƒ£ãƒ³ãƒãƒ«ã‚’使用
441 </radio_item> 385 </radio_item>
@@ -448,23 +392,20 @@
448 </radio_group> 392 </radio_group>
449 </panel> 393 </panel>
450 <panel label="アクセス" name="land_access_panel"> 394 <panel label="アクセス" name="land_access_panel">
451 <text type="string" length="1" name="Limit access to this parcel to:"> 395 <text length="1" name="Limit access to this parcel to:" type="string">
452 ã“ã®åŒºç”»ã«ã‚¢ã‚¯ã‚»ã‚¹ 396 ã“ã®åŒºç”»ã«ã‚¢ã‚¯ã‚»ã‚¹
453 </text> 397 </text>
454 <check_box label="パブリック・アクセスを許å¯" name="public_access" /> 398 <check_box label="パブリック・アクセスを許å¯" name="public_access"/>
455 <text name="Only Allow"> 399 <text name="Only Allow">
456 次ã®ä½äººã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’ブロック: 400 次ã®ä½äººã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’ブロック:
457 </text> 401 </text>
458 <check_box label="Linden Labã«æ”¯æ‰•ã„情報を登録ã—ã¦ã„ãªã„ä½äºº" 402 <check_box label="Linden Labã«æ”¯æ‰•ã„情報を登録ã—ã¦ã„ãªã„ä½äºº" name="limit_payment" tool_tip="支払ã„情報未確èªã®ä½äººã‚’排除ã™ã‚‹"/>
459 name="limit_payment" tool_tip="年齢未確èªã®ä½äººã‚’排除ã™ã‚‹" /> 403 <check_box label="年齢確èªã‚’済ã¾ã›ã¦ã„ãªã„æˆäººã®ä½äºº" name="limit_age_verified" tool_tip="年齢確èªã‚’済ã¾ã›ã¦ã„ãªã„ä½äººã‚’排除ã™ã‚‹è©³ç´°ã«ã¤ã„ã¦ã¯ã€support.secondlife.comã‚’å‚ç…§ã—ã¦ãã ã•ã„。"/>
460 <check_box label="年齢確èªã‚’済ã¾ã›ã¦ã„ãªã„æˆäººã®ä½äºº"
461 name="limit_age_verified"
462 tool_tip="年齢確èªã‚’済ã¾ã›ã¦ã„ãªã„ä½äººã‚’排除ã™ã‚‹è©³ç´°ã«ã¤ã„ã¦ã¯ã€support.secondlife.comã‚’å‚ç…§ã—ã¦ãã ã•ã„。" />
463 <string name="estate_override"> 404 <string name="estate_override">
464 1ã¤ä»¥ä¸Šã®ã‚ªãƒ—ションãŒã€ä¸å‹•ç”£ãƒ¬ãƒ™ãƒ«ã§è¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚ 405 1ã¤ä»¥ä¸Šã®ã‚ªãƒ—ションãŒã€ä¸å‹•ç”£ãƒ¬ãƒ™ãƒ«ã§è¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚
465 </string> 406 </string>
466 <check_box label="グループ・アクセスを許å¯ï¼š[GROUP]" name="GroupCheck" 407 <check_box label="グループ・アクセスを許å¯ï¼š[GROUP]" name="GroupCheck" tool_tip="[一般]タブã§ã€ã‚°ãƒ«ãƒ¼ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。"/>
467 tool_tip="[一般]タブã§ã€ã‚°ãƒ«ãƒ¼ãƒ—ã‚’é¸æŠžã—ã¦ãã ã•ã„。" /> 408 <check_box label="入場許å¯ã‚’販売:" name="PassCheck" tool_tip="ã“ã®åŒºç”»ã¸ã®ä¸€æ™‚çš„ãªã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯"/>
468 <combo_box name="pass_combo"> 409 <combo_box name="pass_combo">
469 <combo_item name="Anyone"> 410 <combo_item name="Anyone">
470 誰ã§ã‚‚ 411 誰ã§ã‚‚
@@ -473,45 +414,20 @@
473 グループ 414 グループ
474 </combo_item> 415 </combo_item>
475 </combo_box> 416 </combo_box>
417 <spinner label="価格(L$):" name="PriceSpin"/>
418 <spinner label="アクセス時間:" name="HoursSpin"/>
476 <text label="常ã«è¨±å¯" name="AllowedText"> 419 <text label="常ã«è¨±å¯" name="AllowedText">
477 許å¯ã•ã‚ŒãŸä½äºº 420 許å¯ã•ã‚ŒãŸä½äºº
478 </text> 421 </text>
479 <button label="追加..." label_selected="追加..." name="add_allowed" /> 422 <name_list name="AccessList" tool_tip="([LISTED]リスト入りã€[MAX]最大)"/>
480 <button label="削除" label_selected="削除" name="remove_allowed" /> 423 <button label="追加..." label_selected="追加..." name="add_allowed"/>
481 <check_box label="ç¦æ­¢" name="BanCheck"> 424 <button label="削除" label_selected="削除" name="remove_allowed"/>
425 <text label="ç¦æ­¢" name="BanCheck">
482 ç¦æ­¢ã•ã‚ŒãŸä½äºº 426 ç¦æ­¢ã•ã‚ŒãŸä½äºº
483 </check_box> 427 </text>
484 <name_list name="AccessList" tool_tip="([LISTED]リスト入りã€[MAX]最大)"> 428 <name_list name="BannedList" tool_tip="([LISTED]リスト入りã€[MAX]最大)"/>
485 <column label="許å¯ã•ã‚ŒãŸä½äºº" name="name" /> 429 <button label="追加..." label_selected="追加..." name="add_banned"/>
486 </name_list> 430 <button label="削除" label_selected="削除" name="remove_banned"/>
487 <button label="追加..." label_selected="追加..." name="Add..." />
488 <button label="削除" label_selected="削除" name="Remove" />
489 <check_box label="パスを販売:" name="PassCheck"
490 tool_tip="ã“ã®åŒºç”»ã¸ã®ä¸€æ™‚çš„ãªã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯" />
491 <spinner label="L$建ã¦ä¾¡æ ¼ï¼š" name="PriceSpin" />
492 <spinner label="アクセス時間:" name="HoursSpin" />
493 <name_list name="BannedList" tool_tip="([LISTED]リスト入りã€[MAX]最大)" />
494 <button label="追加..." label_selected="追加..." name="add_banned" />
495 <button label="削除" label_selected="削除" name="remove_banned" />
496 </panel>
497 <panel label="ç¦æ­¢" name="land_ban_panel">
498 <check_box
499 label="ã“れらã®ã‚¢ãƒã‚¿ãƒ¼ã‚’ç¦æ­¢ã™ã‚‹:([LISTED]リスト済ã¿ã€[MAX]最大)"
500 name="LandBanCheck" />
501 <name_list name="LandBanList">
502 <column label="ç¦æ­¢ã•ã‚ŒãŸä½äºº" name="name" />
503 </name_list>
504 <button label="追加..." label_selected="追加..." name="Add..." />
505 <button label="削除" label_selected="削除" name="Remove" />
506 <text type="string" length="1" name="Deny by Payment Status:">
507 支払ã„状æ³ã«ã‚ˆã‚Šæ‹’å¦ï¼š
508 </text>
509 <check_box label="支払ã„情報ã®ç™»éŒ²ãŒãªã„ã‚‚ã®ã‚’æ‹’å¦"
510 name="DenyAnonymousCheck" />
511 <check_box label="支払ã„情報ã®ç™»éŒ²ãŒã‚ã‚‹ã‚‚ã®ã‚’æ‹’å¦"
512 name="DenyIdentifiedCheck" />
513 <check_box label="支払ã„情報ãŒä½¿ç”¨ã•ã‚Œã¦ã„ã‚‹ã‚‚ã®ã‚’æ‹’å¦"
514 name="DenyTransactedCheck" />
515 </panel> 431 </panel>
516 </tab_container> 432 </tab_container>
517</floater> 433</floater>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml b/linden/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
index ee7e4df..fb0659f 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
@@ -1,15 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="avatar_texture_debug" title="ã‚¢ãƒã‚¿ãƒ¼ãƒ»ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼"> 2<floater name="avatar_texture_debug" title="ã‚¢ãƒã‚¿ãƒ¼ãƒ»ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼">
3 <text name=""> 3 <text name="baked_label" width="128">
4 構築ã•ã‚ŒãŸãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ 4 構築ã•ã‚ŒãŸï¾ƒï½¸ï½½ï¾ï½¬ï½°
5 </text> 5 </text>
6 <text name=""> 6 <text name="composite_label" width="128">
7 åˆæˆãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼
8 </text>
9 <text name="baked_label">
10 構築ã•ã‚ŒãŸãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼
11 </text>
12 <text name="composite_label">
13 åˆæˆãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ 7 åˆæˆãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼
14 </text> 8 </text>
15 <texture_picker label="é ­" name="baked_head" /> 9 <texture_picker label="é ­" name="baked_head" />
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_beacons.xml b/linden/indra/newview/skins/default/xui/ja/floater_beacons.xml
new file mode 100644
index 0000000..49c8758
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/ja/floater_beacons.xml
@@ -0,0 +1,15 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="beacons" title="ビーコン(標識)">
3 <panel name="beacons_panel">
4 <check_box label="タッï¾ï½µï¾ï¾˜ï½°ã®ï½½ï½¸ï¾˜ï¾Œï¾Ÿï¾„ã‚’å«ã‚€ï½µï¾Œï¾žï½¼ï¾žï½ªï½¸ï¾„" name="touch_only"/>
5 <check_box label="スクリプト・オブジェクト" name="scripted"/>
6 <check_box label="物ç†çš„オブジェクト" name="physical"/>
7 <check_box label="音æº" name="sounds"/>
8 <check_box label="パーティクルæº" name="particles"/>
9 <check_box label="ãƒã‚¤ãƒ©ã‚¤ãƒˆã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°" name="highlights"/>
10 <check_box label="ビーコン(標識)ã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°" name="beacons"/>
11 <text name="beacon_width_label">
12 ビーコン(標識)ã®å¹…
13 </text>
14 </panel>
15</floater>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_bumps.xml b/linden/indra/newview/skins/default/xui/ja/floater_bumps.xml
index 89748b4..cbd6a2f 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_bumps.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_bumps.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_bumps" title="ãã¤ã‹ã‚‹ã€æŠ¼ã™ã€ãŠã‚ˆã³å½“ãŸã‚‹"> 2<floater name="floater_bumps" title="è¡çªã®è¨˜éŒ²">
3 <text name="none_detected"> 3 <text name="none_detected">
4 検出ãªã— 4 検出ãªã—
5 </text> 5 </text>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_buy_currency.xml b/linden/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
index ca8f44d..a532640 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
@@ -35,19 +35,19 @@
35 データをå–å¾—ã—ã¦ã„ã¾ã™... 35 データをå–å¾—ã—ã¦ã„ã¾ã™...
36 </text> 36 </text>
37 <text name="balance_label"> 37 <text name="balance_label">
38 ç¾åœ¨æ‰€æœ‰ã—ã¦ã„ã‚‹ã®ã¯ 38 ç¾åœ¨æ‰€æœ‰ã—ã¦ã„る金é¡
39 </text> 39 </text>
40 <text name="balance_amount"> 40 <text name="balance_amount">
41 L$ [AMT] 41 L$ [AMT]
42 </text> 42 </text>
43 <text name="buying_label"> 43 <text name="buying_label">
44 ã‚ãªãŸã¯è³¼ãよã†ã¨ã—ã¦ã„ã¾ã™ 44 購入ãる金é¡
45 </text> 45 </text>
46 <text name="buying_amount"> 46 <text name="buying_amount">
47 L$ [AMT] 47 L$ [AMT]
48 </text> 48 </text>
49 <text name="total_label"> 49 <text name="total_label">
50 ã‚ãªãŸã®æ®‹é«˜ã¯ 50 åˆè¨ˆæ®‹é«˜
51 </text> 51 </text>
52 <text name="total_amount"> 52 <text name="total_amount">
53 L$ [AMT] 53 L$ [AMT]
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_buy_land.xml b/linden/indra/newview/skins/default/xui/ja/floater_buy_land.xml
index c67bdaf..85bafea 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_buy_land.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_buy_land.xml
@@ -22,10 +22,10 @@
22 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ï¼š 22 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ï¼š
23 </text> 23 </text>
24 <text name="resellable_clause"> 24 <text name="resellable_clause">
25 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€å†è²©ãŒå¯èƒ½ãªå ´åˆã¨ãã†ã§ãªã„å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ 25 ã“ã®åœ°åŸŸã§è³¼å…¥ã—ãŸåœŸåœ°ã¯ã€å†è²©ãŒå¯èƒ½ãªå ´åˆã¨ãã†ã§ãªã„å ´åˆãŒã‚ã‚Šã¾ã™
26 </text> 26 </text>
27 <text name="changeable_clause"> 27 <text name="changeable_clause">
28 çµ±åˆã¾ãŸã¯å†åˆ†å‰²ã•ã‚Œã‚‹å¯èƒ½æ€§ã‚‚ã€ã•ã‚Œãªã„å¯èƒ½æ€§ã‚‚ã‚ã‚Šã¾ã™ã€‚ 28 çµ±åˆã¾ãŸã¯å†åˆ†å‰²ã•ã‚Œã‚‹å¯èƒ½æ€§ã‚‚ã€ã•ã‚Œãªã„å¯èƒ½æ€§ã‚‚ã‚ã‚Šã¾ã™
29 </text> 29 </text>
30 <text name="covenant_text"> 30 <text name="covenant_text">
31 ä¸å‹•ç”£ç´„款ã«åŒæ„ã—ã¦ãã ã•ã„: 31 ä¸å‹•ç”£ç´„款ã«åŒæ„ã—ã¦ãã ã•ã„:
@@ -33,7 +33,7 @@
33 <text_editor name="covenant_editor"> 33 <text_editor name="covenant_editor">
34 ロード中... 34 ロード中...
35 </text_editor> 35 </text_editor>
36 <check_box label="上記ã®ç´„款ã«åŒæ„ã—ã¾ã™ã€‚" name="agree_covenant" /> 36 <check_box label="上記ã®ç´„款ã«åŒæ„ã—ã¾ã™" name="agree_covenant" />
37 <text name="info_parcel_label"> 37 <text name="info_parcel_label">
38 区画: 38 区画:
39 </text> 39 </text>
@@ -43,10 +43,10 @@
43 <text name="info_size_label"> 43 <text name="info_size_label">
44 サイズ: 44 サイズ:
45 </text> 45 </text>
46 <text name="info_size"> 46 <text name="info_size" bottom_delta="-37" height="48" >
47 1024平方メートル 47 1024平方メートル
48 </text> 48 </text>
49 <text name="info_price_label"> 49 <text name="info_price_label" >
50 価格: 50 価格:
51 </text> 51 </text>
52 <text name="info_price"> 52 <text name="info_price">
@@ -56,14 +56,14 @@
56 ã“ã®åœŸåœ°ã‚’è²·ã†ã¨ï¼š 56 ã“ã®åœŸåœ°ã‚’è²·ã†ã¨ï¼š
57 </text> 57 </text>
58 <text name="error_message"> 58 <text name="error_message">
59 何ã‹å¤‰ã§ã™ã€‚ 59 何ã‹å¤‰ã§ã™
60 </text> 60 </text>
61 <button label="ウェブ・サイトã«ç§»å‹•" name="error_web" /> 61 <button label="ウェブ・サイトã«ç§»å‹•" name="error_web" />
62 <text name="account_action"> 62 <text name="account_action">
63 プレミアム・メンãƒãƒ¼ã«ã‚¢ãƒƒãƒ—グレード 63 プレミアム・メンãƒãƒ¼ã«ã‚¢ãƒƒãƒ—グレード
64 </text> 64 </text>
65 <text name="account_reason"> 65 <text name="account_reason">
66 土地をä¿æœ‰ã§ãã‚‹ã®ã¯ãƒ—レミアム・メンãƒãƒ¼ã ã‘ã§ã™ã€‚ 66 土地をä¿æœ‰ã§ãã‚‹ã®ã¯ãƒ—レミアム・メンãƒãƒ¼ã ã‘ã§ã™
67 </text> 67 </text>
68 <combo_box name="account_level"> 68 <combo_box name="account_level">
69 <combo_item name="US$9.95/month,billedmonthly"> 69 <combo_item name="US$9.95/month,billedmonthly">
@@ -77,7 +77,7 @@
77 </combo_item> 77 </combo_item>
78 </combo_box> 78 </combo_box>
79 <text name="land_use_action"> 79 <text name="land_use_action">
80 毎月ã®åœŸåœ°ä½¿ç”¨æ–™ã‚’US$40ã«å¼•ã上ã’ã¾ã™ã€‚ 80 毎月ã®åœŸåœ°ä½¿ç”¨æ–™ã‚’US$40ã«å¼•ã上ã’ã¾ã™
81 </text> 81 </text>
82 <text name="land_use_reason"> 82 <text name="land_use_reason">
83 ã‚ãªãŸã¯1,309平方メートルã®åœŸåœ°ã‚’所有ã—ã¦ã„ã¾ã™ã€‚ 83 ã‚ãªãŸã¯1,309平方メートルã®åœŸåœ°ã‚’所有ã—ã¦ã„ã¾ã™ã€‚
@@ -119,32 +119,32 @@
119 çµ±åˆï¼å†åˆ†å‰²ä¸å¯èƒ½ 119 çµ±åˆï¼å†åˆ†å‰²ä¸å¯èƒ½
120 </text> 120 </text>
121 <text name="cant_buy_for_group"> 121 <text name="cant_buy_for_group">
122 ã‚ãªãŸã¯ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªã‚°ãƒ«ãƒ¼ãƒ—用ã®åœŸåœ°è³¼å…¥ã‚’許å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“。 122 ã‚ãªãŸã¯ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªã‚°ãƒ«ãƒ¼ãƒ—用ã®åœŸåœ°è³¼å…¥ã‚’許å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“
123 </text> 123 </text>
124 <text name="no_land_selected"> 124 <text name="no_land_selected">
125 土地ãŒé¸æŠžã•ã‚Œã¦ã„ã¾ã›ã‚“。 125 土地ãŒé¸æŠžã•ã‚Œã¦ã„ã¾ã›ã‚“
126 </text> 126 </text>
127 <text name="multiple_parcels_selected"> 127 <text name="multiple_parcels_selected">
128 複数ã®ç•°ãªã£ãŸåŒºç”»ã‚’é¸æŠžã—ã¾ã—ãŸã€‚ 128 複数ã®ç•°ãªã£ãŸåŒºç”»ã‚’é¸æŠžã—ã¾ã—ãŸã€‚
129ã“れよりå°ã•ãªã‚¨ãƒªã‚¢ã‚’é¸æŠžã—ã¦ãã ã•ã„。 129ã“れよりå°ã•ãªã‚¨ãƒªã‚¢ã‚’é¸æŠžã—ã¦ãã ã•ã„。
130 </text> 130 </text>
131 <text name="no_permission"> 131 <text name="no_permission">
132 ã‚ãªãŸã¯ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªã‚°ãƒ«ãƒ¼ãƒ—用ã®åœŸåœ°è³¼å…¥ã‚’許å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“。 132 ã‚ãªãŸã¯ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªã‚°ãƒ«ãƒ¼ãƒ—用ã®åœŸåœ°è³¼å…¥ã‚’許å¯ã•ã‚Œã¦ã„ã¾ã›ã‚“
133 </text> 133 </text>
134 <text name="parcel_not_for_sale"> 134 <text name="parcel_not_for_sale">
135 é¸æŠžã•ã‚ŒãŸåŒºç”»ã¯è²©å£²å¯¾è±¡å¤–ã§ã™ã€‚ 135 é¸æŠžã•ã‚ŒãŸåŒºç”»ã¯è²©å£²å¯¾è±¡å¤–ã§ã™
136 </text> 136 </text>
137 <text name="group_already_owns"> 137 <text name="group_already_owns">
138 グループã¯ã™ã§ã«ã“ã®åŒºç”»ã‚’所有ã—ã¦ã„ã¾ã™ã€‚ 138 グループã¯ã™ã§ã«ã“ã®åŒºç”»ã‚’所有ã—ã¦ã„ã¾ã™
139 </text> 139 </text>
140 <text name="you_already_own"> 140 <text name="you_already_own">
141 ã‚ãªãŸã¯ã™ã§ã«ã“ã®åŒºç”»ã‚’所有ã—ã¦ã„ã¾ã™ã€‚ 141 ã‚ãªãŸã¯ã™ã§ã«ã“ã®åŒºç”»ã‚’所有ã—ã¦ã„ã¾ã™
142 </text> 142 </text>
143 <text name="set_to_sell_to_other"> 143 <text name="set_to_sell_to_other">
144 é¸æŠžã•ã‚ŒãŸåŒºç”»ã¯ã€ä»–ã®äººã¸ã®è²©å£²ãŒæ±ºã¾ã£ã¦ã„ã¾ã™ã€‚ 144 é¸æŠžã•ã‚ŒãŸåŒºç”»ã¯ã€ä»–ã®äººã¸ã®è²©å£²ãŒæ±ºã¾ã£ã¦ã„ã¾ã™
145 </text> 145 </text>
146 <text name="no_public_land"> 146 <text name="no_public_land">
147 é¸æŠžã•ã‚ŒãŸåœ°åŸŸã«ã€å…¬å…±ã®åœŸåœ°ã¯ã‚ã‚Šã¾ã›ã‚“。 147 é¸æŠžã•ã‚ŒãŸåœ°åŸŸã«ã€å…¬å…±ã®åœŸåœ°ã¯ã‚ã‚Šã¾ã›ã‚“
148 </text> 148 </text>
149 <text name="not_owned_by_you"> 149 <text name="not_owned_by_you">
150 ä»–ã®ä½¿ç”¨è€…ã«æ‰€æœ‰ã•ã‚ŒãŸåœŸåœ°ãŒé¸æŠžã•ã‚Œã¦ã„ã¾ã™ã€‚ 150 ä»–ã®ä½¿ç”¨è€…ã«æ‰€æœ‰ã•ã‚ŒãŸåœŸåœ°ãŒé¸æŠžã•ã‚Œã¦ã„ã¾ã™ã€‚
@@ -156,7 +156,7 @@
156(数分ã‹ã‹ã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ï¼‰ 156(数分ã‹ã‹ã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ï¼‰
157 </text> 157 </text>
158 <text name="fetching_error"> 158 <text name="fetching_error">
159 土地購入ã®æƒ…報入手中ã«ã‚¨ãƒ©ãƒ¼ãŒèµ·ãã¾ã—ãŸã€‚ 159 土地購入ã®æƒ…報入手中ã«ã‚¨ãƒ©ãƒ¼ãŒèµ·ãã¾ã—ãŸ
160 </text> 160 </text>
161 <text name="buying_will"> 161 <text name="buying_will">
162 ã“ã®åœŸåœ°ã‚’è²·ã†ã¨ï¼š 162 ã“ã®åœŸåœ°ã‚’è²·ã†ã¨ï¼š
@@ -174,32 +174,33 @@
174 一切必è¦ãªã— 174 一切必è¦ãªã—
175 </text> 175 </text>
176 <text name="must_upgrade"> 176 <text name="must_upgrade">
177 アカウントをアップグレードã—ãªã„ã¨ã€åœŸåœ°ã‚’所有ã§ãã¾ã›ã‚“。 177 アカウントをアップグレードã—ãªã„ã¨ã€åœŸåœ°ã‚’所有ã§ãã¾ã›ã‚“
178 </text> 178 </text>
179 <text name="cant_own_land"> 179 <text name="cant_own_land">
180 ã‚ãªãŸã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã§åœŸåœ°ã‚’所有ã§ãã¾ã™ã€‚ 180 ã‚ãªãŸã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã§åœŸåœ°ã‚’所有ã§ãã¾ã™
181 </text> 181 </text>
182 <text name="land_holdings"> 182 <text name="land_holdings">
183 ã‚ãªãŸã¯ [BUYER] 平方メートルã®åœŸåœ°ã‚’所有ã—ã¦ã„ã¾ã™ã€‚ 183 ã‚ãªãŸã¯ [BUYER] 平方メートルã®åœŸåœ°ã‚’所有ã—ã¦ã„ã¾ã™
184 </text> 184 </text>
185 <text name="pay_to_for_land"> 185 <text name="pay_to_for_land">
186 ã“ã®åœŸåœ°ã®ä»£é‡‘ã¨ã—ã¦ã€[SELLER]ã«L$[AMOUNT]を支払ㆠ186 ã“ã®åœŸåœ°ã®ä»£é‡‘ã¨ã—ã¦ã€[SELLER]ã«L$[AMOUNT]を支払ã†
187 </text> 187 </text>
188 <text name="buy_for_US"> 188 <text name="buy_for_US">
189 ç´„US$ [AMOUNT2]ã§L$ [AMOUNT]を購入 189 ç´„US$ [AMOUNT2]ã§L$ [AMOUNT]を購入
190 </text> 190 </text>
191 <text name="parcel_meters"> 191 <text name="parcel_meters">
192 ã“ã®åŒºç”»ã¯ [AMOUNT] 平方メートルã‚ã‚Šã¾ã™ã€‚ 192 ã“ã®åŒºç”»ã¯ [AMOUNT] 平方メートルã‚ã‚Šã¾ã™
193 </text> 193 </text>
194 <text name="premium_land"> 194 <text name="premium_land">
195 ã“ã®åœŸåœ°ã¯ãƒ—レミアムãªã®ã§ã€ [AMOUNT] 平方メートル ã¨ã—ã¦è«‹æ±‚ã•ã‚Œã¾ã™ã€‚ 195 ã“ã®åœŸåœ°ã¯ãƒ—レミアムãªã®ã§ã€ [AMOUNT] 平方メートル ã¨ã—ã¦è«‹æ±‚ã•ã‚Œã¾ã™
196 </text> 196 </text>
197 <text name="discounted_land"> 197 <text name="discounted_land">
198 ã“ã®åœŸåœ°ã¯å€¤ä¸‹ã’ã•ã‚Œã€[AMOUNT]平方メートルã¨ã—ã¦è«‹æ±‚ã•ã‚Œã¾ã™ã€‚ 198 ã“ã®åœŸåœ°ã¯å€¤ä¸‹ã’ã•ã‚Œã€[AMOUNT]平方メートルã¨ã—ã¦è«‹æ±‚ã•ã‚Œã¾ã™
199 </text> 199 </text>
200 <text name="meters_supports_object"> 200 <text name="meters_supports_object">
201 [AMOUNT]平方メートルã§ã‚ã‚Œã°ã€ 201 [AMOUNT]平方メートルã§ã‚ã‚Œã°ã€
202[AMOUNT2]個ã®ã‚ªãƒ–ジェクトãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã™ã€‚ 202[AMOUNT2]個ã®ã‚ªãƒ–ジェクトãŒã‚µãƒ
203ートã•ã‚Œã¾ã™
203 </text> 204 </text>
204 <text name="sold_with_objects"> 205 <text name="sold_with_objects">
205 オブジェクトã¨å…±ã«è²©å£²æ¸ˆã¿ 206 オブジェクトã¨å…±ã«è²©å£²æ¸ˆã¿
@@ -207,19 +208,19 @@
207 <text name="insufficient_land_credits"> 208 <text name="insufficient_land_credits">
208 ã“ã® [GROUP] ãŒåŒºç”»ã®è³¼å…¥æ‰‹ç¶šãを完了ã™ã‚‹ã«ã¯ã€ 209 ã“ã® [GROUP] ãŒåŒºç”»ã®è³¼å…¥æ‰‹ç¶šãを完了ã™ã‚‹ã«ã¯ã€
209価格ã«è¦‹åˆã†ã ã‘ã®å¯„付ã•ã‚ŒãŸåœŸåœ°ã®åˆ©ç”¨å®Ÿç¸¾ãŒ 210価格ã«è¦‹åˆã†ã ã‘ã®å¯„付ã•ã‚ŒãŸåœŸåœ°ã®åˆ©ç”¨å®Ÿç¸¾ãŒ
210å¿…è¦ã§ã™ã€‚ 211å¿…è¦ã§ã™
211 </text> 212 </text>
212 <text name="have_enough_lindens"> 213 <text name="have_enough_lindens">
213 ã‚ãªãŸã®æ‰€æŒã™ã‚‹ L$ [AMOUNT]ã§ã€ã“ã®åœŸåœ°ã‚’購入ã§ãã¾ã™ã€‚ 214 ã‚ãªãŸã®æ‰€æŒã™ã‚‹ L$ [AMOUNT]ã§ã€ã“ã®åœŸåœ°ã‚’購入ã§ãã¾ã™
214 </text> 215 </text>
215 <text name="not_enough_lindens"> 216 <text name="not_enough_lindens">
216 ã‚ãªãŸã®æ‰€æŒé‡‘㯠L$ [AMOUNT]ã ã‘ã§ã€ã‚ã¨L$ [AMOUNT2] å¿…è¦ã§ã™ã€‚ 217 ã‚ãªãŸã®æ‰€æŒé‡‘㯠L$ [AMOUNT]ã ã‘ã§ã€ã‚ã¨L$ [AMOUNT2] å¿…è¦ã§ã™
217 </text> 218 </text>
218 <text name="balance_left"> 219 <text name="balance_left">
219 購入後ã€ã‚ãªãŸã®æ®‹é¡ã¯L$[AMOUNT]ã«ãªã‚Šã¾ã™ã€‚ 220 購入後ã€ã‚ãªãŸã®æ®‹é¡ã¯L$[AMOUNT]ã«ãªã‚Šã¾ã™
220 </text> 221 </text>
221 <text name="balance_needed"> 222 <text name="balance_needed">
222 ã“ã®åœŸåœ°ã‚’è²·ã†ã«ã¯ã€å°‘ãªãã¨ã‚‚ L$ [AMOUNT] を購入ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ 223 ã“ã®åœŸåœ°ã‚’è²·ã†ã«ã¯ã€å°‘ãªãã¨ã‚‚ L$ [AMOUNT] を購入ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™
223 </text> 224 </text>
224 <text name="no_parcel_selected"> 225 <text name="no_parcel_selected">
225 (区画ãŒé¸å®šã•ã‚Œã¦ã„ã¾ã›ã‚“) 226 (区画ãŒé¸å®šã•ã‚Œã¦ã„ã¾ã›ã‚“)
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_chat_history.xml b/linden/indra/newview/skins/default/xui/ja/floater_chat_history.xml
index 41592a3..1f7b99d 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_chat_history.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_chat_history.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="chat floater" title="ローカル・ãƒãƒ£ãƒƒãƒˆ"> 2<floater name="chat floater" title="ローカル・ãƒãƒ£ãƒƒãƒˆ">
3 <string name="ringing"> 3 <string name="ringing">
4 インワールドボイスãƒãƒ£ãƒƒãƒˆã«æŽ¥ç¶šä¸­ï¼Žï¼Žï¼Ž 4 インワールドボイスãƒãƒ£ãƒƒãƒˆã«æŽ¥ç¶šä¸­ï¼Žï¼Žï¼Ž
@@ -28,7 +28,7 @@
28 ジェスãƒãƒ£ãƒ¼ 28 ジェスãƒãƒ£ãƒ¼
29 </combo_item> 29 </combo_item>
30 </combo_box> 30 </combo_box>
31 <check_box label="ミュートã•ã‚ŒãŸãƒ†ã‚­ã‚¹ãƒˆã‚’表示" name="show mutes"/> 31 <check_box label="無視ã•ã‚ŒãŸãƒ†ã‚­ã‚¹ãƒˆã‚’表示" name="show mutes"/>
32 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="ã“ã“をクリックã—ã¦ã€ã“ã®IMセッションã¸ã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªå‚加者リストを表示。"/> 32 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="ã“ã“をクリックã—ã¦ã€ã“ã®IMセッションã¸ã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªå‚加者リストを表示。"/>
33 <panel name="chat_panel"> 33 <panel name="chat_panel">
34 <string name="gesture_label"> 34 <string name="gesture_label">
@@ -42,6 +42,9 @@
42 <flyout_button_item name="say_item"> 42 <flyout_button_item name="say_item">
43 発言 43 発言
44 </flyout_button_item> 44 </flyout_button_item>
45 <flyout_button_item name="whisper_item">
46 ã•ã•ã‚„ã
47 </flyout_button_item>
45 </flyout_button> 48 </flyout_button>
46 </panel> 49 </panel>
47 </layout_panel> 50 </layout_panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_customize.xml b/linden/indra/newview/skins/default/xui/ja/floater_customize.xml
index 7b4fdbc..4b420db 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_customize.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_customize.xml
@@ -3,7 +3,7 @@
3 <tab_container name="customize tab container"> 3 <tab_container name="customize tab container">
4 <panel label="身体部ä½" /> 4 <panel label="身体部ä½" />
5 <panel label="身体部ä½" name="body_parts_placeholder" /> 5 <panel label="身体部ä½" name="body_parts_placeholder" />
6 <panel label="形" name="Shape"> 6 <panel label="シェイプ" name="Shape">
7 <button label="戻ã™" label_selected="戻ã™" name="Revert" /> 7 <button label="戻ã™" label_selected="戻ã™" name="Revert" />
8 <button label="身体" label_selected="身体" name="Body" /> 8 <button label="身体" label_selected="身体" name="Body" />
9 <button label="é ­" label_selected="é ­" name="Head" /> 9 <button label="é ­" label_selected="é ­" name="Head" />
@@ -39,12 +39,12 @@
39 [PATH]ã«æ‰€åœ¨ 39 [PATH]ã«æ‰€åœ¨
40 </text> 40 </text>
41 <text type="string" length="1" name="not worn instructions"> 41 <text type="string" length="1" name="not worn instructions">
42 æ–°ã—ã„形をæŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ 42 æ–°ã—ã„シェイプ(体型)ã‚’æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦è£…ç€ã—ã¾ã—ょã†ã€‚完全ã«æ–°è¦ã®çŠ¶æ…‹ã‹ã‚‰ä½œæˆã—ã¦è£…ç€ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
43 </text> 43 </text>
44 <text type="string" length="1" name="no modify instructions"> 44 <text type="string" length="1" name="no modify instructions">
45 ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 45 ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。
46 </text> 46 </text>
47 <button label="æ–°ã—ã„形を作æˆ" label_selected="æ–°ã—ã„形を作æˆ" 47 <button label="æ–°ã—ã„シェイプ(体型)を作æˆ" label_selected="æ–°ã—ã„シェイプ(体型)を作æˆ"
48 name="Create New" /> 48 name="Create New" />
49 <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off" /> 49 <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off" />
50 <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save" /> 50 <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save" />
@@ -53,7 +53,7 @@
53 <panel label="スキン" name="Skin"> 53 <panel label="スキン" name="Skin">
54 <button label="スキンã®è‰²" label_selected="スキンã®è‰²" name="Skin Color" /> 54 <button label="スキンã®è‰²" label_selected="スキンã®è‰²" name="Skin Color" />
55 <button label="é¡”ã®ç´°éƒ¨" label_selected="é¡”ã®ç´°éƒ¨" name="Face Detail" /> 55 <button label="é¡”ã®ç´°éƒ¨" label_selected="é¡”ã®ç´°éƒ¨" name="Face Detail" />
56 <button label="メイクアップ" label_selected="メイクアップ" name="Makeup" /> 56 <button label="メイクアップ" label_selected="メイクアップ" name="Makeup" />
57 <button label="身体細部" label_selected="身体細部" name="Body Detail" /> 57 <button label="身体細部" label_selected="身体細部" name="Body Detail" />
58 <text type="string" length="1" name="title"> 58 <text type="string" length="1" name="title">
59 [DESC] 59 [DESC]
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_directory.xml b/linden/indra/newview/skins/default/xui/ja/floater_directory.xml
index 0090ceb..018a4a5 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_directory.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_directory.xml
@@ -237,7 +237,7 @@
237 何も見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚ 237 何も見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚
238 </string> 238 </string>
239 <button label="戻る" name="back_btn" /> 239 <button label="戻る" name="back_btn" />
240 <button label="転é€" name="forward_btn" /> 240 <button label="進む" name="forward_btn" />
241 <string name="loading_text"> 241 <string name="loading_text">
242 ロード中... 242 ロード中...
243 </string> 243 </string>
@@ -400,7 +400,7 @@
400 <column label="" name="score" /> 400 <column label="" name="score" />
401 </scroll_list> 401 </scroll_list>
402 <button label="戻る" name="back_btn" /> 402 <button label="戻る" name="back_btn" />
403 <button label="転é€" name="forward_btn" /> 403 <button label="進む" name="forward_btn" />
404 <line_editor label="検索" name="search_editor" tool_tip="Second Lifeを検索" /> 404 <line_editor label="検索" name="search_editor" tool_tip="Second Lifeを検索" />
405 <button label="検索" name="search_btn" /> 405 <button label="検索" name="search_btn" />
406 <check_box label="æˆäººå‘ã‘コンテンツをå«ã‚ã‚‹" name="mature_check" /> 406 <check_box label="æˆäººå‘ã‘コンテンツをå«ã‚ã‚‹" name="mature_check" />
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_group_info.xml b/linden/indra/newview/skins/default/xui/ja/floater_group_info.xml
index 9330ca0..6b4ea3c 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_group_info.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_group_info.xml
@@ -27,7 +27,7 @@
27 創設者: 27 創設者:
28 </text> 28 </text>
29 <text name="lbl2"> 29 <text name="lbl2">
30 特権: 30 ç†å¿µï¼š
31 </text> 31 </text>
32 <check_box label="グループ・リストã«è¡¨ç¤º" name="sho" /> 32 <check_box label="グループ・リストã«è¡¨ç¤º" name="sho" />
33 <check_box label="グループ・リストã«ä¼šå“¡ã‚’表示" name="sho_mem" /> 33 <check_box label="グループ・リストã«ä¼šå“¡ã‚’表示" name="sho_mem" />
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml b/linden/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml
index 0d09734..2466dd5 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml
@@ -33,9 +33,9 @@
33 <text name="Enable VBO:"> 33 <text name="Enable VBO:">
34 VBO を有効化: 34 VBO を有効化:
35 </text> 35 </text>
36 <check_box label="OpenGL Vertex Buffer オブジェクトを有効化" name="vbo" 36 <check_box label="OpenGL Vertex Buffer Objectsを有効化" name="vbo"
37 tool_tip="最新ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã§ã“ã®è¨­å®šã‚’有効ã«ã™ã‚‹ã¨ã€ãƒ‘フォーマンスãŒå‘上ã—ã¾ã™ã€‚ ã—ã‹ã—ã€æ—§åž‹ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã§ã¯ VBO ã®å®Ÿè£…ãŒè²§å¼±ãªå ´åˆãŒå¤šãã€ã“ã®è¨­å®šã‚’有効ã«ã™ã‚‹ã“ã¨ã§ã‚¯ãƒ©ãƒƒã‚·ãƒ¥ã«ã¤ãªãŒã‚‹ãŠãã‚ŒãŒã‚ã‚Šã¾ã™ã€‚" /> 37 tool_tip="最新ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã§ã“ã®è¨­å®šã‚’有効ã«ã™ã‚‹ã¨ã€ãƒ‘フォーマンスãŒå‘上ã—ã¾ã™ã€‚ ã—ã‹ã—ã€æ—§åž‹ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã§ã¯ VBO ã®å®Ÿè£…ãŒè²§å¼±ãªå ´åˆãŒå¤šãã€ã“ã®è¨­å®šã‚’有効ã«ã™ã‚‹ã“ã¨ã§ã‚¯ãƒ©ãƒƒã‚·ãƒ¥ã«ã¤ãªãŒã‚‹ãŠãã‚ŒãŒã‚ã‚Šã¾ã™ã€‚" />
38 <slider label="テクスãƒãƒ£è¨˜æ†¶(MB):" name="GrapicsCardTextureMemory" 38 <slider label="テクスãƒãƒ£ï¾’モリ(MB):" name="GrapicsCardTextureMemory"
39 tool_tip="テクスãƒãƒ£ãƒ¼ã«å‰²ã‚Šå½“ã¦ã‚‹ãƒ¡ãƒ¢ãƒªã®åˆè¨ˆã€‚ ビデオ・カード・メモリをデフォルトã«ã—ã¾ã™ã€‚ ã“ã®æ•°å€¤ã‚’減らã™ã¨ã€ãƒ‘フォーマンスãŒæ”¹å–„ã•ã‚Œã¾ã™ãŒã€ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ãŒã¼ã‚„ã‘ãŸæ„Ÿã˜ã«ãªã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚" /> 39 tool_tip="テクスãƒãƒ£ãƒ¼ã«å‰²ã‚Šå½“ã¦ã‚‹ãƒ¡ãƒ¢ãƒªã®åˆè¨ˆã€‚ ビデオ・カード・メモリをデフォルトã«ã—ã¾ã™ã€‚ ã“ã®æ•°å€¤ã‚’減らã™ã¨ã€ãƒ‘フォーマンスãŒæ”¹å–„ã•ã‚Œã¾ã™ãŒã€ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ãŒã¼ã‚„ã‘ãŸæ„Ÿã˜ã«ãªã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚" />
40 <spinner label="フォグã®è·é›¢æ¯”率:" name="fog" /> 40 <spinner label="フォグã®è·é›¢æ¯”率:" name="fog" />
41 <button label="OK" label_selected="OK" name="OK" /> 41 <button label="OK" label_selected="OK" name="OK" />
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_im.xml b/linden/indra/newview/skins/default/xui/ja/floater_im.xml
index 30dae0a..eec6447 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_im.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_im.xml
@@ -10,7 +10,7 @@
10 ã“ã®ãƒœã‚¤ã‚¹ãƒãƒ£ãƒƒãƒˆã«å¿œç­”/接続ã™ã‚‹å ´åˆã¯ã€[BUTTON NAME]をクリックã—ã¦ãã ã•ã„。 10 ã“ã®ãƒœã‚¤ã‚¹ãƒãƒ£ãƒƒãƒˆã«å¿œç­”/接続ã™ã‚‹å ´åˆã¯ã€[BUTTON NAME]をクリックã—ã¦ãã ã•ã„。
11 </string> 11 </string>
12 <string name="muted_message"> 12 <string name="muted_message">
13 ã‚ãªãŸã¯ã“ã®ä½äººã‚’ミュートã—ã¦ã„ã¾ã™ã€‚ メッセージをé€ä¿¡ã™ã‚‹ã¨ã€ãƒŸãƒ¥ãƒ¼ãƒˆã¯è‡ªå‹•çš„ã«è§£é™¤ã•ã‚Œã¾ã™ã€‚ 13 ã‚ãªãŸã¯ã“ã®ä½äººã‚’無視ã—ã¦ã„ã¾ã™ã€‚ メッセージをé€ä¿¡ã™ã‚‹ã¨ã€ç„¡è¦–設定ã¯è‡ªå‹•çš„ã«è§£é™¤ã•ã‚Œã¾ã™ã€‚
14 </string> 14 </string>
15 <string name="generic_request_error"> 15 <string name="generic_request_error">
16 è¦æ±‚中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚後ã§ã‚‚ã†ä¸€åº¦è©¦ã—ã¦ãã ã•ã„。 16 è¦æ±‚中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚後ã§ã‚‚ã†ä¸€åº¦è©¦ã—ã¦ãã ã•ã„。
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_inspect.xml b/linden/indra/newview/skins/default/xui/ja/floater_inspect.xml
index 38b2f09..3ada48e 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_inspect.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_inspect.xml
@@ -1,8 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="inspect" title="オブジェクト検査"> 2<floater name="inspect" title="オブジェクト検査" min_width="450" >
3 <scroll_list name="object_list" 3 <scroll_list name="object_list"
4 tool_tip="ã“ã®ãƒªã‚¹ãƒˆã‹ã‚‰ã‚ªãƒ–ジェクトをé¸æŠžã—ã€ã“ã®ä¸–ç•Œã§å¼·èª¿è¡¨ç¤ºã—ã¾ã™ã€‚"> 4 tool_tip="ã“ã®ãƒªã‚¹ãƒˆã‹ã‚‰ã‚ªãƒ–ジェクトをé¸æŠžã—ã€ã“ã®ä¸–ç•Œã§å¼·èª¿è¡¨ç¤ºã—ã¾ã™ã€‚">
5 <column label="オブジェクトå" name="object_name" /> 5 <column label="オブジェクトå" name="object_name" />
6 <column label="所有者å" name="owner_name" /> 6 <column label="所有者å" name="owner_name" />
7 <column label="制作者å" name="creator_name" /> 7 <column label="制作者å" name="creator_name" />
8 <column label="作æˆæ—¥" name="creation_date" /> 8 <column label="作æˆæ—¥" name="creation_date" />
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/ja/floater_instant_message.xml
index ade57de..944e0e8 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_instant_message.xml
@@ -21,7 +21,7 @@
21 <string name="default_text_label"> 21 <string name="default_text_label">
22 ã“ã“をクリックã—ã¦IM 22 ã“ã“をクリックã—ã¦IM
23 </string> 23 </string>
24 <button label="プロフィール..." name="profile_callee_btn" width="100"/> 24 <button label="プロフィール" name="profile_callee_btn" width="100"/>
25 <button label="コール" name="start_call_btn" left_delta="105" width="100"/> 25 <button label="コール" name="start_call_btn" left_delta="105" width="100"/>
26 <button label="呼出終了" name="end_call_btn" width="100" /> 26 <button label="呼出終了" name="end_call_btn" width="100" />
27 <panel name="speaker_controls" left_delta="96"> 27 <panel name="speaker_controls" left_delta="96">
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_instant_message_group.xml b/linden/indra/newview/skins/default/xui/ja/floater_instant_message_group.xml
index 4def3fb..f0d1454 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_instant_message_group.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_instant_message_group.xml
@@ -2,7 +2,7 @@
2<floater label="(ä¸æ˜Žï¼‰" name="im_floater" title="(ä¸æ˜Žï¼‰"> 2<floater label="(ä¸æ˜Žï¼‰" name="im_floater" title="(ä¸æ˜Žï¼‰">
3 <layout_stack name="panels"> 3 <layout_stack name="panels">
4 <layout_panel name="im_contents_panel"> 4 <layout_panel name="im_contents_panel">
5 <button label="グループインフォ" name="group_info_btn" width="120"/> 5 <button label="グループ情報" name="group_info_btn" width="120"/>
6 <button label="コールã«å‚加" name="start_call_btn" left_delta="125" width="120"/> 6 <button label="コールã«å‚加" name="start_call_btn" left_delta="125" width="120"/>
7 <button label="コールã®çµ‚了" name="end_call_btn" width="120" /> 7 <button label="コールã®çµ‚了" name="end_call_btn" width="120" />
8 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="ã“ã®IMセッションã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªå‚加者ã®ãƒªã‚¹ãƒˆè¡¨ç¤ºã‚’切り替ãˆã‚‹ã«ã¯ã“ã“をクリックã—ã¾ã™"/> 8 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="ã“ã®IMセッションã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªå‚加者ã®ãƒªã‚¹ãƒˆè¡¨ç¤ºã‚’切り替ãˆã‚‹ã«ã¯ã“ã“をクリックã—ã¾ã™"/>
@@ -33,7 +33,7 @@
33 Rumplstiltskin Califragilistic 33 Rumplstiltskin Califragilistic
34 </text> 34 </text>
35 <text name="Mute:"> 35 <text name="Mute:">
36 ミュート: 36 無視:
37 </text> 37 </text>
38 <check_box label="テキスト" name="mute_text_btn"/> 38 <check_box label="テキスト" name="mute_text_btn"/>
39 <check_box label="ボイス" name="mute_btn"/> 39 <check_box label="ボイス" name="mute_btn"/>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_inventory.xml b/linden/indra/newview/skins/default/xui/ja/floater_inventory.xml
index 6edae5a..6804968 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_inventory.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Inventory" title="æŒã¡ç‰©"> 2<floater name="Inventory" title="æŒã¡ç‰©">
3 <search_editor label="ã“ã“ã«ã‚¿ã‚¤ãƒ—ã—ã¦æ¤œç´¢" name="inventory search editor" /> 3 <search_editor label="ã“ã“ã«å…¥åŠ›ã—ã¦æ¤œç´¢" name="inventory search editor" />
4 <tab_container name="inventory filter tabs"> 4 <tab_container name="inventory filter tabs">
5 <inventory_panel label="All Items" name="All Items" /> 5 <inventory_panel label="ã™ã¹ã¦" name="All Items" />
6 <inventory_panel label="Recent Items" name="Recent Items" /> 6 <inventory_panel label="最近ã®å…¥æ‰‹ã‚¢ã‚¤ãƒ†ãƒ " name="Recent Items" />
7 </tab_container> 7 </tab_container>
8 <menu_bar name="Inventory Menu"> 8 <menu_bar name="Inventory Menu">
9 <menu label="ファイル" name="File"> 9 <menu label="ファイル" name="File">
@@ -31,13 +31,13 @@
31 <menu_item_call label="æ–°ã—ã„パンツ" name="New Underpants" /> 31 <menu_item_call label="æ–°ã—ã„パンツ" name="New Underpants" />
32 </menu> 32 </menu>
33 <menu name="New Body Parts"> 33 <menu name="New Body Parts">
34 <menu_item_call label="æ–°ã—ã„å½¢" name="New Shape" /> 34 <menu_item_call label="æ–°ã—ã„シェイプ(体型)" name="New Shape" />
35 <menu_item_call label="æ–°ã—ã„スキン" name="New Skin" /> 35 <menu_item_call label="æ–°ã—ã„スキン" name="New Skin" />
36 <menu_item_call label="æ–°ã—ã„髪" name="New Hair" /> 36 <menu_item_call label="æ–°ã—ã„髪" name="New Hair" />
37 <menu_item_call label="æ–°ã—ã„眼" name="New Eyes" /> 37 <menu_item_call label="æ–°ã—ã„眼" name="New Eyes" />
38 </menu> 38 </menu>
39 </menu> 39 </menu>
40 <menu label="振り分ã" name="Sort"> 40 <menu label="並ã¹æ›¿ãˆ" name="Sort">
41 <menu_item_check label="åå‰" name="By Name" /> 41 <menu_item_check label="åå‰" name="By Name" />
42 <menu_item_check label="日付" name="By Date" /> 42 <menu_item_check label="日付" name="By Date" />
43 <menu_item_check label="フォルダã¯å¸¸ã«åå‰é †" name="Folders Always By Name" /> 43 <menu_item_check label="フォルダã¯å¸¸ã«åå‰é †" name="Folders Always By Name" />
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml b/linden/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
index 10bb7e4..9a408b9 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
@@ -12,22 +12,22 @@
12 <text name="LabelCreatorName"> 12 <text name="LabelCreatorName">
13 Nicole Linden 13 Nicole Linden
14 </text> 14 </text>
15 <button label="プロフィール..." label_selected="" name="BtnCreator" /> 15 <button label="情報" label_selected="" name="BtnCreator" />
16 <text name="LabelOwnerTitle"> 16 <text name="LabelOwnerTitle">
17 オーナー: 17 オーナー:
18 </text> 18 </text>
19 <text name="LabelOwnerName"> 19 <text name="LabelOwnerName">
20 Thrax Linden 20 Thrax Linden
21 </text> 21 </text>
22 <button label="プロフィール..." label_selected="" name="BtnOwner" /> 22 <button label="情報" label_selected="" name="BtnOwner" />
23 <text name="LabelAcquiredTitle"> 23 <text name="LabelAcquiredTitle">
24 入手: 24 入手日時:
25 </text> 25 </text>
26 <text name="LabelAcquiredDate"> 26 <text name="LabelAcquiredDate">
27 2006年5月24日水曜日12:50:46 27 2006年5月24日水曜日12:50:46
28 </text> 28 </text>
29 <text name="OwnerLabel"> 29 <text name="OwnerLabel">
30 ã§ãã‚‹ã“ã¨ã¯ï¼š 30 ã§ãã‚‹ã“ã¨ï¼š
31 </text> 31 </text>
32 <check_box label="修正" name="CheckOwnerModify" /> 32 <check_box label="修正" name="CheckOwnerModify" />
33 <check_box label="コピー" name="CheckOwnerCopy" /> 33 <check_box label="コピー" name="CheckOwnerCopy" />
@@ -49,8 +49,8 @@
49 </text> 49 </text>
50 <check_box label="グループ分担" name="CheckShareWithGroup" /> 50 <check_box label="グループ分担" name="CheckShareWithGroup" />
51 <check_box label="誰ã«å¯¾ã—ã¦ã‚‚コピーを許å¯" name="CheckEveryoneCopy" /> 51 <check_box label="誰ã«å¯¾ã—ã¦ã‚‚コピーを許å¯" name="CheckEveryoneCopy" />
52 <text name="NextOwnerLabel"> 52 <text name="NextOwnerLabel" width="158">
53 次ã®ã‚ªãƒ¼ãƒŠãƒ¼ãŒå®Ÿè¡Œã§ãã‚‹æ作: 53 次ã®ã‚ªãƒ¼ãƒŠãƒ¼ãŒã§ãã‚‹ãã¨ï¼š
54 </text> 54 </text>
55 <check_box label="修正" name="CheckNextOwnerModify" /> 55 <check_box label="修正" name="CheckNextOwnerModify" />
56 <check_box label="コピー" name="CheckNextOwnerCopy" /> 56 <check_box label="コピー" name="CheckNextOwnerCopy" />
@@ -77,7 +77,7 @@
77 (公共) 77 (公共)
78 </text> 78 </text>
79 <text name="you_can"> 79 <text name="you_can">
80 次ã®ã“ã¨ãŒã§ãã¾ã: 80 ã§ãã‚‹ãã¨ï¼š
81 </text> 81 </text>
82 <text name="owner_can"> 82 <text name="owner_can">
83 オーナーã¯æ¬¡ã®ã“ã¨ãŒã§ãã¾ã™ï¼š 83 オーナーã¯æ¬¡ã®ã“ã¨ãŒã§ãã¾ã™ï¼š
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_land_holdings.xml b/linden/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
index 49d7f16..ba85592 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
@@ -1,42 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="land holdings floater" title="自分ã®åœŸåœ°"> 2<floater name="land holdings floater" title="自分ã®åœŸåœ°">
3 <scroll_list name="parcel list"> 3 <scroll_list name="parcel list">
4 <column label="Name" name="name" /> 4 <column label="åå‰" name="name"/>
5 <column label="Location" name="location" /> 5 <column label="ä½ç½®" name="location"/>
6 <column label="Area" name="area" /> 6 <column label="é¢ç©" name="area"/>
7 <column label="" name="hidden" /> 7 <column label="" name="hidden"/>
8 </scroll_list> 8 </scroll_list>
9 <button label="テレãƒãƒ¼ãƒˆ" label_selected="テレãƒãƒ¼ãƒˆ" name="Teleport" 9 <button label="テレãƒãƒ¼ãƒˆ" label_selected="テレãƒãƒ¼ãƒˆ" name="Teleport" tool_tip="ã“ã®åœŸåœ°ã®ä¸­å¿ƒã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ"/>
10 tool_tip="ã“ã®åœŸåœ°ã®ä¸­å¿ƒã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ" /> 10 <button label="地図上ã«è¡¨ç¤º" label_selected="地図上ã«è¡¨ç¤º" name="Show on Map" tool_tip="ã“ã®åœŸåœ°ã‚’世界地図ã«è¡¨ç¤ºã—ã¾ã™ã€‚"/>
11 <button label="地図上ã«è¡¨ç¤º" label_selected="地図上ã«è¡¨ç¤º"
12 name="Show on Map"
13 tool_tip="ã“ã®åœŸåœ°ã‚’世界地図ã«è¡¨ç¤ºã—ã¾ã™ã€‚" />
14 <text name="contrib_label"> 11 <text name="contrib_label">
15 ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—ã¸ã®è²¢çŒ®ï¼š 12 ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—ã¸ã®è²¢çŒ®ï¼š
16 </text> 13 </text>
17 <scroll_list name="grant list"> 14 <scroll_list name="grant list">
18 <column label="Group" name="group" /> 15 <column label="グループå" name="group"/>
19 <column label="Area" name="area" /> 16 <column label="é¢ç©" name="area"/>
20 </scroll_list> 17 </scroll_list>
21 <text name="allowed_label"> 18 <text name="allowed_label">
22 ç¾åœ¨ã®æ”¯æ‰•ã„プランã§ã®è¨±å¯ã•ã‚ŒãŸä¿æœ‰åœ°ï¼š 19 ç¾åœ¨ã®æ”¯æ‰•ã„プランã§ã®è¨±å¯ã•ã‚ŒãŸä¿æœ‰åœ°ï¼š
23 </text> 20 </text>
24 <text name="allowed_text"> 21 <text name="allowed_text">
25 [AREA]平方メートル 22 [AREA]平方メートル
26 </text> 23 </text>
27 <text name="current_label"> 24 <text name="current_label">
28 ç¾åœ¨ã®ä¿æœ‰åœ°ï¼š 25 ç¾åœ¨ã®ä¿æœ‰åœ°ï¼š
29 </text> 26 </text>
30 <text name="current_text"> 27 <text name="current_text">
31 [AREA]平方メートル 28 [AREA]平方メートル
32 </text> 29 </text>
33 <text name="available_label"> 30 <text name="available_label">
34 土地購入å¯ï¼š 31 土地購入å¯ï¼š
35 </text> 32 </text>
36 <text name="available_text"> 33 <text name="available_text">
37 [AREA]平方メートル 34 [AREA]平方メートル
38 </text> 35 </text>
39 <string name="area_string"> 36 <string name="area_string">
40 [AREA]平方メートル 37 [AREA]平方メートル
41 </string> 38 </string>
42</floater> 39</floater>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml b/linden/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
index d28c673..7994273 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_live_lsleditor.xml
@@ -2,7 +2,7 @@
2<floater name="script ed float" title="スクリプト:新ã—ã„スクリプト"> 2<floater name="script ed float" title="スクリプト:新ã—ã„スクリプト">
3 <button label="リセット" label_selected="リセット" name="Reset" /> 3 <button label="リセット" label_selected="リセット" name="Reset" />
4 <check_box label="実行中" name="running" /> 4 <check_box label="実行中" name="running" />
5 <check_box label="モノ" name="mono" /> 5 <check_box label="Mono" name="mono" />
6 <text name="not_allowed"> 6 <text name="not_allowed">
7 ã‚ãªãŸã¯ã“ã®ã‚¹ã‚¯ãƒªãƒ—トを見るã“ã¨ãŒã§ãã¾ã›ã‚“。 7 ã‚ãªãŸã¯ã“ã®ã‚¹ã‚¯ãƒªãƒ—トを見るã“ã¨ãŒã§ãã¾ã›ã‚“。
8 </text> 8 </text>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml b/linden/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
index 1e69a23..55eba96 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
@@ -3,5 +3,5 @@
3 <check_box label="カーソルを追ã†" name="lock_check" /> 3 <check_box label="カーソルを追ã†" name="lock_check" />
4 <combo_box label="ロック" name="history_combo" /> 4 <combo_box label="ロック" name="history_combo" />
5 <button label="戻る" name="back_btn" /> 5 <button label="戻る" name="back_btn" />
6 <button label="転é€" name="fwd_btn" /> 6 <button label="進む" name="fwd_btn" />
7</floater> 7</floater>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_media_browser.xml b/linden/indra/newview/skins/default/xui/ja/floater_media_browser.xml
index 8acb381..10f4dea 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_media_browser.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_media_browser.xml
@@ -1,18 +1,18 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_about" title="メディア・ブラウザー"> 2<floater name="floater_about" title="メディア・ブラウザ">
3 <layout_stack name="stack1"> 3 <layout_stack name="stack1">
4 <layout_panel name="nav_controls"> 4 <layout_panel name="nav_controls">
5 <button label="戻る" name="back" /> 5 <button label="戻る" name="back" />
6 <button label="転é€" name="forward" /> 6 <button label="進む" name="forward" />
7 <button label="å†ãƒ­ãƒ¼ãƒ‰" name="reload" /> 7 <button label="æ›´æ–°" name="reload" />
8 <button label="è¡Œã" name="go" /> 8 <button label="閲覧" name="go" />
9 </layout_panel> 9 </layout_panel>
10 <layout_panel name="parcel_owner_controls"> 10 <layout_panel name="parcel_owner_controls">
11 <button label="ç¾åœ¨ã® URL を区画ã«é€ä¿¡" name="assign" /> 11 <button label="ç¾åœ¨ã® URL を区画ã«é€ä¿¡" name="assign" />
12 </layout_panel> 12 </layout_panel>
13 <layout_panel name="external_controls"> 13 <layout_panel name="external_controls">
14 <button label="自分㮠Web ブラウザーã§é–‹ã" name="open_browser" /> 14 <button label="自分㮠Web ブラウザã§é–‹ã" name="open_browser" />
15 <check_box label="常ã«ãƒžã‚¤ãƒ–ラウザーã§é–‹ã" name="open_always" /> 15 <check_box label="常ã«è‡ªåˆ†ã® Web ブラウザã§é–‹ã" name="open_always" />
16 <button label="é–‰ã˜ã‚‹" name="close" /> 16 <button label="é–‰ã˜ã‚‹" name="close" />
17 </layout_panel> 17 </layout_panel>
18 </layout_stack> 18 </layout_stack>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_mute.xml b/linden/indra/newview/skins/default/xui/ja/floater_mute.xml
index dbc89f8..c76288f 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_mute.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_mute.xml
@@ -1,14 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="mute floater" 2<floater name="mute floater"
3 title="ミュートã•ã‚ŒãŸä½äººãŠã‚ˆã³ã‚ªãƒ–ジェクト"> 3 title="無視ã•ã‚ŒãŸä½äººãŠã‚ˆã³ã‚ªãƒ–ジェクト" short_title="無視リスト">
4 <scroll_list name="mutes" tool_tip="List of currently muted residents" /> 4 <scroll_list name="mutes" tool_tip="List of currently muted residents" />
5 <button label="ä½äººã‚’ミュートã™ã‚‹..." 5 <button label="ä½äººã‚’無視ã™ã‚‹"
6 label_selected="ä½äººã‚’ミュートã™ã‚‹..." name="Mute resident..." 6 label_selected="ä½äººã‚’無視ã™ã‚‹" name="Mute resident..."
7 tool_tip="ミュートã™ã‚‹ä½äººã‚’é¸æŠž" /> 7 tool_tip="無視ã™ã‚‹ä½äººã‚’é¸æŠž" />
8 <button label="オブジェクトをåå‰ã§ãƒŸãƒ¥ãƒ¼ãƒˆ..." 8 <button label="オブジェクトåã§ç„¡è¦–"
9 label_selected="オブジェクトをåå‰ã§ãƒŸãƒ¥ãƒ¼ãƒˆ..." 9 label_selected="オブジェクトåã§ç„¡è¦–"
10 name="Mute object by name..." /> 10 name="Mute object by name..." />
11 <button label="ミュートã—ãªã„" label_selected="ミュートã—ãªã„" 11 <button label="無視ã®è§£é™¤" label_selected="無視ã®è§£é™¤"
12 name="Unmute" 12 name="Unmute"
13 tool_tip="ä½äººã¾ãŸã¯ã‚ªãƒ–ジェクトをミュート・リストã‹ã‚‰å‰Šé™¤" /> 13 tool_tip="ä½äººã¾ãŸã¯ã‚ªãƒ–ジェクトを無視リストã‹ã‚‰å‰Šé™¤" />
14</floater> 14</floater>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_mute_object.xml b/linden/indra/newview/skins/default/xui/ja/floater_mute_object.xml
index 20367fb..072bb4a 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_mute_object.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_mute_object.xml
@@ -1,12 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="mute by name" title="オブジェクトåã§ãƒŸãƒ¥ãƒ¼ãƒˆ(消声)ã™ã‚‹"> 2<floater name="mute by name" title="オブジェクトåã§ç„¡è¦–ã™ã‚‹">
3 <text name="message"> 3 <text name="message">
4 åå‰ã«ã‚ˆã‚‹ãƒŸãƒ¥ãƒ¼ãƒˆ(消声)ã¯ã€ã‚ªãƒ–ジェクト・ãƒãƒ£ãƒƒãƒˆã€ãŠã‚ˆã³ï¼©ï¼­ã®ã¿ã«å½±éŸ¿ã—ã€ã‚µã‚¦ãƒ³ãƒ‰(環境音ãªã©)ã«ã¯å½±éŸ¿ã—ã¾ã›ã‚“。 4 テキストã®ã¿ã«å½±éŸ¿ã—ã€ï½»ï½³ï¾ï¾„゙(環境音ãªã©)ã«ã¯å½±éŸ¿ã—ã¾ã›ã‚“。
5正確ãªã‚ªãƒ–ジェクトåをタイプã™ã‚‹å¿…è¦ãŒãã‚Šã¾ã。 5正確ãªã‚ªãƒ–ジェクトåを入力ã—ã¦ãã ãã。
6 </text> 6 </text>
7 <line_editor name="object_name"> 7 <line_editor name="object_name">
8 オブジェクトå 8 オブジェクトå
9 </line_editor> 9 </line_editor>
10 <button label="OK" name="OK" /> 10 <button label="OK" name="OK" />
11 <button label="キャンセル" name="Cancel" /> 11 <button label="キャï¾ï½¾ï¾™" name="Cancel" />
12</floater> 12</floater>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_new_outfit_dialog.xml b/linden/indra/newview/skins/default/xui/ja/floater_new_outfit_dialog.xml
index e39f9f1..3477bd4 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_new_outfit_dialog.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_new_outfit_dialog.xml
@@ -2,7 +2,7 @@
2<floater name="modal container" title=" "> 2<floater name="modal container" title=" ">
3 <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save" /> 3 <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save" />
4 <button label="å–り消ã—" label_selected="å–り消ã—" name="Cancel" /> 4 <button label="å–り消ã—" label_selected="å–り消ã—" name="Cancel" />
5 <check_box label="形" name="checkbox_Shape" /> 5 <check_box label="シェイプ(体型)" name="checkbox_Shape" />
6 <check_box label="スキン" name="checkbox_Skin" /> 6 <check_box label="スキン" name="checkbox_Skin" />
7 <check_box label="髪" name="checkbox_Hair" /> 7 <check_box label="髪" name="checkbox_Hair" />
8 <check_box label="眼" name="checkbox_Eyes" /> 8 <check_box label="眼" name="checkbox_Eyes" />
@@ -31,7 +31,7 @@
31 <check_box label="左耳" name="checkbox_Left Ear" left="212" /> 31 <check_box label="左耳" name="checkbox_Left Ear" left="212" />
32 <check_box label="å³è€³" name="checkbox_Right Ear" left="312" /> 32 <check_box label="å³è€³" name="checkbox_Right Ear" left="312" />
33 <check_box label="左目眼çƒ" name="checkbox_Left Eyeball" left="312"/> 33 <check_box label="左目眼çƒ" name="checkbox_Left Eyeball" left="312"/>
34 <check_box label="å³çœ¼çœ¼çƒ" name="checkbox_Right Eyeball" left="312" /> 34 <check_box label="å³ç›®çœ¼çƒ" name="checkbox_Right Eyeball" left="312" />
35 <check_box label="é¼»" name="checkbox_Nose" left="312" /> 35 <check_box label="é¼»" name="checkbox_Nose" left="312" />
36 <check_box label="å³ä¸Šè…•" name="checkbox_R Upper Arm" left="312" /> 36 <check_box label="å³ä¸Šè…•" name="checkbox_R Upper Arm" left="312" />
37 <check_box label="å³å‰è…•" name="checkbox_R Forearm" left="312" /> 37 <check_box label="å³å‰è…•" name="checkbox_R Forearm" left="312" />
@@ -59,10 +59,10 @@
59 </text> 59 </text>
60 <text type="string" length="1" 60 <text type="string" length="1"
61 name="Outfits are folders that contain clothing and body parts. Drag an outfit folder onto your avatar to put it on. &quot;Make New Outfit&quot; makes a new folder and saves copies of the items you are now wearing into it."> 61 name="Outfits are folders that contain clothing and body parts. Drag an outfit folder onto your avatar to put it on. &quot;Make New Outfit&quot; makes a new folder and saves copies of the items you are now wearing into it.">
62 æœè£…フォルダã«ã¯ã€æœã¨èº«ä½“部ä½ãŒå«ã¾ã‚Œã¾ã™ã€‚ 62 æœè£…ã¨ã¯æœã‚„身体部ä½ãŒå…¥ã£ãŸãƒ•ã©ãƒ«ãƒ€ã§ã™ã€‚
63æœãªã©ã‚’装ç€ã™ã‚‹ã«ã¯ã€æœè£…フォルダをアãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¾ã™ã€‚ 63æœè£…フォルダをアãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã中身を装ç€ã—ã¾ã™ã€‚
64 64
65–°ã—ã„æœè£…を作æˆ]ã§ã¯ã€æ–°ã—ã„フォルダを作æˆã—〠65[æœè£…を作æˆ]ã§ã¯ã€æ–°ã—ã„フォルダを作æˆã—ã€
66ç¾åœ¨è£…ç€ã—ã¦ã„るアイテムã®ã‚³ãƒ”ーをä¿å­˜ã—ã¾ã™ã€‚ 66ç¾åœ¨è£…ç€ã—ã¦ã„るアイテムã®ã‚³ãƒ”ーをä¿å­˜ã—ã¾ã™ã€‚
67 </text> 67 </text>
68 <text type="string" length="1" name="Folder name:"> 68 <text type="string" length="1" name="Folder name:">
@@ -78,7 +78,7 @@
78 æœï¼š 78 æœï¼š
79 </text> 79 </text>
80 <text type="string" length="1" name="Attachments:" left="212"> 80 <text type="string" length="1" name="Attachments:" left="212">
81 添付物: 81 装ç€ç‰©ï¼š
82 </text> 82 </text>
83 <text type="string" length="1" name="Options:"> 83 <text type="string" length="1" name="Options:">
84 オプション: 84 オプション:
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_postcard.xml b/linden/indra/newview/skins/default/xui/ja/floater_postcard.xml
index 1689ec7..65c4f65 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_postcard.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_postcard.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Postcard" title="スナップショットを電å­ãƒ¡ãƒ¼ãƒ«ã§é€ä¿¡"> 2<floater name="Postcard" title="スナップショットをEメールã§é€ä¿¡">
3 <text name="to_label"> 3 <text name="to_label">
4 ä½äººã®é›»å­ãƒ¡ãƒ¼ãƒ«ï¼š 4 ä½äººã®Eメール:
5 </text> 5 </text>
6 <line_editor left="145" name="to_form" width="125" /> 6 <line_editor left="145" name="to_form" width="125" />
7 <text name="from_label"> 7 <text name="from_label">
@@ -15,13 +15,13 @@
15 <text name="subject_label"> 15 <text name="subject_label">
16 件å: 16 件å:
17 </text> 17 </text>
18 <line_editor label="件åã‚’ã“ã“ã«ã‚¿ã‚¤ãƒ—。" left="145" name="subject_form" 18 <line_editor label="件åã‚’ã“ã“ã«å…¥åŠ›" left="145" name="subject_form"
19 width="125" /> 19 width="125" />
20 <text name="msg_label"> 20 <text name="msg_label">
21 メッセージ: 21 メッセージ:
22 </text> 22 </text>
23 <text_editor bottom_delta="-120" height="110" name="msg_form"> 23 <text_editor bottom_delta="-120" height="110" name="msg_form">
24 メッセージをã“ã“ã«ã‚¿ã‚¤ãƒ—。 24 メッセージをã“ã“ã«å…¥åŠ›ãã¦ãã ã•ã„。
25 </text_editor> 25 </text_editor>
26 <check_box label="ウェブ上ã§å…¬é–‹" name="allow_publish_check" 26 <check_box label="ウェブ上ã§å…¬é–‹" name="allow_publish_check"
27 tool_tip="ã“ã®ãƒã‚¹ãƒˆã‚«ãƒ¼ãƒ‰ã‚’ウェブ上ã§å…¬é–‹ã—ã¾ã™ã€‚" /> 27 tool_tip="ã“ã®ãƒã‚¹ãƒˆã‚«ãƒ¼ãƒ‰ã‚’ウェブ上ã§å…¬é–‹ã—ã¾ã™ã€‚" />
@@ -29,12 +29,12 @@
29 tool_tip="ã“ã®ãƒã‚¹ãƒˆã‚«ãƒ¼ãƒ‰ã«ã¯æˆäººå‘ã‘内容ãŒå«ã¾ã‚Œã¾ã™ã€‚" /> 29 tool_tip="ã“ã®ãƒã‚¹ãƒˆã‚«ãƒ¼ãƒ‰ã«ã¯æˆäººå‘ã‘内容ãŒå«ã¾ã‚Œã¾ã™ã€‚" />
30 <button label="?" left="300" name="publish_help_btn" /> 30 <button label="?" left="300" name="publish_help_btn" />
31 <text name="fine_print"> 31 <text name="fine_print">
32 ããªãŸã®å—信者ãŒSLã«å‚加ã™ã‚‹ã¨ã€ã‚ãªãŸã¯ç´¹ä»‹ãƒœãƒ¼ãƒŠã‚¹ã‚’å—ãåã‚Œã¾ã™ 32 ãã®å—信者ãŒSLã«å‚加ã™ã‚‹ã¨ã€ã‚ãªãŸã«ç´¹ä»‹ãƒœãƒ¼ãƒŠã‚¹ãŒå…¥ã‚Šã¾ã™
33 </text> 33 </text>
34 <button bottom_delta="-52" label="å–り消ã—" name="cancel_btn" /> 34 <button bottom_delta="-52" label="å–り消ã—" name="cancel_btn" />
35 <button label="é€ä¿¡" name="send_btn" /> 35 <button label="é€ä¿¡" name="send_btn" />
36 <text name="default_subject"> 36 <text name="default_subject">
37 Second Life ã‹ã‚‰ã®ãƒã‚¹ãƒˆã‚«ãƒ¼ãƒ‰ã€‚ 37 Second Life ã‹ã‚‰ã®ãƒã‚¹ãƒˆã‚«ãƒ¼ãƒ‰
38 </text> 38 </text>
39 <text name="default_message"> 39 <text name="default_message">
40 ã“ã‚Œã¯çµ¶å¯¾ãƒã‚§ãƒƒã‚¯ï¼ 40 ã“ã‚Œã¯çµ¶å¯¾ãƒã‚§ãƒƒã‚¯ï¼
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml b/linden/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
index bc5675c..61665a1 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
@@ -22,7 +22,7 @@
22 <text name="key_label"> 22 <text name="key_label">
23 ショートカット・キー: 23 ショートカット・キー:
24 </text> 24 </text>
25 <combo_box label="ãªã—" name="modifier_combo"/> 25 <combo_box label="ãªã—" name="modifier_combo" left="160"/>
26 <combo_box label="ãªã—" name="key_combo"/> 26 <combo_box label="ãªã—" name="key_combo"/>
27 <text name="library_label"> 27 <text name="library_label">
28 ライブラリ: 28 ライブラリ:
@@ -30,12 +30,14 @@
30 <text name="steps_label"> 30 <text name="steps_label">
31 手順: 31 手順:
32 </text> 32 </text>
33 <!-- Revert translations as interim fix to VWR-9985 while the code is not properly internationalized
33 <scroll_list name="library_list"> 34 <scroll_list name="library_list">
34 アニメーション 35 アニメーション
35サウンド 36サウンド
36ãƒãƒ£ãƒƒãƒˆ 37ãƒãƒ£ãƒƒãƒˆ
37å¾…æ©Ÿ 38å¾…æ©Ÿ
38 </scroll_list> 39 </scroll_list>
40 -->
39 <button label="追加>>" name="add_btn"/> 41 <button label="追加>>" name="add_btn"/>
40 <button label="上ã«ç§»å‹•" name="up_btn"/> 42 <button label="上ã«ç§»å‹•" name="up_btn"/>
41 <button label="下ã«ç§»å‹•" name="down_btn"/> 43 <button label="下ã«ç§»å‹•" name="down_btn"/>
@@ -55,7 +57,7 @@
55 </radio_group> 57 </radio_group>
56 <check_box label="アニメーションãŒå®Œäº†ã™ã‚‹ã¾ã§" name="wait_anim_check"/> 58 <check_box label="アニメーションãŒå®Œäº†ã™ã‚‹ã¾ã§" name="wait_anim_check"/>
57 <check_box label="秒表示ã®æ™‚é–“" name="wait_time_check"/> 59 <check_box label="秒表示ã®æ™‚é–“" name="wait_time_check"/>
58 <check_box label="アクティブ" name="active_check" tool_tip="アクティブ・ジェスãƒãƒ£ãƒ¼ã¯ã€ãƒˆãƒªã‚¬ãƒ¼ãƒ»ãƒ•ãƒ¬ãƒ¼ã‚ºã‚’使ã†ã‹ã€ã¾ãŸã¯ãƒ›ãƒƒãƒˆãƒ»ã‚­ãƒ¼ã‚’押ã™ã“ã¨ã«ã‚ˆã£ã¦ãƒˆãƒªã‚¬ãƒ¼ã§ãã¾ã™ã€‚ 1ã¤ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆãƒ»ã‚­ãƒ¼ã«2ã¤ä»¥ä¸Šã®ã‚¸ã‚§ã‚¹ãƒãƒ£ãƒ¼ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸå ´åˆã€ãã®ã‚¸ã‚§ã‚¹ãƒãƒ£ãƒ¼ã¯ä¸¡æ–¹ã¨ã‚‚アクティブã§ã¯ãªããªã‚Šã¾ã™ã€‚"/> 60 <check_box label="アクティブ" left="120" name="active_check" tool_tip="アクティブ・ジェスãƒãƒ£ãƒ¼ã¯ã€ãƒˆãƒªã‚¬ãƒ¼ãƒ»ãƒ•ãƒ¬ãƒ¼ã‚ºã‚’使ã†ã‹ã€ã¾ãŸã¯ãƒ›ãƒƒãƒˆãƒ»ã‚­ãƒ¼ã‚’押ã™ã“ã¨ã«ã‚ˆã£ã¦ãƒˆãƒªã‚¬ãƒ¼ã§ãã¾ã™ã€‚ 1ã¤ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆãƒ»ã‚­ãƒ¼ã«2ã¤ä»¥ä¸Šã®ã‚¸ã‚§ã‚¹ãƒãƒ£ãƒ¼ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸå ´åˆã€ãã®ã‚¸ã‚§ã‚¹ãƒãƒ£ãƒ¼ã¯ä¸¡æ–¹ã¨ã‚‚アクティブã§ã¯ãªããªã‚Šã¾ã™ã€‚"/>
59 <button label="プレビュー" name="preview_btn"/> 61 <button label="プレビュー" name="preview_btn"/>
60 <button label="ä¿å­˜" name="save_btn"/> 62 <button label="ä¿å­˜" name="save_btn"/>
61</floater> 63</floater>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_report_abuse.xml b/linden/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
index 29dfb2a..eddccdf 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
@@ -1,5 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_report_abuse" title="å«ŒãŒã‚‰ã›ã®å ±å‘Š"> 2<floater name="floater_report_abuse" title="å«ŒãŒã‚‰ã›ã®å ±å‘Š">
3 <texture_picker label="" name="screenshot"/>
4 <check_box label="スクリーï¾ï½¼ï½®ï½¯ï¾„ã‚’å«ã‚ã‚‹" name="screen_check"/>
3 <text name="reporter_title"> 5 <text name="reporter_title">
4 報告者: 6 報告者:
5 </text> 7 </text>
@@ -15,16 +17,13 @@
15 <text name="pos_title"> 17 <text name="pos_title">
16 ä½ç½®ï¼š 18 ä½ç½®ï¼š
17 </text> 19 </text>
18 <texture_picker name="screenshot" />
19 <check_box label="スクリーï¾ï½¼ï½®ï½¯ï¾„ã‚’å«ã‚ã‚‹" name="screen_check" />
20 <text name="pos_field"> 20 <text name="pos_field">
21 {128.1, 128.1, 15.4} 21 {128.1, 128.1, 15.4}
22 </text> 22 </text>
23 <button label="" label_selected="" name="pick_btn"
24 tool_tip="オブジェクト・ピッカー - ã“ã®å ±å‘Šã®ä¸»é¡Œã¨ãªã‚‹ã‚ªãƒ–ジェクトを特定" />
25 <text name="select_object_label"> 23 <text name="select_object_label">
26 ボタンを使ã£ã¦ã‚ªãƒ–ジェクトをé¸æŠžï¼š 24 ボタンを使ã£ã¦ã‚ªãƒ–ジェクトをé¸æŠžï¼š
27 </text> 25 </text>
26 <button label="" label_selected="" name="pick_btn" tool_tip="オブジェクト・ピッカー - ã“ã®å ±å‘Šã®ä¸»é¡Œã¨ãªã‚‹ã‚ªãƒ–ジェクトを特定"/>
28 <text name="object_name_label"> 27 <text name="object_name_label">
29 åå‰ï¼š 28 åå‰ï¼š
30 </text> 29 </text>
@@ -37,11 +36,7 @@
37 <text name="owner_name"> 36 <text name="owner_name">
38 Hendrerit Vulputate 37 Hendrerit Vulputate
39 </text> 38 </text>
40 <combo_box name="category_combo" 39 <combo_box name="category_combo" tool_tip="カテゴリー -- ã“ã®å ±å‘Šã«æœ€ã‚‚é©ã—ãŸã‚«ãƒ†ã‚´ãƒªãƒ¼ã‚’é¸æŠžã—ã¦ãã ã•ã„">
41 tool_tip="Category -- select the category that best describes this report">
42 <combo_item name="Selectcategory">
43 カテゴリーをé¸æŠž
44 </combo_item>
45 <combo_item name="Select_category"> 40 <combo_item name="Select_category">
46 カテゴリーをé¸æŠž 41 カテゴリーをé¸æŠž
47 </combo_item> 42 </combo_item>
@@ -63,14 +58,11 @@
63 <combo_item name="Assault__Weapons_testing_sandbox"> 58 <combo_item name="Assault__Weapons_testing_sandbox">
64 攻撃&gt;武器テスト用サンドボックス 59 攻撃&gt;武器テスト用サンドボックス
65 </combo_item> 60 </combo_item>
66 <combo_item name="Copyright_or_intellectual_property_violation">
67 著作権ã¾ãŸã¯çŸ¥çš„所有権ã«é–¢ã™ã‚‹é•å
68 </combo_item>
69 <combo_item name="Commerce__Failure_to_deliver_product_or_service"> 61 <combo_item name="Commerce__Failure_to_deliver_product_or_service">
70 商å–引&gt;製å“ã¾ãŸã¯ã‚µãƒ¼ãƒ“スã®æä¾›ãŒè¡Œã‚ã‚Œãªã„ 62 商å–引&gt;製å“ã¾ãŸã¯ã‚µãƒ¼ãƒ“スã®æä¾›ãŒè¡Œã‚ã‚Œãªã„
71 </combo_item> 63 </combo_item>
72 <combo_item name="Disclosure__First_Life_information"> 64 <combo_item name="Disclosure__Real_world_information">
73 開示&gt;1st Lifeã®æƒ…å ± 65 開示 &gt; リアルワールドã®æƒ…å ±
74 </combo_item> 66 </combo_item>
75 <combo_item name="Disclosure__Remotely_monitoring chat"> 67 <combo_item name="Disclosure__Remotely_monitoring chat">
76 開示&gt;離れãŸã¨ã“ã‚ã‹ã‚‰ãƒãƒ£ãƒƒãƒˆã‚’モニターã—ã¦ã„ã‚‹ 68 開示&gt;離れãŸã¨ã“ã‚ã‹ã‚‰ãƒãƒ£ãƒƒãƒˆã‚’モニターã—ã¦ã„ã‚‹
@@ -135,26 +127,14 @@
135 <combo_item name="Indecency__Mature_content_in_PG_region"> 127 <combo_item name="Indecency__Mature_content_in_PG_region">
136 ã‚ã„ã›ã¤&gt;PG地域ã§æˆäººå‘ã‘ã¨è¦‹ãªã•ã‚Œã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ 128 ã‚ã„ã›ã¤&gt;PG地域ã§æˆäººå‘ã‘ã¨è¦‹ãªã•ã‚Œã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„
137 </combo_item> 129 </combo_item>
138 <combo_item name="Intolerance"> 130 <combo_item name="Intellectual_property_infringement_Content_Removal">
139 ä¸å¯›å®¹ 131 知的財産ã®ä¾µå®³ &gt; コンテンツã®æ’¤åŽ»
140 </combo_item>
141 <combo_item name="Harassment">
142 å«ŒãŒã‚‰ã›
143 </combo_item> 132 </combo_item>
144 <combo_item name="Assault"> 133 <combo_item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit">
145 æ»æ’ƒ 134 知的財ç£ã®ä¾µå®³ &gt; コピーBotåŠã³æ¨©é™ã®æ‚ªç”¨
146 </combo_item> 135 </combo_item>
147 <combo_item name="Disclosure"> 136 <combo_item name="Intolerance">
148 開示 137 ä¸å¯›å®¹
149 </combo_item>
150 <combo_item name="Indecency">
151 ã‚ã„ã›ã¤
152 </combo_item>
153 <combo_item name="Age">
154 å¹´é½¢
155 </combo_item>
156 <combo_item name="Parcel">
157 区画
158 </combo_item> 138 </combo_item>
159 <combo_item name="Land__Abuse_of_sandbox_resources"> 139 <combo_item name="Land__Abuse_of_sandbox_resources">
160 土地&gt;サンドボックス・リソースã®ä¹±ç”¨ 140 土地&gt;サンドボックス・リソースã®ä¹±ç”¨
@@ -168,9 +148,6 @@
168 <combo_item name="Land__Encroachment__Trees_plants"> 148 <combo_item name="Land__Encroachment__Trees_plants">
169 土地&gt;ä¸æ³•ä¾µå…¥&gt;樹木/æ¤ç‰© 149 土地&gt;ä¸æ³•ä¾µå…¥&gt;樹木/æ¤ç‰©
170 </combo_item> 150 </combo_item>
171 <combo_item name="Trademark_violation">
172 商標権ã®ä¾µå®³
173 </combo_item>
174 <combo_item name="Wagering_gambling"> 151 <combo_item name="Wagering_gambling">
175 è³­ã‘/ギャンブル 152 è³­ã‘/ギャンブル
176 </combo_item> 153 </combo_item>
@@ -181,10 +158,8 @@
181 <text name="abuser_name_title"> 158 <text name="abuser_name_title">
182 迷惑ユーザーã®åå‰ï¼š 159 迷惑ユーザーã®åå‰ï¼š
183 </text> 160 </text>
184 <button label="ä½äººã‚’é¸æŠž" label_selected="" name="select_abuser" 161 <button label="ä½äººã‚’é¸æŠž" label_selected="" name="select_abuser" tool_tip="å«ŒãŒã‚‰ã›ã‚’ã—ãŸäººã®åå‰ã‚’リストã‹ã‚‰é¸æŠžã—ã¦ãã ã•ã„。"/>
185 tool_tip="å«ŒãŒã‚‰ã›ã‚’ã—ãŸäººã®åå‰ã‚’リストã‹ã‚‰é¸æŠžã—ã¦ãã ã•ã„。" /> 162 <check_box label="å«ŒãŒã‚‰ã›ã‚’ã—ãŸäººã®åå‰ãŒä¸æ˜Ž" name="omit_abuser_name" tool_tip="å«ŒãŒã‚‰ã›ã‚’ã—ãŸäººã®åå‰ã‚’æä¾›ã§ããªã„ã‹ã«ã¤ã„ã¦ã€ã“れを確èª"/>
186 <check_box label="å«ŒãŒã‚‰ã›ã‚’ã—ãŸäººã®åå‰ãŒä¸æ˜Ž" name="omit_abuser_name"
187 tool_tip="å«ŒãŒã‚‰ã›ã‚’ã—ãŸäººã®åå‰ã‚’æä¾›ã§ããªã„ã‹ã«ã¤ã„ã¦ã€ã“れを確èª" />
188 <text name="abuser_name_title2"> 163 <text name="abuser_name_title2">
189 å«ŒãŒã‚‰ã›ã®èµ·ããŸå ´æ‰€ï¼š 164 å«ŒãŒã‚‰ã›ã®èµ·ããŸå ´æ‰€ï¼š
190 </text> 165 </text>
@@ -202,7 +177,6 @@
202 <text name="incomplete_title"> 177 <text name="incomplete_title">
203 注æ„:ä¸å®Œå…¨ãªãƒ¬ãƒãƒ¼ãƒˆã¯èª¿æŸ»ã•ã‚Œã¾ã›ã‚“。 178 注æ„:ä¸å®Œå…¨ãªãƒ¬ãƒãƒ¼ãƒˆã¯èª¿æŸ»ã•ã‚Œã¾ã›ã‚“。
204 </text> 179 </text>
205 <button label="å«ŒãŒã‚‰ã›ã®å ±å‘Š" label_selected="å«ŒãŒã‚‰ã›ã®å ±å‘Š" 180 <button label="å–り消ã—" label_selected="å–り消ã—" name="cancel_btn"/>
206 name="send_btn" /> 181 <button label="å«ŒãŒã‚‰ã›ã®å ±å‘Š" label_selected="å«ŒãŒã‚‰ã›ã®å ±å‘Š" name="send_btn"/>
207 <button label="å–り消ã—" label_selected="å–り消ã—" name="cancel_btn" />
208</floater> 182</floater>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_sell_land.xml b/linden/indra/newview/skins/default/xui/ja/floater_sell_land.xml
index 4b8650a..1db0e2a 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_sell_land.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_sell_land.xml
@@ -1,15 +1,15 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="sell land" title="土地を販売"> 2<floater name="sell land" title="土地を販売" height="511" min_height="511" >
3 <text name="info_parcel_label"> 3 <text name="info_parcel_label">
4 区画: 4 区画:
5 </text> 5 </text>
6 <text name="info_parcel"> 6 <text name="info_parcel" left="62">
7 区画å 7 区画å
8 </text> 8 </text>
9 <text name="info_size_label"> 9 <text name="info_size_label">
10 サイズ: 10 サイズ:
11 </text> 11 </text>
12 <text name="info_size"> 12 <text name="info_size" left="62">
13 [AREA]平方メートル 13 [AREA]平方メートル
14 </text> 14 </text>
15 <text name="info_action"> 15 <text name="info_action">
@@ -19,19 +19,19 @@
19 価格を設定: 19 価格を設定:
20 </text> 20 </text>
21 <text name="price_text"> 21 <text name="price_text">
22 ã“ã®åœŸåœ°ã«å¯¾ã™ã‚‹é©åˆ‡ãªä¾¡æ ¼ã‚’é¸æŠžã—ã¦ãã ã•ã„。 22 ã“ã®åœŸåœ°ã«å¯¾ã™ã‚‹é©åˆ‡ãªä¾¡æ ¼ã‚’é¸æŠžã—ã¦ãã ã•ã„
23 </text> 23 </text>
24 <text name="price_ld"> 24 <text name="price_ld">
25 L$ 25 L$
26 </text> 26 </text>
27 <text name="price_per_m"> 27 <text name="price_per_m" width="230" left_delta="106">
28 (1平方メートル当ãŸã‚ŠL$ [PER_METER]) 28 (1平方メートル当ãŸã‚ŠL$ [PER_METER])
29 </text> 29 </text>
30 <text name="sell_to_label"> 30 <text name="sell_to_label">
31 土地ã®è²©å£²å…ˆï¼š 31 土地ã®è²©å£²å…ˆï¼š
32 </text> 32 </text>
33 <text name="sell_to_text"> 33 <text name="sell_to_text" right="-6">
34 誰ã«ã§ã‚‚販売ã™ã‚‹ã‹ã€ç‰¹å®šã®è³¼å…¥è€…ã«ã®ã¿è²©å£²ã™ã‚‹ã‹ã‚’é¸æŠžã—ã¦ãã ã•ã„。 34 誰ã«ã§ã‚‚販売ã™ã‚‹ã‹ã€ç‰¹å®šã®äººã«ã®ã¿è²©å£²ã™ã‚‹ã‹ã‚’é¸æŠžã—ã¦ãã ã•ã„
35 </text> 35 </text>
36 <combo_box name="sell_to"> 36 <combo_box name="sell_to">
37 <combo_item name="--selectone--"> 37 <combo_item name="--selectone--">
@@ -49,20 +49,22 @@
49 土地ã¨å…±ã«ã‚ªãƒ–ジェクトを販売ã—ã¾ã™ã‹ï¼Ÿ 49 土地ã¨å…±ã«ã‚ªãƒ–ジェクトを販売ã—ã¾ã™ã‹ï¼Ÿ
50 </text> 50 </text>
51 <text name="sell_objects_text"> 51 <text name="sell_objects_text">
52 区画上ã«ã‚る土地オーナーã®è­²æ¸¡å¯èƒ½ãªã‚ªãƒ–ジェクトã¯ã€æ‰€æœ‰æ¨©ãŒå¤‰æ›´ã•ã‚Œã¾ã™ã€‚ 52 区画上ã«ã‚る譲渡å¯èƒ½ãªã‚ªãƒ–ジェクトã¯æ‰€æœ‰æ¨©ãŒå¤‰æ›´ã•ã‚Œã¾ã™
53 </text> 53 </text>
54 <radio_group name="sell_objects"> 54 <radio_group name="sell_objects" height="72" bottom_delta="-76">
55 <radio_item name="no"> 55 <radio_item name="no">
56 ã„ã„ãˆã€ã‚ªãƒ–ジェクト所有権をä¿æŒã—ã¾ã™ 56 ã„ã„ãˆã€ã‚ªãƒ–ジェクト所有権
57ã‚’ä¿æŒã—ã¾ã™
57 </radio_item> 58 </radio_item>
58 <radio_item name="yes"> 59 <radio_item name="yes" bottom="-56">
59 ã¯ã„ã€åœŸåœ°ã¨ä¸€ç·’ã«ã‚ªãƒ–ジェクトを売りã¾ã™ã€‚ 60 ã¯ã„ã€åœŸåœ°ã¨ä¸€ç·’ã«ã‚ªãƒ–ジェ
61クトを売りã¾ã™
60 </radio_item> 62 </radio_item>
61 </radio_group> 63 </radio_group>
62 <button label="オブジェクトを表示" name="show_objects" /> 64 <button label="オブジェクトを表示" name="show_objects" width="138"/>
63 <text name="nag_message_label"> 65 <text name="nag_message_label">
64 注æ„:返å“や交æ›ã¯ã§ãã¾ã›ã‚“。 66 注æ„:返å“や交æ›ã¯ã§ãã¾ã›ã‚“
65 </text> 67 </text>
66 <button label="売り地ã®è¨­å®š" name="sell_btn" /> 68 <button label="売り地ã®è¨­å®š" name="sell_btn" bottom="-505"/>
67 <button label="å–り消ã—" name="cancel_btn" /> 69 <button label="å–り消ã—" name="cancel_btn" />
68</floater> 70</floater>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/linden/indra/newview/skins/default/xui/ja/floater_snapshot.xml
index 1a59057..defd5b0 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_snapshot.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_snapshot.xml
@@ -5,7 +5,7 @@
5 </text> 5 </text>
6 <radio_group label="スナップショット・タイプ" name="snapshot_type_radio"> 6 <radio_group label="スナップショット・タイプ" name="snapshot_type_radio">
7 <radio_item name="postcard"> 7 <radio_item name="postcard">
8 é›»å­ãƒ¡ãƒ¼ãƒ«ã§é€ä¿¡ 8 Eメールã§é€ä¿¡
9 </radio_item> 9 </radio_item>
10 <radio_item name="texture"> 10 <radio_item name="texture">
11 æŒã¡ç‰©ã«ä¿å­˜(L$10) 11 æŒã¡ç‰©ã«ä¿å­˜(L$10)
@@ -34,12 +34,12 @@
34 <text name="type_label2"> 34 <text name="type_label2">
35 サイズ 35 サイズ
36 </text> 36 </text>
37 <text name="format_label"> 37 <text name="format_label" width="75">
38 フォーマット 38 å½¢å¼
39 </text> 39 </text>
40 <combo_box label="解åƒåº¦" name="postcard_size_combo"> 40 <combo_box label="解åƒåº¦" name="postcard_size_combo">
41 <combo_item name="CurrentWindow"> 41 <combo_item name="CurrentWindow">
42 ç¾åœ¨ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ 42 ç¾åœ¨ã®ï½³ï½¨ï¾ï¾„゙ウ
43 </combo_item> 43 </combo_item>
44 <combo_item name="640x480"> 44 <combo_item name="640x480">
45 640x480 45 640x480
@@ -56,7 +56,7 @@
56 </combo_box> 56 </combo_box>
57 <combo_box label="解åƒåº¦" name="texture_size_combo"> 57 <combo_box label="解åƒåº¦" name="texture_size_combo">
58 <combo_item name="CurrentWindow"> 58 <combo_item name="CurrentWindow">
59 ç¾åœ¨ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ 59 ç¾åœ¨ã®ï½³ï½¨ï¾ï¾„゙ウ
60 </combo_item> 60 </combo_item>
61 <combo_item name="Small(128x128)"> 61 <combo_item name="Small(128x128)">
62 å°ï¼ˆ128x128) 62 å°ï¼ˆ128x128)
@@ -73,7 +73,7 @@
73 </combo_box> 73 </combo_box>
74 <combo_box label="解åƒåº¦" name="local_size_combo"> 74 <combo_box label="解åƒåº¦" name="local_size_combo">
75 <combo_item name="CurrentWindow"> 75 <combo_item name="CurrentWindow">
76 ç¾åœ¨ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ 76 ç¾åœ¨ã®ï½³ï½¨ï¾ï¾„゙ウ
77 </combo_item> 77 </combo_item>
78 <combo_item name="320x240"> 78 <combo_item name="320x240">
79 320x240 79 320x240
@@ -97,7 +97,7 @@
97 カスタム 97 カスタム
98 </combo_item> 98 </combo_item>
99 </combo_box> 99 </combo_box>
100 <combo_box label="フォーマット" name="local_format_combo"> 100 <combo_box label="å½¢å¼" name="local_format_combo">
101 <combo_item name="PNG"> 101 <combo_item name="PNG">
102 PNG 102 PNG
103 </combo_item> 103 </combo_item>
@@ -108,9 +108,9 @@
108 BMP 108 BMP
109 </combo_item> 109 </combo_item>
110 </combo_box> 110 </combo_box>
111 <spinner label="å¹…" name="snapshot_width"/> 111 <spinner label="å¹…" name="snapshot_width" label_width="25" width="90"/>
112 <spinner label="高ã•" name="snapshot_height"/> 112 <spinner label="高ã•" name="snapshot_height" label_width="30" left="115" width="90"/>
113 <check_box label="比率ã®åˆ¶é™" name="keep_aspect_check"/> 113 <check_box label="縦横比ã®å›ºå®š" name="keep_aspect_check"/>
114 <slider label="画質" name="image_quality_slider"/> 114 <slider label="画質" name="image_quality_slider"/>
115 <text name="layer_type_label"> 115 <text name="layer_type_label">
116 キャプï¾ï½¬ï¼š 116 キャプï¾ï½¬ï¼š
@@ -129,7 +129,7 @@
129 <check_box label="インタフェースを表示" name="ui_check"/> 129 <check_box label="インタフェースを表示" name="ui_check"/>
130 <check_box label="HUD オブジェクトを表示" name="hud_check"/> 130 <check_box label="HUD オブジェクトを表示" name="hud_check"/>
131 <check_box label="ä¿å­˜å¾Œã‚‚é–‹ã„ãŸçŠ¶æ…‹ã‚’ä¿æŒ" name="keep_open_check"/> 131 <check_box label="ä¿å­˜å¾Œã‚‚é–‹ã„ãŸçŠ¶æ…‹ã‚’ä¿æŒ" name="keep_open_check"/>
132 <check_box label="フレームをフリーãºï¼ˆå…¨ç”»é¢ï¼‰" name="freeze_frame_check"/> 132 <check_box label="ç”»é¢å…¨ä½“ã‚’é™æ­¢ã•ãã‚" name="freeze_frame_check"/>
133 <check_box label="自動更新" name="auto_snapshot_check"/> 133 <check_box label="自動更新" name="auto_snapshot_check"/>
134 <string name="unknown"> 134 <string name="unknown">
135 未知 135 未知
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_tools.xml b/linden/indra/newview/skins/default/xui/ja/floater_tools.xml
index 4d22f39..ab20496 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -4,7 +4,7 @@
4 <text name="tool label"> 4 <text name="tool label">
5 フォーカス 5 フォーカス
6 </text> 6 </text>
7 <button label="" label_selected="" name="button move" tool_tip="å‹•ã" /> 7 <button label="" label_selected="" name="button move" tool_tip="å‹•ã‹ã™" />
8 <text name="tool label2"> 8 <text name="tool label2">
9 移動 9 移動
10 </text> 10 </text>
@@ -74,9 +74,9 @@
74 <check_box label="土地をé¸æŠž" name="radio select land" /> 74 <check_box label="土地をé¸æŠž" name="radio select land" />
75 <check_box label="土地をãªã‚‰ã™" name="radio flatten" /> 75 <check_box label="土地をãªã‚‰ã™" name="radio flatten" />
76 <check_box label="土地を隆起ã•ã›ã‚‹" name="radio raise" /> 76 <check_box label="土地を隆起ã•ã›ã‚‹" name="radio raise" />
77 <check_box label="低地" name="radio lower" /> 77 <check_box label="土地を低ãã™ã‚‹" name="radio lower" />
78 <check_box label="土地を滑らã‹ã«ã™ã‚‹" name="radio smooth" /> 78 <check_box label="土地を滑らã‹ã«ã™ã‚‹" name="radio smooth" />
79 <check_box label="土地をè’らã™" name="radio noise" /> 79 <check_box label="土地を凸凹ã«ã™ã‚‹" name="radio noise" />
80 <check_box label="土地を元ã«æˆ»ã™" name="radio revert" /> 80 <check_box label="土地を元ã«æˆ»ã™" name="radio revert" />
81 <combo_box name="combobox brush size"> 81 <combo_box name="combobox brush size">
82 <combo_item name="Small"> 82 <combo_item name="Small">
@@ -137,7 +137,7 @@
137 <text name="perm_modify"> 137 <text name="perm_modify">
138 ã“ã®ã‚ªãƒ–ジェクトã¯ä¿®æ­£ã§ãã¾ã™ã€‚ 138 ã“ã®ã‚ªãƒ–ジェクトã¯ä¿®æ­£ã§ãã¾ã™ã€‚
139 </text> 139 </text>
140 <check_box label="グループ分担" name="checkbox share with group" 140 <check_box label="グループã§å…±åŒç®¡ç†" name="checkbox share with group"
141 tool_tip="グループ・メンãƒãƒ¼ã«å¯¾ã—ã¦ç§»å‹•ã€ä¿®æ­£ã€ã‚³ãƒ”ーã€å‰Šé™¤ã‚’許å¯" /> 141 tool_tip="グループ・メンãƒãƒ¼ã«å¯¾ã—ã¦ç§»å‹•ã€ä¿®æ­£ã€ã‚³ãƒ”ーã€å‰Šé™¤ã‚’許å¯" />
142 <text name="text deed continued"> 142 <text name="text deed continued">
143 譲渡... 143 譲渡...
@@ -253,7 +253,7 @@
253 </panel> 253 </panel>
254 <panel label="オブジェクト" name="Object"> 254 <panel label="オブジェクト" name="Object">
255 <text name="select_single"> 255 <text name="select_single">
256 ãƒãƒ©ãƒ¡ãƒ¼ã‚¿ãƒ¼ã‚’編集ã™ã‚‹ã«ã¯ã€åŸºæœ¬è¦ç´ ã‚’1ã¤ã ã‘é¸æŠžã—ã¦ãã ã•ã„。 256 ãƒãƒªãƒ ã‚’1ã¤ã ã‘é¸æŠžã—ã¦ç·¨é›†ã—ã¦ãã ã•ã„
257 </text> 257 </text>
258 <text name="edit_object"> 258 <text name="edit_object">
259 オブジェクトã®ãƒ‘ラメーターを編集: 259 オブジェクトã®ãƒ‘ラメーターを編集:
@@ -289,19 +289,19 @@
289 </text> 289 </text>
290 <combo_box name="material"> 290 <combo_box name="material">
291 <combo_item name="Stone"> 291 <combo_item name="Stone">
292 石 292 石æ
293 </combo_item> 293 </combo_item>
294 <combo_item name="Metal"> 294 <combo_item name="Metal">
295 金属 295 金属
296 </combo_item> 296 </combo_item>
297 <combo_item name="Glass"> 297 <combo_item name="Glass">
298 グラス 298 ガラス
299 </combo_item> 299 </combo_item>
300 <combo_item name="Wood"> 300 <combo_item name="Wood">
301 木 301 木æ
302 </combo_item> 302 </combo_item>
303 <combo_item name="Flesh"> 303 <combo_item name="Flesh">
304 肉体 304 肌
305 </combo_item> 305 </combo_item>
306 <combo_item name="Plastic"> 306 <combo_item name="Plastic">
307 プラスãƒãƒƒã‚¯ 307 プラスãƒãƒƒã‚¯
@@ -336,7 +336,7 @@
336 リング 336 リング
337 </combo_item> 337 </combo_item>
338 <combo_item name="Sculpted"> 338 <combo_item name="Sculpted">
339 変形済㿠339 スカルプト
340 </combo_item> 340 </combo_item>
341 </combo_box> 341 </combo_box>
342 <text name="text cut"> 342 <text name="text cut">
@@ -345,13 +345,13 @@
345 <spinner label="B" name="cut begin" /> 345 <spinner label="B" name="cut begin" />
346 <spinner label="E" name="cut end" /> 346 <spinner label="E" name="cut end" />
347 <text name="text hollow"> 347 <text name="text hollow">
348 中空 348 中空(空洞)
349 </text> 349 </text>
350 <text name="text skew"> 350 <text name="text skew">
351 傾斜 351 傾斜
352 </text> 352 </text>
353 <text name="Hollow Shape"> 353 <text name="Hollow Shape">
354 中空ã®å½¢ 354 中空(空洞)ã®å½¢
355 </text> 355 </text>
356 <combo_box name="hole"> 356 <combo_box name="hole">
357 <combo_item name="Default"> 357 <combo_item name="Default">
@@ -386,10 +386,10 @@
386 <spinner label="X" name="Shear X" /> 386 <spinner label="X" name="Shear X" />
387 <spinner label="Y" name="Shear Y" /> 387 <spinner label="Y" name="Shear Y" />
388 <text name="advanced_cut"> 388 <text name="advanced_cut">
389 プロフィール・カットã®å§‹ç‚¹ã¨çµ‚点 389 プロフィール・カットã®å§‹ç‚¹ã¨çµ‚点
390 </text> 390 </text>
391 <text name="advanced_dimple"> 391 <text name="advanced_dimple">
392 ãããªã¿ã®å§‹ç‚¹ã¨çµ‚点 392 ãã¼ã¿ã®å§‹ç‚¹ã¨çµ‚点
393 </text> 393 </text>
394 <spinner label="B" name="Path Limit Begin" /> 394 <spinner label="B" name="Path Limit Begin" />
395 <spinner label="E" name="Path Limit End" /> 395 <spinner label="E" name="Path Limit End" />
@@ -402,9 +402,9 @@
402 åŠå¾„ 402 åŠå¾„
403 </text> 403 </text>
404 <text name="text revolutions"> 404 <text name="text revolutions">
405 レボリューション 405 回転体
406 </text> 406 </text>
407 <texture_picker label="変形テクスãƒãƒ£ãƒ¼" name="sculpt texture control" 407 <texture_picker label="スカルプトテクスãƒãƒ£ãƒ¼" name="sculpt texture control"
408 tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠžã—ã¦ãã ã•ã„。" /> 408 tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠžã—ã¦ãã ã•ã„。" />
409 <check_box label="ミラー" name="sculpt mirror control" 409 <check_box label="ミラー" name="sculpt mirror control"
410 tool_tip="スカルプトã•ã‚ŒãŸãƒ—リムをX軸上ã§å転" /> 410 tool_tip="スカルプトã•ã‚ŒãŸãƒ—リムをX軸上ã§å転" />
@@ -433,7 +433,7 @@
433 </panel> 433 </panel>
434 <panel label="特徴" name="Features"> 434 <panel label="特徴" name="Features">
435 <text name="select_single"> 435 <text name="select_single">
436 特徴を編集ãã‚‹ã«ã¯ã€åŸºæœ¬è¦ç´ ã‚’1ã¤ã ã‘é¸æŠžã—ã¦ãã ã•ã„。 436 プリムを1ã¤ã ã‘é¸æŠžã—ã¦ç·¨é›†ã—ã¦ãã ã•ã„
437 </text> 437 </text>
438 <text name="edit_object"> 438 <text name="edit_object">
439 オブジェクトã®ç‰¹å¾´ã‚’編集: 439 オブジェクトã®ç‰¹å¾´ã‚’編集:
@@ -558,7 +558,7 @@
558 </combo_item> 558 </combo_item>
559 </combo_box> 559 </combo_box>
560 <text name="tex scale"> 560 <text name="tex scale">
561 é¡”ã”ã¨ã«ç¹°ã‚Šè¿”ã™ 561 é¢ã”ã¨ã«ç¹°ã‚Šè¿”ã™
562 </text> 562 </text>
563 <spinner label="水平(U)" name="TexScaleU" /> 563 <spinner label="水平(U)" name="TexScaleU" />
564 <check_box label="å転" name="checkbox flip s" /> 564 <check_box label="å転" name="checkbox flip s" />
@@ -582,11 +582,11 @@
582 </text> 582 </text>
583 <spinner label="水平(U)" name="TexOffsetU" /> 583 <spinner label="水平(U)" name="TexOffsetU" />
584 <spinner label="åž‚ç›´ (V)" name="TexOffsetV" /> 584 <spinner label="åž‚ç›´ (V)" name="TexOffsetV" />
585 <text name="textbox autofix"> 585 <text name="textbox autofix" width="190">
586 メディア・テクスãƒãƒ£ãƒ¼ã‚’æƒãˆã‚‹ 586 メディア・テクスãƒãƒ£ãƒ¼ã‚’æƒãˆã‚‹
587(最åˆã«ãƒ­ãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ï¼‰ 587(最åˆã«ãƒ­ãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ï¼‰
588 </text> 588 </text>
589 <button label="æƒãˆã‚‹" label_selected="æƒãˆã‚‹" left="150" name="button align" /> 589 <button label="æƒãˆã‚‹" label_selected="æƒãˆã‚‹" left="155" bottom="-361" name="button align" />
590 </panel> 590 </panel>
591 <panel label="コンテンツ" name="Contents"> 591 <panel label="コンテンツ" name="Contents">
592 <button label="æ–°ã—ã„スクリプト" label_selected="æ–°ã—ã„スクリプト..." 592 <button label="æ–°ã—ã„スクリプト" label_selected="æ–°ã—ã„スクリプト..."
@@ -605,7 +605,7 @@
605 <button label="土地を放棄..." label_selected="土地を放棄..." 605 <button label="土地を放棄..." label_selected="土地を放棄..."
606 name="button abandon land" /> 606 name="button abandon land" />
607 <button label="å†åˆ†å‰²..." label_selected="å†åˆ†å‰²..." name="button subdivide land" /> 607 <button label="å†åˆ†å‰²..." label_selected="å†åˆ†å‰²..." name="button subdivide land" />
608 <button label="å‚加ã™ã‚‹..." label_selected="å‚加ã™ã‚‹..." 608 <button label="çµ±åˆã™ã‚‹..." label_selected="çµ±åˆã™ã‚‹..."
609 name="button join land" /> 609 name="button join land" />
610 <button label="土地情報..." label_selected="土地情報..." 610 <button label="土地情報..." label_selected="土地情報..."
611 name="button about land" /> 611 name="button about land" />
@@ -623,7 +623,7 @@
623 土地をクリックã—ã€ãƒœã‚¿ãƒ³ã‚’押ã—ãŸã¾ã¾å…¥åŠ›ã—ã¦ä¿®æ­£å¤‰æ›´ 623 土地をクリックã—ã€ãƒœã‚¿ãƒ³ã‚’押ã—ãŸã¾ã¾å…¥åŠ›ã—ã¦ä¿®æ­£å¤‰æ›´
624 </text> 624 </text>
625 <text name="status_camera"> 625 <text name="status_camera">
626 ビューã’クリックã—ã€ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦å¤‰æ´ 626 クリックã—ドラッグã—ã¦è¦–界を調æ´
627 </text> 627 </text>
628 <text name="status_grab"> 628 <text name="status_grab">
629 ドラッグã—移動、Ctrlã§æŒä¸Šã’、Ctrl+Shiftã§ï½½ï¾‹ï¾Ÿï¾ 629 ドラッグã—移動、Ctrlã§æŒä¸Šã’、Ctrl+Shiftã§ï½½ï¾‹ï¾Ÿï¾
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_top_objects.xml b/linden/indra/newview/skins/default/xui/ja/floater_top_objects.xml
index 819a715..e59f72b 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_top_objects.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_top_objects.xml
@@ -1,51 +1,55 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="top_objects" title="ロード中..."> 2<floater name="top_objects" title="ロード中...">
3 <text name="title_text"> 3 <text name="title_text">
4 ロード中... 4 ロード中...
5 </text> 5 </text>
6 <scroll_list name="objects_list"> 6 <scroll_list name="objects_list">
7 <column label="æ•°" name="score" /> 7 <column label="æ•°" name="score"/>
8 <column label="åå‰" name="name" /> 8 <column label="åå‰" name="name"/>
9 <column label="所有者" name="owner" /> 9 <column label="所有者" name="owner"/>
10 <column label="ロケーション" name="location" /> 10 <column label="ロケーション" name="location"/>
11 <column label="時間" name="time" /> 11 <column label="時間" name="time"/>
12 <column label="Monoタイム" name="mono_time"/>
12 </scroll_list> 13 </scroll_list>
13 <text name="id_text"> 14 <text name="id_text">
14 物体ID: 15 物体ID:
15 </text> 16 </text>
16 <button label="標識を表示" name="show_beacon_btn" /> 17 <button label="標識を表示" name="show_beacon_btn"/>
17 <text name="obj_name_text"> 18 <text name="obj_name_text">
18 物体å: 19 物体å:
19 </text> 20 </text>
20 <button label="フィルタ" name="filter_object_btn" /> 21 <button label="フィルタ" name="filter_object_btn"/>
21 <text name="owner_name_text"> 22 <text name="owner_name_text">
22 所有者å: 23 所有者å:
23 </text> 24 </text>
24 <button label="フィルタ" name="filter_owner_btn" /> 25 <button label="フィルタ" name="filter_owner_btn"/>
25 <button label="é¸æŠžå†…容を返å´" name="return_selected_btn" /> 26 <button label="é¸æŠžå†…容を返å´" name="return_selected_btn"/>
26 <button label="ã™ã¹ã¦è¿”å´" name="return_all_btn" /> 27 <button label="ã™ã¹ã¦è¿”å´" name="return_all_btn"/>
27 <button label="é¸æŠžå†…容を無効化" name="disable_selected_btn" /> 28 <button label="é¸æŠžå†…容を無効化" name="disable_selected_btn"/>
28 <button label="ã™ã¹ã¦ç„¡åŠ¹åŒ–" name="disable_all_btn" /> 29 <button label="ã™ã¹ã¦ç„¡åŠ¹åŒ–" name="disable_all_btn"/>
29 <button label="æ›´æ–°" name="refresh_btn" /> 30 <button label="æ›´æ–°" name="refresh_btn"/>
30 <text name="top_scripts_title"> 31 <string name="top_scripts_title">
31 トップ・スクリプト 32 トップ・スクリプト
32 </text> 33 </string>
33 <text name="top_scripts_text"> 34 <string name="top_scripts_text">
34 [COUNT]スクリプト全体ã®å®Ÿè¡Œæ™‚é–“ã¯[TIME]ミリ秒。 35 [COUNT]スクリプト全体ã®å®Ÿè¡Œæ™‚é–“ã¯[TIME]ミリ秒。
35 </text> 36 </string>
36 <text name="scripts_score_label"> 37 <string name="scripts_score_label">
37 時間 38 時間
38 </text> 39 </string>
39 <text name="top_colliders_title"> 40 <string name="scripts_mono_time_label">
41 Monoタイム
42 </string>
43 <string name="top_colliders_title">
40 上部コライダー 44 上部コライダー
41 </text> 45 </string>
42 <text name="top_colliders_text"> 46 <string name="top_colliders_text">
43 上ä½[COUNT]個ã®ç‰©ä½“ã¯å¤šãã®è¡çªå¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚ 47 上ä½[COUNT]個ã®ç‰©ä½“ã¯å¤šãã®è¡çªå¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚
44 </text> 48 </string>
45 <text name="colliders_score_label"> 49 <string name="colliders_score_label">
46 æ•° 50 æ•°
47 </text> 51 </string>
48 <text name="none_descriptor"> 52 <string name="none_descriptor">
49 何も見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚ 53 何も見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚
50 </text> 54 </string>
51</floater> 55</floater>
diff --git a/linden/indra/newview/skins/default/xui/ja/floater_url_entry.xml b/linden/indra/newview/skins/default/xui/ja/floater_url_entry.xml
index ef56a90..9d3ca20 100644
--- a/linden/indra/newview/skins/default/xui/ja/floater_url_entry.xml
+++ b/linden/indra/newview/skins/default/xui/ja/floater_url_entry.xml
@@ -3,9 +3,9 @@
3 <text name="media_label"> 3 <text name="media_label">
4 メディア URL: 4 メディア URL:
5 </text> 5 </text>
6 <button label="OK" name="ok_btn" /> 6 <combo_box left="100" name="media_entry" width="360" />
7 <button label="キャンセル" name="cancel_btn" /> 7 <button label="OK" name="ok_btn" width="78"/>
8 <button label="キャンセル" name="cancel_btn2" /> 8 <button label="キャンセル" name="cancel_btn" width="80"/>
9 <button label="クリア" name="clear_btn" /> 9 <button label="クリア" name="clear_btn" />
10 <text name="loading_label"> 10 <text name="loading_label">
11 ロード中... 11 ロード中...
diff --git a/linden/indra/newview/skins/default/xui/ja/menu_inventory.xml b/linden/indra/newview/skins/default/xui/ja/menu_inventory.xml
index 04ae1d3..8dac774 100644
--- a/linden/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/ja/menu_inventory.xml
@@ -24,7 +24,7 @@
24 <menu_item_call label="æ–°ã—ã„パンツ" name="New Underpants" /> 24 <menu_item_call label="æ–°ã—ã„パンツ" name="New Underpants" />
25 </menu> 25 </menu>
26 <menu name="New Body Parts"> 26 <menu name="New Body Parts">
27 <menu_item_call label="æ–°ã—ã„å½¢" name="New Shape" /> 27 <menu_item_call label="æ–°ã—ã„シェイプ(体型)" name="New Shape" />
28 <menu_item_call label="æ–°ã—ã„スキン" name="New Skin" /> 28 <menu_item_call label="æ–°ã—ã„スキン" name="New Skin" />
29 <menu_item_call label="æ–°ã—ã„髪" name="New Hair" /> 29 <menu_item_call label="æ–°ã—ã„髪" name="New Hair" />
30 <menu_item_call label="æ–°ã—ã„眼" name="New Eyes" /> 30 <menu_item_call label="æ–°ã—ã„眼" name="New Eyes" />
@@ -37,7 +37,7 @@
37 <menu_item_call label="é–‹ã" name="Open" /> 37 <menu_item_call label="é–‹ã" name="Open" />
38 <menu_item_call label="プロパティ" name="Properties" /> 38 <menu_item_call label="プロパティ" name="Properties" />
39 <menu_item_call label="åå‰ã®å¤‰æ›´" name="Rename" /> 39 <menu_item_call label="åå‰ã®å¤‰æ›´" name="Rename" />
40 <menu_item_call label="資産UUIDをコピー" name="Copy Asset UUID" /> 40 <menu_item_call label="UUIDをコピー" name="Copy Asset UUID" />
41 <menu_item_call label="コピー" name="Copy" /> 41 <menu_item_call label="コピー" name="Copy" />
42 <menu_item_call label="貼り付ã‘" name="Paste" /> 42 <menu_item_call label="貼り付ã‘" name="Paste" />
43 <menu_item_call label="削除" name="Delete" /> 43 <menu_item_call label="削除" name="Delete" />
@@ -57,8 +57,8 @@
57 <menu_item_call label="éžã‚¢ã‚¯ãƒ†ã‚£ãƒ–" name="Deactivate" /> 57 <menu_item_call label="éžã‚¢ã‚¯ãƒ†ã‚£ãƒ–" name="Deactivate" />
58 <menu_item_call label="自分ã‹ã‚‰å–り外ã™" name="Detach From Yourself" /> 58 <menu_item_call label="自分ã‹ã‚‰å–り外ã™" name="Detach From Yourself" />
59 <menu_item_call label="装ç€" name="Object Wear" /> 59 <menu_item_call label="装ç€" name="Object Wear" />
60 <menu label="添付先" name="Attach To" /> 60 <menu label="装ç€å…ˆ" name="Attach To" />
61 <menu label="HUDã«æ·»ä»˜" name="Attach To HUD" /> 61 <menu label="HUD装ç€å…ˆ" name="Attach To HUD" />
62 <menu_item_call label="装ç€" name="Wearable Wear" /> 62 <menu_item_call label="装ç€" name="Wearable Wear" />
63 <menu_item_call label="編集" name="Wearable Edit" /> 63 <menu_item_call label="編集" name="Wearable Edit" />
64 <menu_item_call label="å–り外ã™" name="Take Off" /> 64 <menu_item_call label="å–り外ã™" name="Take Off" />
diff --git a/linden/indra/newview/skins/default/xui/ja/menu_pie_avatar.xml b/linden/indra/newview/skins/default/xui/ja/menu_pie_avatar.xml
index 3be4b21..10de376 100644
--- a/linden/indra/newview/skins/default/xui/ja/menu_pie_avatar.xml
+++ b/linden/indra/newview/skins/default/xui/ja/menu_pie_avatar.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<pie_menu name="Avatar Pie"> 2<pie_menu name="Avatar Pie">
3 <menu_item_call label="プロフィール..." name="Profile..." /> 3 <menu_item_call label="プロフィール..." name="Profile..." />
4 <menu_item_call label="ミュート" name="Avatar Mute" /> 4 <menu_item_call label="無視" name="Avatar Mute" />
5 <menu_item_call label="移動先" name="Go To" /> 5 <menu_item_call label="移動先" name="Go To" />
6 <menu_item_call label="評価" name="Rate" /> 6 <menu_item_call label="評価" name="Rate" />
7 <menu_item_call label="フレンドを追加..." name="Add Friend" /> 7 <menu_item_call label="フレンドを追加..." name="Add Friend" />
diff --git a/linden/indra/newview/skins/default/xui/ja/menu_pie_object.xml b/linden/indra/newview/skins/default/xui/ja/menu_pie_object.xml
index 64a8190..97161ce 100644
--- a/linden/indra/newview/skins/default/xui/ja/menu_pie_object.xml
+++ b/linden/indra/newview/skins/default/xui/ja/menu_pie_object.xml
@@ -10,14 +10,14 @@
10 <menu_item_call label="削除" name="Delete" /> 10 <menu_item_call label="削除" name="Delete" />
11 <menu_item_call label="装ç€" name="Wear" /> 11 <menu_item_call label="装ç€" name="Wear" />
12 <menu_item_call label="コピーをå–ã‚‹" name="Take Copy" /> 12 <menu_item_call label="コピーをå–ã‚‹" name="Take Copy" />
13 <pie_menu label="HUDを添付>" name="Object Attach HUD" /> 13 <pie_menu label="HUD装ç€å…ˆï¼ž" name="Object Attach HUD" />
14 <pie_menu label="添付>" name="Object Attach" /> 14 <pie_menu label="装ç€å…ˆï¼ž" name="Object Attach" />
15 <menu_item_call label="è¿”å´..." name="Return..." /> 15 <menu_item_call label="è¿”å´..." name="Return..." />
16 <pie_menu label="詳細>" name="Rate Menu"> 16 <pie_menu label="詳細>" name="Rate Menu">
17 <menu_item_call label="オーナーを評価..." name="Rate Owner..." /> 17 <menu_item_call label="オーナーを評価..." name="Rate Owner..." />
18 <menu_item_call label="å«ŒãŒã‚‰ã›ã®å ±å‘Š..." name="Report Abuse..." /> 18 <menu_item_call label="å«ŒãŒã‚‰ã›ã®å ±å‘Š..." name="Report Abuse..." />
19 <menu_item_call label="クリエーターを評価..." name="Rate Creator..." /> 19 <menu_item_call label="クリエーターを評価..." name="Rate Creator..." />
20 <menu_item_call label="ミュート" name="Object Mute" /> 20 <menu_item_call label="無視" name="Object Mute" />
21 <menu_item_call label="検査" name="Object Inspect" /> 21 <menu_item_call label="検査" name="Object Inspect" />
22 </pie_menu> 22 </pie_menu>
23 <menu_item_call label="購入..." name="Buy..." /> 23 <menu_item_call label="購入..." name="Buy..." />
diff --git a/linden/indra/newview/skins/default/xui/ja/menu_viewer.xml b/linden/indra/newview/skins/default/xui/ja/menu_viewer.xml
index ef68d38..af870a0 100644
--- a/linden/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -1,265 +1,207 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<menu_bar name="Main Menu"> 2<menu_bar name="Main Menu">
3 <menu label="ファイル" name="File"> 3 <menu label="ファイル" name="File">
4 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 4 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
5 <menu_item_call label="ç”»åƒã‚’アップロード(L$[COST])..." name="Upload Image" /> 5 <menu_item_call label="ç”»åƒã‚’アップロード(L$[COST])..." name="Upload Image"/>
6 <menu_item_call label="サウンドをアップロード(L$[COST])..." name="Upload Sound" /> 6 <menu_item_call label="サウンドをアップロード(L$[COST])..." name="Upload Sound"/>
7 <menu_item_call label="アニメーションをアップロード(L$[COST])..." 7 <menu_item_call label="アニメーションをアップロード(L$[COST])..." name="Upload Animation"/>
8 name="Upload Animation" /> 8 <menu_item_call label="一括アップロード(L$[COST]ï¼ãƒ•ã‚¡ã‚¤ãƒ«ï¼‰â€¦" name="Bulk Upload"/>
9 <menu_item_call label="大é‡ã‚¢ãƒƒãƒ—ロード(L$[COST]ï¼ãƒ•ã‚¡ã‚¤ãƒ«ï¼‰â€¦" 9 <menu_item_separator label="-----------" name="separator"/>
10 name="Bulk Upload" /> 10 <menu_item_call label="ウィンドウを閉ã˜ã‚‹" name="Close Window"/>
11 <menu_item_separator label="-----------" name="separator" /> 11 <menu_item_call label="å…¨ã¦ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ã‚‹" name="Close All Windows"/>
12 <menu_item_call label="ウィンドウを閉ã˜ã‚‹" name="Close Window" /> 12 <menu_item_separator label="-----------" name="separator2"/>
13 <menu_item_call label="å…¨ã¦ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ã‚‹" name="Close All Windows" /> 13 <menu_item_call label="テクスãƒãƒ£ãƒ¼ã‚’別åã§ä¿å­˜..." name="Save Texture As..."/>
14 <menu_item_separator label="-----------" name="separator2" /> 14 <menu_item_separator label="-----------" name="separator3"/>
15 <menu_item_call label="テクスãƒãƒ£ãƒ¼ã‚’別åã§ä¿å­˜..." name="Save Texture As..." /> 15 <menu_item_call label="スナップショットを撮る" name="Take Snapshot"/>
16 <menu_item_separator label="-----------" name="separator3" /> 16 <menu_item_call label="スナップショットをディスクã«ä¿å­˜" name="Snapshot to Disk"/>
17 <menu_item_call label="スナップショットを撮る" name="Take Snapshot" /> 17 <menu_item_separator label="-----------" name="separator4"/>
18 <menu_item_call label="スナップショットをディスクã«ä¿å­˜" 18 <menu_item_call label="終了" name="Quit"/>
19 name="Snapshot to Disk" />
20 <menu_item_separator label="-----------" name="separator4" />
21 <menu label="ウィンドウ・サイズを設定" name="Set Window Size">
22 <menu_item_call label="320x240" name="320x240" />
23 <menu_item_call label="640x480" name="640x480" />
24 <menu_item_call label="800x600" name="800x600" />
25 <menu_item_separator label="-----------" name="separator" />
26 <menu_item_call label="720 x 480(NTSC)" name="720x480 (NTSC)" />
27 <menu_item_call label="768 x 576(PAL)" name="768x576 (PAL)" />
28 </menu>
29 <menu_item_separator label="-----------" name="separator5" />
30 <menu_item_call label="終了" name="Quit" />
31 </menu> 19 </menu>
32 <menu label="編集" name="Edit"> 20 <menu label="編集" name="Edit">
33 <menu_item_call label="å…ƒã«æˆ»ã™" name="Undo" /> 21 <menu_item_call label="å…ƒã«æˆ»ã™" name="Undo"/>
34 <menu_item_call label="ã‚„ã‚Šç›´ã—" name="Redo" /> 22 <menu_item_call label="ã‚„ã‚Šç›´ã—" name="Redo"/>
35 <menu_item_separator label="-----------" name="separator" /> 23 <menu_item_separator label="-----------" name="separator"/>
36 <menu_item_call label="カット" name="Cut" /> 24 <menu_item_call label="カット" name="Cut"/>
37 <menu_item_call label="コピー" name="Copy" /> 25 <menu_item_call label="コピー" name="Copy"/>
38 <menu_item_call label="貼り付ã‘" name="Paste" /> 26 <menu_item_call label="貼り付ã‘" name="Paste"/>
39 <menu_item_call label="削除" name="Delete" /> 27 <menu_item_call label="削除" name="Delete"/>
40 <menu_item_separator label="-----------" name="separator2" /> 28 <menu_item_separator label="-----------" name="separator2"/>
41 <menu_item_call label="検索..." name="Search..." /> 29 <menu_item_call label="検索..." name="Search..."/>
42 <menu_item_separator label="-----------" name="separator3" /> 30 <menu_item_separator label="-----------" name="separator3"/>
43 <menu_item_call label="ã™ã¹ã¦ã‚’é¸æŠž" name="Select All" /> 31 <menu_item_call label="ã™ã¹ã¦ã‚’é¸æŠž" name="Select All"/>
44 <menu_item_call label="é¸æŠžè§£é™¤" name="Deselect" /> 32 <menu_item_call label="é¸æŠžè§£é™¤" name="Deselect"/>
45 <menu_item_separator label="-----------" name="separator4" /> 33 <menu_item_separator label="-----------" name="separator4"/>
46 <menu_item_call label="複製" name="Duplicate" /> 34 <menu_item_call label="複製" name="Duplicate"/>
47 <menu_item_separator label="-----------" name="separator5" /> 35 <menu_item_separator label="-----------" name="separator5"/>
48 <menu label="オブジェクトを装ç€" name="Attach Object" /> 36 <menu label="オブジェクトを装ç€" name="Attach Object"/>
49 <menu label="オブジェクトをå–り外ã™" name="Detach Object" /> 37 <menu label="オブジェクトをå–り外ã™" name="Detach Object"/>
50 <menu label="æœã‚’脱ã" name="Take Off Clothing"> 38 <menu label="æœã‚’脱ã" name="Take Off Clothing">
51 <menu_item_call label="シャツ" name="Shirt" /> 39 <menu_item_call label="シャツ" name="Shirt"/>
52 <menu_item_call label="ズボン" name="Pants" /> 40 <menu_item_call label="ズボン" name="Pants"/>
53 <menu_item_call label="é´" name="Shoes" /> 41 <menu_item_call label="é´" name="Shoes"/>
54 <menu_item_call label="é´ä¸‹" name="Socks" /> 42 <menu_item_call label="é´ä¸‹" name="Socks"/>
55 <menu_item_call label="ジャケット" name="Jacket" /> 43 <menu_item_call label="ジャケット" name="Jacket"/>
56 <menu_item_call label="手袋" name="Gloves" /> 44 <menu_item_call label="手袋" name="Gloves"/>
57 <menu_item_call label="(下ç€ã®ï¼‰ã‚·ãƒ£ãƒ„" name="Menu Undershirt" /> 45 <menu_item_call label="(下ç€ã®ï¼‰ã‚·ãƒ£ãƒ„" name="Menu Undershirt"/>
58 <menu_item_call label="(下ç€ã®ï¼‰ãƒ‘ンツ" name="Menu Underpants" /> 46 <menu_item_call label="(下ç€ã®ï¼‰ãƒ‘ンツ" name="Menu Underpants"/>
59 <menu_item_call label="スカート" name="Skirt" /> 47 <menu_item_call label="スカート" name="Skirt"/>
60 <menu_item_call label="ã™ã¹ã¦ã®æœ" name="All Clothes" /> 48 <menu_item_call label="ã™ã¹ã¦ã®æœ" name="All Clothes"/>
61 </menu> 49 </menu>
62 <menu_item_separator label="-----------" name="separator6" /> 50 <menu_item_separator label="-----------" name="separator6"/>
63 <menu_item_call label="ジェスãƒãƒ£ãƒ¼â€¦" name="Gestures..." /> 51 <menu_item_call label="ジェスãƒãƒ£ãƒ¼â€¦" name="Gestures..."/>
64 <menu_item_call label="プロフィール..." name="Profile..." /> 52 <menu_item_call label="プロフィール..." name="Profile..."/>
65 <menu_item_call label="容姿..." name="Appearance..." /> 53 <menu_item_call label="容姿..." name="Appearance..."/>
66 <menu_item_separator label="-----------" name="separator7" /> 54 <menu_item_separator label="-----------" name="separator7"/>
67 <menu_item_check label="フレンド..." name="Friends..." /> 55 <menu_item_check label="フレンド..." name="Friends..."/>
68 <menu_item_call label="グループ..." name="Groups..." /> 56 <menu_item_call label="グループ..." name="Groups..."/>
69 <menu_item_separator label="-----------" name="separator8" /> 57 <menu_item_separator label="-----------" name="separator8"/>
70 <menu_item_call label="環境設定..." name="Preferences..." /> 58 <menu_item_call label="環境設定..." name="Preferences..."/>
71 </menu> 59 </menu>
72 <menu label="ビュー" name="View"> 60 <menu label="表示" name="View">
73 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 61 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
74 <menu_item_call label="マウスルック" name="Mouselook" /> 62 <menu_item_call label="一人称視点(マウスルック)" name="Mouselook"/>
75 <menu_item_check label="建造" name="Build" /> 63 <menu_item_check label="制作ツール" name="Build"/>
76 <menu_item_check label="ジョイスティック・フライカム" name="Joystick Flycam" /> 64 <menu_item_check label="ジョイスティックæ“作" name="Joystick Flycam"/>
77 <menu_item_call label="表示をリセット" name="Reset View" /> 65 <menu_item_call label="表示をリセット" name="Reset View"/>
78 <menu_item_call label="最後ã®ãƒãƒ£ãƒƒãƒˆã‚’閲覧" name="Look at Last Chatter" /> 66 <menu_item_call label="最後ã®ãƒãƒ£ãƒƒãƒˆã‚’閲覧" name="Look at Last Chatter"/>
79 <menu_item_separator label="-----------" name="separator" /> 67 <menu_item_separator label="-----------" name="separator"/>
80 <menu_item_check label="ツールãƒãƒ¼" name="Toolbar" /> 68 <menu_item_check label="ツールãƒãƒ¼" name="Toolbar"/>
81 <menu_item_check label="ローカル・ãƒãƒ£ãƒƒãƒˆ" name="Chat History" /> 69 <menu_item_check label="ローカル・ãƒãƒ£ãƒƒãƒˆ" name="Chat History"/>
82 <menu_item_check label="コミュニケーション" name="Instant Message" /> 70 <menu_item_check label="コミュニケーション" name="Instant Message"/>
83 <menu_item_call label="æŒã¡ç‰©" name="Inventory" /> 71 <menu_item_call label="æŒã¡ç‰©" name="Inventory"/>
84 <menu_item_check label="アクティブ・スピーカー" name="Active Speakers" /> 72 <menu_item_check label="ボイスãƒãƒ£ãƒƒãƒˆãƒ»ãƒ¦ãƒ¼ã‚¶ãƒ¼ä¸€è¦§" name="Active Speakers"/>
85 <menu_item_check label="ミュートリスト" name="Mute List" /> 73 <menu_item_check label="無視リスト" name="Mute List"/>
86 <menu_item_separator label="-----------" name="separator2" /> 74 <menu_item_separator label="-----------" name="separator2"/>
87 <menu_item_check label="カメラ・コントロール" name="Camera Controls" /> 75 <menu_item_check label="カメラ・コントロール" name="Camera Controls"/>
88 <menu_item_check label="移動コントロール" name="Movement Controls" /> 76 <menu_item_check label="移動コントロール" name="Movement Controls"/>
89 <menu_item_check label="世界地図" name="World Map" /> 77 <menu_item_check label="世界地図" name="World Map"/>
90 <menu_item_check label="ミニマップ" name="Mini-Map" /> 78 <menu_item_check label="ミニマップ" name="Mini-Map"/>
91 <menu_item_separator label="-----------" name="separator3" /> 79 <menu_item_separator label="-----------" name="separator3"/>
92 <menu_item_check label="統計ãƒãƒ¼" name="Statistics Bar" /> 80 <menu_item_check label="地域ã®çµ±è¨ˆæƒ…å ±" name="Statistics Bar"/>
93 <menu_item_check label="土地境界線" name="Property Lines" /> 81 <menu_item_check label="土地ã®å¢ƒç•Œç·š" name="Property Lines"/>
94 <menu_item_check label="土地オーナー" name="Land Owners" /> 82 <menu_item_check label="土地オーナー" name="Land Owners"/>
95 <menu_item_separator label="-----------" name="separator4" /> 83 <menu_item_separator label="-----------" name="separator4"/>
96 <menu label="ホãƒãƒªãƒ³ã‚°ãƒ»ãƒ’ント" name="Hover Tips"> 84 <menu label="ヒントã®ãƒãƒƒãƒ—アップ" name="Hover Tips">
97 <menu_item_check label="ヒントを表示" name="Show Tips" /> 85 <menu_item_check label="ヒントを表示" name="Show Tips"/>
98 <menu_item_separator label="-----------" name="separator" /> 86 <menu_item_separator label="-----------" name="separator"/>
99 <menu_item_check label="土地ã®ãƒ’ント" name="Land Tips" /> 87 <menu_item_check label="土地ã®ãƒ’ント" name="Land Tips"/>
100 <menu_item_check label="ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトã«é–¢ã™ã‚‹ãƒ’ント" 88 <menu_item_check label="ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトã«é–¢ã™ã‚‹ãƒ’ント" name="Tips On All Objects"/>
101 name="Tips On All Objects" />
102 </menu>
103 <menu_item_check label="Alt キー:オブジェクト表示" name="Alt Shows Physical" />
104 <menu_item_check label="標識を常ã«ã‚ªãƒ³" name="Beacons Always On" />
105 <menu_item_check label="é€æ˜Žã‚ªãƒ–ジェクトを強調表示" name="Highlight Transparent" />
106 <menu label="ビーコン" name="Beacons">
107 <menu_item_check label="タッãƒã‚ªãƒ³ãƒªãƒ¼ã®ã‚¹ã‚¯ãƒªãƒ—トをå«ã‚€ã‚ªãƒ–ジェクト"
108 name="Scripted Objects With Touch Only" />
109 <menu_item_check label="スクリプト・オブジェクト" name="Scripted Objects" />
110 <menu_item_check label="物ç†çš„オブジェクト" name="Physical Objects" />
111 <menu_item_check label="音æº" name="Sound Sources" />
112 <menu_item_check label="パーティクルæº" name="Particle Sources" />
113 <menu_item_check label="ãƒã‚¤ãƒ©ã‚¤ãƒˆã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°" name="Render Highlights" />
114 <menu_item_check label="標識ã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°" name="Render Beacons" />
115 <menu_item_separator label="-----------" name="separator" />
116 <menu_item_separator label="-----------" name="separator2" />
117 <menu_item_check label="パーティクルを隠ã™" name="Hide Particles" />
118 <menu_item_separator label="-----------" name="separator3" />
119 <menu label="標識ã®å¹…" name="Beacon Width">
120 <menu_item_call label="1" name="Beacon Width 1" />
121 <menu_item_call label="4" name="Beacon Width 4" />
122 <menu_item_call label="16" name="Beacon Width 16" />
123 <menu_item_call label="32" name="Beacon Width 32" />
124 </menu>
125 </menu> 89 </menu>
126 <menu_item_check label="HUD添付物を表示" name="Show HUD Attachments" /> 90 <menu_item_check label="é€æ˜Žã‚ªãƒ–ジェクトを強調表示" name="Highlight Transparent"/>
127 <menu_item_separator label="-----------" name="separator5" /> 91 <menu_item_check label="ビーコン(標識)" name="beacons"/>
128 <menu_item_call label="拡大" name="Zoom In" /> 92 <menu_item_check label="パーティクルをéžè¡¨ç¤º" name="Hide Particles"/>
129 <menu_item_call label="デフォルトを拡大" name="Zoom Default" /> 93 <menu_item_check label="HUD装ç€ç‰©ã‚’表示" name="Show HUD Attachments"/>
130 <menu_item_call label="縮å°" name="Zoom Out" /> 94 <menu_item_separator label="-----------" name="separator5"/>
131 <menu_item_separator label="-----------" name="separator6" /> 95 <menu_item_call label="カメラ・ズームイン" name="Zoom In"/>
132 <menu_item_call label="[全画é¢è¡¨ç¤º]" name="Toggle Fullscreen" /> 96 <menu_item_call label="カメラ・デフォルト" name="Zoom Default"/>
133 <menu_item_call label="UIサイズをデフォルトã«è¨­å®š" name="Set UI Size to Default" /> 97 <menu_item_call label="カメラ・ズームアウト" name="Zoom Out"/>
98 <menu_item_separator label="-----------" name="separator6"/>
99 <menu_item_call label="[全画é¢è¡¨ç¤º]" name="Toggle Fullscreen"/>
100 <menu_item_call label="UIサイズを標準設定ã«æˆ»ã™" name="Set UI Size to Default"/>
134 </menu> 101 </menu>
135 <menu label="世界" name="World"> 102 <menu label="世界" name="World">
136 <menu_item_call label="ãƒãƒ£ãƒƒãƒˆ" name="Chat" /> 103 <menu_item_call label="ãƒãƒ£ãƒƒãƒˆ" name="Chat"/>
137 <menu_item_call label="ジェスãƒãƒ£ãƒ¼ã®é–‹å§‹" name="Start Gesture" /> 104 <menu_item_check label="常ã«èµ°ã‚‹" name="Always Run"/>
138 <menu_item_check label="常ã«èµ°ã‚‹" name="Always Run" /> 105 <menu_item_check label="飛行" name="Fly"/>
139 <menu_item_check label="飛行" name="Fly" /> 106 <menu_item_separator label="-----------" name="separator"/>
140 <menu_item_separator label="-----------" name="separator" /> 107 <menu_item_call label="ã“ã®å ´æ‰€ã®ãƒ©ãƒ³ãƒ‰ãƒžãƒ¼ã‚¯ã‚’作æˆ" name="Create Landmark Here"/>
141 <menu_item_call label="ã“ã“ã«ãƒ©ãƒ³ãƒ‰ãƒžãƒ¼ã‚¯ã‚’作æˆ" name="Create Landmark Here" /> 108 <menu_item_call label="ホームをã“ã“ã«è¨­å®š" name="Set Home to Here"/>
142 <menu_item_call label="ホームをã“ã“ã«è¨­å®š" name="Set Home to Here" /> 109 <menu_item_separator label="-----------" name="separator2"/>
143 <menu_item_separator label="-----------" name="separator2" /> 110 <menu_item_call label="ホームã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ" name="Teleport Home"/>
144 <menu_item_call label="ホームã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ" name="Teleport Home" /> 111 <menu_item_separator label="-----------" name="separator3"/>
145 <menu_item_separator label="-----------" name="separator3" /> 112 <menu_item_call label="離席中ã«è¨­å®š" name="Set Away"/>
146 <menu_item_call label="退席中ã«è¨­å®š" name="Set Away" /> 113 <menu_item_call label="å–ã‚Šè¾¼ã¿ä¸­ã«è¨­å®š" name="Set Busy"/>
147 <menu_item_call label="ビジーã«è¨­å®š" name="Set Busy" /> 114 <menu_item_call label="アニメーションをã™ã¹ã¦åœæ­¢" name="Stop All Animations"/>
148 <menu_item_call label="アニメーションをã™ã¹ã¦åœæ­¢" name="Stop All Animations" /> 115 <menu_item_call label="キー制御を解除" name="Release Keys"/>
149 <menu_item_call label="キーを解除" name="Release Keys" /> 116 <menu_item_separator label="-----------" name="separator4"/>
150 <menu_item_separator label="-----------" name="separator4" /> 117 <menu_item_call label="アカウントã®å±¥æ­´..." name="Account History...">
151 <menu_item_call label="å£åº§å±¥æ­´..." name="Account History..." /> 118 <on_click name="AccountHistory_url" userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php?lang=ja" />
152 <menu_item_call label="自分ã®å£åº§ã®ç®¡ç†..." name="Manage My Account..." /> 119 </menu_item_call>
153 <menu_item_call label="L$(リンデン・ドル)を購入" name="Buy and Sell L$..." /> 120 <menu_item_call label="マイアカウントã®ç®¡ç†..." name="Manage My Account...">
154 <menu_item_separator label="-----------" name="separator5" /> 121 <on_click name="ManageMyAccount_url" userdata="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=ja" />
155 <menu_item_call label="自分ã®åœŸåœ°..." name="My Land..." /> 122 </menu_item_call>
156 <menu_item_call label="土地情報..." name="About Land..." /> 123 <menu_item_call label="L$(リンデン・ドル)を購入" name="Buy and Sell L$..."/>
157 <menu_item_call label="土地を購入..." name="Buy Land..." /> 124 <menu_item_separator label="-----------" name="separator5"/>
158 <menu_item_call label="地域ï¼ä¸å‹•ç”£..." name="Region/Estate..." /> 125 <menu_item_call label="自分ã®åœŸåœ°..." name="My Land..."/>
159 <menu_item_separator label="-----------" name="separator6" /> 126 <menu_item_call label="土地情報..." name="About Land..."/>
160 <menu label="太陽を調整ã™ã‚‹" name="Force Sun"> 127 <menu_item_call label="土地を購入..." name="Buy Land..."/>
161 <menu_item_call label="æ—¥ã®å‡º" name="Sunrise" /> 128 <menu_item_call label="地域ï¼ä¸å‹•ç”£..." name="Region/Estate..."/>
162 <menu_item_call label="æ­£åˆ" name="Noon" /> 129 <menu_item_separator label="-----------" name="separator6"/>
163 <menu_item_call label="日没" name="Sunset" /> 130 <menu label="環境ã®è¨­å®š" name="Environment Settings">
164 <menu_item_call label="深夜" name="Midnight" /> 131 <menu_item_call label="æ—¥ã®å‡º" name="Sunrise"/>
165 <menu_item_separator label="-----------" name="separator" /> 132 <menu_item_call label="æ­£åˆ" name="Noon"/>
166 <menu_item_call label="地域デフォルトã«æˆ»ã™" name="Revert to Region Default" /> 133 <menu_item_call label="日没" name="Sunset"/>
167 </menu> 134 <menu_item_call label="深夜" name="Midnight"/>
168 <menu label="環境設定" name="Environment Settings"> 135 <menu_item_call label="地域ã®æ¨™æº–設定ã«æˆ»ã™" name="Revert to Region Default"/>
169 <menu_item_call label="æ—¥ã®å‡º" name="Sunrise" /> 136 <menu_item_separator label="-----------" name="separator"/>
170 <menu_item_call label="æ­£åˆ" name="Noon" /> 137 <menu_item_call label="環境編集" name="Environment Editor"/>
171 <menu_item_call label="日没" name="Sunset" />
172 <menu_item_call label="深夜" name="Midnight" />
173 <menu_item_call label="地域デフォルトã«æˆ»ã™" name="Revert to Region Default" />
174 <menu_item_separator label="-----------" name="separator" />
175 <menu_item_call label="環境編集" name="Environment Editor" />
176 </menu> 138 </menu>
177 </menu> 139 </menu>
178 <menu label="ツール" name="Tools"> 140 <menu label="ツール" name="Tools">
179 <menu_item_check label="リンクã•ã‚ŒãŸãƒ‘ートを編集" name="Edit Linked Parts" />
180 <menu_item_separator label="-----------" name="separator7" />
181 <menu label="ツールをé¸ã¶" name="Select Tool"> 141 <menu label="ツールをé¸ã¶" name="Select Tool">
182 <menu_item_call label="フォーカス" name="Focus" /> 142 <menu_item_call label="フォーカス" name="Focus"/>
183 <menu_item_call label="移動" name="Move" /> 143 <menu_item_call label="移動" name="Move"/>
184 <menu_item_call label="編集" name="Edit" /> 144 <menu_item_call label="編集" name="Edit"/>
185 <menu_item_call label="作æˆ" name="Create" /> 145 <menu_item_call label="作æˆ" name="Create"/>
186 <menu_item_call label="土地" name="Land" /> 146 <menu_item_call label="土地" name="Land"/>
187 </menu> 147 </menu>
188 <menu_item_separator label="-----------" name="separator" /> 148 <menu_item_separator label="-----------" name="separator"/>
189 <menu_item_check label="自分ã®ã‚ªãƒ–ジェクトã®ã¿é¸æŠž" name="Select Only My Objects" /> 149 <menu_item_check label="自分ã®ã‚ªãƒ–ジェクトã®ã¿é¸æŠž" name="Select Only My Objects"/>
190 <menu_item_check label="移動å¯èƒ½ãªã‚ªãƒ–ジェクトã®ã¿é¸æŠž" 150 <menu_item_check label="移動å¯èƒ½ãªã‚ªãƒ–ジェクトã®ã¿é¸æŠž" name="Select Only Movable Objects"/>
191 name="Select Only Movable Objects" /> 151 <menu_item_check label="環境ã§é¸æŠž" name="Select By Surrounding"/>
192 <menu_item_check label="環境ã§é¸æŠž" name="Select By Surrounding" /> 152 <menu_item_check label="éš ã‚ŒãŸä½ç½®ã®é¸æŠžã‚‚表示" name="Show Hidden Selection"/>
193 <menu_item_check label="éžè¡¨ç¤ºã®é¸æŠžã‚’表示" name="Show Hidden Selection" /> 153 <menu_item_check label="é¸æŠžã—ãŸã‚‚ã®ã®å…‰æºç¯„囲を表示" name="Show Light Radius for Selection"/>
194 <menu_item_check label="ライトåŠå¾„一覧を表示" name="Show Light Radius for Selection" /> 154 <menu_item_check label="é¸æŠžãƒ“ームを表示" name="Show Selection Beam"/>
195 <menu_item_check label="é¸æŠžãƒ“ームを表示" name="Show Selection Beam" /> 155 <menu_item_separator label="-----------" name="separator2"/>
196 <menu_item_separator label="-----------" name="separator2" /> 156 <menu_item_check label="グリッドã«ã‚¹ãƒŠãƒƒãƒ—" name="Snap to Grid"/>
197 <menu_item_check label="グリッドã«ã‚¹ãƒŠãƒƒãƒ—" name="Snap to Grid" /> 157 <menu_item_call label="オブジェクトã®XY移動をグリッドã«åˆã‚ã›ã‚‹" name="Snap Object XY to Grid"/>
198 <menu_item_call label="オブジェクトXYをグリッドã«ã‚¹ãƒŠãƒƒãƒ—" 158 <menu_item_call label="グリッド用ã«[é¸æŠž]を使用" name="Use Selection for Grid"/>
199 name="Snap Object XY to Grid" /> 159 <menu_item_call label="グリッドã®ã‚ªãƒ—ション..." name="Grid Options..."/>
200 <menu_item_call label="グリッド用ã«[é¸æŠž]を使用" name="Use Selection for Grid" /> 160 <menu_item_separator label="-----------" name="separator3"/>
201 <menu_item_call label="グリッドã®ã‚ªãƒ—ション..." name="Grid Options..." /> 161 <menu_item_check label="リンクã•ã‚ŒãŸä¸€éƒ¨ã‚’編集" name="Edit Linked Parts"/>
202 <menu_item_separator label="-----------" name="separator3" /> 162 <menu_item_call label="リンク" name="Link"/>
203 <menu_item_call label="リンク" name="Link" /> 163 <menu_item_call label="リンク解除" name="Unlink"/>
204 <menu_item_call label="リンクã—ãªã„" name="Unlink" /> 164 <menu_item_separator label="-----------" name="separator4"/>
205 <menu_item_separator label="-----------" name="separator4" /> 165 <menu_item_call label="é¸æŠžå¯¾è±¡ã«è¦–点移動" name="Focus on Selection"/>
206 <menu_item_separator label="-----------" name="separator5" /> 166 <menu_item_call label="é¸æŠžç¯„囲ã«ã‚ºãƒ¼ãƒ ã‚¤ãƒ³" name="Zoom to Selection"/>
207 <menu_item_call label="é¸æŠžã‚’フォーカス" name="Focus on Selection" /> 167 <menu_item_call label="オブジェクトを購入" name="Menu Object Take"/>
208 <menu_item_call label="é¸æŠžç¯„囲ã«ã‚ºãƒ¼ãƒ ã‚¤ãƒ³" name="Zoom to Selection" /> 168 <menu_item_call label="コピーをå–ã‚‹" name="Take Copy"/>
209 <menu_item_call label="オブジェクトを購入" name="Menu Object Take" /> 169 <menu_item_call label="オブジェクトをæŒã¡ç‰©ã«æˆ»ã—ã¦ä¿å­˜" name="Save Object Back to My Inventory"/>
210 <menu_item_call label="コピーをå–ã‚‹" name="Take Copy" /> 170 <menu_item_call label="オブジェクトをオブジェクト・コンテンツã«æˆ»ã—ã¦ä¿å­˜" name="Save Object Back to Object Contents"/>
211 <menu_item_call label="オブジェクトをæŒã¡ç‰©ã«æˆ»ã—ã¦ä¿å­˜" 171 <menu_item_separator label="-----------" name="separator6"/>
212 name="Save Object Back to My Inventory" /> 172 <menu_item_call label="スクリプト警告ï¼ã‚¨ãƒ©ãƒ¼ãƒ»ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’表示" name="Show Script Warning/Error Window"/>
213 <menu_item_call 173 <menu label="é¸æŠžã—ãŸï¼ˆã‚ªãƒ–ジェクトã®ä¸­ã®ï¼‰ã‚¹ã‚¯ãƒªãƒ—トをå†ã‚³ãƒ³ãƒ‘イル" name="Recompile Scripts in Selection">
214 label="オブジェクトをオブジェクト・コンテンツã«æˆ»ã—ã¦ä¿å­˜" 174 <menu_item_call label="Mono" name="Mono"/>
215 name="Save Object Back to Object Contents" /> 175 <menu_item_call label="LSL" name="LSL"/>
216 <menu_item_separator label="-----------" name="separator6" /> 176 </menu>
217 <menu_item_call label="スクリプト警告ï¼ã‚¨ãƒ©ãƒ¼ãƒ»ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’表示" 177 <menu_item_call label="é¸æŠžã—ãŸï¼ˆã‚ªãƒ–ジェクトã®ä¸­ã®ï¼‰ã‚¹ã‚¯ãƒªãƒ—トをリセット" name="Reset Scripts in Selection"/>
218 name="Show Script Warning/Error Window" /> 178 <menu_item_call label="é¸æŠžã—ãŸï¼ˆã‚ªãƒ–ジェクトã®ä¸­ã®ï¼‰ã‚¹ã‚¯ãƒªãƒ—トを起動ã™ã‚‹" name="Set Scripts to Running in Selection"/>
219 <menu_item_call label="é¸æŠžã—ãŸã‚¹ã‚¯ãƒªãƒ—トをå†ã‚³ãƒ³ãƒ‘イル" 179 <menu_item_call label="é¸æŠžã—ãŸï¼ˆã‚ªãƒ–ジェクトã®ä¸­ã®ï¼‰ã‚¹ã‚¯ãƒªãƒ—トをåœæ­¢ã™ã‚‹" name="Set Scripts to Not Running in Selection"/>
220 name="Recompile Scripts in Selection">
221 <menu_item_call label="モノ" name="Mono" />
222 <menu_item_call label="LSL" name="LSL" />
223 </menu_item_call>
224 <menu_item_call label="é¸æŠžã—ãŸã‚¹ã‚¯ãƒªãƒ—トをリセット"
225 name="Reset Scripts in Selection" />
226 <menu_item_call label="é¸æŠžã—ãŸã‚¹ã‚¯ãƒªãƒ—トを起動ã™ã‚‹"
227 name="Set Scripts to Running in Selection" />
228 <menu_item_call label="é¸æŠžã—ãŸã‚¹ã‚¯ãƒªãƒ—トを起動ã—ãªã„"
229 name="Set Scripts to Not Running in Selection" />
230 </menu> 180 </menu>
231 <menu label="ヘルプ" name="Help"> 181 <menu label="ヘルプ" name="Help">
232 <menu_item_call label="Second Life ヘルプ" name="Second Life Help" /> 182 <menu_item_call label="Second Life ヘルプ" name="Second Life Help"/>
233 <menu_item_call label="インワールド・ヘルプ:" name="In-World Help" /> 183 <menu_item_call label="ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«" name="Tutorial"/>
234 <menu_item_call label="追加ヘルプ" name="Additional Help" /> 184 <menu_item_separator label="-----------" name="separator"/>
235 <menu_item_call label="ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«" name="Tutorial" /> 185 <menu_item_call label="Lindenå…¬å¼ãƒ–ログ..." name="Official Linden Blog..."/>
236 <menu_item_separator label="-----------" name="separator" /> 186 <menu_item_separator label="-----------" name="separator2"/>
237 <menu_item_call label="オフィシャルLindenブログ..." name="Official Linden Blog..." /> 187 <menu_item_call label="スクリプト・ãƒãƒ¼ã‚¿ãƒ«..." name="Scripting Portal..."/>
238 <menu_item_separator label="-----------" name="separator2" /> 188 <menu_item_separator label="-----------" name="separator3"/>
239 <menu_item_call label="スクリプト・ガイド..." name="Scripting Guide..." /> 189 <menu_item_call label="å«ŒãŒã‚‰ã›ã®å ±å‘Š..." name="Report Abuse..."/>
240 <menu_item_call label="スクリプト・ãƒãƒ¼ã‚¿ãƒ«..." name="Scripting Portal..." /> 190 <menu_item_call label="è¡çªã®è¨˜éŒ²..." name="Bumps, Pushes &amp;amp; Hits..."/>
241 <menu_item_separator label="-----------" name="separator3" /> 191 <menu_item_call label="ラグ メーター" name="Lag Meter"/>
242 <menu_item_call label="本日ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸..." name="Message of the Day..." /> 192 <menu_item_separator label="-----------" name="separator7"/>
243 <menu_item_separator label="-----------" name="separator4" />
244 <menu_item_call label="å«ŒãŒã‚‰ã›ã®å ±å‘Š..." name="Report Abuse..." />
245 <menu_item_call label="ã¶ã¤ã‹ã‚‹ã€æŠ¼ã™ã€ãŠã‚ˆã³å½“ãŸã‚‹..."
246 name="Bumps, Pushes &amp;amp; Hits..." />
247 <menu_item_call label="ラグ メーター" name="Lag Meter" />
248 <menu_item_separator label="-----------" name="separator7" />
249 <menu label="ãƒã‚°ã®å ±å‘Š" name="Bug Reporting"> 193 <menu label="ãƒã‚°ã®å ±å‘Š" name="Bug Reporting">
250 <menu_item_call label="パブリックå•é¡Œãƒˆãƒ©ãƒƒã‚«ãƒ¼..." name="Public Issue Tracker..." /> 194 <menu_item_call label="パブリックå•é¡Œãƒˆãƒ©ãƒƒã‚«ãƒ¼..." name="Public Issue Tracker..."/>
251 <menu_item_call label="パブリックå•é¡Œãƒˆãƒ©ãƒƒã‚«ãƒ¼ ヘルプ..." 195 <menu_item_call label="パブリックå•é¡Œãƒˆãƒ©ãƒƒã‚«ãƒ¼ ヘルプ..." name="Publc Issue Tracker Help..."/>
252 name="Publc Issue Tracker Help..." /> 196 <menu_item_separator label="-----------" name="separator7"/>
253 <menu_item_call label="ãƒã‚°ã®å ±å‘Š 101..." name="Bug Reporing 101..." /> 197 <menu_item_call label="ãƒã‚°ã®å ±å‘Š 101..." name="Bug Reporing 101..."/>
254 <menu_item_call label="セキュリティå•é¡Œ..." name="Security Issues..." /> 198 <menu_item_call label="セキュリティå•é¡Œ..." name="Security Issues...">
255 <menu_item_call label="QA Wiki..." name="QA Wiki..." /> 199 <on_click name="SecurityIssues_url" userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues/ja" />
256 <menu_item_separator label="-----------" name="separator7" /> 200 </menu_item_call>
257 <menu_item_separator label="-----------" name="separator9" /> 201 <menu_item_call label="å“質ä¿è¨¼é–¢é€£Wiki..." name="QA Wiki..."/>
258 <menu_item_call label="ãƒã‚°ã®å ±å‘Š..." name="Report Bug..." /> 202 <menu_item_separator label="-----------" name="separator9"/>
203 <menu_item_call label="ãƒã‚°ã®å ±å‘Š..." name="Report Bug..."/>
259 </menu> 204 </menu>
260 <menu_item_separator label="-----------" name="separator5" /> 205 <menu_item_call label="Second Lifeã«ã¤ã„ã¦" name="About Second Life..."/>
261 <menu_item_call label="リリースノート..." name="Release Notes..." />
262 <menu_item_separator label="-----------" name="separator6" />
263 <menu_item_call label="Second Lifeã«ã¤ã„ã¦" name="About Second Life..." />
264 </menu> 206 </menu>
265</menu_bar> 207</menu_bar>
diff --git a/linden/indra/newview/skins/default/xui/ja/notify.xml b/linden/indra/newview/skins/default/xui/ja/notify.xml
index f53b6a7..f587868 100644
--- a/linden/indra/newview/skins/default/xui/ja/notify.xml
+++ b/linden/indra/newview/skins/default/xui/ja/notify.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<notifications> 2<notifications>
3 <notify name="SystemMessageTip"> 3 <notify name="SystemMessageTip">
4 <message name="message"> 4 <message name="message">
@@ -74,7 +74,7 @@
74 </notify> 74 </notify>
75 <notify name="InMaxGroups"> 75 <notify name="InMaxGroups">
76 <message name="message"> 76 <message name="message">
77 ã‚ãªãŸã¯ã™ã§ã«æœ€å¤§é™ã®æ•°ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å±žã—ã¦ã„ã¾ã™ã€‚ 1ã¤ã®ã‚°ãƒ«ãƒ¼ãƒ—ã‹ã‚‰æŠœã‘ãªã„ã¨æ–°ã—ã„グループを作るã“ã¨ã¯ã§ãã¾ã›ã‚“。 77 ã‚ãªãŸã¯æ‰€å±žã§ãる最大数ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã™ã§ã«å±žã—ã¦ã„ã¾ã™ã€‚ グループをã©ã‚Œã‹1ã¤æŠœã‘ãªã„ã¨æ–°ã—ã„グループを作るã“ã¨ã¯ã§ãã¾ã›ã‚“。
78 </message> 78 </message>
79 </notify> 79 </notify>
80 <notify name="GestureMissing"> 80 <notify name="GestureMissing">
@@ -148,9 +148,8 @@
148 </notify> 148 </notify>
149 <notify name="IncompleteInventory"> 149 <notify name="IncompleteInventory">
150 <message name="message"> 150 <message name="message">
151 ã‚ãªãŸã®æä¾›ã™ã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¯ã€ã“ã®å ´æ‰€ã§ã¯ã¾ã  151 ã‚ãªãŸã®æä¾›ã™ã‚‹ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¯ã€ã“ã®å ´æ‰€ã§ã¯ã¾ã å…¨éƒ¨æƒã„ã¾ã›ã‚“。
152全部æƒã„ã¾ã›ã‚“。 å°‘ã—ã—ã¦ã‹ã‚‰ã€ã‚‚ã†ä¸€åº¦ 152å°‘ã—ã—ã¦ã‹ã‚‰ã‚‚ã†ä¸€åº¦è©¦ã—ã¦ãã ã•ã„。
153試ã—ã¦ãã ã•ã„。
154 </message> 153 </message>
155 </notify> 154 </notify>
156 <notify name="CannotModifyProtectedCategories"> 155 <notify name="CannotModifyProtectedCategories">
@@ -165,12 +164,12 @@
165 </notify> 164 </notify>
166 <notify name="OfferedCard"> 165 <notify name="OfferedCard">
167 <message name="message"> 166 <message name="message">
168 ã‚ãªãŸã¯[FIRST] [LAST]ã«ã‚³ãƒ¼ãƒªãƒ³ã‚°ãƒ»ã‚«ãƒ¼ãƒ‰ã‚’贈りã¾ã—ãŸã€‚ 167 ã‚ãªãŸã¯[FIRST] [LAST]ã«ã‚³ãƒ¼ãƒªãƒ³ã‚°ãƒ»ã‚«ãƒ¼ãƒ‰ã‚’é€ã‚Šã¾ã—ãŸã€‚
169 </message> 168 </message>
170 </notify> 169 </notify>
171 <notify name="OfferedFriendship"> 170 <notify name="OfferedFriendship">
172 <message name="message"> 171 <message name="message">
173 ã‚ãªãŸã¯[FIRST] [LAST]ã«ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒ—を贈りã¾ã—ãŸã€‚ 172 ã‚ãªãŸã¯[FIRST] [LAST]ã«ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒ—ã‚’é€ã‚Šã¾ã—ãŸã€‚
174 </message> 173 </message>
175 </notify> 174 </notify>
176 <notify name="UnableToBuyWhileDownloading"> 175 <notify name="UnableToBuyWhileDownloading">
@@ -342,15 +341,13 @@
342 <notify name="OtherObjectsReturned"> 341 <notify name="OtherObjectsReturned">
343 <message name="message"> 342 <message name="message">
344 é¸æŠžã•ã‚Œã¦ã„る土地ã®åŒºç”»ä¸Šã«ã‚ã£ãŸ 343 é¸æŠžã•ã‚Œã¦ã„る土地ã®åŒºç”»ä¸Šã«ã‚ã£ãŸ
345 [FIRST] [LAST]ãŒæ‰€æœ‰ã™ã‚‹ã‚ªãƒ–ジェクト㯠344 [FIRST] [LAST]ãŒæ‰€æœ‰ã™ã‚‹ã‚ªãƒ–ジェクトã¯ã‚ªãƒ¼ãƒŠãƒ¼ã®æŒã¡ç‰©ã«è¿”å´ã•ã‚Œã¾ã—ãŸã€‚
346オーナーã®æŒã¡ç‰©ã«è¿”å´ã•ã‚Œã¾ã—ãŸã€‚
347 </message> 345 </message>
348 </notify> 346 </notify>
349 <notify name="OtherObjectsReturned2"> 347 <notify name="OtherObjectsReturned2">
350 <message name="message"> 348 <message name="message">
351 é¸æŠžã•ã‚ŒãŸåœŸåœ°ã®åŒºç”»ä¸Šã«ã‚ã‚Šã€ä½äººã® 349 é¸æŠžã•ã‚ŒãŸåœŸåœ°ã®åŒºç”»ä¸Šã«ã‚ã‚Šã€ä½äººã®
352[NAME]ã®æ‰€æœ‰ã ã£ãŸã‚ªãƒ–ジェクト㯠350[NAME]ã®æ‰€æœ‰ã ã£ãŸã‚ªãƒ–ジェクトã¯ã‚ªãƒ¼ãƒŠãƒ¼ã«è¿”å´ã•ã‚Œã¾ã—ãŸã€‚
353オーナーã«è¿”å´ã•ã‚Œã¾ã—ãŸã€‚
354 </message> 351 </message>
355 </notify> 352 </notify>
356 <notify name="GroupObjectsReturned"> 353 <notify name="GroupObjectsReturned">
@@ -379,8 +376,8 @@
379 </notify> 376 </notify>
380 <notify name="PushRestricted"> 377 <notify name="PushRestricted">
381 <message name="message"> 378 <message name="message">
382 ã“ã®åœŸåœ°ã¯ã€ŒllPushObjectを制é™ã€ã§ã™ã€‚ 379 ã“ã®åœŸåœ°ã§ã¯ã€Œãƒ—ッã·ãƒ³ã‚°ç¦æ­¢ã€ã§ã™ã€‚
383土地所有者ã§ãªã„é™ã‚Šã€ã“ã“ã§ä»–人をプッシュã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 380土地所有者以外ã¯ã“ã“ã§ä»–人をプッシュã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。
384 </message> 381 </message>
385 </notify> 382 </notify>
386 <notify name="VoiceAvailablity"> 383 <notify name="VoiceAvailablity">
@@ -395,7 +392,7 @@
395 </notify> 392 </notify>
396 <notify name="NoBuild"> 393 <notify name="NoBuild">
397 <message name="message"> 394 <message name="message">
398 ã“ã®åœŸåœ°ã¯å»ºé€ ç„¡åŠ¹ï¼ˆã€Œå»ºé€ ä¸å¯ã€ï¼‰ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚ 395 ã“ã®åœŸåœ°ã¯ã‚ªãƒ–ジェクトã®ä½œæˆç¦æ­¢ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚
399ã“ã“ã§ã‚ªãƒ–ジェクトを作るã“ã¨ã¯ã§ãã¾ã›ã‚“。 396ã“ã“ã§ã‚ªãƒ–ジェクトを作るã“ã¨ã¯ã§ãã¾ã›ã‚“。
400 </message> 397 </message>
401 </notify> 398 </notify>
@@ -406,7 +403,7 @@
406 </notify> 403 </notify>
407 <notify name="ScriptsNotRunning"> 404 <notify name="ScriptsNotRunning">
408 <message name="message"> 405 <message name="message">
409 ã“ã®åœ°åŸŸã¯ã‚¹ã‚¯ãƒªãƒ—トを1ã¤ã‚‚èµ·å‹•ãã¦ã„ã¾ã›ã‚“。 406 ã“ã®åœ°åŸŸã§ã¯ã‚¹ã‚¯ãƒªãƒ—トã®ä½¿ç”¨ãŒç¦æ­¢ã•ã‚Œã¦ã„ã¾ã
410 </message> 407 </message>
411 </notify> 408 </notify>
412 <notify name="NoOutsideScripts"> 409 <notify name="NoOutsideScripts">
@@ -435,44 +432,44 @@
435 </notify> 432 </notify>
436 <notify name="ObjectGiveItem"> 433 <notify name="ObjectGiveItem">
437 <message name="message"> 434 <message name="message">
438 [FIRST] [LAST]ãŒæ‰€æœ‰ã—ã¦ã„ã‚‹[OBJECTFROMNAME]ã¨å付ã‘られãŸã‚ªãƒ–ジェクトãŒã€ã‚ãªãŸã«[OBJECTNAME]ã¨ã„ã†[OBJECTTYPE]を与ãˆã¾ã—ãŸã€‚ 435 [FIRST] [LAST]所有ã®[OBJECTFROMNAME]ã‹ã‚‰ã€[OBJECTNAME]ã¨ã„ã†[OBJECTTYPE]ãŒé€ã‚‰ã‚Œã¦ãã¾ã—ãŸã€‚
439 </message> 436 </message>
440 <option name="Keep"> 437 <option name="Keep">
441 ç¶­æŒ 438 å—ã‘å–ã‚‹
442 </option> 439 </option>
443 <option name="Discard"> 440 <option name="Discard">
444 破棄 441 破棄
445 </option> 442 </option>
446 <option name="Mute"> 443 <option name="Mute">
447 ミュート 444 無視リストã¸
448 </option> 445 </option>
449 </notify> 446 </notify>
450 <notify name="ObjectGiveItemUnknownUser"> 447 <notify name="ObjectGiveItemUnknownUser">
451 <message name="message"> 448 <message name="message">
452 (未知ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼) ãŒæ‰€æœ‰ã—ã¦ã„ã‚‹[OBJECTFROMNAME]ã¨å付ã‘られãŸã‚ªãƒ–ジェクトãŒã€ã‚ãªãŸã«[OBJECTNAME]ã¨ã„ã†[OBJECTTYPE]を与ãˆã¾ã—ãŸã€‚ 449 (未知ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼) 所有ã®[OBJECTFROMNAME]ã‹ã‚‰ã€ã‚ãªãŸã«[OBJECTNAME]ã¨ã„ã†[OBJECTTYPE]ãŒé€ã‚‰ã‚Œã¦ãã¾ã—ãŸã€‚
453 </message> 450 </message>
454 <option name="Keep"> 451 <option name="Keep">
455 ç¶­æŒ 452 å—ã‘å–ã‚‹
456 </option> 453 </option>
457 <option name="Discard"> 454 <option name="Discard">
458 破棄 455 破棄
459 </option> 456 </option>
460 <option name="Mute"> 457 <option name="Mute">
461 ミュート 458 無視リストã¸
462 </option> 459 </option>
463 </notify> 460 </notify>
464 <notify name="UserGiveItem"> 461 <notify name="UserGiveItem">
465 <message name="message"> 462 <message name="message">
466 [NAME]ã¯ã€ã‚ãªãŸã«[OBJECTNAME]ã¨ã„ã†åå‰ã®[OBJECTTYPE]を与ãˆã¾ã—ãŸã€‚ 463 [NAME]ã¯ã€ã‚ãªãŸã«[OBJECTNAME]ã¨ã„ã†åå‰ã®[OBJECTTYPE]を渡ãã¾ã—ãŸã€‚
467 </message> 464 </message>
468 <option name="Keep"> 465 <option name="Keep">
469 ç¶­æŒ 466 å—ã‘å–ã‚‹
470 </option> 467 </option>
471 <option name="Discard"> 468 <option name="Discard">
472 破棄 469 破棄
473 </option> 470 </option>
474 <option name="Mute"> 471 <option name="Mute">
475 ミュート 472 無視リストã¸
476 </option> 473 </option>
477 </notify> 474 </notify>
478 <notify name="GodMessage"> 475 <notify name="GodMessage">
@@ -492,13 +489,12 @@
492 辞退 489 辞退
493 </option> 490 </option>
494 <option name="Info"> 491 <option name="Info">
495 インフォ 492 情報
496 </option> 493 </option>
497 </notify> 494 </notify>
498 <notify name="JoinGroupOfficerNoFee"> 495 <notify name="JoinGroupOfficerNoFee">
499 <message name="message"> 496 <message name="message">
500 [NAME]ã¯ã€ã‚ãªãŸã‚’オフィサー 497 [NAME]ã¯ã€ã‚ãªãŸã‚’オフィサーã¨ã—ã¦ã‚°ãƒ«ãƒ¼ãƒ—ã«æ‹›å¾…ã—ã¦ã„ã¾ã™ã€‚
501ã¨ã—ã¦ã‚°ãƒ«ãƒ¼ãƒ—ã«æ‹›å¾…ã—ã¦ã„ã¾ã™ã€‚
502å‚加費用ã¯ã‹ã‹ã‚Šã¾ã›ã‚“。 498å‚加費用ã¯ã‹ã‹ã‚Šã¾ã›ã‚“。
503 499
504[MESSAGE] 500[MESSAGE]
@@ -510,14 +506,13 @@
510 辞退 506 辞退
511 </option> 507 </option>
512 <option name="Info"> 508 <option name="Info">
513 インフォ 509 情報
514 </option> 510 </option>
515 </notify> 511 </notify>
516 <notify name="JoinGroupMember"> 512 <notify name="JoinGroupMember">
517 <message name="message"> 513 <message name="message">
518 [NAME]ã¯ã€ã‚ãªãŸã‚’一般メンãƒãƒ¼ã¨ã—ã¦ã‚°ãƒ«ãƒ¼ãƒ—ã«æ‹›å¾…ã—ã¦ã„ã¾ã™ã€‚ 514 [NAME]ã¯ã€ã‚ãªãŸã‚’一般メンãƒãƒ¼ã¨ã—ã¦ã‚°ãƒ«ãƒ¼ãƒ—ã«æ‹›å¾…ã—ã¦ã„ã¾ã™ã€‚
519グループã¸ã®å‚加費用ã¯L$[COST] 515グループã¸ã®å‚加費用ã¯L$[COST]ã§ã™ã€‚
520ã§ã™ã€‚
521[MESSAGE] 516[MESSAGE]
522 </message> 517 </message>
523 <option name="Join"> 518 <option name="Join">
@@ -527,7 +522,7 @@
527 辞退 522 辞退
528 </option> 523 </option>
529 <option name="Info"> 524 <option name="Info">
530 インフォ 525 情報
531 </option> 526 </option>
532 </notify> 527 </notify>
533 <notify name="JoinGroupMemberNoFee"> 528 <notify name="JoinGroupMemberNoFee">
@@ -544,13 +539,12 @@
544 辞退 539 辞退
545 </option> 540 </option>
546 <option name="Info"> 541 <option name="Info">
547 インフォ 542 情報
548 </option> 543 </option>
549 </notify> 544 </notify>
550 <notify name="OfferTeleport"> 545 <notify name="OfferTeleport">
551 <message name="message"> 546 <message name="message">
552 [NAME]ã¯ã‚ãªãŸã‚’テレãƒãƒ¼ãƒˆ 547 [NAME]ã¯ã‚ãªãŸã‚’テレãƒãƒ¼ãƒˆã§å‘¼ã³å¯„ã›ã‚ˆã†ã¨ã—ã¦ã„ã¾ã™ï¼š
553ã§å‘¼ã³å¯„ã›ã‚ˆã†ã¨ã—ã¦ã„ã¾ã™ï¼š
554 548
555[MESSAGE] 549[MESSAGE]
556 </message> 550 </message>
@@ -575,7 +569,7 @@
575 </notify> 569 </notify>
576 <notify name="OfferFriendship"> 570 <notify name="OfferFriendship">
577 <message name="message"> 571 <message name="message">
578 [NAME]ã¯ã€ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚’è´ˆã£ã¦ã„ã¾ã™ã€‚ 572 [NAME]ã¯ã€ãƒ•ãƒ¬ãƒ³ãƒ‰ 登録を申ã—込んã§ã„ã¾ã™ã€‚
579 573
580[MESSAGE] 574[MESSAGE]
581 575
@@ -590,7 +584,7 @@
590 </notify> 584 </notify>
591 <notify name="OfferFriendshipNoMessage"> 585 <notify name="OfferFriendshipNoMessage">
592 <message name="message"> 586 <message name="message">
593 [NAME]ã¯ã€ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒã‚’è´ˆã£ã¦ã„ã¾ã™ã€‚ 587 [NAME]ã¯ã€ãƒ•ãƒ¬ãƒ³ãƒ‰ 登録を申ã—込んã§ã„ã¾ã™ã€‚
594 588
595(デフォルトã§ãŠäº’ã„ã®ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ãƒ»ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’見るã“ã¨ãŒã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚) 589(デフォルトã§ãŠäº’ã„ã®ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ãƒ»ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’見るã“ã¨ãŒã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚)
596 </message> 590 </message>
@@ -603,17 +597,17 @@
603 </notify> 597 </notify>
604 <notify name="FriendshipAccepted"> 598 <notify name="FriendshipAccepted">
605 <message name="message"> 599 <message name="message">
606 [NAME]ã¯ã€ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒ—ã‚’å—ã‘入れã¾ã—ãŸã€‚ 600 [NAME]ã¯ã€ãƒ•ãƒ¬ãƒ³ãƒ‰ 登録をå—ã‘入れã¾ã—ãŸã€‚
607 </message> 601 </message>
608 </notify> 602 </notify>
609 <notify name="FriendshipDeclined"> 603 <notify name="FriendshipDeclined">
610 <message name="message"> 604 <message name="message">
611 [NAME]ã¯ã€ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒ—ã‚’æ–­ã‚Šã¾ã—ãŸã€‚ 605 [NAME]ã¯ã€ãƒ•ãƒ¬ãƒ³ãƒ‰ 登録を断りã¾ã—ãŸã€‚
612 </message> 606 </message>
613 </notify> 607 </notify>
614 <notify name="OfferCallingCard"> 608 <notify name="OfferCallingCard">
615 <message name="message"> 609 <message name="message">
616 [FIRST] [LAST]ãŒã‚³ãƒ¼ãƒªãƒ³ã‚°ãƒ»ã‚«ãƒ¼ãƒ‰ã‚’è´ˆã£ã¦ã„ã¾ã™ã€‚ 610 [FIRST] [LAST]ãŒã‚³ãƒ¼ãƒªãƒ³ã‚°ãƒ»ã‚«ãƒ¼ãƒ‰ã‚’é€ã£ã¦ãã¦ã„ã¾ã™ã€‚
617ã“ã‚Œã«ã‚ˆã‚Šã€ã‚ãªãŸã®æŒã¡ç‰©ã«ãƒ–ックマークãŒè¿½åŠ ã•ã‚Œã€ 611ã“ã‚Œã«ã‚ˆã‚Šã€ã‚ãªãŸã®æŒã¡ç‰©ã«ãƒ–ックマークãŒè¿½åŠ ã•ã‚Œã€
618ã“ã®ä½äººã«ã™ã°ã‚„ãIMã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 612ã“ã®ä½äººã«ã™ã°ã‚„ãIMã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
619 </message> 613 </message>
@@ -626,14 +620,14 @@
626 </notify> 620 </notify>
627 <notify name="RegionRestartMinutes"> 621 <notify name="RegionRestartMinutes">
628 <message name="message"> 622 <message name="message">
629 ã“ã®åœ°åŸŸã¯[MINUTES]分後ã«ãƒªã‚¹ã‚¿ãƒ¼ãƒˆã•ã‚Œã¾ã™ã€‚ 623 ã“ã®åœ°åŸŸã¯[MINUTES]分後ã«å†èµ·å‹•ã•ã‚Œã¾ã™ã€‚
630ã“ã®åœ°åŸŸã®å¤–ã«å‡ºãªã„ã¨ã€å¼·åˆ¶ãƒ­ã‚°ã‚¢ã‚¦ãƒˆã«ãªã‚Šã¾ã™ã€‚ 624強制ログアウトã¨ãªã‚Šã¾ã™ã®ã§ãã“ã®åœ°åŸŸã®å¤–ã«å‡ºã¦ãã ã•ã„ã€
631 </message> 625 </message>
632 </notify> 626 </notify>
633 <notify name="RegionRestartSeconds"> 627 <notify name="RegionRestartSeconds">
634 <message name="message"> 628 <message name="message">
635 ã“ã®åœ°åŸŸã¯[SECONDS]秒後ã«ãƒªã‚¹ã‚¿ãƒ¼ãƒˆã•ã‚Œã¾ã™ã€‚ 629 ã“ã®åœ°åŸŸã¯[SECONDS]秒後ã«å†èµ·å‹•ã•ã‚Œã¾ã™ã€‚
636ã“ã®åœ°åŸŸã®å¤–ã«å‡ºãªã„ã¨ã€å¼·åˆ¶ãƒ­ã‚°ã‚¢ã‚¦ãƒˆã«ãªã‚Šã¾ã™ã€‚ 630強制ログアウトã¨ãªã‚Šã¾ã™ã®ã§ãã“ã®åœ°åŸŸã®å¤–ã«å‡ºã¦ãã ã•ã„ã€
637 </message> 631 </message>
638 </notify> 632 </notify>
639 <notify name="LoadWebPage"> 633 <notify name="LoadWebPage">
@@ -699,7 +693,7 @@
699 </notify> 693 </notify>
700 <notify name="AttachToYourAvatar"> 694 <notify name="AttachToYourAvatar">
701 <message name="message"> 695 <message name="message">
702 ã‚ãªãŸã®ã‚¢ãƒã‚¿ãƒ¼ã«æ·»ä»˜ 696 ã‚ãªãŸã®ã‚¢ãƒã‚¿ãƒ¼ã«è£…ç€
703 </message> 697 </message>
704 </notify> 698 </notify>
705 <notify name="ReleaseOwnership"> 699 <notify name="ReleaseOwnership">
@@ -746,7 +740,7 @@
746 ã„ã„㈠740 ã„ã„ãˆ
747 </option> 741 </option>
748 <option name="Mute"> 742 <option name="Mute">
749 ミュート 743 無視リストã«è¿½åŠ 
750 </option> 744 </option>
751 </notify> 745 </notify>
752 <notify name="ScriptQuestionCautionChatGranted"> 746 <notify name="ScriptQuestionCautionChatGranted">
@@ -769,7 +763,7 @@
769 &apos;[OBJECTNAME]&apos;ãŒæ‰€æœ‰ã™ã‚‹ã‚ªãƒ–ジェクト&apos;[NAME]&apos;ã¯ã€æ¬¡ã®ã“ã¨ã‚’求ã‚ã¦ã„ã¾ã™ï¼š 763 &apos;[OBJECTNAME]&apos;ãŒæ‰€æœ‰ã™ã‚‹ã‚ªãƒ–ジェクト&apos;[NAME]&apos;ã¯ã€æ¬¡ã®ã“ã¨ã‚’求ã‚ã¦ã„ã¾ã™ï¼š
770 764
771[QUESTIONS] 765[QUESTIONS]
772ã“ã®ã‚ªãƒ–ジェクトã¨åˆ¶ä½œè€…ã‚’ã€ã‚ãªãŸãŒä¿¡ç”¨ã—ãªã„å ´åˆã¯ã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’æ‹’å¦ã—ã¦ãã ã•ã„。追加情報ã¯ã€è©³ç´°ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ãã ã•ã„。 766ã“ã®ã‚ªãƒ–ジェクトã¨åˆ¶ä½œè€…ãŒä¿¡ç”¨ã§ããªã„å ´åˆã¯ã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’æ‹’å¦ã—ã¦ãã ã•ã„。追加情報ã¯ã€è©³ç´°ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ãã ã•ã„。
773 767
774ã“ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’許å¯ã—ã¾ã™ã‹ï¼Ÿ 768ã“ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’許å¯ã—ã¾ã™ã‹ï¼Ÿ
775 </message> 769 </message>
@@ -803,17 +797,15 @@
803 </notify> 797 </notify>
804 <notify name="FirstBalanceIncrease"> 798 <notify name="FirstBalanceIncrease">
805 <message name="message"> 799 <message name="message">
806 今ã€L$[AMOUNT]ã‚’å—ã‘å–ã‚Šã¾ã—ãŸã€‚ 800 L$[AMOUNT]ã‚’å—ã‘å–ã‚Šã¾ã—ãŸã€‚
807オブジェクトã¨ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚ãªãŸã«ãŠé‡‘を払ㆠ801オブジェクトãŠã‚ˆã³ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚ãªãŸã«ãŠé‡‘を支払ã£ãŸã‚ˆã†ã§ã™ã€‚
808ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。ã‚ãªãŸã®æ®‹é«˜ã¯ 802ã‚ãªãŸã®æ®‹é«˜ã¯ç”»é¢ã®å³ä¸Šã«è¡¨ç¤ºã•ã‚Œã¦ ã„ã¾ã™ã€‚
809ç”»é¢ã®å³ä¸Šã«è¡¨ç¤ºã•ã‚Œã¦ã„ã¾ã™ã€‚
810 </message> 803 </message>
811 </notify> 804 </notify>
812 <notify name="FirstBalanceDecrease"> 805 <notify name="FirstBalanceDecrease">
813 <message name="message"> 806 <message name="message">
814 今ã€L$[AMOUNT]を支払ã„ã¾ã—ãŸã€‚ 807 L$[AMOUNT]を支払ã„ã¾ã—ãŸã€‚
815ã‚ãªãŸã®æ®‹é«˜ã¯ç”»é¢ã®å³ä¸Šã« 808ã‚ãªãŸã®æ®‹é«˜ã¯ç”»é¢ã®å³ä¸Šã«è¡¨ç¤ºã•ã‚Œã¦ ã„ã¾ã™ã€‚
816表示ã•ã‚Œã¦ã„ã¾ã™ã€‚
817 </message> 809 </message>
818 </notify> 810 </notify>
819 <notify name="FirstSit"> 811 <notify name="FirstSit">
@@ -850,49 +842,47 @@
850 <notify name="FirstTeleport"> 842 <notify name="FirstTeleport">
851 <message name="message"> 843 <message name="message">
852 ã“ã®åœ°åŸŸã§ã¯ã€ãƒã‚¤ãƒ³ãƒˆé–“ã®ãƒ†ãƒ¬ãƒãƒ¼ãƒˆãŒèªã‚られã¦ã„ã¾ã›ã‚“ã®ã§ã€æœ€ã‚‚è¿‘ã„テレãƒãƒ–周辺ã«ç§»å‹•ã—ã¾ã—ãŸã€‚ 844 ã“ã®åœ°åŸŸã§ã¯ã€ãƒã‚¤ãƒ³ãƒˆé–“ã®ãƒ†ãƒ¬ãƒãƒ¼ãƒˆãŒèªã‚られã¦ã„ã¾ã›ã‚“ã®ã§ã€æœ€ã‚‚è¿‘ã„テレãƒãƒ–周辺ã«ç§»å‹•ã—ã¾ã—ãŸã€‚
853ã‚ãªãŸã®ç›®çš„地ã¯ã€å¤§ããªãƒ“ーコンã§æ¨™ã•ã‚Œã¦ã„ã¾ã™ã€‚赤ã„矢å°ã«ç¶šã„ã¦é€²ã‚€ã¨ãƒ“ーコンã¸è¾¿ã‚Šç€ãã¾ã™ã€‚ 845ã‚ãªãŸã®ç›®çš„地ã¯ã€å¤§ããªæ¨™è­˜ï¼ˆãƒ“ーコン)ã§è¡¨ç¤ºã•ã‚Œã¦ã„ã¾ã™ã€‚赤ã„矢å°ã«å‘ã‹ã£ã¦é€²ã‚€ã¨æ¨™è­˜ï¼ˆãƒ“ーコン)ã¸è¾¿ã‚Šç€ãã¾ã™ã€‚
854矢å°ã‚’クリックã™ã‚‹ã¨ãƒ“ーコンを消ã›ã¾ã™ 846矢å°ã‚’クリックã™ã‚‹ã¨æ¨™è­˜ï¼ˆãƒ“ーコン)を消ã›ã¾ã™
855 </message> 847 </message>
856 </notify> 848 </notify>
857 <notify name="FirstOverrideKeys"> 849 <notify name="FirstOverrideKeys">
858 <message name="message"> 850 <message name="message">
859 ã‚ãªãŸã®ç§»å‹•ã‚­ãƒ¼ã‚’オブジェクトãŒæ“作ã—ã¦ã„ã¾ã™ã€‚ 851 ã‚ãªãŸã®ç§»å‹•ã‚­ãƒ¼ã‚’オブジェクトãŒæ“作ã—ã¦ã„ã¾ã™ã€‚
860矢å°ã‹AWSDã®ã‚­ãƒ¼ã§å‹•ä½œã‚’確èªã—ã¦ãã ã•ã„。 852矢å°ã‹AWSDã®ã‚­ãƒ¼ã§å‹•ä½œã‚’確èªã—ã¦ãã ã•ã„。
861銃ãªã©ã®ã‚ªãƒ–ジェクトã ã¨ã€ãƒžã‚¦ã‚¹ãƒ«ãƒƒã‚¯ã«ç§»è¡Œã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ 853銃ãªã©ã®ã‚ªãƒ–ジェクトã ã¨ã€ä¸€äººç§°è¦–点(マウスルック)ã«å¤‰æ›´ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚
862Mキーを押ã—ã¦ç§»è¡Œã—ã¾ã™ã€‚ 854Mキーを押ã—ã¦å¤‰æ›´ã—ã¾ã™ã€‚
863 </message> 855 </message>
864 </notify> 856 </notify>
865 <notify name="FirstAppearance"> 857 <notify name="FirstAppearance">
866 <message name="message"> 858 <message name="message">
867 ã‚ãªãŸã¯å®¹å§¿ã‚’編集中ã§ã™ã€‚ 859 ã‚ãªãŸã¯å®¹å§¿ã‚’編集中ã§ã™ã€‚
868回転ã€ã‚ºãƒ¼ãƒ ã™ã‚‹ã«ã¯çŸ¢å°ã‚­ãƒ¼ã‚’使ã„ã¾ã™ã€‚ 860回転ã€ã‚ºãƒ¼ãƒ ã™ã‚‹ã«ã¯çŸ¢å°ã‚­ãƒ¼ã‚’使ã„ã¾ã™ã€‚
869編集ãŒçµ‚ã‚ã£ãŸã‚‰[å…¨ã¦ã‚’ä¿å­˜]をクリックã—㦠861編集ãŒçµ‚ã‚ã£ãŸã‚‰[ã™ã¹ã¦ä¿å­˜]をクリックã—ã¦å®¹å§¿ã‚’ä¿å­˜ã—ã€çµ‚了ã—ã¾ã™ã€‚
870容姿をä¿å­˜ã—ã€çµ‚了ã—ã¾ã™ã€‚
871容姿ã®ç·¨é›†ã¯ä½•åº¦ã§ã‚‚è¡Œãˆã¾ã™ã€‚ 862容姿ã®ç·¨é›†ã¯ä½•åº¦ã§ã‚‚è¡Œãˆã¾ã™ã€‚
872 </message> 863 </message>
873 </notify> 864 </notify>
874 <notify name="FirstInventory"> 865 <notify name="FirstInventory">
875 <message name="message"> 866 <message name="message">
876 ã“ã‚Œã¯ã€ã‚ªãƒ–ジェクトã€ãƒŽãƒ¼ãƒˆã‚«ãƒ¼ãƒ‰ã€æœã€ãã®ä»–ã®æ‰€æœ‰ç‰©ãŒã™ã¹ã¦å…¥ã£ãŸæŒã¡ç‰©ã§ã™ã€‚ 867 ã“ã‚Œã¯ã€ã‚ªãƒ–ジェクトã€ãƒŽãƒ¼ãƒˆã‚«ãƒ¼ãƒ‰ã€æœã€ãã®ä»–ã‚ãªãŸã®æ‰€æœ‰ç‰©ãŒã™ã¹ã¦å…¥ã£ãŸã€ŒæŒã¡ç‰©ã€ã§ã™ã€‚
877*オブジェクトやæœè£…フォルダを装ç€ã™ã‚‹ã«ã¯ã€ãƒžã‚¦ã‚¹ã§ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¾ã™ã€‚ 868ƒžã¦ã‚¹ã§ã‚¢ãƒã‚¿ãƒ¼ã«ã‚ªãƒ–ジェクトやæœè£…フォルダをドラッグã—ã¦è£…ç€ã—ã¾ã™ã€‚
878*オブジェクトを世界ã«æŒã¡è¾¼ã‚€ã«ã¯ã€åœ°é¢ã®ä¸Šã«ãƒ‰ãƒ©ãƒƒã‚°ãã¾ã™ã€‚ 869*オブジェクトを地é¢ã®ä¸Šã«ãƒ‰ãƒ©ãƒƒã‚°ãã‚‹ã¨ã€å‘¨å›²ã®ä¸–ç•Œã«è¡¨ç¤ºã•ã›ã¾ã™ã€‚(Rez)
879*ノートカードを読むã«ã¯ã€ãƒ€ãƒ–ルクリックã—ã¾ã™ã€‚ 870*ノートカードを読むã«ã¯ã€ãƒ€ãƒ–ルクリックã—ã¾ã™ã€‚
880 </message> 871 </message>
881 </notify> 872 </notify>
882 <notify name="FirstSandbox"> 873 <notify name="FirstSandbox">
883 <message name="message"> 874 <message name="message">
884 ã“ã“ã¯ã‚µãƒ³ãƒ‰ãƒœãƒƒã‚¯ã‚¹ã§ã™ã€‚ 875 ã“ã“ã¯ã‚µãƒ³ãƒ‰ãƒœãƒƒã‚¯ã‚¹ã§ã™ã€‚
885ã‚ãªãŸãŒã“ã“ã§ä½œã£ãŸã‚ªãƒ–ジェクトã¯ã‚ãªãŸãŒ 876ã‚ãªãŸãŒã“ã“ã§ä½œã£ãŸã‚ªãƒ–ジェクトã¯ã‚ãªãŸãŒç«‹ã¡åŽ»ã£ãŸå¾Œã€å‰Šé™¤ã•ã‚Œã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。サンドボックスã¯å®šæœŸçš„ã«æ¸…掃ã•ã‚Œã¾ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ã€ç”»é¢ä¸Šéƒ¨ã€åœ°åŸŸåã®éš£ã®æƒ…報をå‚ç…§ã—ã¦ãã ã•ã„。
886ç«‹ã¡åŽ»ã£ãŸå¾Œã€å‰Šé™¤ã•ã‚Œã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。サンドボックスã¯å®šæœŸçš„ã«æ¸…掃ã•ã‚Œã¾ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ã€ç”»é¢ä¸Šéƒ¨ã€åœ°åŸŸåã®éš£ã®æƒ…報をå‚ç…§ã—ã¦ãã ã•ã„。
887 877
888サンドボックスã¯ä¸€èˆ¬çš„ã§ãªãã€ç›®å°ã®ã‚µã‚¤ãƒ³ãŒã¤ã„ã¦ã„ã¾ã™ã€‚. 878サンドボックスã¯ç‰¹åˆ¥ãªã‚¨ãƒªã‚¢ã§ã€ç›®å°ã®ã‚µã‚¤ãƒ³ãŒã¤ã„ã¦ã„ã¾ã™ã€‚
889 </message> 879 </message>
890 </notify> 880 </notify>
891 <notify name="FirstFlexible"> 881 <notify name="FirstFlexible">
892 <message name="message"> 882 <message name="message">
893 ã“ã®ã‚ªãƒ–ジェクト㯠フレキシブルã§ã™ã€‚ 883 ã“ã®ã‚ªãƒ–ジェクト㯠フレキシブルã§ã™ã€‚
894フレキシブル・ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã®ãƒã‚§ãƒƒã‚¯ãŒå¤–ã•ã‚Œã‚‹ã¾ã§ã¯ã€ã‚ªãƒ–ジェクト㯠884フレキシブル・ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã®ãƒã‚§ãƒƒã‚¯ãŒå¤–ã•ã‚Œã‚‹ã¾ã§ã¯ã€
895物ç†çš„ã§ãªãファントムã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 885オブジェクトã¯ç‰©ç†çš„ã§ãªãファントムã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。
896 </message> 886 </message>
897 </notify> 887 </notify>
898 <notify name="FirstDebugMenus"> 888 <notify name="FirstDebugMenus">
@@ -904,9 +894,9 @@ Mキーを押ã—ã¦ç§»è¡Œã—ã¾ã™ã€‚
904 </notify> 894 </notify>
905 <notify name="FirstSculptedPrim"> 895 <notify name="FirstSculptedPrim">
906 <message name="message"> 896 <message name="message">
907 変形ãã‚ŒãŸãƒ—リムを編集ã—ã¦ã„ã¾ã™ã€‚ 897 スカルプトプリムを編集ã—ã¦ã„ã¾ã™ã€‚
908変形ãã‚ŒãŸãƒ—リムã¯ã€å½¢çŠ¶ã‚’指定ã™ã‚‹ãŸã‚ã®ç‰¹åˆ¥ãªãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ãŒå¿…è¦ã§ã™ã€‚ 898スカルプトプリムã¯ã€å½¢çŠ¶ã‚’指定ã™ã‚‹ãŸã‚ã®ç‰¹åˆ¥ãªãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ãŒå¿…è¦ã§ã™ã€‚
909æŒã¡ç‰©ãƒ©ã‚¤ãƒ–ラリã§ã€å¤‰å½¢ãã‚ŒãŸãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ¼ã®ã‚µãƒ³ãƒ—ルをå‚ç…§ã§ãã¾ã™ã€‚ 899æŒã¡ç‰©ãƒ©ã‚¤ãƒ–ラリã§ã€ã‚¹ã‚«ãƒ«ãƒ—トテクスãƒãƒ£ãƒ¼ã®ã‚µãƒ³ãƒ—ルをå‚ç…§ã§ãã¾ã™ã€‚
910 </message> 900 </message>
911 </notify> 901 </notify>
912 <notify name="FirstMedia"> 902 <notify name="FirstMedia">
@@ -916,8 +906,7 @@ Mキーを押ã—ã¦ç§»è¡Œã—ã¾ã™ã€‚
916 </notify> 906 </notify>
917 <notify name="MaxListSelectMessage"> 907 <notify name="MaxListSelectMessage">
918 <message name="message"> 908 <message name="message">
919 ã“ã®ãƒªã‚¹ãƒˆã‹ã‚‰ã€ [MAX_SELECT] 個ã¾ã§ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’ 909 ã“ã®ãƒªã‚¹ãƒˆã‹ã‚‰ã€ [MAX_SELECT] 個ã¾ã§ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžã§ãã¾ã™ã€‚
920é¸æŠžã§ãã¾ã™ã€‚
921 </message> 910 </message>
922 </notify> 911 </notify>
923 <notify name="VoiceInviteP2P"> 912 <notify name="VoiceInviteP2P">
@@ -937,17 +926,17 @@ Mキーを押ã—ã¦ç§»è¡Œã—ã¾ã™ã€‚
937 </notify> 926 </notify>
938 <notify name="AutoUnmuteByIM"> 927 <notify name="AutoUnmuteByIM">
939 <message name="message"> 928 <message name="message">
940 [FIRST] [LAST]ã«ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ãƒˆãƒ»ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒé€ä¿¡ã•ã‚Œã€ãƒŸãƒ¥ãƒ¼ãƒˆãŒè‡ªå‹•çš„ã«è§£é™¤ã•ã‚Œã¾ã—ãŸã€‚ 929 [FIRST] [LAST]ã«ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ãƒˆãƒ»ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒé€ä¿¡ã•ã‚Œã€ 無視設定ãŒè‡ªå‹•çš„ã«è§£é™¤ã•ã‚Œã¾ã—ãŸã€‚
941 </message> 930 </message>
942 </notify> 931 </notify>
943 <notify name="AutoUnmuteByMoney"> 932 <notify name="AutoUnmuteByMoney">
944 <message name="message"> 933 <message name="message">
945 [FIRST] [LAST]ã«ãŠé‡‘ãŒä¸Žãˆã‚‰ã‚Œã€ãƒŸãƒ¥ãƒ¼ãƒˆãŒè‡ªå‹•çš„ã«è§£é™¤ã•ã‚Œã¾ã—ãŸã€‚ 934 [FIRST] [LAST]ã«ãŠé‡‘を渡ããŸãŸã〠無視設定ãŒè‡ªå‹•çš„ã«è§£é™¤ã•ã‚Œã¾ã—ãŸã€‚
946 </message> 935 </message>
947 </notify> 936 </notify>
948 <notify name="AutoUnmuteByInventory"> 937 <notify name="AutoUnmuteByInventory">
949 <message name="message"> 938 <message name="message">
950 [FIRST] [LAST]ã«æŒã¡ç‰©ãŒä¸Žãˆã‚‰ã‚Œã€ãƒŸãƒ¥ãƒ¼ãƒˆãŒè‡ªå‹•çš„ã«è§£é™¤ã•ã‚Œã¾ã—ãŸã€‚ 939 [FIRST] [LAST]ã«æŒã¡ç‰©ã‚’渡ããŸãŸã〠無視設定ãŒè‡ªå‹•çš„ã«è§£é™¤ã•ã‚Œã¾ã—ãŸã€‚
951 </message> 940 </message>
952 </notify> 941 </notify>
953 <notify name="VoiceInviteGroup"> 942 <notify name="VoiceInviteGroup">
@@ -1062,7 +1051,7 @@ Mキーを押ã—ã¦ç§»è¡Œã—ã¾ã™ã€‚
1062 </notify> 1051 </notify>
1063 <notify name="ServerVersionChanged"> 1052 <notify name="ServerVersionChanged">
1064 <message name="message"> 1053 <message name="message">
1065 入力ã—ãŸåœ°åŸŸã¯ç•°ãªã‚‹ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚¿ãƒ¼ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§å®Ÿè¡Œã•ã‚Œã¦ã„ã¾ã™ã€‚ 詳細ã«ã¤ã„ã¦ã¯ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’クリックã—ã¦ãã ã•ã„。 1054 到ç€ã—ãŸåœ°åŸŸã¯ç•°ãªã‚‹ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚¿ãƒ¼ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§å®Ÿè¡Œã•ã‚Œã¦ã„ã¾ã™ã€‚ 詳細ã«ã¤ã„ã¦ã¯ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’クリックã—ã¦ãã ã•ã„。
1066 </message> 1055 </message>
1067 </notify> 1056 </notify>
1068 <notify name="UnableToOpenCommandURL"> 1057 <notify name="UnableToOpenCommandURL">
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_audio.xml b/linden/indra/newview/skins/default/xui/ja/panel_audio.xml
index 3b3227b..ceb667f 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_audio.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_audio.xml
@@ -6,6 +6,6 @@
6 <slider label="メディア" name="Media Volume" label_width="80" /> 6 <slider label="メディア" name="Media Volume" label_width="80" />
7 <slider label="ボイス" name="Voice Volume" label_width="80" /> 7 <slider label="ボイス" name="Voice Volume" label_width="80" />
8 <slider label="サウンド" name="SFX Volume" label_width="80" /> 8 <slider label="サウンド" name="SFX Volume" label_width="80" />
9 <slider label="アンビエント" name="Wind Volume" label_width="80" /> 9 <slider label="風ã®éŸ³é‡" name="Wind Volume" label_width="80" />
10 <slider label="UI" name="UI Volume" label_width="80" /> 10 <slider label="UI" name="UI Volume" label_width="80" />
11</panel> 11</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_avatar.xml b/linden/indra/newview/skins/default/xui/ja/panel_avatar.xml
index 04f802a..8b04d32 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_avatar.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_avatar.xml
@@ -20,7 +20,7 @@
20 Linden Lab従業員 20 Linden Lab従業員
21 </string> 21 </string>
22 <string name="PaymentInfoUsed"> 22 <string name="PaymentInfoUsed">
23 使用ã™ã‚‹æ”¯æ‰•ã„情報 23 支払ã„情報登録済
24 </string> 24 </string>
25 <string name="PaymentInfoOnFile"> 25 <string name="PaymentInfoOnFile">
26 支払ã„情報登録済㿠26 支払ã„情報登録済ã¿
@@ -70,17 +70,17 @@
70 <text name="Give item:"> 70 <text name="Give item:">
71 å“目を贈る: 71 å“目を贈る:
72 </text> 72 </text>
73 <text name="Give inventory" tool_tip="ã“ã®äººã«æŒã¡ç‰©å“目を与ãˆã‚‹ã«ã¯ã€ã“ã“ã«ãƒ‰ãƒ­ãƒƒãƒ—ã—ã¾ã™"> 73 <text name="Give inventory" tool_tip="ã“ã“ã«ç‰©å“目をドロップã—ã¦ã“ã®äººã«è´ˆã‚Šã¾ã™">
74 æŒã¡ç‰©ã‚¢ã‚¤ãƒ†ãƒ ã‚’ã“ã“ã«ãƒ‰ãƒ­ãƒƒãƒ—ã—ã¾ã™ 74 æŒã¡ç‰©ã‚¢ã‚¤ãƒ†ãƒ ã‚’ã“ã“ã«ãƒ‰ãƒ­ãƒƒãƒ—ã—ã¾ã™
75 </text> 75 </text>
76 <check_box label="検索ã«è¡¨ç¤º" name="allow_publish" tool_tip="検索ã§ã€è©³ç´°ã‚„イメージãªã©ã•ã‚‰ãªã‚‹ãƒ—ロフィール情報を公開ã™ã‚‹ã€‚"/> 76 <check_box label="検索ã«è¡¨ç¤º" name="allow_publish" tool_tip="検索ã§ã€è©³ç´°ã‚„イメージãªã©ã•ã‚‰ãªã‚‹ãƒ—ロフィール情報を公開ã™ã‚‹ã€‚"/>
77 <button label="?" label_selected="?" name="?"/> 77 <button label="?" label_selected="?" name="?"/>
78 <button label="地図上ã§æ¤œç´¢" label_selected="地図上ã§æ¤œç´¢" name="Find on Map"/> 78 <button label="地図上ã§æ¤œç´¢" label_selected="地図上ã§æ¤œç´¢" name="Find on Map"/>
79 <button label="テレãƒãƒ¼ãƒˆã‚’贈る..." label_selected="テレãƒãƒ¼ãƒˆã‚’贈る..." name="Offer Teleport..."/> 79 <button label="テレãƒãƒ¼ãƒˆã‚’贈る" label_selected="テレãƒãƒ¼ãƒˆã‚’贈る" name="Offer Teleport..."/>
80 <button label="フレンドを追加..." label_selected="フレンドを追加..." name="Add Friend..."/> 80 <button label="フレンドを追加" label_selected="フレンドを追加" name="Add Friend..."/>
81 <button label="支払ã„..." label_selected="支払ã„..." name="Pay..."/> 81 <button label="支払ã" label_selected="支払ã" name="Pay..."/>
82 <button label="インスタント・メッセージ..." label_selected="インスタント・メッセージ..." name="Instant Message..." tool_tip="インスタント メッセージ (IM)"/> 82 <button label="ï½²ï¾ï½½ï¾€ï¾ï¾„・メッセージ" label_selected="ï½²ï¾ï½½ï¾€ï¾ï¾„・メッセージ" name="Instant Message..." tool_tip="インスタント・メッセージ (IM)"/>
83 <button label="ミュート" label_selected="ミュート" name="Mute"/> 83 <button label="無視ãã‚‹" label_selected="無視ãã‚‹" name="Mute"/>
84 </panel> 84 </panel>
85 <panel label="ウェブ" name="WebProfile"> 85 <panel label="ウェブ" name="WebProfile">
86 <flyout_button label="ロード" label_selected="ロード" name="load" tool_tip="プロファイル・ページを内蔵ブラウザーã§ãƒ­ãƒ¼ãƒ‰ã—ã¾ã™ã€‚"> 86 <flyout_button label="ロード" label_selected="ロード" name="load" tool_tip="プロファイル・ページを内蔵ブラウザーã§ãƒ­ãƒ¼ãƒ‰ã—ã¾ã™ã€‚">
@@ -95,33 +95,33 @@
95 <check_box label="ウェブ・プロフィール自動ロード" name="auto_load" tool_tip="プロフィールã«ã‚ã‚‹ã™ã¹ã¦ã®ã‚¦ã‚§ãƒ–・ページを確èªãªã—ã§è‡ªå‹•çš„ã«ãƒ­ãƒ¼ãƒ‰ã™ã‚‹"/> 95 <check_box label="ウェブ・プロフィール自動ロード" name="auto_load" tool_tip="プロフィールã«ã‚ã‚‹ã™ã¹ã¦ã®ã‚¦ã‚§ãƒ–・ページを確èªãªã—ã§è‡ªå‹•çš„ã«ãƒ­ãƒ¼ãƒ‰ã™ã‚‹"/>
96 </panel> 96 </panel>
97 <panel label="興味" name="Interests"> 97 <panel label="興味" name="Interests">
98 <text name="I Want To:"> 98 <text name="I Want To:" width="74">
99 ã—ãŸã„ã“ã¨ï¼š 99 ã—ãŸã„ã“ã¨ï¼š
100 </text> 100 </text>
101 <check_box label="作æˆã™ã‚‹" name="chk0"/> 101 <check_box label="作æˆ" name="chk0"/>
102 <check_box label="探検ã™ã‚‹" name="chk1"/> 102 <check_box label="探検" name="chk1"/>
103 <check_box label="会ã" name="chk2"/> 103 <check_box label="出会ã" name="chk2"/>
104 <check_box label="雇用ã•ã‚Œã‚‹" name="chk6"/> 104 <check_box label="å°±è·" name="chk6"/>
105 <check_box label="グループ" name="chk3"/> 105 <check_box label="グループ" name="chk3"/>
106 <check_box label="購入ã™ã‚‹" name="chk4"/> 106 <check_box label="購入" name="chk4"/>
107 <check_box label="販売ã™ã‚‹" name="chk5"/> 107 <check_box label="販売" name="chk5"/>
108 <check_box label="雇用ã™ã‚‹" name="chk7"/> 108 <check_box label="雇用" name="chk7"/>
109 <text name="Skills:"> 109 <text name="Skills:">
110 スキル: 110 スキル:
111 </text> 111 </text>
112 <check_box label="テクスãƒãƒ£ãƒ¼" name="schk0"/> 112 <check_box label="テクスãƒãƒ£ãƒ¼" name="schk0"/>
113 <check_box label="アーキテクï¾ï½¬" name="schk1"/> 113 <check_box label="アーキテクãƒãƒ£" name="schk1"/>
114 <check_box label="イベント計画" name="schk2"/> 114 <check_box label="イベント計画" name="schk2"/>
115 <check_box label="モデル" name="schk3"/> 115 <check_box label="モデル" name="schk3"/>
116 <check_box label="スクリプト" name="schk4"/> 116 <check_box label="スクリプト" name="schk4"/>
117 <check_box label="カスタム・キャラã¯ã‚¿ãƒ¼" name="schk5"/> 117 <check_box label="キャラã¯ã‚¿ãƒ¼ã®ã‚«ã‚¹ã‚¿ãƒ " name="schk5"/>
118 <text name="Languages:"> 118 <text name="Languages:">
119 言語: 119 言語:
120 </text> 120 </text>
121 </panel> 121 </panel>
122 <panel label="ピック" name="Picks"> 122 <panel label="ピック" name="Picks">
123 <text name="Tell everyone about your favorite places in Second Life."> 123 <text name="Tell everyone about your favorite places in Second Life.">
124 Second Lifeã®ãŠæ°—入りã®å ´æ‰€ã‚’皆ã«è©±ãã¦ãã ã•ã„ 124 Second Lifeã®ãŠæ°—入りã®å ´æ‰€ã‚’皆ã«æ•™ãˆã¦ãã ã•ã„
125 </text> 125 </text>
126 <button label="æ–°è¦..." label_selected="æ–°è¦..." name="New..."/> 126 <button label="æ–°è¦..." label_selected="æ–°è¦..." name="New..."/>
127 <button label="削除..." label_selected="削除..." name="Delete..."/> 127 <button label="削除..." label_selected="削除..." name="Delete..."/>
@@ -156,10 +156,9 @@
156 ロード中... 156 ロード中...
157 </string> 157 </string>
158 <text name="label"> 158 <text name="label">
159 ã“ã®ã‚¹ãƒšãƒ¼ã‚¹ã«ã€ã“ã®äººç‰©ã«é–¢ã™ã‚‹ãƒ¡ãƒ¢ã‚’記録ã—ã¾ã™ã€‚ 進行中ã®å–引〠159 ã“ã®ã‚¹ãƒšãƒ¼ã‚¹ã«ã¯ã€é€²è¡Œä¸­ã®å–引ã€å…±åŒãƒ—ロジェクトãªã©ã“ã®äººç‰©ã«é–¢
160å…±åŒãƒ—ロジェクトãªã©ã‚’記録。メモを見るã“ã¨ãŒã§ãã‚‹ã®ã¯ 160ã‚るメモを記録ã—ã¦ãã ã•ã„。 本人をå«ã‚ãŸä»–人ã«ã¯è¦‹ã‚‹ã“ã¨ã®ã§ããª
161ã‚ãªãŸã ã‘ã§ã™ã€‚ 本人をå«ã‚ãŸä»–ã®äººã¯ã€ãƒ¡ãƒ¢ã‚’見るã“ã¨ãŒã§ãã¾ã›ã‚“。 161ã„ã€ã‚ãªãŸã ã‘ã®ãƒ¡ãƒ¢å¸³ã§ã™ã€‚</text>
162 </text>
163 </panel> 162 </panel>
164 </tab_container> 163 </tab_container>
165 <button label="OK" label_selected="OK" name="OK"/> 164 <button label="OK" label_selected="OK" name="OK"/>
@@ -170,8 +169,7 @@
170 <button label="CSR" label_selected="CSR" name="csr_btn" tool_tip="ã“ã®ä½äººã®ã‚«ã‚¹ã‚¿ãƒžãƒ¼ãƒ»ã‚µãƒ¼ãƒ“ス・ツールを開ãã¾ã™ã€‚"/> 169 <button label="CSR" label_selected="CSR" name="csr_btn" tool_tip="ã“ã®ä½äººã®ã‚«ã‚¹ã‚¿ãƒžãƒ¼ãƒ»ã‚µãƒ¼ãƒ“ス・ツールを開ãã¾ã™ã€‚"/>
171 <string name="ShowOnMapNonFriend"> 170 <string name="ShowOnMapNonFriend">
172 地図上ã§ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚’表示ã—ã¾ã™ã€‚ 171 地図上ã§ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚’表示ã—ã¾ã™ã€‚
173ã‚ãªãŸãŒç›¸æ‰‹ã¨ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒ—を交ã‚ã—ã¦ã„ãªã„ãŸã‚〠172相手ã¨ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚·ãƒƒãƒ—を交ã‚ã—ã¦ã„ãªã„ãŸã‚ã€è¡¨ç¤ºã§ãã¾ã›ã‚“。
174表示ã§ãã¾ã›ã‚“。
175 </string> 173 </string>
176 <string name="ShowOnMapFriendOffline"> 174 <string name="ShowOnMapFriendOffline">
177 地図上ã§ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚’表示ã—ã¾ã™ã€‚ 175 地図上ã§ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚’表示ã—ã¾ã™ã€‚
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_chat_bar.xml b/linden/indra/newview/skins/default/xui/ja/panel_chat_bar.xml
index cb1d103..1296f65 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_chat_bar.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_chat_bar.xml
@@ -1,17 +1,20 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="chat_bar"> 2<panel name="chat_bar">
3 <panel/> 3 <panel/>
4 <button label="周辺ãƒãƒ£ãƒƒãƒˆ" name="History" tool_tip="éŽåŽ»ã®ç™ºè¨€ã‚’表示ã™ã‚‹ã«ã¯ã€ã“ã“をクリック"/> 4 <button label="周辺ãƒãƒ£ãƒƒãƒˆ" name="History" tool_tip="éŽåŽ»ã®ç™ºè¨€ã‚’表示ã™ã‚‹ã«ã¯ã€ã“ã“をクリック"/>
5 <line_editor width="95" label="ãƒãƒ£ãƒƒãƒˆã‚’開始ã™ã‚‹ã«ã¯ã€ã“ã“をクリックã—ã¾ã™ã€‚" name="Chat Editor" tool_tip="話ã™ã«ã¯Enterを押ã—ã€å«ã¶ã«ã¯Ctrl+Enterを押ã—ã¾ã™ã€‚"/> 5 <line_editor label="ãƒãƒ£ãƒƒãƒˆã‚’開始ã™ã‚‹ã«ã¯ã€ã“ã“をクリックã—ã¾ã™ã€‚" name="Chat Editor" tool_tip="話ã™ã«ã¯Enterを押ã—ã€å«ã¶ã«ã¯Ctrl+Enterを押ã—ã¾ã™ã€‚" width="95"/>
6 <flyout_button left_delta="100" label="発言" name="Say" tool_tip="(Enter)"> 6 <flyout_button label="発言" left_delta="100" name="Say" tool_tip="(Enter)">
7 <flyout_button_item name="shout_item">
8 å«ã¶
9 </flyout_button_item>
7 <flyout_button_item name="say_item"> 10 <flyout_button_item name="say_item">
8 発言 11 発言
9 </flyout_button_item> 12 </flyout_button_item>
10 <flyout_button_item name="shout_item"> 13 <flyout_button_item name="whisper_item">
11 å«ã 14 ã•ã•ã‚„ã
12 </flyout_button_item> 15 </flyout_button_item>
13 </flyout_button> 16 </flyout_button>
14 <combo_box width="100" label="ジェスãƒãƒ£ãƒ¼" name="Gesture"/> 17 <combo_box label="ジェスãƒãƒ£ãƒ¼" name="Gesture" width="100"/>
15 <string name="gesture_label"> 18 <string name="gesture_label">
16 ジェスãƒãƒ£ãƒ¼ 19 ジェスãƒãƒ£ãƒ¼
17 </string> 20 </string>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_classified.xml b/linden/indra/newview/skins/default/xui/ja/panel_classified.xml
index 22113f7..385ed96 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_classified.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_classified.xml
@@ -8,7 +8,7 @@
8 <button label="テレãƒãƒ¼ãƒˆ" name="classified_teleport_btn" /> 8 <button label="テレãƒãƒ¼ãƒˆ" name="classified_teleport_btn" />
9 <button label="地図上ã«è¡¨ç¤º" name="classified_map_btn" /> 9 <button label="地図上ã«è¡¨ç¤º" name="classified_map_btn" />
10 <button label="プロフィール" name="classified_profile_btn" /> 10 <button label="プロフィール" name="classified_profile_btn" />
11 <check_box label="æˆäºº" name="classified_mature_check"> 11 <check_box label="æˆäºº" name="classified_mature_check" width="160">
12 <combo_item name="select_mature"> 12 <combo_item name="select_mature">
13 -æˆç†Ÿåº¦ã‚’é¸æŠž- 13 -æˆç†Ÿåº¦ã‚’é¸æŠž-
14 </combo_item> 14 </combo_item>
@@ -25,7 +25,7 @@
25 広告掲載: [DATE]ã€L$[AMT] 支払ã„済㿠25 広告掲載: [DATE]ã€L$[AMT] 支払ã„済ã¿
26 </string> 26 </string>
27 <text name="update_txt"> 27 <text name="update_txt">
28 アップデート 28 更新
29 </text> 29 </text>
30 <text name="publish_txt"> 30 <text name="publish_txt">
31 公開... 31 公開...
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_event.xml b/linden/indra/newview/skins/default/xui/ja/panel_event.xml
index 3132024..889e1da 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_event.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_event.xml
@@ -7,7 +7,7 @@
7 (ãªã—) 7 (ãªã—)
8 </text> 8 </text>
9 <text name="event_category_label"> 9 <text name="event_category_label">
10 入力ãã‚: 10 タイプ:
11 </text> 11 </text>
12 <text name="event_category" left="150"> 12 <text name="event_category" left="150">
13 (ãªã—) 13 (ãªã—)
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_group_general.xml b/linden/indra/newview/skins/default/xui/ja/panel_group_general.xml
index bed2bed..db81e18 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_group_general.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_group_general.xml
@@ -1,21 +1,18 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="一般" name="general_tab"> 2<panel label="一般" name="general_tab">
3 <text name="help_text"> 3 <string name="help_text">
4 [一般]タブã«ã¯ã€ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«é–¢ã™ã‚‹ 4 [一般]タブã«ã¯ã€ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«é–¢ã™ã‚‹
5一般情報ã€ã‚ªãƒ¼ãƒŠãƒ¼ã¨è¡¨ç¤ºå¯èƒ½ãªãƒ¡ãƒ³ãƒãƒ¼ã®ãƒªã‚¹ãƒˆ 5一般情報ã€ã‚ªãƒ¼ãƒŠãƒ¼ã¨è¡¨ç¤ºå¯èƒ½ãªãƒ¡ãƒ³ãƒãƒ¼ã®ãƒªã‚¹ãƒˆ
6一般的ãª[グループ環境設定]ã€ãƒ¡ãƒ³ãƒãƒ¼ã®ã‚ªãƒ—ションãŒå«ã¾ã‚Œã¾ã™ã€‚ 6一般的ãª[グループ環境設定]ã€ãƒ¡ãƒ³ãƒãƒ¼ã®ã‚ªãƒ—ションãŒå«ã¾ã‚Œã¾ã™ã€‚
7 7
8オプションã®ä¸Šã§ãƒžã‚¦ã‚¹ã‚«ãƒ¼ã‚½ãƒ«ã‚’å‹•ã‹ã™ã¨ã€ãƒ˜ãƒ«ãƒ—情報を得られã¾ã™ã€‚ 8オプションã®ä¸Šã§ãƒžã‚¦ã‚¹ã‚«ãƒ¼ã‚½ãƒ«ã‚’å‹•ã‹ã™ã¨ã€ãƒ˜ãƒ«ãƒ—情報を得られã¾ã™ã€‚
9 </text> 9 </string>
10 <string name="group_info_unchanged"> 10 <string name="group_info_unchanged">
11 グループ設定ãŒå¤‰æ›´ã•ã‚Œã¾ã—ãŸã€‚ 11 グループ設定ãŒå¤‰æ›´ã•ã‚Œã¾ã—ãŸã€‚
12 </string> 12 </string>
13 <button label="?" label_selected="?" name="help_button" /> 13 <button label="?" label_selected="?" name="help_button"/>
14 <line_editor label="ã‚ãªãŸã®æ–°ã—ã„グループåを記入ã—ã¦ãã ã•ã„" 14 <line_editor label="æ–°ã—ã„グループåã‚’ã“ã“ã«å…¥åŠ›ã—ã¦ãã ã•ã„。" name="group_name_editor" width="330"/>
15 name="group_name_editor"> 15 <text name="group_name" width="330">
16 æ–°ã—ã„グループåã‚’ã“ã“ã«å…¥åŠ›ã—ã¦ãã ã•ã„。
17 </line_editor>
18 <text name="group_name">
19 æ–°ã—ã„グループåã‚’ã“ã“ã«å…¥åŠ›ã—ã¦ãã ã•ã„。 16 æ–°ã—ã„グループåã‚’ã“ã“ã«å…¥åŠ›ã—ã¦ãã ã•ã„。
20 </text> 17 </text>
21 <text name="prepend_founded_by"> 18 <text name="prepend_founded_by">
@@ -25,62 +22,34 @@
25 (待機中) 22 (待機中)
26 </text> 23 </text>
27 <text name="group_charter_label"> 24 <text name="group_charter_label">
28 グループ特権 25 グループç†å¿µ
29 </text> 26 </text>
30 <texture_picker label="グループ記章" name="insignia" 27 <texture_picker label="グループ記章" name="insignia" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
31 tool_tip="写真をクリックã—ã¦é¸æŠž" />
32 <text_editor name="charter"> 28 <text_editor name="charter">
33 グループ特権 29 グループã®ç†å¿µã€æŒ‡é‡ã‚’記入ã—ã¦ãã ã•ã„
34 </text_editor> 30 </text_editor>
35 <button label="å‚加ã™ã‚‹ï¼ˆL$0)" label_selected="å‚加ã™ã‚‹ï¼ˆL$0)" 31 <button label="å‚加ã™ã‚‹ï¼ˆL$0)" label_selected="å‚加ã™ã‚‹ï¼ˆL$0)" name="join_button"/>
36 name="join_button" /> 32 <button label="詳細表示" label_selected="詳細表示" name="info_button"/>
37 <button label="詳細表示" label_selected="詳細表示" name="info_button" />
38 <text>
39 オーナーã¨å¯è¦–メンãƒãƒ¼
40 </text>
41 <text>
42 (オーナーã¯å¤ªå­—)
43 </text>
44 <text name="text_owners_and_visible_members"> 33 <text name="text_owners_and_visible_members">
45 オーナーã¨å¯è¦–メンãƒãƒ¼ 34 オーナーã¨å…¬éメンãƒãƒ¼
46 </text> 35 </text>
47 <text name="text_owners_are_shown_in_bold"> 36 <text name="text_owners_are_shown_in_bold">
48 (オーナーã¯å¤ªå­—ã§è¡¨ç¤ºã•ã‚Œã¦ã„ã¾ã™ï¼‰ 37 (オーナーã¯å¤ªå­—ã§è¡¨ç¤ºã•ã‚Œã¦ã„ã¾ã™ï¼‰
49 </text> 38 </text>
50 <name_list name="visible_members"> 39 <name_list name="visible_members">
51 <column label="Member Name" name="name" /> 40 <column label="メンãƒãƒ¼å" name="name"/>
52 <column label="Title" name="title" /> 41 <column label="タイトル" name="title"/>
53 <column label="Last Login" name="online" /> 42 <column label="最終ログイン" name="online"/>
54 </name_list> 43 </name_list>
55 <text name="text_group_preferences"> 44 <text name="text_group_preferences">
56 グループ環境設定 45 グループ環境設定
57 </text> 46 </text>
58 <text name="incomplete_member_data_str">
59 メンãƒãƒ¼ãƒ»ãƒ‡ãƒ¼ã‚¿ã‚’検索
60 </text>
61 <text name="confirm_group_create_str">
62 ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ä½œæˆã«ã¯L$100ã‹ã‹ã‚Šã¾ã™ã€‚
63ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ä½œæˆã«L$100ã‚‚ã®ãŠé‡‘ã‚’ã‹ã‘ã¦ã‚‚ã‹ã¾ã„ã¾ã›ã‚“ã‹ï¼Ÿ æ…Žé‡ã«åˆ¤æ–­ã—ã¦ãã ã•ã„。
6448 時間以内ã«èª°ã‚‚ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚加ã—ãªã‹ã£ãŸå ´åˆã€ã‚°ãƒ«ãƒ¼ãƒ—ã¯è§£ä½“ã•ã‚Œã€ã‚°ãƒ«ãƒ¼ãƒ—ã®åå‰ã¯ä»Šå¾Œä½¿ç”¨ã§ããªããªã‚Šã¾ã™ã€‚
65 </text>
66 <text>
67 グループã®ç’°å¢ƒè¨­å®š
68 </text>
69 <panel name="preferences_container"> 47 <panel name="preferences_container">
70 <check_box label="検索ã«è¡¨ç¤º" name="show_in_group_list" 48 <check_box label="検索ã«è¡¨ç¤º" name="show_in_group_list" tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—を検索çµæžœã«è¡¨ç¤ºã•ã›ã¾ã™"/>
71 tool_tip="検索çµæžœã§ã€ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—を人ã«è¦‹ã›ã‚‹" /> 49 <check_box label="会員募集" name="open_enrollement" tool_tip="招待状ãªã—ã«è‡ªç”±ã«ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«åŠ å…¥ã™ã‚‹ã“ã¨ã‚’許å¯ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™"/>
72 <check_box label="ウェブ上ã§å…¬é–‹" name="publish_on_web" 50 <check_box label="入会費:L$" name="check_enrollment_fee" tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¸ã®å‚加ã«å…¥ä¼šè²»ã‚’å¿…é ˆã¨ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™"/>
73 tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®æƒ…報をウェブ上ã§å…¬é–‹ã§ãるよã†ã«ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚" /> 51 <spinner name="spin_enrollment_fee" tool_tip="「入会費ã€ãŒãƒã‚§ãƒƒã‚¯ã•ã‚Œã¦ã„ã‚‹å ´åˆã€æ–°è¦ä¼šå“¡ã¯å…¥ä¼šæ™‚ã«ã“ã“ã«æŒ‡å®šã•ã‚ŒãŸé‡‘é¡ã‚’支払ã†å¿…è¦ãŒã‚ã‚Šã¾ã™"/>
74 <check_box label="会員募集" name="open_enrollement" 52 <combo_box name="group_mature_check" tool_tip="ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—情報ãŒæˆäººå‘ã‘ã¨ã¿ãªã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™">
75 tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«æ‹›å¾…状ãªã—ã§æ–°ã—ã„メンãƒãƒ¼ã‚’å—ã‘入れるã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚" />
76 <check_box label="入会費:L$" name="check_enrollment_fee"
77 tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã¸ã®å‚加ã«å…¥ä¼šè²»ã‚’å¿…é ˆã¨ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚" />
78 <spinner name="spin_enrollment_fee"
79 tool_tip="「入会費ã€ãŒãƒã‚§ãƒƒã‚¯ã•ã‚Œã¦ã„ã‚‹å ´åˆã€æ–°è¦ä¼šå“¡ã¯å…¥ä¼šæ™‚ã«ã“ã®è²»ç”¨ã‚’支払ã†å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" />
80 <check_box label="æˆäººå‘ã‘グループ" name="mature"
81 tool_tip="ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—情報ãŒæˆäººå‘ã‘ã¨ã¿ãªã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚" />
82 <combo_box name="group_mature_check"
83 tool_tip="ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—情報ãŒæˆäººå‘ã‘ã¨ã¿ãªã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚">
84 <combo_item name="select_mature"> 53 <combo_item name="select_mature">
85 -æˆç†Ÿåº¦ã‚’é¸æŠž- 54 -æˆç†Ÿåº¦ã‚’é¸æŠž-
86 </combo_item> 55 </combo_item>
@@ -95,13 +64,17 @@
95 <text name="active_title_label"> 64 <text name="active_title_label">
96 ç§ã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ–・タイトル 65 ç§ã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ–・タイトル
97 </text> 66 </text>
98 <combo_box name="active_title" 67 <combo_box name="active_title" tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—をアクティブ設定ã«ã—ãŸéš›ã‚¢ãƒã‚¿ãƒ¼ã®ãƒãƒ¼ãƒ ã‚¿ã‚°ã«è¡¨ç¤ºã•ã‚Œã‚‹ã‚¿ã‚¤ãƒˆãƒ«ã®è¨­å®š"/>
99 tool_tip="Sets the title that appears in your avatar&apos;s name tag when this group is active." />
100 </panel> 68 </panel>
101 <check_box label="グループ通知をå—ä¿¡" name="receive_notices" 69 <check_box label="グループ通知をå—ä¿¡" name="receive_notices" tool_tip="グループã‹ã‚‰ã®é€šçŸ¥ã‚’å—ä¿¡ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚ ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ãŒã‚¹ãƒ‘ム行為をã—ã¦ã„ã‚‹å ´åˆã¯ã€ã“ã®ãƒœãƒƒã‚¯ã‚¹ã®ãƒã‚§ãƒƒã‚¯ã‚’外ã—ã¦ãã ã•ã„"/>
102 tool_tip="グループã‹ã‚‰ã®é€šçŸ¥ã‚’ã‚ãªãŸãŒå—ä¿¡ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚ ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ãŒã‚¹ãƒ‘ム行為をã—ã¦ã„ã‚‹å ´åˆã¯ã€ã“ã®ãƒœãƒƒã‚¯ã‚¹ã®ãƒã‚§ãƒƒã‚¯ã‚’外ã—ã¦ãã ã•ã„。" /> 70 <check_box label="プロフィールã«ï½¸ï¾žï¾™ï½°ï¾Œï¾Ÿã‚’表示" name="list_groups_in_profile" tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã‚’ã‚ãªãŸã®ãƒ—ロフィールã«è¡¨ç¤ºã™ã‚‹ã‹ã©ã†ã‹ã‚’設定ã—ã¾ã™"/>
103 <check_box label="プロフィールã«ï½¸ï¾žï¾™ï½°ï¾Œï¾Ÿã‚’リストã™ã‚‹"
104 name="list_groups_in_profile"
105 tool_tip="ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã‚’ã‚ãªãŸã®ãƒ—ロフィールã«ãƒªã‚¹ãƒˆã™ã‚‹ã‹ã©ã†ã‹ã‚’設定ã—ã¾ã™ã€‚" />
106 </panel> 71 </panel>
72 <string name="incomplete_member_data_str">
73 メンãƒãƒ¼ãƒ»ãƒ‡ãƒ¼ã‚¿ã‚’検索
74 </string>
75 <string name="confirm_group_create_str">
76 ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ä½œæˆã«ã¯L$100ã‹ã‹ã‚Šã¾ã™ã€‚
77ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®ä½œæˆã«L$100ã‚‚ã®ãŠé‡‘ã‚’ã‹ã‘ã¦ã‚‚ã‹ã¾ã„ã¾ã›ã‚“ã‹ï¼Ÿ æ…Žé‡ã«åˆ¤æ–­ã—ã¦ãã ã•ã„。
7848時間以内ã«èª°ã‚‚ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚加ã—ãªã‹ã£ãŸå ´åˆã€ã‚°ãƒ«ãƒ¼ãƒ—ã¯è§£ä½“ã•ã‚Œã€ã‚°ãƒ«ãƒ¼ãƒ—ã®åå‰ã¯ä»Šå¾Œä½¿ç”¨ã§ããªããªã‚Šã¾ã™ã€‚
79 </string>
107</panel> 80</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_group_land_money.xml b/linden/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
index 53ea61a..9331071 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
@@ -1,19 +1,15 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="土地ã¨L$" name="land_money_tab"> 2<panel label="土地ã¨L$" name="land_money_tab">
3 <text name="help_text"> 3 <string name="help_text">
4 グループ所有ã®åŒºç”»ãŒè³‡é‡‘æä¾›ã®è©³ç´°ã¨å…±ã«ãƒªã‚¹ãƒˆã«ç¤ºã•ã‚Œã¾ã™ã€‚ 4 グループ所有ã®åœŸåœ°ã¯è²¢çŒ®å€¤ã®è©³ç´°ã¨å…±ã«è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚土地利用ã®åˆè¨ˆãŒå¯„付ç·é¡ã‹ãれ以下ã«ãªã‚‹ã¾ã§ã¯è­¦å‘ŠãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚「詳細ã€ã¨ã€Œè²©å£²ã€ã‚¿ãƒ–ã«ã‚°ãƒ«ãƒ¼ãƒ—ã®è³‡é‡‘ã«é–¢ã™ã‚‹æƒ…å ±ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚
5 土地利用ã®åˆè¨ˆãŒã€ 5 </string>
6資金æä¾›ã®åˆè¨ˆä»¥ä¸‹ã«ãªã‚‹ã¾ã§è­¦å‘ŠãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚ 6 <button label="?" name="help_button"/>
7 プランニングã€è©³ç´°ã€è²©å£²ã®å„タブã«ã¯ã€ 7 <string name="cant_view_group_land_text">
8グループ財政ã«é–¢ã™ã‚‹æƒ…å ±ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚
9 </text>
10 <button label="?" name="help_button" />
11 <text name="cant_view_group_land_text">
12 ã‚ãªãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—所有ã®åœŸåœ°è¡¨ç¤ºã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 8 ã‚ãªãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—所有ã®åœŸåœ°è¡¨ç¤ºã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。
13 </text> 9 </string>
14 <text name="cant_view_group_accounting_text"> 10 <string name="cant_view_group_accounting_text">
15 ã‚ãªãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®ä¼šè¨ˆæƒ…å ±ã®è¡¨ç¤ºã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。 11 ã‚ãªãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®ä¼šè¨ˆæƒ…å ±ã®è¡¨ç¤ºã‚’許ã•ã‚Œã¦ã„ã¾ã›ã‚“。
16 </text> 12 </string>
17 <string name="loading_txt"> 13 <string name="loading_txt">
18 ロード中... 14 ロード中...
19 </string> 15 </string>
@@ -21,37 +17,33 @@
21 グループã®ä¿æœ‰åœ° 17 グループã®ä¿æœ‰åœ°
22 </text> 18 </text>
23 <scroll_list name="group_parcel_list"> 19 <scroll_list name="group_parcel_list">
24 <column label="Parcel Name" name="name" /> 20 <column label="区画å" name="name"/>
25 <column label="Region" name="location" /> 21 <column label="地域(リージョン)" name="location"/>
26 <column label="Area" name="area" /> 22 <column label="é¢ç©" name="area"/>
27 <column label="" name="hidden" /> 23 <column label="" name="hidden"/>
28 </scroll_list> 24 </scroll_list>
29 <button label="地図上ã«è¡¨ç¤º" label_selected="地図上ã«è¡¨ç¤º" 25 <button label="地図上ã«è¡¨ç¤º" label_selected="地図上ã«è¡¨ç¤º" name="map_button"/>
30 name="map_button" />
31 <text name="total_contributed_land_label"> 26 <text name="total_contributed_land_label">
32 寄付ç·é¡ï¼š 27 寄付ç·é¡ï¼š
33 </text> 28 </text>
34 <text name="total_contributed_land_value"> 29 <text name="total_contributed_land_value" width="150">
35 [AREA]平方メートル 30 [AREA]平方メートル
36 </text> 31 </text>
37 <text name="total_land_in_use_label"> 32 <text name="total_land_in_use_label">
38 土地利用ã®åˆè¨ˆï¼š 33 土地利用ã®åˆè¨ˆï¼š
39 </text> 34 </text>
40 <text name="total_land_in_use_value"> 35 <text name="total_land_in_use_value" width="150">
41 [AREA]平方メートル 36 [AREA]平方メートル
42 </text> 37 </text>
43 <text name="land_available_label"> 38 <text name="land_available_label">
44 利用å¯ã®åœŸåœ°ï¼š 39 利用å¯ã®åœŸåœ°ï¼š
45 </text> 40 </text>
46 <text name="land_available_value"> 41 <text name="land_available_value" width="150">
47 [AREA]平方メートル 42 [AREA]平方メートル
48 </text> 43 </text>
49 <text name="your_contribution_label"> 44 <text name="your_contribution_label">
50 ã‚ãªãŸã®è²¢çŒ®ï¼š 45 ã‚ãªãŸã®è²¢çŒ®ï¼š
51 </text> 46 </text>
52 <text name="your_contribution_max_value_append">
53 平方メートル
54 </text>
55 <string name="land_contrib_error"> 47 <string name="land_contrib_error">
56 土地ã®å‡ºè³‡è¨­å®šã‚’è¡Œã†ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ 48 土地ã®å‡ºè³‡è¨­å®šã‚’è¡Œã†ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚
57 </string> 49 </string>
@@ -65,28 +57,19 @@
65 グループL$ 57 グループL$
66 </text> 58 </text>
67 <tab_container name="group_money_tab_container"> 59 <tab_container name="group_money_tab_container">
68 <panel label="計画" name="group_money_planning_tab">
69 <text_editor name="group_money_planning_text">
70 計算中…
71 </text_editor>
72 </panel>
73 <panel label="詳細" name="group_money_details_tab"> 60 <panel label="詳細" name="group_money_details_tab">
74 <text_editor name="group_money_details_text"> 61 <text_editor name="group_money_details_text">
75 計算中… 62 計算中…
76 </text_editor> 63 </text_editor>
77 <button label="<å‰" label_selected="<å‰" name="earlier_details_button" 64 <button label="å‰ã®é€±" label_selected="å‰ã®é€±" name="earlier_details_button" tool_tip="å‰ã®é€±ã®å±¥æ­´"/>
78 tool_tip="時間を戻ã™" /> 65 <button label="次ã®é€±" label_selected="次ã®é€±" name="later_details_button" tool_tip="次ã®é€±ã®å±¥æ­´"/>
79 <button label="ã‚ã¨ã§ï¼ž" label_selected="ã‚ã¨ã§ï¼ž" name="later_details_button"
80 tool_tip="時間を進ã‚ã‚‹" />
81 </panel> 66 </panel>
82 <panel label="販売" name="group_money_sales_tab"> 67 <panel label="販売" name="group_money_sales_tab">
83 <text_editor name="group_money_sales_text"> 68 <text_editor name="group_money_sales_text">
84 計算中… 69 計算中…
85 </text_editor> 70 </text_editor>
86 <button label="<å‰" label_selected="<å‰" name="earlier_sales_button" 71 <button label="å‰ã®é€±" label_selected="å‰ã®é€±" name="earlier_sales_button" tool_tip="å‰ã®é€±ã®å±¥æ­´"/>
87 tool_tip="時間を戻ã™" /> 72 <button label="次ã®é€±" label_selected="次ã®é€±" name="later_sales_button" tool_tip="次ã®é€±ã®å±¥æ­´"/>
88 <button label="ã‚ã¨ã§ï¼ž" label_selected="ã‚ã¨ã§ï¼ž" name="later_sales_button"
89 tool_tip="時間を進ã‚ã‚‹" />
90 </panel> 73 </panel>
91 </tab_container> 74 </tab_container>
92</panel> 75</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_group_notices.xml b/linden/indra/newview/skins/default/xui/ja/panel_group_notices.xml
index 2bdc45f..35b072a 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_group_notices.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_group_notices.xml
@@ -1,45 +1,44 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="通知" name="notices_tab"> 2<panel label="通知" name="notices_tab">
3 <text name="help_text"> 3 <string name="help_text">
4 通知機能を使ã†ã¨ã€ã‚°ãƒ«ãƒ¼ãƒ—内ã§ã™ã°ã‚„ã情報をä¼é”ã§ãã¾ã™ã€‚ 4 通知機能を使ã†ã¨ã€ã‚°ãƒ«ãƒ¼ãƒ—内ã§ã™ã°ã‚„ã情報をä¼é”ã§ãã¾ã™ã€‚
5複数ã®ã‚ã¦å…ˆã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã§ãã‚‹ã»ã‹ã€ 5複数ã®ã‚ã¦å…ˆã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã§ãã‚‹ã»ã‹ã€
6å¿…è¦ã«å¿œã˜ã¦ã‚¢ã‚¤ãƒ†ãƒ ã‚’メッセージã«æ·»ä»˜ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ 通知ã¯ã€ 6å¿…è¦ã«å¿œã˜ã¦ã‚¢ã‚¤ãƒ†ãƒ ã‚’メッセージã«æ·»ä»˜ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
7å—信アビリティãŒã‚る役割ã®ã‚°ãƒ«ãƒ¼ãƒ—・メンãƒãƒ¼ã«ã®ã¿é…ä¿¡ã•ã‚Œã¾ã™ã€‚ 7通知ã¯ã€å—信アビリティãŒã‚る役割ã®ã‚°ãƒ«ãƒ¼ãƒ—・メンãƒãƒ¼ã«ã®ã¿é…ä¿¡ã•ã‚Œã¾ã™ã€‚
8 通知をオフã«ã™ã‚‹ã«ã¯ã€ä¸€èˆ¬ã‚¿ãƒ–を使ã„ã¾ã™ã€‚ 8通知をオフã«ã™ã‚‹ã«ã¯ã€ä¸€èˆ¬ã‚¿ãƒ–を使ã„ã¾ã™ã€‚
9 </text> 9 </string>
10 <text name="no_notices_text"> 10 <string name="no_notices_text">
11 éŽåŽ»ã®é€šçŸ¥ã¯ã‚ã‚Šã¾ã›ã‚“。 11 éŽåŽ»ã®é€šçŸ¥ã¯ã‚ã‚Šã¾ã›ã‚“。
12 </text> 12 </string>
13 <button label="?" label_selected="?" name="help_button" /> 13 <button label="?" label_selected="?" name="help_button"/>
14 <text name="lbl"> 14 <text name="lbl">
15 グループ通知アーカイブ 15 グループ通知アーカイブ
16 </text> 16 </text>
17 <text name="lbl2"> 17 <text name="lbl2">
18 通知ã¯ã€14日間ä¿å­˜ã•ã‚Œã¾ã™ã€‚閲覧ã—ãŸã„通知をクリックã—ã¦ãã ã•ã„。 18 通知ã¯14日間ä¿å­˜ã•ã‚Œã¾ã™ã€‚閲覧ã—ãŸã„通知をクリックã—ã¦ãã ã•ã„。
19æ–°ç€ã®é€šçŸ¥ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã«ã¯ã€[æ›´æ–°]ボタンをクリックã—ã¾ã™ã€‚ 19æ–°ç€ã®é€šçŸ¥ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã«ã¯ã€[æ›´æ–°]ボタンをクリックã—ã¾ã™ã€‚
20ãŸã ã—ã€å„グループã®é€šçŸ¥ãƒªã‚¹ãƒˆã¯1æ—¥ã‚ãŸã‚Š200通ã«åˆ¶é™ã•ã‚Œã¾ã™ã€‚ 20ãŸã ã—ã€å„グループã®é€šçŸ¥ãƒªã‚¹ãƒˆã¯1æ—¥ã‚ãŸã‚Š200通ã«åˆ¶é™ã•ã‚Œã¾ã™ã€‚
21 </text> 21 </text>
22 <scroll_list name="notice_list"> 22 <scroll_list name="notice_list">
23 <column label="" name="icon" /> 23 <column label="" name="icon"/>
24 <column label="Subject" name="subject" /> 24 <column label="件å" name="subject"/>
25 <column label="From" name="from" /> 25 <column label="é€ã‚Šä¸»" name="from"/>
26 <column label="Date" name="date" /> 26 <column label="日付" name="date"/>
27 </scroll_list> 27 </scroll_list>
28 <text name="notice_list_none_found"> 28 <text name="notice_list_none_found">
29 何も見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚ 29 何も見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚
30 </text> 30 </text>
31 <button label="æ–°ã—ã„通知を作æˆ" label_selected="æ–°ã—ã„通知を作æˆ" 31 <button label="æ–°ã—ã„通知を作æˆ" label_selected="æ–°ã—ã„通知を作æˆ" name="create_new_notice"/>
32 name="create_new_notice" /> 32 <button label="更新" label_selected="リスト更新" name="refresh_notices"/>
33 <button label="更新" label_selected="リスト更新" name="refresh_notices" />
34 <panel label="æ–°ã—ã„通知を作æˆ" name="panel_create_new_notice"> 33 <panel label="æ–°ã—ã„通知を作æˆ" name="panel_create_new_notice">
35 <text name="lbl"> 34 <text name="lbl">
36 é€šçŸ¥ã‚’ä½œæˆ 35 通知を作æˆ
37 </text> 36 </text>
38 <text name="lbl2"> 37 <text name="lbl2">
39 通知をé€ã‚‹ã«ã¯ã€ä»¶åを入力ã—ã¾ã™ã‚ æŒã¡ç‰©ã®ã¢ã‚¤ãƒ†ãƒ ã‚ 38 件åを入力ã—ã¦éšçŸ¥ã‚’é€ã‚Šã¾ãã
401ã¤ãã“ã®ãƒ‘ãƒãƒ«ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€é€šçŸ¥ã«æ·»ä»˜ 39æŒã¡ç‰©ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’1ã¤ã“ã®ãƒ‘ãƒãƒ«ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€
41ã§ãã¾ã™ã€‚ 添付ã§ãã‚‹ã®ã¯ã€ã‚³ãƒ”ーã€è­²æ¸¡å¯èƒ½ãªã‚¢ã‚¤ãƒ† 40通知ã«æ·»ä»˜ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 添付ã§ãã‚‹ã®ã¯ã‚³ãƒ”ーã€
42ムã§ã€ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã«é€ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 41譲渡ãŒå¯èƒ½ãªã‚¢ã‚¤ãƒ†ãƒ ã§ã€ãƒ•ã‚©ãƒ«ãƒ€ã‚’é€ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。
43 </text> 42 </text>
44 <text name="lbl3"> 43 <text name="lbl3">
45 件å: 44 件å:
@@ -50,11 +49,9 @@
50 <text name="lbl5"> 49 <text name="lbl5">
51 添付: 50 添付:
52 </text> 51 </text>
53 <button label="添付物を削除" label_selected="添付物を削除" 52 <button label="添付物を削除" label_selected="添付物を削除" name="remove_attachment"/>
54 name="remove_attachment" /> 53 <button label="通知をé€ä¿¡" label_selected="通知をé€ä¿¡" name="send_notice"/>
55 <button label="通知をé€ä¿¡" label_selected="通知をé€ä¿¡" name="send_notice" /> 54 <panel name="drop_target" tool_tip="æŒã¡ç‰©ã‹ã‚‰ã‚¢ã‚¤ãƒ†ãƒ ã‚’メッセージ欄ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ãã ã•ã„。通知ã¨ä¸€ç·’ã«é€ä¿¡ã•ã‚Œã¾ã™ã€‚é€ä¿¡ã™ã‚‹ã«ã¯ã‚³ãƒ”ーã€è­²æ¸¡ãŒå¯èƒ½ãªã‚ªãƒ–ジェクトã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚"/>
56 <panel name="drop_target"
57 tool_tip="Drag an inventory item onto the message box to send it with the notice. You must have permission to copy and transfer the object to send it with the notice." />
58 </panel> 55 </panel>
59 <panel label="éŽåŽ»ã®é€šçŸ¥ã‚’表示" name="panel_view_past_notice"> 56 <panel label="éŽåŽ»ã®é€šçŸ¥ã‚’表示" name="panel_view_past_notice">
60 <text name="lbl"> 57 <text name="lbl">
@@ -69,7 +66,6 @@
69 <text name="lbl4"> 66 <text name="lbl4">
70 メッセージ: 67 メッセージ:
71 </text> 68 </text>
72 <button label="添付物を開ã" label_selected="添付物を開ã" 69 <button label="添付物を開ã" label_selected="添付物を開ã" name="open_attachment"/>
73 name="open_attachment" />
74 </panel> 70 </panel>
75</panel> 71</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_group_roles.xml b/linden/indra/newview/skins/default/xui/ja/panel_group_roles.xml
index 4640600..79f4e74 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_group_roles.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_group_roles.xml
@@ -1,15 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="メンãƒãƒ¼ã¨å½¹å‰²" name="roles_tab"> 2<panel label="メンãƒãƒ¼ã¨å½¹å‰²" name="roles_tab">
3 <text name="default_needs_apply_text"> 3 <string name="default_needs_apply_text">
4 ç¾åœ¨ã®ã‚µãƒ–タブã«ã€æœªé©ç”¨ã®å¤‰æ›´ãŒã‚ã‚Šã¾ã™ã€‚ 4 ç¾åœ¨ã®ã‚µãƒ–タブã«ã€æœªé©ç”¨ã®å¤‰æ›´ãŒã‚ã‚Šã¾ã™ã€‚
5 </text> 5 </string>
6 <text name="want_apply_text"> 6 <string name="want_apply_text">
7 ã“れらã®å¤‰æ›´ã‚’é©ç”¨ã—ã¾ã™ã‹ï¼Ÿ 7 ã“れらã®å¤‰æ›´ã‚’é©ç”¨ã—ã¾ã™ã‹ï¼Ÿ
8 </text> 8 </string>
9 <text name="cant_delete_role"> 9 <button label="?" name="help_button"/>
10 「全員ã€ã¨ã€Œã‚ªãƒ¼ãƒŠãƒ¼ã€ã¯ç‰¹åˆ¥ãªå½¹å‰²ãªã®ã§ã€å‰Šé™¤ã§ãã¾ã›ã‚“。
11 </text>
12 <button label="?" name="help_button" />
13 <panel name="members_header"> 10 <panel name="members_header">
14 <text name="static"> 11 <text name="static">
15 メンãƒãƒ¼ã¨å½¹å‰² 12 メンãƒãƒ¼ã¨å½¹å‰²
@@ -27,7 +24,7 @@
27 下ã«ã‚る役割をé¸æŠžã—ã¦ãã ã•ã„。 役割ã®åå‰ã€èª¬æ˜Žã€ãƒ¡ãƒ³ãƒãƒ¼ãƒ»ã‚¿ã‚¤ãƒˆãƒ«ã‚’修正ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 24 下ã«ã‚る役割をé¸æŠžã—ã¦ãã ã•ã„。 役割ã®åå‰ã€èª¬æ˜Žã€ãƒ¡ãƒ³ãƒãƒ¼ãƒ»ã‚¿ã‚¤ãƒˆãƒ«ã‚’修正ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
28 </text> 25 </text>
29 <text name="role_properties_not_modifiable"> 26 <text name="role_properties_not_modifiable">
30 以下ã®å½¹å‰²ã‚’é¸æŠžã—、役割ã®ï¾Œï¾Ÿï¾›ï¾Šï¾Ÿï¾ƒï½¨ï½¤ï¾’ï¾ï¾Šï¾žï½°ï½¤ãŠã‚ˆã³è¨±å¯ã•ã‚ŒãŸèƒ½åŠ›ã‚’確 27 役割åã‚’é¸æŠžã™ã‚‹ã¨ï½¤èª¬æ˜Žã€ãƒ¡ãƒ³ãƒãƒ¼ã€èƒ½åŠ›ã‚’確èªã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
31 </text> 28 </text>
32 <text name="role_actions_modifiable"> 29 <text name="role_actions_modifiable">
33 ã‚ãªãŸã¯å½¹å‰²ã«èƒ½åŠ›ã‚’割り当ã¦ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ 30 ã‚ãªãŸã¯å½¹å‰²ã«èƒ½åŠ›ã‚’割り当ã¦ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
@@ -47,52 +44,52 @@
47 </panel> 44 </panel>
48 <tab_container name="roles_tab_container"> 45 <tab_container name="roles_tab_container">
49 <panel label="メンãƒãƒ¼" name="members_sub_tab" tool_tip="Members"> 46 <panel label="メンãƒãƒ¼" name="members_sub_tab" tool_tip="Members">
50 <button label="検索" name="search_button" /> 47 <button label="検索" name="search_button"/>
51 <button label="å…¨ã¦ã‚’表示" name="show_all_button" /> 48 <button label="å…¨ã¦ã‚’表示" name="show_all_button"/>
52 <name_list name="member_list"> 49 <name_list name="member_list">
53 <column label="メンãƒãƒ¼å" name="name" /> 50 <column label="メンãƒãƒ¼å" name="name"/>
54 <column label="Donated Tier" name="donated" /> 51 <column label="寄付ã•ã‚ŒãŸTier" name="donated"/>
55 <column label="å‰å›žã®ãƒ­ã‚°ã‚¤ãƒ³" name="online" /> 52 <column label="最終ログイン" name="online"/>
56 </name_list> 53 </name_list>
57 <button label="æ–°ã—ã„人を招待..." name="member_invite" /> 54 <button label="æ–°ã—ã„人を招待..." name="member_invite"/>
58 <button label="グループã‹ã‚‰è¿½æ”¾" name="member_eject" /> 55 <button label="グループã‹ã‚‰è¿½æ”¾" name="member_eject"/>
59 <text name="help_text"> 56 <string name="help_text">
60 ã‚ãªãŸã¯ãƒ¡ãƒ³ãƒãƒ¼ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸå½¹å‰²ã‚’付加ã€å‰Šé™¤ã§ãã¾ã™ã€‚ 57 ã‚ãªãŸã¯ãƒ¡ãƒ³ãƒãƒ¼ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸå½¹å‰²ã‚’付加ã€å‰Šé™¤ã§ãã¾ã™ã€‚
61Ctrl キーを押ã—ãªãŒã‚‰ãƒ¡ãƒ³ãƒãƒ¼åをクリックã™ã‚‹ã¨ 58Ctrl キーを押ã—ãªãŒã‚‰ãƒ¡ãƒ³ãƒãƒ¼åをクリックã™ã‚‹ã¨
62複数ã®äººã‚’é¸æŠžã§ãã¾ã™ã€‚ 59複数ã®äººã‚’é¸æŠžã§ãã¾ã™ã€‚
63 </text> 60 </string>
64 </panel> 61 </panel>
65 <panel label="役割" name="roles_sub_tab"> 62 <panel label="役割" name="roles_sub_tab">
66 <button label="検索" name="search_button" /> 63 <button label="検索" name="search_button"/>
67 <button label="ã™ã¹ã¦ã‚’表示" name="show_all_button" /> 64 <button label="ã™ã¹ã¦ã‚’表示" name="show_all_button"/>
68 <scroll_list name="role_list"> 65 <scroll_list name="role_list">
69 <column label="役割å" name="name" /> 66 <column label="役割å" name="name"/>
70 <column label="Title" name="title" /> 67 <column label="肩書ã" name="title"/>
71 <column label="メンãƒãƒ¼" name="members" /> 68 <column label="メンãƒãƒ¼" name="members"/>
72 </scroll_list> 69 </scroll_list>
73 <button label="æ–°ã—ã„役割を作æˆ..." name="role_create" /> 70 <button label="æ–°ã—ã„役割を作æˆ..." name="role_create"/>
74 <button label="役割を削除" name="role_delete" /> 71 <button label="役割を削除" name="role_delete"/>
75 <text name="help_text"> 72 <string name="help_text">
76 役割ã«ã¯ã‚¿ã‚¤ãƒˆãƒ«ãŒã‚ã‚Šã€ãƒ¡ãƒ³ãƒãƒ¼ãŒè¡Œä½¿å¯èƒ½ãª 73 役割ã«ã¯ã‚¿ã‚¤ãƒˆãƒ«ãŒã‚ã‚Šã€ãƒ¡ãƒ³ãƒãƒ¼ãŒè¡Œä½¿å¯èƒ½ãª
77能力ã®ãƒªã‚¹ãƒˆãŒå®šç¾©ã•ã‚Œã¾ã™ã€‚ メンãƒãƒ¼ã¯ã€ 74能力ã®ãƒªã‚¹ãƒˆãŒå®šç¾©ã•ã‚Œã¾ã™ã€‚ メンãƒãƒ¼ã¯ã€
781ã¤ã¾ãŸã¯è¤‡æ•°ã®å½¹å‰²ã«å±žã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 1ã¤ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å¯¾ã—〠751ã¤ã¾ãŸã¯è¤‡æ•°ã®å½¹å‰²ã«å±žã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 1ã¤ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å¯¾ã—ã€
79「全員ã€ã¨ã€Œã‚ªãƒ¼ãƒŠãƒ¼ã€ã®å½¹å‰²ã‚’å«ã‚ã¦æœ€é«˜ã§10ã®å½¹å‰²ã‚’æŒãŸã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 76「全員ã€ã¨ã€Œã‚ªãƒ¼ãƒŠãƒ¼ã€ã®å½¹å‰²ã‚’å«ã‚ã¦æœ€é«˜ã§10ã®å½¹å‰²ã‚’æŒãŸã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
80 </text> 77 </string>
81 <string name="cant_delete_role"> 78 <string name="cant_delete_role">
82 「全員ã€ã¨ã€Œã‚ªãƒ¼ãƒŠãƒ¼ã€ã¯ç‰¹åˆ¥ãªå½¹å‰²ãªã®ã§ã€å‰Šé™¤ã§ãã¾ã›ã‚“。 79 「全員ã€ã¨ã€Œã‚ªãƒ¼ãƒŠãƒ¼ã€ã¯ç‰¹åˆ¥ãªå½¹å‰²ãªã®ã§ã€å‰Šé™¤ã§ãã¾ã›ã‚“。
83 </string> 80 </string>
84 </panel> 81 </panel>
85 <panel label="能力" name="actions_sub_tab"> 82 <panel label="能力" name="actions_sub_tab">
86 <button label="検索" name="search_button" /> 83 <button label="検索" name="search_button"/>
87 <button label="ã™ã¹ã¦ã‚’表示" name="show_all_button" /> 84 <button label="ã™ã¹ã¦ã‚’表示" name="show_all_button"/>
88 <scroll_list name="action_list" tool_tip="能力をé¸æŠžã—ã¦è©³ç´°ã‚’表示ã—ã¾ã™ã€‚"> 85 <scroll_list name="action_list" tool_tip="能力をé¸æŠžã—ã¦è©³ç´°ã‚’表示ã—ã¾ã™ã€‚">
89 <column label="" name="icon" /> 86 <column label="" name="icon"/>
90 <column label="" name="action" /> 87 <column label="" name="action"/>
91 </scroll_list> 88 </scroll_list>
92 <text name="help_text"> 89 <string name="help_text">
93 ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—内ã§å½¹å‰²ã‚’与ãˆã‚‰ã‚Œã¦ã„るメンãƒãƒ¼ãŒå®Ÿè¡Œã§ãã‚‹æ“作ã¯ã€ 90 ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—内ã§å½¹å‰²ã‚’与ãˆã‚‰ã‚Œã¦ã„るメンãƒãƒ¼ãŒå®Ÿè¡Œã§ãã‚‹æ“作ã¯ã€
94能力ã«ã‚ˆã£ã¦æ±ºã¾ã‚Šã¾ã™ã€‚ ã•ã¾ã–ã¾ãªèƒ½åŠ›ãŒç”¨æ„ã•ã‚Œã¦ã„ã¾ã™ã€‚ 91能力ã«ã‚ˆã£ã¦æ±ºã¾ã‚Šã¾ã™ã€‚ ã•ã¾ã–ã¾ãªèƒ½åŠ›ãŒç”¨æ„ã•ã‚Œã¦ã„ã¾ã™ã€‚
95 </text> 92 </string>
96 </panel> 93 </panel>
97 </tab_container> 94 </tab_container>
98 <panel name="members_footer"> 95 <panel name="members_footer">
@@ -103,13 +100,12 @@ Ctrl キーを押ã—ãªãŒã‚‰ãƒ¡ãƒ³ãƒãƒ¼åをクリックã™ã‚‹ã¨
103 許å¯ã•ã‚ŒãŸèƒ½åŠ› 100 許å¯ã•ã‚ŒãŸèƒ½åŠ›
104 </text> 101 </text>
105 <scroll_list name="member_assigned_roles"> 102 <scroll_list name="member_assigned_roles">
106 <column label="" name="checkbox" /> 103 <column label="" name="checkbox"/>
107 <column label="" name="role" /> 104 <column label="" name="role"/>
108 </scroll_list> 105 </scroll_list>
109 <scroll_list name="member_allowed_actions" 106 <scroll_list name="member_allowed_actions" tool_tip="許å¯ã•ã‚ŒãŸèƒ½åŠ›ã®è©³ç´°ã¯ã€Œèƒ½åŠ›ã€ã‚¿ãƒ–ã‚’ã”覧ãã ã•ã„。">
110 tool_tip="許å¯ã•ã‚ŒãŸèƒ½åŠ›ã®è©³ç´°ã¯ã€Œèƒ½åŠ›ã€ã‚¿ãƒ–ã‚’ã”覧ãã ã•ã„。"> 107 <column label="" name="icon"/>
111 <column label="" name="icon" /> 108 <column label="" name="action"/>
112 <column label="" name="action" />
113 </scroll_list> 109 </scroll_list>
114 </panel> 110 </panel>
115 <panel name="roles_footer"> 111 <panel name="roles_footer">
@@ -134,17 +130,14 @@ Ctrl キーを押ã—ãªãŒã‚‰ãƒ¡ãƒ³ãƒãƒ¼åをクリックã™ã‚‹ã¨
134 <text name="static4"> 130 <text name="static4">
135 割当られãŸãƒ¡ãƒ³ãƒãƒ¼ 131 割当られãŸãƒ¡ãƒ³ãƒãƒ¼
136 </text> 132 </text>
137 <text name="static5" 133 <text name="static5" tool_tip="ç¾åœ¨é¸æŠžã•ã‚Œã¦ã„る役割ã§å®Ÿè¡Œã§ãる能力ã®ãƒªã‚¹ãƒˆ">
138 tool_tip="ç¾åœ¨é¸æŠžã•ã‚Œã¦ã„る役割ã§å®Ÿè¡Œã§ãる能力ã®ãƒªã‚¹ãƒˆ">
139 許å¯ã•ã‚ŒãŸèƒ½åŠ› 134 許å¯ã•ã‚ŒãŸèƒ½åŠ›
140 </text> 135 </text>
141 <check_box label="メンãƒãƒ¼ãŒå¯è¦–状態" name="role_visible_in_list" 136 <check_box label="メンãƒãƒ¼ãŒå…¬é–‹çŠ¶æ…‹" name="role_visible_in_list" tool_tip="ã“ã®å½¹å‰²ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’グループ外ã®äººã®ä¸€èˆ¬ã‚¿ãƒ–ã«è¡¨ç¤ºã™ã‚‹ã‹ã©ã†ã‹ã‚’設定ã—ã¾ã™ã€‚"/>
142 tool_tip="ã“ã®å½¹å‰²ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’グループ外ã®äººã®ä¸€èˆ¬ã‚¿ãƒ–ã«è¡¨ç¤ºã™ã‚‹ã‹ã©ã†ã‹ã‚’設定ã—ã¾ã™ã€‚" /> 137 <scroll_list name="role_allowed_actions" tool_tip="許å¯ã•ã‚ŒãŸèƒ½åŠ›ã®è©³ç´°ã¯ã€Œèƒ½åŠ›ã€ã‚¿ãƒ–ã‚’ã”覧ãã ã•ã„。">
143 <scroll_list name="role_allowed_actions" 138 <column label="" name="icon"/>
144 tool_tip="許å¯ã•ã‚ŒãŸèƒ½åŠ›ã®è©³ç´°ã¯ã€Œèƒ½åŠ›ã€ã‚¿ãƒ–ã‚’ã”覧ãã ã•ã„。"> 139 <column label="" name="checkbox"/>
145 <column label="" name="icon" /> 140 <column label="" name="action"/>
146 <column label="" name="checkbox" />
147 <column label="" name="action" />
148 </scroll_list> 141 </scroll_list>
149 </panel> 142 </panel>
150 <panel name="actions_footer"> 143 <panel name="actions_footer">
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_groups.xml b/linden/indra/newview/skins/default/xui/ja/panel_groups.xml
index 4a672c7..785fd86 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_groups.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_groups.xml
@@ -1,16 +1,16 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="groups"> 2<panel name="groups">
3 <text name="groupdesc"> 3 <text name="groupdesc">
4 ç¾åœ¨ã‚¢ã‚¯ãƒã‚£ãƒ–ãªã‚°ãƒ«ãƒ¼ãƒ—åã¯å¤ªå­—ã§è¡¨ç¤ºã•ã‚Œã¦ã„ã¾ã™ã€‚ 4 アクティブãªï½¸ï¾žï¾™ï½°ï¾Œï¾Ÿåã¯å¤ªå­—ã§è¡¨ç¤ºã•ã‚Œã¦ã„ã¾ã™
5 </text> 5 </text>
6 <text name="groupcount"> 6 <text name="groupcount">
7 ã‚ãªãŸã¯[COUNT]グループã«æ‰€å±žã—ã¦ã„ã¾ã™ (最大[MAX])。 7 ã‚ãªãŸã¯[COUNT] グループã«æ‰€å±žã—ã¦ã„ã¾ã™ (最大[MAX])
8 </text> 8 </text>
9 <button label="IM/コール" name="IM" 9 <button label="IM/コール" name="IM"
10 tool_tip="インスタントメッセージ・セッションを開ã" /> 10 tool_tip="インスタントメッセージ・セッションを開ã" />
11 <button label="インフォ" name="Info" /> 11 <button label="情報" name="Info" />
12 <button label="アクティブ" name="Activate" /> 12 <button label="アクティブ" name="Activate" />
13 <button label="ç«‹ã¡åŽ»ã‚‹" name="Leave" /> 13 <button label="抜ãã‚‹" name="Leave" />
14 <button label="作æˆ..." name="Create" /> 14 <button label="作æˆ..." name="Create" />
15 <button label="検索..." name="Search..." /> 15 <button label="検索..." name="Search..." />
16</panel> 16</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_login.xml b/linden/indra/newview/skins/default/xui/ja/panel_login.xml
index fd97d5d..f90b012 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_login.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_login.xml
@@ -1,29 +1,31 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="panel_login"> 2<panel name="panel_login">
3 <text name="first_name_text"> 3 <text name="first_name_text" left="20">
4 ファーストãƒãƒ¼ãƒ ï¼š 4 ファーストãƒãƒ¼ãƒ ï¼š
5 </text> 5 </text>
6 <text name="last_name_text"> 6 <line_editor left="20" name="first_name_edit" width="126" />
7 <text name="last_name_text" left="158">
7 ラストãƒãƒ¼ãƒ ï¼š 8 ラストãƒãƒ¼ãƒ ï¼š
8 </text> 9 </text>
10 <line_editor left="158" name="last_name_edit" width="126" />
9 <text name="password_text"> 11 <text name="password_text">
10 パスワード: 12 パスワード:
11 </text> 13 </text>
12 <text name="start_location_text"> 14 <text name="start_location_text" left="20" >
13 ログインä½ç½®ï¼š 15 ログインä½ç½®ï¼š
14 </text> 16 </text>
15 <combo_box name="start_location_combo"> 17 <combo_box name="start_location_combo" left_delta="92" width="172">
16 <combo_item name="MyHome"> 18 <combo_item name="MyHome">
17 自宅(ホーム) 19 自宅(ホーム)
18 </combo_item> 20 </combo_item>
19 <combo_item name="MyLastLocation"> 21 <combo_item name="MyLastLocation">
20 最後ã®ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ 22 最後ã«ãƒ­ã‚°ã‚¢ã‚¦ãƒˆã—ãŸå ´æ‰€
21 </combo_item> 23 </combo_item>
22 <combo_item name="Typeregionname"> 24 <combo_item name="Typeregionname">
23 &lt;地域ã®åå‰å…¥åŠ›&gt; 25 &lt; 地域ã®åå‰å…¥åŠ› &gt;
24 </combo_item> 26 </combo_item>
25 </combo_box> 27 </combo_box>
26 <check_box label="パスワードを記憶" name="remember_check"/> 28 <check_box label="パスワードを記憶" name="remember_check" left_delta="180"/>
27 <text name="full_screen_text"> 29 <text name="full_screen_text">
28 ログイン時ã«ã¯ãƒ•ãƒ«ã‚¹ã‚¯ãƒªãƒ¼ãƒ³è¡¨ç¤ºã«ãªã‚Šã¾ã™ 30 ログイン時ã«ã¯ãƒ•ãƒ«ã‚¹ã‚¯ãƒªãƒ¼ãƒ³è¡¨ç¤ºã«ãªã‚Šã¾ã™
29 </text> 31 </text>
@@ -40,7 +42,7 @@
40 <text name="channel_text"> 42 <text name="channel_text">
41 [CHANNEL] [VERSION] 43 [CHANNEL] [VERSION]
42 </text> 44 </text>
43 <text name="forgot_password_text"> 45 <text name="forgot_password_text" left="-230" width="220">
44 åå‰ã¾ãŸã¯ãƒ‘スワードをãŠå¿˜ã‚Œã§ã™ã‹? 46 åå‰ã¾ãŸã¯ãƒ‘スワードをãŠå¿˜ã‚Œã§ã™ã‹?
45 </text> 47 </text>
46 <text name="forgot_password_url"> 48 <text name="forgot_password_url">
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_place.xml b/linden/indra/newview/skins/default/xui/ja/panel_place.xml
index 7339a05..1fa0d02 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_place.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_place.xml
@@ -33,7 +33,7 @@
33 土地情報ã®ã”利用ã«ã¯ã€ã‚µãƒ¼ãƒãƒ¼ã®ã‚¢ãƒƒãƒ—デートãŒå¿…è¦ã§ã™ã€‚ 33 土地情報ã®ã”利用ã«ã¯ã€ã‚µãƒ¼ãƒãƒ¼ã®ã‚¢ãƒƒãƒ—デートãŒå¿…è¦ã§ã™ã€‚
34 </text> 34 </text>
35 <text name="server_error_text"> 35 <text name="server_error_text">
36 ç¾åœ¨ã®æ‰€åœ¨åœ°ã«ã¤ã„ã¦ã®æƒ…å ±ã¯ç¾åœ¨ã”利用ã§ãã¾ã›ã‚“。時間をãŠã„ã¦ã€å†åº¦ã€è©¦ã¿ã¦ãã ã•ã„。 36 ã“ã®ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã®æƒ…å ±ã¯ç¾åœ¨ã”利用ã§ãã¾ã›ã‚“。時間をãŠã„ã¦å†åº¦ãŠè©¦ã—ãã ã•ã„。
37 </text> 37 </text>
38 <text name="server_forbidden_text"> 38 <text name="server_forbidden_text">
39 ç¾åœ¨ã®æ‰€åœ¨åœ°ã«ã¤ã„ã¦ã®æƒ…å ±ã¯ã€ã‚¢ã‚¯ã‚»ã‚¹åˆ¶é™ã®ãŸã‚利用ã§ãã¾ã›ã‚“。区画所有者ã®è¨±å¯ãŒã‚ã‚‹ã‹ã©ã†ã‹ã”確èªãã ã•ã„。 39 ç¾åœ¨ã®æ‰€åœ¨åœ°ã«ã¤ã„ã¦ã®æƒ…å ±ã¯ã€ã‚¢ã‚¯ã‚»ã‚¹åˆ¶é™ã®ãŸã‚利用ã§ãã¾ã›ã‚“。区画所有者ã®è¨±å¯ãŒã‚ã‚‹ã‹ã©ã†ã‹ã”確èªãã ã•ã„。
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_place_small.xml b/linden/indra/newview/skins/default/xui/ja/panel_place_small.xml
index 32e3520..1b5e6e0 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_place_small.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_place_small.xml
@@ -33,7 +33,7 @@
33 土地情報ã®ã”利用ã«ã¯ã€ã‚µãƒ¼ãƒãƒ¼ã®ã‚¢ãƒƒãƒ—デートãŒå¿…è¦ã§ã™ã€‚ 33 土地情報ã®ã”利用ã«ã¯ã€ã‚µãƒ¼ãƒãƒ¼ã®ã‚¢ãƒƒãƒ—デートãŒå¿…è¦ã§ã™ã€‚
34 </text> 34 </text>
35 <text name="server_error_text"> 35 <text name="server_error_text">
36 ç¾åœ¨ã®æ‰€åœ¨åœ°ã«ã¤ã„ã¦ã®æƒ…å ±ãŒç¾åœ¨ã”利用ã§ãã¾ã›ã‚“。時間をãŠã„ã¦ã€å†åº¦ã€è©¦ã¿ã¦ãã ã•ã„。 36 ã“ã®ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã®æƒ…å ±ã¯ç¾åœ¨ã”利用ã§ãã¾ã›ã‚“。時間をãŠã„ã¦å†åº¦ãŠè©¦ã—ãã ã•ã„。
37 </text> 37 </text>
38 <text name="server_forbidden_text"> 38 <text name="server_forbidden_text">
39 ç¾åœ¨ã®æ‰€åœ¨åœ°ã«ã¤ã„ã¦ã®æƒ…å ±ã¯ã€ã‚¢ã‚¯ã‚»ã‚¹åˆ¶é™ã®ãŸã‚ã”利用ã§ãã¾ã›ã‚“。区画所有者ã®è¨±å¯ãŒã‚ã‚‹ã‹ã©ã†ã‹ã”確èªãã ã•ã„。 39 ç¾åœ¨ã®æ‰€åœ¨åœ°ã«ã¤ã„ã¦ã®æƒ…å ±ã¯ã€ã‚¢ã‚¯ã‚»ã‚¹åˆ¶é™ã®ãŸã‚ã”利用ã§ãã¾ã›ã‚“。区画所有者ã®è¨±å¯ãŒã‚ã‚‹ã‹ã©ã†ã‹ã”確èªãã ã•ã„。
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_preferences_audio.xml b/linden/indra/newview/skins/default/xui/ja/panel_preferences_audio.xml
index dca2be9..9a8d175 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_preferences_audio.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_preferences_audio.xml
@@ -39,7 +39,7 @@
39 <slider label="é éš”è¦å› " name="Distance Factor" /> 39 <slider label="é éš”è¦å› " name="Distance Factor" />
40 <slider label="ロールオフ係数" name="Rolloff Factor" /> 40 <slider label="ロールオフ係数" name="Rolloff Factor" />
41 <spinner label="L$変更基準点" name="L$ Change Threshold" /> 41 <spinner label="L$変更基準点" name="L$ Change Threshold" />
42 <spinner label="å¥åº·å¤‰åŒ–基準点" name="Health Change Threshold" /> 42 <spinner label="ヘルス変化基準点" name="Health Change Threshold" />
43 <text type="string" length="1" name="doppler_effect_text"> 43 <text type="string" length="1" name="doppler_effect_text">
44 オーディオ環境設定: 44 オーディオ環境設定:
45 </text> 45 </text>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
index 1ad08fb..e22aca4 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
@@ -3,7 +3,7 @@
3 <text length="1" name="text_box" type="string"> 3 <text length="1" name="text_box" type="string">
4 ãƒãƒ£ãƒƒãƒˆã®ãƒ•ã‚©ãƒ³ãƒˆï¼š 4 ãƒãƒ£ãƒƒãƒˆã®ãƒ•ã‚©ãƒ³ãƒˆï¼š
5 </text> 5 </text>
6 <radio_group name="chat font size"> 6 <radio_group name="chat_font_size">
7 <radio_item length="1" name="radio" type="string"> 7 <radio_item length="1" name="radio" type="string">
8 å° 8 å°
9 </radio_item> 9 </radio_item>
@@ -17,13 +17,13 @@
17 <text length="1" name="text_box2" type="string"> 17 <text length="1" name="text_box2" type="string">
18 ãƒãƒ£ãƒƒãƒˆãƒ»ã‚«ãƒ©ãƒ¼ï¼š 18 ãƒãƒ£ãƒƒãƒˆãƒ»ã‚«ãƒ©ãƒ¼ï¼š
19 </text> 19 </text>
20 <color_swatch label="è²´æ–¹" name="user"/> 20 <color_swatch label="è²´æ–¹" name="user" width="56"/>
21 <color_swatch label="ãã®ä»–" name="agent"/> 21 <color_swatch label="ãã®ä»–" name="agent" left_delta="60"/>
22 <color_swatch label="IM" name="im"/> 22 <color_swatch label="IM" name="im"/>
23 <color_swatch label="システム" name="system"/> 23 <color_swatch label="システム" name="system"/>
24 <color_swatch label="ãƒãƒ£ãƒƒãƒˆ" name="users"/> 24 <color_swatch label="ãƒãƒ£ãƒƒãƒˆ" name="users"/>
25 <color_swatch label="所有者" name="objects"/> 25 <color_swatch label="オブジェクト" name="objects" width="56"/>
26 <color_swatch label="所有者" name="owner"/> 26 <color_swatch label="所有者" name="owner" left_delta="60"/>
27 <color_swatch label="å¹å‡ºã—" name="background"/> 27 <color_swatch label="å¹å‡ºã—" name="background"/>
28 <color_swatch label="URL" name="links"/> 28 <color_swatch label="URL" name="links"/>
29 <text length="1" name="text_box3" type="string"> 29 <text length="1" name="text_box3" type="string">
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
index dabf9e8..4c00e9d 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -1,26 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="一般" name="general_panel"> 2<panel label="一般" name="general_panel">
3 <combo_box name="location_combobox"> 3 <radio_group name="default_start_location">
4 <combo_item name="MyHome"> 4 <radio_item name="MyHome" tool_tip="常ã«è‡ªå®…(ホーム)ã«ãƒ­ã‚°ã‚¤ãƒ³">
5 自宅(ホーム) 5 自宅(ホーム)
6 </combo_item>
7 <combo_item name="MyLastLocation">
8 最後ã®ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³
9 </combo_item>
10 </combo_box>
11 <check_box label="ログイン画é¢ã«é–‹å§‹ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚’表示"
12 name="show_location_checkbox" />
13 <radio_group name="fade_out_radio">
14 <radio_item type="string" length="1" name="Never">
15 ãªã—
16 </radio_item> 6 </radio_item>
17 <radio_item type="string" length="1" name="Temporarily"> 7 <radio_item name="MyLastLocation" tool_tip="常ã«æœ€å¾Œã«ã„ãŸå ´æ‰€ã«ãƒ­ã‚°ã‚¤ãƒ³">
18 一時的ã«è¡¨ç¤º 8 最後ã«ãƒ­ã‚°ã‚¢ã‚¦ãƒˆã—ãŸå ´æ‰€
19 </radio_item>
20 <radio_item type="string" length="1" name="Always">
21 ã„ã¤ã‚‚
22 </radio_item> 9 </radio_item>
23 </radio_group> 10 </radio_group>
11 <check_box label="ログイン画é¢ã«ãƒ­ã‚°ã‚¤ãƒ³ä½ç½®ã‚’表示" name="show_location_checkbox"/>
24 <combo_box name="fade_out_combobox"> 12 <combo_box name="fade_out_combobox">
25 <combo_item name="Never"> 13 <combo_item name="Never">
26 ãªã— 14 ãªã—
@@ -32,100 +20,95 @@
32 ã„ã¤ã‚‚ 20 ã„ã¤ã‚‚
33 </combo_item> 21 </combo_item>
34 </combo_box> 22 </combo_box>
35 <check_box label="ç”»é¢ä¸Šã§è‡ªåˆ†ã®åå‰ã‚’éš ã™" name="show_my_name_checkbox" /> 23 <check_box label="å°ã•ãªã‚¢ãƒã‚¿ãƒ¼å" name="small_avatar_names_checkbox"/>
24 <check_box label="ç”»é¢ä¸Šã§è‡ªåˆ†ã®åå‰ã‚’éš ã™" name="show_my_name_checkbox"/>
36 <text name="group_titles_textbox"> 25 <text name="group_titles_textbox">
37 グループ・タイトル: 26 グループ・タイトル:
38 </text> 27 </text>
39 <check_box label="グループ・タイトルをã™ã¹ã¦éžè¡¨ç¤º" 28 <check_box label="グループ・タイトルをã™ã¹ã¦éžè¡¨ç¤º" name="show_all_title_checkbox"/>
40 name="show_all_title_checkbox" /> 29 <check_box label="ç”»é¢ä¸Šã§è‡ªåˆ†ã®ã‚°ãƒ«ãƒ¼ãƒ—・タイトルを隠ã™" name="show_my_title_checkbox"/>
41 <check_box label="自分ã®ã‚°ãƒ«ãƒ¼ãƒ—・タイトルを隠ã™" 30 <color_swatch label="" name="effect_color_swatch" tool_tip="カラー・ピッカーをクリックã—ã¦é–‹ã"/>
42 name="show_my_title_checkbox" />
43 <check_box label="å°ã•ãªã‚¢ãƒã‚¿ãƒ¼å" name="small_avatar_names_checkbox" />
44 <color_swatch label="" name="effect_color_swatch"
45 tool_tip="カラー・ピッカーをクリックã—ã¦é–‹ã" />
46 <text name="UI Size:"> 31 <text name="UI Size:">
47 UI サイズ: 32 UI サイズ:
48 </text> 33 </text>
49 <check_box label="解åƒåº¦ç‹¬ç«‹ã‚¹ã‚±ãƒ¼ãƒ«ã‚’使用" name="ui_auto_scale" /> 34 <check_box label="解åƒåº¦ç‹¬ç«‹ã‚¹ã‚±ãƒ¼ãƒ«ã‚’使用" name="ui_auto_scale"/>
50 <spinner label="退席ã¾ã§ã®æ™‚間:" name="afk_timeout_spinner" /> 35 <spinner label="退席ã¾ã§ã®æ™‚間:" name="afk_timeout_spinner"/>
51 <check_box label="オンライン・フレンド通知を表示" 36 <check_box label="ミニマップを回転" name="rotate_mini_map_checkbox"/>
52 name="friends_online_notify_checkbox" /> 37 <check_box label="リンデン・ドル(L$)ã®æ”¯æ‰•ã„/å—ã‘å–りを通知" name="notify_money_change_checkbox"/>
53 <check_box label="ミニマップを回転" name="rotate_mini_map_checkbox" /> 38 <check_box label="デフォルト・システムã®ã‚«ãƒ©ãƒ¼é¸æŠžã‚’使用" name="use_system_color_picker_checkbox" tool_tip="Second Life内蔵ã§ãªã„ã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆãƒ»ã‚·ã‚¹ãƒ†ãƒ ã®ã‚«ãƒ©ãƒ¼é¸æŠžã‚’使用"/>
54 <check_box label="リンデン・ドル(L$)ã®æ”¯æ‰•ã„/å—ã‘å–りを通知" 39 <check_box label="オーãƒãƒ¼ãƒ¬ã‚¤ãƒ»ãƒãƒ¼ã«æ¤œç´¢ãƒ‘ãƒãƒ«ã‚’表示" name="show_search_panel" tool_tip="組ã¿è¾¼ã¿ã®æ¤œç´¢ãƒ‘ãƒãƒ«ã‚’表示ã—ã¾ã™ã€‚"/>
55 name="notify_money_change_checkbox" /> 40 <text length="1" name="start_location_textbox" type="string">
56 <check_box label="次回起動時グラフィックカード自動検出"
57 name="probe_hardware_checkbox"
58 tool_tip="Second Lifeã¯ã€ã‚ãªãŸã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã«åŸºã¥ã„ã¦ã€ã„ãã¤ã‹ã®ã‚°ãƒ©ãƒ•ã‚£ãƒƒã‚¯è¨­å®šã‚’自動的ã«æ§‹æˆã—ã¾ã™ã€‚ æ–°ã—ã„ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚’インストールã—ãŸå ´åˆã¯ã€Second Lifeã«å†åº¦æ¤œå‡ºã•ã›ã‚‹ã‚ˆã†ã«ã—ã¦ãã ã•ã„。" />
59 <check_box label="デフォルト・システムã®ã‚«ãƒ©ãƒ¼é¸æŠžã‚’使用"
60 name="use_system_color_picker_checkbox"
61 tool_tip="Second Life内蔵ã§ãªã„ã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆãƒ»ã‚·ã‚¹ãƒ†ãƒ ã®ã‚«ãƒ©ãƒ¼é¸æŠžã‚’使用" />
62 <check_box label="オーãƒãƒ¼ãƒ¬ã‚¤ãƒ»ãƒãƒ¼ã«æ¤œç´¢ãƒ‘ãƒãƒ«ã‚’表示"
63 name="show_search_panel"
64 tool_tip="組ã¿è¾¼ã¿ã®æ¤œç´¢ãƒ‘ãƒãƒ«ã‚’表示ã—ã¾ã™ã€‚" />
65 <text type="string" length="1" name="start_location_textbox">
66 ログインä½ç½®ï¼š 41 ログインä½ç½®ï¼š
67 </text> 42 </text>
68 <text type="string" length="1" name="show_names_textbox"> 43 <text length="1" name="show_names_textbox" type="string">
69 åå‰ã‚’表示: 44 åå‰ã‚’表示:
70 </text> 45 </text>
71 <text type="string" length="1" name="effects_color_textbox"> 46 <text length="1" name="effects_color_textbox" type="string">
72 自分ã®åŠ¹æžœã®è‰²ï¼š 47 自分ã®åŠ¹æžœã®è‰²ï¼š
73 </text> 48 </text>
74 <text type="string" length="1" name="seconds_textbox"> 49 <text length="1" name="seconds_textbox" type="string">
75 秒 50 秒
76 </text> 51 </text>
77 <text type="string" length="1" name="crash_report_textbox"> 52 <text length="1" name="crash_report_textbox" type="string">
78 クラッシュ報告: 53 クラッシュ報告:
79 </text> 54 </text>
80 <text type="string" length="1" name="language_textbox"> 55 <text length="1" name="language_textbox" type="string">
81 言語: 56 言語:
82 </text> 57 </text>
83 <text type="string" length="1" name="language_textbox2"> 58 <text length="1" name="language_textbox2" type="string">
84 (å†èµ·å‹•ã«ã¦å映) 59 (å†èµ·å‹•ã«ã¦å映)
85 </text> 60 </text>
86 <text name="region_name_prompt"> 61 <string name="region_name_prompt">
87 &lt;地域ã®åå‰å…¥åŠ›&gt; 62 &lt;地域ã®åå‰å…¥åŠ›&gt;
88 </text> 63 </string>
89 <combo_box name="crash_behavior_combobox"> 64 <combo_box name="crash_behavior_combobox">
90 <combo_item type="string" length="1" name="Askbeforesending"> 65 <combo_item length="1" name="Askbeforesending" type="string">
91 é€ã‚‹å‰ã«ç¢ºèªã™ã‚‹ 66 é€ã‚‹å‰ã«ç¢ºèªã™ã‚‹
92 </combo_item> 67 </combo_item>
93 <combo_item type="string" length="1" name="Alwayssend"> 68 <combo_item length="1" name="Alwayssend" type="string">
94 常ã«é€ä¿¡ 69 常ã«é€ä¿¡
95 </combo_item> 70 </combo_item>
96 <combo_item type="string" length="1" name="Neversend"> 71 <combo_item length="1" name="Neversend" type="string">
97 é€ä¿¡ã—ãªã„ 72 é€ä¿¡ã—ãªã„
98 </combo_item> 73 </combo_item>
99 </combo_box> 74 </combo_box>
100 <combo_box name="language_combobox"> 75 <combo_box name="language_combobox">
101 <combo_item type="string" length="1" name="System Default Language"> 76 <combo_item length="1" name="System Default Language" type="string">
102 システム・デフォルト 77 システム・デフォルト
103 </combo_item> 78 </combo_item>
104 <combo_item type="string" length="1" name="English"> 79 <combo_item length="1" name="English" type="string">
105 English (英語) 80 English (英語)
106 </combo_item> 81 </combo_item>
107 <combo_item type="string" length="1" name="Chinese"> 82 <combo_item length="1" name="Danish" type="string">
108 汉语/漢語(中国語) – ベータ 83 Dansk (デンマーク語) – ベータ
109 </combo_item> 84 </combo_item>
110 <combo_item type="string" length="1" name="Deutsch(German)"> 85 <combo_item length="1" name="Deutsch(German)" type="string">
111 Deutsch (ドイツ語) – ベータ 86 Deutsch (ドイツ語) – ベータ
112 </combo_item> 87 </combo_item>
113 <combo_item type="string" length="1" name="French"> 88 <combo_item length="1" name="Spanish" type="string">
89 Español (スペイン語) – ベータ
90 </combo_item>
91 <combo_item length="1" name="French" type="string">
114 Français (フランス語) – ベータ 92 Français (フランス語) – ベータ
115 </combo_item> 93 </combo_item>
116 <combo_item type="string" length="1" name="(Japanese)"> 94 <combo_item name="Hungarian">
117 日本語 – ベータ 95 Magyar (ãƒãƒ³ã‚¬ãƒªãƒ¼èªž) - ベータ
118 </combo_item> 96 </combo_item>
119 <combo_item type="string" length="1" name="(Korean)"> 97 <combo_item name="Polish">
120 한국어 (韓国語) – ベータ 98 Polski (ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªž) - ベータ
121 </combo_item> 99 </combo_item>
122 <combo_item type="string" length="1" name="Portugese"> 100 <combo_item length="1" name="Portugese" type="string">
123 Português (ãƒãƒ«ãƒˆã‚¬ãƒ«èªž) – ベータ 101 Português (ãƒãƒ«ãƒˆã‚¬ãƒ«èªž) – ベータ
124 </combo_item> 102 </combo_item>
125 <combo_item type="string" length="1" name="Spanish"> 103 <combo_item length="1" name="Chinese" type="string">
126 Español (スペイン語) – ベータ 104 中文 (简体) (中国語) - ベータ
105 </combo_item>
106 <combo_item length="1" name="(Japanese)" type="string">
107 日本語 – ベータ
108 </combo_item>
109 <combo_item length="1" name="(Korean)" type="string">
110 한국어 (韓国語) – ベータ
127 </combo_item> 111 </combo_item>
128 </combo_box> 112 </combo_box>
129 <check_box label="言語をオブジェクトã¨å…±æœ‰" name="language_is_public" 113 <check_box label="言語をオブジェクトã¨å…±æœ‰" name="language_is_public" tool_tip="優先言語をインワールドã®ã‚ªãƒ–ジェクトãŒèªè­˜ã™ã‚‹"/>
130 tool_tip="優先言語をインワールドã®ã‚ªãƒ–ジェクトãŒèªè­˜ã™ã‚‹" />
131</panel> 114</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml b/linden/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
index e7311d0..167bc2a 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
@@ -69,12 +69,12 @@
69 </text> 69 </text>
70 <check_box label="解åƒåº¦å˜ç‹¬ã‚¹ã‚±ãƒ¼ãƒ«ã‚’使用" name="ui_auto_scale" /> 70 <check_box label="解åƒåº¦å˜ç‹¬ã‚¹ã‚±ãƒ¼ãƒ«ã‚’使用" name="ui_auto_scale" />
71 <spinner label="æç”»è·é›¢ï¼š" name="draw_distance" /> 71 <spinner label="æç”»è·é›¢ï¼š" name="draw_distance" />
72 <check_box label="ã‚¢ãƒã‚¿ãƒ¼ã‚’マウスルックã§è¡¨ç¤º" name="avfp" /> 72 <check_box label="ã‚¢ãƒã‚¿ãƒ¼ã‚’一人称視点(マウスルック)ã§è¡¨ç¤º" name="avfp" />
73 <text name="HigherText"> 73 <text name="HigherText">
74 å“質ãŠã‚ˆã³ 74 å“質ãŠã‚ˆã³
75 </text> 75 </text>
76 <text name="QualityText"> 76 <text name="QualityText">
77 実行: 77 パフォーマンス:
78 </text> 78 </text>
79 <text name="FasterText"> 79 <text name="FasterText">
80 速ㄠ80 速ã„
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/ja/panel_preferences_im.xml
index 551d862..16e11ab 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_preferences_im.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_preferences_im.xml
@@ -8,7 +8,7 @@
8 IMオプション: 8 IMオプション:
9 </text> 9 </text>
10 <text name="log_in_to_change"> 10 <text name="log_in_to_change">
11 変更時ã«ãƒ­ã‚°ã‚¤ãƒ³ 11 ログインã—ã¦å¤‰æ›´ã—ã¦ãã ã•ã„
12 </text> 12 </text>
13 <check_box label="IMã‚’é›»å­ãƒ¡ãƒ¼ãƒ«ï¼ˆ[EMAIL])ã¸é€ä¿¡" name="send_im_to_email"/> 13 <check_box label="IMã‚’é›»å­ãƒ¡ãƒ¼ãƒ«ï¼ˆ[EMAIL])ã¸é€ä¿¡" name="send_im_to_email"/>
14 <check_box label="ローカルãƒãƒ£ãƒƒãƒˆã«IMã‚’å«ã‚ã‚‹" name="include_im_in_chat_history"/> 14 <check_box label="ローカルãƒãƒ£ãƒƒãƒˆã«IMã‚’å«ã‚ã‚‹" name="include_im_in_chat_history"/>
@@ -26,6 +26,7 @@
26 <check_box label="タイムスタンプã«æ—¥ä»˜ã‚’加ãˆã‚‹" name="log_date_timestamp"/> 26 <check_box label="タイムスタンプã«æ—¥ä»˜ã‚’加ãˆã‚‹" name="log_date_timestamp"/>
27 <button label="パス変更" label_selected="パス変更" name="log_path_button"/> 27 <button label="パス変更" label_selected="パス変更" name="log_path_button"/>
28 <text length="1" name="text_box3" type="string"> 28 <text length="1" name="text_box3" type="string">
29 ログインオプション: 29 å–ã‚Šè¾¼ã¿ä¸­
30応答メッセージ:
30 </text> 31 </text>
31</panel> 32</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/ja/panel_preferences_input.xml
index b24b01e..c84ae62 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_preferences_input.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_preferences_input.xml
@@ -1,16 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="æ“作ã¨ã‚«ãƒ¡ãƒ©" name="Input panel"> 2<panel label="æ“作ã¨ã‚«ãƒ¡ãƒ©" name="Input panel">
3 <text name=" Mouselook Options:"> 3 <text name=" Mouselook Options:">
4 マウスルック: 4 一人称視点
5(マウスルック):
5 </text> 6 </text>
6 <text name=" Mouse Sensitivity:"> 7 <text name=" Mouse Sensitivity:">
7 感度: 8 感度:
8 </text> 9 </text>
9 <check_box label="上下をå転" name="invert mouse"/> 10 <check_box label="上下をå転" name="invert_mouse"/>
10 <text name=" Auto Fly Options:"> 11 <text name=" Auto Fly Options:">
11 自動飛行オプション: 12 自動飛行オプション:
12 </text> 13 </text>
13 <check_box label="上下矢å°ã‚­ãƒ¼ã®é•·æŠ¼ã—ã§é£›è¡Œï¼ç€åœ°" name="automatic fly"/> 14 <check_box label="上下矢å°ã‚­ãƒ¼ã®é•·æŠ¼ã—ã§é£›è¡Œï¼ç€åœ°" name="automatic_fly"/>
14 <text name=" Camera Options:"> 15 <text name=" Camera Options:">
15 カメラ・オプション: 16 カメラ・オプション:
16 </text> 17 </text>
@@ -23,15 +24,15 @@
23 <text name="Camera Smoothing:"> 24 <text name="Camera Smoothing:">
24 カメラ・スムージング: 25 カメラ・スムージング:
25 </text> 26 </text>
26 <check_box label="編集カメラã®è‡ªå‹•ç§»å‹•" name="edit camera movement" tool_tip="編集モードã®é–‹å§‹ã€çµ‚了時ã¯ã‚«ãƒ¡ãƒ©è‡ªå‹•ä½ç½®èª¿æ•´ã‚’使用"/> 27 <check_box label="編集カメラã®è‡ªå‹•ç§»å‹•" name="edit_camera_movement" tool_tip="編集モードã®é–‹å§‹ã€çµ‚了時ã¯ã‚«ãƒ¡ãƒ©è‡ªå‹•ä½ç½®èª¿æ•´ã‚’使用"/>
27 <check_box label="容姿カメラã®è‡ªå‹•ç§»å‹•" name="appearance camera movement" tool_tip="編集モードã§ã¯ã€ã‚«ãƒ¡ãƒ©è‡ªå‹•ä½ç½®èª¿æ•´ã‚’使用"/> 28 <check_box label="容姿カメラã®è‡ªå‹•ç§»å‹•" name="appearance_camera_movement" tool_tip="編集モードã§ã¯ã€ã‚«ãƒ¡ãƒ©è‡ªå‹•ä½ç½®èª¿æ•´ã‚’使用"/>
28 <text name="text2"> 29 <text name="text2">
29 ã‚¢ãƒã‚¿ãƒ¼è¡¨ç¤ºï¼š 30 ã‚¢ãƒã‚¿ãƒ¼è¡¨ç¤ºï¼š
30 </text> 31 </text>
31 <check_box label="ã‚¢ãƒã‚¿ãƒ¼ã‚’マウスルックã§è¡¨ç¤º" name="avfp"/> 32 <check_box label="ã‚¢ãƒã‚¿ãƒ¼ã‚’一人称視点(マウスルック)ã§è¡¨ç¤º" name="first_person_avatar_visible"/>
32 <text name="text5"> 33 <text name="text5">
33 ジョイスティック 34 ジョイスティック
34オプション: 35オプション:
35 </text> 36 </text>
36 <button label="ジョイスティック設定" name="joystic_setup_button"/> 37 <button label="ジョイスティック設定" name="joystick_setup_button"/>
37</panel> 38</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_preferences_network.xml b/linden/indra/newview/skins/default/xui/ja/panel_preferences_network.xml
index 1c65481..729a1f8 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_preferences_network.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_preferences_network.xml
@@ -1,20 +1,23 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯" name="network"> 2<panel label="ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯" name="network">
3 <text type="string" length="1" name="text_box"> 3 <text length="1" name="text_box" type="string">
4 最大帯域幅: 4 最大帯域幅:
5 </text> 5 </text>
6 <text type="string" length="1" name="text_box2"> 6 <text length="1" name="text_box2" type="string">
7 Kbps 7 kbps
8 </text> 8 </text>
9 <text type="string" length="1" name="cache_size_label_l"> 9 <text length="1" name="cache_size_label_l" type="string">
10 キャッシュ: 10 キャッシュ:
11 </text> 11 </text>
12 <button label="クリア" name="clear_cache" /> 12 <text name="text_box5">
13 <text type="string" length="1" name="cache_location_label"> 13 MB
14 </text>
15 <button label="クリア" name="clear_cache"/>
16 <text length="1" name="cache_location_label" type="string">
14 キャッシュã®å ´æ‰€ï¼š 17 キャッシュã®å ´æ‰€ï¼š
15 </text> 18 </text>
16 <button label="設定" label_selected="設定" name="set_cache" /> 19 <button label="設定" label_selected="設定" name="set_cache"/>
17 <button label="リセット" label_selected="設定" name="reset_cache" /> 20 <button label="リセット" label_selected="設定" name="reset_cache"/>
18 <check_box label="カスタム・ãƒãƒ¼ãƒˆæŽ¥ç¶š" name="connection_port_enabled" /> 21 <check_box label="カスタム・ãƒãƒ¼ãƒˆæŽ¥ç¶š" name="connection_port_enabled"/>
19 <spinner label="ãƒãƒ¼ãƒˆç•ªå·ï¼š" name="connection_port" /> 22 <spinner label="ãƒãƒ¼ãƒˆç•ªå·ï¼š" name="connection_port"/>
20</panel> 23</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_preferences_voice.xml b/linden/indra/newview/skins/default/xui/ja/panel_preferences_voice.xml
index 17305db..c5fde2c 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_preferences_voice.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_preferences_voice.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="ボイスãƒãƒ£ãƒƒãƒˆ" name="chat"> 2<panel label="ボイスãƒãƒ£ãƒƒãƒˆ" name="chat">
3 <text_editor name="voice_unavailable"> 3 <text_editor name="voice_unavailable">
4 ボイスãƒãƒ£ãƒƒãƒˆã‚’利用ã§ãã¾ã›ã‚“ 4 ボイスãƒãƒ£ãƒƒãƒˆã‚’利用ã§ãã¾ã›ã‚“
5 </text_editor> 5 </text_editor>
6 <check_box label="ボイスãƒãƒ£ãƒƒãƒˆã‚’有効ã«ã™ã‚‹" name="enable_voice_check" /> 6 <check_box label="ボイスãƒãƒ£ãƒƒãƒˆã‚’有効ã«ã™ã‚‹" name="enable_voice_check"/>
7 <radio_group name="ear_location"> 7 <radio_group name="ear_location">
8 <radio_item name="0"> 8 <radio_item name="0">
9 カメラã®ä½ç½®ã‹ã‚‰ãƒœã‚¤ã‚¹ãƒãƒ£ãƒƒãƒˆã‚’èžã。 9 カメラã®ä½ç½®ã‹ã‚‰ãƒœã‚¤ã‚¹ãƒãƒ£ãƒƒãƒˆã‚’èžã。
@@ -18,24 +18,20 @@
18 <text_editor name="voice_chat_description"> 18 <text_editor name="voice_chat_description">
19 メモ: 「機器ã®è¨­å®šã€ã¾ãŸã¯ã€Œãƒœã‚¤ã‚¹ãƒ»ãƒãƒ£ãƒƒãƒˆã®è¨­å®šã€ã‚’実行ã™ã‚‹ã¨ã€ä¸€æ™‚çš„ã«ãƒœã‚¤ã‚¹ãƒ»ãƒãƒ£ãƒƒãƒˆã‹ã‚‰åˆ‡æ–­ã•ã‚Œã¾ã™ã€‚ 19 メモ: 「機器ã®è¨­å®šã€ã¾ãŸã¯ã€Œãƒœã‚¤ã‚¹ãƒ»ãƒãƒ£ãƒƒãƒˆã®è¨­å®šã€ã‚’実行ã™ã‚‹ã¨ã€ä¸€æ™‚çš„ã«ãƒœã‚¤ã‚¹ãƒ»ãƒãƒ£ãƒƒãƒˆã‹ã‚‰åˆ‡æ–­ã•ã‚Œã¾ã™ã€‚
20 </text_editor> 20 </text_editor>
21 <check_box label="プッシュ・トゥ・トークモードã§ãƒ“ュアーを起動" 21 <check_box label="プッシュ・トゥ・トークモードã§ãƒ“ュアーを起動" name="push_to_talk_check"/>
22 name="push_to_talk_check" /> 22 <check_box label="切り替ãˆãƒ¢ãƒ¼ãƒ‰ã§ã€ãƒ—ッシュ・トゥ・トークを使用" name="push_to_talk_toggle_check"/>
23 <check_box label="切り替ãˆãƒ¢ãƒ¼ãƒ‰ã§ã€ãƒ—ッシュ・トゥ・トークを使用"
24 name="push_to_talk_toggle_check" />
25 <text name="push_to_talk_label"> 23 <text name="push_to_talk_label">
26 プッシュ・トゥ・トークトリガー: 24 プッシュ・トゥ・トークトリガー:
27 </text> 25 </text>
28 <button label="セットキー" name="set_voice_hotkey_button" /> 26 <button label="キー設定" name="set_voice_hotkey_button"/>
29 <button label="ミドルマウスボタン" name="set_voice_middlemouse_button" /> 27 <button label="ミドルマウスボタン" name="set_voice_middlemouse_button"/>
30 <text name="privacy_heading"> 28 <text name="privacy_heading">
31 プライãƒã‚·ãƒ¼ã‚ªãƒ—ション 29 プライãƒã‚·ãƒ¼ã‚ªãƒ—ション
32 </text> 30 </text>
33 <check_box 31 <check_box label="自分ã®ãƒ•ãƒ¬ãƒ³ãƒ‰ãƒªã‚¹ãƒˆã«ã‚る人ã‹ã‚‰ã®ã¿ã€ãƒœã‚¤ã‚¹ã‚³ãƒ¼ãƒ«ã‚’å—ã‘付ã‘ã‚‹" name="voice_call_friends_only_check"/>
34 label="自分ã®ãƒ•ãƒ¬ãƒ³ãƒ‰ãƒªã‚¹ãƒˆã«ã‚る人ã‹ã‚‰ã®ã¿ã€ãƒœã‚¤ã‚¹ã‚³ãƒ¼ãƒ«ã‚’å—ã‘付ã‘ã‚‹"
35 name="voice_call_friends_only_check" />
36 <text_editor name="device_settings_text"> 32 <text_editor name="device_settings_text">
37 注æ„:「機器ã®è¨­å®šã€ã‚’実行ã™ã‚‹ã¨ã€ä¸€æ™‚çš„ã«ãƒœã‚¤ã‚¹ãƒ»ãƒãƒ£ãƒƒãƒˆã‹ã‚‰åˆ‡æ–­ã•ã‚Œã¾ã™ã€‚ 33 注æ„:「機器ã®è¨­å®šã€ã‚’実行ã™ã‚‹ã¨ã€ä¸€æ™‚çš„ã«ãƒœã‚¤ã‚¹ãƒ»ãƒãƒ£ãƒƒãƒˆã‹ã‚‰åˆ‡æ–­ã•ã‚Œã¾ã™ã€‚変更ã¯å³åº§ã«é©ç”¨ã•ã‚Œã¾ã™ã€‚
38 </text_editor> 34 </text_editor>
39 <button label="機器ã®è¨­å®š" name="device_settings_btn" /> 35 <button label="機器ã®è¨­å®š" name="device_settings_btn"/>
40 <button label="ボイス・ãƒãƒ£ãƒƒãƒˆã®è¨­å®š" name="launch_voice_wizard_button" /> 36 <button label="ボイス・ãƒãƒ£ãƒƒãƒˆã®è¨­å®š" name="launch_voice_wizard_button"/>
41</panel> 37</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_preferences_web.xml b/linden/indra/newview/skins/default/xui/ja/panel_preferences_web.xml
index 94e3664..45ebcc6 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_preferences_web.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_preferences_web.xml
@@ -3,17 +3,17 @@
3 <radio_group name="use_external_browser"> 3 <radio_group name="use_external_browser">
4 <radio_item name="external" 4 <radio_item name="external"
5 tool_tip="ヘルプã€Webリンクãªã©ã®ãŸã‚ã«ã€å¤–部Webブラウザを使用ã—ã¾ã™ã€‚フル画é¢ã§å®Ÿè¡Œã—ã¦ã„ã‚‹å ´åˆã«ã¯æŽ¨å¥¨ã§ãã¾ã›ã‚“。"> 5 tool_tip="ヘルプã€Webリンクãªã©ã®ãŸã‚ã«ã€å¤–部Webブラウザを使用ã—ã¾ã™ã€‚フル画é¢ã§å®Ÿè¡Œã—ã¦ã„ã‚‹å ´åˆã«ã¯æŽ¨å¥¨ã§ãã¾ã›ã‚“。">
6 外部ã®ã‚¦ã‚§ãƒ–・ブラウザー (Firefox, Safari, Internet Explorer) を使用 6 外部ã®ã‚¦ã‚§ãƒ–・ブラウザ (Firefox, Safari, Internet Explorer) を使用
7 </radio_item> 7 </radio_item>
8 <radio_item name="internal" 8 <radio_item name="internal"
9 tool_tip="ヘルプやWebリンクã«åŸ‹ã‚è¾¼ã¿Webブラウザを使用ã—ã¾ã™ã€‚ブラウザã¯Second Lifeã®æ–°ã—ã„ウィンドウã¨ã—ã¦é–‹ãã¾ã™ã€‚"> 9 tool_tip="ヘルプやWebリンクã«åŸ‹ã‚è¾¼ã¿Webブラウザを使用ã—ã¾ã™ã€‚ブラウザã¯Second Lifeã®æ–°ã—ã„ウィンドウã¨ã—ã¦é–‹ãã¾ã™ã€‚">
10 内蔵ã®ã‚¦ã‚§ãƒ–・ブラウザーを使用 10 内蔵ã®ã‚¦ã‚§ãƒ–・ブラウザを使用
11 </radio_item> 11 </radio_item>
12 </radio_group> 12 </radio_group>
13 <text name="cache_size_label_l"> 13 <text name="cache_size_label_l">
14 キャッシュ: 14 キャッシュ:
15 </text> 15 </text>
16 <button label="今ã™ãクリア" name="clear_cache" /> 16 <button label="今ã™ãクリア" name="clear_cache" width="105" />
17 <text name="cookie_label"> 17 <text name="cookie_label">
18 クッキー: 18 クッキー:
19 </text> 19 </text>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_region_debug.xml b/linden/indra/newview/skins/default/xui/ja/panel_region_debug.xml
index 5a3a334..4e6bae7 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_region_debug.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_region_debug.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="デãƒãƒƒã‚°" name="Debug"> 2<panel label="デãƒãƒƒã‚°" name="Debug">
3 <text name="region_text_lbl"> 3 <text name="region_text_lbl">
4 地域: 4 地域:
@@ -6,44 +6,35 @@
6 <text name="region_text"> 6 <text name="region_text">
7 未知 7 未知
8 </text> 8 </text>
9 <check_box label="スクリプト無効化" name="disable_scripts_check" 9 <check_box label="スクリプト無効化" name="disable_scripts_check" tool_tip="ã“ã®åœ°åŸŸã®ã‚¹ã‚¯ãƒªãƒ—トをã™ã¹ã¦ç„¡åŠ¹åŒ–"/>
10 tool_tip="ã“ã®åœ°åŸŸã®ã‚¹ã‚¯ãƒªãƒ—トをã™ã¹ã¦ç„¡åŠ¹åŒ–" /> 10 <button label="?" name="disable_scripts_help"/>
11 <button label="?" name="disable_scripts_help" /> 11 <check_box label="è¡çªã‚’無効化" name="disable_collisions_check" tool_tip="ã“ã®åœ°åŸŸã®éžã‚¢ãƒã‚¿ãƒ¼è¡çªã‚’無効化"/>
12 <check_box label="è¡çªã‚’無効化" name="disable_collisions_check" 12 <button label="?" name="disable_collisions_help"/>
13 tool_tip="ã“ã®åœ°åŸŸã®éžã‚¢ãƒã‚¿ãƒ¼è¡çªã‚’無効化" /> 13 <check_box label="物ç†ä½œç”¨ã‚’無効化" name="disable_physics_check" tool_tip="ã“ã®åœ°åŸŸã®ç‰©ç†ä½œç”¨ã‚’ã™ã¹ã¦ç„¡åŠ¹åŒ–"/>
14 <button label="?" name="disable_collisions_help" /> 14 <button label="?" name="disable_physics_help"/>
15 <check_box label="物ç†ä½œç”¨ã‚’無効化" name="disable_physics_check" 15 <button label="é©ç”¨" name="apply_btn"/>
16 tool_tip="ã“ã®åœ°åŸŸã®ç‰©ç†ä½œç”¨ã‚’ã™ã¹ã¦ç„¡åŠ¹åŒ–" /> 16 <text name="objret_text_lbl" width="120" >
17 <button label="?" name="disable_physics_help" /> 17 オブジェクトã®è¿”å´
18 <button label="é©ç”¨" name="apply_btn" /> 18 </text>
19 <text name="resident_text_lbl">
20 ä½äºº:
21 </text>
19 <line_editor name="target_avatar_name"> 22 <line_editor name="target_avatar_name">
20 (ãªã—) 23 (ãªã—)
21 </line_editor> 24 </line_editor>
22 <button label="é¸æŠž..." name="choose_avatar_btn" /> 25 <button label="é¸æŠž..." name="choose_avatar_btn"/>
23 <button 26 <text name="options_text_lbl">
24 label="人ã®åœŸåœ°ã®ã‚¢ãƒã‚¿ãƒ¼ãƒ»ã‚¹ã‚¯ãƒªãƒ—ト・オブジェクトを返å´" 27 オプション:
25 name="return_scripted_other_land_btn" /> 28 </text>
26 <button label="ã‚¢ãƒã‚¿ãƒ¼ã®ã‚¹ã‚¯ãƒªãƒ—ト・オブジェクトをã™ã¹ã¦è¿”å´" 29 <check_box label="スクリプトã®ã‚るオブジェクトã®ã¿ã‚’è¿”å´" name="return_scripts" tool_tip="スクリプトãŒã‚るオブジェクトã®ã¿ã‚’è¿”å´"/>
27 name="return_scripted_all_btn" /> 30 <check_box label="他人ã®åœŸåœ°ã«ã‚るオブジェクトã®ã¿ã‚’è¿”å´" name="return_other_land" tool_tip="他人ã«å±žã™ã‚‹åœŸåœ°ã«ã‚るオブジェクトã®ã¿ã‚’è¿”å´"/>
28 <check_box label="スクリプトã®ã‚るオブジェクトã®ã¿ã‚’è¿”å´" 31 <check_box label="ã“ã®ä¸å‹•ç”£ã®å„地域ã®ã‚ªãƒ–ジェクトを返å´" name="return_estate_wide" tool_tip="ã“ã®ä¸å‹•ç”£ã«å«ã¾ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®åœ°åŸŸã®ã‚ªãƒ–ジェクトを返å´"/>
29 name="return_scripts" 32 <button label="è¿”å´" name="return_btn"/>
30 tool_tip="スクリプトãŒã‚るオブジェクトã®ã¿ã‚’è¿”å´" /> 33 <button label="上部コライダーå–å¾—" name="top_colliders_btn" tool_tip="è¡çªã™ã‚‹å¯èƒ½æ€§ãŒæœ€ã‚‚高ã„オブジェクトã®ãƒªã‚¹ãƒˆ"/>
31 <check_box label="他人ã®åœŸåœ°ã«ã‚るオブジェクトã®ã¿ã‚’è¿”å´" 34 <button label="?" name="top_colliders_help"/>
32 name="return_other_land" 35 <button label="上部スクリプトå–å¾—" name="top_scripts_btn" tool_tip="スクリプトã®å®Ÿè¡Œã«æœ€ã‚‚時間を費やã—ã¦ã„るオブジェクトã®ãƒªã‚¹ãƒˆ"/>
33 tool_tip="他人ã«å±žã™ã‚‹åœŸåœ°ã«ã‚るオブジェクトã®ã¿ã‚’è¿”å´" /> 36 <button label="?" name="top_scripts_help"/>
34 <check_box label="ã“ã®ä¸å‹•ç”£ã®å„地域ã®ã‚ªãƒ–ジェクトを返å´" 37 <button label="地域å†èµ·å‹•" name="restart_btn" tool_tip="2分間ã®ã‚«ã‚¦ãƒ³ãƒˆãƒ€ã‚¦ãƒ³å¾Œã€åœ°åŸŸã‚’å†èµ·å‹•"/>
35 name="return_estate_wide" 38 <button label="?" name="restart_help"/>
36 tool_tip="ã“ã®ä¸å‹•ç”£ã«å«ã¾ã‚Œã¦ã„ã‚‹ã™ã¹ã¦ã®åœ°åŸŸã®ã‚ªãƒ–ジェクトを返å´" /> 39 <button label="å†èµ·å‹•ã‚’é…延" name="cancel_restart_btn" tool_tip="地域ã®å†èµ·å‹•ã‚’1時間é…延ã™ã‚‹"/>
37 <button label="è¿”å´" name="return_btn" />
38 <button label="上部コライダーå–å¾—" name="top_colliders_btn"
39 tool_tip="è¡çªã™ã‚‹å¯èƒ½æ€§ãŒæœ€ã‚‚高ã„オブジェクトã®ãƒªã‚¹ãƒˆ" />
40 <button label="?" name="top_colliders_help" />
41 <button label="上部スクリプトå–å¾—" name="top_scripts_btn"
42 tool_tip="スクリプトã®å®Ÿè¡Œã«æœ€ã‚‚時間を費やã—ã¦ã„るオブジェクトã®ãƒªã‚¹ãƒˆ" />
43 <button label="?" name="top_scripts_help" />
44 <button label="地域å†èµ·å‹•" name="restart_btn"
45 tool_tip="2分間ã®ã‚«ã‚¦ãƒ³ãƒˆãƒ€ã‚¦ãƒ³å¾Œã€åœ°åŸŸã‚’å†èµ·å‹•" />
46 <button label="?" name="restart_help" />
47 <button label="å†èµ·å‹•ã‚’é…延" name="cancel_restart_btn"
48 tool_tip="地域ã®å†èµ·å‹•ã‚’1時間é…延ã™ã‚‹" />
49</panel> 40</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/linden/indra/newview/skins/default/xui/ja/panel_region_estate.xml
index 26b3432..186820f 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_region_estate.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_region_estate.xml
@@ -1,7 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="ä¸å‹•ç”£" name="Estate"> 2<panel label="ä¸å‹•ç”£" name="Estate">
3 <text name="estate_help_text"> 3 <text name="estate_help_text">
4 ã“ã®ã‚¿ãƒ–ã®è¨­å®šã‚’変更ã™ã‚‹ã¨ã“ã®ä¸å‹•ç”£å†…ã®å…¨ã¦ã®åœ°åŸŸã«å½±éŸ¿ã‚’与ãˆã¾ã™ã€‚ 4 ã“ã®ã‚¿ãƒ–ã®è¨­å®šã‚’変更ã™ã‚‹ã¨ã“ã®ä¸å‹•ç”£å†…
5ã®å…¨ã¦ã®åœ°åŸŸã«å½±éŸ¿ã‚’与ãˆã¾ã™ã€‚
5 </text> 6 </text>
6 <text name="estate_text"> 7 <text name="estate_text">
7 ä¸å‹•ç”£ï¼š 8 ä¸å‹•ç”£ï¼š
@@ -19,7 +20,7 @@
19 次ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’制é™ï¼š 20 次ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’制é™ï¼š
20 </text> 21 </text>
21 <check_box label="支払ã„情報登録済ã¿ã®ä½äºº" name="limit_payment" 22 <check_box label="支払ã„情報登録済ã¿ã®ä½äºº" name="limit_payment"
22 tool_tip="年齢未確èªã®ä½äººã‚’排除ã™ã‚‹" /> 23 tool_tip="支払ã„情報未登録ã®ä½äººã‚’排除ã™ã‚‹" />
23 <check_box label="年齢確èªæ¸ˆã¿ã®æˆäºº" name="limit_age_verified" 24 <check_box label="年齢確èªæ¸ˆã¿ã®æˆäºº" name="limit_age_verified"
24 tool_tip="年齢確èªã‚’済ã¾ã›ã¦ã„ãªã„ä½äººã‚’排除ã™ã‚‹è©³ç´°ã«ã¤ã„ã¦ã¯ã€support.secondlife.comã‚’å‚ç…§ã—ã¦ãã ã•ã„。" /> 25 tool_tip="年齢確èªã‚’済ã¾ã›ã¦ã„ãªã„ä½äººã‚’排除ã™ã‚‹è©³ç´°ã«ã¤ã„ã¦ã¯ã€support.secondlife.comã‚’å‚ç…§ã—ã¦ãã ã•ã„。" />
25 <check_box label="ボイスãƒãƒ£ãƒƒãƒˆã‚’許å¯" name="voice_chat_check" /> 26 <check_box label="ボイスãƒãƒ£ãƒƒãƒˆã‚’許å¯" name="voice_chat_check" />
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_region_general.xml b/linden/indra/newview/skins/default/xui/ja/panel_region_general.xml
index 0708c9c..a0e72b3 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_region_general.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_region_general.xml
@@ -3,20 +3,20 @@
3 <text name="region_text_lbl"> 3 <text name="region_text_lbl">
4 地域: 4 地域:
5 </text> 5 </text>
6 <text name="region_text"> 6 <text name="region_text" left="90">
7 未知 7 未知
8 </text> 8 </text>
9 <text name="version_channel_text_lbl"> 9 <text name="version_channel_text_lbl" width="100">
10 ãƒãƒ¼ã‚¸ãƒ§ãƒ³: 10 ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼š
11 </text> 11 </text>
12 <text name="version_channel_text"> 12 <text name="version_channel_text" left="90">
13 ä¸æ˜Ž 13 ä¸æ˜Ž
14 </text> 14 </text>
15 <check_box label="土地整備をブロック" name="block_terraform_check" /> 15 <check_box label="土地整備をブロック" name="block_terraform_check" />
16 <button label="?" name="terraform_help" /> 16 <button label="?" name="terraform_help" />
17 <check_box label="飛行をブロック" name="block_fly_check" /> 17 <check_box label="飛行をブロック" name="block_fly_check" />
18 <button label="?" name="fly_help" /> 18 <button label="?" name="fly_help" />
19 <check_box label="æ害を許å¯" name="allow_damage_check" /> 19 <check_box label="ダメーã¸ã‚’許å¯" name="allow_damage_check" />
20 <button label="?" name="damage_help" /> 20 <button label="?" name="damage_help" />
21 <check_box label="プッシュを制é™" name="restrict_pushobject" /> 21 <check_box label="プッシュを制é™" name="restrict_pushobject" />
22 <button label="?" name="restrict_pushobject_help" /> 22 <button label="?" name="restrict_pushobject_help" />
@@ -27,7 +27,7 @@
27 <check_box label="土地ã®æ¤œç´¢è¡¨ç¤ºã‚’ブロック" name="block_parcel_search_check" 27 <check_box label="土地ã®æ¤œç´¢è¡¨ç¤ºã‚’ブロック" name="block_parcel_search_check"
28 tool_tip="検索çµæžœã§ã€ã“ã®åœ°åŸŸã¨åŒºç”»ã‚’人ã«è¦‹ã›ã‚‹" /> 28 tool_tip="検索çµæžœã§ã€ã“ã®åœ°åŸŸã¨åŒºç”»ã‚’人ã«è¦‹ã›ã‚‹" />
29 <button label="?" name="parcel_search_help" /> 29 <button label="?" name="parcel_search_help" />
30 <spinner label="人物ã®åˆ¶é™" name="agent_limit_spin" /> 30 <spinner label="ã‚¢ãƒã‚¿ãƒ¼æ•°ä¸Šé™" name="agent_limit_spin" />
31 <button label="?" name="agent_limit_help" /> 31 <button label="?" name="agent_limit_help" />
32 <spinner label="物体ボーナス" name="object_bonus_spin" /> 32 <spinner label="物体ボーナス" name="object_bonus_spin" />
33 <button label="?" name="object_bonus_help" /> 33 <button label="?" name="object_bonus_help" />
@@ -46,6 +46,6 @@
46 <button label="é©ç”¨" name="apply_btn" /> 46 <button label="é©ç”¨" name="apply_btn" />
47 <button label="ユーザー1人ホームテレãƒãƒ¼ãƒˆ" name="kick_btn" /> 47 <button label="ユーザー1人ホームテレãƒãƒ¼ãƒˆ" name="kick_btn" />
48 <button label="ユーザー全員ホームテレãƒãƒ¼ãƒˆ" name="kick_all_btn" /> 48 <button label="ユーザー全員ホームテレãƒãƒ¼ãƒˆ" name="kick_all_btn" />
49 <button label="メッセージを領域ã¸é€ä¿¡..." name="im_btn" /> 49 <button label="メッセージを地域ã¸é€ä¿¡..." name="im_btn" />
50 <button label="テレãƒãƒ–ã®ç®¡ç†..." name="manage_telehub_btn" /> 50 <button label="テレãƒãƒ–ã®ç®¡ç†..." name="manage_telehub_btn" />
51</panel> 51</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_status_bar.xml b/linden/indra/newview/skins/default/xui/ja/panel_status_bar.xml
index bfbb2c1..08c6618 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_status_bar.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_status_bar.xml
@@ -1,14 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="status"> 2<panel name="status">
3 <text type="string" length="1" name="ParcelNameText" 3 <text length="1" name="ParcelNameText" tool_tip="ã‚ãªãŸãŒç«‹ã£ã¦ã„る土地区画ã®å å‰ã€‚クリックã™ã‚‹ã¨ã€ŒåœŸåœ°æƒ…å ±ã€ãŒé–‹ãã¾ã™ã€‚" type="string">
4 tool_tip="ã‚ãªãŸãŒç«‹ã£ã¦ã„る土地区画ã®åå‰ã€‚ 「土地情報ã€ã‚’クリックã—ã¦ãã ã•ã„。">
5 区画åã¯ã“ã“ã§ã™ 4 区画åã¯ã“ã“ã§ã™
6 </text> 5 </text>
7 <text type="string" length="1" name="BalanceText" tool_tip="å£åº§æ®‹é«˜"> 6 <text length="1" name="BalanceText" tool_tip="å£åº§æ®‹é«˜" type="string">
8 ローディング... 7 ローディング...
9 </text> 8 </text>
10 <button label="" label_selected="" name="buycurrency" tool_tip="貨幣ã®è³¼å…¥" /> 9 <button label="" label_selected="" name="buycurrency" tool_tip="貨幣ã®è³¼å…¥"/>
11 <text type="string" length="12" name="TimeText" tool_tip="ç¾åœ¨æ™‚刻(太平洋時)"> 10 <text length="12" name="TimeText" tool_tip="ç¾åœ¨æ™‚刻(太平洋時)" type="string">
12 12:00 AM 11 12:00 AM
13 </text> 12 </text>
14 <text name="StatBarDaysOfWeek"> 13 <text name="StatBarDaysOfWeek">
@@ -17,29 +16,27 @@
17 <text name="StatBarMonthsOfYear"> 16 <text name="StatBarMonthsOfYear">
18 1月:2月:3月:4月:5月:6月:7月:8月:9月:10月:11月:12月 17 1月:2月:3月:4月:5月:6月:7月:8月:9月:10月:11月:12月
19 </text> 18 </text>
20 <button label="" label_selected="" name="scriptout" 19 <button label="" label_selected="" name="scriptout" tool_tip="スクリプト警告ãŠã‚ˆã³ã‚¨ãƒ©ãƒ¼"/>
21 tool_tip="スクリプト警告ãŠã‚ˆã³ã‚¨ãƒ©ãƒ¼" /> 20 <button label="" label_selected="" name="health" tool_tip="å¥åº·çŠ¶æ…‹"/>
22 <button label="" label_selected="" name="health" tool_tip="å¥åº·çŠ¶æ…‹" /> 21 <text length="1" name="HealthText" tool_tip="å¥åº·çŠ¶æ…‹" type="string">
23 <text type="string" length="1" name="HealthText" tool_tip="å¥åº·çŠ¶æ…‹">
24 100% 22 100%
25 </text> 23 </text>
26 <button label="" label_selected="" name="fly" tool_tip="飛行ç¦æ­¢" /> 24 <button label="" label_selected="" name="fly" tool_tip="飛行ç¦æ­¢"/>
27 <button label="" label_selected="" name="build" tool_tip="作æˆç¦æ­¢" /> 25 <button label="" label_selected="" name="build" tool_tip="作æˆç¦æ­¢"/>
28 <button label="" label_selected="" name="scripts" tool_tip="スクリプトãªã—" /> 26 <button label="" label_selected="" name="scripts" tool_tip="スクリプトãªã—"/>
29 <button name="no_fly" tool_tip="飛行ç¦æ­¢" /> 27 <button name="no_fly" tool_tip="飛行ç¦æ­¢"/>
30 <button name="no_build" tool_tip="制作/REZç¦æ­¢" /> 28 <button name="no_build" tool_tip="制作ï¼Rezç¦æ­¢"/>
31 <button name="no_scripts" tool_tip="スクリプトç¦æ­¢" /> 29 <button name="no_scripts" tool_tip="スクリプトç¦æ­¢"/>
32 <button label="" label_selected="" name="restrictpush" tool_tip="llPushObject制é™" /> 30 <button label="" label_selected="" name="restrictpush" tool_tip="プッシングを制é™"/>
33 <button name="status_voice" tool_tip="ボイス有効" /> 31 <button name="status_voice" tool_tip="ボイス有効"/>
34 <button name="status_no_voice" 32 <button name="status_no_voice" tool_tip="ã“ã“ã§ã¯ãƒœã‚¤ã‚¹ã‚’使用ã§ãã¾ã›ã‚“。"/>
35 tool_tip="ã“ã“ã§ã¯ãƒœã‚¤ã‚¹ã‚’使用ã§ãã¾ã›ã‚“。" /> 33 <button label="" label_selected="" name="buyland" tool_tip="ã“ã®åŒºç”»ã‚’購入"/>
36 <button label="" label_selected="" name="buyland" tool_tip="ã“ã®åŒºç”»ã‚’購入" />
37 <text name="packet_loss_tooltip"> 34 <text name="packet_loss_tooltip">
38 パケットæ失 35 パケットæ失
39 </text> 36 </text>
40 <text name="bandwidth_tooltip"> 37 <text name="bandwidth_tooltip">
41 帯域幅 38 帯域幅
42 </text> 39 </text>
43 <line_editor label="検索" name="search_editor" tool_tip="Second Lifeを検索" /> 40 <line_editor label="検索" name="search_editor" tool_tip="Second Lifeを検索"/>
44 <button name="search_btn" tool_tip="Second Lifeを検索" /> 41 <button name="search_btn" tool_tip="Second Lifeを検索"/>
45</panel> 42</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/panel_toolbar.xml b/linden/indra/newview/skins/default/xui/ja/panel_toolbar.xml
index 56d0407..60536fc 100644
--- a/linden/indra/newview/skins/default/xui/ja/panel_toolbar.xml
+++ b/linden/indra/newview/skins/default/xui/ja/panel_toolbar.xml
@@ -5,24 +5,24 @@
5 </string> 5 </string>
6 <layout_stack name="toolbar_stack"> 6 <layout_stack name="toolbar_stack">
7 <button label="IM" name="im_btn" 7 <button label="IM" name="im_btn"
8 tool_tip="フレンドã¨ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ãƒˆãƒ»ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸" /> 8 tool_tip="å‹äººã¨ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ãƒˆãƒ»ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸" />
9 <button label="コミュニケート" name="communicate_btn" 9 <button label="コミュニケート" name="communicate_btn"
10 tool_tip="フレンドやグループã¨ã‚³ãƒŸãƒ¥ã‚±ãƒ¼ãƒˆã€‚" /> 10 tool_tip="å‹äººã‚„グループã¨ã®äº¤æµ" />
11 <button label="" name="chat_btn" 11 <button label="" name="chat_btn"
12 tool_tip="ãƒãƒ£ãƒƒãƒˆãƒ»ãƒãƒ¼ã‚’表示ã—ã¾ã™ã€‚(Enter)" /> 12 tool_tip="ãƒãƒ£ãƒƒãƒˆãƒ»ãƒãƒ¼ã‚’表示ã—ã¾ã™(Enter)" />
13 <button label="フレンド" name="friends_btn" 13 <button label="フレンド" name="friends_btn"
14 tool_tip="フレンドを探ã—ã¦ä¼šè©±ã™ã‚‹" /> 14 tool_tip="å‹äººã‚’探ã—ã¦ä¼šè©±ã™ã‚‹" />
15 <button label="飛行" label_selected="飛行をåœæ­¢" name="fly_btn" 15 <button label="飛行" label_selected="飛行をåœæ­¢" name="fly_btn"
16 tool_tip="飛行開始。 Eキーã¾ãŸã¯PageUpキーã§ä¸Šæ˜‡ã€Cキーã¾ãŸã¯PageDownキーã§ä¸‹é™ã€‚" /> 16 tool_tip="飛行開始 Eキーã¾ãŸã¯PageUpキーã§ä¸Šæ˜‡ã€Cキーã¾ãŸã¯PageDownキーã§ä¸‹é™" />
17 <button label="スナップショット" name="snapshot_btn" 17 <button label="スナップショット" name="snapshot_btn"
18 tool_tip="スクリーンショットをディスクã¾ãŸã¯æŒã¡ç‰©ã«ä¿å­˜ã—ã¾ã™ã€‚" /> 18 tool_tip="スクリーンショットをディスクã¾ãŸã¯æŒã¡ç‰©ã«ä¿å­˜ã—ã¾ã™" />
19 <button label="検索" name="directory_btn" 19 <button label="検索" name="directory_btn"
20 tool_tip="場所ã€ã‚¤ãƒ™ãƒ³ãƒˆã€äººãªã©ã€ã•ã¾ã–ã¾ãªå¯¾è±¡ã‚’検索ã§ãã¾ã™ã€‚" /> 20 tool_tip="場所ã€ã‚¤ãƒ™ãƒ³ãƒˆã€äººãªã©ã€ã•ã¾ã–ã¾ãªå¯¾è±¡ã‚’検索ã§ãã¾ã™" />
21 <button label="建造" name="build_btn" tool_tip="オブジェクト新è¦ä½œæˆ" /> 21 <button label="制作" name="build_btn" tool_tip="オブジェクト新è¦ä½œæˆ" />
22 <button label="ミニマップ" name="radar_btn" 22 <button label="ミニマップ" name="radar_btn"
23 tool_tip="ã‚ãªãŸã®å‘¨è¾ºé ˜åŸŸã®åœ°å›³ã€‚ (Ctrl+Shift+M)" /> 23 tool_tip="ã‚ãªãŸã®å‘¨è¾ºé ˜åŸŸã®åœ°å›³ (Ctrl+Shift+M)" />
24 <button label="地図" name="map_btn" tool_tip="世界地図。 (Ctrl+M)" /> 24 <button label="地図" name="map_btn" tool_tip="世界地図 (Ctrl+M)" />
25 <button label="æŒã¡ç‰©" name="inventory_btn" 25 <button label="æŒã¡ç‰©" name="inventory_btn"
26 tool_tip="ã‚ãªãŸã®ã‚¢ã‚¤ãƒ†ãƒ ã€‚ (Ctrl-I)" /> 26 tool_tip="ã‚ãªãŸã®ã‚¢ã‚¤ãƒ†ãƒ  (Ctrl-I)" />
27 </layout_stack> 27 </layout_stack>
28</panel> 28</panel>
diff --git a/linden/indra/newview/skins/default/xui/ja/role_actions.xml b/linden/indra/newview/skins/default/xui/ja/role_actions.xml
index 2ad6607..57e6d62 100644
--- a/linden/indra/newview/skins/default/xui/ja/role_actions.xml
+++ b/linden/indra/newview/skins/default/xui/ja/role_actions.xml
@@ -39,11 +39,11 @@
39 name="role change actions" value="10" /> 39 name="role change actions" value="10" />
40 </action_set> 40 </action_set>
41 <action_set 41 <action_set
42 description="ã“れらã®èƒ½åŠ›ã«ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—ã®å…¬é–‹æ€§ã‚„憲章ã€è¨˜ç« ã®å¤‰æ›´ã¨ã„ã£ãŸã€ã‚°ãƒ«ãƒ¼ãƒ—ã®ã‚¢ã‚¤ãƒ‡ãƒ³ãƒ†ã‚£ãƒ†ã‚£ã‚’修正ã™ã‚‹æ¨©é™ãŒå«ã¾ã‚Œã¾ã™ã€‚" 42 description="ã“れらã®èƒ½åŠ›ã«ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—ã®å…¬é–‹æ€§ã‚„ç†å¿µã€è¨˜ç« ã®å¤‰æ›´ã¨ã„ã£ãŸã€ã‚°ãƒ«ãƒ¼ãƒ—ã®ã‚¢ã‚¤ãƒ‡ãƒ³ãƒ†ã‚£ãƒ†ã‚£ã‚’修正ã™ã‚‹æ¨©é™ãŒå«ã¾ã‚Œã¾ã™ã€‚"
43 name="Group Identity"> 43 name="Group Identity">
44 <action 44 <action
45 description="特権ã€è¨˜ç« ã€ã€ŒWeb上ã§å…¬é–‹ã€ã€ãŠã‚ˆã³ã‚°ãƒ«ãƒ¼ãƒ—情報内ã§å¯è¦–ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’変更。" 45 description="ç†å¿µã€è¨˜ç« ã€ã€ŒWeb上ã§å…¬é–‹ã€ã€ãŠã‚ˆã³ã‚°ãƒ«ãƒ¼ãƒ—情報内ã§å…¬é–‹ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’変更。"
46 longdescription="特権ã€è¨˜ç« ã€ã€ŒWeb上ã§å…¬é–‹ã€ã€ãŠã‚ˆã³ã‚°ãƒ«ãƒ¼ãƒ—情報内ã§å¯è¦–ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’変更ã—ã¾ã™ã€‚ ã“ã®æ“作ã«ã¯ã€ä¸€èˆ¬ã‚¿ãƒ–を使用ã—ã¾ã™ã€‚" 46 longdescription="ç†å¿µã€è¨˜ç« ã€ã€ŒWeb上ã§å…¬é–‹ã€ã€ãŠã‚ˆã³ã‚°ãƒ«ãƒ¼ãƒ—情報内ã§å…¬é–‹ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’変更ã—ã¾ã™ã€‚ ã“ã®æ“作ã«ã¯ã€ä¸€èˆ¬ã‚¿ãƒ–を使用ã—ã¾ã™ã€‚"
47 name="group change identity" value="11" /> 47 name="group change identity" value="11" />
48 </action_set> 48 </action_set>
49 <action_set 49 <action_set
diff --git a/linden/indra/newview/skins/default/xui/ja/strings.xml b/linden/indra/newview/skins/default/xui/ja/strings.xml
index 13cb67f..f81a238 100644
--- a/linden/indra/newview/skins/default/xui/ja/strings.xml
+++ b/linden/indra/newview/skins/default/xui/ja/strings.xml
@@ -435,9 +435,9 @@
435 </string> 435 </string>
436 <!-- Chat --> 436 <!-- Chat -->
437 <string name="whisper"> 437 <string name="whisper">
438 ã•ã•ã‚„ã: 438 ã®ã•ã•ã‚„ã:
439 </string> 439 </string>
440 <string name="shout"> 440 <string name="shout">
441 å«ã: 441 ã®å«ã³:
442 </string> 442 </string>
443</strings> 443</strings>
diff --git a/linden/indra/newview/skins/default/xui/ko/alerts.xml b/linden/indra/newview/skins/default/xui/ko/alerts.xml
index 2f64bc2..938b6d2 100644
--- a/linden/indra/newview/skins/default/xui/ko/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/ko/alerts.xml
@@ -2099,6 +2099,9 @@ www.secondlife.com으로 ëŒì•„ê°€ ì‹ ê·œ ê³„ì •ì„ ë§Œë“œì‹œê² ìŠµë‹ˆê¹Œ?
2099 2099
2100[NAME]ì—게 친구 추가를 요청하시겠습니까? 2100[NAME]ì—게 친구 추가를 요청하시겠습니까?
2101 </message> 2101 </message>
2102 <editline name="editline">
2103 저와 친구가 ë˜ì‹œê² ìŠµë‹ˆê¹Œ?
2104 </editline>
2102 <option name="Offer"> 2105 <option name="Offer">
2103 제공 2106 제공
2104 </option> 2107 </option>
diff --git a/linden/indra/newview/skins/default/xui/ko/floater_about.xml b/linden/indra/newview/skins/default/xui/ko/floater_about.xml
index bebb237..354d749 100644
--- a/linden/indra/newview/skins/default/xui/ko/floater_about.xml
+++ b/linden/indra/newview/skins/default/xui/ko/floater_about.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_about" title="세컨드ë¼ì´í”„ ì •ë³´"> 2<floater name="floater_about" title="세컨드ë¼ì´í”„ ì •ë³´">
3 <text_editor name="credits_editor"> 3 <text_editor name="credits_editor">
4 세컨드ë¼ì´í”„ 제작ìžë“¤: Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, ê·¸ ì™¸ì— ë§Žì€ ë¶„ë“¤ì´ ìˆ˜ê³ í•´ 주셨습니다. 4 세컨드ë¼ì´í”„ 제작ìžë“¤: Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les, ê·¸ ì™¸ì— ë§Žì€ ë¶„ë“¤ì´ ìˆ˜ê³ í•´ 주셨습니다.
5 5
6 현재 ë²„ì „ì´ ìµœìƒì˜ ë²„ì „ì´ ë  ìˆ˜ 있ë„ë¡ ë„와주신 여러분께 ê°ì‚¬ë“œë¦½ë‹ˆë‹¤: Aminom Marvin, ava ganache, Balthazar Fouroux, CrystalShard Foo, Davec Horsforth, Drew Dwi, Ellla McMahon, Gellan Glenelg, Harleen Gretzky, istephanija munro, Iustinian Tomsen, JC Glimmer, Joeseph Albanese, kelly young, Latif Khalifa, Lex Neva, McCabe Maxsted, Michi Lumin, moni duettmann, Moon Metty, motor loon, Opensource Obscure, Sky Hye, Soap Clawtooth, velveeta biedermann, zeebster colasanti 6 현재 ë²„ì „ì´ ìµœìƒì˜ ë²„ì „ì´ ë  ìˆ˜ 있ë„ë¡ ë„와주신 여러분께 ê°ì‚¬ë“œë¦½ë‹ˆë‹¤: afon shepherd, Aimee Trescothick, Alexandrea Fride, Alissa Sabre, Amber DeCuir, Asuka Neely, Auron Forcella, Blue Revolution, Bocan Undercroft, Boroondas Gupte, Brandon Shinobu, Bri Gufler, Buckaroo Mu, Celierra Darling, Christos Atlantis, Coder Kas, Cummere Mayo, dakota schwade, Dirk Talamasca, Dizzy Banjo, Drew Dwi, Duckling Kwak, Ellla McMahon, Erikah Jameson, Erinyse Planer, Eyana Yohkoh, Ezian Ecksol, Faron Karu, Fenoe Lowey, Fox Hwasung, Francisca Biedermann, Gally Young, Gellan Glenelg, Geneko Nemeth, Glenn Rotaru, Hagar Qinan, Harleen Gretzky, Holger Gilruth, hotrodjohnny gears, IAm Zabelin, Inigo Catteneo, Iustinian Tomsen, Jacek Antonell, James Benedek, Jim Kupferberg, Joeseph Albanese, JPT62089 Agnon, Kardargo Adamczyk, Kirstenlee Cinquetti, Latif Khalifa, lea Parnall, Lex Neva, Lillith Anatine, Lilly Zenovka, Lim Catteneo, Lindal Kidd, Mark Rosenbaum, MasterJ Chaplin, McCabe Maxsted, Melvin Starbrook, Meni Kaiousei, Mero Collas, Minakothegothicgeisha Kamachi, Moon Metty, neofilo aabye, Neutron Chesnokov, Nomad Ingwer, norritt Xi, Opensource Obscure, Oracle Weatherwax, Ourasi Ferraris, Pabl0 Roffo, Peyton Aleixandre, Phli Foxchase, Psi Merlin, r2d2 Wunderlich, Regi Yifu, Saijanai Kuhn, Sandor Balczo, Sarkan Dreamscape, Scree Raymaker, Sedona Mills, Selena Beale, Sheet Spotter, Shibari Twine, Silver Key, Simon Kline, SLB Wirefly, Stacy Wombat, Sugarcult Dagger, Tayra Dagostino, Tetsuryu Vlodovic, ThaBiGGDoGG Richez, Timo Gufler, tx Oh, wayfinder wishbringer, Wizzytoe McCullough, Wundur Primbee, Yann Dufaux, Yuu Nakamichi, Aminom Marvin, Andred Qinan, arminasx saiman, caroline apollo, Iskar Ariantho, Jenika Connolly, Maghnus Balogh, Nefertiti Nefarious, RodneyLee Jessop
7 7
8 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion 8 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
9 APR Copyright (C) 2000-2004 The Apache Software Foundation 9 APR Copyright (C) 2000-2004 The Apache Software Foundation
diff --git a/linden/indra/newview/skins/default/xui/ko/floater_about_land.xml b/linden/indra/newview/skins/default/xui/ko/floater_about_land.xml
index 01b3072..0eb42ad 100644
--- a/linden/indra/newview/skins/default/xui/ko/floater_about_land.xml
+++ b/linden/indra/newview/skins/default/xui/ko/floater_about_land.xml
@@ -169,9 +169,6 @@
169 <text type="string" length="1" name="Simulator primitive usage:"> 169 <text type="string" length="1" name="Simulator primitive usage:">
170 시뮬레ì´í„° 프림 사용률: 170 시뮬레ì´í„° 프림 사용률:
171 </text> 171 </text>
172 <text type="string" length="1" name="0 out of 0 available">
173 14055개 중 0개(14055개 사용 가능)
174 </text>
175 <text name="objects_available"> 172 <text name="objects_available">
176 [MAX] 중 [COUNT] ([AVAILABLE] 사용 가능) 173 [MAX] 중 [COUNT] ([AVAILABLE] 사용 가능)
177 </text> 174 </text>
diff --git a/linden/indra/newview/skins/default/xui/ko/floater_mute.xml b/linden/indra/newview/skins/default/xui/ko/floater_mute.xml
index 6acc4ce..9dccb0e 100644
--- a/linden/indra/newview/skins/default/xui/ko/floater_mute.xml
+++ b/linden/indra/newview/skins/default/xui/ko/floater_mute.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="mute floater" title="주민 ë° ì˜¤ë¸Œì íŠ¸ 차단"> 2<floater name="mute floater" title="주민 ë° ì˜¤ë¸Œì íŠ¸ 차단" short_title="차단 목ë¡">
3 <scroll_list name="mutes" tool_tip="현재 ì°¨ë‹¨ëœ ì£¼ë¯¼ë“¤" /> 3 <scroll_list name="mutes" tool_tip="현재 ì°¨ë‹¨ëœ ì£¼ë¯¼ë“¤" />
4 <button label="차단할 주민" label_selected="차단할 주민" 4 <button label="차단할 주민" label_selected="차단할 주민"
5 name="Mute resident..." tool_tip="차단할 주민 ì„ íƒ" /> 5 name="Mute resident..." tool_tip="차단할 주민 ì„ íƒ" />
diff --git a/linden/indra/newview/skins/default/xui/ko/floater_preview_gesture.xml b/linden/indra/newview/skins/default/xui/ko/floater_preview_gesture.xml
index fda53bc..1327873 100644
--- a/linden/indra/newview/skins/default/xui/ko/floater_preview_gesture.xml
+++ b/linden/indra/newview/skins/default/xui/ko/floater_preview_gesture.xml
@@ -30,12 +30,14 @@
30 <text name="steps_label"> 30 <text name="steps_label">
31 단계: 31 단계:
32 </text> 32 </text>
33 <!-- Revert translations as interim fix to VWR-9985 while the code is not properly internationalized
33 <scroll_list name="library_list"> 34 <scroll_list name="library_list">
34 애니메ì´ì…˜ 35 애니메ì´ì…˜
35사운드 36사운드
36채팅 37채팅
37대기 38대기
38 </scroll_list> 39 </scroll_list>
40 -->
39 <button label="추가 &gt;&gt;" name="add_btn"/> 41 <button label="추가 &gt;&gt;" name="add_btn"/>
40 <button label="위로 ì´ë™" name="up_btn"/> 42 <button label="위로 ì´ë™" name="up_btn"/>
41 <button label="아래로 ì´ë™" name="down_btn"/> 43 <button label="아래로 ì´ë™" name="down_btn"/>
diff --git a/linden/indra/newview/skins/default/xui/ko/menu_viewer.xml b/linden/indra/newview/skins/default/xui/ko/menu_viewer.xml
index c48a850..5ce9981 100644
--- a/linden/indra/newview/skins/default/xui/ko/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/ko/menu_viewer.xml
@@ -144,8 +144,12 @@
144 <menu_item_call label="모든 애니메ì´ì…˜ 중지" name="Stop All Animations" /> 144 <menu_item_call label="모든 애니메ì´ì…˜ 중지" name="Stop All Animations" />
145 <menu_item_call label="키 해제" name="Release Keys" /> 145 <menu_item_call label="키 해제" name="Release Keys" />
146 <menu_item_separator label="-----------" name="separator4" /> 146 <menu_item_separator label="-----------" name="separator4" />
147 <menu_item_call label="계정 기ë¡" name="Account History..." /> 147 <menu_item_call label="계정 기ë¡" name="Account History..." >
148 <menu_item_call label="내 계정 관리" name="Manage My Account..." /> 148 <on_click name="AccountHistory_url" userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php?lang=ko" />
149 </menu_item_call>
150 <menu_item_call label="내 계정 관리" name="Manage My Account..." >
151 <on_click name="ManageMyAccount_url" userdata="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=ko" />
152 </menu_item_call>
149 <menu_item_call label="린든달러(L$) 구매" name="Buy and Sell L$..." /> 153 <menu_item_call label="린든달러(L$) 구매" name="Buy and Sell L$..." />
150 <menu_item_separator label="-----------" name="separator5" /> 154 <menu_item_separator label="-----------" name="separator5" />
151 <menu_item_call label="내 토지" name="My Land..." /> 155 <menu_item_call label="내 토지" name="My Land..." />
diff --git a/linden/indra/newview/skins/default/xui/ko/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/ko/panel_preferences_chat.xml
index e94c428..1f9bdbc 100644
--- a/linden/indra/newview/skins/default/xui/ko/panel_preferences_chat.xml
+++ b/linden/indra/newview/skins/default/xui/ko/panel_preferences_chat.xml
@@ -3,7 +3,7 @@
3 <text length="1" name="text_box" type="string"> 3 <text length="1" name="text_box" type="string">
4 ê¸€ìž í¬ê¸°: 4 ê¸€ìž í¬ê¸°:
5 </text> 5 </text>
6 <radio_group name="chat font size"> 6 <radio_group name="chat_font_size">
7 <radio_item length="1" name="radio" type="string"> 7 <radio_item length="1" name="radio" type="string">
8 소 8 소
9 </radio_item> 9 </radio_item>
diff --git a/linden/indra/newview/skins/default/xui/ko/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/ko/panel_preferences_general.xml
index b7283de..af8cfa7 100644
--- a/linden/indra/newview/skins/default/xui/ko/panel_preferences_general.xml
+++ b/linden/indra/newview/skins/default/xui/ko/panel_preferences_general.xml
@@ -99,7 +99,7 @@
99 English (ì˜ì–´) 99 English (ì˜ì–´)
100 </combo_item> 100 </combo_item>
101 <combo_item type="string" length="1" name="Chinese"> 101 <combo_item type="string" length="1" name="Chinese">
102 汉语/漢語(중국어) - 베타 102 中文 (简体) (중국어) - 베타
103 </combo_item> 103 </combo_item>
104 <combo_item type="string" length="1" name="Deutsch(German)"> 104 <combo_item type="string" length="1" name="Deutsch(German)">
105 Deutsch (ë…ì¼ì–´) - 베타 105 Deutsch (ë…ì¼ì–´) - 베타
diff --git a/linden/indra/newview/skins/default/xui/ko/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/ko/panel_preferences_input.xml
index f391b2b..06edb21 100644
--- a/linden/indra/newview/skins/default/xui/ko/panel_preferences_input.xml
+++ b/linden/indra/newview/skins/default/xui/ko/panel_preferences_input.xml
@@ -6,11 +6,11 @@
6 <text name=" Mouse Sensitivity:"> 6 <text name=" Mouse Sensitivity:">
7 마우스 민ê°ì„±: 7 마우스 민ê°ì„±:
8 </text> 8 </text>
9 <check_box label="마우스 반전" name="invert mouse"/> 9 <check_box label="마우스 반전" name="invert_mouse"/>
10 <text name=" Auto Fly Options:"> 10 <text name=" Auto Fly Options:">
11 ìžë™ 비행 옵션: 11 ìžë™ 비행 옵션:
12 </text> 12 </text>
13 <check_box label="PageUp/Down 키로 ì´ì°©ë¥™" name="automatic fly"/> 13 <check_box label="PageUp/Down 키로 ì´ì°©ë¥™" name="automatic_fly"/>
14 <text name=" Camera Options:"> 14 <text name=" Camera Options:">
15 ì¹´ë©”ë¼ ì˜µì…˜: 15 ì¹´ë©”ë¼ ì˜µì…˜:
16 </text> 16 </text>
@@ -23,14 +23,14 @@
23 <text name="Camera Smoothing:"> 23 <text name="Camera Smoothing:">
24 ì¹´ë©”ë¼ ìŠ¤ë¬´ë”©: 24 ì¹´ë©”ë¼ ìŠ¤ë¬´ë”©:
25 </text> 25 </text>
26 <check_box label="ìžë™íŽ¸ì§‘ ì¹´ë©”ë¼ ì„¤ì •" name="edit camera movement" tool_tip="편집 모드를 시작하거나 종료할 ë•Œ ì¹´ë©”ë¼ ìžë™ 위치 설정 사용"/> 26 <check_box label="ìžë™íŽ¸ì§‘ ì¹´ë©”ë¼ ì„¤ì •" name="edit_camera_movement" tool_tip="편집 모드를 시작하거나 종료할 ë•Œ ì¹´ë©”ë¼ ìžë™ 위치 설정 사용"/>
27 <check_box label="ë‚´ 모습 변경시 ì¹´ë©”ë¼ ìžë™ 설정" name="appearance camera movement" tool_tip="편집 ëª¨ë“œì¼ ë•Œ ì¹´ë©”ë¼ ìžë™ 위치 설정 사용"/> 27 <check_box label="ë‚´ 모습 변경시 ì¹´ë©”ë¼ ìžë™ 설정" name="appearance_camera_movement" tool_tip="편집 ëª¨ë“œì¼ ë•Œ ì¹´ë©”ë¼ ìžë™ 위치 설정 사용"/>
28 <text name="text2"> 28 <text name="text2">
29 아바타 ë””ìŠ¤í”Œë ˆì´ ì˜µì…˜: 29 아바타 ë””ìŠ¤í”Œë ˆì´ ì˜µì…˜:
30 </text> 30 </text>
31 <check_box label="1ì¸ì¹­ ì‹œì ìœ¼ë¡œ 시작" name="avfp"/> 31 <check_box label="1ì¸ì¹­ ì‹œì ìœ¼ë¡œ 시작" name="first_person_avatar_visible"/>
32 <text name="text5"> 32 <text name="text5">
33 ì¡°ì´ìŠ¤í‹± 설정: 33 ì¡°ì´ìŠ¤í‹± 설정:
34 </text> 34 </text>
35 <button label="ì¡°ì´ìŠ¤í‹± 설치" name="joystic_setup_button"/> 35 <button label="ì¡°ì´ìŠ¤í‹± 설치" name="joystick_setup_button"/>
36</panel> 36</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/alerts.xml b/linden/indra/newview/skins/default/xui/pt/alerts.xml
index cd0db86..5ddeda0 100644
--- a/linden/indra/newview/skins/default/xui/pt/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/pt/alerts.xml
@@ -1,5 +1,11 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<alerts> 2<alerts>
3 <global name="skipnexttime">
4 Não exibir isso novamente
5 </global>
6 <global name="alwayschoose">
7 Sempre escolher essa opção
8 </global>
3 <alert name="MissingAlert"> 9 <alert name="MissingAlert">
4 <message name="message"> 10 <message name="message">
5 [ALERT_NAME] não encontrado no alerts.xml 11 [ALERT_NAME] não encontrado no alerts.xml
@@ -16,10 +22,13 @@
16 OK 22 OK
17 </option> 23 </option>
18 </alert> 24 </alert>
19 <alert name="MOTD" title="Mensagem do dia"> 25 <alert name="TutorialNotFound">
20 <message name="message"> 26 <message name="message">
21 [MOTD] 27 Nenhum tutorial está disponível no momento.
22 </message> 28 </message>
29 <option name="OK">
30 OK
31 </option>
23 </alert> 32 </alert>
24 <alert name="GenericAlert"> 33 <alert name="GenericAlert">
25 <message name="message"> 34 <message name="message">
@@ -44,7 +53,10 @@
44 </alert> 53 </alert>
45 <alert name="ConnectTimeout"> 54 <alert name="ConnectTimeout">
46 <message name="message"> 55 <message name="message">
47 Não foi possível conectar-se ao [SECOND_LIFE]. O sistema pode estar desativado. Por favor, tente novamente em alguns minutos, ou clique em Ajuda para mais informações e exibir a situação da página da web. 56 Impossibilitado de se conectar ao [SECOND_LIFE].
57O sistema pode ter caído.
58
59Por favor, tente novamente em alguns minutos ou clique Ajuda para sugestões e um link para a página web de status do sistema.
48 </message> 60 </message>
49 <option name="OK"> 61 <option name="OK">
50 OK 62 OK
@@ -67,34 +79,6 @@
67 Cancelar 79 Cancelar
68 </option> 80 </option>
69 </alert> 81 </alert>
70 <alert name="RemoveWearableSave">
71 <message name="message">
72 Salvar alterações de roupas/partes do corpo atuais?
73 </message>
74 <option name="Save">
75 Salvar
76 </option>
77 <option name="Don&apos;tSave">
78 Não Salvar
79 </option>
80 <option name="Cancel">
81 Cancelar
82 </option>
83 </alert>
84 <alert name="SetWearableSave">
85 <message name="message">
86 Salvar alterações de roupas/ partes do corpo atuais?
87 </message>
88 <option name="Save">
89 Salvar
90 </option>
91 <option name="Don&apos;tSave">
92 Não Salvar
93 </option>
94 <option name="Cancel">
95 Cancelar
96 </option>
97 </alert>
98 <alert name="CompileQueueSaveText"> 82 <alert name="CompileQueueSaveText">
99 <message name="message"> 83 <message name="message">
100 Houve um problema com o carregamento do texto para um script devido a seguinte razão: [REASON]. Por favor, tente novamente mais tarde. 84 Houve um problema com o carregamento do texto para um script devido a seguinte razão: [REASON]. Por favor, tente novamente mais tarde.
@@ -104,7 +88,6 @@
104 <message name="message"> 88 <message name="message">
105 Houve um problema durante o carregamento de um script compilado devido a seguinte razão: [REASON]. Por favor, tente novamente mais tarde. 89 Houve um problema durante o carregamento de um script compilado devido a seguinte razão: [REASON]. Por favor, tente novamente mais tarde.
106 </message> 90 </message>
107
108 </alert> 91 </alert>
109 <alert name="WriteAnimationFail"> 92 <alert name="WriteAnimationFail">
110 <message name="message"> 93 <message name="message">
@@ -152,7 +135,20 @@
152 </alert> 135 </alert>
153 <alert name="GrantModifyRights"> 136 <alert name="GrantModifyRights">
154 <message name="message"> 137 <message name="message">
155 Permite que um outro residente modifique QUALQUER objeto que você tenha no Second Life. Seja muito cuidadoso quando lidar com essa permissão. Você deseja garantir os direitos de edição para [FIRST_NAME] [LAST_NAME]? 138 Conceder direitos de modificar a outros residentes lhes permite trocar, deletar ou pegar QUAISQUER objetos que você possa ter no mundo. Seja MUITO cuidadoso(a) quando passar esta permissão.
139Você deseja conceder direitos de modificar para [FIRST_NAME] [LAST_NAME]?
140 </message>
141 <option name="Yes">
142 Sim
143 </option>
144 <option name="No">
145 Não
146 </option>
147 </alert>
148 <alert name="GrantModifyRightsMultiple">
149 <message name="message">
150 Conceder direitos para modificar seus objetos a outro residente permite ele mudar QUAISQUER objetos que você possa ter no mundo. Tenha muito cuidado quando conceder essa permissão.
151Você deseja permitir que os residentes selecionados tenham direito de edição?
156 </message> 152 </message>
157 <option name="Yes"> 153 <option name="Yes">
158 Sim 154 Sim
@@ -172,6 +168,17 @@
172 Não 168 Não
173 </option> 169 </option>
174 </alert> 170 </alert>
171 <alert name="RevokeModifyRightsMultiple">
172 <message name="message">
173 Você quer revogar direitos para modificar dos residentes selecionados?
174 </message>
175 <option name="Yes">
176 Sim
177 </option>
178 <option name="No">
179 Não
180 </option>
181 </alert>
175 <alert name="RemoveFriend"> 182 <alert name="RemoveFriend">
176 <message name="message"> 183 <message name="message">
177 Você quer remover [FIRST] [LAST] dos seus amigos? 184 Você quer remover [FIRST] [LAST] dos seus amigos?
@@ -253,9 +260,6 @@
253 <message name="message"> 260 <message name="message">
254 Você está para adicionar membros do grupo a função de [ROLE_NAME]. Membros não podem ser removidos dessa função. Os membros devem sair por si mesmos. Deseja continuar? 261 Você está para adicionar membros do grupo a função de [ROLE_NAME]. Membros não podem ser removidos dessa função. Os membros devem sair por si mesmos. Deseja continuar?
255 </message> 262 </message>
256 <ignore>
257 Quando adicionar membros do grupo a funçõa de Proprietário.
258 </ignore>
259 <ignore name="ignore"> 263 <ignore name="ignore">
260 Quando adcionar membro ao grupo como dono. 264 Quando adcionar membro ao grupo como dono.
261 </ignore> 265 </ignore>
@@ -295,7 +299,16 @@
295 </alert> 299 </alert>
296 <alert name="ClickPublishHelpLand"> 300 <alert name="ClickPublishHelpLand">
297 <message name="message"> 301 <message name="message">
298 Selecionar a opção &quot;Publicar na Web&quot; nos permitirá publicar o nome, descrição, imagens e localização deste terreno no website [SECOND_LIFE]. Você é responsável por indicar se algum dos conteúdos acima for considerado Adulto de acordo com as Regras da Comunidade. 302 Selecionando &quot;Publicar na Busca&quot;
303Clicando neste Box, será mostrado:
304- este terreno nos resultados de busca
305- os objetos públicos deste terreno
306- este terreno na busca da web
307 </message>
308 </alert>
309 <alert name="ClickPublishHelpLandDisabled">
310 <message name="message">
311 Você não pode fazer essa parcela vista na Busca porque está localizada numa região que proíbe isso.
299 </message> 312 </message>
300 </alert> 313 </alert>
301 <alert name="ClickPublishHelpPostcard"> 314 <alert name="ClickPublishHelpPostcard">
@@ -305,12 +318,20 @@
305 </alert> 318 </alert>
306 <alert name="ClickPublishHelpAvatar"> 319 <alert name="ClickPublishHelpAvatar">
307 <message name="message"> 320 <message name="message">
308 Selecionar a opção &quot;Publicar na Web&quot; nos permitirá publicar seu nome, imagem e textos no website [SECOND_LIFE]. 321 Selecionando &quot;Mostrar na Busca&quot; será mostrado:
322- meu perfil nos resultados de busca
323- um link para meu perfil nas páginas de grupos públicos
309 </message> 324 </message>
310 </alert> 325 </alert>
311 <alert name="ClickWebProfileHelpAvatar"> 326 <alert name="ClickWebProfileHelpAvatar">
312 <message name="message"> 327 <message name="message">
313 Se esse residente tem um perfil URL na web então você pode: *Clique em Carregar para carregar a página como um web browser encaixado. * Clique em Abrir para ver extrenamente no seu web browser padrão. Quando visualizar seu perfil você pode entrar com qualquer URL que especificar quando eles acessarem seu perfil. 328 Se este Residente definiu uma URL de perfil na web, então você pode:
329 * Clicar em &apos;Carregar&apos; para ver a página na aba Web.
330 * Clicar Carregar &gt; &apos;Em navegador externo&apos; para ver a página no seu navegador de web padrão.
331 * Clicar Carregar &gt; &apos;URL de Casa&apos; para voltar ao perfil do Residente na web se você navegou adiante.
332
333Quando você está vendo seu próprio perfil, você pode entrar com qualquer URL como sendo seu perfil na web e clicar OK para defini-la.
334Outros residentes podem visitar a URL que você definiu, quando eles olharem seu perfil.
314 </message> 335 </message>
315 </alert> 336 </alert>
316 <alert name="ClickWebProfileNoWebHelpAvatar"> 337 <alert name="ClickWebProfileNoWebHelpAvatar">
@@ -378,7 +399,8 @@
378 </alert> 399 </alert>
379 <alert name="JoinGroupCannotAfford"> 400 <alert name="JoinGroupCannotAfford">
380 <message name="message"> 401 <message name="message">
381 Unir-se a esse grupo custa L$[COST]. Você não tem fundos suficientes para se unir a esse grupo. 402 Associar-se a este grupo custa L$[COST].
403Você não tem L$ suficientes para associar-se a este grupo.
382 </message> 404 </message>
383 </alert> 405 </alert>
384 <alert name="LandBuyPass"> 406 <alert name="LandBuyPass">
@@ -413,6 +435,20 @@
413 Cancelar 435 Cancelar
414 </option> 436 </option>
415 </alert> 437 </alert>
438 <alert name="ConfirmLandSaleToAnyoneChange">
439 <message name="message">
440 ATENÇÃO: Ao clicar em &apos;vender para qualquer um&apos; torna a sua terra disponível para toda a comunidade Second Life, mesmo aqueles que não estão nesta região.
441
442A área de [LAND_SIZE] m2 de terra selecionada está posta para venda.
443Seu preço de venda será L$ [SALE_PRICE] e está autorizado para [NAME].
444 </message>
445 <option name="Continue">
446 OK
447 </option>
448 <option name="Cancel">
449 Cancelar
450 </option>
451 </alert>
416 <alert name="ReturnObjectsDeededToGroup"> 452 <alert name="ReturnObjectsDeededToGroup">
417 <message name="message"> 453 <message name="message">
418 Você tem certeza de que quer retornar todos os objetos compartterrenodos com o grupo &apos;[NAME]&apos; neste lote para o inventário do seu antigo Proprietário? *AVISO* Isso irá apagar os objetos não transferíveis para o grupo! Objetos: [N] 454 Você tem certeza de que quer retornar todos os objetos compartterrenodos com o grupo &apos;[NAME]&apos; neste lote para o inventário do seu antigo Proprietário? *AVISO* Isso irá apagar os objetos não transferíveis para o grupo! Objetos: [N]
@@ -467,7 +503,6 @@
467 <option name="Cancel"> 503 <option name="Cancel">
468 Cancelar 504 Cancelar
469 </option> 505 </option>
470
471 </alert> 506 </alert>
472 <alert name="ReturnAllTopObjects"> 507 <alert name="ReturnAllTopObjects">
473 <message name="message"> 508 <message name="message">
@@ -479,7 +514,6 @@
479 <option name="Cancel"> 514 <option name="Cancel">
480 Cancelar 515 Cancelar
481 </option> 516 </option>
482
483 </alert> 517 </alert>
484 <alert name="DisableAllTopObjects"> 518 <alert name="DisableAllTopObjects">
485 <message name="message"> 519 <message name="message">
@@ -491,7 +525,6 @@
491 <option name="Cancel"> 525 <option name="Cancel">
492 Cancelar 526 Cancelar
493 </option> 527 </option>
494
495 </alert> 528 </alert>
496 <alert name="ReturnObjectsNotOwnedByGroup"> 529 <alert name="ReturnObjectsNotOwnedByGroup">
497 <message name="message"> 530 <message name="message">
@@ -503,107 +536,98 @@
503 <option name="Cancel"> 536 <option name="Cancel">
504 Cancelar 537 Cancelar
505 </option> 538 </option>
506
507 </alert> 539 </alert>
508 <alert name="UnableToDisableOutsideScripts"> 540 <alert name="UnableToDisableOutsideScripts">
509 <message name="message"> 541 <message name="message">
510 Não é possível desabilitar scripts externos. Toda esta região possui dano habilitado. Scripts devem ser permitidos para fazer as armas funcionarem. 542 Não é possível desabilitar scripts externos. Toda esta região possui dano habilitado. Scripts devem ser permitidos para fazer as armas funcionarem.
511 </message> 543 </message>
512
513 </alert> 544 </alert>
514 <alert name="MustBeInParcel"> 545 <alert name="MustBeInParcel">
515 <message name="message"> 546 <message name="message">
516 Você deve permanecer dentro do lote para o Landing Point. 547 Você deve permanecer dentro do lote para o Landing Point.
517 </message> 548 </message>
518
519 </alert> 549 </alert>
520 <alert name="PromptRecipientEmail"> 550 <alert name="PromptRecipientEmail">
521 <message name="message"> 551 <message name="message">
522 Por favor, insira o endereço de e-mail do destinatário. 552 Por favor, insira o endereço de e-mail do destinatário.
523 </message> 553 </message>
524
525 </alert> 554 </alert>
526 <alert name="PromptSelfEmail"> 555 <alert name="PromptSelfEmail">
527 <message name="message"> 556 <message name="message">
528 Por favor, insira seu endereço de e-mail. 557 Por favor, insira seu endereço de e-mail.
529 </message> 558 </message>
530 559 </alert>
560 <alert name="PromptMissingSubjMsg">
561 <message name="message">
562 Enviar por email uma foto instantânea com o assunto ou mensagem padrão?
563 </message>
564 <option name="OK">
565 OK
566 </option>
567 <option name="Cancel">
568 Cancelar
569 </option>
531 </alert> 570 </alert>
532 <alert name="ErrorProcessingSnapshot"> 571 <alert name="ErrorProcessingSnapshot">
533 <message name="message"> 572 <message name="message">
534 Erro processando dados de imagem. 573 Erro processando dados de imagem.
535 </message> 574 </message>
536
537 </alert> 575 </alert>
538 <alert name="ErrorEncodingSnapshot"> 576 <alert name="ErrorEncodingSnapshot">
539 <message name="message"> 577 <message name="message">
540 Erro encoding imagem! 578 Erro encoding imagem!
541 </message> 579 </message>
542
543 </alert> 580 </alert>
544 <alert name="ErrorUploadingPostcard"> 581 <alert name="ErrorUploadingPostcard">
545 <message name="message"> 582 <message name="message">
546 Houve um problema ao carregar um cartão postal devido a seguinte razão: [REASON] 583 Houve um problema ao enviar a foto instantânea devido à seguinte razão: [REASON]
547 </message> 584 </message>
548
549 </alert> 585 </alert>
550 <alert name="ErrorUploadingReportScreenshot"> 586 <alert name="ErrorUploadingReportScreenshot">
551 <message name="message"> 587 <message name="message">
552 Houve um problema ao carregar um reporte de imagem devido a seguinte razão: [REASON] 588 Houve um problema ao carregar um reporte de imagem devido a seguinte razão: [REASON]
553 </message> 589 </message>
554
555 </alert> 590 </alert>
556 <alert name="MustAgreeToLogIn"> 591 <alert name="MustAgreeToLogIn">
557 <message name="message"> 592 <message name="message">
558 Você deve concordar com os Termos de Serviço para continuar a entrar no [SECOND_LIFE]. 593 Você deve concordar com os Termos de Serviço para continuar a entrar no [SECOND_LIFE].
559 </message> 594 </message>
560
561 </alert> 595 </alert>
562 <alert name="CouldNotPutOnOutfit"> 596 <alert name="CouldNotPutOnOutfit">
563 <message name="message"> 597 <message name="message">
564 Não foi possível inserir no visual. A pasta visual não contém roupas, partes do corpo ou acessórios. 598 Não foi possível inserir no visual. A pasta visual não contém roupas, partes do corpo ou acessórios.
565 </message> 599 </message>
566
567 </alert> 600 </alert>
568 <alert name="CannotWearTrash"> 601 <alert name="CannotWearTrash">
569 <message name="message"> 602 <message name="message">
570 Não é possível usar roupas ou partes do corpo que estão no lixo. 603 Não é possível usar roupas ou partes do corpo que estão no lixo.
571 </message> 604 </message>
572
573 </alert> 605 </alert>
574 <alert name="CannotWearInfoNotComplete"> 606 <alert name="CannotWearInfoNotComplete">
575 <message name="message"> 607 <message name="message">
576 Não é possível usar um item uma vez que sua configuração ainda não esteja disponível. Por favor, tente novamente em um minuto. 608 Não é possível usar um item uma vez que sua configuração ainda não esteja disponível. Por favor, tente novamente em um minuto.
577 </message> 609 </message>
578
579 </alert>
580 <alert name="MustHaveAccountToLogInNoLinks">
581 <message name="message">
582 Você deve ter uma conta para conectar ao [SECOND_LIFE].
583 </message>
584 <option name="OK">
585 OK
586 </option>
587 <option name="Cancel">
588 Cancelar
589 </option>
590
591 </alert> 610 </alert>
592 <alert name="MustHaveAccountToLogIn"> 611 <alert name="MustHaveAccountToLogIn">
593 <message name="message"> 612 <message name="message">
594 Você deve ter uma conta para conectar ao [SECOND_LIFE]. Ir ao www.secondlife.com para criar uma nova conta? 613 Oops! Alguma coisa foi deixada em branco.
614Você precisa entrar com ambos os Nome e Sobrenome do seu avatar.
615
616Você precisa de uma conta para entrar no [SECOND_LIFE]. Você gostaria de criar uma conta agora?
595 </message> 617 </message>
596 <option name="OK"> 618 <option name="OK">
597 OK 619 Criar uma nova conta
598 </option> 620 </option>
599 <option name="Cancel"> 621 <option name="Cancel">
600 Cancelar 622 Tentar novamente
601 </option> 623 </option>
602
603 </alert> 624 </alert>
604 <alert name="AddClassified"> 625 <alert name="AddClassified">
605 <message name="message"> 626 <message name="message">
606 Anúncios postados aparecem na seção &quot;Classificados&quot; do diretório de Busca por uma semana. Preencha seu formulário, então clique em &quot;Publicar&quot; para adicioná-lo ao diretório. Você receberá uma notificação de cobrança após clicar em Publicar. Pagar mais fará seu anúncio aparecer mais ao topo da lista e também quando as pessoas procurarem por palavras chave. 627 Anúncios classificados aparecem na seção &apos;Classificados&apos; do diretório de Busca e no www.secondlife.com por uma semana.
628Preencha seu anúncio e então clique &apos;Publicar...&apos; para adicioná-lo ao diretório.
629Será solicitado a você um preço a ser pago, quando você clicar Publicar.
630Pagando mais, faz com que seu anúncio apareça em posição mais alta na lista e também em posição mais alta, quando as pessoas buscarem por palavras-chave.
607 </message> 631 </message>
608 <option name="OK"> 632 <option name="OK">
609 OK 633 OK
@@ -611,10 +635,9 @@
611 <option name="Cancel"> 635 <option name="Cancel">
612 Cancelar 636 Cancelar
613 </option> 637 </option>
614 <ignore> 638 <ignore name="ignore">
615 Quando adicionar um anúncio 639 Quando adicionando um Classificado novo
616 </ignore> 640 </ignore>
617
618 </alert> 641 </alert>
619 <alert name="DeleteClassified"> 642 <alert name="DeleteClassified">
620 <message name="message"> 643 <message name="message">
@@ -626,7 +649,20 @@
626 <option name="Cancel"> 649 <option name="Cancel">
627 Cancelar 650 Cancelar
628 </option> 651 </option>
629 652 </alert>
653 <alert name="ClassifiedSave">
654 <message name="message">
655 Salvar as mudanças no classificado [NAME]?
656 </message>
657 <option name="Save">
658 Salvar
659 </option>
660 <option name="Don&apos;tSave">
661 Não Salvar
662 </option>
663 <option name="Cancel">
664 Cancelar
665 </option>
630 </alert> 666 </alert>
631 <alert name="DeleteAvatarPick"> 667 <alert name="DeleteAvatarPick">
632 <message name="message"> 668 <message name="message">
@@ -638,7 +674,6 @@
638 <option name="Cancel"> 674 <option name="Cancel">
639 Cancelar 675 Cancelar
640 </option> 676 </option>
641
642 </alert> 677 </alert>
643 <alert name="DisplayChangeRestart"> 678 <alert name="DisplayChangeRestart">
644 <message name="message"> 679 <message name="message">
@@ -650,7 +685,6 @@
650 <option name="Cancel"> 685 <option name="Cancel">
651 Cancelar 686 Cancelar
652 </option> 687 </option>
653
654 </alert> 688 </alert>
655 <alert name="PromptGoToEventsPage"> 689 <alert name="PromptGoToEventsPage">
656 <message name="message"> 690 <message name="message">
@@ -662,35 +696,41 @@
662 <option name="Cancel"> 696 <option name="Cancel">
663 Cancelar 697 Cancelar
664 </option> 698 </option>
665
666 </alert> 699 </alert>
667 <alert name="MustSelectCandidate"> 700 <alert name="MustSelectCandidate">
668 <message name="message"> 701 <message name="message">
669 Você deve selecionar um candidato antes de votar. 702 Você deve selecionar um candidato antes de votar.
670 </message> 703 </message>
671
672 </alert> 704 </alert>
673 <alert name="SelectItemToView"> 705 <alert name="SelectItemToView">
674 <message name="message"> 706 <message name="message">
675 Por favor, selecione um item para visualizar. 707 Por favor, selecione um item para visualizar.
676 </message> 708 </message>
677
678 </alert> 709 </alert>
679 <alert name="SelectProposalToView"> 710 <alert name="SelectProposalToView">
680 <message name="message"> 711 <message name="message">
681 Por favor, selecione uma proposta para votar. 712 Por favor, selecione uma proposta para votar.
682 </message> 713 </message>
683
684 </alert> 714 </alert>
685 <alert name="SelectHistoryItemToView"> 715 <alert name="SelectHistoryItemToView">
686 <message name="message"> 716 <message name="message">
687 Por favor, selecione o histórico de itens para exibí-lo. 717 Por favor, selecione o histórico de itens para exibí-lo.
688 </message> 718 </message>
689
690 </alert> 719 </alert>
691 <alert name="ResetShowNextTimeDialogs"> 720 <alert name="ResetShowNextTimeDialogs">
692 <message name="message"> 721 <message name="message">
693 Resetar tudo. Reset all &apos;Show next time&apos; dialogs? 722 Você gostaria de reabilitar todas estas pop ups que você indicou previamente como &apos;Não me mostrar novamente&apos;?
723 </message>
724 <option name="OK">
725 OK
726 </option>
727 <option name="Cancel">
728 Cancelar
729 </option>
730 </alert>
731 <alert name="SkipShowNextTimeDialogs">
732 <message name="message">
733 Você gostaria de desabilitar todas as popups que podem ser puladas?
694 </message> 734 </message>
695 <option name="OK"> 735 <option name="OK">
696 OK 736 OK
@@ -698,13 +738,11 @@
698 <option name="Cancel"> 738 <option name="Cancel">
699 Cancelar 739 Cancelar
700 </option> 740 </option>
701
702 </alert> 741 </alert>
703 <alert name="CacheWillClear"> 742 <alert name="CacheWillClear">
704 <message name="message"> 743 <message name="message">
705 O cache será limpo uma vez resetada. 744 O cache será limpo uma vez resetada.
706 </message> 745 </message>
707
708 </alert> 746 </alert>
709 <alert name="CacheWillBeMoved"> 747 <alert name="CacheWillBeMoved">
710 <message name="message"> 748 <message name="message">
@@ -717,6 +755,11 @@ Nota: Isto limpará o cache.
717 Configuração de porta terá efeito após reiniciar [SECOND_LIFE]. 755 Configuração de porta terá efeito após reiniciar [SECOND_LIFE].
718 </message> 756 </message>
719 </alert> 757 </alert>
758 <alert name="ChangeSkin">
759 <message name="message">
760 A nova pele será exibida após reiniciar [SECOND_LIFE].
761 </message>
762 </alert>
720 <alert name="GoToAuctionPage"> 763 <alert name="GoToAuctionPage">
721 <message name="message"> 764 <message name="message">
722 Ir para a página do [SECOND_LIFE] para ver os detalhes do leilão ou fazer um lance? 765 Ir para a página do [SECOND_LIFE] para ver os detalhes do leilão ou fazer um lance?
@@ -727,7 +770,6 @@ Nota: Isto limpará o cache.
727 <option name="Cancel"> 770 <option name="Cancel">
728 Cancelar 771 Cancelar
729 </option> 772 </option>
730
731 </alert> 773 </alert>
732 <alert name="SaveChanges"> 774 <alert name="SaveChanges">
733 <message name="message"> 775 <message name="message">
@@ -742,43 +784,36 @@ Nota: Isto limpará o cache.
742 <option name="Cancel"> 784 <option name="Cancel">
743 Cancelar 785 Cancelar
744 </option> 786 </option>
745
746 </alert> 787 </alert>
747 <alert name="GestureSaveFailedTooManySteps"> 788 <alert name="GestureSaveFailedTooManySteps">
748 <message name="message"> 789 <message name="message">
749 Falha ao salvar Gesto. Este gesto possui muitos passos.Tente remover alguns passos e salve-o novamente. 790 Falha ao salvar Gesto. Este gesto possui muitos passos.Tente remover alguns passos e salve-o novamente.
750 </message> 791 </message>
751
752 </alert> 792 </alert>
753 <alert name="GestureSaveFailedTryAgain"> 793 <alert name="GestureSaveFailedTryAgain">
754 <message name="message"> 794 <message name="message">
755 Falha ao salvar Gesto. Por favor, tente em uma minuto.Gesture save failed. 795 Falha ao salvar Gesto. Por favor, tente em uma minuto.Gesture save failed.
756 </message> 796 </message>
757
758 </alert> 797 </alert>
759 <alert name="GestureSaveFailedObjectNotFound"> 798 <alert name="GestureSaveFailedObjectNotFound">
760 <message name="message"> 799 <message name="message">
761 Não foi possível salvar um Gesto pois o objeto ou o objeto associado ao inventário não foi encontrado. O objeto pode estar fora de alcance. Objeto pode estar fora de alcance ou estar deletado. 800 Não foi possível salvar um Gesto pois o objeto ou o objeto associado ao inventário não foi encontrado. O objeto pode estar fora de alcance. Objeto pode estar fora de alcance ou estar deletado.
762 </message> 801 </message>
763
764 </alert> 802 </alert>
765 <alert name="GestureSaveFailedReason"> 803 <alert name="GestureSaveFailedReason">
766 <message name="message"> 804 <message name="message">
767 Houve um problema em salvar um gesto devido a seguinte razão: [REASON]. Por favor, tente salvar o Gesto depois. 805 Houve um problema em salvar um gesto devido a seguinte razão: [REASON]. Por favor, tente salvar o Gesto depois.
768 </message> 806 </message>
769
770 </alert> 807 </alert>
771 <alert name="SaveNotecardFailObjectNotFound"> 808 <alert name="SaveNotecardFailObjectNotFound">
772 <message name="message"> 809 <message name="message">
773 Não foi possível salvar uma nota pois o objeto ou o objeto associado ao inventário não pôde ser encontrado. 810 Não foi possível salvar uma nota pois o objeto ou o objeto associado ao inventário não pôde ser encontrado.
774 </message> 811 </message>
775
776 </alert> 812 </alert>
777 <alert name="SaveNotecardFailReason"> 813 <alert name="SaveNotecardFailReason">
778 <message name="message"> 814 <message name="message">
779 Houve um problema em salvar uma nota devido a seguinte razão: [REASON]. Por favor, tente re-salvar a nota mais tarde. 815 Houve um problema em salvar uma nota devido a seguinte razão: [REASON]. Por favor, tente re-salvar a nota mais tarde.
780 </message> 816 </message>
781
782 </alert> 817 </alert>
783 <alert name="ScriptCannotUndo"> 818 <alert name="ScriptCannotUndo">
784 <message name="message"> 819 <message name="message">
@@ -790,55 +825,46 @@ Nota: Isto limpará o cache.
790 <option name="No"> 825 <option name="No">
791 Não 826 Não
792 </option> 827 </option>
793
794 </alert> 828 </alert>
795 <alert name="SaveScriptFailReason"> 829 <alert name="SaveScriptFailReason">
796 <message name="message"> 830 <message name="message">
797 Houve um problema em salvar um script devido a seguinte razão: [REASON]. Por favor, tente salvar novamente o script. 831 Houve um problema em salvar um script devido a seguinte razão: [REASON]. Por favor, tente salvar novamente o script.
798 </message> 832 </message>
799
800 </alert> 833 </alert>
801 <alert name="SaveScriptFailObjectNotFound"> 834 <alert name="SaveScriptFailObjectNotFound">
802 <message name="message"> 835 <message name="message">
803 Não foi possível salvar o script pois o objeto ativo não pôde ser encontrado. O objeto pode estar fora de alcance ou ter sido deletado. 836 Não foi possível salvar o script pois o objeto ativo não pôde ser encontrado. O objeto pode estar fora de alcance ou ter sido deletado.
804 </message> 837 </message>
805
806 </alert> 838 </alert>
807 <alert name="SaveBytecodeFailReason"> 839 <alert name="SaveBytecodeFailReason">
808 <message name="message"> 840 <message name="message">
809 Houve um problema em salvar uma compilação de script devido a seguinte razão: [REASON]. Por favor, tente salvar novamente o script. 841 Houve um problema em salvar uma compilação de script devido a seguinte razão: [REASON]. Por favor, tente salvar novamente o script.
810 </message> 842 </message>
811
812 </alert> 843 </alert>
813 <alert name="CouldNotStartStopScript"> 844 <alert name="CouldNotStartStopScript">
814 <message name="message"> 845 <message name="message">
815 Não foi possível iniciar o script pois o objeto ativo não pôde ser encontrado. O objeto pode estar fora de alcance ou ter sido deletado. 846 Não foi possível iniciar o script pois o objeto ativo não pôde ser encontrado. O objeto pode estar fora de alcance ou ter sido deletado.
816 </message> 847 </message>
817
818 </alert> 848 </alert>
819 <alert name="CannotDownloadFile"> 849 <alert name="CannotDownloadFile">
820 <message name="message"> 850 <message name="message">
821 Não foi possível baixar o arquivo. 851 Não foi possível baixar o arquivo.
822 </message> 852 </message>
823
824 </alert> 853 </alert>
825 <alert name="CannotWriteEncode"> 854 <alert name="CannotWriteEncode">
826 <message name="message"> 855 <message name="message">
827 Não foi possível encoder o arquivo [[FILE]] 856 Não foi possível encoder o arquivo [[FILE]]
828 </message> 857 </message>
829
830 </alert> 858 </alert>
831 <alert name="CannotWriteFile"> 859 <alert name="CannotWriteFile">
832 <message name="message"> 860 <message name="message">
833 Não foi possível escrever o arquivo [[FILE]] 861 Não foi possível escrever o arquivo [[FILE]]
834 </message> 862 </message>
835
836 </alert> 863 </alert>
837 <alert name="CannotLoadWearable"> 864 <alert name="CannotLoadWearable">
838 <message name="message"> 865 <message name="message">
839 Desculpe, não foi possível carregar o arquivo utilizado. 866 Desculpe, não foi possível carregar o arquivo utilizado.
840 </message> 867 </message>
841
842 </alert> 868 </alert>
843 <alert name="ConfirmDeleteComplicated"> 869 <alert name="ConfirmDeleteComplicated">
844 <message name="message"> 870 <message name="message">
@@ -850,13 +876,70 @@ Nota: Isto limpará o cache.
850 <option name="No"> 876 <option name="No">
851 Não 877 Não
852 </option> 878 </option>
853
854 </alert> 879 </alert>
855 <alert name="DisplaySettingsSafe"> 880 <alert name="DisplaySettingsSafe">
856 <message name="message"> 881 <message name="message">
857 Os ajustes de display foram configurados para os níveis de segurança, porque você especificou - opção salvar. 882 Os ajustes de display foram configurados para os níveis de segurança, porque você especificou - opção salvar.
858 </message> 883 </message>
884 </alert>
885 <alert name="UnsupportedGLRequirements">
886 <message name="message">
887 Você não parece ter requisitos de hardware recomendados para Second Life. Second Life exige uma placa gráfica OpenGL que tem apoio a multi- texturas. Se este for o caso, você pode se certificar de que tem os drivers mais recentes para sua placa gráfica, e os patches e pacotes de serviços para seu sistema operacional.
859 888
889Se continuar com problemas, por favor visite: http://www.secondlife.com/support
890 </message>
891 </alert>
892 <alert name="UnsupportedHardware">
893 <message name="message">
894 Aviso: Seu sistema não é compatível com os requisitos mínimos exigidos pelo Second Life. Se você continuar usando o Second Life pode experimentar uma performance ruim. Infelizmente não podemos oferecer suporte técnico para configurações de sistema não suportado.
895
896MINSPECS
897Você deseja visitar [_URL] para maiores informações?
898 </message>
899 <ignore name="ignore">
900 Ao detectar hardware não suportado
901 </ignore>
902 <option name="Yes">
903 Sim
904 </option>
905 <option name="No">
906 Não
907 </option>
908 </alert>
909 <alert name="UnsupportedGPU">
910 <message name="message">
911 - A sua placa de vídeo parece não atender os requisitos mínimos exigidos.
912 </message>
913 </alert>
914 <alert name="UnsupportedCPU">
915 <message name="message">
916 - A velocidade da sua CPU não suporta os requisitos mínimos exigidos.
917 </message>
918 </alert>
919 <alert name="UnsupportedCPUAmount">
920 <message name="message">
921 796
922 </message>
923 </alert>
924 <alert name="UnsupportedRAM">
925 <message name="message">
926 - A memória do seu sistema não suporta os requisitos mínimos exigidos.
927 </message>
928 </alert>
929 <alert name="UnsupportedRAMAmount">
930 <message name="message">
931 510
932 </message>
933 </alert>
934 <alert name="UnknownGPU">
935 <message name="message">
936 Seu sistema possui uma placa gráfica que nos é desconhecido neste momento.
937Freqüentemente neste caso com um novo hardware, não tivemos a chance de testar. Second Life vai muito provavelmente executar corretamente, mas talvez seja necessária ajustar suas configurações de gráficos para algo mais apropriado.
938(Menu Editar &gt; Preferências &gt; Gráficos).
939 </message>
940 <ignore name="ignore">
941 Ao detectar uma placa de vídeo desconhecida
942 </ignore>
860 </alert> 943 </alert>
861 <alert name="DisplaySettingsRecommended"> 944 <alert name="DisplaySettingsRecommended">
862 <message name="message"> 945 <message name="message">
@@ -865,21 +948,20 @@ Nota: Isto limpará o cache.
865 <option name="OK"> 948 <option name="OK">
866 OK 949 OK
867 </option> 950 </option>
868
869 </alert> 951 </alert>
870 <alert name="DisplaySettingsNoShaders"> 952 <alert name="DisplaySettingsNoShaders">
871 <message name="message"> 953 <message name="message">
872 [SECOND_LIFE] teve uma falha tentando inicializar os drivers gráficos. 954 [SECOND_LIFE] travou quando inicializava os drivers gráficos.
873 As sombras serão desabilitadas para evitar erros de drivers 955A Qualidade Gráfica será ajustada para baixa, para evitar alguns erros comuns de drivers.
874 Recomendamos que você atualize seu drive de vídeo. 956Isto irá desabilitar alguns atributos gráficos.
875 A sombras poderam ser abilitadas novamente nas Preferências. 957Nós recomendamos a atualização dos drivers de sua placa gráfica.
958A Qualidade Gráfica pode ser aumentada no Preferências &gt; Gráficos.
876 </message> 959 </message>
877 </alert> 960 </alert>
878 <alert name="CannotRequestDomain"> 961 <alert name="CannotRequestDomain">
879 <message name="message"> 962 <message name="message">
880 Não foi possível conectar ao servidor. Requisição do domínio [HOST] impossível. 963 Não foi possível conectar ao servidor. Requisição do domínio [HOST] impossível.
881 </message> 964 </message>
882
883 </alert> 965 </alert>
884 <alert name="CannotFindDomain"> 966 <alert name="CannotFindDomain">
885 <message name="message"> 967 <message name="message">
@@ -891,49 +973,41 @@ Nota: Isto limpará o cache.
891 <option name="Help"> 973 <option name="Help">
892 Ajuda 974 Ajuda
893 </option> 975 </option>
894
895 </alert> 976 </alert>
896 <alert name="PromptSelectServer"> 977 <alert name="PromptSelectServer">
897 <message name="message"> 978 <message name="message">
898 Por favor, selecione um servidor. Não foi possível se conectar ao [SERVER] 979 Por favor, selecione um servidor. Não foi possível se conectar ao [SERVER]
899 </message> 980 </message>
900
901 </alert> 981 </alert>
902 <alert name="CannotConnectDNSError"> 982 <alert name="CannotConnectDNSError">
903 <message name="message"> 983 <message name="message">
904 Não foi possível conectar-se ao [SECOND_LIFE]. DNS por não encontrar o nome do host. Por favor, verifique se você pode conectar-se ao www.secondlife.com. Caso consiga, mas continue a receber esse erro, por favor entre em contato com o suporte e relate este problema. 984 Não foi possível conectar-se ao [SECOND_LIFE]. DNS por não encontrar o nome do host. Por favor, verifique se você pode conectar-se ao www.secondlife.com. Caso consiga, mas continue a receber esse erro, por favor entre em contato com o suporte e relate este problema.
905 </message> 985 </message>
906
907 </alert> 986 </alert>
908 <alert name="CannotConnectSecurityError"> 987 <alert name="CannotConnectSecurityError">
909 <message name="message"> 988 <message name="message">
910 Não foi possível estabelecer uma conexão segura com o servidor de entrada. Geralmente isso significa que o relógio de seu computador está configurado incorretamente. Por favor, vá até ao Painel de Controle e certifique-se que a data/hora estejam corretas. Se continuar a receber esse erro, por favor informe a Equipe de Suporte. 989 Não foi possível estabelecer uma conexão segura com o servidor de entrada. Geralmente isso significa que o relógio de seu computador está configurado incorretamente. Por favor, vá até ao Painel de Controle e certifique-se que a data/hora estejam corretas. Se continuar a receber esse erro, por favor informe a Equipe de Suporte.
911 </message> 990 </message>
912
913 </alert> 991 </alert>
914 <alert name="CannotConnectVerificationError"> 992 <alert name="CannotConnectVerificationError">
915 <message name="message"> 993 <message name="message">
916 Não foi possível conectar-se ao [SECOND_LIFE]. O servidor de entrada não pôde verificá-lo via SSL. Caso você continue a receber este erro, por favor informar a Equipe de Suporte. 994 Não foi possível conectar-se ao [SECOND_LIFE]. O servidor de entrada não pôde verificá-lo via SSL. Caso você continue a receber este erro, por favor informar a Equipe de Suporte.
917 </message> 995 </message>
918
919 </alert> 996 </alert>
920 <alert name="CannotConnectUnknownErrorWindows"> 997 <alert name="CannotConnectUnknownErrorWindows">
921 <message name="message"> 998 <message name="message">
922 Não foi possível conectar-se ao [SECOND_LIFE]. Apesar dos nossos esforços, algo inesperado aconteceu. Por favor, vá a seção de Suporte e reporte este problema a Equipe de Suporte. Se possível, inclua seu arquivo de log do SL (C:\Documents and Settings\(name)\Application Data\SecondLife\logs. Obrigado. 999 Não foi possível conectar-se ao [SECOND_LIFE]. Apesar dos nossos esforços, algo inesperado aconteceu. Por favor, vá a seção de Suporte e reporte este problema a Equipe de Suporte. Se possível, inclua seu arquivo de log do SL (C:\Documents and Settings\(name)\Application Data\SecondLife\logs. Obrigado.
923 </message> 1000 </message>
924
925 </alert> 1001 </alert>
926 <alert name="CannotConnectUnknownErrorDarwin"> 1002 <alert name="CannotConnectUnknownErrorDarwin">
927 <message name="message"> 1003 <message name="message">
928 Não foi possível conectar-se ao [SECOND_LIFE]. Apesar dos nossos esforços, algo inesperado aconteceu. Por favor, vá a seção de Suporte e reporte este problema a Equipe de Suporte. Se possível, inclua seu arquivo de log (~/Library/Application Support/SecondLife/logs). Obrigado. 1004 Não foi possível conectar-se ao [SECOND_LIFE]. Apesar dos nossos esforços, algo inesperado aconteceu. Por favor, vá a seção de Suporte e reporte este problema a Equipe de Suporte. Se possível, inclua seu arquivo de log (~/Library/Application Support/SecondLife/logs). Obrigado.
929 </message> 1005 </message>
930
931 </alert> 1006 </alert>
932 <alert name="CannotResolveLoginToken"> 1007 <alert name="CannotResolveLoginToken">
933 <message name="message"> 1008 <message name="message">
934 Houve um problema ao realizar a autenticação de seu login. Por favor, tente entrar novamente. Caso continue a receber esse erro, por favor vá a seção de Suporte e reporte esse problema a Equipe de Suporte. 1009 Houve um problema ao realizar a autenticação de seu login. Por favor, tente entrar novamente. Caso continue a receber esse erro, por favor vá a seção de Suporte e reporte esse problema a Equipe de Suporte.
935 </message> 1010 </message>
936
937 </alert> 1011 </alert>
938 <alert name="CannotConnectNoMessage"> 1012 <alert name="CannotConnectNoMessage">
939 <message name="message"> 1013 <message name="message">
@@ -945,7 +1019,6 @@ Nota: Isto limpará o cache.
945 <option name="Help"> 1019 <option name="Help">
946 Ajuda 1020 Ajuda
947 </option> 1021 </option>
948
949 </alert> 1022 </alert>
950 <alert name="CannotConnectNoReplyFromLogin"> 1023 <alert name="CannotConnectNoReplyFromLogin">
951 <message name="message"> 1024 <message name="message">
@@ -957,13 +1030,11 @@ Nota: Isto limpará o cache.
957 <option name="Help"> 1030 <option name="Help">
958 Ajuda 1031 Ajuda
959 </option> 1032 </option>
960
961 </alert> 1033 </alert>
962 <alert name="CannotConnectLoginTimeout"> 1034 <alert name="CannotConnectLoginTimeout">
963 <message name="message"> 1035 <message name="message">
964 Login terminado por aguardar por sua localização dentro do mundo. Por favor, tente novamente. 1036 Login terminado por aguardar por sua localização dentro do mundo. Por favor, tente novamente.
965 </message> 1037 </message>
966
967 </alert> 1038 </alert>
968 <alert name="FirstRunDialog"> 1039 <alert name="FirstRunDialog">
969 <message name="message"> 1040 <message name="message">
@@ -975,31 +1046,16 @@ Nota: Isto limpará o cache.
975 <option name="Continue"> 1046 <option name="Continue">
976 Continuar 1047 Continuar
977 </option> 1048 </option>
978
979 </alert> 1049 </alert>
980 <alert name="ClothingStillDownloading"> 1050 <alert name="ClothingStillDownloading">
981 <message name="message"> 1051 <message name="message">
982 Suas roupas ainda estão carregando. Você pode explorar o mundo normalmente, e os outros residentes irão vê-lo corretamente. 1052 Suas roupas ainda estão carregando. Você pode explorar o mundo normalmente, e os outros residentes irão vê-lo corretamente.
983 </message> 1053 </message>
984
985 </alert> 1054 </alert>
986 <alert name="CannotResolveDomain"> 1055 <alert name="CannotResolveDomain">
987 <message name="message"> 1056 <message name="message">
988 Não foi possível conectar-se ao servidor. Não encontrado o nome do domínio: [DOMAIN]. Por favor, confira sua conexão de rede. 1057 Não foi possível conectar-se ao servidor. Não encontrado o nome do domínio: [DOMAIN]. Por favor, confira sua conexão de rede.
989 </message> 1058 </message>
990
991 </alert>
992 <alert name="CannotConnectLoginPacket">
993 <message name="message">
994 Não foi possível conectar-se. O pacote de entrada não fi recebido pelo servidor de entrada. Por favor, tente novamente em poucos minutos ou clique em Ajuda para maiores informações sobre o status do sistema.
995 </message>
996 <option name="OK">
997 OK
998 </option>
999 <option name="Help">
1000 Ajuda
1001 </option>
1002
1003 </alert> 1059 </alert>
1004 <alert name="WelcomeToSecondLife"> 1060 <alert name="WelcomeToSecondLife">
1005 <message name="message"> 1061 <message name="message">
@@ -1011,7 +1067,6 @@ Nota: Isto limpará o cache.
1011 <option name="Female"> 1067 <option name="Female">
1012 Feminino 1068 Feminino
1013 </option> 1069 </option>
1014
1015 </alert> 1070 </alert>
1016 <alert name="WelcomeToSecondLifeSimple"> 1071 <alert name="WelcomeToSecondLifeSimple">
1017 <message name="message"> 1072 <message name="message">
@@ -1023,25 +1078,11 @@ Nota: Isto limpará o cache.
1023 <option name="Female"> 1078 <option name="Female">
1024 Feminino 1079 Feminino
1025 </option> 1080 </option>
1026
1027 </alert>
1028 <alert name="ConfirmQuit">
1029 <message name="message">
1030 Deseja sair?
1031 </message>
1032 <option name="Yes">
1033 Sim
1034 </option>
1035 <option name="No">
1036 Não
1037 </option>
1038
1039 </alert> 1081 </alert>
1040 <alert name="RegionNoTerraforming"> 1082 <alert name="RegionNoTerraforming">
1041 <message name="message"> 1083 <message name="message">
1042 A região [REGION] não permite ser plainada. Você precisará comprar um lote em outra parte do mundo para fazê-lo. 1084 A região [REGION] não permite ser plainada. Você precisará comprar um lote em outra parte do mundo para fazê-lo.
1043 </message> 1085 </message>
1044
1045 </alert> 1086 </alert>
1046 <alert name="CannotCopyWarning"> 1087 <alert name="CannotCopyWarning">
1047 <message name="message"> 1088 <message name="message">
@@ -1053,31 +1094,26 @@ Nota: Isto limpará o cache.
1053 <option name="No"> 1094 <option name="No">
1054 Não 1095 Não
1055 </option> 1096 </option>
1056
1057 </alert> 1097 </alert>
1058 <alert name="CannotGiveItem"> 1098 <alert name="CannotGiveItem">
1059 <message name="message"> 1099 <message name="message">
1060 Não foi possível entregar o item. 1100 Não foi possível entregar o item.
1061 </message> 1101 </message>
1062
1063 </alert> 1102 </alert>
1064 <alert name="TransactionCancelled"> 1103 <alert name="TransactionCancelled">
1065 <message name="message"> 1104 <message name="message">
1066 Transação cancelada. 1105 Transação cancelada.
1067 </message> 1106 </message>
1068
1069 </alert> 1107 </alert>
1070 <alert name="TooManyItems"> 1108 <alert name="TooManyItems">
1071 <message name="message"> 1109 <message name="message">
1072 Não é possível passar muitos itens entre inventários em uma transação simples. 1110 Não é possível passar muitos itens entre inventários em uma transação simples.
1073 </message> 1111 </message>
1074
1075 </alert> 1112 </alert>
1076 <alert name="NoItems"> 1113 <alert name="NoItems">
1077 <message name="message"> 1114 <message name="message">
1078 Você não pode dar itens. 1115 Você não tem permissão para transferir os itens selecionados.
1079 </message> 1116 </message>
1080
1081 </alert> 1117 </alert>
1082 <alert name="CannotCopyCountItems"> 1118 <alert name="CannotCopyCountItems">
1083 <message name="message"> 1119 <message name="message">
@@ -1089,13 +1125,11 @@ Nota: Isto limpará o cache.
1089 <option name="No"> 1125 <option name="No">
1090 Não 1126 Não
1091 </option> 1127 </option>
1092
1093 </alert> 1128 </alert>
1094 <alert name="CannotGiveCategory"> 1129 <alert name="CannotGiveCategory">
1095 <message name="message"> 1130 <message name="message">
1096 Não foi possível entregar esta categoria de item. 1131 Você não tem permissão para transferir a pasta selecionada.
1097 </message> 1132 </message>
1098
1099 </alert> 1133 </alert>
1100 <alert name="FreezeAvatar"> 1134 <alert name="FreezeAvatar">
1101 <message name="message"> 1135 <message name="message">
@@ -1110,7 +1144,21 @@ Nota: Isto limpará o cache.
1110 <option name="Cancel"> 1144 <option name="Cancel">
1111 Cancelar 1145 Cancelar
1112 </option> 1146 </option>
1113 1147 </alert>
1148 <alert name="FreezeAvatarFullname">
1149 <message name="message">
1150 Congelar [AVATAR_NAME]?
1151Ele ou ela vai ficar temporariamente incapaz de se mover, 
usar o bate-papo, ou interagir com o mundo.
1152 </message>
1153 <option name="Freeze">
1154 Congelar
1155 </option>
1156 <option name="Unfreeze">
1157 Descongelar
1158 </option>
1159 <option name="Cancel">
1160 Cancelar
1161 </option>
1114 </alert> 1162 </alert>
1115 <alert name="EjectAvatar"> 1163 <alert name="EjectAvatar">
1116 <message name="message"> 1164 <message name="message">
@@ -1125,25 +1173,35 @@ Nota: Isto limpará o cache.
1125 <option name="Cancel"> 1173 <option name="Cancel">
1126 Cancelar 1174 Cancelar
1127 </option> 1175 </option>
1128 1176 </alert>
1177 <alert name="EjectAvatarFullname">
1178 <message name="message">
1179 Ejetar [AVATAR_NAME] das suas terras?
1180 </message>
1181 <option name="Eject">
1182 Ejetar
1183 </option>
1184 <option name="EjectandBan">
1185 Ejetar e Banir
1186 </option>
1187 <option name="Cancel">
1188 Cancelar
1189 </option>
1129 </alert> 1190 </alert>
1130 <alert name="InvalidUUID"> 1191 <alert name="InvalidUUID">
1131 <message name="message"> 1192 <message name="message">
1132 UUID inválido 1193 UUID inválido
1133 </message> 1194 </message>
1134
1135 </alert> 1195 </alert>
1136 <alert name="AcquireErrorTooManyObjects"> 1196 <alert name="AcquireErrorTooManyObjects">
1137 <message name="message"> 1197 <message name="message">
1138 ACQUIRE ERROR: Muitos objetos selecionados. 1198 ACQUIRE ERROR: Muitos objetos selecionados.
1139 </message> 1199 </message>
1140
1141 </alert> 1200 </alert>
1142 <alert name="AcquireErrorObjectSpan"> 1201 <alert name="AcquireErrorObjectSpan">
1143 <message name="message"> 1202 <message name="message">
1144 ACQUIRE ERROR: Objetos criados em mais de uma região. Por favor, mova todos os objetos para serem adquiridos em uma mesma região. 1203 ACQUIRE ERROR: Objetos criados em mais de uma região. Por favor, mova todos os objetos para serem adquiridos em uma mesma região.
1145 </message> 1204 </message>
1146
1147 </alert> 1205 </alert>
1148 <alert name="TakeLockedOrNotOwnedBy"> 1206 <alert name="TakeLockedOrNotOwnedBy">
1149 <message name="message"> 1207 <message name="message">
@@ -1155,11 +1213,12 @@ Nota: Isto limpará o cache.
1155 <option name="No"> 1213 <option name="No">
1156 Não 1214 Não
1157 </option> 1215 </option>
1158
1159 </alert> 1216 </alert>
1160 <alert name="PromptGoToCurrencyPage"> 1217 <alert name="PromptGoToCurrencyPage">
1161 <message name="message"> 1218 <message name="message">
1162 [EXTRA] Ir para [URL] para informações sobre adquirir moeda? 1219 [EXTRA]
1220
1221Vá para [URL] para informação sobre compra de dinheiro.
1163 </message> 1222 </message>
1164 <option name="GotoPage"> 1223 <option name="GotoPage">
1165 Ir até a página 1224 Ir até a página
@@ -1167,37 +1226,37 @@ Nota: Isto limpará o cache.
1167 <option name="Cancel"> 1226 <option name="Cancel">
1168 Cancelar 1227 Cancelar
1169 </option> 1228 </option>
1170
1171 </alert> 1229 </alert>
1172 <alert name="UnableToLinkObjects"> 1230 <alert name="UnableToLinkObjects">
1173 <message name="message"> 1231 <message name="message">
1174 Não é possível unir estes [COUNT] objetos. Você pode unir um máximo de [MAX] objetos. Tente selecionar menos objetos. 1232 Não é possível unir estes [COUNT] objetos. Você pode unir um máximo de [MAX] objetos. Tente selecionar menos objetos.
1175 </message> 1233 </message>
1176
1177 </alert> 1234 </alert>
1178 <alert name="CannotLinkIncompleteSet"> 1235 <alert name="CannotLinkIncompleteSet">
1179 <message name="message"> 1236 <message name="message">
1180 Você pode unir apenas conjuntos de objetos, e deve selecionar mais que um objeto. 1237 Você pode unir apenas conjuntos de objetos, e deve selecionar mais que um objeto.
1181 </message> 1238 </message>
1182
1183 </alert> 1239 </alert>
1184 <alert name="CannotLinkModify"> 1240 <alert name="CannotLinkModify">
1185 <message name="message"> 1241 <message name="message">
1186 Não é possível unir, pois você não tem permissão para alterar todos os objetos. Certifique-se de que nenhum deles esteja trancado e que todos objetos sejam de sua posse. 1242 Impossibilitado de unir, porque você não tem permissão para modificar todos os objetos.
1187 </message>
1188 1243
1244Por favor, certifique-se de que nenhum deles está travado e que você é dono de todos eles.
1245 </message>
1189 </alert> 1246 </alert>
1190 <alert name="CannotLinkDifferentOwners"> 1247 <alert name="CannotLinkDifferentOwners">
1191 <message name="message"> 1248 <message name="message">
1192 Não é possível unir, pois os objetos não têm o mesmo proprietário. Certifique-se de possuir todos os objetos. 1249 Impossibilitado de unir porque nem todos os objetos são do mesmo dono.
1193 </message>
1194 1250
1251Por favor, certifique-se de que você é o dono de todos os objetos selecionados.
1252 </message>
1195 </alert> 1253 </alert>
1196 <alert name="NoFileExtension"> 1254 <alert name="NoFileExtension">
1197 <message name="message"> 1255 <message name="message">
1198 Sem arquivos de extensão para o arquivo &apos;[FILE]&apos; Por favor, certifique-se de que o arquivo tenha a extensão correta. 1256 Nenhuma extensão para o arquivo: &apos;[FILE]&apos;
1199 </message>
1200 1257
1258Por favor, certifique-se de que o arquivo tem uma extensão de arquivo correta.
1259 </message>
1201 </alert> 1260 </alert>
1202 <alert name="InvalidFileExtension"> 1261 <alert name="InvalidFileExtension">
1203 <message name="message"> 1262 <message name="message">
@@ -1206,235 +1265,218 @@ Nota: Isto limpará o cache.
1206 <option name="OK"> 1265 <option name="OK">
1207 OK 1266 OK
1208 </option> 1267 </option>
1209
1210 </alert> 1268 </alert>
1211 <alert name="CannotUploadSoundFile"> 1269 <alert name="CannotUploadSoundFile">
1212 <message name="message"> 1270 <message name="message">
1213 Não é possível ler o arquivo de som para leitura: [FILE] 1271 Não é possível ler o arquivo de som para leitura: [FILE]
1214 </message> 1272 </message>
1215
1216 </alert> 1273 </alert>
1217 <alert name="SoundFileNotRIFF"> 1274 <alert name="SoundFileNotRIFF">
1218 <message name="message"> 1275 <message name="message">
1219 O arquivo não aparenta ser um arquivo do tipo RIFF WAVE: [FILE] 1276 O arquivo não aparenta ser um arquivo do tipo RIFF WAVE: [FILE]
1220 </message> 1277 </message>
1221
1222 </alert> 1278 </alert>
1223 <alert name="SoundFileNotPCM"> 1279 <alert name="SoundFileNotPCM">
1224 <message name="message"> 1280 <message name="message">
1225 O arquivo não aparenta ser um arquivo de áudio PCM WAVE: [FILE] 1281 O arquivo não aparenta ser um arquivo de áudio PCM WAVE: [FILE]
1226 </message> 1282 </message>
1227
1228 </alert> 1283 </alert>
1229 <alert name="SoundFileInvalidChannelCount"> 1284 <alert name="SoundFileInvalidChannelCount">
1230 <message name="message"> 1285 <message name="message">
1231 O arquivo possui um número de canais inválidos (deve ser mono ou stereo): [FILE] 1286 O arquivo possui um número de canais inválidos (deve ser mono ou stereo): [FILE]
1232 </message> 1287 </message>
1233
1234 </alert> 1288 </alert>
1235 <alert name="SoundFileInvalidSampleRate"> 1289 <alert name="SoundFileInvalidSampleRate">
1236 <message name="message"> 1290 <message name="message">
1237 O arquivo não aparenta ser um exemplo de freqüência suportada (deve ser 44.1k): [FILE] 1291 O arquivo não aparenta ser um exemplo de freqüência suportada (deve ser 44.1k): [FILE]
1238 </message> 1292 </message>
1239
1240 </alert> 1293 </alert>
1241 <alert name="SoundFileInvalidWordSize"> 1294 <alert name="SoundFileInvalidWordSize">
1242 <message name="message"> 1295 <message name="message">
1243 O arquivo não aparenta ser um tamanho de palavra suportada (deve ser 8 ou 16 bit): [FILE] 1296 O arquivo não aparenta ser um tamanho de palavra suportada (deve ser 8 ou 16 bit): [FILE]
1244 </message> 1297 </message>
1245
1246 </alert> 1298 </alert>
1247 <alert name="SoundFileInvalidHeader"> 1299 <alert name="SoundFileInvalidHeader">
1248 <message name="message"> 1300 <message name="message">
1249 Não pode ser encontrado dado, bloco em cabeçalho WAV: [FILE] 1301 Não pode ser encontrado dado, bloco em cabeçalho WAV: [FILE]
1250 </message> 1302 </message>
1251
1252 </alert> 1303 </alert>
1253 <alert name="SoundFileInvalidTooLong"> 1304 <alert name="SoundFileInvalidTooLong">
1254 <message name="message"> 1305 <message name="message">
1255 Arquivo de áudio é muito longo (no máximo 10 segundos): [FILE] 1306 Arquivo de áudio é muito longo (no máximo 10 segundos): [FILE]
1256 </message> 1307 </message>
1257
1258 </alert> 1308 </alert>
1259 <alert name="ProblemWithFile"> 1309 <alert name="ProblemWithFile">
1260 <message name="message"> 1310 <message name="message">
1261 Problemas com o arquivo [FILE]: [ERROR] 1311 Problemas com o arquivo [FILE]: [ERROR]
1262 </message> 1312 </message>
1263
1264 </alert> 1313 </alert>
1265 <alert name="CannotOpenTemporarySoundFile"> 1314 <alert name="CannotOpenTemporarySoundFile">
1266 <message name="message"> 1315 <message name="message">
1267 Não pode abrir o arquivo de som comprimido para inscrição: [FILE] 1316 Não pode abrir o arquivo de som comprimido para inscrição: [FILE]
1268 </message> 1317 </message>
1269
1270 </alert> 1318 </alert>
1271 <alert name="UnknownVorbisEncodeFailure"> 1319 <alert name="UnknownVorbisEncodeFailure">
1272 <message name="message"> 1320 <message name="message">
1273 Falha desconhecida de codificação vorbis: [FILE] 1321 Falha desconhecida de codificação vorbis: [FILE]
1274 </message> 1322 </message>
1275
1276 </alert> 1323 </alert>
1277 <alert name="CorruptResourceFile"> 1324 <alert name="CorruptResourceFile">
1278 <message name="message"> 1325 <message name="message">
1279 Fonte do arquivo corrompida: [FILE] 1326 Fonte do arquivo corrompida: [FILE]
1280 </message> 1327 </message>
1281
1282 </alert> 1328 </alert>
1283 <alert name="UnknownResourceFileVersion"> 1329 <alert name="UnknownResourceFileVersion">
1284 <message name="message"> 1330 <message name="message">
1285 Arquivo de recurso de versão Linden desconhecido: [FILE] 1331 Arquivo de recurso de versão Linden desconhecido: [FILE]
1286 </message> 1332 </message>
1287
1288 </alert> 1333 </alert>
1289 <alert name="UnableToCreateOutputFile"> 1334 <alert name="UnableToCreateOutputFile">
1290 <message name="message"> 1335 <message name="message">
1291 Incapaz de criar arquivo de saída: [FILE] 1336 Incapaz de criar arquivo de saída: [FILE]
1292 </message> 1337 </message>
1293
1294 </alert> 1338 </alert>
1295 <alert name="DoNotSupportBulkAnimationUpload"> 1339 <alert name="DoNotSupportBulkAnimationUpload">
1296 <message name="message"> 1340 <message name="message">
1297 Atualmente, não suportamos o envio de arquivos de animação em massa. 1341 Atualmente, não suportamos o envio de arquivos de animação em massa.
1298 </message> 1342 </message>
1299
1300 </alert> 1343 </alert>
1301 <alert name="CannotAccessOutputFile"> 1344 <alert name="CannotAccessOutputFile">
1302 <message name="message"> 1345 <message name="message">
1303 Incapaz de acessar o arquivo de saída: [FILE] 1346 Incapaz de acessar o arquivo de saída: [FILE]
1304 </message> 1347 </message>
1305
1306 </alert> 1348 </alert>
1307 <alert name="InsufficientFundsToUploadFile"> 1349 <alert name="InsufficientFundsToUploadFile">
1308 <message name="message"> 1350 <message name="message">
1309 Valor insuficiente para carregar o arquivo: O valor é L$[COST], seu saldo é L$ [BALANCE]. 1351 Valor insuficiente para carregar o arquivo: O valor é L$[COST], seu saldo é L$ [BALANCE].
1310 </message> 1352 </message>
1311
1312 </alert> 1353 </alert>
1313 <alert name="InsufficientFundsToFinishUpload"> 1354 <alert name="InsufficientFundsToFinishUpload">
1314 <message name="message"> 1355 <message name="message">
1315 Valor insuficiente para terminar carregamento do arquivo [FILE]: valor é L$ [COST], o seu saldo é L$[BALANCE]: 1356 Valor insuficiente para terminar carregamento do arquivo [FILE]: valor é L$ [COST], o seu saldo é L$[BALANCE]:
1316 </message> 1357 </message>
1317
1318 </alert> 1358 </alert>
1319 <alert name="CannotUploadReason"> 1359 <alert name="CannotUploadReason">
1320 <message name="message"> 1360 <message name="message">
1321 Incapaz de carregar [FILE] devido ao seguinte motivo: [REASON] Por favor tente novamente. 1361 Incapaz de carregar [FILE] devido ao seguinte motivo: [REASON] Por favor tente novamente.
1322 </message> 1362 </message>
1323
1324 </alert> 1363 </alert>
1325 <alert name="CannotCreateLandmarkNotOwner"> 1364 <alert name="CannotCreateLandmarkNotOwner">
1326 <message name="message"> 1365 <message name="message">
1327 Você não pode criar um ponto de referência porque o proprietário do terreno não permite. Tente novamente a alguns metros de distância. 1366 Você não pode criar um ponto de referência porque o proprietário do terreno não permite. Tente novamente a alguns metros de distância.
1328 </message> 1367 </message>
1329
1330 </alert> 1368 </alert>
1331 <alert name="CannotRecompileSelectObjectsNoScripts"> 1369 <alert name="CannotRecompileSelectObjectsNoScripts">
1332 <message name="message"> 1370 <message name="message">
1333 Não é possível realizar compilação. Selecione os objetos com scripts válidos. 1371 Não é possível realizar compilação. Selecione os objetos com scripts válidos.
1334 </message> 1372 </message>
1335
1336 </alert> 1373 </alert>
1337 <alert name="CannotRecompileSelectObjectsNoPermission"> 1374 <alert name="CannotRecompileSelectObjectsNoPermission">
1338 <message name="message"> 1375 <message name="message">
1339 Não é possível realizar compilação. Selecione objetos com scripts que você tenha permissão de modificar. 1376 Impossibilitado de executar &apos;recompilação&apos;.
1340 </message>
1341 1377
1378Selecione objetos com scripts que você tem permissão para modificar.
1379 </message>
1342 </alert> 1380 </alert>
1343 <alert name="CannotResetSelectObjectsNoScripts"> 1381 <alert name="CannotResetSelectObjectsNoScripts">
1344 <message name="message"> 1382 <message name="message">
1345 Não é possível recomeçar. Selecione objetos com script que possam ser modificados. 1383 Impossibilitado de executar &apos;redefinir&apos;.
1346 </message>
1347 1384
1385Selecione objetos com scripts.
1386 </message>
1348 </alert> 1387 </alert>
1349 <alert name="CannotResetSelectObjectsNoPermission"> 1388 <alert name="CannotResetSelectObjectsNoPermission">
1350 <message name="message"> 1389 <message name="message">
1351 Não é possível recomeçar. Selecione objetos com script que você tenha permissão de modificar. 1390 Impossibilitado de executar &apos;redefinir&apos;.
1352 </message>
1353 1391
1392Selecione objetos com scripts que você tem permissão para modificar.
1393 </message>
1354 </alert> 1394 </alert>
1355 <alert name="CannotSetRunningSelectObjectsNoScripts"> 1395 <alert name="CannotSetRunningSelectObjectsNoScripts">
1356 <message name="message"> 1396 <message name="message">
1357 Não é possível usar scripts de corrida. Selecione objetos com scripts válidos. 1397 Impossibilitado de definir quaisquer scripts para &apos;rodando&apos;.
1358 </message>
1359 1398
1399Selecione objetos com scripts.
1400 </message>
1360 </alert> 1401 </alert>
1361 <alert name="CannotSetRunningSelectObjectsNoPermission"> 1402 <alert name="CannotSetRunningSelectObjectsNoPermission">
1362 <message name="message"> 1403 <message name="message">
1363 Não é possível usar scripts de corrida. Selecione objetos com scripts que você tenha a permissão de modificar. 1404 Não é possível usar scripts de corrida. Selecione objetos com scripts que você tenha a permissão de modificar.
1364 </message> 1405 </message>
1365
1366 </alert> 1406 </alert>
1367 <alert name="CannotSetRunningNotSelectObjectsNoScripts"> 1407 <alert name="CannotSetRunningNotSelectObjectsNoScripts">
1368 <message name="message"> 1408 <message name="message">
1369 Não é possível usar scripts não funcionais. Selecione objetos com scripts válidos. 1409 Impossibilitado de definir quaisquer scripts para &apos;não rodando&apos;.
1370 </message>
1371 1410
1411Selecione objetos com scripts.
1412 </message>
1372 </alert> 1413 </alert>
1373 <alert name="CannotSetRunningNotSelectObjectsNoPermission"> 1414 <alert name="CannotSetRunningNotSelectObjectsNoPermission">
1374 <message name="message"> 1415 <message name="message">
1375 Não é possível usar scripts não funcionais. Selecione objetos com scripts que você tem permissão de modificar. 1416 Não é possível usar scripts não funcionais. Selecione objetos com scripts que você tem permissão de modificar.
1376 </message> 1417 </message>
1377
1378 </alert> 1418 </alert>
1379 <alert name="NoFrontmostFloater"> 1419 <alert name="NoFrontmostFloater">
1380 <message name="message"> 1420 <message name="message">
1381 No frontmost floater to save&gt; 1421 No frontmost floater to save&gt;
1382 </message> 1422 </message>
1423 </alert>
1424 <alert name="SeachFilteredOnShortWords">
1425 <message name="message">
1426 Sua pesquisa foi alterada e os Palavras que eram demasiado curtas foram removidas.
1383 1427
1428Pesquisava por: [FINALQUERY]
1429 </message>
1430 </alert>
1431 <alert name="SeachFilteredOnShortWordsEmpty">
1432 <message name="message">
1433 Os termos de sua pesquisa eram muito curtos então nenhuma pesquisa foi feita.
1434 </message>
1384 </alert> 1435 </alert>
1385 <alert name="ColladaExportFailedUnknownServerError"> 1436 <alert name="ColladaExportFailedUnknownServerError">
1386 <message name="message"> 1437 <message name="message">
1387 Falha na exportação Collada: Falha desconhecida no servidor. 1438 Falha na exportação Collada: Falha desconhecida no servidor.
1388 </message> 1439 </message>
1389
1390 </alert> 1440 </alert>
1391 <alert name="ColladaExportFailedInvalidPermissions"> 1441 <alert name="ColladaExportFailedInvalidPermissions">
1392 <message name="message"> 1442 <message name="message">
1393 Falha na exportação Collada: Permissão inválida ou objeto bloqueado! 1443 Falha na exportação Collada: Permissão inválida ou objeto bloqueado!
1394 </message> 1444 </message>
1395
1396 </alert> 1445 </alert>
1397 <alert name="ColladaExportFailedUnknownError"> 1446 <alert name="ColladaExportFailedUnknownError">
1398 <message name="message"> 1447 <message name="message">
1399 Falha na exportação Collada: Erro desconhecido. 1448 Falha na exportação Collada: Erro desconhecido.
1400 </message> 1449 </message>
1401
1402 </alert> 1450 </alert>
1403 <alert name="ObjectImportFailedTransfer"> 1451 <alert name="ObjectImportFailedTransfer">
1404 <message name="message"> 1452 <message name="message">
1405 Falha na importação do objeto. Não é possível a transferência de arquivos. 1453 Falha na importação do objeto. Não é possível a transferência de arquivos.
1406 </message> 1454 </message>
1407
1408 </alert> 1455 </alert>
1409 <alert name="ObjectImportFailedBadFormat"> 1456 <alert name="ObjectImportFailedBadFormat">
1410 <message name="message"> 1457 <message name="message">
1411 Falha na importação do objeto. O arquivo não é compatível com o formato SL Object. 1458 Falha na importação do objeto. O arquivo não é compatível com o formato SL Object.
1412 </message> 1459 </message>
1413
1414 </alert> 1460 </alert>
1415 <alert name="ObjectImportFailedUnknownError"> 1461 <alert name="ObjectImportFailedUnknownError">
1416 <message name="message"> 1462 <message name="message">
1417 Falha na importação do objeto. Erro desconhecido. 1463 Falha na importação do objeto. Erro desconhecido.
1418 </message> 1464 </message>
1419
1420 </alert> 1465 </alert>
1421 <alert name="CouldNotTeleportReason"> 1466 <alert name="CouldNotTeleportReason">
1422 <message name="message"> 1467 <message name="message">
1423 Não é possível teletransportar-se. [REASON] 1468 Não é possível teletransportar-se. [REASON]
1424 </message> 1469 </message>
1425
1426 </alert> 1470 </alert>
1427 <alert name="CannotSetLandOwnerNothingSelected"> 1471 <alert name="CannotSetLandOwnerNothingSelected">
1428 <message name="message"> 1472 <message name="message">
1429 Incapaz de estabelecer o proprietário do terreno: Nada selecionado. 1473 Incapaz de estabelecer o proprietário do terreno: Nada selecionado.
1430 </message> 1474 </message>
1431
1432 </alert> 1475 </alert>
1433 <alert name="CannotSetLandOwnerMultipleRegions"> 1476 <alert name="CannotSetLandOwnerMultipleRegions">
1434 <message name="message"> 1477 <message name="message">
1435 Não é possível exigir a posse do terreno porque a seleção alcançou múltiplas regiões. Por favor, selecione uma área menor e tente novamente. 1478 Não é possível exigir a posse do terreno porque a seleção alcançou múltiplas regiões. Por favor, selecione uma área menor e tente novamente.
1436 </message> 1479 </message>
1437
1438 </alert> 1480 </alert>
1439 <alert name="ForceOwnerAuctionWarning"> 1481 <alert name="ForceOwnerAuctionWarning">
1440 <message name="message"> 1482 <message name="message">
@@ -1446,107 +1488,76 @@ Nota: Isto limpará o cache.
1446 <option name="Cancel"> 1488 <option name="Cancel">
1447 Cancelar 1489 Cancelar
1448 </option> 1490 </option>
1449
1450 </alert> 1491 </alert>
1451 <alert name="CannotContentifyNothingSelected"> 1492 <alert name="CannotContentifyNothingSelected">
1452 <message name="message"> 1493 <message name="message">
1453 Conteúdo não encontrado: Nada selecionado. 1494 Conteúdo não encontrado: Nada selecionado.
1454 </message> 1495 </message>
1455
1456 </alert> 1496 </alert>
1457 <alert name="CannotContentifyNoRegion"> 1497 <alert name="CannotContentifyNoRegion">
1458 <message name="message"> 1498 <message name="message">
1459 Conteúdo não encontrado: Sem região. 1499 Conteúdo não encontrado: Sem região.
1460 </message> 1500 </message>
1461
1462 </alert> 1501 </alert>
1463 <alert name="CannotReleaseLandNothingSelected"> 1502 <alert name="CannotReleaseLandNothingSelected">
1464 <message name="message"> 1503 <message name="message">
1465 Não é possível abandonar terreno: Nada selecionado. 1504 Não é possível abandonar terreno: Nada selecionado.
1466 </message> 1505 </message>
1467
1468 </alert> 1506 </alert>
1469 <alert name="CannotReleaseLandNoRegion"> 1507 <alert name="CannotReleaseLandNoRegion">
1470 <message name="message"> 1508 <message name="message">
1471 Não é possível abandonar terreno: Não é possível encontrar região. 1509 Não é possível abandonar terreno: Não é possível encontrar região.
1472 </message> 1510 </message>
1473
1474 </alert> 1511 </alert>
1475 <alert name="CannotBuyLandNothingSelected"> 1512 <alert name="CannotBuyLandNothingSelected">
1476 <message name="message"> 1513 <message name="message">
1477 Não é possível comprar terreno: Nada selecionado. 1514 Não é possível comprar terreno: Nada selecionado.
1478 </message> 1515 </message>
1479
1480 </alert> 1516 </alert>
1481 <alert name="CannotBuyLandNoRegion"> 1517 <alert name="CannotBuyLandNoRegion">
1482 <message name="message"> 1518 <message name="message">
1483 Não é possível comprar terreno: O terreno não pode ser encontrado nesta região. 1519 Não é possível comprar terreno: O terreno não pode ser encontrado nesta região.
1484 </message> 1520 </message>
1485 1521 </alert>
1522 <alert name="CannotCloseFloaterBuyLand">
1523 <message name="message">
1524 Você não pode fechar a janela de Compra de Terreno até que o Second Life calcule o preço dessa transação.
1525 </message>
1486 </alert> 1526 </alert>
1487 <alert name="CannotDeedLandNothingSelected"> 1527 <alert name="CannotDeedLandNothingSelected">
1488 <message name="message"> 1528 <message name="message">
1489 Não é possível transferir posse do terreno: Nada selecionado. 1529 Não é possível transferir posse do terreno: Nada selecionado.
1490 </message> 1530 </message>
1491
1492 </alert> 1531 </alert>
1493 <alert name="CannotDeedLandNoGroup"> 1532 <alert name="CannotDeedLandNoGroup">
1494 <message name="message"> 1533 <message name="message">
1495 Não é possível transferir posse do terreno: Sem grupo. 1534 Não é possível transferir posse do terreno: Sem grupo.
1496 </message> 1535 </message>
1497
1498 </alert> 1536 </alert>
1499 <alert name="CannotDeedLandNoRegion"> 1537 <alert name="CannotDeedLandNoRegion">
1500 <message name="message"> 1538 <message name="message">
1501 Não é possível transferir posse do terreno: O terreno não pode encontrado nesta região. Por favor, use a Ferramenta: Reporte de Bug para corrigir isso. 1539 Não é possível transferir posse do terreno: O terreno não pode encontrado nesta região. Por favor, use a Ferramenta: Reporte de Bug para corrigir isso.
1502 </message> 1540 </message>
1503
1504 </alert>
1505 <alert name="CannotSetLandOwnerNothingSelected">
1506 <message name="message">
1507 Não é possível identificar proprietário: Nada selecionado.
1508 </message>
1509
1510 </alert>
1511 <alert name="CannotBuyLandMultipleRegions">
1512 <message name="message">
1513 Não é possível comprar terreno porque a seleção alcançou múltiplas regiões. Por favor selecione uma área menor e tente novamente.
1514 </message>
1515
1516 </alert>
1517 <alert name="CannotBuyLandMultipleSelected">
1518 <message name="message">
1519 Não é possível comprar terreno: Partes múltiplas foram selecionadas. Tente selecionar uma área menor.
1520 </message>
1521
1522 </alert> 1541 </alert>
1523 <alert name="CannotDeedLandMultipleSelected"> 1542 <alert name="CannotDeedLandMultipleSelected">
1524 <message name="message"> 1543 <message name="message">
1525 Não é possível transferir posse do terreno: Partes múltiplas foram selecionadas. Tente selecionar uma área menor. 1544 Impossibilitado de passar a propriedade da terra:
1545Selecionados vários terrenos.
1546Tente selecionar um único terreno.
1526 </message> 1547 </message>
1527
1528 </alert> 1548 </alert>
1529 <alert name="RegionNotFound"> 1549 <alert name="RegionNotFound">
1530 <message name="message"> 1550 <message name="message">
1531 Região não encontrada. 1551 Região não encontrada.
1532 </message> 1552 </message>
1533
1534 </alert>
1535 <alert name="ParcelCanPlayMusic">
1536 <message name="message">
1537 Esta região pode tocar música por streaming. Tocar música requer um conexão de 768 kbps ou superior. Tocar música quando disponível?
1538 </message>
1539 <option name="PlayMusic">
1540 Tocar música
1541 </option>
1542 <option name="Disable">
1543 Desabilitar
1544 </option>
1545
1546 </alert> 1553 </alert>
1547 <alert name="ParcelCanPlayMedia"> 1554 <alert name="ParcelCanPlayMedia">
1548 <message name="message"> 1555 <message name="message">
1549 Esta região pode exibir vídeos por streaming. Para exibir vídeos requer um conexão de 768 kbps ou superior. Exibir quando disponível? 1556 Esta localidade pode executar fluxo de mídia.
1557Fluxo de mídia necessita de uma conexão de Internet rápida.
1558
1559Executar fluxo de mídia quando disponível?
1560(Você pode mudar esta opção mais tarde no Preferências &gt; Ãudio &amp; Vídeo.)
1550 </message> 1561 </message>
1551 <option name="PlayMedia"> 1562 <option name="PlayMedia">
1552 Exibir vídeo 1563 Exibir vídeo
@@ -1554,107 +1565,70 @@ Nota: Isto limpará o cache.
1554 <option name="Disable"> 1565 <option name="Disable">
1555 Desabilitar 1566 Desabilitar
1556 </option> 1567 </option>
1557
1558 </alert>
1559 <alert name="CannotBuyLandWaitingForServer">
1560 <message name="message">
1561 Não é possível comprar terreno: Espere o servidor demonstrar o valor. Tente novamente em alguns segundos.
1562 </message>
1563
1564 </alert> 1568 </alert>
1565 <alert name="CannotDeedLandWaitingForServer"> 1569 <alert name="CannotDeedLandWaitingForServer">
1566 <message name="message"> 1570 <message name="message">
1567 Não é possível transferir posse do terreno: Espere o servidor demonstrar o proprietário. Tente novamente em alguns segundos. 1571 Impossibilitado de passar a propriedade da terra:
1568 </message> 1572Esperando pelo servidor informar de quem é a propriedade.
1569
1570 </alert>
1571 <alert name="CannotBuyLandNoPublic">
1572 <message name="message">
1573 Não é possível comprar terreno: A seleção não contém qualquer terreno público.
1574 </message>
1575
1576 </alert>
1577 <alert name="CannotBuyLandLandOwned">
1578 <message name="message">
1579 Não é possível comprar terreno: O terreno selecionado é de outro proprietário. Tente selecionar uma área menor.
1580 </message>
1581
1582 </alert>
1583 <alert name="CannotButLandRegionNotFound">
1584 <message name="message">
1585 Não é possível comprar terreno: O terreno não pode ser encontrado nesta região. Por favor, use a Ferramenta: Reporte de Bug para corrigir isso.
1586 </message>
1587 1573
1588 </alert> 1574Por favor, tente novamente.
1589 <alert name="CannotBuyLandNoTransfer">
1590 <message name="message">
1591 Não é possível comprar terreno: A região [REGION] não permite transferência do terreno.
1592 </message> 1575 </message>
1593
1594 </alert> 1576 </alert>
1595 <alert name="CannotDeedLandNoTransfer"> 1577 <alert name="CannotDeedLandNoTransfer">
1596 <message name="message"> 1578 <message name="message">
1597 Não é possível transferir posse do terreno: A região [REGION] não permite transferência do terreno. 1579 Não é possível transferir posse do terreno: A região [REGION] não permite transferência do terreno.
1598 </message> 1580 </message>
1599
1600 </alert>
1601 <alert name="CannotBuyLandForGroupNotOfficer">
1602 <message name="message">
1603 Não é possível comprar o terreno de um grupo: Você não é um dos supervisores do grupo atual. Por favor, ative outro grupo usando Editar Grupos.
1604 </message>
1605
1606 </alert>
1607 <alert name="CannotBuyLandInsufficientFunds">
1608 <message name="message">
1609 Comprar esta [AREA] por metros quadrados custará L$[PRICE]. Você tem somente L$ [BALANCE].
1610 </message>
1611
1612 </alert>
1613 <alert name="CannotReleaseLandNothingSelected">
1614 <message name="message">
1615 Não é possível abandonar terreno: Nada selecionado.
1616 </message>
1617
1618 </alert> 1581 </alert>
1619 <alert name="CannotReleaseLandWatingForServer"> 1582 <alert name="CannotReleaseLandWatingForServer">
1620 <message name="message"> 1583 <message name="message">
1621 Não é possível abandonar terreno: Espere o servidor demonstrar o valor. Tente novamente em alguns segundos. 1584 Impossibilitado de abandonar a terra:
1622 </message> 1585Esperando o servidor atualizar as informações do terreno.
1623 1586
1587Tente novamente em alguns segundos.
1588 </message>
1624 </alert> 1589 </alert>
1625 <alert name="CannotReleaseLandSelected"> 1590 <alert name="CannotReleaseLandSelected">
1626 <message name="message"> 1591 <message name="message">
1627 Não é possível abandonar terreno: Partes múltiplas foram selecionadas. Tente selecionar uma área menor. 1592 Impossibilitado de abandonar a terra:
1628 </message> 1593Você não é dono de todos os terrenos selecionados.
1629 1594
1595Por favor, selecione um único terreno.
1596 </message>
1630 </alert> 1597 </alert>
1631 <alert name="CannotReleaseLandDontOwn"> 1598 <alert name="CannotReleaseLandDontOwn">
1632 <message name="message"> 1599 <message name="message">
1633 Não é possível abandonar terreno: Você não tem permissão de renunciar esse lote. Aqueles que você possui estão em verde. 1600 Não é possível abandonar terreno: Você não tem permissão de renunciar esse lote. Aqueles que você possui estão em verde.
1634 </message> 1601 </message>
1635
1636 </alert> 1602 </alert>
1637 <alert name="CannotReleaseLandRegionNotFound"> 1603 <alert name="CannotReleaseLandRegionNotFound">
1638 <message name="message"> 1604 <message name="message">
1639 Não é possível abandonar terreno: O terreno não pode ser encontrado nesta região. Por favor, use a opção Ferramenta, Reporar Bug para corrigir isso. 1605 Impossibilitado de abandonar a terra:
1640 </message> 1606Não consegue achar a região em que esta terra se encontra.
1641 1607
1608Por favor, usar Ferramentas &gt; Reportar Bug, para reportar este erro.
1609 </message>
1642 </alert> 1610 </alert>
1643 <alert name="CannotReleaseLandNoTransfer"> 1611 <alert name="CannotReleaseLandNoTransfer">
1644 <message name="message"> 1612 <message name="message">
1645 Não é possível abandonar terreno: A região [REGION] não permite transferência de terreno. 1613 Não é possível abandonar terreno: A região [REGION] não permite transferência de terreno.
1646 </message> 1614 </message>
1647
1648 </alert> 1615 </alert>
1649 <alert name="CannotReleaseLandPartialSelection"> 1616 <alert name="CannotReleaseLandPartialSelection">
1650 <message name="message"> 1617 <message name="message">
1651 Não é possível abandonar terreno: Você deve selecionar um lote inteiro para renunciá-lo. Tente dar um clique duplo para selecionar um lote inteiro ou primeiramente faça a divisão. 1618 Impossibilitado de abandonar a terra:
1652 </message>
1653 1619
1620Você deve selecionar um terreno inteiro para liberá-lo.
1621
1622Selecione um terreno inteiro ou primeiro divida seu terreno.
1623 </message>
1654 </alert> 1624 </alert>
1655 <alert name="ReleaseLandWarning"> 1625 <alert name="ReleaseLandWarning">
1656 <message name="message"> 1626 <message name="message">
1657 Você está preste a renunciar [AREA] metros do seu terreno. Ao renunciar esse lote, haverá a perda do controle sobre ele, mas isso não irá creditar nenhum L$. Renunciar este terreno? 1627 Você está para liberar [AREA] m2 de terra.
1628Liberando este terreno, o liberará de suas posses,
1629 mas não lhe concederá quaisquer L$.
1630
1631Liberar esta terra?
1658 </message> 1632 </message>
1659 <option name="Release"> 1633 <option name="Release">
1660 Renunciar 1634 Renunciar
@@ -1662,19 +1636,21 @@ Nota: Isto limpará o cache.
1662 <option name="Cancel"> 1636 <option name="Cancel">
1663 Cancelar 1637 Cancelar
1664 </option> 1638 </option>
1665
1666 </alert> 1639 </alert>
1667 <alert name="CannotDivideLandNothingSelected"> 1640 <alert name="CannotDivideLandNothingSelected">
1668 <message name="message"> 1641 <message name="message">
1669 Não é possivel dividir terreno: Nada selecionado. 1642 Impossibilitado de dividir a terra:
1670 </message>
1671 1643
1644Nenhum terreno selecionado.
1645 </message>
1672 </alert> 1646 </alert>
1673 <alert name="CannotDivideLandPartialSelection"> 1647 <alert name="CannotDivideLandPartialSelection">
1674 <message name="message"> 1648 <message name="message">
1675 Não é possivel dividir terreno: Você tem um lote inteiro selecionado. Tente selecionar uma área menor ao clicar e arrastar. 1649 Impossibilitado de dividir a terra:
1676 </message>
1677 1650
1651Você selecionou um terreno inteiro.
1652Tente selecionar uma parte do terreno.
1653 </message>
1678 </alert> 1654 </alert>
1679 <alert name="LandDivideWarning"> 1655 <alert name="LandDivideWarning">
1680 <message name="message"> 1656 <message name="message">
@@ -1686,41 +1662,50 @@ Nota: Isto limpará o cache.
1686 <option name="Cancel"> 1662 <option name="Cancel">
1687 Cancelar 1663 Cancelar
1688 </option> 1664 </option>
1689
1690 </alert> 1665 </alert>
1691 <alert name="CannotDivideLandNoRegion"> 1666 <alert name="CannotDivideLandNoRegion">
1692 <message name="message"> 1667 <message name="message">
1693 Não é possivel dividir terreno: O terreno não pode ser encontrado nesta região. Por favor, use a opção Ferramenta, Reporar Bug para corrigir isso. 1668 Impossibilitado de dividir a terra:
1694 </message> 1669Não consegue achar a região em que esta terra se encontra.
1695 1670
1671Por favor, usar Ferramentas &gt; Reportar Bug, para reportar este erro.
1672 </message>
1696 </alert> 1673 </alert>
1697 <alert name="CannotJoinLandNoRegion"> 1674 <alert name="CannotJoinLandNoRegion">
1698 <message name="message"> 1675 <message name="message">
1699 Não é possível unir terreno: O terreno não pode ser encontrado nesta região. Por favor, use a opção Ferramenta, Reporar Bug para corrigir isso. 1676 Impossibilitado de unir a terra:
1700 </message> 1677Não consegue achar a região em que esta terra se encontra.
1701 1678
1679Por favor, usar Ferramentas &gt; Reportar Bug, para reportar este erro.
1680 </message>
1702 </alert> 1681 </alert>
1703 <alert name="CannotJoinLandNothingSelected"> 1682 <alert name="CannotJoinLandNothingSelected">
1704 <message name="message"> 1683 <message name="message">
1705 Não é possível unir terreno: Nada selecionado. 1684 Não é possível unir terreno: Nada selecionado.
1706 </message> 1685 </message>
1707
1708 </alert> 1686 </alert>
1709 <alert name="CannotJoinLandEntireParcelSelected"> 1687 <alert name="CannotJoinLandEntireParcelSelected">
1710 <message name="message"> 1688 <message name="message">
1711 Não é possível unir terreno: Você selecionou um lote inteiro. Tente seleciona uma área maior quando clicar e arrastar. 1689 Impossibilitado de unir a terra:
1712 </message> 1690Você selecionou apenas um terreno.
1713 1691
1692Selecione a terra através de ambos os terrenos.
1693 </message>
1714 </alert> 1694 </alert>
1715 <alert name="CannotJoinLandSelection"> 1695 <alert name="CannotJoinLandSelection">
1716 <message name="message"> 1696 <message name="message">
1717 Não é possível unir terreno: Você deve selecionar mais um lote. Tente seleciona uma área maior quando clicar e arrastar. 1697 Impossibilitado de unir a terra:
1718 </message> 1698Você deve selecionar mais de um terreno.
1719 1699
1700Selecione a terra através de ambos os terrenos.
1701 </message>
1720 </alert> 1702 </alert>
1721 <alert name="JoinLandWarning"> 1703 <alert name="JoinLandWarning">
1722 <message name="message"> 1704 <message name="message">
1723 A união deste terreno criará um lote maior que pode cruzar com a área retangular selecionada. Você vai precisar colocar os novos nomes e opções dos lotes. Deseja unir o terreno? 1705 Aderir esta terra vai criar uma grande parcela fora de todas as parcelas que intersectam o retângulo selecionado.
1706Você vai ter de repor o nome e as opções de 
nova parcela.
1707
1708Aderir a terra?
1724 </message> 1709 </message>
1725 <option name="Join"> 1710 <option name="Join">
1726 Unir 1711 Unir
@@ -1728,7 +1713,6 @@ Nota: Isto limpará o cache.
1728 <option name="Cancel"> 1713 <option name="Cancel">
1729 Cancelar 1714 Cancelar
1730 </option> 1715 </option>
1731
1732 </alert> 1716 </alert>
1733 <alert name="ConfirmNotecardSave"> 1717 <alert name="ConfirmNotecardSave">
1734 <message name="message"> 1718 <message name="message">
@@ -1740,7 +1724,6 @@ Nota: Isto limpará o cache.
1740 <option name="Cancel"> 1724 <option name="Cancel">
1741 Cancelar 1725 Cancelar
1742 </option> 1726 </option>
1743
1744 </alert> 1727 </alert>
1745 <alert name="ConfirmLandmarkCopy"> 1728 <alert name="ConfirmLandmarkCopy">
1746 <message name="message"> 1729 <message name="message">
@@ -1752,7 +1735,6 @@ Nota: Isto limpará o cache.
1752 <option name="Cancel"> 1735 <option name="Cancel">
1753 Cancelar 1736 Cancelar
1754 </option> 1737 </option>
1755
1756 </alert> 1738 </alert>
1757 <alert name="ConfirmItemCopy"> 1739 <alert name="ConfirmItemCopy">
1758 <message name="message"> 1740 <message name="message">
@@ -1764,37 +1746,34 @@ Nota: Isto limpará o cache.
1764 <option name="Cancel"> 1746 <option name="Cancel">
1765 Cancelar 1747 Cancelar
1766 </option> 1748 </option>
1767
1768 </alert> 1749 </alert>
1769 <alert name="ResolutionSwitchFail"> 1750 <alert name="ResolutionSwitchFail">
1770 <message name="message"> 1751 <message name="message">
1771 Falha ao trocar a resolução para [RESX] por [RESY] 1752 Falha ao trocar a resolução para [RESX] por [RESY]
1772 </message> 1753 </message>
1773
1774 </alert> 1754 </alert>
1775 <alert name="ErrorUndefinedGrasses"> 1755 <alert name="ErrorUndefinedGrasses">
1776 <message name="message"> 1756 <message name="message">
1777 Erro: Gramado indefinido; [SPECIES] 1757 Erro: Gramado indefinido; [SPECIES]
1778 </message> 1758 </message>
1779
1780 </alert> 1759 </alert>
1781 <alert name="ErrorUndefinedTrees"> 1760 <alert name="ErrorUndefinedTrees">
1782 <message name="message"> 1761 <message name="message">
1783 Erro: Ãrvores indefinidas: [SPECIES] 1762 Erro: Ãrvores indefinidas: [SPECIES]
1784 </message> 1763 </message>
1785
1786 </alert> 1764 </alert>
1787 <alert name="CannotSaveWearableOutOfSpace"> 1765 <alert name="CannotSaveWearableOutOfSpace">
1788 <message name="message"> 1766 <message name="message">
1789 Não é possível salvar &apos;[NAME]&apos; para um arquivo implantado. Você precisa liberar algum espaço no seu computador e salvar o arquivo novamente. 1767 Não é possível salvar &apos;[NAME]&apos; para um arquivo implantado. Você precisa liberar algum espaço no seu computador e salvar o arquivo novamente.
1790 </message> 1768 </message>
1791
1792 </alert> 1769 </alert>
1793 <alert name="CannotSaveToAssetStore"> 1770 <alert name="CannotSaveToAssetStore">
1794 <message name="message"> 1771 <message name="message">
1795 Não é possível salvar [NAME] na ASSET STORE principal. Este é uma falha temporária. Por favor personalize e salve o implantado(wearable) novamente em alguns minutos. Se o problema persistir, por favor clique em Ferramentas – Reporte de Bug. Encontre o menu e informe sobre os detalhes da configuração da sua rede. 1772 Impossibilitado de salvar [NAME] e armazenar na central ativa.
1796 </message> 1773Isso é geralmente uma falha temporária. Por favor personalize e salve novamente a vestimenta em poucos minutos.
1797 1774
1775Se o problema persistir, por favor clicar sobre &apos;Ferramentas &gt; Bug Report&apos; menu superior e fornecer detalhes sobre a configuração de sua rede.
1776 </message>
1798 </alert> 1777 </alert>
1799 <alert name="AppEarlyExit"> 1778 <alert name="AppEarlyExit">
1800 <message name="message"> 1779 <message name="message">
@@ -1803,38 +1782,30 @@ Nota: Isto limpará o cache.
1803 <option name="Quit"> 1782 <option name="Quit">
1804 Sair 1783 Sair
1805 </option> 1784 </option>
1806
1807 </alert> 1785 </alert>
1808 <alert name="YouHaveBeenLoggedOut"> 1786 <alert name="YouHaveBeenLoggedOut">
1809 <message name="message"> 1787 <message name="message">
1810 Você se desconectou do [SECOND_LIFE]: [MESSAGE]. Clique em Continuar para observar mensagens existentes ou bate-papo. Você não será capaz de realizar nenhuma operação. Clique em Sair para fechar [SECOND_LIFE] imediatamente. 1788 Você foi deslogado do [SECOND_LIFE]:
1789 [MESSAGE]
1790Você ainda pode olhar para o bate-papo e mensagens instantâneas existentes, clicando em &apos;Exibir IM &amp; bate-papo&apos;. Caso contrário, clique em &apos;Sair&apos; para sair do [SECOND_LIFE] imediatamente.
1811 </message> 1791 </message>
1812 <option name="Continue"> 1792 <option name="Continue">
1813 Continuar 1793 Ver Mensagem Instantânea &amp; Bate- Papo
1814 </option> 1794 </option>
1815 <option name="Quit"> 1795 <option name="Quit">
1816 Sair 1796 Sair
1817 </option> 1797 </option>
1818
1819 </alert>
1820 <alert name="SelectSingleRate">
1821 <message name="message">
1822 Selecionar um único objeto para avaliação.
1823 </message>
1824 <option name="OK">
1825 OK
1826 </option>
1827
1828 </alert> 1798 </alert>
1829 <alert name="OnlyOfficerCanBuyLand"> 1799 <alert name="OnlyOfficerCanBuyLand">
1830 <message name="message"> 1800 <message name="message">
1831 Não é possível comprar o terreno para o grupo: Você não tem permissão para comprar o terreno para o seu grupo ativado. Por favor ative outro grupo usando Editar -&gt; 1801 Não é possível comprar o terreno para o grupo: Você não tem permissão para comprar o terreno para o seu grupo ativado. Por favor ative outro grupo usando Editar -&gt;
1832 </message> 1802 </message>
1833
1834 </alert> 1803 </alert>
1835 <alert name="AddFriend" title="Adicionar amigo"> 1804 <alert name="AddFriend" title="Adicionar amigo">
1836 <message name="message"> 1805 <message name="message">
1837 Amigos podem dar permissão para se encontrarem no mapa e receber informações de status online. Oferecer amizade para [NAME]? 1806 Amigos podem dar permissões de rastrear um ao outro pelo mapa e receber atualizações de status online.
1807
1808Oferecer amizade para [NAME]?
1838 </message> 1809 </message>
1839 <option name="Offer"> 1810 <option name="Offer">
1840 Oferecer 1811 Oferecer
@@ -1842,7 +1813,22 @@ Nota: Isto limpará o cache.
1842 <option name="Cancel"> 1813 <option name="Cancel">
1843 Cancelar 1814 Cancelar
1844 </option> 1815 </option>
1816 </alert>
1817 <alert modal="true" name="AddFriendWithMessage" title="Add Friend">
1818 <message name="message">
1819 Amigos podem dar permissões de rastrear um ao outro pelo mapa e receber atualizações de status online.
1845 1820
1821Oferecer amizade para [NAME]?
1822 </message>
1823 <editline name="editline">
1824 Quer ser meu amigo?
1825 </editline>
1826 <option name="Offer">
1827 Oferecer
1828 </option>
1829 <option name="Cancel">
1830 Cancelar
1831 </option>
1846 </alert> 1832 </alert>
1847 <alert name="RemoveFromFriends"> 1833 <alert name="RemoveFromFriends">
1848 <message name="message"> 1834 <message name="message">
@@ -1854,7 +1840,6 @@ Nota: Isto limpará o cache.
1854 <option name="Cancel"> 1840 <option name="Cancel">
1855 Cancelar 1841 Cancelar
1856 </option> 1842 </option>
1857
1858 </alert> 1843 </alert>
1859 <alert name="RemoveMultipleFromFriends"> 1844 <alert name="RemoveMultipleFromFriends">
1860 <message name="message"> 1845 <message name="message">
@@ -1866,11 +1851,12 @@ Nota: Isto limpará o cache.
1866 <option name="Cancel"> 1851 <option name="Cancel">
1867 Cancelar 1852 Cancelar
1868 </option> 1853 </option>
1869
1870 </alert> 1854 </alert>
1871 <alert name="GodDeleteAllScriptedPublicObjectsByUser"> 1855 <alert name="GodDeleteAllScriptedPublicObjectsByUser">
1872 <message name="message"> 1856 <message name="message">
1873 Está certo que deseja apagar todos os objetos com scripts possuídos pelo **[AVATAR_NAME]** em todos as outros terrenos neste SIM? 1857 Você tem certeza que deseja excluir todos os objetos scriptados de propriedade de
1858** [AVATAR_NAME] **
1859sobre todos os outros terrenos deste sim?
1874 </message> 1860 </message>
1875 <option name="DELETE!!"> 1861 <option name="DELETE!!">
1876 APAGAR!! 1862 APAGAR!!
@@ -1878,11 +1864,12 @@ Nota: Isto limpará o cache.
1878 <option name="Cancel"> 1864 <option name="Cancel">
1879 Cancelar Cancel 1865 Cancelar Cancel
1880 </option> 1866 </option>
1881
1882 </alert> 1867 </alert>
1883 <alert name="GodDeleteAllScriptedObjectsByUser"> 1868 <alert name="GodDeleteAllScriptedObjectsByUser">
1884 <message name="message"> 1869 <message name="message">
1885 Está certo de que deseja APAGAR TODOS os objetos programados (scripted) possuídos pelo ** [AVATAR_NAME] ** em TODAS os TERRENOS deste setor? 1870 Você tem certeza que deseja excluir todos os objetos scriptados de propriedade de
1871** [AVATAR_NAME] **
1872sobre TODOS OS TERRENOS deste sim?
1886 </message> 1873 </message>
1887 <option name="!!DELETEALL!!"> 1874 <option name="!!DELETEALL!!">
1888 !!APAGAR TUDO!! 1875 !!APAGAR TUDO!!
@@ -1890,11 +1877,13 @@ Nota: Isto limpará o cache.
1890 <option name="Cancel"> 1877 <option name="Cancel">
1891 Cancelar 1878 Cancelar
1892 </option> 1879 </option>
1893
1894 </alert> 1880 </alert>
1895 <alert name="GodDeleteAllObjectsByUser"> 1881 <alert name="GodDeleteAllObjectsByUser">
1896 <message name="message"> 1882 <message name="message">
1897 Está certo de que deseja APAGAR TODOS os objetos programados (scripted) ou não, possuídos pelo ** [AVATAR_NAME] ** em TODAS as TERRENOS deste setor? 1883 Você tem certeza que deseja excluir TODOS os objetos (Scriptados ou não)
1884De propriedade de
1885** [AVATAR_NAME] **
1886sobre TODOS OS TERRENOS deste sim?
1898 </message> 1887 </message>
1899 <option name="!!DELETEALL!!"> 1888 <option name="!!DELETEALL!!">
1900 !!APAGAR TUDO!! 1889 !!APAGAR TUDO!!
@@ -1902,37 +1891,26 @@ Nota: Isto limpará o cache.
1902 <option name="Cancel"> 1891 <option name="Cancel">
1903 Cancelar 1892 Cancelar
1904 </option> 1893 </option>
1905
1906 </alert> 1894 </alert>
1907 <alert name="PublishGroupInfoToWeb"> 1895 <alert name="PublishGroupInfoToWeb">
1908 <message name="message"> 1896 <message name="message">
1909 Selecionando a opção &quot;Publicar na Web&quot; nos permitirá publicar o nome do grupo, símbolo, cartas, títulos e fundador no website [SECOND_LIFE]. Você é responsável por informar se algum dos conteúdos acima conter tema Adulto de acordo com as Regras da Comunidade. 1897 Selecionando a opção &quot;Publicar na Web&quot; nos permitirá publicar o nome do grupo, símbolo, cartas, títulos e fundador no website [SECOND_LIFE]. Você é responsável por informar se algum dos conteúdos acima conter tema Adulto de acordo com as Regras da Comunidade.
1910 </message> 1898 </message>
1911
1912 </alert>
1913 <alert name="ErrorEncodingSnapshot">
1914 <message name="message">
1915 Erro de codificação da imagem.
1916 </message>
1917
1918 </alert> 1899 </alert>
1919 <alert name="BlankClassifiedName"> 1900 <alert name="BlankClassifiedName">
1920 <message name="message"> 1901 <message name="message">
1921 Você deve especificar um título qualquer para seu anúncio. 1902 Você deve especificar um título qualquer para seu anúncio.
1922 </message> 1903 </message>
1923
1924 </alert> 1904 </alert>
1925 <alert name="MinClassifiedPrice"> 1905 <alert name="MinClassifiedPrice">
1926 <message name="message"> 1906 <message name="message">
1927 Preço mínimo a pagar para incluir na listagem de L$[MIN_PRICE]. Por favor, insira um valor maior. 1907 Preço mínimo a pagar para incluir na listagem de L$[MIN_PRICE]. Por favor, insira um valor maior.
1928 </message> 1908 </message>
1929
1930 </alert> 1909 </alert>
1931 <alert name="CantLoadVertexShaders"> 1910 <alert name="CantLoadVertexShaders">
1932 <message name="message"> 1911 <message name="message">
1933 Incapaz de carregar Vertex Shaders. 1912 Incapaz de carregar Vertex Shaders.
1934 </message> 1913 </message>
1935
1936 </alert> 1914 </alert>
1937 <alert name="ConfirmObjectDeleteLock"> 1915 <alert name="ConfirmObjectDeleteLock">
1938 <message name="message"> 1916 <message name="message">
@@ -1944,7 +1922,6 @@ Nota: Isto limpará o cache.
1944 <option name="No"> 1922 <option name="No">
1945 Não 1923 Não
1946 </option> 1924 </option>
1947
1948 </alert> 1925 </alert>
1949 <alert name="ConfirmObjectDeleteNoCopy"> 1926 <alert name="ConfirmObjectDeleteNoCopy">
1950 <message name="message"> 1927 <message name="message">
@@ -1956,7 +1933,6 @@ Nota: Isto limpará o cache.
1956 <option name="No"> 1933 <option name="No">
1957 Não 1934 Não
1958 </option> 1935 </option>
1959
1960 </alert> 1936 </alert>
1961 <alert name="ConfirmObjectDeleteNoOwn"> 1937 <alert name="ConfirmObjectDeleteNoOwn">
1962 <message name="message"> 1938 <message name="message">
@@ -1968,7 +1944,6 @@ Nota: Isto limpará o cache.
1968 <option name="No"> 1944 <option name="No">
1969 Não 1945 Não
1970 </option> 1946 </option>
1971
1972 </alert> 1947 </alert>
1973 <alert name="ConfirmObjectDeleteLockNoCopy"> 1948 <alert name="ConfirmObjectDeleteLockNoCopy">
1974 <message name="message"> 1949 <message name="message">
@@ -1980,7 +1955,6 @@ Nota: Isto limpará o cache.
1980 <option name="No"> 1955 <option name="No">
1981 Não 1956 Não
1982 </option> 1957 </option>
1983
1984 </alert> 1958 </alert>
1985 <alert name="ConfirmObjectDeleteLockNoOwn"> 1959 <alert name="ConfirmObjectDeleteLockNoOwn">
1986 <message name="message"> 1960 <message name="message">
@@ -1992,7 +1966,6 @@ Nota: Isto limpará o cache.
1992 <option name="No"> 1966 <option name="No">
1993 Não 1967 Não
1994 </option> 1968 </option>
1995
1996 </alert> 1969 </alert>
1997 <alert name="ConfirmObjectDeleteNoCopyNoOwn"> 1970 <alert name="ConfirmObjectDeleteNoCopyNoOwn">
1998 <message name="message"> 1971 <message name="message">
@@ -2004,7 +1977,6 @@ Nota: Isto limpará o cache.
2004 <option name="No"> 1977 <option name="No">
2005 Não 1978 Não
2006 </option> 1979 </option>
2007
2008 </alert> 1980 </alert>
2009 <alert name="ConfirmObjectDeleteLockNoCopyNoOwn"> 1981 <alert name="ConfirmObjectDeleteLockNoCopyNoOwn">
2010 <message name="message"> 1982 <message name="message">
@@ -2016,7 +1988,6 @@ Nota: Isto limpará o cache.
2016 <option name="No"> 1988 <option name="No">
2017 Não 1989 Não
2018 </option> 1990 </option>
2019
2020 </alert> 1991 </alert>
2021 <alert name="ConfirmObjectTakeLock"> 1992 <alert name="ConfirmObjectTakeLock">
2022 <message name="message"> 1993 <message name="message">
@@ -2028,7 +1999,6 @@ Nota: Isto limpará o cache.
2028 <option name="No"> 1999 <option name="No">
2029 Não 2000 Não
2030 </option> 2001 </option>
2031
2032 </alert> 2002 </alert>
2033 <alert name="ConfirmObjectTakeNoOwn"> 2003 <alert name="ConfirmObjectTakeNoOwn">
2034 <message name="message"> 2004 <message name="message">
@@ -2040,11 +2010,14 @@ Nota: Isto limpará o cache.
2040 <option name="No"> 2010 <option name="No">
2041 Não 2011 Não
2042 </option> 2012 </option>
2043
2044 </alert> 2013 </alert>
2045 <alert name="ConfirmObjectTakeLockNoOwn"> 2014 <alert name="ConfirmObjectTakeLockNoOwn">
2046 <message name="message"> 2015 <message name="message">
2047 Pelo menos um objeto está trancado ou você não possui todos os objetos que está manipulando. Caso continue, as permissões do próximo proprietário serão aplicadas aos objetos e há possibilidade de restringir sua habilidade em modificá-lo ou copiá-lo no futuro. Contudo, você pode utilizar a seleção. Deseja continuar? 2016 Pelo menos um objeto está bloqueado. 
Você não possui todos os objetos que você está pegando.
2017Se continuar, as permissões do proprietário serão eventualmente aplicadas e restringirão a capacidade de modificar ou copiá-las.
2018No entanto, pode pegar a seleção atual.
2019
2020Tem certeza de que deseja pegar estes itens?
2048 </message> 2021 </message>
2049 <option name="Yes"> 2022 <option name="Yes">
2050 Sim 2023 Sim
@@ -2052,17 +2025,20 @@ Nota: Isto limpará o cache.
2052 <option name="No"> 2025 <option name="No">
2053 Não 2026 Não
2054 </option> 2027 </option>
2055
2056 </alert> 2028 </alert>
2057 <alert name="CantBuyLandAcrossMultipleRegions"> 2029 <alert name="CantBuyLandAcrossMultipleRegions">
2058 <message name="message"> 2030 <message name="message">
2059 Não foi possível adquirir o lote devido ao várias seleções de regiões múltiplas. Por favor, selecione uma área menor e tente novamente. 2031 Não foi possível comprar terrenos, pois a seleção abrange várias regiões.
2060 </message>
2061 2032
2033Por favor, selecione uma área menor e tente novamente.
2034 </message>
2062 </alert> 2035 </alert>
2063 <alert name="DeedLandToGroup"> 2036 <alert name="DeedLandToGroup">
2064 <message name="message"> 2037 <message name="message">
2065 Por tornar este lote uma ação, o grupo será consultado a ter e manter fundos suficientes. O preço de aquisição do lote não será reembolsado ao proprietário. Caso um lote acionado for vendido, o preço de venda será dividido entre os membros do grupo. Acionar estes [AREA] metros quadrados de terra para o grupo &apos;[GROUP_NAME]&apos;? 2038 Na transferência de propriedade desta parcela, será exigido do grupo créditos suficientes para manter seu uso.
2039O preço de aquisição dos terrenos não é restituído ao o proprietário. Se uma parcela transferida é vendida, o preço de venda dividido igualmente entre os membros do grupo.
2040
2041Transferir propriedade de [AREA] m2 do terreno ao grupo &apos;[GROUP_NAME]&apos;?
2066 </message> 2042 </message>
2067 <option name="Deed"> 2043 <option name="Deed">
2068 Acionar 2044 Acionar
@@ -2070,11 +2046,15 @@ Nota: Isto limpará o cache.
2070 <option name="Cancel"> 2046 <option name="Cancel">
2071 Cancelar 2047 Cancelar
2072 </option> 2048 </option>
2073
2074 </alert> 2049 </alert>
2075 <alert name="DeedLandToGroupWithContribution"> 2050 <alert name="DeedLandToGroupWithContribution">
2076 <message name="message"> 2051 <message name="message">
2077 Por tornar este lote uma ação, o grupo será consultado a ter e manter fundos suficientes. A ação incluirá contribuições de terra simultâneas para o grupo do &apos;[FIRST_NAME] [LAST_NAME]&apos;. O preço de aquisição do lote não será reembolsado ao proprietário. Caso um lote acionado for vendido, o preço de venda será dividido entre os membros do grupo. Acionar estes [AREA] metros quadrados de terra para o grupo &apos;[GROUP_NAME]&apos;? 2052 Transferindo Propriedade desta parcela, será exigido do grupo créditos suficientes para manter seu uso.
2053A Transferência incluirá simultaneamente Terreno e contribuição de &apos;[FIRST_NAME] [LAST_NAME]&apos; para o grupo.
2054O preço da compra não será restituído ao proprietário. Se uma parcela da Transferência for vendida, o preço da venda será eventualmente dividido entre os membros do grupo.
2055
2056Transferir propriedade destes [AREA] m2 de terreno para o grupo
2057&apos;[GROUP_NAME]&apos;?
2078 </message> 2058 </message>
2079 <option name="Deed"> 2059 <option name="Deed">
2080 Acionar 2060 Acionar
@@ -2082,25 +2062,21 @@ Nota: Isto limpará o cache.
2082 <option name="Cancel"> 2062 <option name="Cancel">
2083 Cancelar 2063 Cancelar
2084 </option> 2064 </option>
2085
2086 </alert> 2065 </alert>
2087 <alert name="DisplaySetToSafe"> 2066 <alert name="DisplaySetToSafe">
2088 <message name="message"> 2067 <message name="message">
2089 Configurações de display foram ajustadas para nível de segurança porque você especificou -- opção de segurança. 2068 Configurações de display foram ajustadas para nível de segurança porque você especificou -- opção de segurança.
2090 </message> 2069 </message>
2091
2092 </alert> 2070 </alert>
2093 <alert name="DisplaySetToRecommended"> 2071 <alert name="DisplaySetToRecommended">
2094 <message name="message"> 2072 <message name="message">
2095 Configurações de display foram ajustadas para nível recomendado basedo na configuração do seu sistema. 2073 Configurações de display foram ajustadas para nível recomendado basedo na configuração do seu sistema.
2096 </message> 2074 </message>
2097
2098 </alert> 2075 </alert>
2099 <alert name="UnableToConnect"> 2076 <alert name="UnableToConnect">
2100 <message name="message"> 2077 <message name="message">
2101 Incapaz de conectar ao servidor. Não foi possível encontrar o nome do domínio: [HOST_NAME] 2078 Incapaz de conectar ao servidor. Não foi possível encontrar o nome do domínio: [HOST_NAME]
2102 </message> 2079 </message>
2103
2104 </alert> 2080 </alert>
2105 <alert name="CanNotFindServer"> 2081 <alert name="CanNotFindServer">
2106 <message name="message"> 2082 <message name="message">
@@ -2112,13 +2088,11 @@ Nota: Isto limpará o cache.
2112 <option name="Help"> 2088 <option name="Help">
2113 Ajuda 2089 Ajuda
2114 </option> 2090 </option>
2115
2116 </alert> 2091 </alert>
2117 <alert name="PleaseSelectServer"> 2092 <alert name="PleaseSelectServer">
2118 <message name="message"> 2093 <message name="message">
2119 Por favor, selecione um servidor. Incapaz de conectar ao [IP_ADDRESS] 2094 Por favor, selecione um servidor. Incapaz de conectar ao [IP_ADDRESS]
2120 </message> 2095 </message>
2121
2122 </alert> 2096 </alert>
2123 <alert name="SystemMayBeDown"> 2097 <alert name="SystemMayBeDown">
2124 <message name="message"> 2098 <message name="message">
@@ -2130,29 +2104,33 @@ Nota: Isto limpará o cache.
2130 <option name="Help"> 2104 <option name="Help">
2131 Ajuda 2105 Ajuda
2132 </option> 2106 </option>
2133
2134 </alert> 2107 </alert>
2135 <alert name="ErrorMessage"> 2108 <alert name="ErrorMessage">
2136 <message name="message"> 2109 <message name="message">
2137 [ERROR_MESSAGE] 2110 [ERROR_MESSAGE]
2138 </message> 2111 </message>
2139
2140 </alert> 2112 </alert>
2141 <alert name="AvatarMoved"> 2113 <alert name="AvatarMoved">
2142 <message name="message"> 2114 <message name="message">
2143 Sua [TYPE] localização atual é inválida. [HELP] Você será movido a uma região próxima. 2115 Sua [TYPE] localização não está disponível no momento. [HELP]
2116Você foi movido para uma região vizinha.
2144 </message> 2117 </message>
2145
2146 </alert> 2118 </alert>
2147 <alert name="ClothingLoading"> 2119 <alert name="ClothingLoading">
2148 <message name="message"> 2120 <message name="message">
2149 Suas roupas ainda estão carregando. Você pode explorar o mundo normalmente e os outros residentes irão vê-lo corretamente. 2121 Sua vestimenta ainda está baixando.
2122Você pode usar o [SECOND_LIFE] normalmente e os outros o visualizarão corretamente.
2150 </message> 2123 </message>
2151 2124 <ignore name="ignore">
2125 Quando o vestuário está levando muito tempo para fazer download
2126 </ignore>
2152 </alert> 2127 </alert>
2153 <alert name="FirstRun"> 2128 <alert name="FirstRun">
2154 <message name="message"> 2129 <message name="message">
2155 [SECOND_LIFE] instalação completa. Caso seja sua primeira vez utilizando o [SECOND_LIFE], você precisará criar uma conta antes de ingressar. Ir até www.secondlife.com para criar uma nova conta? 2130 A instalação do [SECOND_LIFE] está completa.
2131
2132Se esta é a primeira vez usando o[SECOND_LIFE], será necessário que você crie uma conta antes de poder se logar.
2133Retornar a www.secondlife.com para criar uma nova conta?
2156 </message> 2134 </message>
2157 <option name="NewAccount..."> 2135 <option name="NewAccount...">
2158 Nova conta.. 2136 Nova conta..
@@ -2160,17 +2138,18 @@ Nota: Isto limpará o cache.
2160 <option name="Continue"> 2138 <option name="Continue">
2161 Continuar 2139 Continuar
2162 </option> 2140 </option>
2163
2164 </alert> 2141 </alert>
2165 <alert name="SetByHostFail"> 2142 <alert name="SetByHostFail">
2166 <message name="message"> 2143 <message name="message">
2167 Incapaz de conectar-se ao servidor. Não foi possível encontrar o nome do domínio: [HOST_NAME] Por favor, verifique sua conexão. 2144 Incapaz de conectar-se ao servidor. Não foi possível encontrar o nome do domínio: [HOST_NAME] Por favor, verifique sua conexão.
2168 </message> 2145 </message>
2169
2170 </alert> 2146 </alert>
2171 <alert name="LoginPacketNeverReceived"> 2147 <alert name="LoginPacketNeverReceived">
2172 <message name="message"> 2148 <message name="message">
2173 Incapaz de conectar-se. Pacote de entrada não recebido pelo servidor de entrada. Por favor, tente novamente em alguns minutos ou clique em Ajuda para maiores informações sobre a disponibilidade de sistema. 2149 Estamos com problemas de conexão.
2150Pode ser problema com a conexão de sua internet ou com os servidores do Second Life.
2151
2152Voce tanto pode checar a conexão de sua internet e tentar novamente em alguns minutos, ou clicar em Teletransporte para tentar teletransportar-se para sua casa.
2174 </message> 2153 </message>
2175 <option name="OK"> 2154 <option name="OK">
2176 OK 2155 OK
@@ -2178,17 +2157,26 @@ Nota: Isto limpará o cache.
2178 <option name="Help"> 2157 <option name="Help">
2179 Ajuda 2158 Ajuda
2180 </option> 2159 </option>
2181 2160 <option name="Teleport">
2161 Teleportar
2162 </option>
2182 </alert> 2163 </alert>
2183 <alert name="WelcomeNoClothes"> 2164 <alert name="WelcomeNoClothes">
2184 <message name="message"> 2165 <message name="message">
2185 Seu avatar aparecerá em alguns minutos. Utilize as setas para mover-se. Pressione F1 a qualquer momento para aprender mais sobre [SECOND_LIFE]. 2166 Seu personagem irá aparecer num momento.
2186 </message>
2187 2167
2168Use as teclas de seta para andar.
2169Pressione a tecla F1 para ajuda ou aprender mais sobre [SECOND_LIFE].
2170 </message>
2188 </alert> 2171 </alert>
2189 <alert name="WelcomeChooseSex"> 2172 <alert name="WelcomeChooseSex">
2190 <message name="message"> 2173 <message name="message">
2191 Seu avatar aparecerá em alguns minutos. Utilize as setas para mover-se. Pressione F1 a qualquer momento para aprender mais sobre [SECOND_LIFE]. Por favor, escolha um personagem masculino ou feminino. Você pode mudar de idéia depois. 2174 Seu personagem irá aparecer num momento.
2175
2176Use as teclas de seta para andar.
2177Pressione a tecla F1 para ajuda ou aprender mais sobre [SECOND_LIFE].
2178Por favor, escolha se o seu avatar é feminino ou masculino.
2179Você pode mudar de idéia depois.
2192 </message> 2180 </message>
2193 <option name="Male"> 2181 <option name="Male">
2194 Masculino 2182 Masculino
@@ -2196,29 +2184,27 @@ Nota: Isto limpará o cache.
2196 <option name="Female"> 2184 <option name="Female">
2197 Feminino 2185 Feminino
2198 </option> 2186 </option>
2199
2200 </alert> 2187 </alert>
2201 <alert name="NotEnoughCurrency"> 2188 <alert name="NotEnoughCurrency">
2202 <message name="message"> 2189 <message name="message">
2203 [NAME] L$ [PRICE] Você não possui fundos suficientes para isso. 2190 [NAME] L$ [PRICE] Você não possui suficientes L$ para fazer isso.
2204 </message> 2191 </message>
2205
2206 </alert> 2192 </alert>
2207 <alert name="GrantedModifyRights"> 2193 <alert name="GrantedModifyRights">
2208 <message name="message"> 2194 <message name="message">
2209 Foi garantido à você o privilégio de alterar o(s) objeto(s) [FIRST_NAME] [LAST_NAME]&apos; 2195 Foi garantido à você o privilégio de alterar o(s) objeto(s) [FIRST_NAME] [LAST_NAME]&apos;
2210 </message> 2196 </message>
2211
2212 </alert> 2197 </alert>
2213 <alert name="RevokedModifyRights"> 2198 <alert name="RevokedModifyRights">
2214 <message name="message"> 2199 <message name="message">
2215 Seu privilégio para alterar o(s) objeto(s) [FIRST_NAME] [LAST_NAME]&apos;s foi removido. 2200 Seu privilégio para alterar o(s) objeto(s) [FIRST_NAME] [LAST_NAME]&apos;s foi removido.
2216 </message> 2201 </message>
2217
2218 </alert> 2202 </alert>
2219 <alert name="FlushMapVisibilityCaches"> 2203 <alert name="FlushMapVisibilityCaches">
2220 <message name="message"> 2204 <message name="message">
2221 Isso irá descarregar os caches de mapa dessa região. Pode seu útil somente para debugar. (Em andamento, aguarde 5 minutos, então todos os mapas serão atualizados após reentrarem) 2205 Isto irá descarregar os caches de mapa relativos a esta região.
2206Isso é realmente útil apenas para depuração.
2207(Na produção, aguarde 5 minutos e, então, o mapa de todos será atualizado depois que relogar.)
2222 </message> 2208 </message>
2223 <option name="OK"> 2209 <option name="OK">
2224 OK 2210 OK
@@ -2226,7 +2212,6 @@ Nota: Isto limpará o cache.
2226 <option name="Cancel"> 2212 <option name="Cancel">
2227 Cancelar 2213 Cancelar
2228 </option> 2214 </option>
2229
2230 </alert> 2215 </alert>
2231 <alert name="OnlyCopyContentsOfSingleItem"> 2216 <alert name="OnlyCopyContentsOfSingleItem">
2232 <message name="message"> 2217 <message name="message">
@@ -2238,7 +2223,6 @@ Nota: Isto limpará o cache.
2238 <option name="Cancel"> 2223 <option name="Cancel">
2239 Cancelar 2224 Cancelar
2240 </option> 2225 </option>
2241
2242 </alert> 2226 </alert>
2243 <alert name="KickUsersFromRegion"> 2227 <alert name="KickUsersFromRegion">
2244 <message name="message"> 2228 <message name="message">
@@ -2250,49 +2234,38 @@ Nota: Isto limpará o cache.
2250 <option name="Cancel"> 2234 <option name="Cancel">
2251 Cancelar 2235 Cancelar
2252 </option> 2236 </option>
2253
2254 </alert>
2255 <alert name="ReturnScriptedOnOthersLand">
2256 <message name="message">
2257 Tem certeza de que deseja retornar todos os objetos programados (scripted) possuídos pelo(a) ** [USER_NAME] ** que estejam em terrenos de outros?
2258 </message>
2259 <option name="Return">
2260 Retornar
2261 </option>
2262 <option name="Cancel">
2263 Cancelar
2264 </option>
2265
2266 </alert> 2237 </alert>
2267 <alert name="ReturnScriptedOnAllLand"> 2238 <alert name="EstateObjectReturn">
2268 <message name="message"> 2239 <message name="message">
2269 Tem certeza de que deseja retornar TODOS os objetos programados (scripted) possuídos pelo(a) ** [USER_NAME] ** desta Região? 2240 Você tem certeza que deseja retornar os objetos pertencentes a [USER_NAME] ?
2270 </message> 2241 </message>
2271 <option name="Return"> 2242 <option name="Return">
2272 Retornar 2243 OK
2273 </option> 2244 </option>
2274 <option name="Cancel"> 2245 <option name="Cancel">
2275 Cancelar 2246 Cancelar
2276 </option> 2247 </option>
2277
2278 </alert> 2248 </alert>
2279 <alert name="InvalidTerrainBitDepth"> 2249 <alert name="InvalidTerrainBitDepth">
2280 <message name="message"> 2250 <message name="message">
2281 Não foi possível configurar as texturas da região. Texturas de terreno [TEXTURE_NUM] possui um número inválido de profundidade de [TEXTURE_BIT_DEPTH]. Substitua a textura [TEXTURE_NUM] com 24 bit 512x512 ou menor e clique em &quot;Set&quot; novamente. 2251 Não foi possível definir texturas da região:
2282 </message> 2252Textura do Terreno [TEXTURE_NUM] tem uma profundidade de bits inválidos [TEXTURE_BIT_DEPTH].
2283 2253
2254Substituir textura [TEXTURE_NUM], com uma imagem de 24-bit 512x512 ou menor e em seguida, clique em &apos;Aplicar&apos; novamente.
2255 </message>
2284 </alert> 2256 </alert>
2285 <alert name="InvalidTerrainSize"> 2257 <alert name="InvalidTerrainSize">
2286 <message name="message"> 2258 <message name="message">
2287 Não foi possível configurar as texturas da região. Terrain texture [TEXTURE_NUM] é muito grande em [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y]. Substitua a textura [TEXTURE_NUM] com 24 bit 512x512 ou menor e clique em &quot;Set&quot; novamente. 2259 Não foi possível definir texturas da região:
2288 </message> 2260Textura do Terreno [TEXTURE_NUM] é muito grande em [TEXTURE_SIZE_X] x [TEXTURE_SIZE_Y].
2289 2261
2262Substituir textura [TEXTURE_NUM], com uma imagem de 24-bit 512x512 ou menor e em seguida, clique em &apos;Aplicar&apos; novamente.
2263 </message>
2290 </alert> 2264 </alert>
2291 <alert name="RawUploadStarted"> 2265 <alert name="RawUploadStarted">
2292 <message name="message"> 2266 <message name="message">
2293 Upload iniciado. Isso pode levar uns 2 minutos, dependendo da sua velocidade de conexão. 2267 Upload iniciado. Isso pode levar uns 2 minutos, dependendo da sua velocidade de conexão.
2294 </message> 2268 </message>
2295
2296 </alert> 2269 </alert>
2297 <alert name="ConfirmBakeTerrain"> 2270 <alert name="ConfirmBakeTerrain">
2298 <message name="message"> 2271 <message name="message">
@@ -2304,13 +2277,22 @@ Nota: Isto limpará o cache.
2304 <option name="Cancel"> 2277 <option name="Cancel">
2305 Cancelar 2278 Cancelar
2306 </option> 2279 </option>
2307
2308 </alert> 2280 </alert>
2309 <alert name="MaxAllowedAgentOnRegion"> 2281 <alert name="MaxAllowedAgentOnRegion">
2310 <message name="message"> 2282 <message name="message">
2311 Você pode ter somente [MAX_AGENTS] residentes permitidos. 2283 Você pode ter somente [MAX_AGENTS] residentes permitidos.
2312 </message> 2284 </message>
2313 2285 </alert>
2286 <alert name="MaxBannedAgentsOnRegion">
2287 <message name="message">
2288 Você pode ter apenas [MAX_BANNED] residentes banidos.
2289 </message>
2290 </alert>
2291 <alert name="MaxAgentOnRegionBatch">
2292 <message name="message">
2293 Falha ao adicionar [NUM_ADDED] agentes:
2294Ultrapassa [MAX_AGENTS] [LIST_TYPE] o limite de [NUM_EXCESS].
2295 </message>
2314 </alert> 2296 </alert>
2315 <alert name="MaxAllowedGroupsOnRegion"> 2297 <alert name="MaxAllowedGroupsOnRegion">
2316 <message name="message"> 2298 <message name="message">
@@ -2322,53 +2304,42 @@ Nota: Isto limpará o cache.
2322 <option name="Cancel"> 2304 <option name="Cancel">
2323 Cancelar 2305 Cancelar
2324 </option> 2306 </option>
2325
2326 </alert>
2327 <alert name="MaxBannedAgentsOnRegion">
2328 <message name="message">
2329 Você pode ter apenas [MAX_BANNED] residentes banidos.
2330 </message>
2331
2332 </alert> 2307 </alert>
2333 <alert name="MaxManagersOnRegion"> 2308 <alert name="MaxManagersOnRegion">
2334 <message name="message"> 2309 <message name="message">
2335 Você pode ter apenas [MAX_MANAGER] residentes banidos. 2310 Você pode ter apenas [MAX_MANAGER] residentes banidos.
2336 </message> 2311 </message>
2337
2338 </alert> 2312 </alert>
2339 <alert name="OwnerCanNotBeDenied"> 2313 <alert name="OwnerCanNotBeDenied">
2340 <message name="message"> 2314 <message name="message">
2341 Não é possível adicionar um porprietário a região. Acesso negado à lista. 2315 Não é possível adicionar um porprietário a região. Acesso negado à lista.
2342 </message> 2316 </message>
2343
2344 </alert> 2317 </alert>
2345 <alert name="CanNotChangeAppearanceUntilLoaded"> 2318 <alert name="CanNotChangeAppearanceUntilLoaded">
2346 <message name="message"> 2319 <message name="message">
2347 Não é possível alterar a aparência até que as roupas e formas estejam carregadas. 2320 Não é possível alterar a aparência até que as roupas e formas estejam carregadas.
2348 </message> 2321 </message>
2349
2350 </alert> 2322 </alert>
2351 <alert name="ClassifiedMustBeAlphanumeric"> 2323 <alert name="ClassifiedMustBeAlphanumeric">
2352 <message name="message"> 2324 <message name="message">
2353 O título do seu Anúncio deve começar com uma letra entre A e Z ou número. Nenhuma pontuação é permitida. 2325 O título do seu Anúncio deve começar com uma letra entre A e Z ou número. Nenhuma pontuação é permitida.
2354 </message> 2326 </message>
2355
2356 </alert> 2327 </alert>
2357 <alert name="CantSetBuyObject"> 2328 <alert name="CantSetBuyObject">
2358 <message name="message"> 2329 <message name="message">
2359 Não é possível configurar Comprar Objeto, porque o objeto não está à venda. Por favor, ponha o objeto à venda e tente novamente. 2330 Não é possível configurar Comprar Objeto, porque o objeto não está à venda. Por favor, ponha o objeto à venda e tente novamente.
2360 </message> 2331 </message>
2361
2362 </alert> 2332 </alert>
2363 <alert name="FinishedRawDownload"> 2333 <alert name="FinishedRawDownload">
2364 <message name="message"> 2334 <message name="message">
2365 Download do arquivo de terreno RAW concluído em: [DOWNLOAD_PATH] 2335 Download do arquivo de terreno RAW concluído em: [DOWNLOAD_PATH]
2366 </message> 2336 </message>
2367
2368 </alert> 2337 </alert>
2369 <alert name="DownloadWindowsMandatory"> 2338 <alert name="DownloadWindowsMandatory">
2370 <message name="message"> 2339 <message name="message">
2371 Uma nova versão do [SECOND_LIFE] está disponível.[MESSAGE] Você deve atualizar sua versão para utilizar o sistema. 2340 Uma nova versão do [SECOND_LIFE] está disponível.
2341[MESSAGE]
2342Você deve baixar essa atualização para utilizar o [SECOND_LIFE].
2372 </message> 2343 </message>
2373 <option name="Download"> 2344 <option name="Download">
2374 Atualizar 2345 Atualizar
@@ -2376,11 +2347,12 @@ Nota: Isto limpará o cache.
2376 <option name="Quit"> 2347 <option name="Quit">
2377 Sair 2348 Sair
2378 </option> 2349 </option>
2379
2380 </alert> 2350 </alert>
2381 <alert name="DownloadWindows"> 2351 <alert name="DownloadWindows">
2382 <message name="message"> 2352 <message name="message">
2383 Uma nova versão do [SECOND_LIFE] está disponível.[MESSAGE] Essa atualização não é obrigatória, mas sugerimos que a instale para aperfeiçoamento de estabilidade e performance. 2353 Uma versão atualizada do [SECOND_LIFE] está disponível.
2354[MESSAGE]
2355Essa atualização não é necessária, mas sugerimos que você instale para melhorar performance e maior estabilidade.
2384 </message> 2356 </message>
2385 <option name="Download"> 2357 <option name="Download">
2386 Atualizar 2358 Atualizar
@@ -2388,11 +2360,12 @@ Nota: Isto limpará o cache.
2388 <option name="Continue"> 2360 <option name="Continue">
2389 Continuar 2361 Continuar
2390 </option> 2362 </option>
2391
2392 </alert> 2363 </alert>
2393 <alert name="DownloadWindowsReleaseForDownload"> 2364 <alert name="DownloadWindowsReleaseForDownload">
2394 <message name="message"> 2365 <message name="message">
2395 Uma nova versão do [SECOND_LIFE] está disponível.[MESSAGE] Essa atualização não é obrigatória, mas sugerimos que a instale para aperfeiçoamento de estabilidade e performance. 2366 Uma versão atualizada do [SECOND_LIFE] está disponível.
2367[MESSAGE]
2368Essa atualização não é necessária, mas sugerimos que você instale para melhorar performance e maior estabilidade.
2396 </message> 2369 </message>
2397 <option name="Download"> 2370 <option name="Download">
2398 Atualizar 2371 Atualizar
@@ -2400,11 +2373,14 @@ Nota: Isto limpará o cache.
2400 <option name="Continue"> 2373 <option name="Continue">
2401 Continuar 2374 Continuar
2402 </option> 2375 </option>
2403
2404 </alert> 2376 </alert>
2405 <alert name="DownloadMacMandatory"> 2377 <alert name="DownloadMacMandatory">
2406 <message name="message"> 2378 <message name="message">
2407 Uma nova versão do [SECOND_LIFE] está disponível.[MESSAGE] Você deve atualizar esta versão para utilizar o sistema. Atualizar para sua pasta de Aplicações? 2379 Uma nova versão do [SECOND_LIFE] está disponível.
2380[MESSAGE]
2381Você deve baixar esta atualização para utilizar o [SECOND_LIFE].
2382
2383Baixar para o seu folder de Aplicativos?
2408 </message> 2384 </message>
2409 <option name="Download"> 2385 <option name="Download">
2410 Atualizar 2386 Atualizar
@@ -2412,11 +2388,14 @@ Nota: Isto limpará o cache.
2412 <option name="Quit"> 2388 <option name="Quit">
2413 Sair 2389 Sair
2414 </option> 2390 </option>
2415
2416 </alert> 2391 </alert>
2417 <alert name="DownloadMac"> 2392 <alert name="DownloadMac">
2418 <message name="message"> 2393 <message name="message">
2419 Uma nova versão do [SECOND_LIFE] está disponível.[MESSAGE] Essa atualização não é obrigatória, mas sugerimos que a instale para aperfeiçoamento de estabilidade e performance. Atualizar para sua pasta de Aplicações? 2394 Uma nova versão do [SECOND_LIFE] está disponível.
2395[MESSAGE]
2396Essa atualização não é necessária, mas sugerimos que você instale para melhorar performance e maior estabilidade.
2397
2398Baixar para o seu folder de Aplicativos?
2420 </message> 2399 </message>
2421 <option name="Download"> 2400 <option name="Download">
2422 Atualizar 2401 Atualizar
@@ -2424,11 +2403,15 @@ Nota: Isto limpará o cache.
2424 <option name="Continue"> 2403 <option name="Continue">
2425 Continuar 2404 Continuar
2426 </option> 2405 </option>
2427
2428 </alert> 2406 </alert>
2429 <alert name="DownloadMacReleaseForDownload"> 2407 <alert name="DownloadMacReleaseForDownload">
2430 <message name="message"> 2408 <message name="message">
2431 Uma nova versão do [SECOND_LIFE] está disponível.[MESSAGE] Essa atualização não é obrigatória, mas sugerimos que a instale para aperfeiçoamento de estabilidade e performance. Atualizar para sua pasta de Aplicações? 2409 Uma nova versão do [SECOND_LIFE] está disponível.
2410
2411[MESSAGE]
2412Essa atualização não é necessária, mas sugerimos que você instale para melhorar performance e maior estabilidade.
2413
2414Baixar para o seu folder de Aplicativos?
2432 </message> 2415 </message>
2433 <option name="Download"> 2416 <option name="Download">
2434 Atualizar 2417 Atualizar
@@ -2436,14 +2419,13 @@ Nota: Isto limpará o cache.
2436 <option name="Continue"> 2419 <option name="Continue">
2437 Continuar 2420 Continuar
2438 </option> 2421 </option>
2439
2440 </alert> 2422 </alert>
2441 <alert name="DeedObjectToGroup"> 2423 <alert name="DeedObjectToGroup">
2442 <message name="message"> 2424 <message name="message">
2443 Acionar este objeto causará ao grupo: * Recebe o valor pago pelo objeto 2425 Acionar este objeto causará ao grupo: * Recebe o valor pago pelo objeto
2444 </message> 2426 </message>
2445 <ignore> 2427 <ignore name="ignore">
2446 Quando acionar objetos ao grupo 2428 Ao transferir propriedade de objetos aos grupos
2447 </ignore> 2429 </ignore>
2448 <option name="Deed"> 2430 <option name="Deed">
2449 Acionar 2431 Acionar
@@ -2451,128 +2433,71 @@ Nota: Isto limpará o cache.
2451 <option name="Cancel"> 2433 <option name="Cancel">
2452 Cancelar 2434 Cancelar
2453 </option> 2435 </option>
2454
2455 </alert> 2436 </alert>
2456 <alert name="AddClassified"> 2437 <alert name="WebLaunchExternalTarget">
2457 <message name="message"> 2438 <message name="message">
2458 Anúncios colocados aparecem na seção &apos;Anúncios&apos; no diretório de Busca por uma semana. Preencha seu anúncio e clique em &apos;Publicar...&apos; para adicioná-lo ao diretório. Você será consultado a pagar um preço quando clicar em Publicar. Quanto mais pagar, mais próximo ao topo da lista ficará seu anúncio, facilitando a visualização pelos outros Residentes. 2439 Abrir o Web Browser do seu sistema para ver este conteúdo?
2459 </message> 2440 </message>
2460 <ignore> 2441 <ignore name="ignore">
2461 Quando adicionar um novo Anúncio. 2442 Ao abrir o navegador do seu sistema para visualizar uma página Web
2462 </ignore> 2443 </ignore>
2463 <option name="OK"> 2444 <option name="Open">
2464 OK 2445 OK
2465 </option> 2446 </option>
2466 <option name="Cancel"> 2447 <option name="Cancel">
2467 Cancelar 2448 Cancelar
2468 </option> 2449 </option>
2469
2470 </alert>
2471 <alert name="WebLaunchGraphicsDriver">
2472 <message name="message">
2473 Seu [VENDOR_LABLE] [CARD_NAME] driver de vídeo neste computador está desatualizado. Este é um componente software que controla sua placa de vídeo. Versões antigas podem gerar problemas nos gráficos 3D em programas como [SECOND_LIFE]. Nós recomendamos atualizar seu &quot;[DRIVER_NAME]&quot; driver, disponível gratuitamente pela internet.
2474 </message>
2475 <ignore>
2476 Quando iniciar o navegador, visualizar a página de atualizações de drivers
2477 </ignore>
2478 <option name="Gotopage">
2479 Ir para a página
2480 </option>
2481 <option name="Cancel">
2482 Cancelar
2483 </option>
2484
2485 </alert>
2486 <alert name="WebLaunchGraphicsDriverIntelExtreme">
2487 <message name="message">
2488 Seu driver gráfico Intel Extreme está desatualizado.Este é um componente software que controla sua placa de vídeo. Versões antigas podem gerar problemas nos gráficos 3D em programas como [SECOND_LIFE]. Nós recomendamos atualizar seu &quot;[DRIVER_NAME]&quot; driver, disponível na página da Intel.Gostaria de ir até a página de e drivers do [SECOND_LIFE]?
2489 </message>
2490 <ignore>
2491 Quando iniciar o navegador, visualizar a página de atualizações de drivers Intel
2492 </ignore>
2493 <option name="Gotopage">
2494 Ir para a página
2495 </option>
2496 <option name="Cancel">
2497 Cancelar
2498 </option>
2499
2500 </alert>
2501 <alert name="RunningInPCI">
2502 <message name="message">
2503 GL indica que o driver de vídeo neste sistema está funcioando em modo PCImode, um método mais lento de processamento de imanges. Caso você esteja usando uma placa de vídeo PCI, por favor, desconsidere esta mensagem. Caso esteja usando uma placa de vídeo AGP, você deve atualizar sua placa-mãe para melhorar a performance do sistema. Se estiver utilizando uma placa de vídeo PCI Express você pode ativar a AGP a partir do painel Preferências no [SECOND_LIFE].
2504 </message>
2505 <ignore>
2506 Quando funcionar em modo PCI
2507 </ignore>
2508
2509 </alert> 2450 </alert>
2510 <alert name="WebLaunchJoinNow"> 2451 <alert name="WebLaunchJoinNow">
2511 <message name="message"> 2452 <message name="message">
2512 Ir ao www.secondlife.com para gerenciar sua conta? 2453 Ir ao www.secondlife.com para gerenciar sua conta?
2513 </message> 2454 </message>
2514 <ignore>
2515 Quando iniciar o navegador, ir a página de gerência de conta
2516 </ignore>
2517 <option name="OK"> 2455 <option name="OK">
2518 OK 2456 OK
2519 </option> 2457 </option>
2520 <option name="Cancel"> 2458 <option name="Cancel">
2521 Cancelar 2459 Cancelar
2522 </option> 2460 </option>
2523
2524 </alert> 2461 </alert>
2525 <alert name="WebLaunchForums"> 2462 <alert name="WebLaunchForums">
2526 <message name="message"> 2463 <message name="message">
2527 Buscar pela Base de Conhecimento do [SECOND_LIFE] as últimas dicas e truques. 2464 Buscar pela Base de Conhecimento do [SECOND_LIFE] as últimas dicas e truques.
2528 </message> 2465 </message>
2529 <ignore>
2530 Quando iniciar o navegador, ir até a Base de Conhecimento
2531 </ignore>
2532 <option name="Gotopage"> 2466 <option name="Gotopage">
2533 Ir para a página 2467 Ir para a página
2534 </option> 2468 </option>
2535 <option name="Cancel"> 2469 <option name="Cancel">
2536 Cancelar 2470 Cancelar
2537 </option> 2471 </option>
2538
2539 </alert> 2472 </alert>
2540 <alert name="WebLaunchSupport"> 2473 <alert name="WebLaunchSupport">
2541 <message name="message"> 2474 <message name="message">
2542 Contactar o Suporte [SECOND_LIFE]. 2475 Contactar o Suporte [SECOND_LIFE].
2543 </message> 2476 </message>
2544 <ignore>
2545 Quando iniciar o navegador, contactar o Suporte
2546 </ignore>
2547 <option name="Gotopage"> 2477 <option name="Gotopage">
2548 Ir para a página 2478 Ir para a página
2549 </option> 2479 </option>
2550 <option name="Cancel"> 2480 <option name="Cancel">
2551 Cancelar 2481 Cancelar
2552 </option> 2482 </option>
2553
2554 </alert> 2483 </alert>
2555 <alert name="WebLaunchSupportWiki"> 2484 <alert name="WebLaunchSupportWiki">
2556 <message name="message"> 2485 <message name="message">
2557 Ir até o Blog Oficial da Linden buscar pelas últimas notícias e informações. 2486 Ir até o Blog Oficial da Linden buscar pelas últimas notícias e informações.
2558 </message> 2487 </message>
2559 <ignore>
2560 Quando iniciar o navegador, visualizar o Blog
2561 </ignore>
2562 <option name="Gotopage"> 2488 <option name="Gotopage">
2563 Ir até a página 2489 Ir até a página
2564 </option> 2490 </option>
2565 <option name="Cancel"> 2491 <option name="Cancel">
2566 Cancelar 2492 Cancelar
2567 </option> 2493 </option>
2568
2569 </alert> 2494 </alert>
2570 <alert name="WebLaunchLSLGuide"> 2495 <alert name="WebLaunchLSLGuide">
2571 <message name="message"> 2496 <message name="message">
2572 Ir para a página guia do LSL para ajuda com script? 2497 Ir para a página guia do LSL para ajuda com script?
2573 </message> 2498 </message>
2574 <ignore> 2499 <ignore name="ignore">
2575 Quando iniciar o navegador, visualizar o guia LSL 2500 Ao executar o navegador web para visualizar o Guia de Scripts.
2576 </ignore> 2501 </ignore>
2577 <option name="Gotopage"> 2502 <option name="Gotopage">
2578 Ir para a página 2503 Ir para a página
@@ -2580,29 +2505,26 @@ Nota: Isto limpará o cache.
2580 <option name="Cancel"> 2505 <option name="Cancel">
2581 Cancelar 2506 Cancelar
2582 </option> 2507 </option>
2583
2584 </alert> 2508 </alert>
2585 <alert name="WebLaunchLSLWiki"> 2509 <alert name="WebLaunchLSLWiki">
2586 <message name="message"> 2510 <message name="message">
2587 Ir para a página LSL Wiki para ajuda com script? 2511 Ir para a página LSL Wiki para ajuda com script?
2588 </message> 2512 </message>
2589 <ignore>
2590 Quando iniciar o navegador, visualizar o LSL Wiki
2591 </ignore>
2592 <option name="Gotopage"> 2513 <option name="Gotopage">
2593 Ir para a página 2514 Ir para a página
2594 </option> 2515 </option>
2595 <option name="Cancel"> 2516 <option name="Cancel">
2596 Cancelar 2517 Cancelar
2597 </option> 2518 </option>
2598
2599 </alert> 2519 </alert>
2600 <alert name="ReturnToOwner"> 2520 <alert name="ReturnToOwner">
2601 <message name="message"> 2521 <message name="message">
2602 Você tem certeza que quer devolver os objetos selecionados aos seus donos? A autoria dos objetos transferíveis retornará para os seu antigos donos. (Todos os objetos retornarão para as pastas que estavam localizados anteriormente.)* *AVISO* Nenhum objeto transferível acionado será deletado! 2522 Você tem certeza que deseja retornar os objetos selecionados para seus proprietários? Objetos transferíveis doados irão retornar aos proprietários anteriores.
2523
2524*AVISO* Objetos doados não – transferíveis serão deletados!
2603 </message> 2525 </message>
2604 <ignore> 2526 <ignore name="ignore">
2605 Quando retornar os objetos aos seus donos. 2527 Ao retornar objetos a seus proprietários
2606 </ignore> 2528 </ignore>
2607 <option name="Return"> 2529 <option name="Return">
2608 Retornar 2530 Retornar
@@ -2610,7 +2532,6 @@ Nota: Isto limpará o cache.
2610 <option name="Cancel"> 2532 <option name="Cancel">
2611 Cancelar 2533 Cancelar
2612 </option> 2534 </option>
2613
2614 </alert> 2535 </alert>
2615 <alert name="GroupLeaveConfirmOfficer"> 2536 <alert name="GroupLeaveConfirmOfficer">
2616 <message name="message"> 2537 <message name="message">
@@ -2622,7 +2543,6 @@ Nota: Isto limpará o cache.
2622 <option name="Cancel"> 2543 <option name="Cancel">
2623 Cancelar 2544 Cancelar
2624 </option> 2545 </option>
2625
2626 </alert> 2546 </alert>
2627 <alert name="GroupLeaveConfirmMember"> 2547 <alert name="GroupLeaveConfirmMember">
2628 <message name="message"> 2548 <message name="message">
@@ -2634,13 +2554,17 @@ Nota: Isto limpará o cache.
2634 <option name="Cancel"> 2554 <option name="Cancel">
2635 Cancelar 2555 Cancelar
2636 </option> 2556 </option>
2637
2638 </alert> 2557 </alert>
2639 <alert name="ConfirmKick"> 2558 <alert name="ConfirmKick">
2640 <message name="message"> 2559 <message name="message">
2641 Você quer REALMENTE expulsar todos os usuários deste grid? 2560 Você quer REALMENTE expulsar todos os usuários deste grid?
2642 </message> 2561 </message>
2643 2562 <option name="Kick">
2563 Chutar todos os usuários
2564 </option>
2565 <option name="Cancel">
2566 Cancelar
2567 </option>
2644 </alert> 2568 </alert>
2645 <alert name="MuteLinden"> 2569 <alert name="MuteLinden">
2646 <message name="message"> 2570 <message name="message">
@@ -2649,22 +2573,6 @@ Nota: Isto limpará o cache.
2649 <option name="OK"> 2573 <option name="OK">
2650 OK 2574 OK
2651 </option> 2575 </option>
2652
2653 </alert>
2654 <alert name="MuteByName" title="Silenciar objeto pelo nome">
2655 <message name="message">
2656 Silenciar por nome somente afetará objetos, bate-papo e MI, mas não sons. Você deve digitar o nome do objeto corretamente.
2657 </message>
2658 <editline name="editline">
2659 Nome do objeto
2660 </editline>
2661 <option name="OK">
2662 OK
2663 </option>
2664 <option name="Cancel">
2665 Cancelar
2666 </option>
2667
2668 </alert> 2576 </alert>
2669 <alert name="MuteByNameFailed" title="Silenciar objeto pelo nome falhou"> 2577 <alert name="MuteByNameFailed" title="Silenciar objeto pelo nome falhou">
2670 <message name="message"> 2578 <message name="message">
@@ -2673,7 +2581,6 @@ Nota: Isto limpará o cache.
2673 <option name="OK"> 2581 <option name="OK">
2674 OK 2582 OK
2675 </option> 2583 </option>
2676
2677 </alert> 2584 </alert>
2678 <alert name="RemoveItemWarn"> 2585 <alert name="RemoveItemWarn">
2679 <message name="message"> 2586 <message name="message">
@@ -2685,7 +2592,6 @@ Nota: Isto limpará o cache.
2685 <option name="No"> 2592 <option name="No">
2686 Não 2593 Não
2687 </option> 2594 </option>
2688
2689 </alert> 2595 </alert>
2690 <alert name="CantRateOwnedByGroup"> 2596 <alert name="CantRateOwnedByGroup">
2691 <message name="message"> 2597 <message name="message">
@@ -2694,7 +2600,6 @@ Nota: Isto limpará o cache.
2694 <option name="OK"> 2600 <option name="OK">
2695 OK 2601 OK
2696 </option> 2602 </option>
2697
2698 </alert> 2603 </alert>
2699 <alert name="CantOfferCallingCard"> 2604 <alert name="CantOfferCallingCard">
2700 <message name="message"> 2605 <message name="message">
@@ -2703,7 +2608,6 @@ Nota: Isto limpará o cache.
2703 <option name="OK"> 2608 <option name="OK">
2704 OK 2609 OK
2705 </option> 2610 </option>
2706
2707 </alert> 2611 </alert>
2708 <alert name="CantOfferFriendship"> 2612 <alert name="CantOfferFriendship">
2709 <message name="message"> 2613 <message name="message">
@@ -2712,7 +2616,6 @@ Nota: Isto limpará o cache.
2712 <option name="OK"> 2616 <option name="OK">
2713 OK 2617 OK
2714 </option> 2618 </option>
2715
2716 </alert> 2619 </alert>
2717 <alert name="CantSetHome"> 2620 <alert name="CantSetHome">
2718 <message name="message"> 2621 <message name="message">
@@ -2721,19 +2624,18 @@ Nota: Isto limpará o cache.
2721 <option name="OK"> 2624 <option name="OK">
2722 OK 2625 OK
2723 </option> 2626 </option>
2724
2725 </alert> 2627 </alert>
2726 <alert name="BusyModeSet"> 2628 <alert name="BusyModeSet">
2727 <message name="message"> 2629 <message name="message">
2728 Modificado para o modo Ocupado. O bate-papo e mensagens instantâneas serão ocultadas. Mensagens instantâneas serão respondidas como ocupado. Todos os convites para teleportar-se e sobre inventário serão recusadas. 2630 Definido Modo Ocupado.
2631Bate-papo e mensagens instantâneas serão escondidas. Mensagens instantâneas vão mostrar modo Ocupado em resposta. Todas as ofertas de teleporte serão recusadas. Todas as ofertas de inventário irão para a sua Lixeira.
2729 </message> 2632 </message>
2730 <ignore> 2633 <ignore name="ignore">
2731 Ao alterar para Modo Ocupado. 2634 Ao definir o modo ocupado
2732 </ignore> 2635 </ignore>
2733 <option name="OK"> 2636 <option name="OK">
2734 OK 2637 OK
2735 </option> 2638 </option>
2736
2737 </alert> 2639 </alert>
2738 <alert name="NoPVPDetected"> 2640 <alert name="NoPVPDetected">
2739 <message name="message"> 2641 <message name="message">
@@ -2742,7 +2644,6 @@ Nota: Isto limpará o cache.
2742 <option name="OK"> 2644 <option name="OK">
2743 OK 2645 OK
2744 </option> 2646 </option>
2745
2746 </alert> 2647 </alert>
2747 <alert name="NotecardAttachPermFail"> 2648 <alert name="NotecardAttachPermFail">
2748 <message name="message"> 2649 <message name="message">
@@ -2751,7 +2652,6 @@ Nota: Isto limpará o cache.
2751 <option name="OK"> 2652 <option name="OK">
2752 OK 2653 OK
2753 </option> 2654 </option>
2754
2755 </alert> 2655 </alert>
2756 <alert name="JoinedTooManyGroupsMember"> 2656 <alert name="JoinedTooManyGroupsMember">
2757 <message name="message"> 2657 <message name="message">
@@ -2763,7 +2663,6 @@ Nota: Isto limpará o cache.
2763 <option name="Decline"> 2663 <option name="Decline">
2764 Rejeitar 2664 Rejeitar
2765 </option> 2665 </option>
2766
2767 </alert> 2666 </alert>
2768 <alert name="JoinedTooManyGroupsOfficer"> 2667 <alert name="JoinedTooManyGroupsOfficer">
2769 <message name="message"> 2668 <message name="message">
@@ -2775,23 +2674,13 @@ Nota: Isto limpará o cache.
2775 <option name="Decline"> 2674 <option name="Decline">
2776 Rejeitar 2675 Rejeitar
2777 </option> 2676 </option>
2778
2779 </alert>
2780 <alert name="HandleRateOwner">
2781 <message name="message">
2782 Não é permitido fixar o preço de um objeto de outro proprietário, ele pertence a um grupo.
2783 </message>
2784 <option name="OK">
2785 OK
2786 </option>
2787
2788 </alert> 2677 </alert>
2789 <alert name="KickUser"> 2678 <alert name="KickUser">
2790 <message name="message"> 2679 <message name="message">
2791 Expulsar este usuário com qual mensagem? 2680 Expulsar este usuário com qual mensagem?
2792 </message> 2681 </message>
2793 <editline name="editline"> 2682 <editline name="editline">
2794 Um administrador o desconectou. 2683 Um administrador desligou você.
2795 </editline> 2684 </editline>
2796 <option name="OK"> 2685 <option name="OK">
2797 OK 2686 OK
@@ -2799,14 +2688,13 @@ Nota: Isto limpará o cache.
2799 <option name="Cancel"> 2688 <option name="Cancel">
2800 Cancelar. 2689 Cancelar.
2801 </option> 2690 </option>
2802
2803 </alert> 2691 </alert>
2804 <alert name="KickAllUsers"> 2692 <alert name="KickAllUsers">
2805 <message name="message"> 2693 <message name="message">
2806 Expulsar todo mundo atualmente do grid com qual mensagem? 2694 Expulsar todo mundo atualmente do grid com qual mensagem?
2807 </message> 2695 </message>
2808 <editline name="editline"> 2696 <editline name="editline">
2809 Um administrador te desconectou. 2697 Um administrador deslogou você.
2810 </editline> 2698 </editline>
2811 <option name="OK"> 2699 <option name="OK">
2812 OK 2700 OK
@@ -2814,14 +2702,13 @@ Nota: Isto limpará o cache.
2814 <option name="Cancel"> 2702 <option name="Cancel">
2815 Cancelar 2703 Cancelar
2816 </option> 2704 </option>
2817
2818 </alert> 2705 </alert>
2819 <alert name="FreezeUser"> 2706 <alert name="FreezeUser">
2820 <message name="message"> 2707 <message name="message">
2821 Paralise este usuário com qual mensagem? 2708 Paralise este usuário com qual mensagem?
2822 </message> 2709 </message>
2823 <editline name="editline"> 2710 <editline name="editline">
2824 Você foi paralisado. Você não pode mover-se ou conversar. Um administrador entrará em contato com você através de mensagem instantânea (MI). 2711 Você foi congelado, Você não pode se mover ou conversar. Um administrador irá contatá-lo via mensagem instantânea (IM).
2825 </editline> 2712 </editline>
2826 <option name="OK"> 2713 <option name="OK">
2827 OK 2714 OK
@@ -2829,14 +2716,13 @@ Nota: Isto limpará o cache.
2829 <option name="Cancel"> 2716 <option name="Cancel">
2830 Cancelar 2717 Cancelar
2831 </option> 2718 </option>
2832
2833 </alert> 2719 </alert>
2834 <alert name="UnFreezeUser"> 2720 <alert name="UnFreezeUser">
2835 <message name="message"> 2721 <message name="message">
2836 Liberar este usuário com qual mensagem? 2722 Liberar este usuário com qual mensagem?
2837 </message> 2723 </message>
2838 <editline name="editline"> 2724 <editline name="editline">
2839 Você não está mais paralisado. 2725 Você não está mais congelado.
2840 </editline> 2726 </editline>
2841 <option name="OK"> 2727 <option name="OK">
2842 OK 2728 OK
@@ -2844,7 +2730,6 @@ Nota: Isto limpará o cache.
2844 <option name="Cancel"> 2730 <option name="Cancel">
2845 Cancelar 2731 Cancelar
2846 </option> 2732 </option>
2847
2848 </alert> 2733 </alert>
2849 <alert name="ExpungeUser"> 2734 <alert name="ExpungeUser">
2850 <message name="message"> 2735 <message name="message">
@@ -2862,7 +2747,7 @@ Nota: Isto limpará o cache.
2862 Oferecer um teletransporte para uma localização com a seguinte mensagem? 2747 Oferecer um teletransporte para uma localização com a seguinte mensagem?
2863 </message> 2748 </message>
2864 <editline name="editline"> 2749 <editline name="editline">
2865 Venha para [REGION] 2750 Junte-se a mim em [REGION]
2866 </editline> 2751 </editline>
2867 <option name="OK"> 2752 <option name="OK">
2868 OK 2753 OK
@@ -2870,14 +2755,13 @@ Nota: Isto limpará o cache.
2870 <option name="Cancel"> 2755 <option name="Cancel">
2871 Cancelar 2756 Cancelar
2872 </option> 2757 </option>
2873
2874 </alert> 2758 </alert>
2875 <alert name="OfferTeleportFromGod"> 2759 <alert name="OfferTeleportFromGod">
2876 <message name="message"> 2760 <message name="message">
2877 God user convocou para a sua localização? 2761 God user convocou para a sua localização?
2878 </message> 2762 </message>
2879 <editline name="editline"> 2763 <editline name="editline">
2880 Venha para [REGION] 2764 Junte-se a mim em [REGION]
2881 </editline> 2765 </editline>
2882 <option name="OK"> 2766 <option name="OK">
2883 OK 2767 OK
@@ -2885,7 +2769,20 @@ Nota: Isto limpará o cache.
2885 <option name="Cancel"> 2769 <option name="Cancel">
2886 Cancelar 2770 Cancelar
2887 </option> 2771 </option>
2888 2772 </alert>
2773 <alert name="TeleportFromLandmark">
2774 <message name="message">
2775 Você tem certeza que quer teleportar?
2776 </message>
2777 <ignore name="ignore">
2778 Ao teleportar de uma Landmark no inventário
2779 </ignore>
2780 <option name="Teleport">
2781 Teleportar
2782 </option>
2783 <option name="Cancel">
2784 Cancelar
2785 </option>
2889 </alert> 2786 </alert>
2890 <alert name="MessageEstate" title="Mensagem para todos do Estado"> 2787 <alert name="MessageEstate" title="Mensagem para todos do Estado">
2891 <message name="message"> 2788 <message name="message">
@@ -2900,7 +2797,11 @@ Nota: Isto limpará o cache.
2900 </alert> 2797 </alert>
2901 <alert name="ChangeLindenEstate" title="Mudar propriedade Linden"> 2798 <alert name="ChangeLindenEstate" title="Mudar propriedade Linden">
2902 <message name="message"> 2799 <message name="message">
2903 Você não é capaz de modificar um Estado pertencente a Linden (mainland, grid adolescente, orientação, etc.). Isso é EXTREMAMENTE PERIGOSO porque pode afetar profundamente a experiência do usuário. Na mainland, isso irá mudar milhares de regiões e fazer o espaço do servidor travar. Proceder? 2800 Você está prestes a mudar um Terreno pertencente a Linden (continente, teen grid, orientação, etc.)
2801
2802Isto é EXTREMAMENTE PERIGOSO porque pode fundamentalmente 
afetar a experiência do usuário. No continente, vai mudar milhares de regiões e fazer o spaceserver soluçar.
2803
2804Proceder?
2904 </message> 2805 </message>
2905 <option name="ChangeEstate"> 2806 <option name="ChangeEstate">
2906 Mudar Estado 2807 Mudar Estado
@@ -2908,11 +2809,13 @@ Nota: Isto limpará o cache.
2908 <option name="Cancel"> 2809 <option name="Cancel">
2909 Cancelar 2810 Cancelar
2910 </option> 2811 </option>
2911
2912 </alert> 2812 </alert>
2913 <alert name="ChangeLindenAccess" title="Mudar a propriedade de Linden OK"> 2813 <alert name="ChangeLindenAccess" title="Mudar a propriedade de Linden OK">
2914 <message name="message"> 2814 <message name="message">
2915 Você é capaz de modificar um Estado pertencente a Linden (mainland, grid adolescente, orientação, etc.). Isso é EXTREMAMENTE PERIGOSO porque pode afetar profundamente a experiência do usuário. Na mainland, isso irá mudar milhares de regiões e fazer o espaço do servidor travar. Continuar? 2815 Você está prestes a mudar uma lista de acessos de um Terreno pertencente a Linden (continente, teen grid, orientação, etc.)
2816
2817Isto é perigoso e deveria ser feito apenas para utilizar uma brecha que permita que objetos/L$ sejam transferidos para dentro/fora da grade.
2818Isto mudará milhares de regiões e fará o spaceserver soluçar.
2916 </message> 2819 </message>
2917 <option name="ChangeEstate"> 2820 <option name="ChangeEstate">
2918 Trocar Estado 2821 Trocar Estado
@@ -2920,7 +2823,6 @@ Nota: Isto limpará o cache.
2920 <option name="Cancel"> 2823 <option name="Cancel">
2921 Cancelar 2824 Cancelar
2922 </option> 2825 </option>
2923
2924 </alert> 2826 </alert>
2925 <alert name="EstateAllowedAgentAdd" title="Seleção de Estado"> 2827 <alert name="EstateAllowedAgentAdd" title="Seleção de Estado">
2926 <message name="message"> 2828 <message name="message">
@@ -2968,10 +2870,15 @@ Nota: Isto limpará o cache.
2968 <message name="message"> 2870 <message name="message">
2969 Remover da lista de grupos permitidos somente esta Região ou [ALL_ESTATES]? 2871 Remover da lista de grupos permitidos somente esta Região ou [ALL_ESTATES]?
2970 </message> 2872 </message>
2873 <option name="ThisEstate">
2874 Este Estado
2875 </option>
2876 <option name="AllEstates">
2877 Todos os Estados
2878 </option>
2971 <option name="Cancel"> 2879 <option name="Cancel">
2972 Cancelar 2880 Cancelar
2973 </option> 2881 </option>
2974
2975 </alert> 2882 </alert>
2976 <alert name="EstateBannedAgentAdd" title="Seleção de Estado"> 2883 <alert name="EstateBannedAgentAdd" title="Seleção de Estado">
2977 <message name="message"> 2884 <message name="message">
@@ -2986,7 +2893,6 @@ Nota: Isto limpará o cache.
2986 <option name="Cancel"> 2893 <option name="Cancel">
2987 Cancelar 2894 Cancelar
2988 </option> 2895 </option>
2989
2990 </alert> 2896 </alert>
2991 <alert name="EstateBannedAgentRemove" title="Seleção de Estado"> 2897 <alert name="EstateBannedAgentRemove" title="Seleção de Estado">
2992 <message name="message"> 2898 <message name="message">
@@ -3001,7 +2907,6 @@ Nota: Isto limpará o cache.
3001 <option name="Cancel"> 2907 <option name="Cancel">
3002 Cancelar 2908 Cancelar
3003 </option> 2909 </option>
3004
3005 </alert> 2910 </alert>
3006 <alert name="EstateManagerAdd" title="Seleção de Estado"> 2911 <alert name="EstateManagerAdd" title="Seleção de Estado">
3007 <message name="message"> 2912 <message name="message">
@@ -3016,7 +2921,6 @@ Nota: Isto limpará o cache.
3016 <option name="Cancel"> 2921 <option name="Cancel">
3017 Cancelar 2922 Cancelar
3018 </option> 2923 </option>
3019
3020 </alert> 2924 </alert>
3021 <alert name="EstateManagerRemove" title="Seleção de Estado"> 2925 <alert name="EstateManagerRemove" title="Seleção de Estado">
3022 <message name="message"> 2926 <message name="message">
@@ -3031,7 +2935,6 @@ Nota: Isto limpará o cache.
3031 <option name="Cancel"> 2935 <option name="Cancel">
3032 Cancelar 2936 Cancelar
3033 </option> 2937 </option>
3034
3035 </alert> 2938 </alert>
3036 <alert name="EstateCovenantChange" title="Seleção de Estado"> 2939 <alert name="EstateCovenantChange" title="Seleção de Estado">
3037 <message name="message"> 2940 <message name="message">
@@ -3046,10 +2949,6 @@ Nota: Isto limpará o cache.
3046 <option name="Cancel"> 2949 <option name="Cancel">
3047 Cancelar 2950 Cancelar
3048 </option> 2951 </option>
3049
3050
3051
3052s
3053 </alert> 2952 </alert>
3054 <alert name="EstateKickUser" title="Confirmar Kick"> 2953 <alert name="EstateKickUser" title="Confirmar Kick">
3055 <message name="message"> 2954 <message name="message">
@@ -3061,7 +2960,6 @@ s
3061 <option name="Cancel"> 2960 <option name="Cancel">
3062 Cancelar 2961 Cancelar
3063 </option> 2962 </option>
3064
3065 </alert> 2963 </alert>
3066 <alert name="EstateChangeCovenant"> 2964 <alert name="EstateChangeCovenant">
3067 <message name="message"> 2965 <message name="message">
@@ -3073,7 +2971,6 @@ s
3073 <option name="Cancel"> 2971 <option name="Cancel">
3074 Cancelar 2972 Cancelar
3075 </option> 2973 </option>
3076
3077 </alert> 2974 </alert>
3078 <alert name="ProblemImportingEstateCovenant"> 2975 <alert name="ProblemImportingEstateCovenant">
3079 <message name="message"> 2976 <message name="message">
@@ -3082,7 +2979,16 @@ s
3082 <option name="OK"> 2979 <option name="OK">
3083 OK 2980 OK
3084 </option> 2981 </option>
3085 2982 </alert>
2983 <alert name="ProblemAddingEstateManager">
2984 <message name="message">
2985 Problemas em adicionar um novo gestor do terreno. Uma ou mais propriedades podem ter uma lista completa de gerenciamento.
2986 </message>
2987 </alert>
2988 <alert name="ProblemAddingEstateGeneric">
2989 <message name="message">
2990 Problemas em adicionar esse terreno à lista. Um ou mais terrenos podem ter a lista completa.
2991 </message>
3086 </alert> 2992 </alert>
3087 <alert name="UnableToLoadNotecard"> 2993 <alert name="UnableToLoadNotecard">
3088 <message name="message"> 2994 <message name="message">
@@ -3091,7 +2997,6 @@ s
3091 <option name="OK"> 2997 <option name="OK">
3092 OK 2998 OK
3093 </option> 2999 </option>
3094
3095 </alert> 3000 </alert>
3096 <alert name="NotAllowedToViewNotecard"> 3001 <alert name="NotAllowedToViewNotecard">
3097 <message name="message"> 3002 <message name="message">
@@ -3100,7 +3005,6 @@ s
3100 <option name="OK"> 3005 <option name="OK">
3101 OK 3006 OK
3102 </option> 3007 </option>
3103
3104 </alert> 3008 </alert>
3105 <alert name="MissingNotecardAssetID"> 3009 <alert name="MissingNotecardAssetID">
3106 <message name="message"> 3010 <message name="message">
@@ -3109,11 +3013,12 @@ s
3109 <option name="OK"> 3013 <option name="OK">
3110 OK 3014 OK
3111 </option> 3015 </option>
3112
3113 </alert> 3016 </alert>
3114 <alert name="PublishClassified"> 3017 <alert name="PublishClassified">
3115 <message name="message"> 3018 <message name="message">
3116 Lembre-se: A taxa dos Classificados não são devolvidas. Publicar esse classificado agora por L$[AMOUNT]? 3019 Lembre-se: Taxas de Anúncios de Classificados não são reembolsáveis.
3020
3021Publicar este classificado agora por L$ [AMOUNT]?
3117 </message> 3022 </message>
3118 <option name="Publish"> 3023 <option name="Publish">
3119 Publicar 3024 Publicar
@@ -3121,7 +3026,34 @@ s
3121 <option name="Cancel"> 3026 <option name="Cancel">
3122 Cancelar 3027 Cancelar
3123 </option> 3028 </option>
3124 3029 </alert>
3030 <alert name="SetClassifiedMature">
3031 <message name="message">
3032 Este classificado possui conteúdo adulto?
3033 </message>
3034 <option name="Mature">
3035 Sim
3036 </option>
3037 <option name="Not Mature">
3038 Não
3039 </option>
3040 <option name="Cancel">
3041 Cancelar
3042 </option>
3043 </alert>
3044 <alert name="SetGroupMature">
3045 <message name="message">
3046 Este Grupo possui conteúdo adulto?
3047 </message>
3048 <option name="Mature">
3049 Sim
3050 </option>
3051 <option name="Not Mature">
3052 Não
3053 </option>
3054 <option name="Cancel">
3055 Cancelar
3056 </option>
3125 </alert> 3057 </alert>
3126 <alert name="ConfirmRestart" title="Confirmar restart"> 3058 <alert name="ConfirmRestart" title="Confirmar restart">
3127 <message name="message"> 3059 <message name="message">
@@ -3133,7 +3065,6 @@ s
3133 <option name="Cancel"> 3065 <option name="Cancel">
3134 Cancelar 3066 Cancelar
3135 </option> 3067 </option>
3136
3137 </alert> 3068 </alert>
3138 <alert name="MessageRegion" title="Mensagem para todos desta Região"> 3069 <alert name="MessageRegion" title="Mensagem para todos desta Região">
3139 <message name="message"> 3070 <message name="message">
@@ -3148,7 +3079,9 @@ s
3148 </alert> 3079 </alert>
3149 <alert name="HelpRegionBlockTerraform" title="Bloquear Terraform"> 3080 <alert name="HelpRegionBlockTerraform" title="Bloquear Terraform">
3150 <message name="message"> 3081 <message name="message">
3151 Se esta caixa estiver marcada, os proprietários do terreno não poderão modelá-lo independente das opções de &apos;Editar Terreno&apos; por lote. Padrão: desligado. 3082 Se esta opção for assinalada, donos de Terrenos não serão capazes de terraformar independentemente da configuração &apos;Editar Terreno&apos; de suas terras por parcela.
3083
3084Padrão: desligado
3152 </message> 3085 </message>
3153 </alert> 3086 </alert>
3154 <alert name="HelpRegionBlockFly" title="Bloquear Vôo"> 3087 <alert name="HelpRegionBlockFly" title="Bloquear Vôo">
@@ -3165,11 +3098,15 @@ s
3165 <message name="message"> 3098 <message name="message">
3166 Define o número máximo de residentes permitidos nessa região. Lembre-se que quanto mais residentes existir em sua região, pior pode ser a performance. Padrão: 30 3099 Define o número máximo de residentes permitidos nessa região. Lembre-se que quanto mais residentes existir em sua região, pior pode ser a performance. Padrão: 30
3167 </message> 3100 </message>
3168
3169 </alert> 3101 </alert>
3170 <alert name="HelpRegionObjectBonus" title="Objeto Bonus"> 3102 <alert name="HelpRegionObjectBonus" title="Objeto Bonus">
3171 <message name="message"> 3103 <message name="message">
3172 O Bônus de Objeto é um multiplicador de primitivas permitidas em qualquer lote. São permitidos valores entre 1 e 10. Definido como &apos;1&apos; a cada 512m2;, seriam permitidos 117 objetos; como &apos;2&apos; a cada 512m2;, seriam permitidos 234; e assim sucessivamente. O número máximo de objetos permitidos por região é 15.000 não importando qual o valor definido para o Bônus de Objeto. Uma vez colocado esse valor, ele não pode ser diminuído até você ter certeza de que a mudança não forçará o retorno ou a exclusão de objetos atuais no lote. Padrão: 1.0 3104 O Bônus de objetos é um multiplicador para primitivas permitidas em qualquer parcela. O intervalo permitido é de 1 a 10.
3105Se fiixada em &apos;1 &apos;, 512m2 de cada parcela permite 117 objetos.
3106Fixado em &apos;2 &apos;, 512m2 cada parcela permite 234, ou o dobro, e assim por diante.
3107O número máximo de objetos permitidos por região permanece 15000 não importa qual seja o Bônus de objeto. Uma vez estabelecido, esteja ciente de que a redução do Bônus de objeto pode retornar objetos ou apagá-los.
3108
3109Padrão: 1,0
3173 </message> 3110 </message>
3174 </alert> 3111 </alert>
3175 <alert name="HelpRegionMaturity" title="Adulto"> 3112 <alert name="HelpRegionMaturity" title="Adulto">
@@ -3187,9 +3124,16 @@ s
3187 Configura se os lotes que não pertencem ao proprietário do Estado podem ser mesclados ou subdivididos. Se esta opção estiver desmarcada: * Apenas os donos ou gerenciadores de Estado podem mesclar ou dividir lotes; *Eles podem mesclar ou subdividir lotes pertencentes ao dono ou para o grupo onde eles tem os poderes apropriados. Se esta opção estiver marcada: * Todos os donos de lotes podem unir ou subdividir os lotes que eles possuem. *Para lotes pertencentes a grupos, aqueles com os poderes apropriados podem unir ou subdividir lotes. Padrão: Marcado. 3124 Configura se os lotes que não pertencem ao proprietário do Estado podem ser mesclados ou subdivididos. Se esta opção estiver desmarcada: * Apenas os donos ou gerenciadores de Estado podem mesclar ou dividir lotes; *Eles podem mesclar ou subdividir lotes pertencentes ao dono ou para o grupo onde eles tem os poderes apropriados. Se esta opção estiver marcada: * Todos os donos de lotes podem unir ou subdividir os lotes que eles possuem. *Para lotes pertencentes a grupos, aqueles com os poderes apropriados podem unir ou subdividir lotes. Padrão: Marcado.
3188 </message> 3125 </message>
3189 </alert> 3126 </alert>
3127 <alert name="HelpRegionSearch" title="Não Mostrar na Pesquisa">
3128 <message name="message">
3129 Ao marcar esta caixa irá bloquear a parcela listando os seus proprietários a partir de pesquisa em parcelas
3130Padrão: off
3131 </message>
3132 </alert>
3190 <alert name="RegionMaturityChange" title="Modificar para adulto"> 3133 <alert name="RegionMaturityChange" title="Modificar para adulto">
3191 <message name="message"> 3134 <message name="message">
3192 A avaliação de maturidade para esta região foi atualizada. O mapa-mundi, entretanto, levará aproximadamente 5 minutos para atualizar, pois o sistema apenas atualiza as informações de mapa periodicamente. 3135 A taxa de maturidade para esta região foi atualizada.
3136Pode levar algum tempo para que a mudança seja refletida no mapa.
3193 </message> 3137 </message>
3194 </alert> 3138 </alert>
3195 <alert name="HelpRegionLandResell" title="Revender Terreno"> 3139 <alert name="HelpRegionLandResell" title="Revender Terreno">
@@ -3209,7 +3153,16 @@ s
3209 </alert> 3153 </alert>
3210 <alert name="HelpRegionDisableCollisions" title="Desabilitar Colisões"> 3154 <alert name="HelpRegionDisableCollisions" title="Desabilitar Colisões">
3211 <message name="message"> 3155 <message name="message">
3212 Quando a performance de simulação está ruim, objetos Físicos podem ser os culpados. Abra a Barra de Estatísticas (Ctrl-Shift-1). Olhe no Simulador de Física FPS. Se estiver abaixo de 45, então abra o painel &apos;Tempo&apos; localizado na parte de baixo da Barra de Estatísticas. Se o Tempo de Simulação (Física) for igual ou maior a 20 ms, clique no botão &apos;Get Top Colliders&apos;. Você poderá ver o nome e localização de objetos físicos que podem estar causando a baixa performance. Marcar a caixa de opção &apos;Desabilitar Colisões&apos; e então pressionar o botão &apos;Aplicar&apos; irá desabilitar temporariamente colisões objeto-objeto. Você poderá precisar fazer isso para ir ao local de um &apos;top collider&apos;. Uma vez que você chegue ao local, investigue o objeto - ele está colidindo constantemente com outros objetos? Você pode contatar o proprietário do objeto ou apagar ou retornar o objeto. Desmarque a cauxa de opção &apos;Desabilitar Colisões&apos; e então clique em &apos;Aplicar&apos; para reativar colisões na terreno. Default: off 3156 Quando a performance do simulador é pobre, os objetos físicos podem reclamar.
3157
3158Abra a Barra de Estatísticas (Ctrl-Shift-1).
3159Olhe a taxa de quadros por segundos (FPS) dos objetos físicos.
3160Se ela estiver abaixo de 45, abra o painel de Tempo, localizado na parte inferior da Barra de Estatísticas. Se o Tempo (Físicos) do Simulador mostrar 20 ms ou mais, clique o botão &apos;Pegue os Maiores Colidentes&apos;. Será fornecido a você o nome e a localidade dos objetos físicos que podem estar causando uma performance pobre.
3161
3162Ativando a caixa Desabilitar Colisões e então pressionando o botão Aplicar, as colisões objeto-objeto serão temporariamente desabilitadas. Você pode precisar fazer isso para que possa viajar até a localidade onde observou um &apos;colidente-mor&apos;. Uma vez tendo chegado à localidade, investigue o objeto – ele está constantemente colidindo com outros objetos? Você pode desejar contatar o dono do objeto ou deletar ou retornar o objeto.
3163Desative a caixa &apos;Desabilitar Colisões&apos; e então use &apos;Aplicar&apos; para reativar as colisões na região.
3164
3165Padrão: off
3213 </message> 3166 </message>
3214 </alert> 3167 </alert>
3215 <alert name="HelpRegionDisablePhysics" title="Desabilitar Física"> 3168 <alert name="HelpRegionDisablePhysics" title="Desabilitar Física">
@@ -3289,7 +3242,9 @@ s
3289 </alert> 3242 </alert>
3290 <alert name="HelpEstateExternallyVisible" title="Acesso público"> 3243 <alert name="HelpEstateExternallyVisible" title="Acesso público">
3291 <message name="message"> 3244 <message name="message">
3292 Indica se os residentes que estão em outras regiões podem entrar nesta região sem estar na lista de permissões. Default: permitido 3245 Esta caixa de verificação define se os Residentes que estão em outras propriedades podem entrar nesta, sem estar em uma lista de acesso.
3246
3247Padrão: on
3293 </message> 3248 </message>
3294 </alert> 3249 </alert>
3295 <alert name="HelpEstateAllowDirectTeleport" title="Teleporte direto"> 3250 <alert name="HelpEstateAllowDirectTeleport" title="Teleporte direto">
@@ -3299,12 +3254,20 @@ s
3299 </alert> 3254 </alert>
3300 <alert name="HelpEstateAllowResident" title="Permitir acesso"> 3255 <alert name="HelpEstateAllowResident" title="Permitir acesso">
3301 <message name="message"> 3256 <message name="message">
3302 Se qualquer residente for listado aqui, o acesso à região será limitado aos residentes nesta lista e grupos na lista abaixo. (Se a região for visível da mainland, o acesso não pode ser limitado a uma lista de residentes ou grupos, e estes controles não são disponíveis. Somente a lista de &apos;acesso negado&apos; será utilizada.) 3257 Acesso a esta propriedade estará limitado aos Residentes listados aqui e em quaisquer grupos abaixo.
3258Esta definição está disponível apenas quando o Acesso Público estiver não assinalado.
3303 </message> 3259 </message>
3304 </alert> 3260 </alert>
3305 <alert name="HelpEstateAllowGroup" title="Permitir acesso de grupo"> 3261 <alert name="HelpEstateAllowGroup" title="Permitir acesso de grupo">
3306 <message name="message"> 3262 <message name="message">
3307 Se qualquer grupo for listado aqui, o acesso à região será limitado aos grupos nesta lista e residentes especificamente permitidos acima. (Se a região for visível da mainland, o acesso não pode ser limitado a uma lista de residentes ou grupos, e estes controles não são disponíveis. Somente a lista de &apos;acesso negado&apos; será utilizada.) 3263 Acesso a esta propriedade estará limitada aos grupos listados aqui e a quaisquer Residentes acima.
3264Esta definição está disponível apenas quando o Acesso Público estiver não assinalado.
3265 </message>
3266 </alert>
3267 <alert name="HelpEstateAbuseEmailAddress" title="Endereço de Email do Abuso">
3268 <message name="message">
3269 Configurar isso para um endereço de email válido irá causar relato de abuso sobre este terreno a ser enviada para esse endereço.
3270Defini-lo em branco fará com que sejam enviados relatórios de abuso apenas a Linden Lab.
3308 </message> 3271 </message>
3309 </alert> 3272 </alert>
3310 <alert name="HelpEstateBanResident" title="Negar acesso"> 3273 <alert name="HelpEstateBanResident" title="Negar acesso">
@@ -3312,6 +3275,19 @@ s
3312 Residentes desta lista estão proibidos de acessar a sua região, independentemente das permissões e grupos setados acima. Adicionar um residente a esta lista irá removê-lo da lista de permissões. 3275 Residentes desta lista estão proibidos de acessar a sua região, independentemente das permissões e grupos setados acima. Adicionar um residente a esta lista irá removê-lo da lista de permissões.
3313 </message> 3276 </message>
3314 </alert> 3277 </alert>
3278 <alert name="HelpEstateVoiceChat" title="Permitir Conversa por Voz">
3279 <message name="message">
3280 Terrenos nesta propriedade têm permissão para ter seus canais de voz próprios, nos quais os residentes
3281podem ouvir e falar com os outros residentes próximos..
3282
3283Padrão: off
3284 </message>
3285 </alert>
3286 <alert name="VoiceVersionMismatch" title="Discordância de Versão de Voz">
3287 <message name="message">
3288 Esta versão do Second Life não é compatível com as características do Canal de Voz desta região. Para que a Conversa por Voz funcione corretamente, você precisará atualizar o Second Life.
3289 </message>
3290 </alert>
3315 <alert name="HelpEstateCovenant" title="Corretor do Estado"> 3291 <alert name="HelpEstateCovenant" title="Corretor do Estado">
3316 <message name="message"> 3292 <message name="message">
3317 Setar um corretor da região lhe permite vender lotes nesta região. Se um corretor não foi setado, você não pode vender terras. O cartão do seu corretor pode ficar vazio se você não desejar aplicar quaisquer regras ou avisar os compradores sobre qualquer coisa em relação ao lote antes da compra. Um corretor pode ser usado para comunicar regras, orientações, informações culturais ou simplesmente suas expectativas quanto ao futuro comprador. Isto pode incluir zoneamento, regulamentos para construções, opções de pagamento ou qualquer outra informação que você julgar importante que o novo proprietário veja e concorde antes da compra. O comprador precisa concordar com o corretor marcando a check box antes de concluir a compra. Corretores são sempre visíveis na janela About Land para todos os lotes que forem setados. 3293 Setar um corretor da região lhe permite vender lotes nesta região. Se um corretor não foi setado, você não pode vender terras. O cartão do seu corretor pode ficar vazio se você não desejar aplicar quaisquer regras ou avisar os compradores sobre qualquer coisa em relação ao lote antes da compra. Um corretor pode ser usado para comunicar regras, orientações, informações culturais ou simplesmente suas expectativas quanto ao futuro comprador. Isto pode incluir zoneamento, regulamentos para construções, opções de pagamento ou qualquer outra informação que você julgar importante que o novo proprietário veja e concorde antes da compra. O comprador precisa concordar com o corretor marcando a check box antes de concluir a compra. Corretores são sempre visíveis na janela About Land para todos os lotes que forem setados.
@@ -3415,7 +3391,10 @@ s
3415 </alert> 3391 </alert>
3416 <alert name="ConfirmPurchase"> 3392 <alert name="ConfirmPurchase">
3417 <message name="message"> 3393 <message name="message">
3418 Esta transação irá: [ACTION] Tem certeza de que deseja prosseguir com esta compra? 3394 Esta transação fará:
3395[ACTION]
3396
3397Você tem certeza de que deseja prosseguir com esta compra?
3419 </message> 3398 </message>
3420 <option name="Confirm"> 3399 <option name="Confirm">
3421 Confirmar 3400 Confirmar
@@ -3426,7 +3405,11 @@ s
3426 </alert> 3405 </alert>
3427 <alert name="ConfirmPurchasePassword"> 3406 <alert name="ConfirmPurchasePassword">
3428 <message name="message"> 3407 <message name="message">
3429 Esta transação irá: [ACTION] Tem certeza de que deseja prosseguir com esta compra? Por favor, digite sua senha e clique Confirmar. 3408 Esta transação fará:
3409[ACTION]
3410
3411Você tem certeza de que deseja prosseguir com esta compra?
3412Por favor, re-insira sua senha e clique OK.
3430 </message> 3413 </message>
3431 <option name="ConfirmPurchase"> 3414 <option name="ConfirmPurchase">
3432 Confirmar Compra 3415 Confirmar Compra
@@ -3434,7 +3417,6 @@ s
3434 <option name="Cancel"> 3417 <option name="Cancel">
3435 Cancelar 3418 Cancelar
3436 </option> 3419 </option>
3437
3438 </alert> 3420 </alert>
3439 <alert name="SetPickLocation"> 3421 <alert name="SetPickLocation">
3440 <message name="message"> 3422 <message name="message">
@@ -3448,8 +3430,8 @@ s
3448 <message name="message"> 3430 <message name="message">
3449 Você selecionou itens &apos;no copy&apos; do inventário. Estes itens serão movidos para o seu inventário, não copiados. Mover os itens do inventário? 3431 Você selecionou itens &apos;no copy&apos; do inventário. Estes itens serão movidos para o seu inventário, não copiados. Mover os itens do inventário?
3450 </message> 3432 </message>
3451 <ignore> 3433 <ignore name="ignore">
3452 Ao mover itens no-copy do inventário 3434 Quando estiver movendo objetos não copiáveis para o inventário
3453 </ignore> 3435 </ignore>
3454 <option name="Move"> 3436 <option name="Move">
3455 Mover 3437 Mover
@@ -3460,10 +3442,13 @@ s
3460 </alert> 3442 </alert>
3461 <alert name="MoveInventoryFromScriptedObject"> 3443 <alert name="MoveInventoryFromScriptedObject">
3462 <message name="message"> 3444 <message name="message">
3463 Você selecionou itens &apos;no copy&apos; do inventário. Estes itens serão movidos para o seu inventário, não copiados. Como este objeto contém script, mover estes itens para o seu inventário pode causar mal funcionamento do script. Mover os itens do inventário? 3445 Você selecionou itens de inventário não copiáveis.
3446Estes itens serão movidos para seu inventário, não copiados. Pelo fato de o objeto ter scripts, mover estes itens ao inventário pode provocar um mal funcionamento do script.
3447
3448Mover para o inventário o(s) iten(s)?
3464 </message> 3449 </message>
3465 <ignore> 3450 <ignore name="ignore">
3466 Ao mover objetos no-copy com script do invnetário 3451 Quando movendo objetos com scripts não copiáveis ao inventário
3467 </ignore> 3452 </ignore>
3468 <option name="Move"> 3453 <option name="Move">
3469 Mover 3454 Mover
@@ -3476,8 +3461,8 @@ s
3476 <message name="message"> 3461 <message name="message">
3477 Aviso: A ação executada ao clicar o objeto Pay já foi setada, mas funcionará apenas se um script for adicionado com o evento money(). Isto se dá porque os residentes geralmente esperam que os objetos terão alguma reação quando o dinheiro é pago a eles. 3462 Aviso: A ação executada ao clicar o objeto Pay já foi setada, mas funcionará apenas se um script for adicionado com o evento money(). Isto se dá porque os residentes geralmente esperam que os objetos terão alguma reação quando o dinheiro é pago a eles.
3478 </message> 3463 </message>
3479 <ignore> 3464 <ignore name="ignore">
3480 Ao setar &apos;Pay&apos; em objetos sem eventos money() 3465 Quando Definindo &apos;Pagar&apos; objetos sem eventos money()
3481 </ignore> 3466 </ignore>
3482 </alert> 3467 </alert>
3483 <alert name="OpenObjectCannotCopy"> 3468 <alert name="OpenObjectCannotCopy">
@@ -3485,73 +3470,151 @@ s
3485 Não há itens neste objeto que você está autorizado a copiar. 3470 Não há itens neste objeto que você está autorizado a copiar.
3486 </message> 3471 </message>
3487 </alert> 3472 </alert>
3488 <alert name="LoadAccountTransactions"> 3473 <alert name="ClickOpenF1Help">
3489 <message name="message"> 3474 <message name="message">
3490 Ir para [URL] para ver detalhes da transação? 3475 Visitar o website de Suporte do Second Life?
3491 </message> 3476 </message>
3492 <ignore> 3477 <ignore name="ignore">
3493 Ao carregar a página de transações 3478 Quando visitando o website de Suporte do Second Life
3494 </ignore> 3479 </ignore>
3495 <option name="OK"> 3480 <option name="Gotopage">
3496 OK 3481 Ir
3482 </option>
3483 <option name="Cancel">
3484 Cancelar
3485 </option>
3486 </alert>
3487 <alert name="RetryFetchInventoryDescendents">
3488 <message name="message">
3489 O tempo de trazer o inventário do servidor expirou. Repetir?
3490 </message>
3491 <ignore name="ignore">
3492 Repetir trazer inventário descendente
3493 </ignore>
3494 <option name="Retry">
3495 Repetir
3497 </option> 3496 </option>
3498 <option name="Cancel"> 3497 <option name="Cancel">
3499 Cancelar 3498 Cancelar
3500 </option> 3499 </option>
3501 </alert> 3500 </alert>
3501 <alert name="ConfirmQuit">
3502 <message name="message">
3503 Deseja sair?
3504 </message>
3505 <ignore name="ignore">
3506 Quando Saindo do Second Life.
3507 </ignore>
3508 <option name="Quit">
3509 Sair
3510 </option>
3511 <option name="Continue">
3512 Continuar
3513 </option>
3514 </alert>
3502 <alert name="HelpReportAbuseEmailLL"> 3515 <alert name="HelpReportAbuseEmailLL">
3503 <message name="message"> 3516 <message name="message">
3504 Use esta ferramenta para reportar violações dos Termos de Serviço e Padrões da Comunidade. Veja: -http://secondlife.com/corporate/tos.php http://secondlife.com/corporate/cs.php - Todos os abusos reportados dos Termos de Serviço e Padrões da Comunidade são investigados e resolvidos. Você receberá um e-mail informando-lhe da resolução quando esta ocorrer. Você também pode ver a resolução do incidente no Police Blotter em:- http://secondlife.com/community/blotter.php 3517 Use esta ferramenta para reportar violações aos Termos de Serviço e aos Padrões da Comunidade. Veja:
3518
3519http://secondlife.com/corporate/tos.php
3520http://secondlife.com/corporate/cs.php
3521
3522Todos os abusos aos Termos de Serviço e aos Padrões da Comunidade reportados, são investigados e resolvidos. Você pode ver a resolução do incidente na Reportagem de Incidentes em:
3523
3524http://secondlife.com/support/incidentreport.php
3505 </message> 3525 </message>
3506 </alert> 3526 </alert>
3507 <alert name="HelpReportAbuseEmailEO"> 3527 <alert name="HelpReportAbuseEmailEO">
3508 <message name="message"> 3528 <message name="message">
3509 IMPORTANTE: Este report será enviado ao proprietário da região em que você está e não à Linden Lab. - Como prestador de serviço aos residentes e visitantes, o proprietário da região em que você está escolheu receber e resolver todos os reports originados nesta região. Linden Lab não investigará os reports que você postar deste local. O proprietário da região resolverá os reports baseados nas regras locais desta região como definido pelo corretor da região. (Veja os corretores no menu World e selecione About Land.) - A resolução deste report se aplica apenas a esta região; outras áreas do Second Life não serão afetadas pelo resultado deste report. Somente a Linden Lab pode restringir o acesso a todo o Second Life. 3529 IMPORTANTE: Esta reportagem irá para o dono da região em que você se encontra atualmente e não para a Linden Lab.
3530
3531Como um serviço aos residentes e visitantes, o dono da região em que você se encontra foi eleito para receber e resolver todas as reportagens originadas nesta região. A Linden Lab não irá investigar reportagens que você envia desta localidade.
3532
3533O dono da região resolverá as reportagens baseado nas regras locais desta região, como definido na Declaração da propriedade.
3534(Veja as declarações indo ao menu Mundo e selecionando Sobre a Terra.)
3535
3536A resolução desta reportagem se aplica apenas a esta região; o acesso de Residentes às outras áreas do Second Life não será afetado pelas decisões desta reportagem.
3537Apenas a Linden Lab pode restringir acesso a todo o Second Life.
3510 </message> 3538 </message>
3511 </alert> 3539 </alert>
3512 <alert name="HelpReportBug"> 3540 <alert name="HelpReportBug">
3513 <message name="message"> 3541 <message name="message">
3514 Use esta ferramenta *somente* para reportar ferramentas técnicas que não se comportam como descrito ou esperado. Por favor, forneça o máximo possível de detalhes. Você pode responder ao e-mail que você recebeu para adicionar mais detalhes ao seu report. Todos os bugs reportados são investigados e avaliados. Você não receberá nenhum e-mail de resposta. - Se você está encontrado dificuldades técnicas, contate o suporte em: http://secondlife.com/community/support.php - Nota: reports incompletos não serão investigados. 3542 Use esta ferramenta para reportar “apenas†características técnicas que não atuem como descrito ou esperado.
3543Por favor, forneça tantos detalhes quanto possível.
3544Você pode responder ao e-mail de resposta automática para adicionar mais detalhes à sua reportagem.
3545
3546Todas as reportagens de bugs são investigadas e avaliadas.
3547Nenhum e-mail de resposta será enviado.
3548
3549Se você estiver tendo uma dificuldade técnica, por favor contate o Suporte em:
3550
3551http://secondlife.com/community/support.php
3552
3553Nota: reportagens incompletas não serão investigadas
3515 </message> 3554 </message>
3516 </alert> 3555 </alert>
3517 <alert name="HelpReportAbuseSelectCategory"> 3556 <alert name="HelpReportAbuseSelectCategory">
3518 <message name="message"> 3557 <message name="message">
3519 Por favor, selecione uma categoria para este caso de abuso. Isto nos ajuda a processar os abusos reportados. 3558 Por favor, selecione uma categoria para a reportagem deste abuso. A seleção de uma categoria nos ajuda a arquivar e processar as reportagens de abuso.
3520 </message> 3559 </message>
3521 </alert> 3560 </alert>
3522 <alert name="HelpReportBugSelectCategory"> 3561 <alert name="HelpReportBugSelectCategory">
3523 <message name="message"> 3562 <message name="message">
3524 Por favor, selecione uma categoria para este bug. Isto nos ajuda a processar os bugs reportados. 3563 Por favor, selecione uma categoria para este bug.
3564A seleção de uma categoria nos ajuda a arquivar e processar as reportagens de bugs.
3525 </message> 3565 </message>
3526 </alert> 3566 </alert>
3527 <alert name="HelpReportAbuseAbuserNameEmpty"> 3567 <alert name="HelpReportAbuseAbuserNameEmpty">
3528 <message name="message"> 3568 <message name="message">
3529 Por favor, informe o nome do residente que cometeu o abuso. Um valor preciso nos ajuda a processar os abusos reportados. 3569 Por favor, entre com o nome do perturbador.
3570Entrando com um valor preciso, nos ajuda a arquivar e processar as reportagens de abuso.
3530 </message> 3571 </message>
3531 </alert> 3572 </alert>
3532 <alert name="HelpReportAbuseAbuserLocationEmpty"> 3573 <alert name="HelpReportAbuseAbuserLocationEmpty">
3533 <message name="message"> 3574 <message name="message">
3534 Por favor, informe o local onde o abuso aconteceu. Um valor preciso nos ajuda a processar os abusos reportados. 3575 Por favor, entre com a localidade aonde o abuso aconteceu.
3576Entrando com um valor preciso, nos ajuda a arquivar e processar as reportagens de abuso.
3535 </message> 3577 </message>
3536 </alert> 3578 </alert>
3537 <alert name="HelpReportAbuseSummaryEmpty"> 3579 <alert name="HelpReportAbuseSummaryEmpty">
3538 <message name="message"> 3580 <message name="message">
3539 Por favor informe um resumo do abuso acontecido. Um resumo preciso nos ajuda a processar os abusos reportados. 3581 Digite um resumo de como ocorreu o abuso.
3582Fazer um resumo detalhado nos ajuda a processar o arquivos e relatórios do abuso.
3540 </message> 3583 </message>
3541 </alert> 3584 </alert>
3542 <alert name="HelpReportBugSummaryEmpty"> 3585 <alert name="HelpReportBugSummaryEmpty">
3543 <message name="message"> 3586 <message name="message">
3544 Por favor, informe um resumo do bug. Um resumo preciso nos ajuda a processar os bugs reportados. 3587 Digite um resumo do bug. 
Realizar um resumo detalhado nos ajuda a processar os relatórios do bug.
3545 </message> 3588 </message>
3546 </alert> 3589 </alert>
3547 <alert name="HelpReportAbuseDetailsEmpty"> 3590 <alert name="HelpReportAbuseDetailsEmpty">
3548 <message name="message"> 3591 <message name="message">
3549 Por favor, informe uma descrição detalhada do abuso acontecido. Seja o mais específico que puder, incluindo nomes e detalhes do incidente que está reportando. Uma descrição precisa nos ajuda a processar abusos reportados. 3592 Digite uma descrição detalhada do abuso que ocorreu.
3593Seja tão específico quanto você puder, incluindo nomes e os detalhes do incidente que está denunciando.
3594Fazer uma descrição precisa nos ajuda a processar os arquivo e relatórios.
3550 </message> 3595 </message>
3551 </alert> 3596 </alert>
3552 <alert name="HelpReportBugDetailsEmpty"> 3597 <alert name="HelpReportBugDetailsEmpty">
3553 <message name="message"> 3598 <message name="message">
3554 Por favor, informe uma descrição detalhada do bug. Seja o mais específico que puder, incluindo passos para reproduzir o bug, se possível. Uma descrição precisa nos ajuda a processar bugs reportados. 3599 Digite uma descrição detalhada do bug.
3600Seja tão específico quanto você puder, incluindo as etapas para reproduzir o bug se possível.
3601Fazer uma descrição precisa nos ajuda a processar os arquivos e relatórios de bugs.
3602 </message>
3603 </alert>
3604 <alert name="HelpReportAbuseContainsCopyright">
3605 <message name="message">
3606 Caro Residente,
3607
3608Você parece estar relatando violação de propriedade intelectual. Por favor, certifique-se de que está relatando corretamente:
3609
3610(1) O Processo de abuso. Você pode apresentar um relatório de abuso se você acredita que um Residente está infringindo o sistema de permissões do Second Life, por exemplo, utilizando ferramentas CopyBot para copiar ou similar, para violar os direitos de propriedade intelectual. A Equipe de Abuso investigará os problemas de comportamento adequado a ação disciplinar, que viola o Estatuto da Comunidade Second Life ou os Termos de Serviço. No entanto, a mesma não controla e não irá responder aos pedidos para remover o conteúdo do mundo Second Life.
3611
3612(2) O processo de remoção de conteúdo ou DMCA. Para solicitar a remoção de conteúdo do Second Life, você deve enviar uma notificação válida de infração, conforme previsto em nossa Política de DMCA em http://secondlife.com/corporate/dmca.php.
3613
3614Se você ainda deseja prosseguir com o processo de abuso, por favor, feche esta janela e termine de enviar seu relatório. Pode ser necessário selecionar a categoria específica &apos;CopyBot Infração de Permissões&apos;.
3615
3616Obrigado,
3617Linden Lab
3555 </message> 3618 </message>
3556 </alert> 3619 </alert>
3557 <alert name="FailedRequirementsCheck"> 3620 <alert name="FailedRequirementsCheck">
@@ -3563,8 +3626,8 @@ s
3563 <message name="message"> 3626 <message name="message">
3564 Já existe um objeto neste ponto do seu corpo. Você deseja substituí-lo pelo objeto selecionado? 3627 Já existe um objeto neste ponto do seu corpo. Você deseja substituí-lo pelo objeto selecionado?
3565 </message> 3628 </message>
3566 <ignore> 3629 <ignore name="ignore">
3567 Ao substituir o objeto existente 3630 Ao substituir os anexos existentes
3568 </ignore> 3631 </ignore>
3569 <option ignore="Replace Automatically" name="Yes"> 3632 <option ignore="Replace Automatically" name="Yes">
3570 Sim 3633 Sim
@@ -3577,8 +3640,8 @@ s
3577 <message name="message"> 3640 <message name="message">
3578 Você está no modo Ocupado, o que significa que você não receberá quaisquer itens oferecidos por troca neste pagamento. Você gostaria de deixar o modo Ocupado antes de completar esta transação? 3641 Você está no modo Ocupado, o que significa que você não receberá quaisquer itens oferecidos por troca neste pagamento. Você gostaria de deixar o modo Ocupado antes de completar esta transação?
3579 </message> 3642 </message>
3580 <ignore> 3643 <ignore name="ignore">
3581 Ao pagar uma pessoa ou objeto em modo Ocupado 3644 Ao pagar uma pessoa ou objeto no estado ocupado
3582 </ignore> 3645 </ignore>
3583 <option ignore="Always leave Busy Mode" name="Yes"> 3646 <option ignore="Always leave Busy Mode" name="Yes">
3584 Sim 3647 Sim
@@ -3591,8 +3654,8 @@ s
3591 <message name="message"> 3654 <message name="message">
3592 Tem certeza de que deseja remover permanentemente o conteúdo da lixeira de seu inventório? 3655 Tem certeza de que deseja remover permanentemente o conteúdo da lixeira de seu inventório?
3593 </message> 3656 </message>
3594 <ignore> 3657 <ignore name="ignore">
3595 Ao esvaziar a lixeira de seu inventório 3658 Ao esvaziar a pasta da lixeira no seu inventário
3596 </ignore> 3659 </ignore>
3597 <option name="Yes"> 3660 <option name="Yes">
3598 Sim 3661 Sim
@@ -3603,8 +3666,7 @@ s
3603 </alert> 3666 </alert>
3604 <alert name="ConfirmClearBrowserCache"> 3667 <alert name="ConfirmClearBrowserCache">
3605 <message name="message"> 3668 <message name="message">
3606 Você tem certesa que deseja limpar 3669 Você tem certeza que deseja limpar o cache do seu navegador?
3607o cache do browser?
3608 </message> 3670 </message>
3609 <option name="Yes"> 3671 <option name="Yes">
3610 Sim 3672 Sim
@@ -3615,8 +3677,18 @@ o cache do browser?
3615 </alert> 3677 </alert>
3616 <alert name="ConfirmClearCookies"> 3678 <alert name="ConfirmClearCookies">
3617 <message name="message"> 3679 <message name="message">
3618 Você tem certesa que deseja limpar 3680 Você tem certeza de que deseja limpar os cookies?
3619os cookies? 3681 </message>
3682 <option name="Yes">
3683 Sim
3684 </option>
3685 <option name="No">
3686 Cancelar
3687 </option>
3688 </alert>
3689 <alert name="ConfirmClearMediaUrlList">
3690 <message name="message">
3691 Você tem certeza de que deseja limpar toda sua lista de URLs?
3620 </message> 3692 </message>
3621 <option name="Yes"> 3693 <option name="Yes">
3622 Sim 3694 Sim
@@ -3630,8 +3702,8 @@ os cookies?
3630 Deseja realmente remover permanentemente 3702 Deseja realmente remover permanentemente
3631o conteúdo da pasta achados e perdidos? 3703o conteúdo da pasta achados e perdidos?
3632 </message> 3704 </message>
3633 <ignore> 3705 <ignore name="ignore">
3634 Quando remover permanentemente conteúdo da pasta achados e perdidos. 3706 Ao esvaziar pasta Achados e Perdidos do seu inventário
3635 </ignore> 3707 </ignore>
3636 <option name="Yes"> 3708 <option name="Yes">
3637 Sim 3709 Sim
@@ -3642,56 +3714,367 @@ o conteúdo da pasta achados e perdidos?
3642 </alert> 3714 </alert>
3643 <alert name="CopySLURL"> 3715 <alert name="CopySLURL">
3644 <message name="message"> 3716 <message name="message">
3645 A seguinte SLURL foi copiada para o seu clipboard: [SLURL] Cole-a numa página web para permitir que outros residentes a acessem facilmente ou teste-a colando na barra de endereços do seu browser. 3717 A seguinte SLURL foi copiada para o seu clipboard:
3718 [SLURL]
3719
3720Coloque-o em uma página web para dar aos outros o fácil acesso a esse local ou experimentar colá-lo na barra de endereços do seu navegador.
3646 </message> 3721 </message>
3647 <ignore> 3722 <ignore name="ignore">
3648 Ao copiar a SLURL para o seu clipboard 3723 Ao copiar a SURL para o seu clipboard
3649 </ignore> 3724 </ignore>
3650 </alert> 3725 </alert>
3651 <alert name="ClickPartnerHelpAvatar"> 3726 <alert name="GraphicsPreferencesHelp">
3652 <message name="message"> 3727 <message name="message">
3653 You can propose to another Resident or dissolve an existing partnership through the [SECOND_LIFE] website. 3728 Este painel controla o tamanho da janela, resolução e a qualidade dos gráficos do Client. O Preferências &gt; Interface Gráfica permite escolher entre quatro níveis gráficos: Baixo, Médio, Alto e Ultra. Você também pode personalizar suas configurações de gráficos selecionando a opção Custom e manipulando as seguintes definições:
3729
3730Sombreamento: Ativar ou desativar vários tipos de pixel sombreador.
3731
3732Detalhes de Reflexão: Define os tipos de objetos que a água pode refletir.
3733
3734Renderização de Avatar: Define opções que afetam a forma como o client renderizará os avatares.
3735
3736Alcance: Afeta a distância do seu ponto de vista que os objetos serão renderizados na cena.
3737
3738Número máximo de partículas: Define o número máximo de partículas que será capaz de ver na sua tela de uma só vez.
3739
3740Qualidade de Post Process: Define a resolução com a qual o brilho será renderizado.
3654 3741
3655Go to the Second Life web site for more information on partnering? 3742Detalhes de malha: Ajusta a quantidade de detalhes ou número de triângulos utilizados na renderização de certos objetos. Um valor mais alto leva mais tempo para renderizar, mas torna esses objetos mais detalhados.
3743
3744Detalhe de Iluminação: Seleciona os tipos de luzes que você gostaria de renderizar.
3745
3746Detalhe de Terreno: Ajusta a quantidade de detalhes que você gostaria de ver para a textura do terreno.
3656 </message> 3747 </message>
3657 <option name="GotoPage"> 3748 </alert>
3658 Go to Page 3749 <alert name="WLSavePresetAlert">
3750 <message name="message">
3751 Você deseja substituir a apresentação salva?
3752 </message>
3753 <option name="Save">
3754 Sim
3755 </option>
3756 <option name="Cancel">
3757 Não
3758 </option>
3759 </alert>
3760 <alert name="WLDeletePresetAlert">
3761 <message name="message">
3762 Você deseja apagar [SKY]?
3763 </message>
3764 <option name="Delete">
3765 Sim
3766 </option>
3767 <option name="Cancel">
3768 Não
3769 </option>
3770 </alert>
3771 <alert name="WLNoEditDefault">
3772 <message name="message">
3773 Você não pode editar ou excluir um padrão predefinido.
3774 </message>
3775 </alert>
3776 <alert name="WLMissingSky">
3777 <message name="message">
3778 Este arquivo de ciclo de dia possui um arquivo de céu faltando: [SKY].
3779 </message>
3780 </alert>
3781 <alert name="PPSaveEffectAlert">
3782 <message name="message">
3783 Efeito PostProcess existe. Você deseja substituí-lo?
3784 </message>
3785 <option name="Save">
3786 Sim
3787 </option>
3788 <option name="Cancel">
3789 Não
3790 </option>
3791 </alert>
3792 <alert name="HelpEditSky">
3793 <message name="message">
3794 Editar os controles graduais do WindLight para configurar e salvar um conjunto de céus.
3795 </message>
3796 </alert>
3797 <alert name="HelpEditDayCycle">
3798 <message name="message">
3799 Definir qual céu colocar durante todo o dia.
3800 </message>
3801 </alert>
3802 <alert name="EnvSettingsHelpButton">
3803 <message name="message">
3804 Essas configurações ajustam a forma como o ambiente parece localmente no seu computador. Sua placa de vídeo precisa suportar o sombreador atmosférico, a fim de ter acesso a todas as definições.
3805
3806Ajuste o controle gradual &quot;Hora do Dia&quot; para alterar o dia da fase localmente sobre o espectador.
3807
3808Ajuste o controle gradual de &quot;Cobertura das nuvens&quot; para controlar quantas nuvens cobrem o céu.
3809
3810Pegue uma cor da paleta de cores do &quot;Cord a Ãgua&quot; para mudar a cor desta.
3811
3812Ajuste o controle gradual de &quot;Névoa de Ãgua&quot; para controlar o quão densa é a névoa dentro da água.
3813
3814Clique &quot;Usar Horário do Terreno&quot; para redefinir a hora do dia para a região para o horário atual do dia e permanecer ligados a ela.
3815
3816Clique &quot;Céu Avançado &quot; para abrir um editor com configurações mais avançadas para o céu.
3817
3818Clique &quot;Ãgua Avançada &quot; para abrir um editor com configurações mais avançadas para a água.
3819 </message>
3820 </alert>
3821 <alert name="HelpDayCycle">
3822 <message name="message">
3823 Este editor de dia dá a você o controle sobre o ciclo de dia/noite do Second Life. Este é o ciclo usado pelo editor básico de clima do controle gradual da hora do dia.
3824
3825O editor do ciclo de dia trabalha configurado por keyframes (quadros-chave). Estes são pontos (representados pelos ícones cinza no gráfico de horário) que possuem o padrão de céu associado a eles. Conforme o dia passa, o céu de Windlight &quot; anima &quot; a intersecção entre esses keyframes (quadros-chave).
3826
3827A seta amarela acima da linha de tempo representa a sua vista atua, baseada no horário do dia. Clique e arraste para ver como o seu dia será animado. Você pode adicionar ou deletar as keyframes (quadro-chave) pressionando os botões Adicionar Chave e Deletar chave ao lado direito da linha de tempo.
3828
3829Você pode configurar a posição do tempo de uma keyframe (quadro-chave) arrastando-o pela linha do tempo, ou configurando manualmente no quadro de configurações do seu keyframe (quadro-chave), será possível a você associar o seu keyframe a este respectivo padrão WindLight.
3830
3831A duração do ciclo determina a duração geral do &quot;dia&quot;. Configurá-la para um valor baixo (por exmplo, 2 min.) quer dizer que a linha do tempo de 24 horas será animada completamente em apenas dois minutos reais! Assim que estiveres satisfeito com a linha do tempo e o ciclo do keyframe (quadro chave), use os botões Play e Stop para uma prévia de como ficará o resultado. Lembre-se você também pode utilizar a seta amarela indicadora do tempo acima da linha do tempo para ver o ciclo animado interativamente. Usando o botão do tempo do terreno irá sincronizar a duração do seu dia ao ciclo diário do terreno.
3832
3833Assim que estiver satisfeito com o seu ciclo diário, pode salvá-lo ou carregar no botão de teste de dia . Note que agora nós permitimos apenas um Ciclo de dia.
3834 </message>
3835 </alert>
3836 <alert name="HelpBlueHorizon">
3837 <message name="message">
3838 Use os cursores Vermelho/Verde/Azul ( Red/Green/Blue -RGB) para ajustar as cores do céu. Você também pode usar o controle de Intensidade (I) para mover os três controles RGB simultaneamente.
3839 </message>
3840 </alert>
3841 <alert name="HelpHazeHorizon">
3842 <message name="message">
3843 Haze Horizon é um dos parâmetros mais úteis para ajuste global de exposição de luz na cena. Ele é eficaz para simular diversas configurações de exposição, tais como configurações para super exposição do sol e escuros halos de Iris.
3844 </message>
3845 </alert>
3846 <alert name="HelpBlueDensity">
3847 <message name="message">
3848 A densidade global azul afeta a saturação da cor do céu e nevoeiro. Se você mover a o controle gradual de intensidade (I) para a direita, as cores vão se tornar mais brilhantes e vibrantes. Se você movê-lo totalmente para a esquerda, as cores perdem intensidade e cor, eventualmente chegando a preto e branco. Se pretende afinar o equilíbrio de cor do céu, você pode controlar os diversos elementos da saturação, utilizando os controles graduais para vermelho / verde / azul (RGB).
3849 </message>
3850 </alert>
3851 <alert name="HelpHazeDensity">
3852 <message name="message">
3853 Densidade de Poeira controla o nível de fumaça, poeira cinza na atmosfera. Eficaz para simular cenas com altos níveis de poeira e poluentes. É também efetivo em simular névoa e nevoeiro.
3854 </message>
3855 </alert>
3856 <alert name="HelpDensityMult">
3857 <message name="message">
3858 O Multiplicador de Densidade pode ser usado para afetar a densidade atmosférica global. Com definições mais baixas, ele cria uma sensação de &quot;ar rarefeito&quot; e em definições mais altas, ele cria um efeito mais denso, mais esfumaçado.
3859 </message>
3860 </alert>
3861 <alert name="HelpDistanceMult">
3862 <message name="message">
3863 Ajusta como a distância no WindLight é percebida. Um valor zero efetivamente desativa a influência do WindLight sobre terrenos e objetos. Valores superiores a 1 simula os efeitos atmosféricos mais espessos a maiores distâncias.
3864 </message>
3865 </alert>
3866 <alert name="HelpMaxAltitude">
3867 <message name="message">
3868 Max Altitude ajusta os cálculos de performance de altitude do WindLight, quando computa sua iluminação atmosférica. Em períodos vespertinos do dia, é útil para ajustar a &quot;profundidade&quot; de como o pôr-do-sol aparece.
3869 </message>
3870 </alert>
3871 <alert name="HelpSunlightColor">
3872 <message name="message">
3873 Ajustar a cor e intensidade da luz direta na cena.
3874 </message>
3875 </alert>
3876 <alert name="HelpSunAmbient">
3877 <message name="message">
3878 Ajusta a cor e a intensidade da luz ambiente atmosférica na cena.
3879 </message>
3880 </alert>
3881 <alert name="HelpSunGlow">
3882 <message name="message">
3883 O controle gradual de Tamanho controla o do tamanho do sol.
3884O controle gradual de Foco controla o quanto o sol aparecerá desfocado no céu.
3885 </message>
3886 </alert>
3887 <alert name="HelpSceneGamma">
3888 <message name="message">
3889 Ajuste a tela da distribuição de luz e escuridão.
3890 </message>
3891 </alert>
3892 <alert name="HelpStarBrightness">
3893 <message name="message">
3894 Ajusta o brilho das estrelas no céu.
3895 </message>
3896 </alert>
3897 <alert name="HelpTimeOfDay">
3898 <message name="message">
3899 Controla a localização do sol no céu. Semelhante a elevação.
3900 </message>
3901 </alert>
3902 <alert name="HelpEastAngle">
3903 <message name="message">
3904 Controla a localização do sol no céu.
3905Similar ao azimute.
3906 </message>
3907 </alert>
3908 <alert name="HelpCloudColor">
3909 <message name="message">
3910 Edita as cores das nuvens, É normalmente recomendado manter o tom esbranquiçado, mas hey! Você pode se divertir se desejar.
3911 </message>
3912 </alert>
3913 <alert name="HelpCloudDetail">
3914 <message name="message">
3915 Controla os detalhes da camada de imagem superior na imagem de nuvem principal. X e Y controla sua posição. D (Densidade) controla o quão cheio ou estratificada as nuvens devem aparecer.
3916 </message>
3917 </alert>
3918 <alert name="HelpCloudDensity">
3919 <message name="message">
3920 Permite que você controle a posição das nuvens com os cursores X e Y e a densidade deles com o cursor D
3921 </message>
3922 </alert>
3923 <alert name="HelpCloudCoverage">
3924 <message name="message">
3925 Controla o quanto as nuvens cobrem o céu.
3926 </message>
3927 </alert>
3928 <alert name="HelpCloudScale">
3929 <message name="message">
3930 Controla o dimensionamento da imagem de nuvens na cúpula celeste.
3931 </message>
3932 </alert>
3933 <alert name="HelpCloudScrollX">
3934 <message name="message">
3935 Controla a velocidade das nuvens que se movem na direção X.
3936 </message>
3937 </alert>
3938 <alert name="HelpCloudScrollY">
3939 <message name="message">
3940 Controla a velocidade que as núvens se movem na direção Y.
3941 </message>
3942 </alert>
3943 <alert name="HelpClassicClouds">
3944 <message name="message">
3945 Marque esta check box para permitir a reprodução das nuvens clássicas mais velhas do Second Life, além das nuvens WindLight.
3946 </message>
3947 </alert>
3948 <alert name="HelpWaterFogColor">
3949 <message name="message">
3950 Escolhe a cor da neblina subaquática.
3951 </message>
3952 </alert>
3953 <alert name="HelpWaterFogDensity">
3954 <message name="message">
3955 Controla a densidade da neblina da água e a distância de visibilidade debaixo d&apos;água.
3956 </message>
3957 </alert>
3958 <alert name="HelpUnderWaterFogMod">
3959 <message name="message">
3960 Modifica o efeito do expoente de densidade de Neblina para controlar até onde pode ver quando o seu avatar está imerso.
3961 </message>
3962 </alert>
3963 <alert name="HelpWaterGlow">
3964 <message name="message">
3965 Controla o quanto a superfície da água deve brilhar.
3966 </message>
3967 </alert>
3968 <alert name="HelpWaterNormalScale">
3969 <message name="message">
3970 Controla o escalonamento das três marolas que compõem a água.
3971 </message>
3972 </alert>
3973 <alert name="HelpWaterFresnelScale">
3974 <message name="message">
3975 Controla o quanto de luz será refletido por ângulos diferentes.
3976 </message>
3977 </alert>
3978 <alert name="HelpWaterFresnelOffset">
3979 <message name="message">
3980 Controla o quanto da intensidade da luz é refletida.
3981 </message>
3982 </alert>
3983 <alert name="HelpWaterScaleAbove">
3984 <message name="message">
3985 Controla o quanto de luz será refratado olhando acima da superfície da água.
3986 </message>
3987 </alert>
3988 <alert name="HelpWaterScaleBelow">
3989 <message name="message">
3990 Controla o quanto de luz sera refratado visto debaixo da superfície da água.
3991 </message>
3992 </alert>
3993 <alert name="HelpWaterBlurMultiplier">
3994 <message name="message">
3995 Controla como ondas e reflexos são misturados.
3996 </message>
3997 </alert>
3998 <alert name="HelpWaterNormalMap">
3999 <message name="message">
4000 Controla o mapeamento normal em todos os níveis da água para determinar reflexões / refração.
4001 </message>
4002 </alert>
4003 <alert name="HelpWaterWave1">
4004 <message name="message">
4005 Controla como e a velocidade que a versão em escala maior do mapa move nas direções X e Y .
4006 </message>
4007 </alert>
4008 <alert name="HelpWaterWave2">
4009 <message name="message">
4010 Controla onde e a velocidade que o mapa em escala menor se move nas direções X e Y.
4011 </message>
4012 </alert>
4013 <alert name="NewSkyPreset">
4014 <message name="message">
4015 Me dê o nome para o novo céu.
4016 </message>
4017 <editline name="editline">
4018 Novo padrão
4019 </editline>
4020 <option name="OK">
4021 OK
3659 </option> 4022 </option>
3660 <option name="Cancel"> 4023 <option name="Cancel">
3661 Cancel 4024 Cancelar
3662 </option> 4025 </option>
3663 </alert> 4026 </alert>
3664 <alert name="IMSessionStartError"> 4027 <alert name="ExistsSkyPresetAlert">
4028 <message name="message">
4029 Este padrão já existe!
4030 </message>
4031 </alert>
4032 <alert name="NewWaterPreset">
3665 <message name="message"> 4033 <message name="message">
3666 Erro ao tentar um nova sessão MI com [RECIPIENT]. 4034 Dê o nome para o novo padrão de água.
3667 [REASON]
3668 </message> 4035 </message>
4036 <editline name="editline">
4037 Nova Apresentação
4038 </editline>
3669 <option name="OK"> 4039 <option name="OK">
3670 OK 4040 OK
3671 </option> 4041 </option>
4042 <option name="Cancel">
4043 Cancelar
4044 </option>
4045 </alert>
4046 <alert name="ExistsWaterPresetAlert">
4047 <message name="message">
4048 Este padrão já existe!
4049 </message>
3672 </alert> 4050 </alert>
3673 <alert name="IMSessionStartNotVerified"> 4051 <alert name="WaterNoEditDefault">
3674 <message name="message"> 4052 <message name="message">
3675 Erro ao tentar um nova sessão MI com [RECIPIENT]. 4053 Você não pode editar ou apagar um padrão predefinido.
3676 [REASON] 4054 </message>
4055 </alert>
4056 <alert name="ChatterBoxSessionStartError">
4057 <message name="message">
4058 Não foi possível iniciar uma nova sessão bate-papo com [RECIPIENT].
4059[REASON]
3677 </message> 4060 </message>
3678 <option name="OK"> 4061 <option name="OK">
3679 OK 4062 OK
3680 </option> 4063 </option>
3681 </alert> 4064 </alert>
3682 <alert name="IMSessionEventError"> 4065 <alert name="ChatterBoxSessionEventError">
3683 <message name="message"> 4066 <message name="message">
3684 Erro [EVENT] [RECIPIENT]. 4067 [EVENT]
3685 [REASON] 4068[REASON]
3686 </message> 4069 </message>
3687 <option name="OK"> 4070 <option name="OK">
3688 OK 4071 OK
3689 </option> 4072 </option>
3690 </alert> 4073 </alert>
3691 <alert name="ForceCloseIMSession"> 4074 <alert name="ForceCloseChatterBoxSession">
3692 <message name="messsage"> 4075 <message name="message">
3693 Sua sessão com [NAME] será fechada. 4076 Sua seção de bate-papo com [NAME] tem que fechar.
3694 [REASON] 4077[REASON]
3695 </message> 4078 </message>
3696 <option name="OK"> 4079 <option name="OK">
3697 OK 4080 OK
@@ -3699,8 +4082,66 @@ Go to the Second Life web site for more information on partnering?
3699 </alert> 4082 </alert>
3700 <alert name="Cannot_Purchase_an_Attachment"> 4083 <alert name="Cannot_Purchase_an_Attachment">
3701 <message name="message"> 4084 <message name="message">
3702 Os artigos não podem ser comprados 4085 Os itens não podem ser comprados enquanto for parte de um anexo.
3703 enquanto forem parte de um acessório. 4086 </message>
4087 </alert>
4088 <alert name="DebitPermissionDetails" title="Sobre o pedido de Permissão de Débito">
4089 <message name="message">
4090 Conceder esse pedido dá permissão ao script para tirar Linden dólares (L$) de sua conta. Para revogar esta permissão, o proprietário do objeto deve excluir o objeto ou resetar os scripts dele.
4091 </message>
4092 <option name="OK">
4093 OK
4094 </option>
4095 </alert>
4096 <alert name="AutoWearNewClothing">
4097 <message name="message">
4098 Você gostaria de vestir automaticamente o item de vestuário que você criar?
4099 </message>
4100 <ignore name="ignore">
4101 Automaticamente vestir novo vestuário
4102 </ignore>
4103 <option name="Yes">
4104 Sim
4105 </option>
4106 <option name="No">
4107 Não
4108 </option>
4109 </alert>
4110 <alert name="NotAgeVerified">
4111 <message name="message">
4112 Você precisa ter a idade verificada para acessar essa parcela. Gostaria de visitar o site do Second Life para verificação de idade?
4113
4114[_URL]
4115 </message>
4116 <ignore name="ignore">
4117 Alertar sobre a falta de verificação de idade
4118 </ignore>
4119 <option name="Yes">
4120 Sim
4121 </option>
4122 <option name="No">
4123 Não
4124 </option>
4125 </alert>
4126 <alert name="Cannot enter parcel: no payment info on file">
4127 <message name="message">
4128 Esta parcela exige que você tenha informações de pagamento no arquivo antes de poder acessá-la. Gostaria de visitar o site do Second Life para configurá-lo?
4129
4130[_URL]
4131 </message>
4132 <ignore name="ignore">
4133 Avisar sobre a falta de informação de pagamento.
4134 </ignore>
4135 <option name="Yes">
4136 Sim
4137 </option>
4138 <option name="No">
4139 Não
4140 </option>
4141 </alert>
4142 <alert name="MissingString">
4143 <message name="message">
4144 A sequência [STRING_NAME] está faltando do strings.xml
3704 </message> 4145 </message>
3705 </alert> 4146 </alert>
3706</alerts> 4147</alerts>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_about.xml b/linden/indra/newview/skins/default/xui/pt/floater_about.xml
index ec79aca..31626cc 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_about.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_about.xml
@@ -1,4 +1,6 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_about" title="Sobre o Second Life"> 2<floater name="floater_about" title="Sobre o Second Life">
3 3 <string name="you_are_at">
4 Você está em [POSITION]
5 </string>
4</floater> 6</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_about_land.xml b/linden/indra/newview/skins/default/xui/pt/floater_about_land.xml
index 1a9e31f..52d57cd 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_about_land.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_about_land.xml
@@ -1,227 +1,258 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floaterland" title="Sobre o Terreno"> 2<floater name="floaterland" title="Sobre o Terreno">
3 <tab_container name="landtab"> 3 <tab_container name="landtab">
4 <panel label="Geral" name="land_general_panel"> 4 <panel label="Geral" name="land_general_panel">
5 <text type="string" length="1" name="Name:"> 5 <text length="1" name="Name:" type="string">
6 Nome: 6 Nome:
7 </text> 7 </text>
8 <text type="string" length="1" name="Description:"> 8 <text length="1" name="Description:" type="string">
9 Descrição: 9 Descrição:
10 </text> 10 </text>
11 <text type="string" length="1" name="Owner:"> 11 <text length="1" name="Owner:" type="string">
12 Proprietário: 12 Proprietário:
13 </text> 13 </text>
14 <text type="string" length="1" name="OwnerText"> 14 <text length="1" name="OwnerText" type="string">
15 Leyla Linden 15 Leyla Linden
16 </text> 16 </text>
17 <button label="Perfil..." label_selected="Perfil..." name="Profile..." /> 17 <button label="Perfil..." label_selected="Perfil..." name="Profile..."/>
18 <text type="string" length="1" name="Group:"> 18 <text length="1" name="Group:" type="string">
19 Grupo: 19 Grupo:
20 </text> 20 </text>
21 <button label="Ajustar..." label_selected="Ajustar..." name="Set..." /> 21 <button label="Ajustar..." label_selected="Ajustar..." name="Set..."/>
22 <check_box label="Permitir posse para o grupo" name="check deed" 22 <check_box label="Permitir posse para o grupo" name="check deed" tool_tip="O gerente do grupo pode acionar essa terra ao grupo, então esta será mantida pelo gestor da ilha"/>
23 tool_tip="O gerente do grupo pode acionar essa terra ao grupo, então esta será mantida pelo gestor da ilha" /> 23 <button label="Passar..." label_selected="Deed..." name="Deed..." tool_tip="Você só pode acionar esta terra se você for um gerente selecionado pelo grupo.."/>
24 <button label="Passar..." label_selected="Deed..." name="Deed..." 24 <check_box label="Proprietário faz contribuição com acionamento" name="check contrib" tool_tip="Quando a terra é acionada ao grupo, o proprietário anterior contribui alocando terra suficiente para mantê-la."/>
25 tool_tip="Você só pode acionar esta terra se você for um gerente selecionado pelo grupo.." /> 25 <text length="1" name="For Sale:" type="string">
26 <check_box label="Proprietário faz contribuição com acionamento" name="check contrib"
27 tool_tip="Quando a terra é acionada ao grupo, o proprietário anterior contribui alocando terra suficiente para mantê-la." />
28 <text type="string" length="1" name="For Sale:">
29 A Venda: 26 A Venda:
30 </text> 27 </text>
31 <text type="string" length="1" name="Not for sale."> 28 <text length="1" name="Not for sale." type="string">
32 Não Está a Venda. 29 Não Está a Venda.
33 </text> 30 </text>
34 <text type="string" length="1" name="For Sale: Price L$[PRICE]."> 31 <text length="1" name="For Sale: Price L$[PRICE]." type="string">
35 Preço: L$[PRICE]. 32 Preço: L$[PRICE].
36 </text> 33 </text>
37 <button label="Vender Terra..." label_selected="Vender Terra..." name="Sell Land..." /> 34 <button label="Vender Terra..." label_selected="Vender Terra..." name="Sell Land..."/>
38 <text type="string" length="1" name="For sale to"> 35 <text length="1" name="For sale to" type="string">
39 A venda para: [BUYER] 36 A venda para: [BUYER]
40 </text> 37 </text>
41 <text type="string" length="1" name="Sell with landowners objects in parcel."> 38 <text length="1" name="Sell with landowners objects in parcel." type="string">
42 A venda (Objetos incluídos). 39 A venda (Objetos incluídos).
43 </text> 40 </text>
44 <text type="string" length="1" name="Selling with no objects in parcel."> 41 <text length="1" name="Selling with no objects in parcel." type="string">
45 A Venda (Objetos não Incluídos). 42 A Venda (Objetos não Incluídos).
46 </text> 43 </text>
47 <button label="Cancelar venda do terreno" label_selected="Cancelar venda do terreno" 44 <button label="Cancelar venda do terreno" label_selected="Cancelar venda do terreno" name="Cancel Land Sale" width="165" left="275"/>
48 name="Cancel Land Sale" /> 45 <text length="1" name="Claimed:" type="string">
49 <text type="string" length="1" name="Claimed:">
50 Solicitado 46 Solicitado
51 </text> 47 </text>
52 <text type="string" length="1" name="DateClaimText"> 48 <text length="1" name="DateClaimText" type="string">
53 Ter Ago 15 13:47:25 2006 49 Ter Ago 15 13:47:25 2006
54 </text> 50 </text>
55 <text type="string" length="1" name="PriceLabel"> 51 <text length="1" name="PriceLabel" type="string">
56 Ãrea: 52 Ãrea:
57 </text> 53 </text>
58 <text type="string" length="1" name="PriceText"> 54 <text length="1" name="PriceText" type="string">
59 4048 m2. 55 4048 m2.
60 </text> 56 </text>
61 <text type="string" length="1" name="Traffic:"> 57 <text length="1" name="Traffic:" type="string">
62 Tráfego: 58 Tráfego:
63 </text> 59 </text>
64 <text type="string" length="1" name="DwellText"> 60 <text length="1" name="DwellText" type="string">
65 0 61 0
66 </text> 62 </text>
67 <button label="Comprar Terra..." label_selected="Comprar Terra..." name="Buy Land..." /> 63 <button label="Comprar Terra..." label_selected="Comprar Terra..." name="Buy Land..." width="125" left="130"/>
68 <button label="Comprar para o Grupo..." label_selected="Comprar para o Grupo..." 64 <button label="Comprar para o Grupo..." label_selected="Comprar para o Grupo..." name="Buy For Group..."/>
69 name="Buy For Group..." /> 65 <button label="Comprar Passe..." label_selected="Comprar Passe..." name="Buy Pass..." tool_tip="Uma passagem concede a você acesso temporário a esta terra." width="125" left="130"/>
70 <button label="Comprar Passe..." label_selected="Comprar Passe..." name="Buy Pass..." 66 <button label="Abandonar Terra.." label_selected="Abandonar Terra.." name="Abandon Land..."/>
71 tool_tip="Uma passagem concede a você acesso temporário a esta terra." /> 67 <button label="Reclamar Terra..." label_selected="Reclamar Terra..." name="Reclaim Land..."/>
72 <button label="Abandonar Terra.." label_selected="Abandonar Terra.." 68 <button label="Linden Sale..." label_selected="Linden Sale..." name="Linden Sale..." tool_tip="A terra precisa ser proprietária, estar com o conteúdo configurado e não estar pronta para leilão."/>
73 name="Abandon Land..." /> 69 <string name="new users only">
74 <button label="Reclamar Terra..." label_selected="Reclamar Terra..."
75 name="Reclaim Land..." />
76 <button label="Linden Sale..." label_selected="Linden Sale..." name="Linden Sale..."
77 tool_tip="A terra precisa ser proprietária, estar com o conteúdo configurado e não estar pronta para leilão." />
78 <text name="new users only">
79 Somente novos usuários 70 Somente novos usuários
80 </text> 71 </string>
81 <text name="anyone"> 72 <string name="anyone">
82 Qualquer um 73 Qualquer um
83 </text> 74 </string>
75 <string name="area_text">
76 Ãrea
77 </string>
78 <string name="area_size_text">
79 [AREA] m2.
80 </string>
81 <string name="auction_id_text">
82 ID do Leilão: [ID]
83 </string>
84 <string name="need_tier_to_modify">
85 Você deve ter sua compra aprovada para modificar este terreno.
86 </string>
87 <string name="group_owned_text">
88 (Possuído pelo Grupo)
89 </string>
90 <string name="profile_text">
91 Perfil...
92 </string>
93 <string name="info_text">
94 Informação...
95 </string>
96 <string name="public_text">
97 (público)
98 </string>
99 <string name="none_text">
100 (nenhum)
101 </string>
102 <string name="sale_pending_text">
103 (Venda Pendente)
104 </string>
105 <string name="no_selection_text">
106 Nenhum terreno selecionado.
107Vá para o menu Mundo &gt; Sobre a Terra ou selecione outro terreno para mostrar seus detalhes.
108 </string>
84 </panel> 109 </panel>
85 <panel label="Corretor" name="land_covenant_panel"> 110 <panel label="Corretor" name="land_covenant_panel">
86 <text type="string" length="1" name="covenant_timestamp_text"> 111 <text length="1" name="covenant_timestamp_text" type="string">
87 Última Alteração: Qua, Dez 31 16:00:00 1969 112 Última Alteração: Qua, Dez 31 16:00:00 1969
88 </text> 113 </text>
89 <text type="string" length="1" name="region_name_lbl"> 114 <text length="1" name="region_name_lbl" type="string">
90 Região: 115 Região:
91 </text> 116 </text>
92 <text type="string" length="1" name="region_name_text"> 117 <text length="1" name="region_name_text" type="string">
93 leyla 118 leyla
94 </text> 119 </text>
95 <text type="string" length="1" name="estate_name_lbl"> 120 <text length="1" name="estate_name_lbl" type="string">
96 Estado: 121 Estado:
97 </text> 122 </text>
98 <text type="string" length="1" name="estate_name_text"> 123 <text length="1" name="estate_name_text" type="string">
99 mainland 124 mainland
100 </text> 125 </text>
101 <text type="string" length="1" name="estate_owner_lbl"> 126 <text length="1" name="estate_owner_lbl" type="string">
102 Proprietário do Estado: 127 Proprietário do Estado:
103 </text> 128 </text>
104 <text type="string" length="1" name="estate_owner_text"> 129 <text length="1" name="estate_owner_text" type="string">
105 (nenhum) 130 (nenhum)
106 </text> 131 </text>
107 <text type="string" length="1" name="resellable_clause"> 132 <text length="1" name="resellable_clause" type="string">
108 Terra comprada nesta região não pode ser revendida. 133 Terra comprada nesta região não pode ser revendida.
109 </text> 134 </text>
110 <text type="string" length="1" name="changeable_clause"> 135 <text length="1" name="changeable_clause" type="string">
111 Terra comrpada nesta região não poderá ser compartilhada ou sub-dividida. 136 Terra comrpada nesta região não poderá ser compartilhada ou sub-dividida.
112 </text> 137 </text>
113 <text_editor type="string" length="1" name="covenant_editor"> 138 <text_editor length="1" name="covenant_editor" type="string">
114 Não há corretor para este Estado. 139 Não há corretor para este Estado.
115 </text_editor> 140 </text_editor>
116 <text name="can_resell"> 141 <string name="can_resell">
117 Terra comprada nesta região pode ser revendida. 142 Terra comprada nesta região pode ser revendida.
118 </text> 143 </string>
119 <text name="can_not_resell"> 144 <string name="can_not_resell">
120 Terra comprada nesta região não pode ser revendida. 145 Terra comprada nesta região não pode ser revendida.
121 </text> 146 </string>
122 <text name="can_change"> 147 <string name="can_change">
123 Terra comprada nesta região pode ser compartilhada ou 148 Terra comprada nesta região pode ser compartilhada ou sub-dividida.
124sub-dividida. 149 </string>
125 </text> 150 <string name="can_not_change">
126 <text name="can_not_change"> 151 Terra comprada nesta região não pode ser compartilhada ou sub-dividida..
127 Terra comprada nesta região não pode ser 152 </string>
128compartilhada ou sub-dividida..
129 </text>
130 </panel> 153 </panel>
131 <panel label="Objetos" name="land_objects_panel"> 154 <panel label="Objetos" name="land_objects_panel">
132 <text type="string" length="1" name="Simulator primitive usage:"> 155 <text name="parcel_object_bonus">
156 Fator de Bonus para Objetos na Região: [BONUS]
157 </text>
158 <text length="1" name="Simulator primitive usage:" type="string">
133 Uso do simulador de primitivas: 159 Uso do simulador de primitivas:
134 </text> 160 </text>
135 <text type="string" length="1" name="Primitives parcel supports:"> 161 <text name="objects_available" left="214" width="230">
162 [COUNT] de [MAX] ([AVAILABLE] disponíveis)
163 </text>
164 <string name="objects_available_text">
165 [COUNT] de [MAX] ([AVAILABLE] disponíveis)
166 </string>
167 <string name="objects_deleted_text">
168 [COUNT] de [MAX] ([DELETED] serão deletados)
169 </string>
170 <text length="1" name="Primitives parcel supports:" type="string" width="200">
136 Primitivas suportadas pelo terreno: 171 Primitivas suportadas pelo terreno:
137 </text> 172 </text>
138 <text type="string" length="1" name="object_contrib_text"> 173 <text length="1" name="object_contrib_text" type="string" left="214" width="152">
139 [COUNT] 174 [COUNT]
140 </text> 175 </text>
141 <text type="string" length="1" name="Primitives on parcel:"> 176 <text length="1" name="Primitives on parcel:" type="string">
142 Primitivas no Lote: 177 Primitivas no Lote:
143 </text> 178 </text>
144 <text type="string" length="1" name="total_objects_text"> 179 <text length="1" name="total_objects_text" type="string" left="214" width="48">
145 [COUNT] 180 [COUNT]
146 </text> 181 </text>
147 <text type="string" length="1" name="Owned by parcel owner:"> 182 <text length="1" name="Owned by parcel owner:" type="string" left="14" width="180">
148 Pertencentes ao dono: 183 Pertencentes ao dono:
149 </text> 184 </text>
150 <text type="string" length="1" name="owner_objects_text"> 185 <text length="1" name="owner_objects_text" type="string" left="214" width="48">
151 [COUNT] 186 [COUNT]
152 </text> 187 </text>
153 <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" /> 188 <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" right="-135" width="60"/>
154 <button label="Retornar..." label_selected="Retornar..." name="ReturnOwner..." 189 <button label="Retornar..." label_selected="Retornar..." name="ReturnOwner..." tool_tip="Retorno os objetos aos seus proprietários." right="-10" width="119"/>
155 tool_tip="Retorno os objetos aos seus proprietários." /> 190 <text length="1" name="Set to group:" type="string" left="14" width="180">
156 <text type="string" length="1" name="Set to group:">
157 Configurados ao grupo: 191 Configurados ao grupo:
158 </text> 192 </text>
159 <text type="string" length="1" name="group_objects_text"> 193 <text length="1" name="group_objects_text" type="string" left="214" width="48">
160 [COUNT] 194 [COUNT]
161 </text> 195 </text>
162 <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" /> 196 <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" width="60" right="-135"/>
163 <button label="Retornar..." label_selected="Retornar..." name="ReturnGroup..." 197 <button label="Retornar..." label_selected="Retornar..." name="ReturnGroup..." tool_tip="Retornar os objetos para seus proprietários." right="-10" width="119"/>
164 tool_tip="Retornar os objetos para seus proprietários." /> 198 <text length="1" name="Owned by others:" type="string" left="14" width="128">
165 <text type="string" length="1" name="Owned by others:">
166 Propriedade de Outros: 199 Propriedade de Outros:
167 </text> 200 </text>
168 <text type="string" length="1" name="other_objects_text"> 201 <text length="1" name="other_objects_text" type="string" left="214" width="48">
169 [COUNT] 202 [COUNT]
170 </text> 203 </text>
171 <button label="Mostrar" label_selected="Mostrar" name="ShowOther" /> 204 <button label="Mostrar" label_selected="Mostrar" name="ShowOther" right="-135" width="60"/>
172 <button label="Retornar..." label_selected="Retornar..." name="ReturnOther..." 205 <button label="Retornar..." label_selected="Retornar..." name="ReturnOther..." tool_tip="Retornar os objetos aos seus proprietários." right="-10" width="119"/>
173 tool_tip="Retornar os objetos aos seus proprietários." /> 206 <text length="1" name="Selected / sat upon:" type="string" left="14" width="193">
174 <text type="string" length="1" name="Selected / sat upon:">
175 Selecionado/Sentado: 207 Selecionado/Sentado:
176 </text> 208 </text>
177 <text type="string" length="1" name="selected_objects_text"> 209 <text length="1" name="selected_objects_text" type="string" left="214" width="48">
178 [COUNT] 210 [COUNT]
179 </text> 211 </text>
180 <text type="string" length="1" name="Autoreturn"> 212 <text length="1" name="Autoreturn" type="string" width="412" left="4">
181 Auto-retornar objetos dos outros residentes (minutos): 213 Auto-retornar objetos dos outros residentes (minutos):
182 </text> 214 </text>
183 <text type="string" length="1" name="Object Owners:"> 215 <line_editor name="clean other time" right="-6" width="36" />
184 Proprietários dos Objetos: 216 <text length="1" name="Object Owners:" type="string">
185 </text> 217 Proprietários:
186 <button label="Atualizar Lista" label_selected="Atualizar Lista" name="Refresh List" /> 218 </text>
187 <button label="Objetos Retornados..." label_selected="Objetos Retornados..." 219 <button label="Atualizar Lista" label_selected="Atualizar Lista" name="Refresh List"/>
188 name="Return objects..." /> 220 <button label="Objetos Retornados..." label_selected="Objetos Retornados..." name="Return objects..."/>
189 <button label="" label_selected="" name="Type" tool_tip="Organizar por Tipo" /> 221 <name_list name="owner list">
190 <button label="Nome" label_selected="Nome" name="Name" tool_tip="Organizar por Nome" /> 222 <column label="Tipo" name="type"/>
191 <button label="Quantidade" label_selected="Quantidade" name="Count" 223 <column label="Nome" name="name"/>
192 tool_tip="Organizar por Quantidade" /> 224 <column label="Contar" name="count"/>
225 </name_list>
193 </panel> 226 </panel>
194 <panel label="Opções" name="land_options_panel"> 227 <panel label="Opções" name="land_options_panel">
195 <text type="string" length="1" name="allow_label"> 228 <text length="1" name="allow_label" type="string">
196 Permitir outros residentes a: 229 Permitir outros residentes a:
197 </text> 230 </text>
198 <check_box label="Editar Terreno" name="edit land check" /> 231 <check_box label="Editar Terreno" name="edit land check" tool_tip="Se ativado, qualquer um pode modificar a forma da sua terra. É melhor deixar esta opção desativada, uma vez que você sempre pode editar seu próprio terreno."/>
199 <check_box label="Criar Landmarks" name="check landmark" /> 232 <check_box label="Criar Landmarks" name="check landmark"/>
200 <check_box label="Voar" name="check fly" /> 233 <check_box label="Voar" name="check fly" tool_tip="Se ativado, os Residentes podem voar na sua terra. Se desativado, eles podem voar apenas para dentro e por cima de sua terra."/>
201 <text type="string" length="1" name="allow_label2"> 234 <text length="1" name="allow_label2" type="string">
202 Criar Objetos: 235 Criar Objetos:
203 </text> 236 </text>
204 <check_box label="Residentes" name="edit objects check" /> 237 <check_box label="Residentes" name="edit objects check"/>
205 <check_box label="Grupo" name="edit group objects check" /> 238 <check_box label="Grupo" name="edit group objects check"/>
206 <text type="string" length="1" name="allow_label3"> 239 <text length="1" name="allow_label3" type="string">
207 Entrada do Objeto: 240 Entrada do Objeto:
208 </text> 241 </text>
209 <check_box label="Residentes" name="all object entry check" /> 242 <check_box label="Residentes" name="all object entry check"/>
210 <check_box label="Grupo" name="group object entry check" /> 243 <check_box label="Grupo" name="group object entry check"/>
211 <text type="string" length="1" name="allow_label4"> 244 <text length="1" name="allow_label4" type="string">
212 Executar Scripts: 245 Executar Scripts:
213 </text> 246 </text>
214 <check_box label="Residentes" name="check other scripts" /> 247 <check_box label="Residentes" name="check other scripts"/>
215 <check_box label="Grupo" name="check group scripts" /> 248 <check_box label="Grupo" name="check group scripts"/>
216 <text type="string" length="1" name="land_options_label"> 249 <text length="1" name="land_options_label" type="string">
217 Opções de Terra: 250 Opções de Terra:
218 </text> 251 </text>
219 <check_box label="Salvo (sem dano)" name="check safe" /> 252 <check_box label="Salvo (sem dano)" name="check safe" tool_tip="Se ativado, ajusta o terreno para Seguro, desabilitando combate com danos. Se não ativado, o combate com danos é habilitado."/>
220 <check_box label="Restrict Pushing" name="PushRestrictCheck" 253 <check_box label="Sem Empurrar" name="PushRestrictCheck" tool_tip="Evita scripts que empurram. A ativação dessa opção pode ser útil para prevenir comportamentos desordeiros na sua terra."/>
221 tool_tip="llPushObject só funcionará nos scripts do proprietário do lote ou nos scripts de quem empurra." /> 254 <check_box label="Mostra o Lugar na Busca (L$30/semana) sob" name="ShowDirectoryCheck" tool_tip="Permitir que as pessoas vejam este terreno nos resultados de busca"/>
222 <check_box label="Mostrar nos locais de Busca (L$30/semana) sobre" 255 <combo_box name="land category" left="276" width="146" >
223 name="ShowDirectoryCheck" />
224 <combo_box name="land category">
225 <combo_item name="AnyCategory"> 256 <combo_item name="AnyCategory">
226 Qualquer Categoria 257 Qualquer Categoria
227 </combo_item> 258 </combo_item>
@@ -262,68 +293,141 @@ compartilhada ou sub-dividida..
262 Outros 293 Outros
263 </combo_item> 294 </combo_item>
264 </combo_box> 295 </combo_box>
265 <check_box label="Publicar lista na web" name="PublishCheck" 296 <button label="?" label_selected="?" name="?" left="426"/>
266 tool_tip="Publicar informações do seu lote na web." /> 297 <check_box label="Mature content" name="MatureCheck" tool_tip="As informações do seu lote são consideradas para Adultos."/>
267 <check_box label="Mature content" name="MatureCheck" 298 <text length="1" name="Snapshot:" type="string">
268 tool_tip="As informações do seu lote são consideradas para Adultos." />
269 <button label="?" label_selected="?" name="?" />
270 <text type="string" length="1" name="Snapshot:">
271 Foto: 299 Foto:
272 </text> 300 </text>
273 <texture_picker label="" name="snapshot_ctrl" tool_tip="Clique para escolher uma imagem" /> 301 <texture_picker label="" name="snapshot_ctrl" tool_tip="Clique para escolher uma imagem"/>
274 <text type="string" length="1" name="Landing Point: (none)"> 302 <text name="landing_point">
275 Landing Point: (nenhum) 303 Ponto de Aterrissagem: [LANDING]
276 </text> 304 </text>
277 <button label="Set" label_selected="Ajustar" name="Set" 305 <string name="landing_point_none">
278 tool_tip="Ajuste o landing point para a posição do seu avatr. Ele precisa ser dentro deste lote." /> 306 (nenhum)
279 <button label="Limpar" label_selected="Limpar" name="Clear" 307 </string>
280 tool_tip="Limpar o landing point." /> 308 <button label="Set" label_selected="Ajustar" name="Set" tool_tip="Define o ponto de aterrissagem aonde o visitante chega. Define a localidade para seu avatar dentro deste terreno."/>
281 <text type="string" length="1" name="Teleport Routing: "> 309 <button label="Limpar" label_selected="Limpar" name="Clear" tool_tip="Limpar o landing point."/>
310 <text length="1" name="Teleport Routing: " type="string">
282 Rota de Tele-transporte: 311 Rota de Tele-transporte:
283 </text> 312 </text>
284 <combo_box name="landing type" 313 <combo_box name="landing type" tool_tip="Rota de Teletransporte -- Selecione como tratar os tele-transportes no seu lote." left="140" width="140" >
285 tool_tip="Rota de Teletransporte -- Selecione como tratar os tele-transportes no seu lote."> 314 <combo_item length="1" name="Blocked" type="string">
286 <combo_item type="string" length="1" name="Blocked">
287 Bloqueado 315 Bloqueado
288 </combo_item> 316 </combo_item>
289 <combo_item type="string" length="1" name="LandingPoint"> 317 <combo_item length="1" name="LandingPoint" type="string">
290 Landing Point 318 Landing Point
291 </combo_item> 319 </combo_item>
292 <combo_item type="string" length="1" name="Anywhere"> 320 <combo_item length="1" name="Anywhere" type="string">
293 Qualquer lugar 321 Qualquer lugar
294 </combo_item> 322 </combo_item>
295 </combo_box> 323 </combo_box>
324 <string name="push_restrict_text">
325 Sem Empurrar
326 </string>
327 <string name="push_restrict_region_text">
328 Sem Empurrar (Imposição na Região)
329 </string>
296 </panel> 330 </panel>
297 <panel label="Mídia" name="land_media_panel"> 331 <panel label="Mídia" name="land_media_panel">
298 <check_box label="Restringir som espacial a este lote" name="check sound local" /> 332 <text name="with media:" width="85">
299 <text type="string" length="1" name="Music URL:"> 333 Tipo de Mídia:
300 URL Música:
301 </text>
302 <text type="string" length="1" name="Media texture:">
303 Textura de Mídia:
304 </text> 334 </text>
305 <text type="string" length="1" name="Replace this texture:"> 335 <combo_box name="media type" tool_tip="Especificar se a URL é um filme, uma página web ou outra mídia" left="97"/>
306 Substituir esta Textura: 336 <text name="at URL:" width="85">
337 URL da Mídia:
307 </text> 338 </text>
308 <texture_picker label="" name="media texture" tool_tip="Clique para escolher uma imagem" /> 339 <line_editor name="media_url" left="97"/>
309 <text type="string" length="1" name="with content from this URL:"> 340 <button label="Definir..." label_selected="Ajustar..." name="set_media_url"/>
310 com conteúdo desta URL: 341 <text name="Description:">
342 Descrição:
311 </text> 343 </text>
312 <check_box label="Conteudo Auto-Ajustavel (lento e reduz a qualidade visual)" 344 <line_editor name="url_description" tool_tip="Texto mostrado ao lado do botão reproduzir/carregar" left="97"/>
313 name="media_auto_scale" 345 <text length="1" name="Media texture:" type="string">
314 tool_tip="Marcando esta opção o conteúdo se ajustará ao lote automaticamente. O lote pode se tornar lento e com baixa qualidade visual nenhum outro ajuste de textura ou alinhamento será necessário." /> 346 Substituir
347Textura:
348 </text>
349 <texture_picker label="" name="media texture" tool_tip="Clique para escolher uma imagem" left="97"/>
350 <text name="replace_texture_help">
351 (Objetos usando esta textura, mostrarão o filme ou
352a página web depois que você clicar na seta de
353reproduzir.)
354 </text>
355 <text name="Options:">
356 Opções de
357Mídia:
358 </text>
359 <check_box left="97" label="Escala automática" name="media_auto_scale" tool_tip="Marcando esta opção o conteúdo se ajustará ao lote automaticamente. O lote pode se tornar lento e com baixa qualidade visual nenhum outro ajuste de textura ou alinhamento será necessário."/>
360 <check_box label="Mídia em Repetição" name="media_loop" tool_tip="Executar a mídia repetidamente. Quando a mídia terminar a execução, ela reiniciará do começo."/>
361 <check_box left="97" label="Esconder a URL da Mídia" name="hide_media_url" tool_tip="Ativando esta opção, a URL da mídia se ocultará para quaisquer visualizadores não autorizados a ver esta informação do terreno. Notar que isto não está disponível para tipos HTML."/>
362 <check_box label="Esconder a URL de Música" name="hide_music_url" tool_tip="Ativando esta opção, a URL de música se esconderá para visualizadores não autorizados a ver esta informação do terreno"/>
363 <text name="media_size" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão." width="115" left="102">
364 Tamanho da mídia:
365 </text>
366 <spinner name="media_size_width" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão." left_delta="99"/>
367 <spinner name="media_size_height" tool_tip="Tamanho para desenhar a mídia Web, deixar 0 como padrão."/>
368 <text name="pixels">
369 pixels
370 </text>
371 <text name="MusicURL:">
372 URL da Música:
373 </text>
374 <line_editor name="music_url" left="97"/>
375 <text name="Sound:">
376 Som:
377 </text>
378 <check_box label="Restringir som espacial a este lote" name="check sound local" left="97"/>
379 <text name="Voice settings:">
380 Voz:
381 </text>
382 <radio_group name="parcel_voice_channel" left="97" width="310">
383 <radio_item name="Estate">
384 Usar o canal espacial da Propriedade
385 </radio_item>
386 <radio_item name="Private">
387 Usar um canal especial privado
388 </radio_item>
389 <radio_item name="Disabled">
390 Desabilitar áudio espacial neste terreno
391 </radio_item>
392 </radio_group>
315 </panel> 393 </panel>
316 <panel label="Acesso" name="land_access_panel"> 394 <panel label="Acesso" name="land_access_panel">
317 <text type="string" length="1" name="Limit access to this parcel to:"> 395 <text length="1" name="Limit access to this parcel to:" type="string">
318 Limitar acesso a este lote a: 396 Acesso a Este Terreno
319 </text> 397 </text>
320 <check_box label="Grupo: (nenhum)" name="GroupCheck" /> 398 <check_box label="Permitir Acesso Público" name="public_access"/>
321 <text name="BanCheck">Banir estes Avatares:</text> 399 <text name="Only Allow">
322 <button label="Incluir..." label_selected="Incluir..." name="add_banned" /> 400 Bloquear Acesso por:
323 <button label="Remover" label_selected="Remover" name="remove_banned" /> 401 </text>
324 <check_box label="Vender passes permitindo acesso temporário:" name="PassCheck" /> 402 <check_box label="Residentes que não forneceram informações de pagamento para a Linden Lab" name="limit_payment" tool_tip="Banir residentes não identificados."/>
325 <spinner label="Preço em L$:" name="PriceSpin" /> 403 <check_box label="Residentes que não tiveram a idade de adulto confirmada" name="limit_age_verified" tool_tip="Banir residentes que não tiveram sua idade verificada. Veja support.secondlife.com para maiores informações."/>
326 <spinner label="Horas de Acesso:" name="HoursSpin" /> 404 <string name="estate_override">
405 Uma ou mais destas opções está definida no nível de propriedade.
406 </string>
407 <check_box label="Permitir Acesso do Grupo: [GROUP]" name="GroupCheck" tool_tip="Definir grupo na aba Geral."/>
408 <check_box label="Vender passes para:" name="PassCheck" tool_tip="Permite acesso temporário a este terreno"/>
409 <combo_box name="pass_combo">
410 <combo_item name="Anyone">
411 Qualquer um
412 </combo_item>
413 <combo_item name="Group">
414 Grupo
415 </combo_item>
416 </combo_box>
417 <spinner label="Preço em L$:" name="PriceSpin"/>
418 <spinner label="Horas de Acesso:" name="HoursSpin"/>
419 <text label="Permitir Sempre" name="AllowedText">
420 Residentes Permitidos
421 </text>
422 <name_list name="AccessList" tool_tip="([LISTED] listados, [MAX] máximo)"/>
423 <button label="Adicionar..." label_selected="Adicionar..." name="add_allowed"/>
424 <button label="Remover" label_selected="Remover" name="remove_allowed"/>
425 <text label="Banir" name="BanCheck">
426 Residentes Banidos
427 </text>
428 <name_list name="BannedList" tool_tip="([LISTED] listados, [MAX] máximo)"/>
429 <button label="Adicionar..." label_selected="Adicionar..." name="add_banned"/>
430 <button label="Remover" label_selected="Remover" name="remove_banned"/>
327 </panel> 431 </panel>
328 </tab_container> 432 </tab_container>
329</floater> 433</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_active_speakers.xml b/linden/indra/newview/skins/default/xui/pt/floater_active_speakers.xml
new file mode 100644
index 0000000..100e819
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_active_speakers.xml
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="active_speakers" title="Active Speakers">
3 <panel name="active_speakers_panel">
4 <panel name="volume_container">
5 <button label="" name="mute_btn" tool_tip="Emudecer a voz para este residente"/>
6 </panel>
7 </panel>
8</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_animation_preview.xml b/linden/indra/newview/skins/default/xui/pt/floater_animation_preview.xml
index 6d7d76c..3f30bdf 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_animation_preview.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_animation_preview.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Animation Preview" title=""> 2<floater name="Animation Preview" title="">
3 <text name="name_label"> 3 <text name="name_label">
4 Nome: 4 Nome:
@@ -6,36 +6,14 @@
6 <text name="description_label"> 6 <text name="description_label">
7 Descrição: 7 Descrição:
8 </text> 8 </text>
9 <spinner label="Prioridade" name="priority" 9 <spinner label="Prioridade" name="priority" tool_tip="Controle com o qual umas animações podem ser sobrepostas por outras."/>
10 tool_tip="Controle com o qual umas animações podem ser sobrepostas por outras." /> 10 <check_box label="Loop" name="loop_check" tool_tip="Executa a animação repetidamente."/>
11 <text name="preview_label"> 11 <spinner label="Dentro(%)" name="loop_in_point" tool_tip="Ajusta o ponto onde a repetição começa."/>
12 Prever enquanto 12 <spinner label="Fora(%)" name="loop_out_point" tool_tip="Ajusta o ponto onde a repetição termina."/>
13 </text>
14 <combo_box label="" name="preview_base_anim"
15 tool_tip="Use isso para testar o comportamento de sua animação enquanto seu avatar executa ações comuns.">
16 <combo_item name="Standing">
17 Parado
18 </combo_item>
19 <combo_item name="Walking">
20 Andando
21 </combo_item>
22 <combo_item name="Sitting">
23 Sentando
24 </combo_item>
25 <combo_item name="Flying">
26 Voando
27 </combo_item>
28 </combo_box>
29 <check_box label="Loop" name="loop_check" tool_tip="Executa a animação repetidamente." />
30 <spinner label="Dentro(%)" name="loop_in_point"
31 tool_tip="Ajusta o ponto onde a repetição começa." />
32 <spinner label="Fora(%)" name="loop_out_point"
33 tool_tip="Ajusta o ponto onde a repetição termina." />
34 <text name="hand_label"> 13 <text name="hand_label">
35 Posição Manual 14 Posição Manual
36 </text> 15 </text>
37 <combo_box label="" name="hand_pose_combo" 16 <combo_box label="" name="hand_pose_combo" tool_tip="Controla o que as mãos fazem durante a animação">
38 tool_tip="Controla o que as mãos fazem durante a animação">
39 <combo_item name="Spread"> 17 <combo_item name="Spread">
40 Espreguiçar 18 Espreguiçar
41 </combo_item> 19 </combo_item>
@@ -79,8 +57,7 @@
79 <text name="emote_label"> 57 <text name="emote_label">
80 Expressão 58 Expressão
81 </text> 59 </text>
82 <combo_box label="" name="emote_combo" 60 <combo_box label="" name="emote_combo" tool_tip="Controla o que a face faz durante a animação.">
83 tool_tip="Controla o que a face faz durante a animação.">
84 <combo_item name="[None]"> 61 <combo_item name="[None]">
85 [None] 62 [None]
86 </combo_item> 63 </combo_item>
@@ -142,16 +119,44 @@
142 Preocupado 119 Preocupado
143 </combo_item> 120 </combo_item>
144 </combo_box> 121 </combo_box>
145 <spinner label="Ease In (sec)" name="ease_in_time" 122 <text name="preview_label">
146 tool_tip="Quantidade de tempo (em segundos) para que as animações se mesclem." /> 123 Prever enquanto
147 <spinner label="Ease Out (sec)" name="ease_out_time" 124 </text>
148 tool_tip="Quantidade de tempo (em segundos) para que a animações se mesclem." /> 125 <combo_box label="" name="preview_base_anim" tool_tip="Use isso para testar o comportamento de sua animação enquanto seu avatar executa ações comuns.">
149 <button label="" name="play_btn" tool_tip="Executa/pausa sua animação." /> 126 <combo_item name="Standing">
150 <button label="" name="stop_btn" tool_tip="Interrompe a execução da animação." /> 127 Parado
151 <slider label="" name="playback_slider" /> 128 </combo_item>
129 <combo_item name="Walking">
130 Andando
131 </combo_item>
132 <combo_item name="Sitting">
133 Sentando
134 </combo_item>
135 <combo_item name="Flying">
136 Voando
137 </combo_item>
138 </combo_box>
139 <spinner label="Ease In (sec)" name="ease_in_time" tool_tip="Quantidade de tempo (em segundos) para que as animações se mesclem."/>
140 <spinner label="Ease Out (sec)" name="ease_out_time" tool_tip="Quantidade de tempo (em segundos) para que a animações se mesclem."/>
141 <button label="" name="play_btn" tool_tip="Executa/pausa sua animação."/>
142 <button label="" name="stop_btn" tool_tip="Interrompe a execução da animação."/>
143 <slider label="" name="playback_slider"/>
152 <text name="bad_animation_text"> 144 <text name="bad_animation_text">
153 Incapaz de ler o arquivo de animação. Nós recomendamos exportar arquivos BVH do Poser 4. 145 Incapaz de ler o arquivo de animação. Nós recomendamos exportar arquivos BVH do Poser 4.
154 </text> 146 </text>
155 <button label="Cancelar" name="cancel_btn" /> 147 <button label="Cancelar" name="cancel_btn"/>
156 <button label="Carregar (L$[AMOUNT])" name="ok_btn" /> 148 <button label="Carregar (L$[AMOUNT])" name="ok_btn"/>
149 <string name="failed_to_initialize">
150 Não foi possível iniciar o movimento
151 </string>
152 <string name="anim_too_long">
153 O arquivo de animação tem [LENGTH] segundos de duração.
154
155Duração maxima de animação permitida é de [MAX_LENGTH] segundos.
156 </string>
157 <string name="failed_file_read">
158 Não foi possível ler o arquivo de animação.
159
160[STATUS]
161 </string>
157</floater> 162</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml b/linden/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml
index db3f83f..79a1086 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml
@@ -1,15 +1,15 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="avatarpicker" title="Escolha de pessoa"> 2<floater name="avatarpicker" title="Escolha de pessoa">
3 <text name="Type part of the resident&apos;s name:"> 3 <text name="instruct_search_resident_name">
4 Digite o nome da pessoa: 4 Digitar parte do nome do residente:
5 </text> 5 </text>
6 <button label="Encontrar" label_selected="Encontrar" name="Find" /> 6 <button label="Encontrar" label_selected="Encontrar" name="Find"/>
7 <text name="Or select their calling card:"> 7 <text name="Or select their calling card:">
8 Ou selecione um cartão: 8 Ou selecione um cartão:
9 </text> 9 </text>
10 <button label="Selecionar" label_selected="Selecionar" name="Select" /> 10 <button label="Fechar" label_selected="Fechar" name="Close"/>
11 <button label="Fechar" label_selected="Fechar" name="Close" /> 11 <button label="Selecionar" label_selected="Selecionar" name="Select"/>
12 <text name="NotFound"> 12 <string name="NotFound">
13 &apos;[TEXT]&apos; não encontrado 13 &apos;[TEXT]&apos; não encontrado
14 </text> 14 </string>
15</floater> 15</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml b/linden/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml
index f885d6c..2e0aacb 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml
@@ -1,30 +1,30 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="avatar_texture_debug" title="Textura do Avatar"> 2<floater name="avatar_texture_debug" title="Textura do Avatar">
3 <text name=""> 3 <text name="baked_label">
4 Texturas prontas 4 Texturas sobrepostas
5 </text> 5 </text>
6 <text name=""> 6 <text name="composite_label">
7 Texturas Compostas 7 Texturas compostas
8 </text> 8 </text>
9 <texture_picker label="Cabeça" name="baked_head" /> 9 <texture_picker label="Cabeça" name="baked_head"/>
10 <texture_picker label="Maquiagem" name="head_bodypaint" /> 10 <texture_picker label="Maquiagem" name="head_bodypaint"/>
11 <texture_picker label="Cabelo" name="hair" /> 11 <texture_picker label="Cabelo" name="hair"/>
12 <button label="Tombar" label_selected="Tombar" name="Dump" /> 12 <button label="Tombar" label_selected="Tombar" name="Dump"/>
13 <texture_picker label="Olhos" name="baked_eyes" /> 13 <texture_picker label="Olhos" name="baked_eyes"/>
14 <texture_picker label="Olho" name="eye_texture" /> 14 <texture_picker label="Olho" name="eye_texture"/>
15 <texture_picker label="Parte de cima" name="baked_upper_body" /> 15 <texture_picker label="Parte de cima" name="baked_upper_body"/>
16 <texture_picker label="Tatuagem para partes de cima" name="upper_bodypaint" /> 16 <texture_picker label="Tatuagem para partes de cima" name="upper_bodypaint"/>
17 <texture_picker label="Camiseta" name="undershirt" /> 17 <texture_picker label="Camiseta" name="undershirt"/>
18 <texture_picker label="Luvas" name="gloves" /> 18 <texture_picker label="Luvas" name="gloves"/>
19 <texture_picker label="Camisa" name="shirt" /> 19 <texture_picker label="Camisa" name="shirt"/>
20 <texture_picker label="Jaqueta" name="upper_jacket" /> 20 <texture_picker label="Jaqueta" name="upper_jacket"/>
21 <texture_picker label="Parte de baixo" name="baked_lower_body" /> 21 <texture_picker label="Parte de baixo" name="baked_lower_body"/>
22 <texture_picker label="Tatuagem para partes de baixo" name="lower_bodypaint" /> 22 <texture_picker label="Tatuagem para partes de baixo" name="lower_bodypaint"/>
23 <texture_picker label="Roupas de baixo" name="underpants" /> 23 <texture_picker label="Roupas de baixo" name="underpants"/>
24 <texture_picker label="Meias" name="socks" /> 24 <texture_picker label="Meias" name="socks"/>
25 <texture_picker label="Calçados" name="shoes" /> 25 <texture_picker label="Calçados" name="shoes"/>
26 <texture_picker label="Calças" name="pants" /> 26 <texture_picker label="Calças" name="pants"/>
27 <texture_picker label="Jaqueta" name="jacket" /> 27 <texture_picker label="Jaqueta" name="jacket"/>
28 <texture_picker label="Saia" name="baked_skirt" /> 28 <texture_picker label="Saia" name="baked_skirt"/>
29 <texture_picker label="Saia" name="skirt_texture" /> 29 <texture_picker label="Saia" name="skirt_texture"/>
30</floater> 30</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_beacons.xml b/linden/indra/newview/skins/default/xui/pt/floater_beacons.xml
new file mode 100644
index 0000000..244a7db
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_beacons.xml
@@ -0,0 +1,15 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="beacons" title="Balizas">
3 <panel name="beacons_panel">
4 <check_box label="Objetos escriptados com toque único" name="touch_only"/>
5 <check_box label="Objetos escriptados" name="scripted"/>
6 <check_box label="Objetos físicos" name="physical"/>
7 <check_box label="Fontes de Som" name="sounds"/>
8 <check_box label="Fontes de Partículas" name="particles"/>
9 <check_box label="Renderização de Highlights" name="highlights"/>
10 <check_box label="Renderização de Balizas" name="beacons"/>
11 <text name="beacon_width_label">
12 Largura da Baliza
13 </text>
14 </panel>
15</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_build_options.xml b/linden/indra/newview/skins/default/xui/pt/floater_build_options.xml
index 08ee8f7..4dfebc3 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_build_options.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_build_options.xml
@@ -1,7 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="build options floater" title="Opções de grade"> 2<floater name="build options floater" title="Opções de grade">
3 <spinner label="Uni. Grade (metros)" name="GridResolution" /> 3 <spinner label="Uni. Grade (metros)" name="GridResolution"/>
4 <spinner label="Ext. da Grade (metros)" name="GridDrawSize" /> 4 <spinner label="Ext. da Grade (metros)" name="GridDrawSize"/>
5 <check_box label="Habilitar ajuste de sub-grade" name="GridSubUnit" /> 5 <check_box label="Habilitar ajuste de sub-grade" name="GridSubUnit"/>
6 <slider label="Opacidade da grade" name="GridOpacity" /> 6 <check_box label="Mostrar as seções de cruzamento" name="GridCrossSection"/>
7 <slider label="Opacidade da grade" name="GridOpacity"/>
7</floater> 8</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_buy_contents.xml b/linden/indra/newview/skins/default/xui/pt/floater_buy_contents.xml
index 74bb568..0c1fb77 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_buy_contents.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_buy_contents.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_buy_contents" title="Comprar conteúdo"> 2<floater name="floater_buy_contents" title="Comprar conteúdo">
3 <text name="contains_text"> 3 <text name="contains_text">
4 [NAME] contém: 4 [NAME] contém:
@@ -6,7 +6,16 @@
6 <text name="buy_text"> 6 <text name="buy_text">
7 Comprar por L$[AMOUNT] de(a) [NAME]? 7 Comprar por L$[AMOUNT] de(a) [NAME]?
8 </text> 8 </text>
9 <button label="Cancelar" label_selected="Cancelar" name="cancel_btn" /> 9 <button label="Cancelar" label_selected="Cancelar" name="cancel_btn"/>
10 <button label="Comprar" label_selected="Comprar" name="buy_btn" /> 10 <button label="Comprar" label_selected="Comprar" name="buy_btn"/>
11 <check_box label="Vestir roupa agora" name="wear_check" /> 11 <check_box label="Vestir roupa agora" name="wear_check"/>
12 <string name="no_copy_text">
13 (sem copiar)
14 </string>
15 <string name="no_modify_text">
16 (sem modificar)
17 </string>
18 <string name="no_transfer_text">
19 (sem transferir)
20 </string>
12</floater> 21</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_buy_currency.xml b/linden/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
index 0438d98..4c4e4c4 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
@@ -1,10 +1,68 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="buy currency" title="Adquira Lindens (L$)"> 2<floater name="buy currency" title="Adquira Lindens (L$)">
3 <text name="cp"> 3 <text name="info_buying">
4 A partir de agora você já pode comprar seus Lindens. 4 Comprando Moeda:
5
6Para isso, siga até o menu superior e clique no item
7Seviços e em seguida selecione &quot;Compra de Lindens&quot;.
8 </text> 5 </text>
9 <button label="Fechar" name="cancel_btn" /> 6 <text name="info_cannot_buy">
7 Não pode comprar agora:
8 </text>
9 <text name="info_need_more">
10 Você precisa de mais moeda:
11 </text>
12 <text name="error_message">
13 Algo não está certo.
14 </text>
15 <button label="Ir para website" name="error_web"/>
16 <text name="contacting">
17 Contatando LindeX...
18 </text>
19 <text name="buy_action_unknown">
20 Comprar L$ sobre o câmbio corrente da LindeX
21 </text>
22 <text name="buy_action">
23 [NAME] L$ [PRICE]
24 </text>
25 <text name="currency_action">
26 Comprar L$
27 </text>
28 <line_editor name="currency_amt">
29 1234
30 </line_editor>
31 <text name="currency_est">
32 por aproxim. US$ [USD]
33 </text>
34 <text name="getting_data">
35 Primeiros dados...
36 </text>
37 <text name="balance_label">
38 Você tem atualmente
39 </text>
40 <text name="balance_amount">
41 L$ [AMT]
42 </text>
43 <text name="buying_label">
44 Você está comprando
45 </text>
46 <text name="buying_amount">
47 L$ [AMT]
48 </text>
49 <text name="total_label">
50 Seu saldo será
51 </text>
52 <text name="total_amount">
53 L$ [AMT]
54 </text>
55 <text name="purchase_warning_repurchase">
56 Confirmando esta compra só compra a moeda.
57Você precisará tentar novamente a operação.
58 </text>
59 <text name="purchase_warning_notenough">
60 Você não está comprando moeda suficiente.
61Aumente a quantidade de compra.
62 </text>
63 <button label="Fechar" name="cancel_btn"/>
64 <button label="Adquirir" name="buy_btn"/>
65 <string name="buy_currency">
66 Comprar L$ [LINDENS] por aproximadamente US$ [dólares americanos]
67 </string>
10</floater> 68</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_buy_land.xml b/linden/indra/newview/skins/default/xui/pt/floater_buy_land.xml
index 5901aa6..3eb7266 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_buy_land.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_buy_land.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="buy land" title="Comprar terreno"> 2<floater name="buy land" title="Comprar terreno">
3 <text name="region_name_label"> 3 <text name="region_name_label">
4 Região: 4 Região:
@@ -33,8 +33,7 @@
33 <text_editor name="covenant_editor"> 33 <text_editor name="covenant_editor">
34 Carregando... 34 Carregando...
35 </text_editor> 35 </text_editor>
36 <check_box label="Eu concordo com as definições do Corretor feitas acima." 36 <check_box label="Eu concordo com as definições do Corretor feitas acima." name="agree_covenant"/>
37 name="agree_covenant" />
38 <text name="info_parcel_label"> 37 <text name="info_parcel_label">
39 Lote: 38 Lote:
40 </text> 39 </text>
@@ -59,7 +58,7 @@
59 <text name="error_message"> 58 <text name="error_message">
60 Algo ainda não está correto. 59 Algo ainda não está correto.
61 </text> 60 </text>
62 <button label="Ir para a página" name="error_web" /> 61 <button label="Ir para a página" name="error_web"/>
63 <text name="account_action"> 62 <text name="account_action">
64 Evoluir sua conta para membro Premium 63 Evoluir sua conta para membro Premium
65 </text> 64 </text>
@@ -81,8 +80,8 @@
81 Aumente sua taxa de locação de lote para US$ 40/mês. 80 Aumente sua taxa de locação de lote para US$ 40/mês.
82 </text> 81 </text>
83 <text name="land_use_reason"> 82 <text name="land_use_reason">
84 Você possui 1,309 metros quadrados de terra. 83 Você possui 1.309 metros quadrados de terra.
85Este lote tem 512 metros quadrados. 84Este terreno tem 512 metros quadrados de terra.
86 </text> 85 </text>
87 <text name="purchase_action"> 86 <text name="purchase_action">
88 Pagar ao Residente Joe L$4000 pelo lote 87 Pagar ao Residente Joe L$4000 pelo lote
@@ -97,130 +96,130 @@ Este lote tem 512 metros quadrados.
97 1000 96 1000
98 </line_editor> 97 </line_editor>
99 <text name="currency_est"> 98 <text name="currency_est">
100 por aproximadamente US$ [AMOUNT2] 99 por aproxim. US$ [AMOUNT2]
101 </text> 100 </text>
102 <text name="currency_balance"> 101 <text name="currency_balance">
103 Você tem L$2,100. 102 Você tem L$2,100.
104 </text> 103 </text>
105 <check_box label="Remover Contribuição do Grupo nas Aquisições" 104 <check_box label="Remover Contribuição do Grupo nas Aquisições" name="remove_contribution"/>
106 name="remove_contribution" /> 105 <button label="Adquirir" name="buy_btn"/>
107 <button label="Adquirir" name="buy_btn" /> 106 <button label="Cancelar" name="cancel_btn"/>
108 <button label="Cancelar" name="cancel_btn" /> 107 <string name="can_resell">
109 <text name="can_resell">
110 Pode ser revendida. 108 Pode ser revendida.
111 </text> 109 </string>
112 <text name="can_not_resell"> 110 <string name="can_not_resell">
113 Não pode ser revendida. 111 Não pode ser revendida.
114 </text> 112 </string>
115 <text name="can_change"> 113 <string name="can_change">
116 Pode ser unida ou subdivida. 114 Pode ser unida ou subdivida.
117 </text> 115 </string>
118 <text name="can_not_change"> 116 <string name="can_not_change">
119 Não pode ser unida ou subdividida. 117 Não pode ser unida ou subdividida.
120 </text> 118 </string>
121 <text name="cant_buy_for_group"> 119 <string name="cant_buy_for_group">
122 Você não tem permissão para comprar um lote para seu grupo ativo. 120 Você não tem permissão para comprar um lote para seu grupo ativo.
123 </text> 121 </string>
124 <text name="no_land_selected"> 122 <string name="no_land_selected">
125 Nenhum lote selecionado. 123 Nenhum lote selecionado.
126 </text> 124 </string>
127 <text name="multiple_parcels_selected"> 125 <string name="multiple_parcels_selected">
128 Vários lotes diferentes selecionados. 126 Múltiplos e diferentes terrenos selecionados. Tente selecionar uma área menor.
129Tente selecionar uma área menor. 127 </string>
130 </text> 128 <string name="no_permission">
131 <text name="no_permission">
132 Você não tem permissão para comprar um lote para seu grupo ativo. 129 Você não tem permissão para comprar um lote para seu grupo ativo.
133 </text> 130 </string>
134 <text name="parcel_not_for_sale"> 131 <string name="parcel_not_for_sale">
135 O lote selecionado não está a venda. 132 O lote selecionado não está a venda.
136 </text> 133 </string>
137 <text name="group_already_owns"> 134 <string name="group_already_owns">
138 O grupo já possui o lote. 135 O grupo já possui o lote.
139 </text> 136 </string>
140 <text name="you_already_own"> 137 <string name="you_already_own">
141 Você já possui o lote. 138 Você já possui o lote.
142 </text> 139 </string>
143 <text name="set_to_sell_to_other"> 140 <string name="set_to_sell_to_other">
144 O lote selecionado está configurado para ser vendido para outro grupo. 141 O lote selecionado está configurado para ser vendido para outro grupo.
145 </text> 142 </string>
146 <text name="no_public_land"> 143 <string name="no_public_land">
147 A área selecionada não é um lote público. 144 A área selecionada não é um lote público.
148 </text> 145 </string>
149 <text name="not_owned_by_you"> 146 <string name="not_owned_by_you">
150 O lote possuído por outro proprietário está selecionado. 147 Está selecionada uma terra pertencente a outro usuário. Tente selecionar uma área menor.
151Tente uma área menor. 148 </string>
152 </text> 149 <string name="processing">
153 <text name="processing">
154 Processando sua compra... 150 Processando sua compra...
155 151
156(Isso pode levar um minuto.) 152(Isso pode levar um minuto.)
157 </text> 153 </string>
158 <text name="fetching_error"> 154 <string name="fetching_error">
159 Houve um erro ao buscar informações sobre compra de lotes. 155 Houve um erro ao buscar informações sobre compra de lotes.
160 </text> 156 </string>
161 <text name="buying_will"> 157 <string name="buying_will">
162 Comprar este lote irá: 158 Comprar este lote irá:
163 </text> 159 </string>
164 <text name="buying_for_group"> 160 <string name="buying_for_group">
165 Comprar terra para o grupo: 161 Comprar terra para o grupo:
166 </text> 162 </string>
167 <text name="cannot_buy_now"> 163 <string name="cannot_buy_now">
168 Não foi possível comprar agora: 164 Não foi possível comprar agora:
169 </text> 165 </string>
170 <text name="not_for_sale"> 166 <string name="not_for_sale">
171 Não disponível para venda: 167 Não disponível para venda:
172 </text> 168 </string>
173 <text name="none_needed"> 169 <string name="none_needed">
174 não necessário 170 não necessário
175 </text> 171 </string>
176 <text name="must_upgrade"> 172 <string name="must_upgrade">
177 Sua conta deve ser evoluída para adquirir um lote. 173 Sua conta deve ser evoluída para adquirir um lote.
178 </text> 174 </string>
179 <text name="cant_own_land"> 175 <string name="cant_own_land">
180 Sua conta pode possuir um lote. 176 Sua conta pode possuir um lote.
181 </text> 177 </string>
182 <text name="first_purchase"> 178 <string name="land_holdings">
183 Esta será sua primeira compra de lote. Será a única vez que você poderá adquirir um lote reservado para &quot;Primeira Compra&quot;.
184 </text>
185 <text name="land_holdings">
186 Você possui [BUYER] metros quadrados de terra. 179 Você possui [BUYER] metros quadrados de terra.
187 </text> 180 </string>
188 <text name="pay_to_for_land"> 181 <string name="pay_to_for_land">
189 Pagar L$ [AMOUNT] para [SELLER] por este lote 182 Pagar L$ [AMOUNT] para [SELLER] por este lote
190 </text> 183 </string>
191 <text name="buy_for_US"> 184 <string name="buy_for_US">
192 Comprar L$ [AMOUNT] por aproximadamente US$ [AMOUNT2] , 185 Comprar L$ [AMOUNT] por aproximadamente US$ [AMOUNT2] ,
193 </text> 186 </string>
194 <text name="parcel_meters"> 187 <string name="parcel_meters">
195 Este lote está a [AMOUNT] metros quadrados. 188 Este lote está a [AMOUNT] metros quadrados.
196 </text> 189 </string>
197 <text name="premium_land"> 190 <string name="premium_land">
198 Este lote é Premium, e irá cobrar como [AMOUNT] metros quadrados. 191 Este lote é Premium, e irá cobrar como [AMOUNT] metros quadrados.
199 </text> 192 </string>
200 <text name="discounted_land"> 193 <string name="discounted_land">
201 Este lote é promocional, e será cobrado como [AMOUNT] metros quadrados. 194 Este lote é promocional, e será cobrado como [AMOUNT] metros quadrados.
202 </text> 195 </string>
203 <text name="meters_supports_object"> 196 <string name="meters_supports_object">
204 [AMOUNT] metros quadrados 197 [AMOUNT] metros quadrados
205suporta [AMOUNT2] objetos 198suporta [AMOUNT2] objetos
206 </text> 199 </string>
207 <text name="sold_with_objects"> 200 <string name="sold_with_objects">
208 vendido com objetos 201 vendido com objetos
209 </text> 202 </string>
210 <text name="insufficient_land_credits"> 203 <string name="insufficient_land_credits">
211 O grupo [GROUP] precisará de fundos suficientes de terras 204 O grupo [GROUP] precisará de fundos suficientes de terras
212contribuídas para cobrir este lote antes da aquisição se completar. 205contribuídas para cobrir este lote antes da aquisição se completar.
213 </text> 206 </string>
214 <text name="have_enough_lindens"> 207 <string name="have_enough_lindens">
215 Você tem L$ [AMOUNT], o qual é suficiente para comprar este lote. 208 Você tem L$ [AMOUNT], o qual é suficiente para comprar este lote.
216 </text> 209 </string>
217 <text name="not_enough_lindens"> 210 <string name="not_enough_lindens">
218 Você tem somente L$ [AMOUNT], e precisa de mais L$ [AMOUNT2]. 211 Você tem somente L$ [AMOUNT], e precisa de mais L$ [AMOUNT2].
219 </text> 212 </string>
220 <text name="balance_left"> 213 <string name="balance_left">
221 Após a compra, restará L$ [AMOUNT]. 214 Após a compra, restará L$ [AMOUNT].
222 </text> 215 </string>
223 <text name="balance_needed"> 216 <string name="balance_needed">
224 Você precisa comprar pelo menos L$ [AMOUNT] para ter recursos para este lote. 217 Você precisa comprar pelo menos L$ [AMOUNT] para ter recursos para este lote.
225 </text> 218 </string>
219 <string name="no_parcel_selected">
220 (nenhum terreno selecionado)
221 </string>
222 <string name="buy_currency">
223 Comprar L$ [LINDENS] por aproxim. US$ [USD]
224 </string>
226</floater> 225</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_buy_object.xml b/linden/indra/newview/skins/default/xui/pt/floater_buy_object.xml
index 82cd146..e5aa919 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_buy_object.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_buy_object.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="contents" title="Comprar cópia do objeto"> 2<floater name="contents" title="Comprar cópia do objeto">
3 <text name="contents_text"> 3 <text name="contents_text">
4 e isso contém: 4 e isso contém:
@@ -6,6 +6,21 @@
6 <text name="buy_text"> 6 <text name="buy_text">
7 Comprar por L$[AMOUNT] de(a) [NAME]? 7 Comprar por L$[AMOUNT] de(a) [NAME]?
8 </text> 8 </text>
9 <button label="Cancelar" label_selected="Cancelar" name="cancel_btn" /> 9 <button label="Cancelar" label_selected="Cancelar" name="cancel_btn"/>
10 <button label="Comprar" label_selected="Comprar" name="buy_btn" /> 10 <button label="Comprar" label_selected="Comprar" name="buy_btn"/>
11 <string name="title_buy_text">
12 Comprar
13 </string>
14 <string name="title_buy_copy_text">
15 Comprar uma cópia de
16 </string>
17 <string name="no_copy_text">
18 (sem copiar)
19 </string>
20 <string name="no_modify_text">
21 (sem modificar)
22 </string>
23 <string name="no_transfer_text">
24 (sem transferir)
25 </string>
11</floater> 26</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_camera.xml b/linden/indra/newview/skins/default/xui/pt/floater_camera.xml
new file mode 100644
index 0000000..435ba62
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_camera.xml
@@ -0,0 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="move floater" title="">
3 <string name="rotate_tooltip">
4 Girar a Câmera ao redor do Foco
5 </string>
6 <string name="zoom_tooltip">
7 Aproximar a Câmera in direção ao Foco
8 </string>
9 <string name="move_tooltip">
10 Mover a Câmera Para Cima e Para Baixo, Para a Esquerda e Para a Direita
11 </string>
12</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_chat_history.xml b/linden/indra/newview/skins/default/xui/pt/floater_chat_history.xml
index 9471c77..5466467 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_chat_history.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_chat_history.xml
@@ -1,6 +1,52 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="chat floater" title="Histórico de chat"> 2<floater name="chat floater" title="Conversa Local">
3 <button label="Chat" name="Chat" /> 3 <string name="ringing">
4 <button label="Mudo" name="Mute resident" /> 4 Conectando à conversa de Voz no mundo
5 <check_box label="Exibir texto silenciado" name="show mutes" /> 5 </string>
6 <string name="connected">
7 Conectado
8 </string>
9 <string name="unavailable">
10 Voz não disponível na sua localização atual
11 </string>
12 <string name="hang_up">
13 Desconectado da conversa de Voz no mundo
14 </string>
15 <string name="voice_icon">
16 icn_voice-localchat.tga
17 </string>
18 <string name="IM_logging_string">
19 -- log ativado de Mensagem Instantânea --
20 </string>
21 <string name="IM_end_log_string">
22 -- Fim do Log --
23 </string>
24 <layout_stack name="panels">
25 <layout_panel name="im_contents_panel">
26 <combo_box label="Gestos" name="Gesture">
27 <combo_item name="Gestures">
28 Gestos
29 </combo_item>
30 </combo_box>
31 <check_box label="Mostrar texto silenciado" name="show mutes"/>
32 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="Clique aqui para mostrar uma lista dos participantes ativos desta sessão de mensagem instantânea."/>
33 <panel name="chat_panel">
34 <string name="gesture_label">
35 Gestos
36 </string>
37 <line_editor label="Clique aqui para conversar." name="Chat Editor"/>
38 <flyout_button label="Falar" name="Say" tool_tip="(Inserir)">
39 <flyout_button_item name="shout_item">
40 Gritar
41 </flyout_button_item>
42 <flyout_button_item name="say_item">
43 Falar
44 </flyout_button_item>
45 <flyout_button_item name="whisper_item">
46 Sussurrar
47 </flyout_button_item>
48 </flyout_button>
49 </panel>
50 </layout_panel>
51 </layout_stack>
6</floater> 52</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_color_picker.xml b/linden/indra/newview/skins/default/xui/pt/floater_color_picker.xml
index 085dd5a..900c1bc 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_color_picker.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_color_picker.xml
@@ -10,7 +10,7 @@
10 Azul: 10 Azul:
11 </text> 11 </text>
12 <text name="h_val_text"> 12 <text name="h_val_text">
13 Luminosidade: 13 Hue:
14 </text> 14 </text>
15 <text name="s_val_text"> 15 <text name="s_val_text">
16 Sat: 16 Sat:
@@ -26,6 +26,7 @@
26 Cor atual: 26 Cor atual:
27 </text> 27 </text>
28 <text name="(Drag below to save.)"> 28 <text name="(Drag below to save.)">
29 (Arraste abaixo para salvar.) 29 (Arraste abaixo
30para salvar.)
30 </text> 31 </text>
31</floater> 32</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_customize.xml b/linden/indra/newview/skins/default/xui/pt/floater_customize.xml
index 5b86c0b..a0a28e1 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_customize.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_customize.xml
@@ -1,437 +1,453 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater customize" title="Aparência"> 2<floater name="floater customize" title="Aparência" width="513">
3 <tab_container name="customize tab container"> 3 <tab_container name="customize tab container" tab_min_width="115" width="511">
4 <panel label="Partes de Corpo" /> 4 <panel label="Partes de corpo" name="body_parts_placeholder"/>
5 <panel label="Forma" name="Shape"> 5 <panel label="Forma" name="Shape">
6 <button label="Reverter" label_selected="Reverter" name="Revert" /> 6 <button label="Reverter" label_selected="Reverter" name="Revert"/>
7 <button label="Corpo" label_selected="Corpo" name="Body" /> 7 <button label="Corpo" label_selected="Corpo" name="Body"/>
8 <button label="Cabeça" label_selected="Cabeça" name="Head" /> 8 <button label="Cabeça" label_selected="Cabeça" name="Head"/>
9 <button label="Olhos" label_selected="Olhos" name="Eyes" /> 9 <button label="Olhos" label_selected="Olhos" name="Eyes"/>
10 <button label="Orelhas" label_selected="Orelhas" name="Ears" /> 10 <button label="Orelhas" label_selected="Orelhas" name="Ears"/>
11 <button label="Nariz" label_selected="Nariz" name="Nose" /> 11 <button label="Nariz" label_selected="Nariz" name="Nose"/>
12 <button label="Boca" label_selected="Boca" name="Mouth" /> 12 <button label="Boca" label_selected="Boca" name="Mouth"/>
13 <button label="Queixo" label_selected="Queixo" name="Chin" /> 13 <button label="Queixo" label_selected="Queixo" name="Chin"/>
14 <button label="Tórax" label_selected="Tórax" name="Torso" /> 14 <button label="Tórax" label_selected="Tórax" name="Torso"/>
15 <button label="Pernas" label_selected="Pernas" name="Legs" /> 15 <button label="Pernas" label_selected="Pernas" name="Legs"/>
16 <radio_group name="sex radio"> 16 <radio_group name="sex radio">
17 <radio_item type="string" length="1" name="radio"> 17 <radio_item length="1" name="radio" type="string">
18 Feminino 18 Feminino
19 </radio_item> 19 </radio_item>
20 <radio_item type="string" length="1" name="radio2"> 20 <radio_item length="1" name="radio2" type="string">
21 Masculino 21 Masculino
22 </radio_item> 22 </radio_item>
23 </radio_group> 23 </radio_group>
24 <button label="Aleatório" label_selected="Aleatório" name="Randomize" /> 24 <button label="Aleatório" label_selected="Aleatório" name="Randomize"/>
25 <text type="string" length="1" name="title"> 25 <text length="1" name="title" type="string">
26 [DESC] 26 [DESC]
27 </text> 27 </text>
28 <text type="string" length="1" name="title_no_modify"> 28 <text length="1" name="title_no_modify" type="string">
29 [DESC]: não foi possível modificar 29 [DESC]: não foi possível modificar
30 </text> 30 </text>
31 <text type="string" length="1" name="title_loading"> 31 <text length="1" name="title_loading" type="string">
32 [DESC]: carregando... 32 [DESC]: carregando...
33 </text> 33 </text>
34 <text type="string" length="1" name="title_not_worn"> 34 <text length="1" name="title_not_worn" type="string">
35 [DESC]: não vestido 35 [DESC]: não vestido
36 </text> 36 </text>
37 <text type="string" length="1" name="path"> 37 <text length="1" name="path" type="string">
38 Localizado em [PATH] 38 Localizado em [PATH]
39 </text> 39 </text>
40 <text type="string" length="1" name="not worn instructions"> 40 <text length="1" name="not worn instructions" type="string">
41 Coloque um novo formato arrastando um dos seus de seu inventário para seu avatar. Alternativamente, você pode criar um novo a partir deste e usá-lo. 41 Coloque um novo formato arrastando um dos seus de seu inventário
42para seu avatar. Alternativamente, você pode criar um novo a partir
43deste e usá-lo.
42 </text> 44 </text>
43 <text type="string" length="1" name="no modify instructions"> 45 <text length="1" name="no modify instructions" type="string">
44 Você não tem permissão para modificar esta vestimenta. 46 Você não tem permissão para modificar esta vestimenta.
45 </text> 47 </text>
46 <button label="Criar Nova Forma" label_selected="Criar Nova Forma" name="Create New" /> 48 <button label="Criar Nova Forma" label_selected="Criar Nova Forma" name="Create New"/>
47 <button label="Remover" label_selected="Remover" name="Take Off" /> 49 <button label="Remover" label_selected="Remover" name="Take Off"/>
48 <button label="Salvar" label_selected="Salvar" name="Save" /> 50 <button label="Salvar" label_selected="Salvar" name="Save"/>
49 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" /> 51 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
50 </panel> 52 </panel>
51 <panel label="Pele" name="Skin"> 53 <panel label="Pele" name="Skin">
52 <button label="Cor de Pele" label_selected="Cor de Pele" name="Skin Color" /> 54 <button label="Cor de Pele" label_selected="Cor de Pele" name="Skin Color"/>
53 <button label="Detalhes Faciais" label_selected="Detalhes Faciais" name="Face Detail" /> 55 <button label="Detalhes Faciais" label_selected="Detalhes Faciais" name="Face Detail"/>
54 <button label="Maquiagem" label_selected="Maquiagem" name="Makeup" /> 56 <button label="Maquiagem" label_selected="Maquiagem" name="Makeup"/>
55 <button label="Detalhes do Corpo" label_selected="Detalhes do Corpo" name="Body Detail" /> 57 <button label="Detalhes do Corpo" label_selected="Detalhes do Corpo" name="Body Detail"/>
56 <text type="string" length="1" name="title"> 58 <text length="1" name="title" type="string">
57 [DESC] 59 [DESC]
58 </text> 60 </text>
59 <text type="string" length="1" name="title_no_modify"> 61 <text length="1" name="title_no_modify" type="string">
60 [DESC]: não foi possível modificar 62 [DESC]: não foi possível modificar
61 </text> 63 </text>
62 <text type="string" length="1" name="title_loading"> 64 <text length="1" name="title_loading" type="string">
63 [DESC]: carregando.. 65 [DESC]: carregando..
64 </text> 66 </text>
65 <text type="string" length="1" name="title_not_worn"> 67 <text length="1" name="title_not_worn" type="string">
66 [DESC]: não vestido 68 [DESC]: não vestido
67 </text> 69 </text>
68 <text type="string" length="1" name="path"> 70 <text length="1" name="path" type="string">
69 Localizada em [PATH] 71 Localizada em [PATH]
70 </text> 72 </text>
71 <text type="string" length="1" name="not worn instructions"> 73 <text length="1" name="not worn instructions" type="string">
72 Coloque uma nova pele arrastando uma de seu inventário para seu avatar. Alternativamente, você pode criar uma nova forma a partir deste e usá-lo. 74 Coloque uma nova pele arrastando uma de seu inventário para seu avatar.
75Alternativamente, você pode criar uma nova forma a partir deste e usá-lo.
73 </text> 76 </text>
74 <text type="string" length="1" name="no modify instructions"> 77 <text length="1" name="no modify instructions" type="string">
75 Você não tem permissão para modificar esta vestimenta. 78 Você não tem permissão para modificar esta vestimenta.
76 </text> 79 </text>
77 <texture_picker label="Tatuagens para cabeça" name="Head Tattoos" 80 <texture_picker label="Tatuagens para cabeça" name="Head Tattoos" tool_tip="Clique para escolher um desenho"/>
78 tool_tip="Clique para escolher um desenho" /> 81 <texture_picker label="Tattoos Superiores" name="Upper Tattoos" tool_tip="Clique para escolher um desenho"/>
79 <texture_picker label="Tattoos Superiores" name="Upper Tattoos" 82 <texture_picker label="Tattoos Inferiores" name="Lower Tattoos" tool_tip="Clique para escolher um desenho"/>
80 tool_tip="Clique para escolher um desenho" /> 83 <button label="Aleatório" label_selected="Aleatório" name="Randomize"/>
81 <texture_picker label="Tattoos Inferiores" name="Lower Tattoos" 84 <button label="Criar Nova Pele" label_selected="Criar Nova Pele" name="Create New"/>
82 tool_tip="Clique para escolher um desenho" /> 85 <button label="Remover" label_selected="Remover" name="Take Off"/>
83 <button label="Aleatório" label_selected="Aleatório" name="Randomize" /> 86 <button label="Salvar" label_selected="Salvar" name="Save"/>
84 <button label="Criar Nova Pele" label_selected="Criar Nova Pele" name="Create New" /> 87 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
85 <button label="Remover" label_selected="Remover" name="Take Off" /> 88 <button label="Reverter" label_selected="Reverter" name="Revert"/>
86 <button label="Salvar" label_selected="Salvar" name="Save" />
87 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" />
88 <button label="Reverter" label_selected="Reverter" name="Revert" />
89 </panel> 89 </panel>
90 <panel label="Cabelo" name="Hair"> 90 <panel label="Cabelo" name="Hair">
91 <button label="Cor" label_selected="Cor" name="Color" /> 91 <button label="Cor" label_selected="Cor" name="Color"/>
92 <button label="Estilo" label_selected="Estilo" name="Style" /> 92 <button label="Estilo" label_selected="Estilo" name="Style"/>
93 <button label="Sombrancelhas" label_selected="Sombrancelhas" name="Eyebrows" /> 93 <button label="Sombrancelhas" label_selected="Sombrancelhas" name="Eyebrows"/>
94 <button label="Rosto" label_selected="Rosto" name="Facial" /> 94 <button label="Rosto" label_selected="Rosto" name="Facial"/>
95 <text type="string" length="1" name="title"> 95 <text length="1" name="title" type="string">
96 [DESC] 96 [DESC]
97 </text> 97 </text>
98 <text type="string" length="1" name="title_no_modify"> 98 <text length="1" name="title_no_modify" type="string">
99 [DESC]: não foi possível modificar 99 [DESC]: não foi possível modificar
100 </text> 100 </text>
101 <text type="string" length="1" name="title_loading"> 101 <text length="1" name="title_loading" type="string">
102 [DESC]: carregando... 102 [DESC]: carregando...
103 </text> 103 </text>
104 <text type="string" length="1" name="title_not_worn"> 104 <text length="1" name="title_not_worn" type="string">
105 [DESC]: não vestido 105 [DESC]: não vestido
106 </text> 106 </text>
107 <text type="string" length="1" name="path"> 107 <text length="1" name="path" type="string">
108 Localizado em [PATH] 108 Localizado em [PATH]
109 </text> 109 </text>
110 <text type="string" length="1" name="not worn instructions"> 110 <text length="1" name="not worn instructions" type="string">
111 Ponha um novo cabelo em seu avatar arrastando um do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo. 111 Ponha um novo cabelo em seu avatar arrastando um do seu inventário.
112Alternativamente, você pode criar um novo modelo a partir deste e
113usá-lo.
112 </text> 114 </text>
113 <text type="string" length="1" name="no modify instructions"> 115 <text length="1" name="no modify instructions" type="string">
114 Você não ter permissão para modificar essa vestimenta. 116 Você não ter permissão para modificar essa vestimenta.
115 </text> 117 </text>
116 <texture_picker label="Texture" name="Texture" tool_tip="Clique para escolher uma imagem" /> 118 <texture_picker label="Texture" name="Texture" tool_tip="Clique para escolher uma imagem"/>
117 <button label="Aleatório" label_selected="Aleatório" name="Randomize" /> 119 <button label="Aleatório" label_selected="Aleatório" name="Randomize"/>
118 <button label="Criar Novo Cabelo" label_selected="Criar Novo Cabelo" name="Create New" /> 120 <button label="Criar Novo Cabelo" label_selected="Criar Novo Cabelo" name="Create New"/>
119 <button label="Remover" label_selected="Remover" name="Take Off" /> 121 <button label="Remover" label_selected="Remover" name="Take Off"/>
120 <button label="Salvar" label_selected="Salvar" name="Save" /> 122 <button label="Salvar" label_selected="Salvar" name="Save"/>
121 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" /> 123 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
122 <button label="Reverter" label_selected="Reverter" name="Revert" /> 124 <button label="Reverter" label_selected="Reverter" name="Revert"/>
123 </panel> 125 </panel>
124 <panel label="Olhos" name="Eyes"> 126 <panel label="Olhos" name="Eyes">
125 <text type="string" length="1" name="title"> 127 <text length="1" name="title" type="string">
126 [DESC] 128 [DESC]
127 </text> 129 </text>
128 <text type="string" length="1" name="title_no_modify"> 130 <text length="1" name="title_no_modify" type="string">
129 [DESC]: não foi possível modificar 131 [DESC]: não foi possível modificar
130 </text> 132 </text>
131 <text type="string" length="1" name="title_loading"> 133 <text length="1" name="title_loading" type="string">
132 [DESC]: carregando... 134 [DESC]: carregando...
133 </text> 135 </text>
134 <text type="string" length="1" name="title_not_worn"> 136 <text length="1" name="title_not_worn" type="string">
135 [DESC]: não vestido 137 [DESC]: não vestido
136 </text> 138 </text>
137 <text type="string" length="1" name="path"> 139 <text length="1" name="path" type="string">
138 Localizado em [PATH] 140 Localizado em [PATH]
139 </text> 141 </text>
140 <text type="string" length="1" name="not worn instructions"> 142 <text length="1" name="not worn instructions" type="string">
141 Para colocar novos olhos, arraste um do seu inventário para seu avatar. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo. 143 Para colocar novos olhos, arraste um do seu inventário para seu avatar.
144Alternativamente, você pode criar um novo modelo a partir deste e
145usá-lo.
142 </text> 146 </text>
143 <text type="string" length="1" name="no modify instructions"> 147 <text length="1" name="no modify instructions" type="string">
144 Você não tem permissão para alterar esta vestimenta. 148 Você não tem permissão para alterar esta vestimenta.
145 </text> 149 </text>
146 <texture_picker label="Iris" name="Iris" tool_tip="Clique para escolher uma imagem" /> 150 <texture_picker label="Iris" name="Iris" tool_tip="Clique para escolher uma imagem"/>
147 <button label="Aleatório" label_selected="Aleatório" name="Randomize" /> 151 <button label="Aleatório" label_selected="Aleatório" name="Randomize"/>
148 <button label="Criar Novos Olhos" label_selected="Criar Novos Olhos" name="Create New" /> 152 <button label="Criar Novos Olhos" label_selected="Criar Novos Olhos" name="Create New"/>
149 <button label="Remover" label_selected="Remover" name="Take Off" /> 153 <button label="Remover" label_selected="Remover" name="Take Off"/>
150 <button label="Salvar" label_selected="Salvar" name="Save" /> 154 <button label="Salvar" label_selected="Salvar" name="Save"/>
151 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" /> 155 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
152 <button label="Reverter" label_selected="Reverter" name="Revert" /> 156 <button label="Reverter" label_selected="Reverter" name="Revert"/>
153 </panel> 157 </panel>
154 <panel label="Roupas" /> 158 <panel label="Roupas" name="clothes_placeholder"/>
155 <panel label="Camisa" name="Shirt"> 159 <panel label="Camisa" name="Shirt">
156 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem" /> 160 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
157 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas" /> 161 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
158 <button label="Criar Nova Camisa" label_selected="Criar Nova Camisa" name="Create New" /> 162 <button label="Criar Nova Camisa" label_selected="Criar Nova Camisa" name="Create New"/>
159 <button label="Remover" label_selected="Remover" name="Take Off" /> 163 <button label="Remover" label_selected="Remover" name="Take Off"/>
160 <button label="Salvar" label_selected="Salvar" name="Save" /> 164 <button label="Salvar" label_selected="Salvar" name="Save"/>
161 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" /> 165 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
162 <button label="Reverter" label_selected="Reverter" name="Revert" /> 166 <button label="Reverter" label_selected="Reverter" name="Revert"/>
163 <text type="string" length="1" name="title"> 167 <text length="1" name="title" type="string">
164 [DESC] 168 [DESC]
165 </text> 169 </text>
166 <text type="string" length="1" name="title_no_modify"> 170 <text length="1" name="title_no_modify" type="string">
167 [DESC]: não foi possível modificar 171 [DESC]: não foi possível modificar
168 </text> 172 </text>
169 <text type="string" length="1" name="title_loading"> 173 <text length="1" name="title_loading" type="string">
170 [DESC]: carregando... 174 [DESC]: carregando...
171 </text> 175 </text>
172 <text type="string" length="1" name="title_not_worn"> 176 <text length="1" name="title_not_worn" type="string">
173 [DESC]: não vestido 177 [DESC]: não vestido
174 </text> 178 </text>
175 <text type="string" length="1" name="path"> 179 <text length="1" name="path" type="string">
176 Localizado em [PATH] 180 Localizado em [PATH]
177 </text> 181 </text>
178 <text type="string" length="1" name="not worn instructions"> 182 <text length="1" name="not worn instructions" type="string">
179 Para por uma nova camisa em seu avatar, arraste uma nova do seu inventário para seu avatar. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo. 183 Para por uma nova camisa em seu avatar, arraste uma nova do seu
184inventário para seu avatar. Alternativamente, você pode criar um
185novo modelo a partir deste e usá-lo.
180 </text> 186 </text>
181 <text type="string" length="1" name="no modify instructions"> 187 <text length="1" name="no modify instructions" type="string">
182 Você não ter permissão para modificar esta vestimenta. 188 Você não ter permissão para modificar esta vestimenta.
183 </text> 189 </text>
184 </panel> 190 </panel>
185 <panel label="Calças" name="Pants"> 191 <panel label="Calças" name="Pants">
186 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem" /> 192 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
187 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para abrir o conta-gotas." /> 193 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para abrir o conta-gotas."/>
188 <button label="Criar Novas Calças" label_selected="Criar Novas Calças" 194 <button label="Criar Novas Calças" label_selected="Criar Novas Calças" name="Create New"/>
189 name="Create New" /> 195 <button label="Remover" label_selected="Remover" name="Take Off"/>
190 <button label="Remover" label_selected="Remover" name="Take Off" /> 196 <button label="Salvar" label_selected="Salvar" name="Save"/>
191 <button label="Salvar" label_selected="Salvar" name="Save" /> 197 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
192 <button label="Salvar como" label_selected="Salvar Como" name="Save As" /> 198 <button label="Reverter" label_selected="Reverter" name="Revert"/>
193 <button label="Reverter" label_selected="Reverter" name="Revert" /> 199 <text length="1" name="title" type="string">
194 <text type="string" length="1" name="title">
195 [DESC] 200 [DESC]
196 </text> 201 </text>
197 <text type="string" length="1" name="title_no_modify"> 202 <text length="1" name="title_no_modify" type="string">
198 [DESC]: não foi possível modificar 203 [DESC]: não foi possível modificar
199 </text> 204 </text>
200 <text type="string" length="1" name="title_loading"> 205 <text length="1" name="title_loading" type="string">
201 [DESC]: carregando... 206 [DESC]: carregando...
202 </text> 207 </text>
203 <text type="string" length="1" name="title_not_worn"> 208 <text length="1" name="title_not_worn" type="string">
204 [DESC]: não vestindo 209 [DESC]: não vestindo
205 </text> 210 </text>
206 <text type="string" length="1" name="path"> 211 <text length="1" name="path" type="string">
207 Localizado em [PATH] 212 Localizado em [PATH]
208 </text> 213 </text>
209 <text type="string" length="1" name="not worn instructions"> 214 <text length="1" name="not worn instructions" type="string">
210 Para por uma nova calça em seu avatar, basta arrastar uma outra do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo. 215 Para por uma nova calça em seu avatar, basta arrastar uma outra do seu
216inventário. Alternativamente, você pode criar um novo modelo a partir
217deste e usá-lo.
211 </text> 218 </text>
212 <text type="string" length="1" name="no modify instructions"> 219 <text length="1" name="no modify instructions" type="string">
213 Você não tem permissão para modificar esta vestimenta. 220 Você não tem permissão para modificar esta vestimenta.
214 </text> 221 </text>
215 </panel> 222 </panel>
216 <panel label="Calçados" name="Shoes"> 223 <panel label="Calçados" name="Shoes">
217 <text type="string" length="1" name="title"> 224 <text length="1" name="title" type="string">
218 [DESC] 225 [DESC]
219 </text> 226 </text>
220 <text type="string" length="1" name="title_no_modify"> 227 <text length="1" name="title_no_modify" type="string">
221 [DESC]: não foi possível modificar 228 [DESC]: não foi possível modificar
222 </text> 229 </text>
223 <text type="string" length="1" name="title_loading"> 230 <text length="1" name="title_loading" type="string">
224 [DESC]: carregando... 231 [DESC]: carregando...
225 </text> 232 </text>
226 <text type="string" length="1" name="title_not_worn"> 233 <text length="1" name="title_not_worn" type="string">
227 [DESC]: não vestido 234 [DESC]: não vestido
228 </text> 235 </text>
229 <text type="string" length="1" name="path"> 236 <text length="1" name="path" type="string">
230 Localizado em [PATH] 237 Localizado em [PATH]
231 </text> 238 </text>
232 <text type="string" length="1" name="not worn instructions"> 239 <text length="1" name="not worn instructions" type="string">
233 Para por novos calçados em seu avatar, basta arrastar um novo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo. 240 Para por novos calçados em seu avatar, basta arrastar um novo do seu
241inventário. Alternativamente, você pode criar um novo modelo a partir
242deste e usá-lo.
234 </text> 243 </text>
235 <text type="string" length="1" name="no modify instructions"> 244 <text length="1" name="no modify instructions" type="string">
236 Você não tem permissão para modificar esta vestimenta. 245 Você não tem permissão para modificar esta vestimenta.
237 </text> 246 </text>
238 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem" /> 247 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
239 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas" /> 248 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
240 <button label="Criar Novos Sapatos" label_selected="Criar Novos Sapatos" 249 <button label="Criar Novos Calçados" label_selected="Criar Novos Sapatos" name="Create New" width="166"/>
241 name="Create New" /> 250 <button label="Despir" label_selected="Despir" name="Take Off"/>
242 <button label="Despir" label_selected="Despir" name="Take Off" /> 251 <button label="Salvar" label_selected="Salvar" name="Save"/>
243 <button label="Salvar" label_selected="Salvar" name="Save" /> 252 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
244 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" /> 253 <button label="Reverter" label_selected="Reverter" name="Revert"/>
245 <button label="Reverter" label_selected="Reverter" name="Revert" />
246 </panel> 254 </panel>
247 <panel label="Meias" name="Socks"> 255 <panel label="Meias" name="Socks">
248 <text type="string" length="1" name="title"> 256 <text length="1" name="title" type="string">
249 [DESC] 257 [DESC]
250 </text> 258 </text>
251 <text type="string" length="1" name="title_no_modify"> 259 <text length="1" name="title_no_modify" type="string">
252 [DESC]: não foi possível modificar 260 [DESC]: não foi possível modificar
253 </text> 261 </text>
254 <text type="string" length="1" name="title_loading"> 262 <text length="1" name="title_loading" type="string">
255 [DESC]: carregando... 263 [DESC]: carregando...
256 </text> 264 </text>
257 <text type="string" length="1" name="title_not_worn"> 265 <text length="1" name="title_not_worn" type="string">
258 [DESC]: não vestido. 266 [DESC]: não vestido.
259 </text> 267 </text>
260 <text type="string" length="1" name="path"> 268 <text length="1" name="path" type="string">
261 Localizado em [PATH] 269 Localizado em [PATH]
262 </text> 270 </text>
263 <text type="string" length="1" name="not worn instructions"> 271 <text length="1" name="not worn instructions" type="string">
264 Para por uma nova meia em seu avatar, basta arrastar uma nova do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo. 272 Para por uma nova meia em seu avatar, basta arrastar uma nova do seu
273inventário. Alternativamente, você pode criar um novo modelo a partir
274deste e usá-lo.
265 </text> 275 </text>
266 <text type="string" length="1" name="no modify instructions"> 276 <text length="1" name="no modify instructions" type="string">
267 Você não tem permissão para modificar essa vestimenta. 277 Você não tem permissão para modificar essa vestimenta.
268 </text> 278 </text>
269 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem" /> 279 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
270 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas" /> 280 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
271 <button label="Criar Novas Meias" label_selected="Criar Novas Meias" name="Create New" /> 281 <button label="Criar Novas Meias" label_selected="Criar Novas Meias" name="Create New"/>
272 <button label="Remover" label_selected="Remover" name="Take Off" /> 282 <button label="Remover" label_selected="Remover" name="Take Off"/>
273 <button label="Salvar" label_selected="Salvar" name="Save" /> 283 <button label="Salvar" label_selected="Salvar" name="Save"/>
274 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" /> 284 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
275 <button label="Reverter" label_selected="Reverter" name="Revert" /> 285 <button label="Reverter" label_selected="Reverter" name="Revert"/>
276 </panel> 286 </panel>
277 <panel label="Jaqueta" name="Jacket"> 287 <panel label="Jaqueta" name="Jacket">
278 <text type="string" length="1" name="title"> 288 <text length="1" name="title" type="string">
279 [DESC] 289 [DESC]
280 </text> 290 </text>
281 <text type="string" length="1" name="title_no_modify"> 291 <text length="1" name="title_no_modify" type="string">
282 [DESC]: Não foi possível modificar 292 [DESC]: Não foi possível modificar
283 </text> 293 </text>
284 <text type="string" length="1" name="title_loading"> 294 <text length="1" name="title_loading" type="string">
285 [DESC]: carregando... 295 [DESC]: carregando...
286 </text> 296 </text>
287 <text type="string" length="1" name="title_not_worn"> 297 <text length="1" name="title_not_worn" type="string">
288 [DESC]: não vestido 298 [DESC]: não vestido
289 </text> 299 </text>
290 <text type="string" length="1" name="path"> 300 <text length="1" name="path" type="string">
291 Localizado em [PATH] 301 Localizado em [PATH]
292 </text> 302 </text>
293 <text type="string" length="1" name="not worn instructions"> 303 <text length="1" name="not worn instructions" type="string">
294 Para por uma nova jaqueta em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo. 304 Para por uma nova jaqueta em seu avatar, basta arrastar um novo modelo
305do seu inventário. Alternativamente, você pode criar um novo modelo a
306partir deste e usá-lo.
295 </text> 307 </text>
296 <text type="string" length="1" name="no modify instructions"> 308 <text length="1" name="no modify instructions" type="string">
297 Você não tem permissão para modificar esta vestimenta. 309 Você não tem permissão para modificar esta vestimenta.
298 </text> 310 </text>
299 <texture_picker label="Tecido Superior" name="Upper Fabric" 311 <texture_picker label="Tecido Superior" name="Upper Fabric" tool_tip="Clique para escolher uma imagem." width="84"/>
300 tool_tip="Clique para escolher uma imagem." /> 312 <texture_picker label="Tecido Inferior" name="Lower Fabric" tool_tip="Clique para escolher uma imagem." width="84"/>
301 <texture_picker label="Tecido Inferior" name="Lower Fabric" 313 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
302 tool_tip="Clique para escolher uma imagem." /> 314 <button label="Criar Nova Jaqueta" label_selected="Criar Nova Jaqueta" name="Create New"/>
303 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas" /> 315 <button label="Remover" label_selected="Remover" name="Take Off"/>
304 <button label="Criar Nova Jaqueta" label_selected="Criar Nova Jaqueta" 316 <button label="Salvar" label_selected="Salvar" name="Save"/>
305 name="Create New" /> 317 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
306 <button label="Remover" label_selected="Remover" name="Take Off" /> 318 <button label="Reverter" label_selected="Reverter" name="Revert"/>
307 <button label="Salvar" label_selected="Salvar" name="Save" />
308 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" />
309 <button label="Reverter" label_selected="Reverter" name="Revert" />
310 </panel> 319 </panel>
311 <panel label="Luvas" name="Gloves"> 320 <panel label="Luvas" name="Gloves">
312 <text type="string" length="1" name="title"> 321 <text length="1" name="title" type="string">
313 [DESC] 322 [DESC]
314 </text> 323 </text>
315 <text type="string" length="1" name="title_no_modify"> 324 <text length="1" name="title_no_modify" type="string">
316 [DESC]: não foi possível modificar 325 [DESC]: não foi possível modificar
317 </text> 326 </text>
318 <text type="string" length="1" name="title_loading"> 327 <text length="1" name="title_loading" type="string">
319 [DESC]: carregando.... 328 [DESC]: carregando....
320 </text> 329 </text>
321 <text type="string" length="1" name="title_not_worn"> 330 <text length="1" name="title_not_worn" type="string">
322 [DESC]: não vestido 331 [DESC]: não vestido
323 </text> 332 </text>
324 <text type="string" length="1" name="path"> 333 <text length="1" name="path" type="string">
325 Localizado em [PATH] 334 Localizado em [PATH]
326 </text> 335 </text>
327 <text type="string" length="1" name="not worn instructions"> 336 <text length="1" name="not worn instructions" type="string">
328 Pra por uma nova jaqueta em seu avatar, basta arastar um novo modelo do seu inventário. Alternativamente, você pode criar uma novo modlo a partir deste e usá-lo. 337 Pra por uma nova jaqueta em seu avatar, basta arastar um novo modelo
338do seu inventário. Alternativamente, você pode criar uma novo modelo a
339partir deste e usá-lo.
329 </text> 340 </text>
330 <text type="string" length="1" name="no modify instructions"> 341 <text length="1" name="no modify instructions" type="string">
331 Você não tem permissão para modificar essa vestimenta. 342 Você não tem permissão para modificar essa vestimenta.
332 </text> 343 </text>
333 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem" /> 344 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
334 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para abrir o conta-gotas" /> 345 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para abrir o conta-gotas"/>
335 <button label="Criar Novas Luvas" label_selected="Criar Novas Luvas" name="Create New" /> 346 <button label="Criar Novas Luvas" label_selected="Criar Novas Luvas" name="Create New"/>
336 <button label="Remover" label_selected="Remover" name="Take Off" /> 347 <button label="Remover" label_selected="Remover" name="Take Off"/>
337 <button label="Salvar" label_selected="Salvar" name="Save" /> 348 <button label="Salvar" label_selected="Salvar" name="Save"/>
338 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" /> 349 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
339 <button label="Reverter" label_selected="Reverter" name="Revert" /> 350 <button label="Reverter" label_selected="Reverter" name="Revert"/>
340 </panel> 351 </panel>
341 <panel label="Camiseta" name="Undershirt"> 352 <panel label="Camiseta" name="Undershirt">
342 <text type="string" length="1" name="title"> 353 <text length="1" name="title" type="string">
343 [DESC] 354 [DESC]
344 </text> 355 </text>
345 <text type="string" length="1" name="title_no_modify"> 356 <text length="1" name="title_no_modify" type="string">
346 [DESC]: não foi possível modificar 357 [DESC]: não foi possível modificar
347 </text> 358 </text>
348 <text type="string" length="1" name="title_loading"> 359 <text length="1" name="title_loading" type="string">
349 [DESC]: carregando... 360 [DESC]: carregando...
350 </text> 361 </text>
351 <text type="string" length="1" name="title_not_worn"> 362 <text length="1" name="title_not_worn" type="string">
352 [DESC]: não vestido 363 [DESC]: não vestido
353 </text> 364 </text>
354 <text type="string" length="1" name="path"> 365 <text length="1" name="path" type="string">
355 Localizado em [PATH] 366 Localizado em [PATH]
356 </text> 367 </text>
357 <text type="string" length="1" name="not worn instructions"> 368 <text length="1" name="not worn instructions" type="string">
358 Para por uma nova Camiseta em seu avatar, basta arrastar um novo modelo de seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo. 369 Para por uma nova Camiseta em seu avatar, basta arrastar um novo
370modelo de seu inventário. Alternativamente, você pode criar um
371novo modelo a partir deste e usá-lo.
359 </text> 372 </text>
360 <text type="string" length="1" name="no modify instructions"> 373 <text length="1" name="no modify instructions" type="string">
361 Você não ter permissão para modificar essa vestimenta. 374 Você não ter permissão para modificar essa vestimenta.
362 </text> 375 </text>
363 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem" /> 376 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
364 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para abrir o conta-gotas" /> 377 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para abrir o conta-gotas"/>
365 <button label="Criar Nova Roupa de Baixo" label_selected="Criar Nova Roupa de Baixo" 378 <button label="Criar Nova Camiseta" label_selected="Criar Nova Roupa de Baixo" name="Create New"/>
366 name="Create New" /> 379 <button label="Remover" label_selected="Remover" name="Take Off"/>
367 <button label="Remover" label_selected="Remover" name="Take Off" /> 380 <button label="Salvar" label_selected="Salvar" name="Save"/>
368 <button label="Salvar" label_selected="Salvar" name="Save" /> 381 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
369 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" /> 382 <button label="Reverter" label_selected="Reverter" name="Revert"/>
370 <button label="Reverter" label_selected="Reverter" name="Revert" />
371 </panel> 383 </panel>
372 <panel label="Roupas de Baixo" name="Underpants"> 384 <panel label="Roupas de Baixo" name="Underpants">
373 <text type="string" length="1" name="title"> 385 <text length="1" name="title" type="string">
374 [DESC] 386 [DESC]
375 </text> 387 </text>
376 <text type="string" length="1" name="title_no_modify"> 388 <text length="1" name="title_no_modify" type="string">
377 [DESC]: não foi possível modificar 389 [DESC]: não foi possível modificar
378 </text> 390 </text>
379 <text type="string" length="1" name="title_loading"> 391 <text length="1" name="title_loading" type="string">
380 [DESC]: carregando... 392 [DESC]: carregando...
381 </text> 393 </text>
382 <text type="string" length="1" name="title_not_worn"> 394 <text length="1" name="title_not_worn" type="string">
383 [DESC]: não vestido 395 [DESC]: não vestido
384 </text> 396 </text>
385 <text type="string" length="1" name="path"> 397 <text length="1" name="path" type="string">
386 Localizado em [PATH] 398 Localizado em [PATH]
387 </text> 399 </text>
388 <text type="string" length="1" name="not worn instructions"> 400 <text length="1" name="not worn instructions" type="string">
389 Para por novas roupas de baixo em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo. 401 Para por novas roupas de baixo em seu avatar, basta arrastar um novo
402modelo do seu inventário. Alternativamente, você pode criar um novo
403modelo a partir deste e usá-lo.
390 </text> 404 </text>
391 <text type="string" length="1" name="no modify instructions"> 405 <text length="1" name="no modify instructions" type="string">
392 Você não tem permissão para modificar essa vestimenta. 406 Você não tem permissão para modificar essa vestimenta.
393 </text> 407 </text>
394 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem" /> 408 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
395 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas" /> 409 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
396 <button label="Criar Novas Roupas de Baixo" 410 <button label="Criar Novas Roupas de Baixo" label_selected="Criar Novas Roupas de Baixo" name="Create New" width="176"/>
397 label_selected="Criar Novas Roupas de Baixo" name="Create New" /> 411 <button label="Remover" label_selected="Remover" name="Take Off"/>
398 <button label="Remover" label_selected="Remover" name="Take Off" /> 412 <button label="Salvar" label_selected="Salvar" name="Save"/>
399 <button label="Salvar" label_selected="Salvar" name="Save" /> 413 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
400 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" /> 414 <button label="Reverter" label_selected="Reverter" name="Revert"/>
401 <button label="Reverter" label_selected="Reverter" name="Revert" />
402 </panel> 415 </panel>
403 <panel label="Saia" name="Skirt"> 416 <panel label="Saia" name="Skirt">
404 <text type="string" length="1" name="title"> 417 <text length="1" name="title" type="string">
405 [DESC] 418 [DESC]
406 </text> 419 </text>
407 <text type="string" length="1" name="title_no_modify"> 420 <text length="1" name="title_no_modify" type="string">
408 [DESC]: não foi possível modificar 421 [DESC]: não foi possível modificar
409 </text> 422 </text>
410 <text type="string" length="1" name="title_loading"> 423 <text length="1" name="title_loading" type="string">
411 [DESC]: carregando... 424 [DESC]: carregando...
412 </text> 425 </text>
413 <text type="string" length="1" name="title_not_worn"> 426 <text length="1" name="title_not_worn" type="string">
414 [DESC]: não vestido 427 [DESC]: não vestido
415 </text> 428 </text>
416 <text type="string" length="1" name="path"> 429 <text length="1" name="path" type="string">
417 Localizado em [PATH] 430 Localizado em [PATH]
418 </text> 431 </text>
419 <text type="string" length="1" name="not worn instructions"> 432 <text length="1" name="not worn instructions" type="string">
420 Para por uma nova saia em seu avatar, basta arrastar um novo modelo do seu inventário. Alternativamente, você pode criar um novo modelo a partir deste e usá-lo. 433 Para por uma nova saia em seu avatar, basta arrastar um novo modelo
434do seu inventário. Alternativamente, você pode criar um novo modelo a
435partir deste e usá-lo.
421 </text> 436 </text>
422 <text type="string" length="1" name="no modify instructions"> 437 <text length="1" name="no modify instructions" type="string">
423 Você não tem permissão para modificar essa vestimenta. 438 Você não tem permissão para modificar essa vestimenta.
424 </text> 439 </text>
425 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem" /> 440 <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
426 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Click to open Color Picker" /> 441 <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Click to open Color Picker"/>
427 <button label="Criar Nova Saia" label_selected="Criar Nova Saia" name="Create New" /> 442 <button label="Criar Nova Saia" label_selected="Criar Nova Saia" name="Create New"/>
428 <button label="Remover" label_selected="Remover" name="Take Off" /> 443 <button label="Remover" label_selected="Remover" name="Take Off"/>
429 <button label="Salvar" label_selected="Salvar" name="Save" /> 444 <button label="Salvar" label_selected="Salvar" name="Save"/>
430 <button label="Salvar Como" label_selected="Salvar Como" name="Save As" /> 445 <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
431 <button label="Reverter" label_selected="Reverter" name="Revert" /> 446 <button label="Reverter" label_selected="Reverter" name="Revert"/>
432 </panel> 447 </panel>
433 </tab_container> 448 </tab_container>
434 <button label="Criar Visual" label_selected="Criar Visual" name="Make Outfit" /> 449 <scroll_container left="216" name="panel_container"/>
435 <button label="Salvar Tudo" label_selected="Salvar Tudo" name="Save All" /> 450 <button label="Fechar" label_selected="Fechar" name="Close"/>
436 <button label="Fechar" label_selected="Fechar" name="Close" /> 451 <button label="Salvar Tudo" label_selected="Salvar Tudo" name="Save All"/>
452 <button label="Criar Visual" label_selected="Criar Visual" name="Make Outfit"/>
437</floater> 453</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml b/linden/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
new file mode 100644
index 0000000..a76d06e
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
@@ -0,0 +1,67 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Day Cycle Floater" title="Editor de ciclo de dia">
3 <tab_container name="Day Cycle Tabs">
4 <panel label="Ciclo do dia" name="Day Cycle">
5 <button label="?" name="WLDayCycleHelp"/>
6 <text name="WL12am">
7 12:00 meia-noite
8 </text>
9 <text name="WL3am">
10 3:00 da manhã
11 </text>
12 <text name="WL6am">
13 6:00 da manhã
14 </text>
15 <text name="WL9amHash">
16 9:00 da manhã
17 </text>
18 <text name="WL12pmHash">
19 12:00 meio dia
20 </text>
21 <text name="WL3pm">
22 3:00 da tarde
23 </text>
24 <text name="WL6pm">
25 6:00 da tarde
26 </text>
27 <text name="WL9pm">
28 9:00 da noite
29 </text>
30 <text name="WL12am2">
31 12:00 meia noite
32 </text>
33 <button label="Add Key" label_selected="Adicionar chave" name="WLAddKey"/>
34 <button label="Apagar chave" label_selected="Apagar chave" name="WLDeleteKey"/>
35 <text name="WLCurKeyFrameText">
36 Configurações de Key Frame:
37 </text>
38 <text name="WLCurKeyTimeText">
39 Tempo de chave:
40 </text>
41 <spinner label="Hora" name="WLCurKeyHour"/>
42 <spinner label="Minutos" name="WLCurKeyMin"/>
43 <text name="WLCurKeyTimeText2">
44 Apresentação chave:
45 </text>
46 <combo_box label="Apresentação" name="WLKeyPresets"/>
47 <text name="DayCycleText">
48 Snap:
49 </text>
50 <combo_box label="5 minutos" name="WLSnapOptions"/>
51 <text name="DayCycleText2">
52 Duração do Ciclo:
53 </text>
54 <spinner label="Hora" name="WLLengthOfDayHour"/>
55 <spinner label="Minuto" name="WLLengthOfDayMin"/>
56 <spinner label="Segundo" name="WLLengthOfDaySec"/>
57 <text name="DayCycleText3">
58 Preview:
59 </text>
60 <button label="Tocar" label_selected="Tocar" name="WLAnimSky"/>
61 <button label="Pare!" label_selected="Pare" name="WLStopAnimSky"/>
62 <button label="Usar o horário do Terreno" label_selected="Ir para o horário do Terreno" name="WLUseLindenTime"/>
63 <button label="Salvar o Dia teste" label_selected="Salvar o Dia teste" name="WLSaveDayCycle"/>
64 <button label="Carregar o Dia teste" label_selected="Carregar o Dia teste" name="WLLoadDayCycle"/>
65 </panel>
66 </tab_container>
67</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_directory.xml b/linden/indra/newview/skins/default/xui/pt/floater_directory.xml
index bcc31bd..5374630 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_directory.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_directory.xml
@@ -1,36 +1,60 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="directory" title="Procurar"> 2<floater name="directory" title="Busca Second Life">
3 <tab_container name="Directory Tabs"> 3 <tab_container name="Directory Tabs">
4 <panel label="Tudo" name="all_panel"> 4 <panel label="Todos" name="find_all_panel">
5 <button label="&lt; Prev" label_selected="&lt; Prev" name="&lt; Prev" /> 5 <string name="searching_text">
6 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;" /> 6 Buscando...
7 <text name="find"> 7 </string>
8 Encontrar: 8 <string name="not_found_text">
9 </text> 9 Nada foi encontrado.
10 <button label="Buscar" label_selected="Buscar" name="Search" /> 10 </string>
11 <check_box label="Incluir conteúdo adulto" name="incmature" /> 11 <button label="Voltar" name="back_btn"/>
12 <scroll_list name="results"> 12 <button label="Encaminhar" name="forward_btn"/>
13 <column label="" name="icon" /> 13 <line_editor label="Busca" name="search_editor" tool_tip="Busca Second Life"/>
14 <column label="Nome" name="name" /> 14 <button label="Buscar" name="search_btn"/>
15 <column label="Preço" name="price" /> 15 <combo_box name="Category">
16 <column label="Tempo (PDT)" name="date" /> 16 <combo_item name="AnyCategory">
17 <column label="Tempo" name="time" /> 17 Qualquer categoria
18 <column label="Tráfego" name="dwell" /> 18 </combo_item>
19 <column label="Ãrea" name="area" /> 19 <combo_item name="Events">
20 <column label="L$/m²" name="per_meter" /> 20 Eventos
21 <column label="Online" name="online" /> 21 </combo_item>
22 <column label="Membros" name="members" /> 22 <combo_item name="Groups">
23 <column label="" name="score" /> 23 Grupos
24 </scroll_list> 24 </combo_item>
25 <combo_item name="People">
26 Pessoas
27 </combo_item>
28 <combo_item name="Places">
29 Lugares
30 </combo_item>
31 <combo_item name="Wiki">
32 Wiki
33 </combo_item>
34 </combo_box>
35 <check_box label="Incluir conteúdo adulto" name="mature_check"/>
36 <string name="loading_text">
37 Carregando...
38 </string>
39 <string name="done_text">
40 Feito
41 </string>
25 </panel> 42 </panel>
26 <panel label="Anúncios" name="classified_panel"> 43 <panel label="Anúncios" name="classified_panel">
27 <button label="&lt; Prev" label_selected="&lt; Prev" name="&lt; Prev" /> 44 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;"/>
28 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;" /> 45 <string name="searching_text">
29 <text name="find"> 46 Buscando...
47 </string>
48 <string name="not_found_text">
49 Nada foi encontrado.
50 </string>
51 <button label="&lt; Prev" label_selected="&lt; Prev" name="&lt; Prev"/>
52 <text name="find" width="63">
30 Encontrar: 53 Encontrar:
31 </text> 54 </text>
32 <check_box label="Incluir Conteúdo Adulto" name="incmature" /> 55 <line_editor left_delta="58" name="name" width="128"/>
33 <combo_box name="Category"> 56 <check_box label="Incluir conteúdo adulto" name="incmature"/>
57 <combo_box name="Category" left="195" width="154">
34 <combo_item name="AnyCategory"> 58 <combo_item name="AnyCategory">
35 Qualquer Categoria 59 Qualquer Categoria
36 </combo_item> 60 </combo_item>
@@ -62,18 +86,24 @@
62 Pessoal 86 Pessoal
63 </combo_item> 87 </combo_item>
64 </combo_box> 88 </combo_box>
65 <button label="Buscar" label_selected="Buscar" name="Search" /> 89 <button label="Procura" label_selected="Procura" name="Browse" left_delta="162" />
66 <button label="Colocar Anúncio" label_selected="Colocar Anúncio" 90 <button label="Buscar" label_selected="Buscar" name="Search"/>
67 name="Place an Ad..." /> 91 <button label="Colocar Anúncio" label_selected="Colocar Anúncio" name="Place an Ad..."/>
68 <button label="Apagar" label_selected="Apagar" name="Delete" /> 92 <button label="Apagar" label_selected="Apagar" name="Delete"/>
69 <scroll_list name="results"> 93 <scroll_list name="results">
70 <column label="" name="icon" /> 94 <column label="" name="icon"/>
71 <column label="" name="type" /> 95 <column label="" name="type"/>
72 <column label="Nome" name="name" /> 96 <column label="Nome" name="name"/>
73 <column label="Preço" name="price" /> 97 <column label="Preço" name="price"/>
74 </scroll_list> 98 </scroll_list>
75 </panel> 99 </panel>
76 <panel label="Eventos" name="events_panel"> 100 <panel label="Eventos" name="events_panel">
101 <string name="searching_text">
102 Buscando...
103 </string>
104 <string name="not_found_text">
105 Nada foi encontrado.
106 </string>
77 <radio_group name="date_mode"> 107 <radio_group name="date_mode">
78 <radio_item name="current"> 108 <radio_item name="current">
79 Em progresso e processando 109 Em progresso e processando
@@ -82,15 +112,12 @@
82 Data 112 Data
83 </radio_item> 113 </radio_item>
84 </radio_group> 114 </radio_group>
85 <button label="&lt;&lt;" label_selected="&lt;&lt;" name="&lt;&lt;" 115 <button label="&lt;&lt;" label_selected="&lt;&lt;" name="&lt;&lt;" tool_tip="Voltar um dia"/>
86 tool_tip="Voltar um dia" />
87 <text name="date_text"> 116 <text name="date_text">
88 6/6 117 6/6
89 </text> 118 </text>
90 <button label="&gt;&gt;" label_selected="&gt;&gt;" name="&gt;&gt;" 119 <button label="&gt;&gt;" label_selected="&gt;&gt;" name="&gt;&gt;" tool_tip="Avançar um dia"/>
91 tool_tip="Avançar um dia" /> 120 <button label="Hoje" label_selected="Hoje" name="Today" tool_tip="Exibir dias dos eventos"/>
92 <button label="Hoje" label_selected="Hoje" name="Today"
93 tool_tip="Exibir dias dos eventos" />
94 <text name="text"> 121 <text name="text">
95 Categoria: 122 Categoria:
96 </text> 123 </text>
@@ -135,50 +162,58 @@
135 Variados 162 Variados
136 </combo_item> 163 </combo_item>
137 </combo_box> 164 </combo_box>
138 <check_box label="Conteúdo Adulto" name="incmature" /> 165 <check_box label="Incluir conteúdo &#10;adulto" name="incmature"/>
139 <button label="Buscar" label_selected="Buscar" name="Search" tool_tip="Buscar" /> 166 <button label="Buscar" label_selected="Buscar" name="Search" tool_tip="Buscar"/>
140 <button label="Apagar" label_selected="Apagar" name="Delete" /> 167 <button label="Apagar" label_selected="Apagar" name="Delete"/>
141 <scroll_list name="results"> 168 <scroll_list name="results">
142 <column label="" name="icon" /> 169 <column label="" name="icon"/>
143 <column label="" name="type" /> 170 <column label="" name="type"/>
144 <column label="Nome" name="name" /> 171 <column label="Nome" name="name"/>
145 <column label="Tempo (PDT)" name="date" /> 172 <column label="Tempo (PDT)" name="date"/>
146 <column label="" name="event_id" /> 173 <column label="" name="event_id"/>
147 <column label="Tempo" name="time" /> 174 <column label="Tempo" name="time"/>
148 </scroll_list> 175 </scroll_list>
149 <button label="&lt; Prev" label_selected="&lt; Prev" name="&lt; Prev" /> 176 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;"/>
150 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;" /> 177 <button label="&lt; Prev" label_selected="&lt; Prev" name="&lt; Prev"/>
151 </panel> 178 </panel>
152 <panel label="Lugares Populares" name="popular_panel"> 179 <panel label="Showcase (Mostruário)" name="showcase_panel">
153 <button label="&lt; Anterior" label_selected="&lt; Anterior" name="&lt; Prev" /> 180 <string name="searching_text">
154 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;" /> 181 Buscando...
155 <check_box label="Exibir somente lugares com foto" name="incpictures" /> 182 </string>
156 <check_box label="Incluir lugares em Regiões Adultas" name="incmature" /> 183 <string name="not_found_text">
157 <text 184 Nada foi encontrado.
158 name="These are the most popular places in the world, as measured by traffic, the amount of time people spend there."> 185 </string>
159 Esses são os lugares mais populares no mundo, baseado no tráfego e no tempo 186 <button label="Voltar" name="back_btn"/>
160que as pessoas permanecem lá. 187 <button label="Encaminhar" name="forward_btn"/>
161 </text> 188 <string name="loading_text">
162 <scroll_list name="results"> 189 Carregando...
163 <column label="" name="icon" /> 190 </string>
164 <column label="" name="type" /> 191 <string name="done_text">
165 <column label="Nome" name="name" /> 192 Feito
166 <column label="Tráfego" name="dwell" /> 193 </string>
167 </scroll_list>
168 </panel> 194 </panel>
169 <panel label="Venda de Terrenos" name="land_sales_panel"> 195 <panel label="Venda de Terrenos" name="land_sales_panel">
170 <button label="&lt; Anterior" label_selected="&lt; Anterior" name="&lt; Prev" /> 196 <string name="searching_text">
171 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;" /> 197 Buscando...
198 </string>
199 <string name="not_found_text">
200 Nada foi encontrado.
201 </string>
202 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;"/>
203 <button label="&lt; Anterior" label_selected="&lt; Anterior" name="&lt; Prev"/>
172 <combo_box name="type"> 204 <combo_box name="type">
173 <combo_item name="AllTypes"> 205 <combo_item name="AllTypes">
174 Todos os tipos 206 Todos os tipos
175 </combo_item> 207 </combo_item>
208 <combo_item name="Auction">
209 Leilão
210 </combo_item>
211 <combo_item name="MainlandSales">
212 Mainland - à venda
213 </combo_item>
176 <combo_item name="EstateSales"> 214 <combo_item name="EstateSales">
177 À venda - Região 215 À venda - Região
178 </combo_item> 216 </combo_item>
179 <combo_item name="FirstLand">
180 Primeira Compra
181 </combo_item>
182 </combo_box> 217 </combo_box>
183 <combo_box name="rating"> 218 <combo_box name="rating">
184 <combo_item name="PG&amp;Mature"> 219 <combo_item name="PG&amp;Mature">
@@ -191,31 +226,38 @@ que as pessoas permanecem lá.
191 Adulto somente 226 Adulto somente
192 </combo_item> 227 </combo_item>
193 </combo_box> 228 </combo_box>
194 <check_box label="Preço &lt;= L$" name="pricecheck" /> 229 <check_box label="Preço &lt;= L$" name="pricecheck"/>
195 <check_box label="Ãrea &gt;= m²" name="areacheck" /> 230 <check_box label="Ãrea &gt;= m²" name="areacheck"/>
196 <button label="Buscar" label_selected="Buscar" name="Search" /> 231 <button label="Buscar" label_selected="Buscar" name="Search"/>
197 <text name="land"> 232 <text name="land">
198 Lotes podem ser adquiridos diretamente através de Linden Dollares (L$) ou leilão, 233 Lotes podem ser adquiridos diretamente através de Linden Dollares (L$) ou leilão,
199ambos em L$, US$ ou R$. 234ambos em L$, US$ ou R$. Para comprar diretamente, visite o lote e clique no
200Para comprar diretamente, visite o lote e clique no nome do lugar na barra título. 235nome do lugar na barra título.
201 </text> 236 </text>
202 <scroll_list name="results"> 237 <scroll_list name="results">
203 <column label="" name="icon" /> 238 <column label="" name="icon"/>
204 <column label="" name="type" /> 239 <column label="" name="type"/>
205 <column label="Nome" name="name" /> 240 <column label="Nome" name="name"/>
206 <column label="L$ Preço" name="price" /> 241 <column label="L$ Preço" name="price"/>
207 <column label="Ãrea" name="area" /> 242 <column label="Ãrea" name="area"/>
208 <column label="L$/m²" name="per_meter" /> 243 <column label="L$/m²" name="per_meter"/>
209 </scroll_list> 244 </scroll_list>
210 </panel> 245 </panel>
211 <panel label="Lugares" name="places_panel"> 246 <panel label="Lugares" name="places_panel">
212 <button label="&lt; Anterior" label_selected="&lt; Anterior" name="&lt; Prev" /> 247 <string name="searching_text">
213 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;" /> 248 Buscando...
214 <text name="find"> 249 </string>
250 <string name="not_found_text">
251 Nada foi encontrado.
252 </string>
253 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;"/>
254 <button label="&lt; Anterior" label_selected="&lt; Anterior" name="&lt; Prev"/>
255 <text name="find" width="63">
215 Encontrar: 256 Encontrar:
216 </text> 257 </text>
217 <check_box label="Incluir lugares em Regiões Adultas" name="incmature" /> 258 <line_editor left_delta="58" name="name" width="128"/>
218 <combo_box name="Category"> 259 <check_box label="Incluir lugares em Regiões Adultas" name="incmature"/>
260 <combo_box name="Category" left="195" width="160">
219 <combo_item name="AnyCategory"> 261 <combo_item name="AnyCategory">
220 Qualquer Categoria 262 Qualquer Categoria
221 </combo_item> 263 </combo_item>
@@ -256,41 +298,52 @@ Para comprar diretamente, visite o lote e clique no nome do lugar na barra títu
256 Outros 298 Outros
257 </combo_item> 299 </combo_item>
258 </combo_box> 300 </combo_box>
259 <button label="Buscar" label_selected="Buscar" name="Search" /> 301 <button label="Buscar" label_selected="Buscar" name="Search" left_delta="168"/>
260 <scroll_list name="results"> 302 <scroll_list name="results">
261 <column label="" name="icon" /> 303 <column label="" name="icon"/>
262 <column label="" name="type" /> 304 <column label="" name="type"/>
263 <column label="Nome" name="name" /> 305 <column label="Nome" name="name"/>
264 <column label="Tráfego" name="dwell" /> 306 <column label="Tráfego" name="dwell"/>
265 </scroll_list> 307 </scroll_list>
266 </panel> 308 </panel>
267 <panel label="Pessoas" name="people_panel"> 309 <panel label="Pessoas" name="people_panel">
268 <button label="&lt; Anterior" label_selected="&lt; Anterior" name="&lt; Prev" /> 310 <string name="searching_text">
269 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;" /> 311 buscando...
270 <text name="find"> 312 </string>
313 <string name="not_found_text">
314 Nada foi encontrado.
315 </string>
316 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;"/>
317 <button label="&lt; Anterior" label_selected="&lt; Anterior" name="&lt; Prev"/>
318 <text name="find" width="63">
271 Encontrar: 319 Encontrar:
272 </text> 320 </text>
273 <button label="Buscar" label_selected="Buscar" name="Search" /> 321 <line_editor left_delta="58" name="name" width="200"/>
322 <button label="Buscar" label_selected="Buscar" name="Search"/>
274 <scroll_list name="results"> 323 <scroll_list name="results">
275 <column label="" name="icon" /> 324 <column label="" name="icon"/>
276 <column label="" name="type" /> 325 <column label="" name="type"/>
277 <column label="Nome" name="name" /> 326 <column label="Nome" name="name"/>
278 </scroll_list> 327 </scroll_list>
279 </panel> 328 </panel>
280 <panel label="Grupos" name="groups_panel"> 329 <panel label="Grupos" name="groups_panel">
281 <button label="&lt; Anterior" label_selected="&lt; Anterior" name="&lt; Prev" /> 330 <string name="searching_text">
282 <button label="Próximo &gt;" label_selected="Próximo &gt;" name="Next &gt;" /> 331 Buscando...
283 <text name="find"> 332 </string>
284 Encontrar: 333 <string name="not_found_text">
285 </text> 334 Nada foi encontrado.
286 <button label="Buscar" label_selected="Buscar" name="Search" /> 335 </string>
287 <check_box label="Include Mature groups" name="incmature" /> 336 <button label="Voltar" name="back_btn"/>
288 <scroll_list name="results"> 337 <button label="Encaminhar" name="forward_btn"/>
289 <column label="" name="icon" /> 338 <line_editor label="Busca" name="search_editor" tool_tip="Busca Second Life"/>
290 <column label="" name="type" /> 339 <button label="Busca" name="search_btn"/>
291 <column label="Nome" name="name" /> 340 <check_box label="Incluir conteúdo adulto" name="mature_check"/>
292 <column label="Membros" name="members" /> 341 <string name="loading_text">
293 </scroll_list> 342 carregando...
343 </string>
344 <string name="done_text">
345 Feito
346 </string>
294 </panel> 347 </panel>
295 </tab_container> 348 </tab_container>
296</floater> 349</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_env_settings.xml b/linden/indra/newview/skins/default/xui/pt/floater_env_settings.xml
new file mode 100644
index 0000000..afefae7
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_env_settings.xml
@@ -0,0 +1,23 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Environment Editor Floater" title="Editor do Ambiente">
3 <text name="EnvTimeText">
4 Hora do Dia
5 </text>
6 <text name="EnvTimeText2">
7 12:00 PM
8 </text>
9 <text name="EnvCloudText">
10 Cobertura de Nuvens
11 </text>
12 <text name="EnvWaterColorText">
13 Cor da água
14 </text>
15 <color_swatch label="" name="EnvWaterColor" tool_tip="Clique para abrir o Editor de cores"/>
16 <text name="EnvWaterFogText">
17 Névoa da água
18 </text>
19 <button label="Usar hora da propriedade" name="EnvUseEstateTimeButton"/>
20 <button label="Céu Avançado" name="EnvAdvancedSkyButton"/>
21 <button label="Ãgua Avançada" name="EnvAdvancedWaterButton"/>
22 <button label="?" name="EnvSettingsHelpButton"/>
23</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_gesture.xml b/linden/indra/newview/skins/default/xui/pt/floater_gesture.xml
index f6bc2ac..190463d 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_gesture.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_gesture.xml
@@ -1,17 +1,6 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="gestures" title="Ativar gestos"> 2<floater name="gestures" title="Ativar gestos">
3 <text name="help_label"> 3 <text name="help_label">
4 Digite uma palavra-chave ou pressione uma tecla para executar um som ou animação. 4 Clicar duas vezes no gesto para executar animações e sons.
5 </text> 5 </text>
6 <scroll_list name="gesture_list">
7 <column label="Gatilho" name="trigger" />
8 <column label="Tecla" name="shortcut" />
9 <column label="" name="key" />
10 <column label="Nome" name="name" />
11 </scroll_list>
12 <button label="Novo" name="new_gesture_btn" />
13 <button label="Inventário" name="inventory_btn" />
14 <button label="Editar" name="edit_btn" />
15 <button label="Executar" name="play_btn" />
16 <button label="Parar" name="stop_btn" />
17</floater> 6</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml b/linden/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml
new file mode 100644
index 0000000..c395144
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_hardware_settings.xml
@@ -0,0 +1,38 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Hardware Settings Floater" title="Ajustes de Hardware">
3 <text name="Filtering:">
4 Filtragem:
5 </text>
6 <check_box label="Filtragem Anisotrópica (mais lento quando habilitada)" name="ani"/>
7 <text name="Antialiasing:">
8 Suavização:
9 </text>
10 <combo_box label="Suavização" name="fsaa" width="94">
11 <combo_item name="FSAADisabled">
12 Desabilitado
13 </combo_item>
14 <combo_item name="2x">
15 2x
16 </combo_item>
17 <combo_item name="4x">
18 4x
19 </combo_item>
20 <combo_item name="8x">
21 8x
22 </combo_item>
23 <combo_item name="16x">
24 16x
25 </combo_item>
26 </combo_box>
27 <spinner label="Gama:" name="gamma"/>
28 <text name="(brightness, lower is brighter)">
29 (brilho, quanto menor, mais brilho, 0=usar padrão)
30 </text>
31 <text name="Enable VBO:">
32 Habilitar VBO:
33 </text>
34 <check_box label="Habilitar Objetos com Armazenamento de Vértices" name="vbo" tool_tip="Habilitando-o em máquinas novas, ele oferece um ganho de performance. Contudo, as máquinas antigas tem freqüentemente implementações pobres de VBOs e você pode ter travamentos quando esta opção é habilitada."/>
35 <slider label="Memória de Textura (MB):" name="GrapicsCardTextureMemory" tool_tip="Quantidade de memória a se reservar para texturas. Usa por padrão, a Memória da Placa de Vídeo. Sua redução pode aumentar a performance mas pode também deixar as texturas borradas."/>
36 <spinner label="Relação de Distância de &#10;Nevoeiro:" name="fog"/>
37 <button label="OK" label_selected="OK" name="OK"/>
38</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_html.xml b/linden/indra/newview/skins/default/xui/pt/floater_html.xml
new file mode 100644
index 0000000..3d500dd
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_html.xml
@@ -0,0 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="htmlfloater" title="">
3 <button label="Fechar" name="close_btn"/>
4 <button label="Voltar" name="back_btn"/>
5 <button label="Adiantar" name="forward_btn"/>
6 <button label="Ir" name="go_btn"/>
7 <string name="home_page_url">
8 http://www.secondlife.com
9 </string>
10 <string name="support_page_url">
11 http://support.secondlife.com
12 </string>
13</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_hud.xml b/linden/indra/newview/skins/default/xui/pt/floater_hud.xml
new file mode 100644
index 0000000..c758679
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_hud.xml
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_hud" title="Tutorial"/>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_im.xml b/linden/indra/newview/skins/default/xui/pt/floater_im.xml
index 2ac8cb0..c90eae9 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_im.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_im.xml
@@ -1,21 +1,45 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<multi_floater name="im_floater" title="Mensagem Instantânea"> 2<multi_floater name="im_floater" title="Mensagem Instantânea">
3 <text name="only_user_message"> 3 <string name="only_user_message">
4 Você é o único usuário desta sessão. 4 Você é o único usuário desta sessão.
5 </text> 5 </string>
6 <text name="offline_message"> 6 <string name="offline_message">
7 [FIRST] [LAST] está offline. 7 [FIRST] [LAST] está offline.
8 </text> 8 </string>
9 <text name="generic_request_error"> 9 <string name="invite_message">
10 Clique no botão [BUTTON NAME] para aceitar/ conectar para esse bate-papo em voz.
11 </string>
12 <string name="muted_message">
13 Você emudeceu este residente. Enviar uma mensagem vai automaticamente reativá-lo novamente .
14 </string>
15 <string name="generic_request_error">
10 Erro na requisição, por favor, tente novamente. 16 Erro na requisição, por favor, tente novamente.
11 </text> 17 </string>
12 <text name="insufficient_perms_error"> 18 <string name="insufficient_perms_error">
13 Você não tem permissões suficientes. 19 Você não tem permissões suficientes.
14 </text> 20 </string>
15 <text name="user_no_help"> 21 <string name="session_does_not_exist_error">
16 O usuário requisitado não está mais nessa sessão de ajuda. 22 A sessão deixou de existir
17 </text> 23 </string>
18 <text name="removed_from_group"> 24 <string name="no_ability_error">
25 Você não possui esta habilidade.
26 </string>
27 <string name="not_a_mod_error">
28 Você não é um moderador de sessão.
29 </string>
30 <string name="muted_error">
31 Moderador do grupo desabilitou seu bate-papo em texto.
32 </string>
33 <string name="add_session_event">
34 Não foi possível adicionar usuários na sessão de bate-papo com [RECIPIENT].
35 </string>
36 <string name="message_session_event">
37 Não foi possível enviar sua mensagem na sessão de bate- papo com [RECIPIENT].
38 </string>
39 <string name="removed_from_group">
19 Você foi removido do grupo. 40 Você foi removido do grupo.
20 </text> 41 </string>
42 <string name="close_on_no_ability">
43 Você não possui mais a habilidade de estar na sessão de bate- papo.
44 </string>
21</multi_floater> 45</multi_floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_image_preview.xml b/linden/indra/newview/skins/default/xui/pt/floater_image_preview.xml
index 21ca3e5..6390ac8 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_image_preview.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_image_preview.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Image Preview" title=""> 2<floater name="Image Preview" title="">
3 <text name="name_label"> 3 <text name="name_label">
4 Nome: 4 Nome:
@@ -42,8 +42,11 @@
42 </combo_item> 42 </combo_item>
43 </combo_box> 43 </combo_box>
44 <text name="bad_image_text"> 44 <text name="bad_image_text">
45 Incapaz de ler a imagem.Tente salvar a imagem como 24 bit Targa (.tga). 45 Incapaz de ler a imagem.
46
47Tente salvar a imagem como 24 bit Targa (.tga).
46 </text> 48 </text>
47 <button label="Cancelar" name="cancel_btn" /> 49 <check_box label="Usar compressão com menor perda" name="lossless_check"/>
48 <button label="Upload (L$[AMOUNT])" name="ok_btn" /> 50 <button label="Cancelar" name="cancel_btn"/>
51 <button label="Upload (L$[AMOUNT])" name="ok_btn"/>
49</floater> 52</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml
index 88b4a36..9821afa 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml
@@ -1,14 +1,22 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater label="(desconhecido)" name="im_floater" title="(unknown)"> 2<floater label="(desconhecido)" name="im_floater" title="(unknown)">
3 <string name="default_text_label"> 3 <string name="ringing">
4 Clique aqui para mensagens instantâneas. 4 Chamando...
5 </string> 5 </string>
6 <button label="Perfil..." name="profile_callee_btn" /> 6 <string name="answering">
7 <panel name="speaker_controls" /> 7 Conectando...
8 <line_editor label="Clique aqui para mensagens instantâneas" name="chat_editor" /> 8 </string>
9 <button label="Perfil..." label_selected="Perfil..." name="profile_btn" /> 9 <string name="connected">
10 <string name="live_help_dialog"> 10 Conectado, clique Finalizar Chamada para deixar em espera
11 *** Bem Vindo a Solicitação de Ajuda *** Por favor, cheque primeiro suas páginas de Ajuda do Second Life precionando F1 ou acessando a Base de Conhecimento em http://secondlife.com/knowledgebase/ Se suas respostas não estiverem ali, or favor entre com sua pergunta e aguarde alguns minutos para que algum Ajudante responsa.-=-=- O tempo de resposta pode variar, especialmente em horários de pico -=-=- 11 </string>
12 <string name="hang_up">
13 Chamada encerrada
14 </string>
15 <string name="inventory_item_offered">
16 Oferecido um item de Inventário
17 </string>
18 <string name="voice_icon">
19 icn_voice-pvtfocus.tga
12 </string> 20 </string>
13 <string name="title_string"> 21 <string name="title_string">
14 Mensagem Instantânea com [NAME] 22 Mensagem Instantânea com [NAME]
@@ -19,4 +27,18 @@
19 <string name="session_start_string"> 27 <string name="session_start_string">
20 Iniciando uma sessaão com [NAME] por favor aguarde. 28 Iniciando uma sessaão com [NAME] por favor aguarde.
21 </string> 29 </string>
30 <string name="default_text_label">
31 Clique aqui para uma mensagem instantânea.
32 </string>
33 <button label="Perfil..." name="profile_callee_btn"/>
34 <button label="Chamar" name="start_call_btn"/>
35 <button label="Terminar Chamada" name="end_call_btn"/>
36 <panel name="speaker_controls">
37 <button label="" name="mute_btn" tool_tip="Emudecer voz"/>
38 </panel>
39 <line_editor label="Clique aqui para mensagens instantâneas" name="chat_editor"/>
40 <button label="Enviar" name="send_btn"/>
41 <string name="live_help_dialog">
42 *** Bem Vindo a Solicitação de Ajuda *** Por favor, cheque primeiro suas páginas de Ajuda do Second Life precionando F1 ou acessando a Base de Conhecimento em http://secondlife.com/knowledgebase/ Se suas respostas não estiverem ali, or favor entre com sua pergunta e aguarde alguns minutos para que algum Ajudante responsa.-=-=- O tempo de resposta pode variar, especialmente em horários de pico -=-=-
43 </string>
22</floater> 44</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_instant_message_ad_hoc.xml b/linden/indra/newview/skins/default/xui/pt/floater_instant_message_ad_hoc.xml
index 4989dd5..bd4bc57 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_instant_message_ad_hoc.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_instant_message_ad_hoc.xml
@@ -1,5 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater label="(desconhecido)" name="im_floater"> 2<floater label="(desconhecido)" name="im_floater" title="(desconhecido)">
3 <string name="ringing">
4 Juntar-se à Conversa por Voz...
5 </string>
6 <string name="connected">
7 Conectado, clique Encerrar Chamada para deixar em espera
8 </string>
9 <string name="hang_up">
10 Deixar a Conversa por Voz
11 </string>
12 <string name="voice_icon">
13 icn_voice-groupfocus.tga
14 </string>
3 <string name="title_string"> 15 <string name="title_string">
4 Mensagem Instantânea com [NAME] 16 Mensagem Instantânea com [NAME]
5 </string> 17 </string>
@@ -10,11 +22,15 @@
10 Iniciando uma sessaão com [NAME] por favor aguarde. 22 Iniciando uma sessaão com [NAME] por favor aguarde.
11 </string> 23 </string>
12 <string name="default_text_label"> 24 <string name="default_text_label">
13 Clique aqui para mensagens instantâneas. 25 Clique aqui para mensagem instantânea.
14 </string> 26 </string>
15 <layout_stack name="panels"> 27 <layout_stack name="panels">
16 <layout_panel name="im_contents_panel"> 28 <layout_panel name="im_contents_panel">
17 <line_editor label="Clique aqui para mensagens instantâneas" name="chat_editor" /> 29 <button label="Chamar" name="start_call_btn"/>
30 <button label="Encerrar Chamada" name="end_call_btn"/>
31 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="Clique aqui para trocar uma lista de participantes ativos nesta sessão de MI."/>
32 <line_editor label="Clique aqui para mensagem instantânea" name="chat_editor"/>
33 <button label="Enviar" name="send_btn"/>
18 </layout_panel> 34 </layout_panel>
19 </layout_stack> 35 </layout_stack>
20 <string name="live_help_dialog"> 36 <string name="live_help_dialog">
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_instant_message_group.xml b/linden/indra/newview/skins/default/xui/pt/floater_instant_message_group.xml
new file mode 100644
index 0000000..a393717
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_instant_message_group.xml
@@ -0,0 +1,30 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater label="(unknown)" name="im_floater" title="(unknown)">
3 <string name="title_string">
4 Mensagem Instantânea com [NAME]
5 </string>
6 <string name="typing_start_string">
7 [NAME] está digitando...
8 </string>
9 <string name="session_start_string">
10 Iniciando sessão com [NAME], por favor aguarde.
11 </string>
12 <string name="moderated_chat_label">
13 (Moderado: Vozes desligada por default)
14 </string>
15 <string name="default_text_label">
16 Clique aqui para mensagem instantânea.
17 </string>
18 <string name="muted_text_label">
19 Sua conversa de texto foi desabilitada por um Moderador do Grupo.
20 </string>
21 <layout_stack name="panels">
22 <layout_panel name="im_contents_panel">
23 <button label="Informação do Grupo" name="group_info_btn" width="130"/>
24 <button label="Entrar numa chamada" name="start_call_btn" left_delta="135" width="160"/>
25 <button label="Encerrar Chamada" name="end_call_btn" width="160" halign="center"/>
26 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn" tool_tip="Clique aqui para alternar a lista dos participantes ativos nesta sessão de IM ."/>
27 <button label="Enviar" name="send_btn"/>
28 </layout_panel>
29 </layout_stack>
30</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_inventory.xml b/linden/indra/newview/skins/default/xui/pt/floater_inventory.xml
index 281133f..93555c1 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_inventory.xml
@@ -1,49 +1,47 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Inventory" title="Inventário"> 2<floater name="Inventory" title="Inventário">
3 <search_editor label="Escreva aqui para busca" name="inventory search editor"/>
3 <tab_container name="inventory filter tabs"> 4 <tab_container name="inventory filter tabs">
4 <inventory_panel label="Todos os Itens" name="All Items" /> 5 <inventory_panel label="Todos os Itens" name="All Items"/>
5 <inventory_panel label="Itens Recentes" name="Recent Items" /> 6 <inventory_panel label="Itens Recentes" name="Recent Items"/>
6 </tab_container> 7 </tab_container>
7 <menu_bar name="Inventory Menu"> 8 <menu_bar name="Inventory Menu">
8 <menu label="Arquivo" name="File"> 9 <menu label="Arquivo" name="File">
9 <menu_item_call label="Abrir" name="Open" /> 10 <menu_item_call label="Abrir" name="Open"/>
10 <menu_item_call label="Nova Janela" name="New Window" /> 11 <menu_item_call label="Nova Janela" name="New Window"/>
11 <menu_item_call label="Mostrar Filtros" name="Show Filters" /> 12 <menu_item_call label="Mostrar Filtros" name="Show Filters"/>
12 <menu_item_call label="Fechar Todas as Pastas" name="Close All Folders" /> 13 <menu_item_call label="Redefinir Filtros" name="Reset Current"/>
13 <menu_item_call label="Limpar Lixeira" name="Empty Trash" /> 14 <menu_item_call label="Fechar Todas as Pastas" name="Close All Folders"/>
15 <menu_item_call label="Limpar Lixeira" name="Empty Trash"/>
14 </menu> 16 </menu>
15 <menu label="Criar" name="Create"> 17 <menu label="Criar" name="Create">
16 <menu_item_call label="Nova Pasta" name="New Folder" /> 18 <menu_item_call label="Nova Pasta" name="New Folder"/>
17 <menu_item_call label="Novo Script" name="New Script" /> 19 <menu_item_call label="Novo Script" name="New Script"/>
18 <menu_item_call label="Nova Nota" name="New Note" /> 20 <menu_item_call label="Nova Nota" name="New Note"/>
19 <menu_item_call label="Novo Gesto" name="New Gesture" /> 21 <menu_item_call label="Novo Gesto" name="New Gesture"/>
20 <menu label="Nova Roupa" name="New Clothes"> 22 <menu label="Nova Roupa" name="New Clothes">
21 <menu_item_call label="Nova Camisa" name="New Shirt" /> 23 <menu_item_call label="Nova Camisa" name="New Shirt"/>
22 <menu_item_call label="Nova Calça" name="New Pants" /> 24 <menu_item_call label="Nova Calça" name="New Pants"/>
23 <menu_item_call label="Novos Sapatos" name="New Shoes" /> 25 <menu_item_call label="Novos Sapatos" name="New Shoes"/>
24 <menu_item_call label="Novas Meias" name="New Socks" /> 26 <menu_item_call label="Novas Meias" name="New Socks"/>
25 <menu_item_call label="Nova Jaqueta" name="New Jacket" /> 27 <menu_item_call label="Nova Jaqueta" name="New Jacket"/>
26 <menu_item_call label="Nova Saia" name="New Skirt" /> 28 <menu_item_call label="Nova Saia" name="New Skirt"/>
27 <menu_item_call label="Novas Luvas" name="New Gloves" /> 29 <menu_item_call label="Novas Luvas" name="New Gloves"/>
28 <menu_item_call label="Nova Anágua" name="New Undershirt" /> 30 <menu_item_call label="Nova Anágua" name="New Undershirt"/>
29 <menu_item_call label="Novas Roupas de Baixo" name="New Underpants" /> 31 <menu_item_call label="Novas Roupas de Baixo" name="New Underpants"/>
30 </menu> 32 </menu>
31 <menu label="Parte do corpo" name="New Body Parts"> 33 <menu label="Parte do corpo" name="New Body Parts">
32 <menu_item_call label="Nova Forma" name="New Shape" /> 34 <menu_item_call label="Nova Forma" name="New Shape"/>
33 <menu_item_call label="Nova Pele" name="New Skin" /> 35 <menu_item_call label="Nova Pele" name="New Skin"/>
34 <menu_item_call label="Novo Cabelo" name="New Hair" /> 36 <menu_item_call label="Novo Cabelo" name="New Hair"/>
35 <menu_item_call label="Novos Olhos" name="New Eyes" /> 37 <menu_item_call label="Novos Olhos" name="New Eyes"/>
36 </menu> 38 </menu>
37 </menu> 39 </menu>
38 <menu label="Organizar" name="Sort"> 40 <menu label="Organizar" name="Sort">
39 <menu_item_check label="Por Nome" name="By Name" /> 41 <menu_item_check label="Por Nome" name="By Name"/>
40 <menu_item_check label="Por Data" name="By Date" /> 42 <menu_item_check label="Por Data" name="By Date"/>
41 <menu_item_check label="Pastas Sempre por Nome" name="Folders Always By Name" /> 43 <menu_item_check label="Pastas Sempre por Nome" name="Folders Always By Name"/>
42 <menu_item_check label="Pastas em primeiro" name="System Folders To Top" /> 44 <menu_item_check label="Pastas em primeiro" name="System Folders To Top"/>
43 </menu>
44 <menu label="Filtros" name="Filters">
45 <menu_item_check label="Modificar Conteúdo" name="Modify Current" />
46 <menu_item_call label="Reiniciar Atual" name="Reset Current" />
47 </menu> 45 </menu>
48 </menu_bar> 46 </menu_bar>
49</floater> 47</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml b/linden/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
index de4b763..e11a8eb 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="item properties" title="Propriedades"> 2<floater name="item properties" title="Propriedades">
3 <text name="LabelItemNameTitle"> 3 <text name="LabelItemNameTitle">
4 Nome: 4 Nome:
@@ -12,14 +12,14 @@
12 <text name="LabelCreatorName"> 12 <text name="LabelCreatorName">
13 Nicole Linden 13 Nicole Linden
14 </text> 14 </text>
15 <button label="Perfil..." label_selected="" name="BtnCreator" /> 15 <button label="Perfil..." label_selected="" name="BtnCreator"/>
16 <text name="LabelOwnerTitle"> 16 <text name="LabelOwnerTitle">
17 Dono: 17 Dono:
18 </text> 18 </text>
19 <text name="LabelOwnerName"> 19 <text name="LabelOwnerName">
20 Thrax Linden 20 Thrax Linden
21 </text> 21 </text>
22 <button label="Perfil..." label_selected="" name="BtnOwner" /> 22 <button label="Perfil..." label_selected="" name="BtnOwner"/>
23 <text name="LabelAcquiredTitle"> 23 <text name="LabelAcquiredTitle">
24 Adquirido: 24 Adquirido:
25 </text> 25 </text>
@@ -29,9 +29,9 @@
29 <text name="OwnerLabel"> 29 <text name="OwnerLabel">
30 Você pode: 30 Você pode:
31 </text> 31 </text>
32 <check_box label="Modificar" name="CheckOwnerModify" /> 32 <check_box label="Modificar" name="CheckOwnerModify"/>
33 <check_box label="Copiar" name="CheckOwnerCopy" /> 33 <check_box label="Copiar" name="CheckOwnerCopy"/>
34 <check_box label="Revender/Doar" name="CheckOwnerTransfer" /> 34 <check_box label="Revender/Doar" name="CheckOwnerTransfer"/>
35 <text name="BaseMaskDebug"> 35 <text name="BaseMaskDebug">
36 B: 36 B:
37 </text> 37 </text>
@@ -47,18 +47,18 @@
47 <text name="NextMaskDebug"> 47 <text name="NextMaskDebug">
48 N: 48 N:
49 </text> 49 </text>
50 <check_box label="Compartilhar com o grupo" name="CheckShareWithGroup" /> 50 <check_box label="Compartilhar com o grupo" name="CheckShareWithGroup"/>
51 <check_box label="Permitir qualquer um copiar" name="CheckEveryoneCopy" /> 51 <check_box label="Permitir qualquer um copiar" name="CheckEveryoneCopy"/>
52 <text name="NextOwnerLabel"> 52 <text name="NextOwnerLabel">
53 Próximo dono pode: 53 Próximo dono pode:
54 </text> 54 </text>
55 <check_box label="Modificar" name="CheckNextOwnerModify" /> 55 <check_box label="Modificar" name="CheckNextOwnerModify"/>
56 <check_box label="Copiar" name="CheckNextOwnerCopy" /> 56 <check_box label="Copiar" name="CheckNextOwnerCopy"/>
57 <check_box label="Revender/Doar" name="CheckNextOwnerTransfer" /> 57 <check_box label="Revender/Doar" name="CheckNextOwnerTransfer"/>
58 <text name="SaleLabel"> 58 <text name="SaleLabel">
59 Marcar Item: 59 Marcar Item:
60 </text> 60 </text>
61 <check_box label="A venda" name="CheckPurchase" /> 61 <check_box label="A venda" name="CheckPurchase"/>
62 <radio_group name="RadioSaleType"> 62 <radio_group name="RadioSaleType">
63 <radio_item name="radio"> 63 <radio_item name="radio">
64 Original 64 Original
@@ -70,4 +70,16 @@
70 <text name="TextPrice"> 70 <text name="TextPrice">
71 Price: L$ 71 Price: L$
72 </text> 72 </text>
73 <string name="unknown">
74 (desconhecido)
75 </string>
76 <string name="public">
77 (público)
78 </string>
79 <string name="you_can">
80 Você pode:
81 </string>
82 <string name="owner_can">
83 Proprietário pode :
84 </string>
73</floater> 85</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_joystick.xml b/linden/indra/newview/skins/default/xui/pt/floater_joystick.xml
index 65becbd..e0bea23 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_joystick.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_joystick.xml
@@ -1,3 +1,84 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Joystick" title="Joystick Configuration"> 2<floater name="Joystick" title="Configuração do Joystick">
3 <check_box name="enable_joystick">
4 Habilitar Joystick:
5 </check_box>
6 <spinner label="Mapeamento do eixo X" name="JoystickAxis1"/>
7 <spinner label="Mapeamento do eixo Y" name="JoystickAxis2"/>
8 <spinner label="Mapeamento do Eixo Z" name="JoystickAxis0"/>
9 <spinner label="Mapeamento da Elevação" name="JoystickAxis4"/>
10 <spinner label="Mapeamento da Guinada" name="JoystickAxis5"/>
11 <spinner label="Mapeamento da Rolagem" name="JoystickAxis3"/>
12 <spinner label="Mapeamento do Zoom" name="JoystickAxis6"/>
13 <check_box label="Zoom Direto" name="ZoomDirect"/>
14 <check_box label="Cursor 3D" name="Cursor3D"/>
15 <check_box label="Nível Automático" name="AutoLeveling"/>
16 <text name="Control Modes:">
17 Modos de Controle:
18 </text>
19 <check_box name="JoystickAvatarEnabled">
20 Avatar
21 </check_box>
22 <check_box name="JoystickBuildEnabled">
23 Construir
24 </check_box>
25 <check_box name="JoystickFlycamEnabled">
26 Camera aérea
27 </check_box>
28 <text name="XScale">
29 Escala X
30 </text>
31 <text name="YScale">
32 Escala Y
33 </text>
34 <text name="ZScale">
35 Escala Z
36 </text>
37 <text name="PitchScale">
38 Escala de Elevação
39 </text>
40 <text name="YawScale">
41 Escala da Guinada
42 </text>
43 <text name="RollScale">
44 Escala de Rolagem
45 </text>
46 <text name="XDeadZone">
47 Zona Morta X
48 </text>
49 <text name="YDeadZone">
50 Zona Morta Y
51 </text>
52 <text name="ZDeadZone">
53 Zona Morta Z
54 </text>
55 <text name="PitchDeadZone">
56 Zona Morta da Elevação
57 </text>
58 <text name="YawDeadZone">
59 Zona Morta da Guinada
60 </text>
61 <text name="RollDeadZone">
62 Zona Morta de Rolagem
63 </text>
64 <text name="Feathering">
65 Alisar
66 </text>
67 <slider label="" name="FlycamFeathering"/>
68 <text name="ZoomScale2">
69 Escala de Zoom
70 </text>
71 <text name="ZoomDeadZone">
72 Zona Morta de Zoom
73 </text>
74 <button label="Padrões do Navegador Espacial" name="SpaceNavigatorDefaults"/>
75 <string name="JoystickMonitor">
76 Monitor do Joystick
77 </string>
78 <string name="Axis">
79 Eixo [NUM]
80 </string>
81 <string name="NoDevice">
82 nenhum dispositivo detectado
83 </string>
3</floater> 84</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_lagmeter.xml b/linden/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
new file mode 100644
index 0000000..1e90862
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_lagmeter.xml
@@ -0,0 +1,152 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_lagmeter" title="Medidor de Atraso">
3 <button label="" label_selected="" name="client_lagmeter" tool_tip="Status de atraso no Cliente"/>
4 <text name="client">
5 Cliente:
6 </text>
7 <text name="client_text">
8 Normal
9 </text>
10 <button label="" label_selected="" name="network_lagmeter" tool_tip="Status de atraso na rede"/>
11 <text name="network">
12 Rede:
13 </text>
14 <text name="network_text">
15 Normal
16 </text>
17 <button label="" label_selected="" name="server_lagmeter" tool_tip="Status de atraso no servidor"/>
18 <text name="server">
19 Servidor:
20 </text>
21 <text name="server_text">
22 Normal
23 </text>
24 <button label="?" name="server_help"/>
25 <button label="&gt;&gt;" name="minimize"/>
26 <string name="max_title_msg">
27 Medidor de Atraso
28 </string>
29 <string name="max_width_px">
30 360
31 </string>
32 <string name="min_title_msg">
33 Atraso
34 </string>
35 <string name="min_width_px">
36 90
37 </string>
38 <string name="client_text_msg">
39 Cliente
40 </string>
41 <string name="client_frame_rate_critical_fps">
42 10
43 </string>
44 <string name="client_frame_rate_warning_fps">
45 15
46 </string>
47 <string name="client_frame_time_window_bg_msg">
48 Normal, janela por baixo
49 </string>
50 <string name="client_frame_time_critical_msg">
51 Taxa de quadros do Cliente abaixo de [CLIENT_FRAME_RATE_CRITICAL]
52 </string>
53 <string name="client_frame_time_warning_msg">
54 Taxa de quadros do Cliente entre [CLIENT_FRAME_RATE_CRITICAL] e [CLIENT_FRAME_RATE_WARNING]
55 </string>
56 <string name="client_frame_time_normal_msg">
57 Normal
58 </string>
59 <string name="client_draw_distance_cause_msg">
60 Causa possível: Distância do desenho ajustada muito alta
61 </string>
62 <string name="client_texture_loading_cause_msg">
63 Causa possível: Carregamento de Imagens
64 </string>
65 <string name="client_texture_memory_cause_msg">
66 Causa possível: Muitas imagens na memória
67 </string>
68 <string name="client_complex_objects_cause_msg">
69 Causa possível: Muitos objetos complexos na cena
70 </string>
71 <string name="network_text_msg">
72 Rede
73 </string>
74 <string name="network_packet_loss_critical_pct">
75 10
76 </string>
77 <string name="network_packet_loss_warning_pct">
78 5
79 </string>
80 <string name="network_packet_loss_critical_msg">
81 Conexão está caindo para cerca de [NETWORK_PACKET_LOSS_CRITICAL]% de pacotes
82 </string>
83 <string name="network_packet_loss_warning_msg">
84 Conexão está caindo [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% de pacotes
85 </string>
86 <string name="network_performance_normal_msg">
87 Normal
88 </string>
89 <string name="network_ping_critical_ms">
90 600
91 </string>
92 <string name="network_ping_warning_ms">
93 300
94 </string>
95 <string name="network_ping_critical_msg">
96 Tempo de conexão de ping é cerca de [NETWORK_PING_CRITICAL] ms
97 </string>
98 <string name="network_ping_warning_msg">
99 Tempo de conexão de ping é [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
100 </string>
101 <string name="network_packet_loss_cause_msg">
102 Possível conexão ruim ou &apos;Largura de Banda&apos; escolhida muito alta.
103 </string>
104 <string name="network_ping_cause_msg">
105 Possível conexão ruim ou aplic. compartilhando arquivos.
106 </string>
107 <string name="server_text_msg">
108 Servidor
109 </string>
110 <string name="server_frame_rate_critical_fps">
111 20
112 </string>
113 <string name="server_frame_rate_warning_fps">
114 30
115 </string>
116 <string name="server_single_process_max_time_ms">
117 20
118 </string>
119 <string name="server_frame_time_critical_msg">
120 Taxa de quadros do simulador abaixo de [SERVER_FRAME_RATE_CRITICAL]
121 </string>
122 <string name="server_frame_time_warning_msg">
123 Taxa de quadros do simulador entre [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING]
124 </string>
125 <string name="server_frame_time_normal_msg">
126 Normal
127 </string>
128 <string name="server_physics_cause_msg">
129 Causa possível: Muitos objetos físicos
130 </string>
131 <string name="server_scripts_cause_msg">
132 Causa possível: Muitos objetos com scripts
133 </string>
134 <string name="server_net_cause_msg">
135 Causa possível: Muito tráfego na rede
136 </string>
137 <string name="server_agent_cause_msg">
138 Causa possível: Muitas pessoas se movendo na região
139 </string>
140 <string name="server_images_cause_msg">
141 Causa possível: Muitos cálculos de imagem
142 </string>
143 <string name="server_generic_cause_msg">
144 Causa possível: Carga no simulador muito pesada
145 </string>
146 <string name="smaller_label">
147 &gt;&gt;
148 </string>
149 <string name="bigger_label">
150 &lt;&lt;
151 </string>
152</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_land_holdings.xml b/linden/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
index 0a4ef39..e3b426c 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
@@ -1,38 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="land holdings floater" title="Meu terreno"> 2<floater name="land holdings floater" title="Meu terreno">
3 <scroll_list name="parcel list"> 3 <scroll_list name="parcel list">
4 <column label="Nome" name="name" /> 4 <column label="Nome" name="name"/>
5 <column label="Localização" name="location" /> 5 <column label="Localização" name="location"/>
6 <column label="Ãrea" name="area" /> 6 <column label="Ãrea" name="area"/>
7 <column label="" name="hidden" /> 7 <column label="" name="hidden"/>
8 </scroll_list> 8 </scroll_list>
9 <button label="Teleporte" label_selected="Teleporte" name="Teleport" 9 <button label="Teleporte" label_selected="Teleporte" name="Teleport" tool_tip="Teleportar para o centro do terreno."/>
10 tool_tip="Teleportar para o centro do terreno." /> 10 <button label="Mostrar no mapa" label_selected="Mostrar no mapa" name="Show on Map" tool_tip="Mostrar esse terreno no mapa do mundo."/>
11 <button label="Mostrar no mapa" label_selected="Mostrar no mapa" name="Show on Map"
12 tool_tip="Mostrar esse terreno no mapa do mundo." />
13 <text name="contrib_label"> 11 <text name="contrib_label">
14 Contribuições para os seus grupos: 12 Contribuições para os seus grupos:
15 </text> 13 </text>
16 <scroll_list name="grant list"> 14 <scroll_list name="grant list">
17 <column label="Grupo" name="group" /> 15 <column label="Grupo" name="group"/>
18 <column label="Ãrea" name="area" /> 16 <column label="Ãrea" name="area"/>
19 </scroll_list> 17 </scroll_list>
20 <text name="allowed_label"> 18 <text name="allowed_label">
21 Permitir marcações no terreno. 19 Permitir marcações no terreno.
22 </text> 20 </text>
23 <text name="allowed_text"> 21 <text name="allowed_text">
24 0 m² 22 [AREA] m2
25 </text> 23 </text>
26 <text name="current_label"> 24 <text name="current_label">
27 Marcações atuais: 25 Marcações atuais:
28 </text> 26 </text>
29 <text name="current_text"> 27 <text name="current_text">
30 0 m² 28 [AREA] m2
31 </text> 29 </text>
32 <text name="available_label"> 30 <text name="available_label">
33 Disponivel para compra de terras: 31 Disponivel para compra de terras:
34 </text> 32 </text>
35 <text name="available_text"> 33 <text name="available_text">
36 0 m² 34 [AREA] m2
37 </text> 35 </text>
36 <string name="area_string">
37 [AREA] m2
38 </string>
38</floater> 39</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_landmark_ctrl.xml b/linden/indra/newview/skins/default/xui/pt/floater_landmark_ctrl.xml
new file mode 100644
index 0000000..c4a036d
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_landmark_ctrl.xml
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="landmarkpicker" title="Organize: Landmarks">
3 <check_box label="Mostrar Pastas" name="show_folders_check"/>
4 <button label="Novo" label_selected="Novo" name="New"/>
5 <button label="Renomear" label_selected="Renomear" name="Rename"/>
6 <button label="Nova Pasta" label_selected="Nova Pasta" name="NewFolder"/>
7 <button label="Editar" label_selected="Editar" name="Edit"/>
8 <button label="Apagar" label_selected="Apagar" name="Delete"/>
9 <button label="Fechar" label_selected="Fechar" name="Close"/>
10</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml b/linden/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml
index 62d307e..af45fa5 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml
@@ -1,5 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="script ed float" title="Script: Novo Script"> 2<floater name="script ed float" title="Script: Novo Script">
3 <button label="Resetar" label_selected="Resetar" name="Reset" /> 3 <button label="Resetar" label_selected="Resetar" name="Reset"/>
4 <check_box label="Correndo" name="running" /> 4 <check_box label="Correndo" name="running"/>
5 <check_box label="Mono" name="mono"/>
6 <string name="not_allowed">
7 Você não tem permissão para visualizar este script.
8 </string>
9 <string name="script_running">
10 Executando
11 </string>
5</floater> 12</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_media_browser.xml b/linden/indra/newview/skins/default/xui/pt/floater_media_browser.xml
new file mode 100644
index 0000000..d684b75
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_media_browser.xml
@@ -0,0 +1,20 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_about" title="Navegador de Mídia" width="570" min_width="477">
3 <layout_stack name="stack1" width="550">
4 <layout_panel name="nav_controls">
5 <button label="Para trás" name="back" width="75"/>
6 <button label="Para a frente" name="forward" width="90" left_delta="75" />
7 <button label="Recarregar" name="reload" left_delta="95" width="76"/>
8 <combo_box left_delta="80" name="address" width="240"/>
9 <button label="Ir" name="go" left_delta="245" width="35" />
10 </layout_panel>
11 <layout_panel name="parcel_owner_controls">
12 <button label="Enviar a URL atual para o terreno" name="assign"/>
13 </layout_panel>
14 <layout_panel name="external_controls">
15 <button label="Abrir no meu Navegador de Web" name="open_browser" width="196"/>
16 <check_box label="Sempre abrir no meu Navegador de Web" name="open_always" left_delta="201" />
17 <button label="Fechar" name="close"/>
18 </layout_panel>
19 </layout_stack>
20</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml b/linden/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml
new file mode 100644
index 0000000..83f47fd
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_mem_leaking.xml
@@ -0,0 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="MemLeak" title="Simulação de Perda de Memória">
3 <spinner label="Velocidade da Perda (bytes por quadro):" name="leak_speed"/>
4 <spinner label="Máximo de Memória Perdida (MB):" name="max_leak"/>
5 <text name="total_leaked_label">
6 Memória perdida atualmente: [SIZE] KB
7 </text>
8 <button label="Iniciar" name="start_btn"/>
9 <button label="Parar" name="stop_btn"/>
10 <button label="Liberar" name="release_btn"/>
11 <button label="Fechar" name="close_btn"/>
12</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_mute.xml b/linden/indra/newview/skins/default/xui/pt/floater_mute.xml
index 38226b3..d451a4d 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_mute.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_mute.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="mute floater" title="Residentes e Objetos silenciados"> 2<floater name="mute floater" title="Residentes e Objetos silenciados" short_title="Lista de pessoas silenciadas">
3 <scroll_list name="mutes" tool_tip="Lista dos residentes sílenciados." /> 3 <scroll_list name="mutes" tool_tip="Lista dos residentes sílenciados." />
4 <button label="Silênciar residente..." label_selected="Silênciar residente..." 4 <button label="Silênciar residente..." label_selected="Silênciar residente..."
5 name="Mute resident..." tool_tip="Sílenciar residente..." /> 5 name="Mute resident..." tool_tip="Sílenciar residente..." />
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_mute_object.xml b/linden/indra/newview/skins/default/xui/pt/floater_mute_object.xml
new file mode 100644
index 0000000..506d518
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_mute_object.xml
@@ -0,0 +1,11 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="mute by name" title="Emudecer objeto pelo nome">
3 <text name="message">
4 Emudecer pelo nome afeta apenas conversa de objeto e MI, não sons. Você deve digitar o nome exato do objeto.
5 </text>
6 <line_editor name="object_name">
7 Nome do objeto
8 </line_editor>
9 <button label="Ok" name="OK"/>
10 <button label="Cancelar" name="Cancel"/>
11</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_new_outfit_dialog.xml b/linden/indra/newview/skins/default/xui/pt/floater_new_outfit_dialog.xml
index 19b19f4..07f804f 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_new_outfit_dialog.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_new_outfit_dialog.xml
@@ -1,82 +1,88 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="modal container" title=" "> 2<floater name="modal container" width="585">
3 <button label="Salvar" label_selected="Salvar" name="Save" /> 3 <button label="Salvar" label_selected="Salvar" name="Save"/>
4 <button label="Cancelar" label_selected="Cancelar" name="Cancel" /> 4 <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
5 <check_box label="Forma" name="checkbox_Shape" /> 5 <check_box label="Forma" name="checkbox_Shape"/>
6 <check_box label="Pele" name="checkbox_Skin" /> 6 <check_box label="Pele" name="checkbox_Skin"/>
7 <check_box label="Cabelo" name="checkbox_Hair" /> 7 <check_box label="Cabelo" name="checkbox_Hair"/>
8 <check_box label="Olhos" name="checkbox_Eyes" /> 8 <check_box label="Olhos" name="checkbox_Eyes"/>
9 <check_box label="Renomear Roupas para Nome da Pasta" name="rename" /> 9 <check_box label="Renomear Roupas para &#10;Nome da Pasta" name="rename"/>
10 <check_box label="Camisa" name="checkbox_Shirt" /> 10 <check_box label="Camisa" name="checkbox_Shirt"/>
11 <check_box label="Calças" name="checkbox_Pants" /> 11 <check_box label="Calças" name="checkbox_Pants"/>
12 <check_box label="Sapatos" name="checkbox_Shoes" /> 12 <check_box label="Sapatos" name="checkbox_Shoes"/>
13 <check_box label="Meias" name="checkbox_Socks" /> 13 <check_box label="Meias" name="checkbox_Socks"/>
14 <check_box label="Jaqueta" name="checkbox_Jacket" /> 14 <check_box label="Jaqueta" name="checkbox_Jacket"/>
15 <check_box label="Luvas" name="checkbox_Gloves" /> 15 <check_box label="Luvas" name="checkbox_Gloves"/>
16 <check_box label="Anágua" name="checkbox_Undershirt" /> 16 <check_box label="Anágua" name="checkbox_Undershirt"/>
17 <check_box label="Roupas de Baixo" name="checkbox_Underpants" /> 17 <check_box label="Roupas de Baixo" name="checkbox_Underpants"/>
18 <check_box label="Saia" name="checkbox_Skirt" /> 18 <check_box label="Saia" name="checkbox_Skirt"/>
19 <check_box label="Peito" name="checkbox_Chest" /> 19 <check_box label="Peito" name="checkbox_Chest" left="225" />
20 <check_box label="Crânio" name="checkbox_Skull" /> 20 <check_box label="Crânio" name="checkbox_Skull" left="225" />
21 <check_box label="Ombro Esquerdo" name="checkbox_Left Shoulder" /> 21 <check_box label="Ombro Esquerdo" name="checkbox_Left Shoulder" left="225" />
22 <check_box label="Ombro Direito" name="checkbox_Right Shoulder" /> 22 <check_box label="Ombro Direito" name="checkbox_Right Shoulder" left="225" />
23 <check_box label="Mão Esquerda" name="checkbox_Left Hand" /> 23 <check_box label="Mão Esquerda" name="checkbox_Left Hand" left="225" />
24 <check_box label="Mão Direita" name="checkbox_Right Hand" /> 24 <check_box label="Mão Direita" name="checkbox_Right Hand" left="225" />
25 <check_box label="Pé Esquerdo" name="checkbox_Left Foot" /> 25 <check_box label="Pé Esquerdo" name="checkbox_Left Foot" left="225" />
26 <check_box label="Pé Direito" name="checkbox_Right Foot" /> 26 <check_box label="Pé Direito" name="checkbox_Right Foot" left="225" />
27 <check_box label="Espinha" name="checkbox_Spine" /> 27 <check_box label="Espinha" name="checkbox_Spine" left="225" />
28 <check_box label="Pelvis" name="checkbox_Pelvis" /> 28 <check_box label="Pelvis" name="checkbox_Pelvis" left="225" />
29 <check_box label="Boca" name="checkbox_Mouth" /> 29 <check_box label="Boca" name="checkbox_Mouth" left="225" />
30 <check_box label="Queixo" name="checkbox_Chin" /> 30 <check_box label="Queixo" name="checkbox_Chin" left="225" />
31 <check_box label="Orelha Esquerda" name="checkbox_Left Ear" /> 31 <check_box label="Orelha Esquerda" name="checkbox_Left Ear" left="225" />
32 <check_box label="Orelha Direita" name="checkbox_Right Ear" /> 32 <check_box label="Orelha Direita" name="checkbox_Right Ear" left="325"/>
33 <check_box label="Olho Esquerdo" name="checkbox_Left Eyeball" /> 33 <check_box label="Olho Esquerdo" name="checkbox_Left Eyeball" left="325"/>
34 <check_box label="Olho Direito" name="checkbox_Right Eyeball" /> 34 <check_box label="Olho Direito" name="checkbox_Right Eyeball" left="325"/>
35 <check_box label="Nariz" name="checkbox_Nose" /> 35 <check_box label="Nariz" name="checkbox_Nose" left="325"/>
36 <check_box label="Antebraço Direito" name="checkbox_R Upper Arm" /> 36 <check_box label="Antebraço Direito" name="checkbox_R Upper Arm" left="325"/>
37 <check_box label="Braço Direito" name="checkbox_R Forearm" /> 37 <check_box label="Braço Direito" name="checkbox_R Forearm" left="325"/>
38 <check_box label="Antebraço Esquerdo" name="checkbox_L Upper Arm" /> 38 <check_box label="Antebraço Esquerdo" name="checkbox_L Upper Arm" left="325"/>
39 <check_box label="Braço Esquerdo" name="checkbox_L Forearm" /> 39 <check_box label="Braço Esquerdo" name="checkbox_L Forearm" left="325"/>
40 <check_box label="Nádega Direita" name="checkbox_Right Hip" /> 40 <check_box label="Nádega Direita" name="checkbox_Right Hip" left="325"/>
41 <check_box label="Coxa Direita" name="checkbox_R Upper Leg" /> 41 <check_box label="Coxa Direita" name="checkbox_R Upper Leg" left="325"/>
42 <check_box label="Canela Direita" name="checkbox_R Lower Leg" /> 42 <check_box label="Canela Direita" name="checkbox_R Lower Leg" left="325"/>
43 <check_box label="Nádega Esquerda" name="checkbox_Left Hip" /> 43 <check_box label="Nádega Esquerda" name="checkbox_Left Hip" left="325"/>
44 <check_box label="Coxa Esquerda" name="checkbox_L Upper Leg" /> 44 <check_box label="Coxa Esquerda" name="checkbox_L Upper Leg" left="325"/>
45 <check_box label="Canela Esquerda" name="checkbox_L Lower Leg" /> 45 <check_box label="Canela Esquerda" name="checkbox_L Lower Leg" left="460"/>
46 <check_box label="Estomago" name="checkbox_Stomach" /> 46 <check_box label="Estomago" name="checkbox_Stomach" left="460"/>
47 <check_box label="Peito Esquerdo" name="checkbox_Left Pec" /> 47 <check_box label="Peito Esquerdo" name="checkbox_Left Pec" left="460"/>
48 <check_box label="Peito Direito" name="checkbox_Right Pec" /> 48 <check_box label="Peito Direito" name="checkbox_Right Pec" left="460"/>
49 <check_box label="Centro 2" name="checkbox_Center 2" /> 49 <check_box label="Centro 2" name="checkbox_Center 2" left="460"/>
50 <check_box label="Superior Direita" name="checkbox_Top Right" /> 50 <check_box label="Superior Direita" name="checkbox_Top Right" left="460"/>
51 <check_box label="Superior" name="checkbox_Top" /> 51 <check_box label="Superior" name="checkbox_Top" left="460"/>
52 <check_box label="Superior Esquerda" name="checkbox_Top Left" /> 52 <check_box label="Superior Esquerda" name="checkbox_Top Left" left="460"/>
53 <check_box label="Centro" name="checkbox_Center" /> 53 <check_box label="Centro" name="checkbox_Center" left="460"/>
54 <check_box label="Inferior Esquerda" name="checkbox_Bottom Left" /> 54 <check_box label="Inferior Esquerda" name="checkbox_Bottom Left" left="460"/>
55 <check_box label="Inferior" name="checkbox_Bottom" /> 55 <check_box label="Inferior" name="checkbox_Bottom" left="460"/>
56 <check_box label="Inferior Direita" name="checkbox_Bottom Right" /> 56 <check_box label="Inferior Direita" name="checkbox_Bottom Right" left="460"/>
57 <text type="string" length="1" name="Make New Outfit"> 57 <text length="1" name="Make New Outfit" type="string">
58 Fazer Nova Aparencia 58 Fazer Nova Aparencia
59 </text> 59 </text>
60 <text type="string" length="1" 60 <text length="1" name="Outfits are folders that contain clothing and body parts. Drag an outfit folder onto your avatar to put it on. &quot;Make New Outfit&quot; makes a new folder and saves copies of the items you are now wearing into it." type="string">
61 name="Outfits are folders that contain clothing and body parts. Drag an outfit folder onto your avatar to put it on. &quot;Make New Outfit&quot; makes a new folder and saves copies of the items you are now wearing into it."> 61 Aparencias são pastas que contem roupas e partes do corpo.
62 Aparencias são pastas que contem roupas e partes do corpo. Arraste uma Aparencia até seu avatar para vestí-la. Fazer Nova Aparencia cria uma nova pasta e salva cópias dos itens que você está vestindo no momento. 62Arraste uma Aparencia até seu avatar para vestí-la.
63
64Fazer Nova Aparencia cria uma nova pasta e salva cópias dos itens que você
65está vestindo no momento.
63 </text> 66 </text>
64 <text type="string" length="1" name="Folder name:"> 67 <text length="1" name="Folder name:" type="string">
65 Nome da Pasta: 68 Nome da Pasta:
66 </text> 69 </text>
67 <text type="string" length="1" name="Items to include in outfit:"> 70 <text length="1" name="Items to include in outfit:" type="string">
68 Itens que compõem a Aparência: 71 Itens que compõem a Aparência:
69 </text> 72 </text>
70 <text type="string" length="1" name="Body Parts:"> 73 <text length="1" name="Body Parts:" type="string">
71 Partes do Corpo: 74 Partes do Corpo:
72 </text> 75 </text>
73 <text type="string" length="1" name="Clothes:"> 76 <text length="1" name="Clothes:" type="string">
74 Roupas: 77 Roupas:
75 </text> 78 </text>
76 <text type="string" length="1" name="Attachments:"> 79 <text length="1" name="Attachments:" type="string">
77 Acessórios: 80 Acessórios:
78 </text> 81 </text>
79 <text type="string" length="1" name="Options:"> 82 <text length="1" name="Options:" type="string">
80 Opções: 83 Opções:
81 </text> 84 </text>
85 <line_editor name="name ed">
86 Nova Vestimenta
87 </line_editor>
82</floater> 88</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_openobject.xml b/linden/indra/newview/skins/default/xui/pt/floater_openobject.xml
index b55b242..aea38ad 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_openobject.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_openobject.xml
@@ -4,7 +4,7 @@
4 [DESC]: 4 [DESC]:
5 </text> 5 </text>
6 <button label="Copiar para Inventário" label_selected="Copiar para Inventário" 6 <button label="Copiar para Inventário" label_selected="Copiar para Inventário"
7 name="copy_to_inventory_button" /> 7 name="copy_to_inventory_button" width="132" />
8 <button label="Copiar e Vestir" label_selected="Copiar e Vestir" 8 <button label="Copiar e Vestir" label_selected="Copiar e Vestir"
9 name="copy_and_wear_button" /> 9 name="copy_and_wear_button" left="152"/>
10</floater> 10</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_pay.xml b/linden/indra/newview/skins/default/xui/pt/floater_pay.xml
index 0803a56..6b094d0 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_pay.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_pay.xml
@@ -1,21 +1,21 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Give Money" title=""> 2<floater name="Give Money" title="">
3 <button label="L$1" label_selected="L$1" name="fastpay 1" /> 3 <button label="L$1" label_selected="L$1" name="fastpay 1" left="112" />
4 <button label="L$5" label_selected="L$5" name="fastpay 5" /> 4 <button label="L$5" label_selected="L$5" name="fastpay 5" />
5 <button label="L$10" label_selected="L$10" name="fastpay 10" /> 5 <button label="L$10" label_selected="L$10" name="fastpay 10" left="112" />
6 <button label="L$20" label_selected="L$20" name="fastpay 20" /> 6 <button label="L$20" label_selected="L$20" name="fastpay 20" />
7 <button label="Pagar" label_selected="Pagar" name="pay btn" /> 7 <button label="Pagar" label_selected="Pagar" name="pay btn" />
8 <button label="Cancelar" label_selected="Cancelar" name="cancel btn" /> 8 <button label="Cancelar" label_selected="Cancelar" name="cancel btn" />
9 <text type="string" length="1" name="payee_label"> 9 <text type="string" length="1" name="payee_label" width="110" left="5">
10 Pagar residente: 10 Pagar residente:
11 </text> 11 </text>
12 <text type="string" length="1" name="payee_name"> 12 <text type="string" length="1" name="payee_name" left="110">
13 [FIRST] [LAST] 13 [FIRST] [LAST]
14 </text> 14 </text>
15 <text type="string" length="1" name="fastpay text"> 15 <text type="string" length="1" name="fastpay text" width="120" halign="left">
16 Pagamento rápido: 16 Pagamento rápido:
17 </text> 17 </text>
18 <text type="string" length="1" name="amount text"> 18 <text type="string" length="1" name="amount text" left="4" >
19 Quantia: 19 Quantia:
20 </text> 20 </text>
21</floater> 21</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_pay_object.xml b/linden/indra/newview/skins/default/xui/pt/floater_pay_object.xml
index 707d777..ad76cf8 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_pay_object.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_pay_object.xml
@@ -1,30 +1,31 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Give Money" title=""> 2<floater name="Give Money" title="">
3 <text type="string" length="1" name="payee_group"> 3 <text type="string" length="1" name="payee_group" width="100" halign="left">
4 Pagar Grupo: 4 Pagar Grupo:
5 </text> 5 </text>
6 <text type="string" length="1" name="payee_resident"> 6 <text type="string" length="1" name="payee_resident" width="120" halign="left" >
7 Pagar residente: 7 Pagar residente:
8 </text> 8 </text>
9 <text type="string" length="1" name="payee_name"> 9 <text type="string" length="1" name="payee_name" left="105">
10 [FIRST] [LAST] 10 [FIRST] [LAST]
11 </text> 11 </text>
12 <text type="string" length="1" name="object_name_label"> 12 <text type="string" length="1" name="object_name_label" left="5" width="95" halign="left">
13 Via objeto: 13 Via objeto:
14 </text> 14 </text>
15 <text type="string" length="1" name="object_name_text"> 15 <text type="string" length="1" name="object_name_text" left="105" >
16 ... 16 ...
17 </text> 17 </text>
18 <text type="string" length="1" name="fastpay text"> 18 <text type="string" length="1" name="fastpay text" width="115" halign="left">
19 Pagamento Rápido: 19 Pagamento Rápido:
20 </text> 20 </text>
21 <text type="string" length="1" name="amount text"> 21 <text type="string" length="1" name="amount text" left="5" halign="left">
22 Quantia: 22 Quantia:
23 </text> 23 </text>
24 <button label="L$1" label_selected="L$1" name="fastpay 1" /> 24 <button label="L$1" label_selected="L$1" name="fastpay 1" left="125" width="70"/>
25 <button label="L$5" label_selected="L$5" name="fastpay 5" /> 25 <button label="L$5" label_selected="L$5" name="fastpay 5" left="200" width="70"/>
26 <button label="L$10" label_selected="L$10" name="fastpay 10" /> 26 <button label="L$10" label_selected="L$10" name="fastpay 10" left="125" width="70"/>
27 <button label="L$20" label_selected="L$20" name="fastpay 20" /> 27 <button label="L$20" label_selected="L$20" name="fastpay 20" left="200" width="70"/>
28 <button label="Pagar" label_selected="Pagar" name="pay btn" /> 28 <button label="Pagar" label_selected="Pagar" name="pay btn" />
29 <button label="Cancelar" label_selected="Cancelar" name="cancel btn" /> 29 <button label="Cancelar" label_selected="Cancelar" name="cancel btn" />
30 <line_editor left="60" name="amount" width="50" />
30</floater> 31</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_postcard.xml b/linden/indra/newview/skins/default/xui/pt/floater_postcard.xml
index 7107ab5..7aac816 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_postcard.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_postcard.xml
@@ -1,28 +1,40 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Postcard" title="Enviar car£o postal"> 2<floater name="Postcard" title="Instan¢neo por email">
3 <text name="to_label"> 3 <text name="to_label" width="135">
4 Email do Destinatário: 4 Email do Destinatário:
5 </text> 5 </text>
6 <line_editor name="to_form" left="143" width="127" />
6 <text name="from_label"> 7 <text name="from_label">
7 Seu Email: 8 Seu Email:
8 </text> 9 </text>
10 <line_editor name="from_form" left="143" width="127" />
9 <text name="name_label"> 11 <text name="name_label">
10 Seu nome: 12 Seu nome:
11 </text> 13 </text>
14 <line_editor name="name_form" left="143" width="127" />
12 <text name="subject_label"> 15 <text name="subject_label">
13 Assunto: 16 Assunto:
14 </text> 17 </text>
18 <line_editor name="subject_form" left="143" width="127" />
19 <line_editor label="Digite seu assunto aqui." name="subject_form"/>
15 <text name="msg_label"> 20 <text name="msg_label">
16 Mensagem: 21 Mensagem:
17 </text> 22 </text>
18 <check_box label="Publicar na Web" name="allow_publish_check" 23 <text_editor name="msg_form">
19 tool_tip="Publicar este postcard na web" /> 24 Digite sua mensagem aqui.
20 <check_box label="Conteúdo Adulto" name="mature_check" 25 </text_editor>
21 tool_tip="Este postcard possui conteúdo adulto." />
22 <button label="?" name="publish_help_btn" />
23 <text name="fine_print"> 26 <text name="fine_print">
24 Se o destinatário do seu postcard é residente em SL, você receberá um bonus.. 27 Se seu indicado entrar no SL, você receberá um bônus pela indicação.
25 </text> 28 </text>
26 <button label="Cancelar" name="cancel_btn" /> 29 <button label="Cancelar" name="cancel_btn"/>
27 <button label="Enviar" name="send_btn" /> 30 <button label="Enviar" name="send_btn"/>
31 <string name="default_subject">
32 Cartão postal do Second Life.
33 </string>
34 <string name="default_message">
35 Dá uma olhada nisto!
36 </string>
37 <string name="upload_message">
38 &quot;Enviando...&quot;
39 </string>
28</floater> 40</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_preview_animation.xml b/linden/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
index dcd2d96..a46ba13 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
@@ -4,7 +4,7 @@
4 Descrição: 4 Descrição:
5 </text> 5 </text>
6 <button label="Executar in World" label_selected="Parar" name="Anim play btn" 6 <button label="Executar in World" label_selected="Parar" name="Anim play btn"
7 tool_tip="Executar esta animação para que outros vejam.." /> 7 tool_tip="Executar esta animação para que outros vejam.." width="131" left="20"/>
8 <button label="Executar localmente" label_selected="Parar" name="Anim audition btn" 8 <button label="Executar localmente" label_selected="Parar" name="Anim audition btn"
9 tool_tip="Executar esta animação somente para você ver." /> 9 tool_tip="Executar esta animação somente para você ver." width="125" left="162"/>
10</floater> 10</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_preview_classified.xml b/linden/indra/newview/skins/default/xui/pt/floater_preview_classified.xml
new file mode 100644
index 0000000..83af494
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_preview_classified.xml
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="classified_preview" title="Classificar Informação"/>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_preview_event.xml b/linden/indra/newview/skins/default/xui/pt/floater_preview_event.xml
new file mode 100644
index 0000000..60f8556
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_preview_event.xml
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="event_preview" title="Informação de Evento (testemunhos)"/>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml b/linden/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
index 0be325e..3dc4e8f 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
@@ -1,32 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="gesture_preview"> 2<floater name="gesture_preview">
3 <string name="stop_txt">
4 Parar
5 </string>
6 <string name="preview_txt">
7 Prévia
8 </string>
9 <string name="none_text">
10 -- Nenhum --
11 </string>
3 <text name="desc_label"> 12 <text name="desc_label">
4 Descrição: 13 Descrição:
5 </text> 14 </text>
6 <text name="trigger_label"> 15 <text name="trigger_label">
7 Gatilho: 16 Gatilho:
8 </text> 17 </text>
9 <text name="replace_text" 18 <text name="replace_text" tool_tip="Substituir a(s) palavra(s) gatilho por estas palavras.">
10 tool_tip="Substituir a(s) palavra(s) gatilho por estas palavras.">
11 Substituir por: 19 Substituir por:
12 </text> 20 </text>
13 <line_editor name="replace_editor" 21 <line_editor name="replace_editor" tool_tip="Substituir a(s) palavra(s) gatilho por estas palavras. "/>
14 tool_tip="Substituir a(s) palavra(s) gatilho por estas palavras. " />
15 <text name="key_label"> 22 <text name="key_label">
16 Tecla de Atalho: 23 Tecla de Atalho:
17 </text> 24 </text>
18 <combo_box label="Nenhum" name="modifier_combo" /> 25 <combo_box label="Nenhum" name="modifier_combo"/>
19 <combo_box label="Nenhum" name="key_combo" /> 26 <combo_box label="Nenhum" name="key_combo"/>
20 <text name="library_label"> 27 <text name="library_label">
21 Biblioteca: 28 Biblioteca:
22 </text> 29 </text>
23 <text name="steps_label"> 30 <text name="steps_label">
24 Passos: 31 Passos:
25 </text> 32 </text>
26 <button label="Incluir" name="add_btn" /> 33 <button label="Incluir" name="add_btn"/>
27 <button label="Mover Para Cima" name="up_btn" /> 34 <button label="Mover Para Cima" name="up_btn"/>
28 <button label="Mover Para Baixo" name="down_btn" /> 35 <button label="Mover Para Baixo" name="down_btn"/>
29 <button label="Remover" name="delete_btn" /> 36 <button label="Remover" name="delete_btn"/>
30 <text name="help_label"> 37 <text name="help_label">
31 Todos os passos acontecem simultaneamente, a menos que você inclua passos de espera. 38 Todos os passos acontecem simultaneamente, a menos que você inclua passos de espera.
32 </text> 39 </text>
@@ -38,10 +45,9 @@
38 Parar 45 Parar
39 </radio_item> 46 </radio_item>
40 </radio_group> 47 </radio_group>
41 <check_box label="Até que a animação esteja concluída" name="wait_anim_check" /> 48 <check_box label="Até que a animação esteja concluída" name="wait_anim_check"/>
42 <check_box label="tempo em segundos" name="wait_time_check" /> 49 <check_box label="tempo em segundos" name="wait_time_check"/>
43 <check_box label="Ativar" name="active_check" 50 <check_box label="Ativar" name="active_check" tool_tip="Gesto ativos pode ser engatilhados escrevendo suas frases gatilho no chat ou através de suas teclas de atalho. Gestos normalmente ficam inativos quando existe um conflito nas teclas de atalho."/>
44 tool_tip="Gesto ativos pode ser engatilhados escrevendo suas frases gatilho no chat ou através de suas teclas de atalho. Gestos normalmente ficam inativos quando existe um conflito nas teclas de atalho." /> 51 <button label="Preview" name="preview_btn"/>
45 <button label="Preview" name="preview_btn" /> 52 <button label="Salvar" name="save_btn"/>
46 <button label="Salvar" name="save_btn" />
47</floater> 53</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml b/linden/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml
index 71d285f..e7d3144 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml
@@ -1,10 +1,16 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="preview notecard" title="Nota:"> 2<floater name="preview notecard" title="Nota:">
3 <button label="Salvar" label_selected="Salvar" name="Save" /> 3 <button label="Salvar" label_selected="Salvar" name="Save"/>
4 <text type="string" length="1" name="desc txt"> 4 <text length="1" name="desc txt" type="string">
5 Descrição: 5 Descrição:
6 </text> 6 </text>
7 <text_editor type="string" length="1" name="Notecard Editor"> 7 <text_editor length="1" name="Notecard Editor" type="string">
8 Carregando... 8 Carregando...
9 </text_editor> 9 </text_editor>
10 <string name="no_object">
11 Não foi possível encontrar o objeto que contém esta nota.
12 </string>
13 <string name="not_allowed">
14 Você não tem permissão de visualizar esta nota.
15 </string>
10</floater> 16</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_preview_notecard_keep_discard.xml b/linden/indra/newview/skins/default/xui/pt/floater_preview_notecard_keep_discard.xml
index 6818d88..094770a 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_preview_notecard_keep_discard.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_preview_notecard_keep_discard.xml
@@ -1,11 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="preview_notecard"> 2<floater name="preview_notecard">
3 <text_editor type="string" length="1" name="Notecard Editor"> 3 <text_editor length="1" name="Notecard Editor" type="string">
4 Carregando... 4 Carregando...
5 </text_editor> 5 </text_editor>
6 <text type="string" length="1" name="desc txt"> 6 <text length="1" name="desc txt" type="string">
7 Descrição: 7 Descrição:
8 </text> 8 </text>
9 <button label="Guardar" label_selected="Guardar" name="Keep" /> 9 <button label="Guardar" label_selected="Guardar" name="Keep"/>
10 <button label="Descartar" label_selected="Descartar" name="Discard" /> 10 <button label="Descartar" label_selected="Descartar" name="Discard"/>
11 <string name="no_object">
12 Não foi possível encontrar o objeto que contém esta nota.:
13 </string>
14 <string name="not_allowed">
15 Você não tem permissão para ler esta nota.
16 </string>
11</floater> 17</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_preview_url.xml b/linden/indra/newview/skins/default/xui/pt/floater_preview_url.xml
new file mode 100644
index 0000000..16d9cc8
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_preview_url.xml
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="url_preview" title="Informação local"/>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_region_info.xml b/linden/indra/newview/skins/default/xui/pt/floater_region_info.xml
new file mode 100644
index 0000000..b16b1a4
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_region_info.xml
@@ -0,0 +1,2 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="regioninfo" title="Região/Propriedade"/>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_report_abuse.xml b/linden/indra/newview/skins/default/xui/pt/floater_report_abuse.xml
index b12037d..71e5ccc 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_report_abuse.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_report_abuse.xml
@@ -1,59 +1,165 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floater_report_abuse" title="Reportar abuso"> 2<floater name="floater_report_abuse" title="Reportar abuso">
3 <texture_picker label="" name="screenshot"/>
4 <check_box label="Incluir screenshot" name="screen_check"/>
3 <text name="reporter_title"> 5 <text name="reporter_title">
4 Denunciador: 6 Denunciador:
5 </text> 7 </text>
8 <text name="reporter_field">
9 Loremipsum Dolorsitamut
10 </text>
6 <text name="sim_title"> 11 <text name="sim_title">
7 Região: 12 Região:
8 </text> 13 </text>
14 <text name="sim_field">
15 Nome da Região
16 </text>
9 <text name="pos_title"> 17 <text name="pos_title">
10 Posição: 18 Posição:
11 </text> 19 </text>
12 <texture_picker name="screenshot" /> 20 <text name="pos_field">
13 <check_box label="Incluir screenshot" name="screen_check" /> 21 {128.1, 128.1, 15.4}
14 <button label="" label_selected="" name="pick_btn" 22 </text>
15 tool_tip="Object Picker - Identifica um objeto com assunto deste report" />
16 <text name="select_object_label"> 23 <text name="select_object_label">
17 Clique no botão e em seguida no objeto: 24 Clique no botão e em seguida no objeto:
18 </text> 25 </text>
26 <button label="" label_selected="" name="pick_btn" tool_tip="Object Picker - Identifica um objeto com assunto deste report"/>
19 <text name="object_name_label"> 27 <text name="object_name_label">
20 Nome: 28 Nome:
21 </text> 29 </text>
30 <text name="object_name">
31 Consetetur Sadipscing
32 </text>
22 <text name="owner_name_label"> 33 <text name="owner_name_label">
23 Proprietário: 34 Proprietário:
24 </text> 35 </text>
25 <combo_box name="category_combo" 36 <text name="owner_name">
26 tool_tip="Categoria -- Selecione a categoria que melhor descreve este report"> 37 Hendrerit Vulputate
27 <combo_item name="Selectcategory"> 38 </text>
28 Selecione a Categoria 39 <combo_box name="category_combo" tool_tip="Categoria -- Selecione a categoria que melhor descreve este report">
40 <combo_item name="Select_category">
41 Selecionar categoria
42 </combo_item>
43 <combo_item name="Age__Age_play">
44 Idade &gt; Idade no jogo
45 </combo_item>
46 <combo_item name="Age__Adult_resident_on_Teen_Second_Life">
47 Idade &gt; Residente adulto no Second Life Jovem
48 </combo_item>
49 <combo_item name="Age__Underage_resident_on_Adult_Second_Life">
50 Idade &gt; Residente menor no Second Life Adulto
51 </combo_item>
52 <combo_item name="Assault__Combat_sandbox___unsafe_area">
53 Assalto &gt; Sandbox de combate / área não segura
54 </combo_item>
55 <combo_item name="Assault__Safe_area">
56 Assalto &gt; Ãrea segura
57 </combo_item>
58 <combo_item name="Assault__Weapons_testing_sandbox">
59 Assalto &gt; Testando armas em sandbox
60 </combo_item>
61 <combo_item name="Commerce__Failure_to_deliver_product_or_service">
62 Comércio &gt; Falha em enviar produto ou serviço
63 </combo_item>
64 <combo_item name="Disclosure__Real_world_information">
65 Revelar &gt; Informação do mundo real
66 </combo_item>
67 <combo_item name="Disclosure__Remotely_monitoring chat">
68 Revelar &gt; Conversa monitorada remotamente
69 </combo_item>
70 <combo_item name="Disclosure__Second_Life_information_chat_IMs">
71 Revelar &gt; Informação do Second Life/conversa/MIs
72 </combo_item>
73 <combo_item name="Disturbing_the_peace__Unfair_use_of_region_resources">
74 Distúrbio da paz &gt; Uso injusto dos recursos da região
75 </combo_item>
76 <combo_item name="Disturbing_the_peace__Excessive_scripted_objects">
77 Distúrbio da paz &gt; Objetos com excesso de scripts
78 </combo_item>
79 <combo_item name="Disturbing_the_peace__Object_littering">
80 Distúrbio da paz &gt; Objeto despejando lixo
81 </combo_item>
82 <combo_item name="Disturbing_the_peace__Repetitive_spam">
83 Distúrbio da paz &gt; Spam repetitivo
84 </combo_item>
85 <combo_item name="Disturbing_the_peace__Unwanted_advert_spam">
86 Distúrbio da paz &gt; Spam de anúncio indesejado
87 </combo_item>
88 <combo_item name="Fraud__L$">
89 Fraude &gt; L$
90 </combo_item>
91 <combo_item name="Fraud__Land">
92 Fraude &gt; Terra
93 </combo_item>
94 <combo_item name="Fraud__Pyramid_scheme_or_chain_letter">
95 Fraude &gt; Esquema de pirâmide ou cartas encadeadas
96 </combo_item>
97 <combo_item name="Fraud__US$">
98 Fraude &gt; R$
99 </combo_item>
100 <combo_item name="Harassment__Advert_farms___visual_spam">
101 Perturbação &gt; Fazendas de Anúncios / spam visual
102 </combo_item>
103 <combo_item name="Harassment__Defaming_individuals_or_groups">
104 Perturbação &gt; Difamação de indivíduos ou grupos
105 </combo_item>
106 <combo_item name="Harassment__Impeding_movement">
107 Perturbação &gt; Impedindo movimentos
108 </combo_item>
109 <combo_item name="Harassment__Sexual_harassment">
110 Perturbação &gt; Perturbação sexual
111 </combo_item>
112 <combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS">
113 Perturbação &gt; Solicitando/incitando outros a violarem o ToS
114 </combo_item>
115 <combo_item name="Harassment__Verbal_abuse">
116 Perturbação &gt; Abuso verbal
117 </combo_item>
118 <combo_item name="Indecency__Broadly_offensive_content_or_conduct">
119 Indecência &gt; Conteúdo ou conduta amplamente ofensivos
120 </combo_item>
121 <combo_item name="Indecency__Broadly_visible_mature_content">
122 Indecência &gt; Conteúdo maduro visível de um modo geral
123 </combo_item>
124 <combo_item name="Indecency__Inappropriate_avatar_name">
125 Indecência &gt; Nome de avatar inapropriado
126 </combo_item>
127 <combo_item name="Indecency__Mature_content_in_PG_region">
128 Indecência &gt; Conteúdo maduro numa região PG
129 </combo_item>
130 <combo_item name="Intellectual_property_infringement_Content_Removal">
131 Violação de propriedade intelectual &gt; Remoção de Conteúdo
132 </combo_item>
133 <combo_item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit">
134 Violação de Propriedade intelectual &gt; Cópia Ilegal ou Aproveitar-se de Permissões
29 </combo_item> 135 </combo_item>
30 <combo_item name="Intolerance"> 136 <combo_item name="Intolerance">
31 Intolerância 137 Intolerância
32 </combo_item> 138 </combo_item>
33 <combo_item name="Harassment"> 139 <combo_item name="Land__Abuse_of_sandbox_resources">
34 Assédio 140 Terra &gt; Abuso dos recursos da sandbox
35 </combo_item> 141 </combo_item>
36 <combo_item name="Assault"> 142 <combo_item name="Land__Encroachment__Objects_textures">
37 Assalto 143 Terra &gt; Invasão &gt; Objetos/texturas
38 </combo_item> 144 </combo_item>
39 <combo_item name="Disclosure"> 145 <combo_item name="Land__Encroachment__Particles">
40 Exposição 146 Terra &gt; Invasão &gt; Partículas
41 </combo_item> 147 </combo_item>
42 <combo_item name="Indecency"> 148 <combo_item name="Land__Encroachment__Trees_plants">
43 Indecência 149 Terra &gt; Violação &gt; Ãrvores/plantas
44 </combo_item> 150 </combo_item>
45 <combo_item name="Age"> 151 <combo_item name="Wagering_gambling">
46 Idade 152 Apostas/jogos de azar
47 </combo_item> 153 </combo_item>
48 <combo_item name="Parcel"> 154 <combo_item name="Other">
49 Lote 155 Outro
50 </combo_item> 156 </combo_item>
51 </combo_box> 157 </combo_box>
52 <text name="abuser_name_title"> 158 <text name="abuser_name_title">
53 Nome do Denunciado: 159 Nome do Denunciado:
54 </text> 160 </text>
55 <button label="Selecione" label_selected="" name="select_abuser" 161 <button label="Escolher Residente" label_selected="" name="select_abuser" tool_tip="Selecione o nome do Denuncionado numa lista"/>
56 tool_tip="Selecione o nome do Denuncionado numa lista" /> 162 <check_box label="Não sei o nome do molestador" name="omit_abuser_name" tool_tip="Marque aqui se você não consegue fornecer o nome do agressor"/>
57 <text name="abuser_name_title2"> 163 <text name="abuser_name_title2">
58 Local do Abuso: 164 Local do Abuso:
59 </text> 165 </text>
@@ -64,11 +170,11 @@
64 Detalhes: 170 Detalhes:
65 </text> 171 </text>
66 <text name="bug_aviso"> 172 <text name="bug_aviso">
67 Por favor, seja específico com a data, local , natureza do abuso, texto do chat ou MI relevânte e selecione o objeto se possível. 173 Por favor, seja específico(a) sobre data, localidade, natureza do abuso, texto relevante de conversa/MI e selecione o objeto, se possível.
68 </text> 174 </text>
69 <text name="incomplete_title"> 175 <text name="incomplete_title">
70 Nota: Reports imcompletos não serão investigados 176 Nota: Relatos incompletos não serão investigados.
71 </text> 177 </text>
72 <button label="Reportar Abuso" label_selected="Reportar Abuso" name="send_btn" /> 178 <button label="Cancelar" label_selected="Cancelar" name="cancel_btn"/>
73 <button label="Cancelar" label_selected="Cancelar" name="cancel_btn" /> 179 <button label="Reportar Abuso" label_selected="Reportar Abuso" name="send_btn"/>
74</floater> 180</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_report_bug.xml b/linden/indra/newview/skins/default/xui/pt/floater_report_bug.xml
index e166442..7ecb8c1 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_report_bug.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_report_bug.xml
@@ -1,99 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="bug_reporter" title="Reportar Bug"> 2<floater name="bug_reporter" title="Reportar Bug">
3 <text name="reporter_title">
4 Denunciador:
5 </text>
6 <text name="sim_title"> 3 <text name="sim_title">
7 Simulador: 4 Região:
8 </text>
9 <text name="pos_title">
10 Local:
11 </text> 5 </text>
12 <text name="select_object_label"> 6 <text name="select_object_label">
13 Clique no botão e em seguida no objeto: 7 Clique no botão e depois no objeto:
14 </text>
15 <button label="" label_selected="" name="pick_btn"
16 tool_tip="Selecionador de objeto - Identifica um objeto como assunto deste report" />
17 <text name="object_name_label">
18 Nome:
19 </text>
20 <text name="owner_name_label">
21 Proprietário:
22 </text>
23 <check_box label="Incluir screenshot" name="screen_check" />
24 <texture_picker label="Trabalhando..." name="screenshot" />
25 <text name="category_label">
26 Categoria:
27 </text>
28 <combo_box name="category_combo"
29 tool_tip="Categoria -- Selecione a categoria que melhor descreve este report">
30 <combo_item name="Selectcategory">
31 Selecione a Categoria
32 </combo_item>
33 <combo_item name="Building">
34 Construção
35 </combo_item>
36 <combo_item name="Character">
37 Personagem
38 </combo_item>
39 <combo_item name="Chat/IM">
40 Chat/MI
41 </combo_item>
42 <combo_item name="Documentation">
43 Documentação
44 </combo_item>
45 <combo_item name="Exploit">
46 Exploração
47 </combo_item>
48 <combo_item name="Graphics">
49 Gráficos
50 </combo_item>
51 <combo_item name="Inventory">
52 Inventário
53 </combo_item>
54 <combo_item name="Lag">
55 Lag
56 </combo_item>
57 <combo_item name="MissingContent">
58 Conteúdo Faltando
59 </combo_item>
60 <combo_item name="LindenDollars(L$)">
61 Linden Dollars (L$)
62 </combo_item>
63 <combo_item name="Permissions">
64 Permissões
65 </combo_item>
66 <combo_item name="Physics">
67 Física
68 </combo_item>
69 <combo_item name="Script">
70 Script
71 </combo_item>
72 <combo_item name="Sound">
73 Sons
74 </combo_item>
75 <combo_item name="Stipends">
76 Valor de Entrada
77 </combo_item>
78 <combo_item name="Userinterface">
79 Interface do Usuário
80 </combo_item>
81 <combo_item name="Miscellaneous">
82 Miscelânia
83 </combo_item>
84 </combo_box>
85 <text name="sum_title">
86 Resumo:
87 </text>
88 <text name="dscr_title">
89 detalhes: (Por favor, forneceça o máximo de informação que puder)
90 </text>
91 <text_editor name="details_edit">
92 Passos para reproduzir o bug: Resultados Obtido: Resultados Esperados:
93 </text_editor>
94 <text name="bug_aviso">
95 Nota: Reports incompletos não serão investigados. Se este bug permite que você faça algo que não poderia fazer, especialmente se isso representa uma ameaça a performace ou segurança, por favor selecione a categoria Exploração. Obrigado!
96 </text> 8 </text>
97 <button label="Reportar Bug" label_selected="Reportar Bug" name="send_btn" /> 9 <texture_picker label="" name="screenshot"/>
98 <button label="Cancelar" label_selected="Cancelar" name="cancel_btn" />
99</floater> 10</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_script_debug.xml b/linden/indra/newview/skins/default/xui/pt/floater_script_debug.xml
index fbbad17..5c38df6 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_script_debug.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_script_debug.xml
@@ -1,6 +1,2 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<multi_floater name="script debug floater" title="Script Errors/Warning"> 2<multi_floater name="script debug floater" title="Aviso de script/erro"/>
3 <tab_container name="Preview Tabs">
4 <floater label="Script" name="all_scripts" title="[All scripts]" />
5 </tab_container>
6</multi_floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_script_ed_panel.xml b/linden/indra/newview/skins/default/xui/pt/floater_script_ed_panel.xml
index eb85ea1..c57a7e1 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_script_ed_panel.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_script_ed_panel.xml
@@ -1,30 +1,43 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="script panel"> 2<panel name="script panel">
3 <text_editor type="string" length="1" name="Script Editor"> 3 <text_editor length="1" name="Script Editor" type="string">
4 Loading... 4 Loading...
5 </text_editor> 5 </text_editor>
6 <button label="Salvar" label_selected="Salvar" name="Save_btn" /> 6 <button label="Salvar" label_selected="Salvar" name="Save_btn"/>
7 <combo_box label="Inserir..." name="Insert..."/>
7 <menu_bar name="script_menu"> 8 <menu_bar name="script_menu">
8 <menu name="File"> 9 <menu name="File">
9 <menu_item_call label="Salvar" name="Save" /> 10 <menu_item_call label="Salvar" name="Save"/>
10 <menu_item_call label="Desfazer as Mudanças" name="Revert All Changes" /> 11 <menu_item_call label="Desfazer as Mudanças" name="Revert All Changes"/>
11 </menu> 12 </menu>
12 <menu name="Edit"> 13 <menu name="Edit">
13 <menu_item_call label="Desfazer" name="Undo" /> 14 <menu_item_call label="Desfazer" name="Undo"/>
14 <menu_item_call label="Desfazer" name="Redo" /> 15 <menu_item_call label="Desfazer" name="Redo"/>
15 <menu_item_separator label="-----------" name="separator" /> 16 <menu_item_separator label="-----------" name="separator"/>
16 <menu_item_call label="Recortar" name="Cut" /> 17 <menu_item_call label="Recortar" name="Cut"/>
17 <menu_item_call label="Copiar" name="Copy" /> 18 <menu_item_call label="Copiar" name="Copy"/>
18 <menu_item_call label="Colar" name="Paste" /> 19 <menu_item_call label="Colar" name="Paste"/>
19 <menu_item_separator label="-----------" name="separator2" /> 20 <menu_item_separator label="-----------" name="separator2"/>
20 <menu_item_call label="Selecionar Tudo" name="Select All" /> 21 <menu_item_call label="Selecionar Tudo" name="Select All"/>
21 <menu_item_call label="Retirar seleção" name="Deselect" /> 22 <menu_item_call label="Retirar seleção" name="Deselect"/>
22 <menu_item_separator label="-----------" name="separator3" /> 23 <menu_item_separator label="-----------" name="separator3"/>
23 <menu_item_call label="Buscar / Substituir..." name="Search / Replace..." /> 24 <menu_item_call label="Buscar / Substituir..." name="Search / Replace..."/>
24 </menu> 25 </menu>
25 <menu name="Help"> 26 <menu name="Help">
26 <menu_item_call label="Ajuda..." name="Help..." /> 27 <menu_item_call label="Ajuda..." name="Help..."/>
27 <menu_item_call label="Ajuda LSL Wiki..." name="LSL Wiki Help..." /> 28 <menu_item_call label="Ajuda LSL Wiki..." name="LSL Wiki Help..."/>
28 </menu> 29 </menu>
29 </menu_bar> 30 </menu_bar>
31 <string name="loading">
32 Carregando...
33 </string>
34 <string name="can_not_view">
35 Você não tem permissão de visualizar este script.
36 </string>
37 <string name="public_objects_can_not_run">
38 Objetos públicos não podem rodar scripts
39 </string>
40 <string name="script_running">
41 Funcionando
42 </string>
30</panel> 43</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_sim_release_message.xml b/linden/indra/newview/skins/default/xui/pt/floater_sim_release_message.xml
new file mode 100644
index 0000000..2fc2473
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_sim_release_message.xml
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="floaterreleasemessage" title="Entrando na região">
3 <button label="fechar" name="close_btn"/>
4 <string name="in-world_help_title">
5 Ajuda no mundo
6 </string>
7 <string name="additional_help_title">
8 Ajuda adicional
9 </string>
10</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_snapshot.xml b/linden/indra/newview/skins/default/xui/pt/floater_snapshot.xml
index 6c34ba3..b24d7fa 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_snapshot.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_snapshot.xml
@@ -1,23 +1,46 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Snapshot" title="Visualizar foto"> 2<floater name="Snapshot" title="Visualizar foto">
3 <text name="type_label"> 3 <text name="type_label">
4 O que você gostaria de fazer? 4 Instantâneo do destino
5 </text> 5 </text>
6 <radio_group label="Tipo de Foto" name="snapshot_type_radio"> 6 <radio_group label="Tipo de Foto" name="snapshot_type_radio">
7 <radio_item name="postcard"> 7 <radio_item name="postcard">
8 Enviar um postcard 8 Enviar por email
9 </radio_item> 9 </radio_item>
10 <radio_item name="texture"> 10 <radio_item name="texture">
11 Upload de uma foto 11 Salvar no seu inventário (L$10)
12 </radio_item> 12 </radio_item>
13 <radio_item name="local"> 13 <radio_item name="local">
14 Salvar foto no seu HD 14 Salvar no seu disco rígido
15 </radio_item> 15 </radio_item>
16 </radio_group> 16 </radio_group>
17 <text name="file_size_label">
18 Tamanho do arquivo: [SIZE] KB
19 </text>
20 <button label="Atualizar o Instantâneo" name="new_snapshot_btn"/>
21 <button label="Enviar" name="send_btn"/>
22 <button label="Salvar (L$10)" name="upload_btn"/>
23 <flyout_button label="Salvar" name="save_btn" tool_tip="Salvar imagem em um arquivo">
24 <flyout_button_item name="save_item">
25 Salvar
26 </flyout_button_item>
27 <flyout_button_item name="saveas_item">
28 Salvar como...
29 </flyout_button_item>
30 </flyout_button>
31 <button label="Cancelar" name="discard_btn"/>
32 <button label="Mais &gt;" name="more_btn" tool_tip="Opções Avançadas"/>
33 <button label="&lt; Menos" name="less_btn" tool_tip="Opções Avançadas"/>
17 <text name="type_label2"> 34 <text name="type_label2">
18 Que tamanho de imagem você precisa? 35 Tamanho
36 </text>
37 <text name="format_label">
38 Formato
19 </text> 39 </text>
20 <combo_box label="Resolução" name="postcard_size_combo"> 40 <combo_box label="Resolução" name="postcard_size_combo">
41 <combo_item name="CurrentWindow">
42 Janela Atual
43 </combo_item>
21 <combo_item name="640x480"> 44 <combo_item name="640x480">
22 640x480 45 640x480
23 </combo_item> 46 </combo_item>
@@ -27,9 +50,6 @@
27 <combo_item name="1024x768"> 50 <combo_item name="1024x768">
28 1024x768 51 1024x768
29 </combo_item> 52 </combo_item>
30 <combo_item name="CurrentWindow">
31 Janela Atual
32 </combo_item>
33 <combo_item name="Custom"> 53 <combo_item name="Custom">
34 Customizado 54 Customizado
35 </combo_item> 55 </combo_item>
@@ -77,9 +97,21 @@
77 Customizado 97 Customizado
78 </combo_item> 98 </combo_item>
79 </combo_box> 99 </combo_box>
80 <spinner label="Largura" name="snapshot_width" /> 100 <combo_box label="Formato" name="local_format_combo">
81 <spinner label="Altura" name="snapshot_height" /> 101 <combo_item name="PNG">
82 <slider label="Qualidade da Imagem" name="image_quality_slider" /> 102 PNG
103 </combo_item>
104 <combo_item name="JPEG">
105 JPEG
106 </combo_item>
107 <combo_item name="BMP">
108 BMP
109 </combo_item>
110 </combo_box>
111 <spinner label="Largura" name="snapshot_width"/>
112 <spinner label="Altura" name="snapshot_height"/>
113 <check_box label="Restringir proporções" name="keep_aspect_check"/>
114 <slider label="Qualidade da Imagem" name="image_quality_slider"/>
83 <text name="layer_type_label"> 115 <text name="layer_type_label">
84 Capturar: 116 Capturar:
85 </text> 117 </text>
@@ -94,18 +126,12 @@
94 Decoração do Objeto 126 Decoração do Objeto
95 </combo_item> 127 </combo_item>
96 </combo_box> 128 </combo_box>
97 <text name="file_size_label"> 129 <check_box label="Mostrar interface na Foto" name="ui_check"/>
98 Tamanho do Arquivo: [SIZE] 130 <check_box label="Mostrar Objetos HUD na Foto" name="hud_check"/>
99 </text> 131 <check_box label="Manter aberto após salvar" name="keep_open_check"/>
100 <check_box label="Mostrar interface na Foto" name="ui_check" /> 132 <check_box label="Quadro Congelado" name="freeze_frame_check"/>
101 <check_box label="Mostrar Objetos HUD na Foto" name="hud_check" /> 133 <check_box label="Auto-atualizar" name="auto_snapshot_check"/>
102 <check_box label="Manter aberto após salvar" name="keep_open_check" /> 134 <string name="unknown">
103 <check_box label="Manter aparência selecionada" name="keep_aspect_check" /> 135 desconhecido
104 <check_box label="Quadro Congelado" name="freeze_frame_check" /> 136 </string>
105 <button label="Nova foto" name="new_snapshot_btn" />
106 <check_box label="Auto-snapshot" name="auto_snapshot_check" />
107 <button label="Upload (L$10)" name="upload_btn" />
108 <button label="Enviar" name="send_btn" />
109 <button label="Salvar" name="save_btn" />
110 <button label="Descartar" name="discard_btn" />
111</floater> 137</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml b/linden/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml
index b2b078a..b83fafe 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml
@@ -1,17 +1,24 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="texture picker" title="Pegar: Textura"> 2<floater name="texture picker" title="Pegar: Textura">
3 <text type="string" length="1" name="Multiple"> 3 <string name="choose_picture">
4 Clique para escolher uma imagem
5 </string>
6 <text length="1" name="Multiple" type="string">
4 Multiplo 7 Multiplo
5 </text> 8 </text>
6 <text type="string" length="1" name="unknown"> 9 <text length="1" name="unknown" type="string">
7 Dimenções: 512 x 512 10 Dimensões: [DIMENSIONS]
8 </text> 11 </text>
9 <button label="Padrão" label_selected="Padrão" name="Default" /> 12 <button label="Padrão" label_selected="Padrão" name="Default"/>
10 <button label="Nenhum" label_selected="Nenhum" name="None" /> 13 <button label="Nenhum" label_selected="Nenhum" name="None"/>
11 <button label="Branco" label_selected="Branco" name="Blank" /> 14 <button label="Branco" label_selected="Branco" name="Blank"/>
12 <check_box label="Mostrar Pastas" name="show_folders_check" /> 15 <check_box label="Mostrar Pastas" name="show_folders_check"/>
13 <check_box label="Aplicar Imediatamente" name="apply_immediate_check" /> 16 <search_editor label="Clique aqui para buscar" name="inventory search editor"/>
14 <button label="" label_selected="" name="Pipette" /> 17 <check_box label="Aplicar Imediatamente" name="apply_immediate_check"/>
15 <button label="Cancelar" label_selected="Cancelar" name="Cancel" /> 18 <button label="" label_selected="" name="Pipette"/>
16 <button label="Selecionar" label_selected="Selecionar" name="Select" /> 19 <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
20 <button label="Selecionar" label_selected="Selecionar" name="Select"/>
21 <string name="pick title">
22 Pegar:
23 </string>
17</floater> 24</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_tools.xml b/linden/indra/newview/skins/default/xui/pt/floater_tools.xml
index fceea92..23099fe 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_tools.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_tools.xml
@@ -1,46 +1,24 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="toolbox floater" title=""> 2<floater name="toolbox floater" title="">
3 <button label="" label_selected="" name="button focus" /> 3 <button label="" label_selected="" name="button focus" tool_tip="Foco"/>
4 <text name="tool label"> 4 <button label="" label_selected="" name="button move" tool_tip="Mover"/>
5 Foco 5 <button label="" label_selected="" name="button edit" tool_tip="Editar"/>
6 </text> 6 <button label="" label_selected="" name="button create" tool_tip="Criar"/>
7 <button label="" label_selected="" name="button move" /> 7 <button label="" label_selected="" name="button land" tool_tip="Terra"/>
8 <text name="tool label2"> 8 <check_box label="Zoom" name="radio zoom"/>
9 Mover 9 <check_box label="Orbita (Ctrl)" name="radio orbit"/>
10 </text> 10 <check_box label="Pan (Ctrl-Shift)" name="radio pan"/>
11 <button label="" label_selected="" name="button edit" /> 11 <check_box label="Mover" name="radio move"/>
12 <text name="tool label3"> 12 <check_box label="Suspender (Ctrl)" name="radio lift"/>
13 Editar 13 <check_box label="Girar (Ctrl-Shift)" name="radio spin"/>
14 </text> 14 <check_box label="Posição" name="radio position"/>
15 <button label="" label_selected="" name="button create" /> 15 <check_box label="Rotacionar (Ctrl)" name="radio rotate"/>
16 <text name="tool label4"> 16 <check_box label="Esticar (Ctrl-Shift)" name="radio stretch"/>
17 Criar 17 <check_box label="Selecionar Textura" name="radio select face"/>
18 </text> 18 <check_box label="Editar partes linkadas" name="checkbox edit linked parts"/>
19 <button label="" label_selected="" name="button land" />
20 <text name="tool label5">
21 Terra
22 </text>
23 <check_box label="Zoom" name="radio zoom" />
24 <check_box label="Orbita (Ctrl)" name="radio orbit" />
25 <check_box label="Pan (Ctrl-Shift)" name="radio pan" />
26 <check_box label="Mover" name="radio move" />
27 <check_box label="Suspender (Ctrl)" name="radio lift" />
28 <check_box label="Girar (Ctrl-Shift)" name="radio spin" />
29 <check_box label="Posição" name="radio position" />
30 <check_box label="Rotacionar (Ctrl)" name="radio rotate" />
31 <check_box label="Esticar (Ctrl-Shift)" name="radio stretch" />
32 <check_box label="Selecionar Textura" name="radio select face" />
33 <check_box label="Editar partes linkadas" name="checkbox edit linked parts" />
34 <check_box label="Grade" name="checkbox snap to grid" />
35 <button label="Opções..." label_selected="Opções..." name="Options..." />
36 <check_box label="Esticar ambos os lados" name="checkbox uniform" />
37 <check_box label="Esticar Texturas" name="checkbox stretch textures" />
38 <text name="text ruler mode"> 19 <text name="text ruler mode">
39 Modo 20 Modo
40 </text> 21 </text>
41 <text name="text status">
42 Arraste para mover, shift+Arrastar para Copiar
43 </text>
44 <combo_box name="combobox grid mode"> 22 <combo_box name="combobox grid mode">
45 <combo_item name="World"> 23 <combo_item name="World">
46 Mundo 24 Mundo
@@ -52,32 +30,39 @@
52 Referência 30 Referência
53 </combo_item> 31 </combo_item>
54 </combo_box> 32 </combo_box>
55 <button label="" label_selected="" name="ToolCube" /> 33 <check_box label="Esticar ambos os lados" name="checkbox uniform"/>
56 <button label="" label_selected="" name="ToolPrism" /> 34 <check_box label="Esticar Texturas" name="checkbox stretch textures"/>
57 <button label="" label_selected="" name="ToolPyramid" /> 35 <check_box label="Grade" name="checkbox snap to grid"/>
58 <button label="" label_selected="" name="ToolTetrahedron" /> 36 <button label="Opções..." label_selected="Opções..." name="Options..."/>
59 <button label="" label_selected="" name="ToolCylinder" /> 37 <text name="text status">
60 <button label="" label_selected="" name="ToolHemiCylinder" /> 38 Arraste para mover, shift+Arrastar para Copiar
61 <button label="" label_selected="" name="ToolCone" /> 39 </text>
62 <button label="" label_selected="" name="ToolHemiCone" /> 40 <button label="" label_selected="" name="ToolCube" tool_tip="Cubo"/>
63 <button label="" label_selected="" name="ToolSphere" /> 41 <button label="" label_selected="" name="ToolPrism" tool_tip="Prisma"/>
64 <button label="" label_selected="" name="ToolHemiSphere" /> 42 <button label="" label_selected="" name="ToolPyramid" tool_tip="Pirâmide"/>
65 <check_box label="Copiar Seleção" name="checkbox copy selection" /> 43 <button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tetraedro"/>
66 <button label="" label_selected="" name="ToolTorus" /> 44 <button label="" label_selected="" name="ToolCylinder" tool_tip="Cilindro"/>
67 <button label="" label_selected="" name="ToolTube" /> 45 <button label="" label_selected="" name="ToolHemiCylinder" tool_tip="Semi-cilindro"/>
68 <button label="" label_selected="" name="ToolRing" /> 46 <button label="" label_selected="" name="ToolCone" tool_tip="Cone"/>
69 <button label="" label_selected="" name="ToolTree" /> 47 <button label="" label_selected="" name="ToolHemiCone" tool_tip="Semi-cone"/>
70 <button label="" label_selected="" name="ToolGrass" /> 48 <button label="" label_selected="" name="ToolSphere" tool_tip="Esfera"/>
71 <check_box label="Manter ferramenta selecionada" name="checkbox sticky" /> 49 <button label="" label_selected="" name="ToolHemiSphere" tool_tip="Semi-esfera"/>
72 <check_box label="Copiar Centro" name="checkbox copy centers" /> 50 <button label="" label_selected="" name="ToolTorus" tool_tip="Toróide"/>
73 <check_box label="Rotacionar Copia" name="checkbox copy rotates" /> 51 <button label="" label_selected="" name="ToolTube" tool_tip="Tubo"/>
74 <check_box label="Selecionar Terra" name="radio select land" /> 52 <button label="" label_selected="" name="ToolRing" tool_tip="Anel"/>
75 <check_box label="Aplainar Terra" name="radio flatten" /> 53 <button label="" label_selected="" name="ToolTree" tool_tip="Ãrvore"/>
76 <check_box label="Elevar Terra" name="radio raise" /> 54 <button label="" label_selected="" name="ToolGrass" tool_tip="Grama"/>
77 <check_box label="Baixar Terra" name="radio lower" /> 55 <check_box label="Manter ferramenta selecionada" name="checkbox sticky"/>
78 <check_box label="Suavizar Terra" name="radio smooth" /> 56 <check_box label="Copiar Seleção" name="checkbox copy selection"/>
79 <check_box label="Terrano Rígido" name="radio noise" /> 57 <check_box label="Copiar Centro" name="checkbox copy centers"/>
80 <check_box label="Reverter Terra" name="radio revert" /> 58 <check_box label="Rotacionar Copia" name="checkbox copy rotates"/>
59 <check_box label="Selecionar Terra" name="radio select land"/>
60 <check_box label="Aplainar Terra" name="radio flatten"/>
61 <check_box label="Elevar Terra" name="radio raise"/>
62 <check_box label="Baixar Terra" name="radio lower"/>
63 <check_box label="Suavizar Terra" name="radio smooth"/>
64 <check_box label="Terrano Rígido" name="radio noise"/>
65 <check_box label="Reverter Terra" name="radio revert"/>
81 <combo_box name="combobox brush size"> 66 <combo_box name="combobox brush size">
82 <combo_item name="Small"> 67 <combo_item name="Small">
83 Pequeno 68 Pequeno
@@ -89,11 +74,13 @@
89 Grande 74 Grande
90 </combo_item> 75 </combo_item>
91 </combo_box> 76 </combo_box>
92 <button label="Aplicar no selecionado" label_selected="Aplicar no selecionado" 77 <text name="Strength:">
93 name="button apply to selection" tool_tip="Modificar Terra Selecionada" /> 78 Força:
94 <check_box label="Mostrar Proprietários" name="checkbox show owners" /> 79 </text>
95 <button label="Mais &gt;&gt;" name="button more" tool_tip="Opções Avançadas" /> 80 <button label="Aplicar no selecionado" label_selected="Aplicar no selecionado" name="button apply to selection" tool_tip="Modificar Terra Selecionada"/>
96 <button label="&lt;&lt; Menos" name="button less" tool_tip="Opções Avançadas" /> 81 <check_box label="Mostrar Proprietários" name="checkbox show owners"/>
82 <button label="Mais &gt;&gt;" name="button more" tool_tip="Opções Avançadas"/>
83 <button label="&lt;&lt; Menos" name="button less" tool_tip="Opções Avançadas"/>
97 <tab_container name="Object Info Tabs"> 84 <tab_container name="Object Info Tabs">
98 <panel label="Comum" name="General"> 85 <panel label="Comum" name="General">
99 <text name="Name:"> 86 <text name="Name:">
@@ -108,21 +95,21 @@
108 <text name="Creator Name"> 95 <text name="Creator Name">
109 Thrax Linden 96 Thrax Linden
110 </text> 97 </text>
111 <button label="Perfil..." label_selected="Perfil..." name="button creator profile" /> 98 <button label="Perfil..." label_selected="Perfil..." name="button creator profile"/>
112 <text name="Owner:"> 99 <text name="Owner:">
113 Proprietário: 100 Proprietário:
114 </text> 101 </text>
115 <text name="Owner Name"> 102 <text name="Owner Name">
116 Thrax Linden 103 Thrax Linden
117 </text> 104 </text>
118 <button label="Perfil..." label_selected="Perfil..." name="button owner profile" /> 105 <button label="Perfil..." label_selected="Perfil..." name="button owner profile"/>
119 <text name="Group:"> 106 <text name="Group:">
120 Grupo: 107 Grupo:
121 </text> 108 </text>
122 <text name="Group Name Proxy"> 109 <text name="Group Name Proxy">
123 Os Lindens 110 Os Lindens
124 </text> 111 </text>
125 <button label="Selecionar..." label_selected="Selecionar..." name="button set group" /> 112 <button label="Selecionar..." label_selected="Selecionar..." name="button set group"/>
126 <text name="prim info"> 113 <text name="prim info">
127 1 Objeto, 1 Primitiva 114 1 Objeto, 1 Primitiva
128 </text> 115 </text>
@@ -132,20 +119,19 @@
132 <text name="perm_modify"> 119 <text name="perm_modify">
133 Você pode modificar este objeto. 120 Você pode modificar este objeto.
134 </text> 121 </text>
135 <check_box label="Compartilhar com o Grupo" name="checkbox share with group" 122 <check_box label="Compartilhar com o Grupo" name="checkbox share with group" tool_tip="Permitir que o membros do grupo movam, modifiquem, copiem e apaguem"/>
136 tool_tip="Permitir que o membros do grupo movam, modifiquem, copiem e apaguem" /> 123 <string name="text deed continued">
137 <text name="text deed continued">
138 Acionar... 124 Acionar...
139 </text> 125 </string>
140 <text name="text deed"> 126 <string name="text deed">
141 Acionar 127 Acionar
142 </text> 128 </string>
143 <button label="Acionar..." label_selected="Acionar..." name="button deed" 129 <button label="Acionar..." label_selected="Acionar..." name="button deed" tool_tip="Objetos compartilhados do Grupo pode ser acionados pelo gerente do grupo."/>
144 tool_tip="Objetos compartilhados do Grupo pode ser acionados pelo gerente do grupo." /> 130 <check_box label="Permitir que qualquer um mova" name="checkbox allow everyone move"/>
145 <check_box label="Permitir que qualquer um mova" name="checkbox allow everyone move" /> 131 <check_box label="Permitir que qualquer um copie" name="checkbox allow everyone copy"/>
146 <check_box label="Permitir que qualquer um copie" name="checkbox allow everyone copy" /> 132 <check_box label="Mostrar na busca" name="search_check" tool_tip="Permitir que as pessoas vejam este objeto nos resultados de busca"/>
147 <check_box label="A Venda" name="checkbox for sale" /> 133 <check_box label="A Venda" name="checkbox for sale"/>
148 <text name="Price: L$"> 134 <text name="Cost">
149 Preço: L$ 135 Preço: L$
150 </text> 136 </text>
151 <radio_group name="sale type"> 137 <radio_group name="sale type">
@@ -162,9 +148,9 @@
162 <text name="Next owner can:"> 148 <text name="Next owner can:">
163 Próximo Proprietário pode: 149 Próximo Proprietário pode:
164 </text> 150 </text>
165 <check_box label="Modificar" name="checkbox next owner can modify" /> 151 <check_box label="Modificar" name="checkbox next owner can modify"/>
166 <check_box label="Copiar" name="checkbox next owner can copy" /> 152 <check_box label="Copiar" name="checkbox next owner can copy"/>
167 <check_box label="Revender/Dar" name="checkbox next owner can transfer" /> 153 <check_box label="Revender/Dar" name="checkbox next owner can transfer"/>
168 <text name="label click action"> 154 <text name="label click action">
169 Quando clicado com o botão esquerdo: 155 Quando clicado com o botão esquerdo:
170 </text> 156 </text>
@@ -184,6 +170,12 @@
184 <combo_item name="Open"> 170 <combo_item name="Open">
185 Abrir 171 Abrir
186 </combo_item> 172 </combo_item>
173 <combo_item name="Play">
174 Executar a mídia do terreno
175 </combo_item>
176 <combo_item name="Opemmedia">
177 Abrir a mídia do terreno
178 </combo_item>
187 </combo_box> 179 </combo_box>
188 <text name="B:"> 180 <text name="B:">
189 B: 181 B:
@@ -203,21 +195,36 @@
203 <text name="F:"> 195 <text name="F:">
204 F: 196 F:
205 </text> 197 </text>
206 <text name="text modify info 1"> 198 <string name="text modify info 1">
207 Você pode modificar este objeto. 199 Você pode modificar este objeto.
208 </text> 200 </string>
209 <text name="text modify info 2"> 201 <string name="text modify info 2">
210 Você pode modificar estes objetos. 202 Você pode modificar estes objetos.
211 </text> 203 </string>
212 <text name="text modify info 3"> 204 <string name="text modify info 3">
213 Você não pode modificar este objeto. 205 Você não pode modificar este objeto.
214 </text> 206 </string>
215 <text name="text modify info 4"> 207 <string name="text modify info 4">
216 Você não pode modificar estes objetos. 208 Você não pode modificar estes objetos.
217 </text> 209 </string>
218 <text name="text modify warning"> 210 <string name="text modify warning">
219 Você precisa selecionar o objeto todo para ajustar as permissões. 211 Você precisa selecionar o objeto todo para ajustar as permissões.
220 </text> 212 </string>
213 <string name="Cost Default">
214 Preço: L$
215 </string>
216 <string name="Cost Total">
217 Preço Total: L$
218 </string>
219 <string name="Cost Per Unit">
220 Preço Por: L$
221 </string>
222 <string name="Cost Mixed">
223 Preço Misturado
224 </string>
225 <string name="Sale Mixed">
226 Venda Misturada
227 </string>
221 </panel> 228 </panel>
222 <panel label="Objeto" name="Object"> 229 <panel label="Objeto" name="Object">
223 <text name="select_single"> 230 <text name="select_single">
@@ -226,32 +233,28 @@
226 <text name="edit_object"> 233 <text name="edit_object">
227 Editar os parâmetros do Objeto: 234 Editar os parâmetros do Objeto:
228 </text> 235 </text>
229 <check_box label="Travado" name="checkbox locked" 236 <check_box label="Travado" name="checkbox locked" tool_tip="Previne que o objeto seja movido ou apagado. Muito útil para evitar edições não intencionais durante a construção."/>
230 tool_tip="Previne que o objeto seja movido ou apagado. Muito útil para evitar edições não intencionais durante a construção." /> 237 <check_box label="Física" name="Physical Checkbox Ctrl" tool_tip="Permite que os objetos sejam empurrados sofram efeito da gravidade"/>
231 <check_box label="Física" name="Physical Checkbox Ctrl" 238 <check_box label="Temporário" name="Temporary Checkbox Ctrl" tool_tip="Faz com que o objeto seja apagado 1 minuto após ser criado."/>
232 tool_tip="Permite que os objetos sejam empurrados sofram efeito da gravidade" /> 239 <check_box label="Fantasma" name="Phantom Checkbox Ctrl" tool_tip="Faz com que o objeto não colida com outros objetos ou avatares"/>
233 <check_box label="Temporário" name="Temporary Checkbox Ctrl"
234 tool_tip="Faz com que o objeto seja apagado 1 minuto após ser criado." />
235 <check_box label="Fantasma" name="Phantom Checkbox Ctrl"
236 tool_tip="Faz com que o objeto não colida com outros objetos ou avatares" />
237 <text name="label position"> 240 <text name="label position">
238 Posição (metros) 241 Posição (metros)
239 </text> 242 </text>
240 <spinner label="X" name="Pos X" /> 243 <spinner label="X" name="Pos X"/>
241 <spinner label="Y" name="Pos Y" /> 244 <spinner label="Y" name="Pos Y"/>
242 <spinner label="Z" name="Pos Z" /> 245 <spinner label="Z" name="Pos Z"/>
243 <text name="label size"> 246 <text name="label size">
244 Tamanho (metros) 247 Tamanho (metros)
245 </text> 248 </text>
246 <spinner label="X" name="Scale X" /> 249 <spinner label="X" name="Scale X"/>
247 <spinner label="Y" name="Scale Y" /> 250 <spinner label="Y" name="Scale Y"/>
248 <spinner label="Z" name="Scale Z" /> 251 <spinner label="Z" name="Scale Z"/>
249 <text name="label rotation"> 252 <text name="label rotation">
250 Rotação (graus) 253 Rotação (graus)
251 </text> 254 </text>
252 <spinner label="X" name="Rot X" /> 255 <spinner label="X" name="Rot X"/>
253 <spinner label="Y" name="Rot Y" /> 256 <spinner label="Y" name="Rot Y"/>
254 <spinner label="Z" name="Rot Z" /> 257 <spinner label="Z" name="Rot Z"/>
255 <text name="label material"> 258 <text name="label material">
256 Material 259 Material
257 </text> 260 </text>
@@ -310,8 +313,8 @@
310 <text name="text cut"> 313 <text name="text cut">
311 Recorte inicial e final 314 Recorte inicial e final
312 </text> 315 </text>
313 <spinner label="B" name="cut begin" /> 316 <spinner label="B" name="cut begin"/>
314 <spinner label="E" name="cut end" /> 317 <spinner label="E" name="cut end"/>
315 <text name="text hollow"> 318 <text name="text hollow">
316 Vazio 319 Vazio
317 </text> 320 </text>
@@ -338,42 +341,63 @@
338 <text name="text twist"> 341 <text name="text twist">
339 Torcer no Inicio e final 342 Torcer no Inicio e final
340 </text> 343 </text>
341 <spinner label="B" name="Twist Begin" /> 344 <spinner label="B" name="Twist Begin"/>
342 <spinner label="E" name="Twist End" /> 345 <spinner label="E" name="Twist End"/>
343 <text name="scale_taper"> 346 <text name="scale_taper">
344 Afinar 347 Afinar
345 </text> 348 </text>
346 <text name="scale_hole"> 349 <text name="scale_hole">
347 Tamanho do Buraco 350 Tamanho do Buraco
348 </text> 351 </text>
349 <spinner label="X" name="Taper Scale X" /> 352 <spinner label="X" name="Taper Scale X"/>
350 <spinner label="Y" name="Taper Scale Y" /> 353 <spinner label="Y" name="Taper Scale Y"/>
351 <text name="text topshear"> 354 <text name="text topshear">
352 Inclinar 355 Inclinar
353 </text> 356 </text>
354 <spinner label="X" name="Shear X" /> 357 <spinner label="X" name="Shear X"/>
355 <spinner label="Y" name="Shear Y" /> 358 <spinner label="Y" name="Shear Y"/>
356 <text name="advanced_cut"> 359 <text name="advanced_cut">
357 Perfil Recortado no Início e Final 360 Perfil Recortado no Início e Final
358 </text> 361 </text>
359 <text name="advanced_dimple"> 362 <text name="advanced_dimple">
360 Cova Inicio e Final 363 Cova Inicio e Final
361 </text> 364 </text>
362 <spinner label="B" name="Path Limit Begin" /> 365 <spinner label="B" name="Path Limit Begin"/>
363 <spinner label="E" name="Path Limit End" /> 366 <spinner label="E" name="Path Limit End"/>
364 <text name="text taper2"> 367 <text name="text taper2">
365 Afinar 368 Afinar
366 </text> 369 </text>
367 <spinner label="X" name="Taper X" /> 370 <spinner label="X" name="Taper X"/>
368 <spinner label="Y" name="Taper Y" /> 371 <spinner label="Y" name="Taper Y"/>
369 <text name="text radius delta"> 372 <text name="text radius delta">
370 Radius Delta 373 Raio
371 </text> 374 </text>
372 <text name="text revolutions"> 375 <text name="text revolutions">
373 Revoluções 376 Revoluções
374 </text> 377 </text>
375 <texture_picker label="Sculpt Texture" name="sculpt texture control" 378 <texture_picker label="Sculpt Texture" name="sculpt texture control" tool_tip="Click to choose a picture"/>
376 tool_tip="Click to choose a picture" /> 379 <check_box label="Espelho" name="sculpt mirror control" tool_tip="Inverter a primitiva esculpida ao longo do eixo X."/>
380 <check_box label="De dentro para fora" name="sculpt invert control" tool_tip="Inverte as normais das primitivas esculpidas, fazendo-as parecer de dentro para fora."/>
381 <text name="label sculpt type">
382 Tipo costura
383 </text>
384 <combo_box name="sculpt type control">
385 <combo_item name="None">
386 (nenhum)
387 </combo_item>
388 <combo_item name="Sphere">
389 Esfera
390 </combo_item>
391 <combo_item name="Torus">
392 Toróide
393 </combo_item>
394 <combo_item name="Plane">
395 Plano
396 </combo_item>
397 <combo_item name="Cylinder">
398 Cilindro
399 </combo_item>
400 </combo_box>
377 </panel> 401 </panel>
378 <panel label="Recursos" name="Features"> 402 <panel label="Recursos" name="Features">
379 <text name="select_single"> 403 <text name="select_single">
@@ -382,34 +406,34 @@
382 <text name="edit_object"> 406 <text name="edit_object">
383 Editar recursos do Objeto: 407 Editar recursos do Objeto:
384 </text> 408 </text>
385 <check_box label="Flexíbilidade" name="Flexible1D Checkbox Ctrl" 409 <check_box label="Flexíbilidade" name="Flexible1D Checkbox Ctrl" tool_tip="Permite que o objeto flexione no eixo Z. (Somente no lado do Cliente)"/>
386 tool_tip="Permite que o objeto flexione no eixo Z. (Somente no lado do Cliente)" /> 410 <spinner label="Suavidade" name="FlexNumSections"/>
387 <spinner label="Suavidade" name="FlexNumSections" /> 411 <spinner label="Gravidade" name="FlexGravity"/>
388 <spinner label="Gravidade" name="FlexGravity" /> 412 <spinner label="Arrastar" name="FlexFriction"/>
389 <spinner label="Arrastar" name="FlexFriction" /> 413 <spinner label="Vento" name="FlexWind"/>
390 <spinner label="Vento" name="FlexWind" /> 414 <spinner label="Tensão" name="FlexTension"/>
391 <spinner label="Tensão" name="FlexTension" /> 415 <spinner label="Força X" name="FlexForceX"/>
392 <spinner label="Força X" name="FlexForceX" /> 416 <spinner label="Força Y" name="FlexForceY"/>
393 <spinner label="Força Y" name="FlexForceY" /> 417 <spinner label="Força Z" name="FlexForceZ"/>
394 <spinner label="Força Z" name="FlexForceZ" /> 418 <check_box label="Luz" name="Light Checkbox Ctrl" tool_tip="Faz com que o objeto emita luz"/>
395 <check_box label="Luz" name="Light Checkbox Ctrl"
396 tool_tip="Faz com que o objeto emita luz" />
397 <text name="label color"> 419 <text name="label color">
398 Cor 420 Cor
399 </text> 421 </text>
400 <color_swatch label="" name="colorswatch" tool_tip="Clique para abrir o seletor de Cores" /> 422 <color_swatch label="" name="colorswatch" tool_tip="Clique para abrir o seletor de Cores"/>
401 <spinner label="Intensidade" name="Light Intensity" /> 423 <spinner label="Intensidade" name="Light Intensity"/>
402 <spinner label="Radius" name="Light Radius" /> 424 <spinner label="Radius" name="Light Radius"/>
403 <spinner label="Queda" name="Light Falloff" /> 425 <spinner label="Queda" name="Light Falloff"/>
404 </panel> 426 </panel>
405 <panel label="Textura" name="Texture"> 427 <panel label="Textura" name="Texture">
406 <texture_picker label="Textura" name="texture control" 428 <texture_picker label="Textura" name="texture control" tool_tip="Clique para escolher uma imagem"/>
407 tool_tip="Clique para escolher uma imagem" /> 429 <color_swatch label="Cor" name="colorswatch" tool_tip="Clique para abrir o seletor de cores"/>
408 <color_swatch label="Cor" name="colorswatch" tool_tip="Clique para abrir o seletor de cores" />
409 <text name="color trans"> 430 <text name="color trans">
410 Transparência % 431 Transparência %
411 </text> 432 </text>
412 <check_box label="Claridade" name="checkbox fullbright" /> 433 <text name="glow label">
434 Brilho
435 </text>
436 <check_box label="Claridade" name="checkbox fullbright"/>
413 <text name="tex gen"> 437 <text name="tex gen">
414 Mapeamento 438 Mapeamento
415 </text> 439 </text>
@@ -500,35 +524,35 @@
500 <text name="tex scale"> 524 <text name="tex scale">
501 Repetir por Face 525 Repetir por Face
502 </text> 526 </text>
503 <spinner label="Horizontal (U)" name="TexScaleU" /> 527 <spinner label="Horizontal (U)" name="TexScaleU"/>
504 <check_box label="Flip" name="checkbox flip s" /> 528 <check_box label="Flip" name="checkbox flip s"/>
505 <spinner label="Vertical (V)" name="TexScaleV" /> 529 <spinner label="Vertical (V)" name="TexScaleV"/>
506 <check_box label="Flip" name="checkbox flip t" /> 530 <check_box label="Flip" name="checkbox flip t"/>
507 <text name="tex rotate"> 531 <text name="tex rotate">
508 Rotação (graus) 532 Rotação (graus)
509 </text> 533 </text>
510 <text name="string repeats per meter"> 534 <string name="string repeats per meter">
511 Repetir por Metro 535 Repetir por Metro
512 </text> 536 </string>
513 <text name="string repeats per face"> 537 <string name="string repeats per face">
514 Repetir por Face 538 Repetir por Face
515 </text> 539 </string>
516 <text name="rpt"> 540 <text name="rpt">
517 Repetir por Metro 541 Repetir por Metro
518 </text> 542 </text>
519 <button label="Aplicar" label_selected="Aplicar" name="button apply" /> 543 <button label="Aplicar" label_selected="Aplicar" name="button apply"/>
520 <text name="tex offset"> 544 <text name="tex offset">
521 Offset 545 Offset
522 </text> 546 </text>
523 <spinner label="Horizontal (U)" name="TexOffsetU" /> 547 <spinner label="Horizontal (U)" name="TexOffsetU"/>
524 <spinner label="Vertical (V)" name="TexOffsetV" /> 548 <spinner label="Vertical (V)" name="TexOffsetV"/>
525 <text name="textbox autofix"> 549 <text name="textbox autofix">
526 Alinhar Texturas (precisa ser carregada primeiro) 550 Alinhar Texturas (precisa ser carregada primeiro)
527 </text> 551 </text>
528 <button label="Alinhar" label_selected="Alinhar" name="button align" /> 552 <button label="Alinhar" label_selected="Alinhar" name="button align"/>
529 </panel> 553 </panel>
530 <panel label="Conteúdo" name="Contents"> 554 <panel label="Conteúdo" name="Contents">
531 <button label="Novo Script..." label_selected="Novo Script..." name="button new script" /> 555 <button label="Novo Script..." label_selected="Novo Script..." name="button new script"/>
532 </panel> 556 </panel>
533 </tab_container> 557 </tab_container>
534 <panel name="land info panel"> 558 <panel name="land info panel">
@@ -538,14 +562,49 @@
538 <text name="label_area"> 562 <text name="label_area">
539 Ãrea: [AREA] m2. 563 Ãrea: [AREA] m2.
540 </text> 564 </text>
541 <button label="Comprar Terra..." label_selected="Comprar Terra.." 565 <button label="Comprar Terra..." label_selected="Comprar Terra.." name="button buy land"/>
542 name="button buy land" /> 566 <button label="Abandonar Terra..." label_selected="Abandonar Terra..." name="button abandon land"/>
543 <button label="Abandonar Terra..." label_selected="Abandonar Terra..." 567 <button label="Sub-Dividir..." label_selected="Subdivide..." name="button subdivide land"/>
544 name="button abandon land" /> 568 <button label="Unir..." label_selected="Unir..." name="button join land"/>
545 <button label="Sub-Dividir..." label_selected="Subdivide..." 569 <button label="Sobre a Terra..." label_selected="Sobre a Terra..." name="button about land"/>
546 name="button subdivide land" />
547 <button label="Unir..." label_selected="Unir..." name="button join land" />
548 <button label="Sobre a Terra..." label_selected="Sobre a Terra..."
549 name="button about land" />
550 </panel> 570 </panel>
571 <string name="status_rotate">
572 Arrastar as bandas coloridas para girar o objeto
573 </string>
574 <string name="status_scale">
575 Clicar e arrastar para esticar o lado selecionado
576 </string>
577 <string name="status_move">
578 Arrastar para mover, Shift-arrastar para copiar
579 </string>
580 <string name="status_modifyland">
581 Clicar e reter para modificar a terra
582 </string>
583 <string name="status_camera">
584 Clicar e arrastar para mudar a vista
585 </string>
586 <string name="status_grab">
587 Arrastar para mover objetos, Ctrl para levantar, Ctrl-Shift para girar
588 </string>
589 <string name="status_place">
590 Clicar no mundo para criar, shift-clicar para selecionar
591 </string>
592 <string name="status_selectland">
593 Clicar e arrastar para selecionar a terra.
594 </string>
595 <string name="grid_screen_text">
596 Tela
597 </string>
598 <string name="grid_local_text">
599 Local
600 </string>
601 <string name="grid_world_text">
602 Mundo
603 </string>
604 <string name="grid_reference_text">
605 Referência
606 </string>
607 <string name="grid_attachment_text">
608 Anexo
609 </string>
551</floater> 610</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_top_objects.xml b/linden/indra/newview/skins/default/xui/pt/floater_top_objects.xml
index 3544b72..f2ba9d8 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_top_objects.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_top_objects.xml
@@ -1,50 +1,51 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="top_objects" title="Carregando..."> 2<floater name="top_objects" title="Carregando...">
3 <text name="title_text"> 3 <text name="title_text">
4 Carregando... 4 Carregando...
5 </text> 5 </text>
6 <scroll_list name="objects_list"> 6 <scroll_list name="objects_list">
7 <column label="Placar" name="score" /> 7 <column label="Placar" name="score"/>
8 <column label="Nome" name="name" /> 8 <column label="Nome" name="name"/>
9 <column label="Proprietário" name="owner" /> 9 <column label="Proprietário" name="owner"/>
10 <column label="Local" name="location" /> 10 <column label="Local" name="location"/>
11 <column label="Tempo" name="time"/>
11 </scroll_list> 12 </scroll_list>
12 <text name="id_text"> 13 <text name="id_text">
13 ID do Objeto: 14 ID do Objeto:
14 </text> 15 </text>
15 <button label="Mostrar Avisos" name="show_beacon_btn" /> 16 <button label="Mostrar Avisos" name="show_beacon_btn"/>
16 <text name="obj_name_text"> 17 <text name="obj_name_text">
17 Nome do Objeto: 18 Nome do Objeto:
18 </text> 19 </text>
19 <button label="Filtro" name="filter_object_btn" /> 20 <button label="Filtro" name="filter_object_btn"/>
20 <text name="owner_name_text"> 21 <text name="owner_name_text">
21 Nome do Proprietário: 22 Nome do Proprietário:
22 </text> 23 </text>
23 <button label="Filtro" name="filter_owner_btn" /> 24 <button label="Filtro" name="filter_owner_btn"/>
24 <button label="Retornar Selecionado" name="return_selected_btn" /> 25 <button label="Retornar Selecionado" name="return_selected_btn"/>
25 <button label="Retornar Tudo" name="return_all_btn" /> 26 <button label="Retornar Tudo" name="return_all_btn"/>
26 <button label="Desabilitar Selecionado" name="disable_selected_btn" /> 27 <button label="Desabilitar Selecionado" name="disable_selected_btn"/>
27 <button label="Desabilitar Tudo" name="disable_all_btn" /> 28 <button label="Desabilitar Tudo" name="disable_all_btn"/>
28 <button label="Atualizar" name="refresh_btn" /> 29 <button label="Atualizar" name="refresh_btn"/>
29 <text name="top_scripts_title"> 30 <string name="top_scripts_title">
30 Top Scripts 31 Top Scripts
31 </text> 32 </string>
32 <text name="top_scripts_text"> 33 <string name="top_scripts_text">
33 [COUNT] scripts tomando um total de [TIME] ms 34 [COUNT] scripts tomando um total de [TIME] ms
34 </text> 35 </string>
35 <text name="scripts_score_label"> 36 <string name="scripts_score_label">
36 Tempo 37 Tempo
37 </text> 38 </string>
38 <text name="top_colliders_title"> 39 <string name="top_colliders_title">
39 Top Colisões 40 Top Colisões
40 </text> 41 </string>
41 <text name="top_colliders_text"> 42 <string name="top_colliders_text">
42 Top [COUNT] objetos experimentando muitas colisções em potencial 43 Top [COUNT] objetos experimentando muitas colisções em potencial
43 </text> 44 </string>
44 <text name="colliders_score_label"> 45 <string name="colliders_score_label">
45 Placar 46 Placar
46 </text> 47 </string>
47 <text name="none_descriptor"> 48 <string name="none_descriptor">
48 Nenhum encotrado. 49 Nenhum encotrado.
49 </text> 50 </string>
50</floater> 51</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_tos.xml b/linden/indra/newview/skins/default/xui/pt/floater_tos.xml
index be9d1fb..e5933f3 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_tos.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_tos.xml
@@ -1,22 +1,15 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="modal container" title=" "> 2<floater name="modal container" title=" ">
3 <button label="Continuar" label_selected="Continuar" name="Continue" /> 3 <button label="Continuar" label_selected="Continuar" name="Continue"/>
4 <button label="Cancelar" label_selected="Cancelar" name="Cancel" /> 4 <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
5 <radio_group name="tos_agreement"> 5 <check_box label="Eu concordo com os Termos do Serviço" name="agree_chk"/>
6 <radio_item name="radio_disagree">
7 Eu não concordo com os Termos de Serviço
8 </radio_item>
9 <radio_item name="radio_agree">
10 Eu concordo com os Termos de Serviço
11 </radio_item>
12 </radio_group>
13 <text name="tos_title">
14 Contrato dos Termos de Serviço
15 </text>
16 <text name="tos_heading"> 6 <text name="tos_heading">
17 Por favor, leia os seguintes Termos de Serviço cuidadosamente. Para continuar acessando Second Life, você precisa aceitar o acordo. 7 Por favor, leia os seguintes Termos de Serviço cuidadosamente. Para continuar acessando Second Life, você precisa aceitar o acordo.
18 </text> 8 </text>
19 <text_editor name="tos_text"> 9 <text_editor name="tos_text">
20 TOS_TEXT 10 TOS_TEXT
21 </text_editor> 11 </text_editor>
12 <string name="real_url">
13 http://secondlife.com/app/tos/
14 </string>
22</floater> 15</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_url_entry.xml b/linden/indra/newview/skins/default/xui/pt/floater_url_entry.xml
new file mode 100644
index 0000000..5a18297
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_url_entry.xml
@@ -0,0 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="url_entry" title="">
3 <text name="media_label">
4 Media URL:
5 </text>
6 <button label="OK" name="ok_btn"/>
7 <button label="Cancelar" name="cancel_btn"/>
8 <button label="Limpar" name="clear_btn"/>
9 <text name="loading_label">
10 Carregando..
11 </text>
12</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_water.xml b/linden/indra/newview/skins/default/xui/pt/floater_water.xml
new file mode 100644
index 0000000..d6f261f
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_water.xml
@@ -0,0 +1,85 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="Water Floater" title="Editor de Ãgua Avançado">
3 <text name="KeyFramePresetsText">
4 Pré-configurações da Ãgua:
5 </text>
6 <button label="Novo" label_selected="Novo" name="WaterNewPreset"/>
7 <button label="Salvar" label_selected="Salvar" name="WaterSavePreset"/>
8 <button label="Deletar" label_selected="Deletar" name="WaterDeletePreset"/>
9 <tab_container name="Water Tabs">
10 <panel label="Configurações" name="Settings">
11 <text name="BHText">
12 Cor da névoa da Ãgua
13 </text>
14 <button label="?" name="WaterFogColorHelp"/>
15 <color_swatch label="" name="WaterFogColor" tool_tip="Clique para abrir o Capturador de Cor"/>
16 <text name="WaterFogDensText">
17 Expoente da Densidade de névoa
18 </text>
19 <button label="?" name="WaterFogDensityHelp"/>
20 <text name="WaterUnderWaterFogModText">
21 Modificador da névoa Subaquática
22 </text>
23 <button label="?" name="WaterUnderWaterFogModHelp"/>
24 <text name="BDensText">
25 Escala da Marola de Reflexão
26 </text>
27 <button label="?" name="WaterNormalScaleHelp"/>
28 <text name="BHText2">
29 1
30 </text>
31 <text name="BHText3">
32 2
33 </text>
34 <text name="BHText4">
35 3
36 </text>
37 <text name="HDText">
38 Escala de Fresnel
39 </text>
40 <button label="?" name="WaterFresnelScaleHelp"/>
41 <text name="FresnelOffsetText">
42 Deslocamento de Fresnel
43 </text>
44 <button label="?" name="WaterFresnelOffsetHelp"/>
45 <text name="DensMultText">
46 Refratar a Escala para Cima
47 </text>
48 <button label="?" name="WaterScaleAboveHelp"/>
49 <text name="WaterScaleBelowText">
50 Refratar a Escala para Baixo
51 </text>
52 <button label="?" name="WaterScaleBelowHelp"/>
53 <text name="MaxAltText">
54 Multiplicador de Difusão
55 </text>
56 <button label="?" name="WaterBlurMultiplierHelp"/>
57 </panel>
58 <panel label="Imagem" name="Waves">
59 <text name="BHText">
60 Direção da Onda Maior
61 </text>
62 <button label="?" name="WaterWave1Help"/>
63 <text name="WaterWave1DirXText">
64 X
65 </text>
66 <text name="WaterWave1DirYText">
67 Y
68 </text>
69 <text name="BHText2">
70 Direção da Onda Pequena
71 </text>
72 <button label="?" name="WaterWave2Help"/>
73 <text name="WaterWave2DirXText">
74 X
75 </text>
76 <text name="WaterWave2DirYText">
77 Y
78 </text>
79 <text name="BHText3">
80 Mapa Normal
81 </text>
82 <button label="?" name="WaterNormalMapHelp"/>
83 </panel>
84 </tab_container>
85</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_windlight_options.xml b/linden/indra/newview/skins/default/xui/pt/floater_windlight_options.xml
new file mode 100644
index 0000000..ff22a87
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/floater_windlight_options.xml
@@ -0,0 +1,186 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<floater name="WindLight floater" title="Editor de Céu Avançado">
3 <text name="KeyFramePresetsText">
4 Pré-definições de Céu:
5 </text>
6 <button label="Novo" label_selected="Novo" name="WLNewPreset"/>
7 <button label="Salvar" label_selected="Salvar" name="WLSavePreset"/>
8 <button label="Deletar" label_selected="Deletar" name="WLDeletePreset"/>
9 <button label="Editor de Ciclos do Dia" label_selected="Editor de Ciclos do Dia" name="WLDayCycleMenuButton" width="150" left_delta="95" />
10 <tab_container name="WindLight Tabs">
11 <panel label="Atmosfera" name="Atmosphere">
12 <text name="BHText">
13 Horizonte Azul
14 </text>
15 <button label="?" name="WLBlueHorizonHelp"/>
16 <text name="BHText2">
17 R
18 </text>
19 <text name="BHText3">
20 G
21 </text>
22 <text name="BHText4">
23 B
24 </text>
25 <text name="BHText5">
26 I
27 </text>
28 <text name="BDensText">
29 Horizonte da Neblina
30 </text>
31 <button label="?" name="WLHazeHorizonHelp"/>
32 <text name="BDensText2">
33 Densidade de Azul
34 </text>
35 <button label="?" name="WLBlueDensityHelp"/>
36 <text name="BHText6">
37 R
38 </text>
39 <text name="BHText7">
40 G
41 </text>
42 <text name="BHText8">
43 B
44 </text>
45 <text name="BHText9">
46 I
47 </text>
48 <text name="HDText">
49 Densidade da Neblina
50 </text>
51 <button label="?" name="WLHazeDensityHelp"/>
52 <text name="DensMultText">
53 Multiplicador de Densidade
54 </text>
55 <button label="?" name="WLDensityMultHelp"/>
56 <text name="WLDistanceMultText">
57 Multiplicador de Distância
58 </text>
59 <button label="?" name="WLDistanceMultHelp"/>
60 <text name="MaxAltText">
61 Altitude Máxima
62 </text>
63 <button label="?" name="WLMaxAltitudeHelp"/>
64 </panel>
65 <panel label="Iluminação" name="Lighting">
66 <text name="SLCText">
67 Cor do Sol/Lua
68 </text>
69 <button label="?" name="WLSunlightColorHelp"/>
70 <text name="BHText">
71 R
72 </text>
73 <text name="BHText2">
74 G
75 </text>
76 <text name="BHText3">
77 B
78 </text>
79 <text name="BHText4">
80 I
81 </text>
82 <text name="TODText">
83 Posição do Sol/Lua
84 </text>
85 <button label="?" name="WLTimeOfDayHelp"/>
86 <text name="WLAmbientText">
87 Ambiente
88 </text>
89 <button label="?" name="WLAmbientHelp"/>
90 <text name="BHText5">
91 R
92 </text>
93 <text name="BHText6">
94 G
95 </text>
96 <text name="BHText7">
97 B
98 </text>
99 <text name="BHText8">
100 I
101 </text>
102 <text name="WLEastAngleText">
103 Ângulo Leste
104 </text>
105 <button label="?" name="WLEastAngleHelp"/>
106 <text name="SunGlowText">
107 Brilho do Sol
108 </text>
109 <button label="?" name="WLSunGlowHelp"/>
110 <slider label="Foco" name="WLGlowB"/>
111 <slider label="Tamanho" name="WLGlowR"/>
112 <text name="SceneGammaText">
113 Gamma da Cena
114 </text>
115 <button label="?" name="WLSceneGammaHelp"/>
116 <text name="WLStarText">
117 Brilho da Estrela
118 </text>
119 <button label="?" name="WLStarBrightnessHelp"/>
120 </panel>
121 <panel label="Nuvens" name="Clouds">
122 <text name="WLCloudColorText">
123 Cor da Nuvem
124 </text>
125 <button label="?" name="WLCloudColorHelp"/>
126 <text name="BHText">
127 R
128 </text>
129 <text name="BHText2">
130 G
131 </text>
132 <text name="BHText3">
133 B
134 </text>
135 <text name="BHText4">
136 I
137 </text>
138 <text name="WLCloudColorText2">
139 Densidade/ XY da Nuvem
140 </text>
141 <button label="?" name="WLCloudDensityHelp"/>
142 <text name="BHText5">
143 X
144 </text>
145 <text name="BHText6">
146 Y
147 </text>
148 <text name="BHText7">
149 D
150 </text>
151 <text name="WLCloudCoverageText">
152 Cobertura da Nuvem
153 </text>
154 <button label="?" name="WLCloudCoverageHelp"/>
155 <text name="WLCloudScaleText">
156 Escala da Nuvem
157 </text>
158 <button label="?" name="WLCloudScaleHelp"/>
159 <text name="WLCloudDetailText">
160 Detalhe da Nuvem (XY/Densidade)
161 </text>
162 <button label="?" name="WLCloudDetailHelp"/>
163 <text name="BHText8">
164 X
165 </text>
166 <text name="BHText9">
167 Y
168 </text>
169 <text name="BHText10">
170 D
171 </text>
172 <text name="WLCloudScrollXText">
173 Rolagem X da Nuvem
174 </text>
175 <button label="?" name="WLCloudScrollXHelp"/>
176 <check_box label="Travar" name="WLCloudLockX"/>
177 <text name="WLCloudScrollYText">
178 Rolagem Y da Nuvem
179 </text>
180 <button label="?" name="WLCloudScrollYHelp"/>
181 <check_box label="Travar" name="WLCloudLockY"/>
182 <check_box label="Desenhar Nuvens Clássicas" name="DrawClassicClouds"/>
183 <button label="?" name="WLClassicCloudsHelp"/>
184 </panel>
185 </tab_container>
186</floater>
diff --git a/linden/indra/newview/skins/default/xui/pt/floater_world_map.xml b/linden/indra/newview/skins/default/xui/pt/floater_world_map.xml
index b773503..0df12a5 100644
--- a/linden/indra/newview/skins/default/xui/pt/floater_world_map.xml
+++ b/linden/indra/newview/skins/default/xui/pt/floater_world_map.xml
@@ -50,15 +50,14 @@
50 Eventos (M) 50 Eventos (M)
51 </text> 51 </text>
52 <check_box label=" " name="event_mature_chk" /> 52 <check_box label=" " name="event_mature_chk" />
53 <combo_box label="Meus Amigos" name="friend combo" tool_tip="Amigos para mostrar no Mapa"> 53 <combo_box label="Amigos Conectados" name="friend combo" tool_tip="Amigos para mostrar no Mapa">
54 <combo_item name="none_selected"> 54 <combo_item name="none_selected">
55 Meus Amigos 55 Amigos Conectados
56 </combo_item> 56 </combo_item>
57 </combo_box> 57 </combo_box>
58 <combo_box label="Minhas Landmarks" name="landmark combo" 58 <combo_box label="Landmarks" name="landmark combo" tool_tip="Landmark para mostrar no Mapa">
59 tool_tip="Landmark para mostrar no Mapa">
60 <combo_item name="none_selected"> 59 <combo_item name="none_selected">
61 Minhas Landmarks 60 Landmarks
62 </combo_item> 61 </combo_item>
63 </combo_box> 62 </combo_box>
64 <line_editor label="Procurar por nome de região" name="location" 63 <line_editor label="Procurar por nome de região" name="location"
diff --git a/linden/indra/newview/skins/default/xui/pt/menu_inventory.xml b/linden/indra/newview/skins/default/xui/pt/menu_inventory.xml
index 7215cae..b3c6bde 100644
--- a/linden/indra/newview/skins/default/xui/pt/menu_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/pt/menu_inventory.xml
@@ -29,7 +29,7 @@
29 <menu_item_call label="Novo cabelo" name="New Hair" /> 29 <menu_item_call label="Novo cabelo" name="New Hair" />
30 <menu_item_call label="Novos olhos" name="New Eyes" /> 30 <menu_item_call label="Novos olhos" name="New Eyes" />
31 </menu> 31 </menu>
32 <menu_item_call label="Abrir" name="Landmark Open" /> 32 <menu_item_call label="Teletransporte" name="Landmark Open"/>
33 <menu_item_call label="Abrir" name="Animation Open" /> 33 <menu_item_call label="Abrir" name="Animation Open" />
34 <menu_item_call label="Abrir" name="Sound Open" /> 34 <menu_item_call label="Abrir" name="Sound Open" />
35 <menu_item_call label="Remover item." name="Purge Item" /> 35 <menu_item_call label="Remover item." name="Purge Item" />
@@ -48,7 +48,7 @@
48 <menu_item_call label="Contatos IM Online na pasta." name="IM Online Contacts In Folder" /> 48 <menu_item_call label="Contatos IM Online na pasta." name="IM Online Contacts In Folder" />
49 <menu_item_call label="Todos contantos MI na pasta." name="IM All Contacts In Folder" /> 49 <menu_item_call label="Todos contantos MI na pasta." name="IM All Contacts In Folder" />
50 <menu_item_call label="Executar" name="Sound Play" /> 50 <menu_item_call label="Executar" name="Sound Play" />
51 <menu_item_call label="Teleportar para Landmark" name="Teleport To Landmark" /> 51 <menu_item_call label="Sobre as Landmarks" name="Teleport To Landmark"/>
52 <menu_item_call label="Executar in World" name="Animation Play" /> 52 <menu_item_call label="Executar in World" name="Animation Play" />
53 <menu_item_call label="Executar localmente." name="Animation Audition" /> 53 <menu_item_call label="Executar localmente." name="Animation Audition" />
54 <menu_item_call label="Mandar Mensagem Instantânea" name="Send Instant Message" /> 54 <menu_item_call label="Mandar Mensagem Instantânea" name="Send Instant Message" />
diff --git a/linden/indra/newview/skins/default/xui/pt/menu_login.xml b/linden/indra/newview/skins/default/xui/pt/menu_login.xml
new file mode 100644
index 0000000..3aeb748
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/menu_login.xml
@@ -0,0 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<menu_bar name="Login Menu">
3 <menu label="Arquivo" name="File">
4 <menu_item_call label="Sair" name="Quit"/>
5 </menu>
6 <menu label="Editar" name="Edit">
7 <menu_item_call label="Preferências..." name="Preferences..."/>
8 </menu>
9 <menu label="Ajuda" name="Help">
10 <menu_item_call label="Ajuda do Second Life" name="Second Life Help"/>
11 <menu_item_call label="Sobre o Second Life..." name="About Second Life..."/>
12 </menu>
13</menu_bar>
diff --git a/linden/indra/newview/skins/default/xui/pt/menu_pie_avatar.xml b/linden/indra/newview/skins/default/xui/pt/menu_pie_avatar.xml
index e7f9f6b..1c2e2a0 100644
--- a/linden/indra/newview/skins/default/xui/pt/menu_pie_avatar.xml
+++ b/linden/indra/newview/skins/default/xui/pt/menu_pie_avatar.xml
@@ -1,17 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<pie_menu name="Avatar Pie"> 2<pie_menu name="Avatar Pie">
3 <menu_item_call label="Perfil.." name="Profile..." /> 3 <menu_item_call label="Perfil.." name="Profile..."/>
4 <menu_item_call label="Mudo" name="Avatar Mute" /> 4 <menu_item_call label="Mudo" name="Avatar Mute"/>
5 <menu_item_call label="Ir para" name="Go To" /> 5 <menu_item_call label="Ir para" name="Go To"/>
6 <menu_item_call label="Taxa" name="Rate" /> 6 <menu_item_call label="Adicionar amigo..." name="Add Friend"/>
7 <menu_item_call label="Adicionar Amigo" name="Add Friend" /> 7 <menu_item_call label="Pagar..." name="Pay..."/>
8 <menu_item_call label="Pagar..." name="Pay..." />
9 <pie_menu label="Mais &gt;" name="More &gt;"> 8 <pie_menu label="Mais &gt;" name="More &gt;">
10 <menu_item_call label="Paralizar..." name="Freeze..." /> 9 <menu_item_call label="Paralizar..." name="Freeze..."/>
11 <menu_item_call label="Dar Cartão" name="Give Card" /> 10 <menu_item_call label="Dar Cartão" name="Give Card"/>
12 <menu_item_call label="Ejetar..." name="Eject..." /> 11 <menu_item_call label="Convidar para o Grupo..." name="Invite..."/>
13 <menu_item_call label="Debug..." name="Debug..." /> 12 <menu_item_call label="Ejetar..." name="Eject..."/>
14 <menu_item_call label="Inspecionar" name="Object Inspect" /> 13 <menu_item_call label="Debug..." name="Debug..."/>
14 <menu_item_call label="Inspecionar" name="Object Inspect"/>
15 </pie_menu> 15 </pie_menu>
16 <menu_item_call label="Enviar Mi..." name="Send IM..." /> 16 <menu_item_call label="Enviar Mi..." name="Send IM..."/>
17</pie_menu> 17</pie_menu>
diff --git a/linden/indra/newview/skins/default/xui/pt/menu_slurl.xml b/linden/indra/newview/skins/default/xui/pt/menu_slurl.xml
new file mode 100644
index 0000000..e18e776
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/menu_slurl.xml
@@ -0,0 +1,6 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<menu name="Popup">
3 <menu_item_call label="Sobre a URL" name="about_url"/>
4 <menu_item_call label="Teletransporte para a URL" name="teleport_to_url"/>
5 <menu_item_call label="Mostrar no Mapa" name="show_on_map"/>
6</menu>
diff --git a/linden/indra/newview/skins/default/xui/pt/menu_viewer.xml b/linden/indra/newview/skins/default/xui/pt/menu_viewer.xml
index 84fdc3f..3118c28 100644
--- a/linden/indra/newview/skins/default/xui/pt/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/pt/menu_viewer.xml
@@ -1,197 +1,201 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<menu_bar name="Main Menu"> 2<menu_bar name="Main Menu">
3 <menu label="Arquivo" name="File"> 3 <menu label="Arquivo" name="File">
4 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 4 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
5 <menu_item_call label="Upload de imagem (L$[COST])..." name="Upload Image" /> 5 <menu_item_call label="Upload de imagem (L$[COST])..." name="Upload Image"/>
6 <menu_item_call label="Upload de som(L$[COST])..." name="Upload Sound" /> 6 <menu_item_call label="Upload de som(L$[COST])..." name="Upload Sound"/>
7 <menu_item_call label="Upload de animação (L$[COST])..." name="Upload Animation" /> 7 <menu_item_call label="Upload de animação (L$[COST])..." name="Upload Animation"/>
8 <menu_item_call label="Upload de Arquivo (L$[COST] por arquivo)..." name="Bulk Upload" /> 8 <menu_item_call label="Upload de Arquivo (L$[COST] por arquivo)..." name="Bulk Upload"/>
9 <menu_item_separator label="-----------" name="separator" /> 9 <menu_item_separator label="-----------" name="separator"/>
10 <menu_item_call label="Fechar janela" name="Close Window" /> 10 <menu_item_call label="Fechar janela" name="Close Window"/>
11 <menu_item_call label="Fechar todas as janelas" name="Close All Windows" /> 11 <menu_item_call label="Fechar todas as janelas" name="Close All Windows"/>
12 <menu_item_separator label="-----------" name="separator2" /> 12 <menu_item_separator label="-----------" name="separator2"/>
13 <menu_item_call label="Salvar textura como" name="Save Texture As..." /> 13 <menu_item_call label="Salvar textura como" name="Save Texture As..."/>
14 <menu_item_separator label="-----------" name="separator3" /> 14 <menu_item_separator label="-----------" name="separator3"/>
15 <menu_item_call label="Tirar Foto" name="Take Snapshot" /> 15 <menu_item_call label="Tirar Foto" name="Take Snapshot"/>
16 <menu_item_call label="Salvar Foto no disco" name="Snapshot to Disk" /> 16 <menu_item_call label="Salvar Foto no disco" name="Snapshot to Disk"/>
17 <menu_item_separator label="-----------" name="separator4" /> 17 <menu_item_separator label="-----------" name="separator4"/>
18 <menu label="Ajustar o tamanho da janela" name="Set Window Size"> 18 <menu_item_call label="Sair" name="Quit"/>
19 <menu_item_call label="320x240" name="320x240" />
20 <menu_item_call label="640x480" name="640x480" />
21 <menu_item_call label="800x600" name="800x600" />
22 <menu_item_separator label="-----------" name="separator" />
23 <menu_item_call label="720x480 (NTSC)" name="720x480 (NTSC)" />
24 <menu_item_call label="768x576 (PAL)" name="768x576 (PAL)" />
25 </menu>
26 <menu_item_separator label="-----------" name="separator5" />
27 <menu_item_call label="Sair" name="Quit" />
28 </menu> 19 </menu>
29 <menu label="Editar" name="Edit"> 20 <menu label="Editar" name="Edit">
30 <menu_item_call label="Voltar" name="Undo" /> 21 <menu_item_call label="Voltar" name="Undo"/>
31 <menu_item_call label="Avançar" name="Redo" /> 22 <menu_item_call label="Avançar" name="Redo"/>
32 <menu_item_separator label="-----------" name="separator" /> 23 <menu_item_separator label="-----------" name="separator"/>
33 <menu_item_call label="Cortar" name="Cut" /> 24 <menu_item_call label="Cortar" name="Cut"/>
34 <menu_item_call label="Copiar" name="Copy" /> 25 <menu_item_call label="Copiar" name="Copy"/>
35 <menu_item_call label="Pasta" name="Paste" /> 26 <menu_item_call label="Pasta" name="Paste"/>
36 <menu_item_call label="Apagar" name="Delete" /> 27 <menu_item_call label="Apagar" name="Delete"/>
37 <menu_item_separator label="-----------" name="separator2" /> 28 <menu_item_separator label="-----------" name="separator2"/>
38 <menu_item_call label="Procurar..." name="Search..." /> 29 <menu_item_call label="Procurar..." name="Search..."/>
39 <menu_item_separator label="-----------" name="separator3" /> 30 <menu_item_separator label="-----------" name="separator3"/>
40 <menu_item_call label="Selecionar todos" name="Select All" /> 31 <menu_item_call label="Selecionar todos" name="Select All"/>
41 <menu_item_call label="Retirar seleção" name="Deselect" /> 32 <menu_item_call label="Retirar seleção" name="Deselect"/>
42 <menu_item_separator label="-----------" name="separator4" /> 33 <menu_item_separator label="-----------" name="separator4"/>
43 <menu_item_call label="Duplicar" name="Duplicate" /> 34 <menu_item_call label="Duplicar" name="Duplicate"/>
44 <menu_item_separator label="-----------" name="separator5" /> 35 <menu_item_separator label="-----------" name="separator5"/>
45 <menu label="Anexar objeto" name="Attach Object" /> 36 <menu label="Anexar objeto" name="Attach Object"/>
46 <menu label="Desanexar objeto" name="Detach Object" /> 37 <menu label="Desanexar objeto" name="Detach Object"/>
47 <menu label="Tirar a roupa" name="Take Off Clothing"> 38 <menu label="Tirar a roupa" name="Take Off Clothing">
48 <menu_item_call label="Camiseta" name="Shirt" /> 39 <menu_item_call label="Camiseta" name="Shirt"/>
49 <menu_item_call label="Calças" name="Pants" /> 40 <menu_item_call label="Calças" name="Pants"/>
50 <menu_item_call label="Sapatos" name="Shoes" /> 41 <menu_item_call label="Sapatos" name="Shoes"/>
51 <menu_item_call label="Meias" name="Socks" /> 42 <menu_item_call label="Meias" name="Socks"/>
52 <menu_item_call label="Blusa" name="Jacket" /> 43 <menu_item_call label="Blusa" name="Jacket"/>
53 <menu_item_call label="Luvas" name="Gloves" /> 44 <menu_item_call label="Luvas" name="Gloves"/>
54 <menu_item_call label="Anágua" name="Menu Undershirt" /> 45 <menu_item_call label="Anágua" name="Menu Undershirt"/>
55 <menu_item_call label="Roupa de baixo" name="Menu Underpants" /> 46 <menu_item_call label="Roupa de baixo" name="Menu Underpants"/>
56 <menu_item_call label="saia" name="Skirt" /> 47 <menu_item_call label="saia" name="Skirt"/>
57 <menu_item_call label="Toda a roupa" name="All Clothes" /> 48 <menu_item_call label="Toda a roupa" name="All Clothes"/>
58 </menu> 49 </menu>
59 <menu_item_separator label="-----------" name="separator6" /> 50 <menu_item_separator label="-----------" name="separator6"/>
60 <menu_item_call label="Movimentos..." name="Gestures..." /> 51 <menu_item_call label="Movimentos..." name="Gestures..."/>
61 <menu_item_call label="Perfil..." name="Profile..." /> 52 <menu_item_call label="Perfil..." name="Profile..."/>
62 <menu_item_call label="Aparência..." name="Appearance..." /> 53 <menu_item_call label="Aparência..." name="Appearance..."/>
63 <menu_item_separator label="-----------" name="separator7" /> 54 <menu_item_separator label="-----------" name="separator7"/>
64 <menu_item_check label="Amigos..." name="Friends..." /> 55 <menu_item_check label="Amigos..." name="Friends..."/>
65 <menu_item_call label="Grupos..." name="Groups..." /> 56 <menu_item_call label="Grupos..." name="Groups..."/>
66 <menu_item_separator label="-----------" name="separator8" /> 57 <menu_item_separator label="-----------" name="separator8"/>
67 <menu_item_call label="Preferências..." name="Preferences..." /> 58 <menu_item_call label="Preferências..." name="Preferences..."/>
68 </menu> 59 </menu>
69 <menu label="Exibir" name="View"> 60 <menu label="Exibir" name="View">
70 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 61 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
71 <menu_item_call label="Visão do mouse" name="Mouselook" /> 62 <menu_item_call label="Visão do mouse" name="Mouselook"/>
72 <menu_item_check label="Construção" name="Build" /> 63 <menu_item_check label="Construção" name="Build"/>
73 <menu_item_call label="Resetar visão" name="Reset View" /> 64 <menu_item_check label="Joystick Flycam" name="Joystick Flycam"/>
74 <menu_item_call label="Olhar para o último movimento" name="Look at Last Chatter" /> 65 <menu_item_call label="Resetar visão" name="Reset View"/>
75 <menu_item_separator label="-----------" name="separator" /> 66 <menu_item_call label="Olhar para o último movimento" name="Look at Last Chatter"/>
76 <menu_item_check label="Barra de ferramentas" name="Toolbar" /> 67 <menu_item_separator label="-----------" name="separator"/>
77 <menu_item_check label="Histórico de chat" name="Chat History" /> 68 <menu_item_check label="Barra de ferramentas" name="Toolbar"/>
78 <menu_item_check label="Mensagem instantânea" name="Instant Message" /> 69 <menu_item_check label="Conversa local" name="Chat History"/>
79 <menu_item_call label="Inventário" name="Inventory" /> 70 <menu_item_check label="Comunicar" name="Instant Message"/>
80 <menu_item_check label="Lista de pessoas que não podem falar com você" name="Mute List" /> 71 <menu_item_check label="Inventário" name="Inventory"/>
81 <menu_item_separator label="-----------" name="separator2" /> 72 <menu_item_check label="Microfone ativo" name="Active Speakers"/>
82 <menu_item_check label="Controle de câmeras" name="Camera Controls" /> 73 <menu_item_check label="Lista de pessoas que não podem falar com você" name="Mute List"/>
83 <menu_item_check label="Controle de movimentos" name="Movement Controls" /> 74 <menu_item_separator label="-----------" name="separator2"/>
84 <menu_item_check label="Mapa do mundo" name="World Map" /> 75 <menu_item_check label="Controle de câmeras" name="Camera Controls"/>
85 <menu_item_check label="Mini-Mapa" name="Mini-Map" /> 76 <menu_item_check label="Controle de movimentos" name="Movement Controls"/>
86 <menu_item_separator label="-----------" name="separator3" /> 77 <menu_item_check label="Mapa do mundo" name="World Map"/>
87 <menu_item_check label="Barra de estatísticas" name="Statistics Bar" /> 78 <menu_item_check label="Mini-Mapa" name="Mini-Map"/>
88 <menu_item_check label="Linhas de propriedades" name="Property Lines" /> 79 <menu_item_separator label="-----------" name="separator3"/>
89 <menu_item_check label="Dono de terrenos" name="Land Owners" /> 80 <menu_item_check label="Barra de estatísticas" name="Statistics Bar"/>
90 <menu_item_separator label="-----------" name="separator4" /> 81 <menu_item_check label="Linhas de propriedades" name="Property Lines"/>
82 <menu_item_check label="Dono de terrenos" name="Land Owners"/>
83 <menu_item_separator label="-----------" name="separator4"/>
91 <menu label="Dicas" name="Hover Tips"> 84 <menu label="Dicas" name="Hover Tips">
92 <menu_item_check label="Mostrar dicas" name="Show Tips" /> 85 <menu_item_check label="Mostrar dicas" name="Show Tips"/>
93 <menu_item_separator label="-----------" name="separator" /> 86 <menu_item_separator label="-----------" name="separator"/>
94 <menu_item_check label="Dicas de terreno" name="Land Tips" /> 87 <menu_item_check label="Dicas de terreno" name="Land Tips"/>
95 <menu_item_check label="Dicas de todos os objetos" name="Tips On All Objects" /> 88 <menu_item_check label="Dicas de todos os objetos" name="Tips On All Objects"/>
96 </menu>
97 <menu_item_check label="Mostrar tamanho fisíco" name="Alt Shows Physical" />
98 <menu_item_check label="Luz para transparência" name="Highlight Transparent" />
99 <menu label="Piscar" name="Beacons">
100 <menu_item_check label="Objetos com scripts" name="Scripted Objects" />
101 <menu_item_check label="Objetos fisícos" name="Physical Objects" />
102 <menu_item_check label="Recursos de som" name="Sound Sources" />
103 <menu_item_check label="Recursos" name="Particle Sources" />
104 <menu_item_separator label="-----------" name="separator" />
105 <menu_item_check label="Partículas escondidas" name="Hide Particles" />
106 </menu> 89 </menu>
107 <menu_item_check label="Mostrar anexo em HUD" name="Show HUD Attachments" /> 90 <menu_item_check label="Luz para transparência" name="Highlight Transparent"/>
108 <menu_item_separator label="-----------" name="separator5" /> 91 <menu_item_check label="Balizas" name="beacons"/>
109 <menu_item_call label="Mais zoom" name="Zoom In" /> 92 <menu_item_check label="Esconder partículas" name="Hide Particles"/>
110 <menu_item_call label="Zoom padrão" name="Zoom Default" /> 93 <menu_item_check label="Mostrar anexo em HUD" name="Show HUD Attachments"/>
111 <menu_item_call label="Menos zoom" name="Zoom Out" /> 94 <menu_item_separator label="-----------" name="separator5"/>
112 <menu_item_separator label="-----------" name="separator6" /> 95 <menu_item_call label="Mais zoom" name="Zoom In"/>
113 <menu_item_call label="Tela cheia" name="Toggle Fullscreen" /> 96 <menu_item_call label="Zoom padrão" name="Zoom Default"/>
114 <menu_item_call label="Ajustar o tamanho da UI ao padrão" name="Set UI Size to Default" /> 97 <menu_item_call label="Menos zoom" name="Zoom Out"/>
98 <menu_item_separator label="-----------" name="separator6"/>
99 <menu_item_call label="Tela cheia" name="Toggle Fullscreen"/>
100 <menu_item_call label="Ajustar o tamanho da UI ao padrão" name="Set UI Size to Default"/>
115 </menu> 101 </menu>
116 <menu label="Mundo" name="World"> 102 <menu label="Mundo" name="World">
117 <menu_item_call label="Conversa" name="Chat" /> 103 <menu_item_call label="Conversa" name="Chat"/>
118 <menu_item_call label="Iniciar movimento" name="Start Gesture" /> 104 <menu_item_check label="Sempre Correr" name="Always Run"/>
119 <menu_item_check label="Sempre Correr" name="Always Run" /> 105 <menu_item_check label="Voar" name="Fly"/>
120 <menu_item_check label="Voar" name="Fly" /> 106 <menu_item_separator label="-----------" name="separator"/>
121 <menu_item_separator label="-----------" name="separator" /> 107 <menu_item_call label="Criar Landmark aqui" name="Create Landmark Here"/>
122 <menu_item_call label="Criar Landmark aqui" name="Create Landmark Here" /> 108 <menu_item_call label="Marcar como casa " name="Set Home to Here"/>
123 <menu_item_call label="Marcar como casa " name="Set Home to Here" /> 109 <menu_item_separator label="-----------" name="separator2"/>
124 <menu_item_separator label="-----------" name="separator2" /> 110 <menu_item_call label="Teleportar para casa" name="Teleport Home"/>
125 <menu_item_call label="Teleportar para casa" name="Teleport Home" /> 111 <menu_item_separator label="-----------" name="separator3"/>
126 <menu_item_separator label="-----------" name="separator3" /> 112 <menu_item_call label="Deixar ausente" name="Set Away"/>
127 <menu_item_call label="Deixar ausente" name="Set Away" /> 113 <menu_item_call label="Modo Ocupado" name="Set Busy"/>
128 <menu_item_call label="Modo Ocupado" name="Set Busy" /> 114 <menu_item_call label="Parar todas as animações" name="Stop All Animations"/>
129 <menu_item_separator label="-----------" name="separator5" /> 115 <menu_item_call label="Liberar controles" name="Release Keys"/>
130 <menu_item_call label="Meu terreno..." name="My Land..." /> 116 <menu_item_separator label="-----------" name="separator4"/>
131 <menu_item_call label="Sobre terreno..." name="About Land..." /> 117 <menu_item_call label="Histórico de conta..." name="Account History..."/>
132 <menu_item_call label="Comprar terreno..." name="Buy Land..." /> 118 <menu_item_call label="Gerenciar minha conta..." name="Manage My Account..."/>
133 <menu_item_call label="Região/Estado..." name="Region/Estate..." /> 119 <menu_item_call label="Comprar L$..." name="Buy and Sell L$..."/>
134 <menu_item_separator label="-----------" name="separator6" /> 120 <menu_item_separator label="-----------" name="separator5"/>
135 <menu label="Forçar o sol" name="Force Sun"> 121 <menu_item_call label="Meu terreno..." name="My Land..."/>
136 <menu_item_call label="Amanhecer" name="Sunrise" /> 122 <menu_item_call label="Sobre terreno..." name="About Land..."/>
137 <menu_item_call label="Meio-dia" name="Noon" /> 123 <menu_item_call label="Comprar terreno..." name="Buy Land..."/>
138 <menu_item_call label="Pôr do sol" name="Sunset" /> 124 <menu_item_call label="Região/Estado..." name="Region/Estate..."/>
139 <menu_item_call label="Meia noite" name="Midnight" /> 125 <menu_item_separator label="-----------" name="separator6"/>
140 <menu_item_separator label="-----------" name="separator" /> 126 <menu label="Configurações de ambiente" name="Environment Settings">
141 <menu_item_call label="Reverter para o padrão da região" name="Revert to Region Default" /> 127 <menu_item_call label="Amanhecer" name="Sunrise"/>
128 <menu_item_call label="Meio-dia" name="Noon"/>
129 <menu_item_call label="Pôr do sol" name="Sunset"/>
130 <menu_item_call label="Meia-noite" name="Midnight"/>
131 <menu_item_call label="Reverter ao padrão da região" name="Revert to Region Default"/>
132 <menu_item_separator label="-----------" name="separator"/>
133 <menu_item_call label="Editor de ambiente" name="Environment Editor"/>
142 </menu> 134 </menu>
143 </menu> 135 </menu>
144 <menu label="Ferramentas" name="Tools"> 136 <menu label="Ferramentas" name="Tools">
145 <menu label="Selecionar ferramenta" name="Select Tool"> 137 <menu label="Selecionar ferramenta" name="Select Tool">
146 <menu_item_call label="Foco" name="Focus" /> 138 <menu_item_call label="Foco" name="Focus"/>
147 <menu_item_call label="Mover" name="Move" /> 139 <menu_item_call label="Mover" name="Move"/>
148 <menu_item_call label="Editar" name="Edit" /> 140 <menu_item_call label="Editar" name="Edit"/>
149 <menu_item_call label="Criar" name="Create" /> 141 <menu_item_call label="Criar" name="Create"/>
150 <menu_item_call label="Terreno" name="Land" /> 142 <menu_item_call label="Terreno" name="Land"/>
151 </menu> 143 </menu>
152 <menu_item_separator label="-----------" name="separator" /> 144 <menu_item_separator label="-----------" name="separator"/>
153 <menu_item_check label="Selecionar apenas meus objetos" name="Select Only My Objects" /> 145 <menu_item_check label="Selecionar apenas meus objetos" name="Select Only My Objects"/>
154 <menu_item_check label="Selecionar apenas objetos móveis" name="Select Only Movable Objects" /> 146 <menu_item_check label="Selecionar apenas objetos móveis" name="Select Only Movable Objects"/>
155 <menu_item_check label="Selecionar objetos pelo som" name="Select By Surrounding" /> 147 <menu_item_check label="Selecionar objetos pelo som" name="Select By Surrounding"/>
156 <menu_item_check label="Mostrar seleções escondidas" name="Show Hidden Selection" /> 148 <menu_item_check label="Mostrar seleções escondidas" name="Show Hidden Selection"/>
157 <menu_item_check label="Mostrar luz radiante para solução" 149 <menu_item_check label="Mostrar luz radiante para solução" name="Show Light Radius for Selection"/>
158 name="Show Light Radius for Selection" /> 150 <menu_item_check label="Mostrar seleções de feixes" name="Show Selection Beam"/>
159 <menu_item_check label="Mostrar seleções de feixes" name="Show Selection Beam" /> 151 <menu_item_separator label="-----------" name="separator2"/>
160 <menu_item_separator label="-----------" name="separator2" /> 152 <menu_item_check label="Alinhar a grade" name="Snap to Grid"/>
161 <menu_item_check label="Alinhar a grade" name="Snap to Grid" /> 153 <menu_item_call label="Alinhar objeto a grade XY" name="Snap Object XY to Grid"/>
162 <menu_item_call label="Alinhar objeto a grade XY" name="Snap Object XY to Grid" /> 154 <menu_item_call label="Usar seleção na grade" name="Use Selection for Grid"/>
163 <menu_item_call label="Usar seleção na grade" name="Use Selection for Grid" /> 155 <menu_item_call label="Opções de grade..." name="Grid Options..."/>
164 <menu_item_call label="Opções de grade..." name="Grid Options..." /> 156 <menu_item_separator label="-----------" name="separator3"/>
165 <menu_item_separator label="-----------" name="separator3" /> 157 <menu_item_check label="Editar partes ligadas" name="Edit Linked Parts"/>
166 <menu_item_call label="Unir" name="Link" /> 158 <menu_item_call label="Unir" name="Link"/>
167 <menu_item_call label="Desunir" name="Unlink" /> 159 <menu_item_call label="Desunir" name="Unlink"/>
168 <menu_item_separator label="-----------" name="separator4" /> 160 <menu_item_separator label="-----------" name="separator4"/>
169 <menu_item_call label="Parar todas as animações" name="Stop All Animations" /> 161 <menu_item_call label="Focus na seleção" name="Focus on Selection"/>
170 <menu_item_separator label="-----------" name="separator5" /> 162 <menu_item_call label="Zoom na Seleção" name="Zoom to Selection"/>
171 <menu_item_call label="Focus na seleção" name="Focus on Selection" /> 163 <menu_item_call label="Comprar objetos" name="Menu Object Take"/>
172 <menu_item_call label="Zoom na Seleção" name="Zoom to Selection" /> 164 <menu_item_call label="Pegar cópia" name="Take Copy"/>
173 <menu_item_call label="Comprar objetos" name="Menu Object Take" /> 165 <menu_item_call label="Salvar objeto direto no meu inventário" name="Save Object Back to My Inventory"/>
174 <menu_item_call label="Pegar cópia" name="Take Copy" /> 166 <menu_item_call label="Salvar todos os objetos" name="Save Object Back to Object Contents"/>
175 <menu_item_call label="Salvar objeto direto no meu inventário" 167 <menu_item_separator label="-----------" name="separator6"/>
176 name="Save Object Back to My Inventory" /> 168 <menu_item_call label="Mostrar scripts defeituosos/Erros de janela" name="Show Script Warning/Error Window"/>
177 <menu_item_call label="Salvar todos os objetos" name="Save Object Back to Object Contents" /> 169 <menu label="Recolocar scripts na seleção" name="Recompile Scripts in Selection">
178 <menu_item_separator label="-----------" name="separator6" /> 170 <menu_item_call label="Mono" name="Mono"/>
179 <menu_item_call label="Mostrar scripts defeituosos/Erros de janela" 171 <menu_item_call label="LSL" name="LSL"/>
180 name="Show Script Warning/Error Window" /> 172 </menu>
181 <menu_item_call label="Recolocar scripts na seleção" name="Recompile Scripts in Selection" /> 173 <menu_item_call label="Resetar script selecionado" name="Reset Scripts in Selection"/>
182 <menu_item_call label="Resetar script selecionado" name="Reset Scripts in Selection" /> 174 <menu_item_call label="Ajustar scripts para funcionar na seleção" name="Set Scripts to Running in Selection"/>
183 <menu_item_call label="Ajustar scripts para funcionar na seleção" 175 <menu_item_call label="Ajustar scripts para não funcionar na seleção" name="Set Scripts to Not Running in Selection"/>
184 name="Set Scripts to Running in Selection" />
185 <menu_item_call label="Ajustar scripts para não funcionar na seleção"
186 name="Set Scripts to Not Running in Selection" />
187 <menu_item_separator label="-----------" name="separator6" />
188 </menu> 176 </menu>
189 <menu label="Ajuda" name="Help"> 177 <menu label="Ajuda" name="Help">
190 <menu_item_call label="Ajuda Second Life" name="Second Life Help" /> 178 <menu_item_call label="Ajuda Second Life" name="Second Life Help"/>
191 <menu_item_separator label="-----------" name="separator" /> 179 <menu_item_call label="Tutorial" name="Tutorial"/>
192 <menu_item_call label="Reportar Abuso..." name="Report Abuse..." /> 180 <menu_item_separator label="-----------" name="separator"/>
193 <menu_item_call label="Colisões, impulsos e batidas..." name="Bumps, Pushes &amp;amp; Hits..." /> 181 <menu_item_call label="Blog oficial da Linden..." name="Official Linden Blog..."/>
194 <menu_item_separator label="-----------" name="separator6" /> 182 <menu_item_separator label="-----------" name="separator2"/>
195 <menu_item_call label="Sobre Second Life..." name="About Second Life..." /> 183 <menu_item_call label="Portal de Scripts..." name="Scripting Portal..."/>
184 <menu_item_separator label="-----------" name="separator3"/>
185 <menu_item_call label="Reportar Abuso..." name="Report Abuse..."/>
186 <menu_item_call label="Colisões, impulsos e batidas..." name="Bumps, Pushes &amp;amp; Hits..."/>
187 <menu_item_call label="Medidor de Lag" name="Lag Meter"/>
188 <menu_item_separator label="-----------" name="separator7"/>
189 <menu label="Reportando Bug" name="Bug Reporting">
190 <menu_item_call label="Rastreador público de problemas..." name="Public Issue Tracker..."/>
191 <menu_item_call label="Ajuda do rastreador público de problemas..." name="Publc Issue Tracker Help..."/>
192 <menu_item_separator label="-----------" name="separator7"/>
193 <menu_item_call label="Reportando Bug 101..." name="Bug Reporing 101..."/>
194 <menu_item_call label="Questões de Segurança..." name="Security Issues..."/>
195 <menu_item_call label="Wiki de QA ..." name="QA Wiki..."/>
196 <menu_item_separator label="-----------" name="separator9"/>
197 <menu_item_call label="Reportar Bug..." name="Report Bug..."/>
198 </menu>
199 <menu_item_call label="Sobre Second Life..." name="About Second Life..."/>
196 </menu> 200 </menu>
197</menu_bar> 201</menu_bar>
diff --git a/linden/indra/newview/skins/default/xui/pt/mime_types.xml b/linden/indra/newview/skins/default/xui/pt/mime_types.xml
new file mode 100644
index 0000000..7b6225e
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/mime_types.xml
@@ -0,0 +1,230 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<mimetypes name="default">
3 <widgetset name="web">
4 <label name="web_label">
5 Conteúdo da Web
6 </label>
7 <tooltip name="web_tooltip">
8 Esta região possui Conteúdo da Web disponível.
9 </tooltip>
10 <playtip name="web_playtip">
11 Exibir Conteúdo da Web
12 </playtip>
13 </widgetset>
14 <widgetset name="movie">
15 <label name="movie_label">
16 Filme
17 </label>
18 <tooltip name="movie_tooltip">
19 Há um filme disponível para se assistir aqui
20 </tooltip>
21 <playtip name="movie_playtip">
22 Iniciar filme
23 </playtip>
24 </widgetset>
25 <widgetset name="none">
26 <label name="none_label">
27 Sem conteúdo disponível
28 </label>
29 <tooltip name="none_tooltip">
30 Não há mídia disponível aqui.
31 </tooltip>
32 </widgetset>
33 <widgetset name="image">
34 <label name="image_label">
35 Imagem
36 </label>
37 <tooltip name="image_tooltip">
38 Há uma imagem neste local
39 </tooltip>
40 <playtip name="image_playtip">
41 Ver a imagem disponível deste local.
42 </playtip>
43 </widgetset>
44 <widgetset name="audio">
45 <label name="audio_label">
46 Ãudio
47 </label>
48 <tooltip name="audio_tooltip">
49 Há um áudio neste local
50 </tooltip>
51 <playtip name="audio_playtip">
52 Iniciar áudio disponível neste local
53 </playtip>
54 </widgetset>
55 <scheme name="rtsp">
56 <label name="rtsp_label">
57 Transmissão em tempo real
58 </label>
59 </scheme>
60 <mimetype name="blank">
61 <label name="blank_label">
62 - Nenhum -
63 </label>
64 </mimetype>
65 <mimetype name="none/none">
66 <label name="none/none_label">
67 - Nenhum -
68 </label>
69 </mimetype>
70 <mimetype name="audio/*">
71 <label name="audio2_label">
72 Ãudio
73 </label>
74 </mimetype>
75 <mimetype name="video/*">
76 <label name="video2_label">
77 Vídeo
78 </label>
79 </mimetype>
80 <mimetype name="image/*">
81 <label name="image2_label">
82 Imagem
83 </label>
84 </mimetype>
85 <mimetype name="video/vnd.secondlife.qt.legacy">
86 <label name="vnd.secondlife.qt.legacy_label">
87 Filme (QuickTime)
88 </label>
89 </mimetype>
90 <mimetype name="application/javascript">
91 <label name="application/javascript_label">
92 Javascript
93 </label>
94 </mimetype>
95 <mimetype name="application/ogg">
96 <label name="application/ogg_label">
97 Ãudio/Vídeo Ogg
98 </label>
99 </mimetype>
100 <mimetype name="application/pdf">
101 <label name="application/pdf_label">
102 Documento PDF
103 </label>
104 </mimetype>
105 <mimetype name="application/postscript">
106 <label name="application/postscript_label">
107 Documento Postscript
108 </label>
109 </mimetype>
110 <mimetype name="application/rtf">
111 <label name="application/rtf_label">
112 Rich Text (RTF)
113 </label>
114 </mimetype>
115 <mimetype name="application/smil">
116 <label name="application/smil_label">
117 Synchronized Multimedia Integration Language (SMIL)
118 </label>
119 </mimetype>
120 <mimetype name="application/xhtml+xml">
121 <label name="application/xhtml+xml_label">
122 Página Web (XHTML)
123 </label>
124 </mimetype>
125 <mimetype name="application/x-director">
126 <label name="application/x-director_label">
127 Macromedia Director
128 </label>
129 </mimetype>
130 <mimetype name="application/x-shockwave-flash">
131 <label name="application/x-shockwave-flash_label">
132 Flash
133 </label>
134 </mimetype>
135 <mimetype name="audio/mid">
136 <label name="audio/mid_label">
137 Ãudio (MIDI)
138 </label>
139 </mimetype>
140 <mimetype name="audio/mpeg">
141 <label name="audio/mpeg_label">
142 Ãudio (MP3)
143 </label>
144 </mimetype>
145 <mimetype name="audio/x-aiff">
146 <label name="audio/x-aiff_label">
147 Ãudio (AIFF)
148 </label>
149 </mimetype>
150 <mimetype name="audio/x-wav">
151 <label name="audio/x-wav_label">
152 Ãudio (WAV)
153 </label>
154 </mimetype>
155 <mimetype name="image/bmp">
156 <label name="image/bmp_label">
157 Imagem (BMP)
158 </label>
159 </mimetype>
160 <mimetype name="image/gif">
161 <label name="image/gif_label">
162 Imagem (GIF)
163 </label>
164 </mimetype>
165 <mimetype name="image/jpeg">
166 <label name="image/jpeg_label">
167 Imagem (JPEG)
168 </label>
169 </mimetype>
170 <mimetype name="image/png">
171 <label name="image/png_label">
172 Imagem (PNG)
173 </label>
174 </mimetype>
175 <mimetype name="image/svg+xml">
176 <label name="image/svg+xml_label">
177 Imagem (SVG)
178 </label>
179 </mimetype>
180 <mimetype name="image/tiff">
181 <label name="image/tiff_label">
182 Imagem (TIFF)
183 </label>
184 </mimetype>
185 <mimetype name="text/html">
186 <label name="text/html_label">
187 Página Web
188 </label>
189 </mimetype>
190 <mimetype name="text/plain">
191 <label name="text/plain_label">
192 Texto
193 </label>
194 </mimetype>
195 <mimetype name="text/xml">
196 <label name="text/xml_label">
197 XML
198 </label>
199 </mimetype>
200 <mimetype name="video/mpeg">
201 <label name="video/mpeg_label">
202 Filme (MPEG)
203 </label>
204 </mimetype>
205 <mimetype name="video/mp4">
206 <label name="video/mp4_label">
207 Filme (MP4)
208 </label>
209 </mimetype>
210 <mimetype name="video/quicktime">
211 <label name="video/quicktime_label">
212 Filme (QuickTime)
213 </label>
214 </mimetype>
215 <mimetype name="video/x-ms-asf">
216 <label name="video/x-ms-asf_label">
217 Filme (Windows Media ASF)
218 </label>
219 </mimetype>
220 <mimetype name="video/x-ms-wmv">
221 <label name="video/x-ms-wmv_label">
222 Filme (Windows Media WMV)
223 </label>
224 </mimetype>
225 <mimetype name="video/x-msvideo">
226 <label name="video/x-msvideo_label">
227 Filme (AVI)
228 </label>
229 </mimetype>
230</mimetypes>
diff --git a/linden/indra/newview/skins/default/xui/pt/notify.xml b/linden/indra/newview/skins/default/xui/pt/notify.xml
index a070cee..6e4a23c 100644
--- a/linden/indra/newview/skins/default/xui/pt/notify.xml
+++ b/linden/indra/newview/skins/default/xui/pt/notify.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<notifications> 2<notifications>
3 <notify name="SystemMessageTip"> 3 <notify name="SystemMessageTip">
4 <message name="message"> 4 <message name="message">
@@ -77,12 +77,13 @@
77 </notify> 77 </notify>
78 <notify name="GestureMissing"> 78 <notify name="GestureMissing">
79 <message name="message"> 79 <message name="message">
80 A animação foi perdida. 80 O Gesto [NAME] não se encontra na base de dados
81 </message> 81 </message>
82 </notify> 82 </notify>
83 <notify name="UnableToLoadGesture"> 83 <notify name="UnableToLoadGesture">
84 <message name="message"> 84 <message name="message">
85 Impossível fazer o download da imagem. Por favor, tente de novo. 85 Impossível de carregar o gesto [NAME].
86Por favor, tente novamente.
86 </message> 87 </message>
87 </notify> 88 </notify>
88 <notify name="InventoryLoaded"> 89 <notify name="InventoryLoaded">
@@ -115,6 +116,11 @@
115 Permissões insuficientes para visualizar o notecard 116 Permissões insuficientes para visualizar o notecard
116 </message> 117 </message>
117 </notify> 118 </notify>
119 <notify name="RezItemNoPermissions">
120 <message name="message">
121 Sem permissões suficientes para criar objetos.
122 </message>
123 </notify>
118 <notify name="UnableToLoadNotecard"> 124 <notify name="UnableToLoadNotecard">
119 <message name="message"> 125 <message name="message">
120 Impossível carregar o notecard. Por favor, tente novamente. 126 Impossível carregar o notecard. Por favor, tente novamente.
@@ -155,11 +161,6 @@
155 Você deve oferecer um chamado a [FIRST] [LAST] 161 Você deve oferecer um chamado a [FIRST] [LAST]
156 </message> 162 </message>
157 </notify> 163 </notify>
158 <notify name="OfferedFriendship">
159 <message name="message">
160 Você ofereceu um pedido de amizade a [FIRST] [LAST]
161 </message>
162 </notify>
163 <notify name="UnableToBuyWhileDownloading"> 164 <notify name="UnableToBuyWhileDownloading">
164 <message name="message"> 165 <message name="message">
165 Impossível comprar o objeto enquanto ele está sendo carregado. Por favor, tente novamente. 166 Impossível comprar o objeto enquanto ele está sendo carregado. Por favor, tente novamente.
@@ -222,12 +223,14 @@
222 </notify> 223 </notify>
223 <notify name="TeleportToLandmark"> 224 <notify name="TeleportToLandmark">
224 <message name="message"> 225 <message name="message">
225 Agora que você alcançou o mainland, você pode teleport a qualquer ponto do mapa. Clicando na opção do inventário na direita de sua tela, e selecione.Dois clicks no lugar escolhido e você será teletransportado para este local. 226 Agora que você chegou à mainland, você pode se teletransportar para locais como '[NAME]' clicando no botão de Inventário, no canto direito inferior de sua tela, e selecionando a pasta Landmarks.
227Dê um duplo-clique na landmark e clique Teletransportar para viajar para o local desejado.
226 </message> 228 </message>
227 </notify> 229 </notify>
228 <notify name="TeleportToPerson"> 230 <notify name="TeleportToPerson">
229 <message name="message"> 231 <message name="message">
230 Agora que você alcançou o mainland, você pode contatar os residentes [NAME] .Clique no inventário da direita do sua tela, e dê dois cliques no calling card. Clique sobre sobre o calling card, que aparece a mensagem instantânea. 232 Agora que você chegou à mainland, você pode contatar residentes como &apos;[NAME]&apos; clicando no botão de Inventário, canto direito inferior de sua tela, e selecionando a pasta Cartões de Visita
233Dê um duplo-clique num cartão de visitas e em Mensagem Instantânea e digite sua mensagem
231 </message> 234 </message>
232 </notify> 235 </notify>
233 <notify name="CantSelectLandFromMultipleRegions"> 236 <notify name="CantSelectLandFromMultipleRegions">
@@ -341,7 +344,12 @@
341 </notify> 344 </notify>
342 <notify name="PushRestricted"> 345 <notify name="PushRestricted">
343 <message name="message"> 346 <message name="message">
344 Esta terra tem propriedades especificas. Você não pode fazer nenhuma ação grave nela. 347 Esta terra é “Não empurreâ€. Você não pode empurrar os outros, a não ser que seja o proprietário da terra.
348 </message>
349 </notify>
350 <notify name="NoVoice">
351 <message name="message">
352 O uso de voz está desabilitado nesta terra.
345 </message> 353 </message>
346 </notify> 354 </notify>
347 <notify name="NoBuild"> 355 <notify name="NoBuild">
@@ -437,6 +445,9 @@
437 <option name="Decline"> 445 <option name="Decline">
438 Saia 446 Saia
439 </option> 447 </option>
448 <option name="Info">
449 Informações
450 </option>
440 </notify> 451 </notify>
441 <notify name="JoinGroupOfficerNoFee"> 452 <notify name="JoinGroupOfficerNoFee">
442 <message name="message"> 453 <message name="message">
@@ -495,7 +506,11 @@
495 </notify> 506 </notify>
496 <notify name="OfferFriendship"> 507 <notify name="OfferFriendship">
497 <message name="message"> 508 <message name="message">
498 [NAME] está te oferecendo um convite de amizade. 509 [NAME] está lhe oferecendo sua amizade
510
511[MESSAGE]
512
513(Por definição vocês serão capazes de ver um ao outro online)
499 </message> 514 </message>
500 <option name="Accept"> 515 <option name="Accept">
501 Aceitar 516 Aceitar
@@ -504,6 +519,19 @@
504 Negar 519 Negar
505 </option> 520 </option>
506 </notify> 521 </notify>
522 <notify name="OfferFriendshipNoMessage">
523 <message name="message">
524 [NAME] está lhe oferecendo sua amizade.
525
526(Por definição vocês poderão ver se o outro está online.)
527 </message>
528 <option name="Accept">
529 Aceitar
530 </option>
531 <option name="Decline">
532 Recusar
533 </option>
534 </notify>
507 <notify name="FriendshipAccepted"> 535 <notify name="FriendshipAccepted">
508 <message name="message"> 536 <message name="message">
509 [NAME] aceitou seu convite de amizade. 537 [NAME] aceitou seu convite de amizade.
@@ -548,12 +576,20 @@
548 </notify> 576 </notify>
549 <notify name="FailedToLoadWearableUnnamed"> 577 <notify name="FailedToLoadWearableUnnamed">
550 <message name="message"> 578 <message name="message">
551 Falha ao carregar a página [TYPE].Por favor, notifique o vendedor que lhe vendeu este produto 579 Opa!
580Você tentou vestir um/uma [TYPE] que não carregou.
581
582Não se apavore
583Tente novamente em alguns minutos para que tudo se ajeite
552 </message> 584 </message>
553 </notify> 585 </notify>
554 <notify name="FailedToLoadWearable"> 586 <notify name="FailedToLoadWearable">
555 <message name="message"> 587 <message name="message">
556 Falha ao carregar [TYPE] nomeado [DESC].Por favor, notifique o vendedor que lhe vendeu os objetos 588 Opa!
589Você tentou vestir um/uma [TYPE] chamado/a [DESC] que não carregou
590
591Não se apavore
592Tente novamente em alguns minutos para que tudo se ajeite.
557 </message> 593 </message>
558 </notify> 594 </notify>
559 <notify name="FailedToFindWearableUnnamed"> 595 <notify name="FailedToFindWearableUnnamed">
@@ -631,6 +667,38 @@
631 <option name="No"> 667 <option name="No">
632 Não 668 Não
633 </option> 669 </option>
670 <option name="Mute">
671 Mudo
672 </option>
673 </notify>
674 <notify name="ScriptQuestionCautionChatGranted">
675 <message name="message">
676 &apos;[OBJECTNAME]&apos;Um objeto de &apos;[OWNERNAME]&apos;, localizado em[REGIONNAME] a [REGIONPOS], está lhe dando permissão para: [PERMISSIONS].
677 </message>
678 </notify>
679 <notify name="ScriptQuestionCautionChatDenied">
680 <message name="message">
681 &apos;[OBJECTNAME]&apos;, um objeto de &apos;[OWNERNAME]&apos;, localizado em [REGIONNAME] a [REGIONPOS], revogou suas permissões para: [PERMISSIONS].
682 </message>
683 </notify>
684 <notify name="ScriptQuestionCaution">
685 <message name="message">
686 &apos;[OBJECTNAME]&apos;, um objeto de &apos;[NAME]&apos;, gostaria de:
687
688[QUESTIONS]
689Se você não confia neste objeto ou em seu criador, você deveria negar o pedido. Para informações adicionais clique no botão Detalhes.
690
691Autorizar este pedido?
692 </message>
693 <option name="Grant">
694 Autorizar
695 </option>
696 <option name="Deny">
697 Negar
698 </option>
699 <option name="Details">
700 Detalhes...
701 </option>
634 </notify> 702 </notify>
635 <notify name="ScriptDialog"> 703 <notify name="ScriptDialog">
636 <message name="message"> 704 <message name="message">
@@ -662,7 +730,6 @@
662 <message name="message"> 730 <message name="message">
663 Você está sentado. Use as setas (or AWSD) para mudar a visão.Clique em &apos;Stand Up&apos; para levantar. 731 Você está sentado. Use as setas (or AWSD) para mudar a visão.Clique em &apos;Stand Up&apos; para levantar.
664 </message> 732 </message>
665 Você foi teleportado
666 </notify> 733 </notify>
667 <notify name="FirstMap"> 734 <notify name="FirstMap">
668 <message name="message"> 735 <message name="message">
@@ -681,7 +748,9 @@
681 </notify> 748 </notify>
682 <notify name="FirstTeleport"> 749 <notify name="FirstTeleport">
683 <message name="message"> 750 <message name="message">
684 Você foi teleportado 751 Esta região não permite teletransporte ponto-a-ponto, assim você foi teletransportado para o telehub mais próximo.
752Seu destino está assinalado com um farol.
753Siga a flecha vermelha até o farol, ou clique nela para apagar o farol.
685 </message> 754 </message>
686 </notify> 755 </notify>
687 <notify name="FirstOverrideKeys"> 756 <notify name="FirstOverrideKeys">
@@ -709,9 +778,174 @@
709 Este objeto tem a propriedade flexível 778 Este objeto tem a propriedade flexível
710 </message> 779 </message>
711 </notify> 780 </notify>
781 <notify name="FirstDebugMenus">
782 <message name="message">
783 Você ativou o menu Avançado. Este menu contém funcionalidades úteis para desenvolvedores debugarem o Second Life. Para mostrar esse menu no Windows pressione Ctrl-Alt-D. No Mac pressione Cmd-Opt-Shift-D.
784 </message>
785 </notify>
786 <notify name="FirstSculptedPrim">
787 <message name="message">
788 Você está editando um sculpted prim. Sculpted prims requerem uma textura especial para especificar suas formas. Você encontrará exemplos dessas texturas na Biblioteca do Inventário.
789 </message>
790 </notify>
791 <notify name="FirstMedia">
792 <message name="message">
793 Você começou a tocar uma mídia. Mídias podem ser autorizadas a iniciar automaticamente se você assim escolher na janela de Preferências, sob Audio/Vídeo. Atente para o risco de segurança que pode haver ao acessar websites de mídia que você não confia.
794 </message>
795 </notify>
712 <notify name="MaxListSelectMessage"> 796 <notify name="MaxListSelectMessage">
713 <message name="message"> 797 <message name="message">
714 Você pode selecionar este objeto [MAX_SELECT] da lista 798 Você pode selecionar este objeto [MAX_SELECT] da lista
715 </message> 799 </message>
716 </notify> 800 </notify>
801 <notify name="VoiceInviteP2P">
802 <message name="message">
803 [NAME] está lhe convidando para uma conversa com voz.
804Clique Aceitar para atender, ou Recusar para recusar o convite. Clique Mudo para calar quem está chamando
805 </message>
806 <option name="Accept">
807 Aceitar
808 </option>
809 <option name="Decline">
810 Recusar
811 </option>
812 <option name="Mute">
813 Mudo
814 </option>
815 </notify>
816 <notify name="AutoUnmuteByIM">
817 <message name="message">
818 [FIRST] [LAST] recebeu uma Mensagem Instantânea sua e automáticamente não está mais no modo mudo.
819 </message>
820 </notify>
821 <notify name="AutoUnmuteByMoney">
822 <message name="message">
823 [FIRST] [LAST] recebeu pagamento seu e automaticamente não está mais no modo mudo.
824 </message>
825 </notify>
826 <notify name="AutoUnmuteByInventory">
827 <message name="message">
828 [FIRST] [LAST] recebeu inventário seu e automaticamente não está mais mudo.
829 </message>
830 </notify>
831 <notify name="VoiceInviteGroup">
832 <message name="message">
833 [NAME] juntou-se a uma conversa com voz do grupo [GROUP].
834Clique Aceitar para atender, ou Recusar para recusar o convite. Clique Mudo para calar quem está chamando.
835 </message>
836 <option name="Accept">
837 Aceitar
838 </option>
839 <option name="Decline">
840 Recusar
841 </option>
842 <option name="Mute">
843 Mudo
844 </option>
845 </notify>
846 <notify name="VoiceInviteAdHoc">
847 <message name="message">
848 [NAME] juntou-se a uma chamada de Conferência com voz...
849Clique Aceitar para jumtar-se à chamada ou Recusar para recusar o convite. Clique Mudo para calar este usuário.
850 </message>
851 <option name="Accept">
852 Aceitar
853 </option>
854 <option name="Decline">
855 Recusar
856 </option>
857 <option name="Mute">
858 Mudo
859 </option>
860 </notify>
861 <notify name="InviteAdHoc">
862 <message name="message">
863 [NAME] está lhe convidando para uma conversa em conferência...
864 Clique Aceitar para se juntar à conversa, ou Recusar para recusar o convite. Clique Mudo para calar este usuário.
865 </message>
866 <option name="Accept">
867 Aceitar
868 </option>
869 <option name="Decline">
870 Recusar
871 </option>
872 <option name="Mute">
873 Mudo
874 </option>
875 </notify>
876 <notify name="VoiceChannelFull">
877 <message name="message">
878 A chamada de voz a qual você está tentando juntar-se, [VOICE_CHANNEL_NAME], atingiu sua máxima capacidade. Favor tentar novamente mais tarde.
879 </message>
880 </notify>
881 <notify name="ProximalVoiceChannelFull">
882 <message name="message">
883 Desculpe-nos. Esta área atingiu seu limite de capacidade para conversas com voz. Favor tentar o usar voz em outra área.
884 </message>
885 </notify>
886 <notify name="VoiceChannelDisconnected">
887 <message name="message">
888 Você foi desconectado de [VOICE_CHANNEL_NAME]. Voce será reconectado agora a Conversa com voz local.
889 </message>
890 </notify>
891 <notify name="VoiceChannelDisconnectedP2P">
892 <message name="message">
893 [VOICE_CHANNEL_NAME] desligou a chamada. Voce será reconectado agora a Conversa com voz local.
894 </message>
895 </notify>
896 <notify name="P2PCallDeclined">
897 <message name="message">
898 [VOICE_CHANNEL_NAME] recusou sua chamada. Voce será reconectado agora a Conversa com voz local.
899 </message>
900 </notify>
901 <notify name="P2PCallNoAnswer">
902 <message name="message">
903 [VOICE_CHANNEL_NAME] não está disponível para aceitar sua chamada. Voce será reconectado agora a Conversa com voz local.
904 </message>
905 </notify>
906 <notify name="VoiceChannelJoinFailed">
907 <message name="message">
908 Falha na conexão com [VOICE_CHANNEL_NAME], tente novamente mais tarde. Voce será reconectado agora a Conversa com voz local.
909 </message>
910 </notify>
911 <notify name="VoiceLoginRetry">
912 <message name="message">
913 Estamos criando uma canal de voz para você. Isto pode levar até um minuto.
914 </message>
915 </notify>
916 <notify name="Cannot enter parcel: not a group member">
917 <message name="message">
918 Você não pode entrar nessa terra, você não é membro do grupo autorizado.
919 </message>
920 </notify>
921 <notify name="Cannot enter parcel: banned">
922 <message name="message">
923 Você não pode entrar nessa terra, você foi banido.
924 </message>
925 </notify>
926 <notify name="Cannot enter parcel: not on access list">
927 <message name="message">
928 Você não pode entrar nessa terra, você não está na lista de acesso.
929 </message>
930 </notify>
931 <notify name="VoiceNotAllowed">
932 <message name="message">
933 Você não tem permissão para se conectar à conversa com voz de [VOICE_CHANNEL_NAME].
934 </message>
935 </notify>
936 <notify name="VoiceCallGenericError">
937 <message name="message">
938 Ocorreu um erro enquanto você tentava se conectar à conversa de voz de [VOICE_CHANNEL_NAME]. Favor tentar novamente mais tarde.
939 </message>
940 </notify>
941 <notify name="ServerVersionChanged">
942 <message name="message">
943 A região que você entrou está rodando uma versão do simulador diferente da sua. Clique aqui para mais detalhes.
944 </message>
945 </notify>
946 <notify name="UnableToOpenCommandURL">
947 <message name="message">
948 A URL que vocÊ clicou não pôde ser aberta no navegador web.
949 </message>
950 </notify>
717</notifications> 951</notifications>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_audio_device.xml b/linden/indra/newview/skins/default/xui/pt/panel_audio_device.xml
new file mode 100644
index 0000000..9581413
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/panel_audio_device.xml
@@ -0,0 +1,15 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="device_settings">
3 <text name="Audio Devices">
4 Dispositivos de Ãudio
5 </text>
6 <text name="Input device (microphone):">
7 Dispositivo de entrada (microfone):
8 </text>
9 <text name="Input level:">
10 Nível de Entrada
11 </text>
12 <string name="default_text">
13 Padrão
14 </string>
15</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_avatar.xml b/linden/indra/newview/skins/default/xui/pt/panel_avatar.xml
index ee8ab6c..6e04a8b 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_avatar.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_avatar.xml
@@ -1,31 +1,37 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="Panel Avatar"> 2<panel name="Panel Avatar">
3 <tab_container name="tab"> 3 <tab_container name="tab">
4 <panel label="2nd Life" name="2nd Life"> 4 <panel label="2nd Life" name="2nd Life">
5 <text name="CaptionTextAcctInfo"> 5 <string name="CaptionTextAcctInfo">
6 [ACCTTYPE][PAYMENTINFO] 6 [ACCTTYPE][PAYMENTINFO]
7 </text> 7 </string>
8 <text name="AcctTypeResident"> 8 <string name="AcctTypeResident">
9 Residente 9 Residente
10 </text> 10 </string>
11 <text name="AcctTypeTrial"> 11 <string name="AcctTypeTrial">
12 Teste 12 Teste
13 </text> 13 </string>
14 <text name="AcctTypeCharterMember"> 14 <string name="AcctTypeCharterMember">
15 Estatuto do membro. 15 Estatuto do membro.
16 </text> 16 </string>
17 <text name="AcctTypeEmployee"> 17 <string name="AcctTypeEmployee">
18 Contratado da Linden Lab. 18 Contratado da Linden Lab.
19 </text> 19 </string>
20 <text name="PaymentInfoUsed"> 20 <string name="PaymentInfoUsed">
21 Informações de pagamento utilizado. 21 Informações de pagamento utilizado.
22 </text> 22 </string>
23 <text name="PaymentInfoOnFile"> 23 <string name="PaymentInfoOnFile">
24 Informações de pagamento no arquivo. 24 Informações de pagamento no arquivo.
25 </text> 25 </string>
26 <text name="NoPaymentInfoOnFile"> 26 <string name="NoPaymentInfoOnFile">
27 Sem informações de pagamento no arquivo. 27 Sem informações de pagamento no arquivo.
28 </text> 28 </string>
29 <string name="AgeVerified">
30 Idade Verificada
31 </string>
32 <string name="NotAgeVerified">
33 Idade não Verificada
34 </string>
29 <text name="Name:"> 35 <text name="Name:">
30 Nome: 36 Nome:
31 </text> 37 </text>
@@ -38,21 +44,18 @@
38 <text name="label2"> 44 <text name="label2">
39 Conta: 45 Conta:
40 </text> 46 </text>
41 <text name="partner_label" 47 <text name="partner_label" tool_tip="Afiliado Second Life. Para mais informações, veja www.secondlife.com/partner">
42 tool_tip="Afiliado Second Life. Para mais informações, veja www.secondlife.com/partner">
43 Parceiro: 48 Parceiro:
44 </text> 49 </text>
45 <line_editor name="partner_edit" 50 <button label="i" label_selected="i" name="partner_info" tool_tip="Clique para abrir o perfil do(a) parceiro(a)"/>
46 tool_tip="Afiliado Second Life. Para mais informações, veja www.secondlife.com/partner"> 51 <button label="?" label_selected="?" name="partner_help"/>
52 <line_editor name="partner_edit" tool_tip="Afiliado Second Life. Para mais informações, veja www.secondlife.com/partner">
47 [FIRST] [LAST] 53 [FIRST] [LAST]
48 </line_editor> 54 </line_editor>
49 <text name="Photo:"> 55 <text name="Photo:">
50 Foto: 56 Foto:
51 </text> 57 </text>
52 <texture_picker label="" name="img" tool_tip="Clique para selecionar uma foto" /> 58 <texture_picker label="" name="img" tool_tip="Clique para selecionar uma foto"/>
53 <text name="Ratings:">
54 Avaliação
55 </text>
56 <text name="Groups:"> 59 <text name="Groups:">
57 Grupos: 60 Grupos:
58 </text> 61 </text>
@@ -65,57 +68,52 @@
65 <text name="Give item:"> 68 <text name="Give item:">
66 Doar item: 69 Doar item:
67 </text> 70 </text>
68 <text name="Give inventory" 71 <text name="Give inventory" tool_tip="Arraste e solte o item aqui para da-lo a pessoa desejada.">
69 tool_tip="Arraste e solte o item aqui para da-lo a pessoa desejada.">
70 Arraste e solte o item aqui. 72 Arraste e solte o item aqui.
71 </text> 73 </text>
72 <check_box label="Publicar na Web." name="allow_publish" 74 <check_box label="Mostrar na busca" name="allow_publish" tool_tip="Publicar informações de perfil adicionais, como descrição e imagem, na Busca."/>
73 tool_tip="Publica as informações do seu perfil na web." /> 75 <button label="?" label_selected="?" name="?"/>
74 <button label="?" label_selected="?" name="?" /> 76 <button label="Encontrar no Mapa" label_selected="Encontrar no Mapa" name="Find on Map"/>
75 <button label="Mostrar no mapa" label_selected="Mostrar no mapa" name="Show on Map" /> 77 <button label="Oferecer teleporte..." label_selected="Oferecer teleporte..." name="Offer Teleport..."/>
76 <button label="Oferecer teleporte..." label_selected="Oferecer teleporte..." 78 <button label="Adicionar amigo..." label_selected="Adicionar amigo..." name="Add Friend..."/>
77 name="Offer Teleport..." /> 79 <button label="Pagar..." label_selected="Pagar..." name="Pay..."/>
78 <button label="Adicionar amigo..." label_selected="Adicionar amigo..." 80 <button label="Mensagem Instantânea..." label_selected="Mensagem Instantânea..." name="Instant Message..." tool_tip="Mensagem Instantânea (MI)"/>
79 name="Add Friend..." /> 81 <button label="Silenciar" label_selected="Silenciar" name="Mute"/>
80 <button label="Pagar..." label_selected="Pagar..." name="Pay..." />
81 <button label="Mensagem Instantânea..." label_selected="Mensagem Instantânea..."
82 name="Instant Message..." />
83 <button label="Silenciar" label_selected="Silenciar" name="Mute" />
84 </panel> 82 </panel>
85 <panel label="Web" name="WebProfile"> 83 <panel label="Web" name="WebProfile">
86 <button label="Inicío" label_selected="Home" name="home" /> 84 <flyout_button label="Carregar" label_selected="Carregar" name="load" tool_tip="Carrega o seu perfil no seu navegador.">
87 <button label="Carregar" label_selected="Carregar" name="load" 85 <flyout_button_item name="open_item">
88 tool_tip="Carrega o seu perfil no seu navegador." /> 86 No navegador externo
89 <button label="Abrir..." label_selected="Abrir..." name="open" 87 </flyout_button_item>
90 tool_tip="Abre essa página no seu navegador externo." /> 88 <flyout_button_item name="home_item">
91 <button label="?" label_selected="?" name="web_profile_help" /> 89 URL de Casa
92 <check_box label="Carregar Perfis da Web" name="auto_load" 90 </flyout_button_item>
93 tool_tip="Carrega automaticamente os perfis da Web sem perguntar antes." /> 91 </flyout_button>
94 <text name="status_text"> 92 <button label="?" label_selected="?" name="web_profile_help"/>
95 Feito. 93 <check_box label="Carregar Perfis da Web" name="auto_load" tool_tip="Carrega automaticamente os perfis da Web sem perguntar antes."/>
96 </text> 94 <text name="status_text"/>
97 </panel> 95 </panel>
98 <panel label="Interesses" name="Interests"> 96 <panel label="Interesses" name="Interests">
99 <text name="I Want To:"> 97 <text name="I Want To:">
100 Eu quero: 98 Eu quero:
101 </text> 99 </text>
102 <check_box label="Construção." name="chk0" /> 100 <check_box label="Construção." name="chk0"/>
103 <check_box label="Explorar" name="chk1" /> 101 <check_box label="Explorar" name="chk1"/>
104 <check_box label="Encontros." name="chk2" /> 102 <check_box label="Encontros." name="chk2"/>
105 <check_box label="Ser contratado" name="chk6" /> 103 <check_box label="Ser contratado" name="chk6"/>
106 <check_box label="Grupo" name="chk3" /> 104 <check_box label="Grupo" name="chk3"/>
107 <check_box label="Comprar" name="chk4" /> 105 <check_box label="Comprar" name="chk4"/>
108 <check_box label="Vender" name="chk5" /> 106 <check_box label="Vender" name="chk5"/>
109 <check_box label="Contratar" name="chk7" /> 107 <check_box label="Contratar" name="chk7"/>
110 <text name="Skills:"> 108 <text name="Skills:">
111 Habilidades: 109 Habilidades:
112 </text> 110 </text>
113 <check_box label="Texturas" name="schk0" /> 111 <check_box label="Texturas" name="schk0"/>
114 <check_box label="Arquitetura:" name="schk1" /> 112 <check_box label="Arquitetura:" name="schk1"/>
115 <check_box label="Planejador de Eventos" name="schk2" /> 113 <check_box label="Planejador de Eventos" name="schk2"/>
116 <check_box label="Modelador" name="schk3" /> 114 <check_box label="Modelador" name="schk3"/>
117 <check_box label="Programador" name="schk4" /> 115 <check_box label="Programador" name="schk4"/>
118 <check_box label="Personagens customizados." name="schk5" /> 116 <check_box label="Personagens customizados." name="schk5"/>
119 <text name="Languages:"> 117 <text name="Languages:">
120 Línguas: 118 Línguas:
121 </text> 119 </text>
@@ -124,8 +122,8 @@
124 <text name="Tell everyone about your favorite places in Second Life."> 122 <text name="Tell everyone about your favorite places in Second Life.">
125 Diga a todos os seus lugares favoritos em Second Life. 123 Diga a todos os seus lugares favoritos em Second Life.
126 </text> 124 </text>
127 <button label="Novo..." label_selected="Novo..." name="New..." /> 125 <button label="Novo..." label_selected="Novo..." name="New..."/>
128 <button label="Apagar..." label_selected="Apagar..." name="Delete..." /> 126 <button label="Apagar..." label_selected="Apagar..." name="Delete..."/>
129 <text name="loading_text"> 127 <text name="loading_text">
130 Carregando... 128 Carregando...
131 </text> 129 </text>
@@ -134,8 +132,8 @@
134 <text name="Place an ad in Second Life&apos;s classified listings."> 132 <text name="Place an ad in Second Life&apos;s classified listings.">
135 Adicione no Second Life sua lista de classificados. 133 Adicione no Second Life sua lista de classificados.
136 </text> 134 </text>
137 <button label="Novo..." label_selected="Novo..." name="New..." /> 135 <button label="Novo..." label_selected="Novo..." name="New..."/>
138 <button label="Apagar..." label_selected="Apagar..." name="Delete..." /> 136 <button label="Apagar..." label_selected="Apagar..." name="Delete..."/>
139 <text name="loading_text"> 137 <text name="loading_text">
140 Carregando... 138 Carregando...
141 </text> 139 </text>
@@ -144,7 +142,7 @@
144 <text name="Photo:"> 142 <text name="Photo:">
145 Foto: 143 Foto:
146 </text> 144 </text>
147 <texture_picker label="" name="img" tool_tip="Clique para selecionar uma foto" /> 145 <texture_picker label="" name="img" tool_tip="Clique para selecionar uma foto"/>
148 <text name="Info:"> 146 <text name="Info:">
149 Sobre: 147 Sobre:
150 </text> 148 </text>
@@ -153,36 +151,39 @@
153 </text> 151 </text>
154 </panel> 152 </panel>
155 <panel label="Minhas anotações" name="My Notes"> 153 <panel label="Minhas anotações" name="My Notes">
154 <string name="Loading">
155 Carregando...
156 </string>
156 <text name="label"> 157 <text name="label">
157 Use esse espaço para falar sobre essa pessoa. Coloque aqui o que desejar, projetos, lembretes e etc. Somente você poderá ver essa anotação. 158 Use esse espaço para falar sobre essa pessoa. Coloque aqui o que desejar, projetos, lembretes e etc. Somente você poderá ver essa anotação.
158 </text> 159 </text>
159 </panel> 160 </panel>
160 </tab_container> 161 </tab_container>
161 <button label="OK" label_selected="OK" name="OK" /> 162 <button label="OK" label_selected="OK" name="OK"/>
162 <button label="Cancelar" label_selected="Cancelar" name="Cancel" /> 163 <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
163 <button label="Retirar" label_selected="Retirar" name="Kick" /> 164 <button label="Retirar" label_selected="Retirar" name="Kick"/>
164 <button label="Paralizar" label_selected="Paralizar" name="Freeze" 165 <button label="Paralizar" label_selected="Paralizar" name="Freeze" tool_tip="Paraliza o movimento e conversa desse residente."/>
165 tool_tip="Paraliza o movimento e conversa desse residente." /> 166 <button label="Unfreeze" label_selected="Unfreeze" name="Unfreeze" tool_tip="Libera o residente"/>
166 <button label="Unfreeze" label_selected="Unfreeze" name="Unfreeze" 167 <button label="CSR" label_selected="CSR" name="csr_btn" tool_tip="Abre a ferramenta de cliente para esse residente."/>
167 tool_tip="Libera o residente" /> 168 <string name="ShowOnMapNonFriend">
168 <button label="CSR" label_selected="CSR" name="csr_btn"
169 tool_tip="Abre a ferramenta de cliente para esse residente." />
170 <text name="ShowOnMapNonFriend">
171 Mostra a localização no mapa. Desativado porque ainda não é amigo desse residente. 169 Mostra a localização no mapa. Desativado porque ainda não é amigo desse residente.
172 </text> 170 </string>
173 <text name="ShowOnMapFriendOffline"> 171 <string name="ShowOnMapFriendOffline">
174 Mostra a localização no mapa. Desativado pois ele não está online. 172 Mostrar a localidade no mapa. Desabilitar porque eles não estão conectados.
175 </text> 173 </string>
176 <text name="ShowOnMapFriendOnline"> 174 <string name="ShowOnMapFriendOnline">
177 Mostra localização no mapa. 175 Mostra localização no mapa.
178 </text> 176 </string>
179 <text name="TeleportGod"> 177 <string name="TeleportGod">
180 Força teleporte até a sua localização. 178 Força teleporte até a sua localização.
181 </text> 179 </string>
182 <text name="TeleportPrelude"> 180 <string name="TeleportPrelude">
183 Oferece teleporte para a sua lozalização. Desativado até que você saia da ilha da Orientação. 181 Oferece teleporte para a sua lozalização. Desativado até que você saia da ilha da Orientação.
184 </text> 182 </string>
185 <text name="TeleportNormal"> 183 <string name="TeleportNormal">
186 Oferece teleporte para a sua localização. 184 Oferece teleporte para a sua localização.
187 </text> 185 </string>
186 <string name="Loading">
187 Carregando...
188 </string>
188</panel> 189</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_avatar_classified.xml b/linden/indra/newview/skins/default/xui/pt/panel_avatar_classified.xml
index 4d11567..0ee81da 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_avatar_classified.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_avatar_classified.xml
@@ -1,25 +1,37 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="Classified" title="Classificados"> 2<panel name="Classified" title="Classificados">
3 <line_editor name="given_name_editor" 3 <line_editor name="given_name_editor" tool_tip="O Nome precisa começar com uma letra ou número, não pontuação."/>
4 tool_tip="O Nome precisa começar com uma letra ou número, não pontuação." /> 4 <line_editor name="location_editor" tool_tip="Defina a posição para este classificado para sua posição atual."/>
5 <line_editor name="location_editor" 5 <button label="Definir Posição" name="set_location_btn"/>
6 tool_tip="Defina a posição para este classificado para sua posição atual." /> 6 <button label="Teleporte" name="classified_teleport_btn"/>
7 <button label="Definir Posição" name="set_location_btn" /> 7 <button label="Mapa" name="classified_map_btn"/>
8 <button label="Teleporte" name="classified_teleport_btn" /> 8 <combo_box label="" name="classified_category_combo"/>
9 <button label="Mapa" name="classified_map_btn" /> 9 <combo_box label="" name="classified_mature_check">
10 <combo_box label="" name="classified_category_combo" /> 10 <combo_item name="select_mature">
11 <check_box label="Adulto" name="classified_mature_check" /> 11 - Selecione Maduro -
12 <text name="classified_info_text" 12 </combo_item>
13 tool_tip="Quando mais você escolhe pagar pelo seu anúncio, melhor será sua visualizaçã na lista."> 13 <combo_item name="mature">
14 Conteúdo Maduro
15 </combo_item>
16 <combo_item name="not_mature">
17 Conteúdo Não Maduro
18 </combo_item>
19 </combo_box>
20 <text name="classified_info_text" tool_tip="Quando mais você escolhe pagar pelo seu anúncio, melhor será sua visualizaçã na lista.">
14 Lugar do Anúncio: Ainda não publicado 21 Lugar do Anúncio: Ainda não publicado
15 </text> 22 </text>
16 <text name="click_through_text" 23 <text name="click_through_text" tool_tip="Número total de cliques em cada botão desde que este classificado foi posicionado.">
17 tool_tip="Número total de cliques em cada botão desde que este classificado foi posicionado.">
18 Cliques: 24 Cliques:
19 </text> 25 </text>
20 <button label="Publicar..." name="classified_update_btn" /> 26 <button label="Publicar..." name="classified_update_btn"/>
21 <check_box label="Auto-Renovar a cada Semana" name="auto_renew_check" /> 27 <check_box label="Auto-Renovar a cada Semana" name="auto_renew_check"/>
22 <text name="ad_placed_paid"> 28 <string name="ad_placed_paid">
23 Anúncio publicado em: [DATE], Pago L$[AMT] para listar. 29 Anúncio publicado em: [DATE], Pago L$[AMT] para listar.
24 </text> 30 </string>
31 <string name="update_txt">
32 Atualizar
33 </string>
34 <string name="publish_txt">
35 Publicar…
36 </string>
25</panel> 37</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_chat_bar.xml b/linden/indra/newview/skins/default/xui/pt/panel_chat_bar.xml
index d086cfc..7522e48 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_chat_bar.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_chat_bar.xml
@@ -1,14 +1,18 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="chat_bar"> 2<panel name="chat_bar">
3 <button label="Histórico" label_selected="Histórico" name="History" 3 <button label="Conversa local" label_selected="Histórico" name="History" tool_tip="Clique aqui para ver o que foi dito"/>
4 tool_tip="Clique aqui para ver o que foi dito" /> 4 <line_editor label="Clique aqui para iniciar o chat" name="Chat Editor" tool_tip="Pressione Enter para dizer"/>
5 <line_editor label="Clique aqui para iniciar o chat" name="Chat Editor" 5 <flyout_button label="Falar" label_selected="Dizer" name="Say" tool_tip="Enter">
6 tool_tip="Pressione Enter para dizer" /> 6 <flyout_button_item name="shout_item">
7 <button label="Dizer" label_selected="Dizer" name="Say" tool_tip="Enter" /> 7 Gritar
8 <button label="Gritar" label_selected="Gritar" name="Shout" tool_tip="Ctrl-Enter" /> 8 </flyout_button_item>
9 <combo_box label="Gestos" name="Gesture"> 9 <flyout_button_item name="say_item">
10 <combo_item name="Gestures"> 10 Falar
11 Gestos 11 </flyout_button_item>
12 </combo_item> 12 <flyout_button_item name="whisper_item">
13 </combo_box> 13 Sussurrar
14 </flyout_button_item>
15 </flyout_button>
16 <combo_box label="Gestos" name="Gesture"/>
17 <string name="gesture_label">Gestos</string>
14</panel> 18</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_classified.xml b/linden/indra/newview/skins/default/xui/pt/panel_classified.xml
index 5b5f22b..44c2159 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_classified.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_classified.xml
@@ -1,13 +1,31 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="Classified" title="Classificados"> 2<panel name="Classified" title="Classificados">
3 <line_editor name="given_name_editor" 3 <line_editor name="given_name_editor" tool_tip="O nome deve começar com uma letra ou um número, não pontuação."/>
4 tool_tip="O nome deve começar com uma letra ou um número, não pontuação." /> 4 <line_editor name="location_editor" tool_tip="Ajustar a posição para sua localização."/>
5 <line_editor name="location_editor" tool_tip="Ajustar a posição para sua localização." /> 5 <button label="Ajuste" name="set_location_btn"/>
6 <button label="Ajuste" name="set_location_btn" /> 6 <button label="Tele-transporte" name="classified_teleport_btn"/>
7 <button label="Tele-transporte" name="classified_teleport_btn" /> 7 <button label="Mostrar no mapa" name="classified_map_btn"/>
8 <button label="Mostrar no mapa" name="classified_map_btn" /> 8 <button label="Perfil" name="classified_profile_btn"/>
9 <button label="Perfil" name="classified_profile_btn" /> 9 <combo_box label="Maduro" name="classified_mature_check">
10 <check_box label="Maduro" name="classified_mature_check" /> 10 <combo_item name="select_mature">
11 <combo_box label="" name="classified_category_combo" /> 11 - Selecionar Adulto -
12 <button label="Update" name="classified_update_btn" /> 12 </combo_item>
13 <combo_item name="mature">
14 Conteúdo Adulto
15 </combo_item>
16 <combo_item name="not_mature">
17 Conteúdo Não Adulto
18 </combo_item>
19 </combo_box>
20 <combo_box label="" name="classified_category_combo"/>
21 <button label="Update" name="classified_update_btn"/>
22 <string name="ad_placed_paid">
23 Anúncio colocado: [DATE], Pagos L$[AMT] para constar na lista.
24 </string>
25 <string name="update_txt">
26 Atualizar
27 </string>
28 <string name="publish_txt">
29 Publicar...
30 </string>
13</panel> 31</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_event.xml b/linden/indra/newview/skins/default/xui/pt/panel_event.xml
index 05497ef..600cd04 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_event.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_event.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="Event" title="Evento"> 2<panel name="Event" title="Evento">
3 <text name="event_name_label"> 3 <text name="event_name_label">
4 Nome: 4 Nome:
@@ -15,8 +15,11 @@
15 <text name="event_mature_label"> 15 <text name="event_mature_label">
16 Ãndice: 16 Ãndice:
17 </text> 17 </text>
18 <text name="event_mature"> 18 <text name="event_mature_yes">
19 (desconhecido) 19 sim
20 </text>
21 <text name="event_mature_no">
22 Não
20 </text> 23 </text>
21 <text name="event_date_label"> 24 <text name="event_date_label">
22 Data: 25 Data:
@@ -51,8 +54,17 @@
51 <text name="event_desc_label"> 54 <text name="event_desc_label">
52 Descrição: 55 Descrição:
53 </text> 56 </text>
54 <button label="Tele-transportar" name="teleport_btn" /> 57 <button label="Tele-transportar" name="teleport_btn"/>
55 <button label="Mostrar no mapa" name="map_btn" /> 58 <button label="Mostrar no mapa" name="map_btn"/>
56 <button label="Notificar" name="notify_btn" /> 59 <button label="Notificar" name="notify_btn"/>
57 <button label="Criar Evento..." name="create_event_btn" /> 60 <button label="Criar Evento..." name="create_event_btn"/>
61 <string name="none">
62 nenhum
63 </string>
64 <string name="notify">
65 Avisar
66 </string>
67 <string name="dont_notify">
68 Não avisar
69 </string>
58</panel> 70</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_friends.xml b/linden/indra/newview/skins/default/xui/pt/panel_friends.xml
new file mode 100644
index 0000000..9a69ec1
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/panel_friends.xml
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="friends">
3 <string name="Multiple">
4 Multiplos amigos...
5 </string>
6 <scroll_list name="friend_list" tool_tip="Hold shift or control while clicking to select multiple friends">
7 <column name="icon_online_status" tool_tip="Status Online"/>
8 <column label="Name" name="friend_name" tool_tip="Nome"/>
9 <column name="icon_visible_online" tool_tip="Amigo pod ever quando você está online"/>
10 <column name="icon_visible_map" tool_tip="Amigo pode localizá-lo no mapa"/>
11 <column name="icon_edit_mine" tool_tip="Amigo pode editar, apagar ou pegar os seus objetos"/>
12 <column name="icon_edit_theirs" tool_tip="Você pode editar os objetos deste amigo"/>
13 </scroll_list>
14</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_group_general.xml b/linden/indra/newview/skins/default/xui/pt/panel_group_general.xml
index d833394..d1a759b 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_group_general.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_group_general.xml
@@ -1,12 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Geral" name="general_tab"> 2<panel label="Geral" name="general_tab">
3 <text name="help_text"> 3 <string name="help_text">
4 A aba diversos contém informações gerais sobre esse grupo, a lista dos donos e seus membros, preferências gerais do grupo e opções dos membros. Passe o seu mouse por cima para ver mais informações. Ajuda. 4 A aba diversos contém informações gerais sobre esse grupo, a lista dos donos e seus membros, preferências gerais do grupo e opções dos membros. Passe o seu mouse por cima para ver mais informações. Ajuda.
5 </text> 5 </string>
6 <button label="?" label_selected="?" name="help_button" /> 6 <string name="group_info_unchanged">
7 <line_editor name="group_name_editor"> 7 Informações gerais do grupo foram modificadas
8 Digite o nome do seu novo grupo aqui 8 </string>
9 </line_editor> 9 <button label="?" label_selected="?" name="help_button"/>
10 <line_editor label="Digite o nome do seu novo grupo aqui" name="group_name_editor"/>
10 <text name="group_name"> 11 <text name="group_name">
11 Digite o nome do seu novo grupo aqui 12 Digite o nome do seu novo grupo aqui
12 </text> 13 </text>
@@ -19,54 +20,57 @@
19 <text name="group_charter_label"> 20 <text name="group_charter_label">
20 Patente do Grupo 21 Patente do Grupo
21 </text> 22 </text>
22 <texture_picker label="Group Insignia" name="insignia" 23 <texture_picker label="Group Insignia" name="insignia" tool_tip="Clique para escolher uma imagem"/>
23 tool_tip="Clique para escolher uma imagem" />
24 <text_editor name="charter"> 24 <text_editor name="charter">
25 Patente do grupo 25 Patente do grupo
26 </text_editor> 26 </text_editor>
27 <button label="Juntar (L$0)" label_selected="Juntar (L$0)" name="join_button" /> 27 <button label="Juntar (L$0)" label_selected="Juntar (L$0)" name="join_button"/>
28 <button label="Vista detalhada" label_selected="Vista detalhada" name="info_button" /> 28 <button label="Vista detalhada" label_selected="Vista detalhada" name="info_button"/>
29 <text> 29 <text name="text_owners_and_visible_members">
30 Donos &amp; Membros visíveis 30 Proprietários &amp; Membros visíveis
31 </text> 31 </text>
32 <text> 32 <text name="text_owners_are_shown_in_bold">
33 Os proprietários são mostrados em realce 33 (Proprietários são mostrados em negrito )
34 </text> 34 </text>
35 <name_list name="visible_members"> 35 <name_list name="visible_members">
36 <column label="Nome do membro" name="name" /> 36 <column label="Nome do membro" name="name"/>
37 <column label="Título" name="title" /> 37 <column label="Título" name="title"/>
38 <column label="Último login" name="online" /> 38 <column label="Último login" name="online"/>
39 </name_list> 39 </name_list>
40 <text name="incomplete_member_data_str"> 40 <text name="text_group_preferences">
41 Recuperando dados do membro 41 Preferências de Grupos
42 </text>
43 <text name="confirm_group_create_str">
44 Criar este grupo custará L$100. Você está certo que quer gastar L$100 para criar este grupo?
45 </text>
46 <text>
47 Preferências do grupo
48 </text> 42 </text>
49 <panel name="preferences_container"> 43 <panel name="preferences_container">
50 <check_box label="Mostrar na lista do grupo." name="show_in_group_list" 44 <check_box label="Mostre na busca" name="show_in_group_list" tool_tip="Deixe as pessoas verem este grupo nos resultados de busca. "/>
51 tool_tip="Selecione onde esse grupo será exibido. janela de procura e no perfil dos membros." /> 45 <check_box label="Aberta inscrição" name="open_enrollement" tool_tip="Esse grupo permite que novos membros entrem sem serem convidados"/>
52 <check_box label="Publicar na Web." name="publish_on_web" 46 <check_box label="Taxa de inscrição: L$" name="check_enrollment_fee" tool_tip="É necessário uma taxa de registro."/>
53 tool_tip="Selecione onde a informações desse grupo irá ser publicada na Web." /> 47 <spinner name="spin_enrollment_fee" tool_tip="Os novos membros terão de pagar a taxa de registro para fazerem parte do grupo."/>
54 <check_box label="Abrir o registro" name="open_enrollement" 48 <combo_box name="group_mature_check" tool_tip="Define se a informação do seu grupo é considerada adulta.">
55 tool_tip="Esse grupo permite que novos membros entrem sem serem convidados" /> 49 <combo_item name="select_mature">
56 <check_box label="Tx. de adesão: L$" name="check_enrollment_fee" 50 - Selecionar conteúdo adulto -
57 tool_tip="É necessário uma taxa de registro." /> 51 </combo_item>
58 <spinner name="spin_enrollment_fee" 52 <combo_item name="mature">
59 tool_tip="Os novos membros terão de pagar a taxa de registro para fazerem parte do grupo." /> 53 Conteúdo adulto
60 <check_box label="Adulto" name="mature" 54 </combo_item>
61 tool_tip="Selecione se o grupo possuir conteúdo adulto." /> 55 <combo_item name="not_mature">
56 Conteúdo não adulto
57 </combo_item>
58 </combo_box>
62 <panel name="title_container"> 59 <panel name="title_container">
63 <text name="active_title_label"> 60 <text name="active_title_label">
64 Meu título ativo 61 Meu título ativo
65 </text> 62 </text>
66 <combo_box name="active_title" 63 <combo_box name="active_title" tool_tip="Mude o título que aparece em seu avatar quando o grupo estiver ativo."/>
67 tool_tip="Mude o título que aparece em seu avatar quando o grupo estiver ativo." />
68 </panel> 64 </panel>
69 <check_box label="Receba notícias do grupo." name="receive_notices" 65 <check_box label="Receber avisos do grupo" name="receive_notices" tool_tip="Você quer receber notícias desse grupo"/>
70 tool_tip="Você quer receber notícias desse grupo" /> 66 <check_box label="Listar grupo no meu perfil" name="list_groups_in_profile" tool_tip="Define se você deseja listar este grupo no seu Perfil"/>
71 </panel> 67 </panel>
68 <string name="incomplete_member_data_str">
69 Recuperando dados do membro
70 </string>
71 <string name="confirm_group_create_str">
72 Criar este grupo irá custar L$100.
73Você está realmente, realmente, REALMENTE seguro que deseja gastar L$100 para criar este grupo?
74Esteja consciente de que se ninguém mais se juntar este grupo dentro de 48 horas, este será dissolvido e o nome não estará disponível para uso futuro.
75 </string>
72</panel> 76</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_group_invite.xml b/linden/indra/newview/skins/default/xui/pt/panel_group_invite.xml
index a9dea33..ec8ea44 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_group_invite.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_group_invite.xml
@@ -1,18 +1,21 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Convidar um membro" name="invite_panel"> 2<panel label="Convidar um membro" name="invite_panel">
3 <text name="help_text"> 3 <text name="help_text">
4 Você pode seleciolar vários residentes para convidar para o seu grupo. Clique &apos;Selecionador de pessoas&apos; para iniciar. 4 Você pode selecionar múltiplos residentes para convidar ao seu grupo. Clique &apos;Abra o Selecionador de Pessoas&apos; para iniciar.
5 </text> 5 </text>
6 <button label="Abrir selecionador de pessoas." name="add_button" tool_tip="" /> 6 <button label="Abrir selecionador de pessoas." name="add_button" tool_tip=""/>
7 <name_list name="invitee_list" 7 <name_list name="invitee_list" tool_tip="Mantenha apertada a tecla Control e clique nos nomes dos residentes para uma seleção múltipla."/>
8 tool_tip="Segure a tecla Ctrl e clique no nome dos residentes para selecionar multiplos personagens." /> 8 <button label="Remove Selected from List" name="remove_button" tool_tip="Remove os residentes selecionados acima da lista de convite."/>
9 <button label="Remove Selected from List" name="remove_button"
10 tool_tip="Remove os residentes selecionados acima da lista de convite." />
11 <text name="role_text"> 9 <text name="role_text">
12 Selecione a função a ser dada a eles: 10 Escolha que Função atribuir a eles:
13 </text> 11 </text>
14 <combo_box name="role_name" 12 <combo_box name="role_name" tool_tip="Escolha a partir da lista de Funções autorizadas a você para inclusão de membros."/>
15 tool_tip="Selecione da lista de Funções os que você está permitido a dar aos membros." /> 13 <button label="Mandar convite." name="ok_button"/>
16 <button label="Mandar convite." name="ok_button" /> 14 <button label="Cancelar" name="cancel_button"/>
17 <button label="Cancelar" name="cancel_button" /> 15 <string name="confirm_invite_owner_str">
16 Você tem certeza de que deseja convidar novo(s) proprietário(s)? Esta ação é permanente!
17 </string>
18 <string name="loading">
19 (carregando...)
20 </string>
18</panel> 21</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_group_land_money.xml b/linden/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
index 8d1fe30..d06f447 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
@@ -1,51 +1,54 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Terra L$" name="land_money_tab"> 2<panel label="Terra L$" name="land_money_tab">
3 <text name="help_text"> 3 <string name="help_text">
4 Lotes pertencentes ao grupo são listadas com detalhes de contribuição. Um aviso aparece até que o total de Terras em Uso seja menor ou igual ao Total de Contribuições. As abas de Planejamento, Detalhes e Vendas fornecem informações sobre as finanças do grupo. 4 Lotes pertencentes ao grupo são listadas com detalhes de contribuição. Um aviso aparece até que o total de Terras em Uso seja menor ou igual ao Total de Contribuições. As abas de Detalhes e Vendas fornecem informações sobre as finanças do grupo.
5 </text> 5 </string>
6 <button label="?" name="help_button" /> 6 <button label="?" name="help_button"/>
7 <text name="cant_view_group_land_text"> 7 <string name="cant_view_group_land_text">
8 Você não tem permissão para ver as terras pertencentes ao grupo. 8 Você não tem permissão para ver as terras pertencentes ao grupo.
9 </text> 9 </string>
10 <text name="cant_view_group_accounting_text"> 10 <string name="cant_view_group_accounting_text">
11 Você não tem permissão para ver as informações sobre as contas do grupo. 11 Você não tem permissão para ver as informações sobre as contas do grupo.
12 </text> 12 </string>
13 <string name="loading_txt">
14 Carregando...
15 </string>
13 <text name="group_land_heading"> 16 <text name="group_land_heading">
14 Terra percentence ao grupo 17 Terra percentence ao grupo
15 </text> 18 </text>
16 <scroll_list name="group_parcel_list"> 19 <scroll_list name="group_parcel_list">
17 <column label="Nome do Lote" name="name" /> 20 <column label="Nome do Lote" name="name"/>
18 <column label="Região" name="location" /> 21 <column label="Região" name="location"/>
19 <column label="Ãrea" name="area" /> 22 <column label="Ãrea" name="area"/>
20 <column label="" name="hidden" /> 23 <column label="" name="hidden"/>
21 </scroll_list> 24 </scroll_list>
22 <button label="Mostrar no Mapa" label_selected="Mostrar no Mapa" name="map_button" /> 25 <button label="Mostrar no Mapa" label_selected="Mostrar no Mapa" name="map_button"/>
23 <text name="total_contributed_land_label"> 26 <text name="total_contributed_land_label">
24 Contribuição Total: 27 Contribuição Total:
25 </text> 28 </text>
26 <text name="total_contributed_land_value"> 29 <text name="total_contributed_land_value">
27 0 metros quadrados 30 [AREA] m2
28 </text> 31 </text>
29 <text name="total_land_in_use_label"> 32 <text name="total_land_in_use_label">
30 Total de Terra em Uso: 33 Total de Terra em Uso:
31 </text> 34 </text>
32 <text name="total_land_in_use_value"> 35 <text name="total_land_in_use_value">
33 0 metros quadrados 36 [AREA] m2
34 </text> 37 </text>
35 <text name="land_available_label"> 38 <text name="land_available_label">
36 Terra Disponível: 39 Terra Disponível:
37 </text> 40 </text>
38 <text name="land_available_value"> 41 <text name="land_available_value">
39 0 metros quadrados 42 [AREA] m2
40 </text> 43 </text>
41 <text name="your_contribution_label"> 44 <text name="your_contribution_label">
42 Sua Contribuição: 45 Sua Contribuição:
43 </text> 46 </text>
44 <text name="your_contribution_max_value_append"> 47 <string name="land_contrib_error">
45 metros quadrados 48 Não é possível definir sua contribuição para o terreno.
46 </text> 49 </string>
47 <text name="your_contribution_max_value"> 50 <text name="your_contribution_max_value">
48 (aguardado) 51 m2 ([AMOUNT] máxima)
49 </text> 52 </text>
50 <text name="group_over_limit_text"> 53 <text name="group_over_limit_text">
51 Membros do grupo precisam contribuir com mais créditos de Terra para garantir a terra em uso. 54 Membros do grupo precisam contribuir com mais créditos de Terra para garantir a terra em uso.
@@ -54,28 +57,19 @@
54 Grupo L$ 57 Grupo L$
55 </text> 58 </text>
56 <tab_container name="group_money_tab_container"> 59 <tab_container name="group_money_tab_container">
57 <panel label="Planejamento" name="group_money_planning_tab">
58 <text_editor name="group_money_planning_text">
59 Computando...
60 </text_editor>
61 </panel>
62 <panel label="Detalhes" name="group_money_details_tab"> 60 <panel label="Detalhes" name="group_money_details_tab">
63 <text_editor name="group_money_details_text"> 61 <text_editor name="group_money_details_text">
64 Computando... 62 Computando...
65 </text_editor> 63 </text_editor>
66 <button label="&lt; Cedo" label_selected="&lt; Cedo" name="earlier_details_button" 64 <button label="&lt; Cedo" label_selected="&lt; Cedo" name="earlier_details_button" tool_tip="Voltar no Tempo"/>
67 tool_tip="Voltar no Tempo" /> 65 <button label="Tarde &gt;" label_selected="Tarde &gt;" name="later_details_button" tool_tip="Adiantar o Tempo"/>
68 <button label="Tarde &gt;" label_selected="Tarde &gt;" name="later_details_button"
69 tool_tip="Adiantar o Tempo" />
70 </panel> 66 </panel>
71 <panel label="Vendas" name="group_money_sales_tab"> 67 <panel label="Vendas" name="group_money_sales_tab">
72 <text_editor name="group_money_sales_text"> 68 <text_editor name="group_money_sales_text">
73 Computando... 69 Computando...
74 </text_editor> 70 </text_editor>
75 <button label="&lt; Mais Cedo" label_selected="&lt; Mais Cedo" 71 <button label="&lt; Mais Cedo" label_selected="&lt; Mais Cedo" name="earlier_sales_button" tool_tip="Voltar no Tempo"/>
76 name="earlier_sales_button" tool_tip="Voltar no Tempo" /> 72 <button label="Mais Tarde" label_selected="Mais Tarde" name="later_sales_button" tool_tip="Adiantar o Tempo"/>
77 <button label="Mais Tarde" label_selected="Mais Tarde" name="later_sales_button"
78 tool_tip="Adiantar o Tempo" />
79 </panel> 73 </panel>
80 </tab_container> 74 </tab_container>
81</panel> 75</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_group_notices.xml b/linden/indra/newview/skins/default/xui/pt/panel_group_notices.xml
index 7ca536d..a7731ac 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_group_notices.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_group_notices.xml
@@ -11,7 +11,9 @@
11 Arquivo de notícias do grupo 11 Arquivo de notícias do grupo
12 </text> 12 </text>
13 <text name="lbl2"> 13 <text name="lbl2">
14 As notícias são mantidas por 14 dias. Clicar na notícia que você desejar ver. 14 As notícias são mantidas por 14 dias. Clique na notícia abaixo que você deseja ver.
15Clique no botão “Atualizar†para verificar se novas notícias foram recebidas.
16Listas de aviso estão limitadas a 200 por grupo, diariamente.
15 </text> 17 </text>
16 <scroll_list name="notice_list"> 18 <scroll_list name="notice_list">
17 <column label="" name="icon" /> 19 <column label="" name="icon" />
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_group_roles.xml b/linden/indra/newview/skins/default/xui/pt/panel_group_roles.xml
index 1cea79d..ed3efe0 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_group_roles.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_group_roles.xml
@@ -1,15 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Membros e Funções" name="roles_tab"> 2<panel label="Membros e Funções" name="roles_tab">
3 <text name="default_needs_apply_text"> 3 <string name="default_needs_apply_text">
4 Existem alterações 4 Existem alterações
5 </text> 5 </string>
6 <text name="want_apply_text"> 6 <string name="want_apply_text">
7 Você quer aplicar essas alterações? 7 Você quer aplicar essas alterações?
8 </text> 8 </string>
9 <text name="cant_delete_role"> 9 <button label="?" name="help_button"/>
10 Todos os proprietários possuem funções especiais que não podem ser apagadas.
11 </text>
12 <button label="?" name="help_button" />
13 <panel name="members_header"> 10 <panel name="members_header">
14 <text name="static"> 11 <text name="static">
15 Membros e Funções 12 Membros e Funções
@@ -46,43 +43,46 @@ Estes ajustes podem ser customizados para uma flexibilidade maior.
46 </panel> 43 </panel>
47 <tab_container name="roles_tab_container"> 44 <tab_container name="roles_tab_container">
48 <panel label="Membros" name="members_sub_tab" tool_tip="Membros"> 45 <panel label="Membros" name="members_sub_tab" tool_tip="Membros">
49 <button label="Pesquisar" name="search_button" /> 46 <button label="Pesquisar" name="search_button"/>
50 <button label="Mostrar todos" name="show_all_button" /> 47 <button label="Mostrar todos" name="show_all_button"/>
51 <name_list name="member_list"> 48 <name_list name="member_list">
52 <column label="Nome do membro" name="name" /> 49 <column label="Nome do membro" name="name"/>
53 <column label="Tarefa cedida." name="donated" /> 50 <column label="Tarefa cedida." name="donated"/>
54 <column label="Último login" name="online" /> 51 <column label="Último login" name="online"/>
55 </name_list> 52 </name_list>
56 <button label="Convidar nova pessoa" name="member_invite" /> 53 <button label="Convidar nova pessoa" name="member_invite"/>
57 <button label="Sair do Grupo" name="member_eject" /> 54 <button label="Sair do Grupo" name="member_eject"/>
58 <text name="help_text"> 55 <string name="help_text">
59 Você pode adicionar ou remover as funções atribuídas ou selecionar múltiplos membros pressionando o Ctrl e clicando em seus nomes. 56 Você pode adicionar ou remover os direitos designados aos membros.Selecione vários membros segurando a tecla Ctrl e clicando em seus nomes.
60 </text> 57 </string>
61 </panel> 58 </panel>
62 <panel label="Funções" name="roles_sub_tab"> 59 <panel label="Funções" name="roles_sub_tab">
63 <button label="Busca" name="search_button" /> 60 <button label="Busca" name="search_button"/>
64 <button label="Mostrar todos" name="show_all_button" /> 61 <button label="Mostrar todos" name="show_all_button"/>
65 <scroll_list name="role_list"> 62 <scroll_list name="role_list">
66 <column label="Nome da função" name="name" /> 63 <column label="Nome da função" name="name"/>
67 <column label="Título" name="title" /> 64 <column label="Título" name="title"/>
68 <column label="Membro" name="members" /> 65 <column label="Membro" name="members"/>
69 </scroll_list> 66 </scroll_list>
70 <button label="Criar nova função..." name="role_create" /> 67 <button label="Criar nova função..." name="role_create"/>
71 <button label="Apagar função" name="role_delete" /> 68 <button label="Apagar função" name="role_delete"/>
72 <text name="help_text"> 69 <string name="help_text">
73 Funções e habilidades permitidas para os membros da lista. Os membros poderão ter um ou mais funções. O grupo poderá ter 10 ou mais funções, Incluíndo as funções dos membros e do dono do grupo. 70 Funções e habilidades permitidas para os membros da lista. Os membros poderão ter um ou mais funções. O grupo poderá ter 10 ou mais funções, Incluíndo as funções dos membros e do dono do grupo.
74 </text> 71 </string>
72 <string name="cant_delete_role">
73 Os direitos de “Todos†e dos “Donos†são especiais e não podem ser apagados
74 </string>
75 </panel> 75 </panel>
76 <panel label="Habilidades" name="actions_sub_tab"> 76 <panel label="Habilidades" name="actions_sub_tab">
77 <button label="Busca" name="search_button" /> 77 <button label="Busca" name="search_button"/>
78 <button label="Mostrar todos" name="show_all_button" /> 78 <button label="Mostrar todos" name="show_all_button"/>
79 <scroll_list name="action_list" tool_tip="Selecionar habilidade e ver detalhes."> 79 <scroll_list name="action_list" tool_tip="Selecionar habilidade e ver detalhes.">
80 <column label="" name="icon" /> 80 <column label="" name="icon"/>
81 <column label="" name="action" /> 81 <column label="" name="action"/>
82 </scroll_list> 82 </scroll_list>
83 <text name="help_text"> 83 <string name="help_text">
84 Habilidades permite que os membros façam coisas especificas dentro do grupo.Há uma grande variedade de habilidades. 84 Habilidades permite que os membros façam coisas especificas dentro do grupo.Há uma grande variedade de habilidades.
85 </text> 85 </string>
86 </panel> 86 </panel>
87 </tab_container> 87 </tab_container>
88 <panel name="members_footer"> 88 <panel name="members_footer">
@@ -93,13 +93,12 @@ Estes ajustes podem ser customizados para uma flexibilidade maior.
93 Habilidades permitidas 93 Habilidades permitidas
94 </text> 94 </text>
95 <scroll_list name="member_assigned_roles"> 95 <scroll_list name="member_assigned_roles">
96 <column label="" name="checkbox" /> 96 <column label="" name="checkbox"/>
97 <column label="" name="role" /> 97 <column label="" name="role"/>
98 </scroll_list> 98 </scroll_list>
99 <scroll_list name="member_allowed_actions" 99 <scroll_list name="member_allowed_actions" tool_tip="Ver detalhes das habilidades permitidas">
100 tool_tip="Ver detalhes das habilidades permitidas"> 100 <column label="" name="icon"/>
101 <column label="" name="icon" /> 101 <column label="" name="action"/>
102 <column label="" name="action" />
103 </scroll_list> 102 </scroll_list>
104 </panel> 103 </panel>
105 <panel name="roles_footer"> 104 <panel name="roles_footer">
@@ -124,17 +123,14 @@ Estes ajustes podem ser customizados para uma flexibilidade maior.
124 <text name="static4"> 123 <text name="static4">
125 Membros atribuídos 124 Membros atribuídos
126 </text> 125 </text>
127 <text name="static5" 126 <text name="static5">
128 tool_tip="A list of Abilities the currently selected role can perform.">
129 Habilidades permitidas 127 Habilidades permitidas
130 </text> 128 </text>
131 <check_box label="Membros visivéis" name="role_visible_in_list" 129 <check_box label="Membros visivéis" name="role_visible_in_list" tool_tip="Selecione se os membros estarão visivéis na aba diversos para as pessoas de fora do grupo."/>
132 tool_tip="Selecione se os membros estarão visivéis na aba diversos para as pessoas de fora do grupo." /> 130 <scroll_list name="role_allowed_actions" tool_tip="Para ver detalhes de cada habiliadade permitida veja a aba correspondente.">
133 <scroll_list name="role_allowed_actions" 131 <column label="" name="icon"/>
134 tool_tip="Para ver detalhes de cada habiliadade permitida veja a aba correspondente."> 132 <column label="" name="checkbox"/>
135 <column label="" name="icon" /> 133 <column label="" name="action"/>
136 <column label="" name="checkbox" />
137 <column label="" name="action" />
138 </scroll_list> 134 </scroll_list>
139 </panel> 135 </panel>
140 <panel name="actions_footer"> 136 <panel name="actions_footer">
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_group_voting.xml b/linden/indra/newview/skins/default/xui/pt/panel_group_voting.xml
index c3d512a..31f6815 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_group_voting.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_group_voting.xml
@@ -1,51 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Propostas" name="voting_tab"> 2<panel label="Propostas" name="voting_tab">
3 <text name="help_text"> 3 <string name="help_text">
4 As propostas do grupo poderá mostrar para os outros como esse determinado grupo se sente sobre determinado assunto.Se vocÊ possuir poder de propriedade você poderá abrir novas propostas, votar em propostas abertas e visualizar propostas antigas. 4 As propostas do grupo poderá mostrar para os outros como esse determinado grupo se sente sobre determinado assunto.Se vocÊ possuir poder de propriedade você poderá abrir novas propostas, votar em propostas abertas e visualizar propostas antigas.
5 </text> 5 </string>
6 <button label="?" name="help_button" /> 6 <button label="?" name="help_button"/>
7 <text name="proposal_header"> 7 <text name="proposal_header">
8 Abrir propostas do grupo 8 Abrir propostas do grupo
9 </text> 9 </text>
10 <text name="proposals_header_view_txt">
11 Abrir propostas do grupo
12 </text>
13 <text name="proposals_header_create_txt">
14 Criar proposta
15 </text>
16 <text name="proposals_header_vote_txt">
17 Votar na proposta
18 </text>
19 <text name="empty_proposal_txt">
20 A proposta que você está tentando criar encontra-se vazia.
21 </text>
22 <text name="proposal_instructions"> 10 <text name="proposal_instructions">
23 Clique duas vezes sobre a proposta que desejar votar. 11 Clique duas vezes sobre a proposta que desejar votar.
24 </text> 12 </text>
25 <text name="proposal_lbl"> 13 <text name="proposal_lbl">
26 Proposta: 14 Descrição da Proposta
27 </text> 15 </text>
28 <button label="Criar proposta" label_selected="Criar proposta" name="btn_proposal" /> 16 <text name="proposal_voting_lbl">
29 <button label="Ver proposta" label_selected="Ver proposta" 17 Proposta Término da votação Votado?
30 name="btn_view_proposal_item" /> 18 </text>
31 <button label="Ver Lista" label_selected="Ver Lista" name="btn_view_proposal_list" /> 19 <button label="Criar proposta" label_selected="Criar proposta" name="btn_proposal"/>
20 <button label="Ver proposta" label_selected="Ver proposta" name="btn_view_proposal_item"/>
21 <button label="Ver Lista" label_selected="Ver Lista" name="btn_view_proposal_list"/>
32 <text name="quorum_lbl"> 22 <text name="quorum_lbl">
33 Quantidade: 23 Quantidade:
34 </text> 24 </text>
35 <spinner name="quorum" 25 <spinner name="quorum" tool_tip="# do número de votos necessário para eleger a proposta"/>
36 tool_tip="# do número de votos necessário para eleger a proposta" />
37 <text name="quorum_text"> 26 <text name="quorum_text">
38 x é o número de membros fora do grupo. 27 de [MEMBERS] membros precisam votar.
39 </text> 28 </text>
40 <text name="duration_lbl"> 29 <text name="duration_lbl">
41 Duração: 30 Duração:
42 </text> 31 </text>
43 <spinner name="duration" tool_tip="# de dias que a eleição irá durar." /> 32 <spinner name="duration" tool_tip="# de dias que a eleição irá durar."/>
44 <text name="duration_text"> 33 <text name="duration_text">
45 dias 34 dias
46 </text> 35 </text>
47 <radio_group name="majority" 36 <radio_group name="majority" tool_tip="A maioria de 2/3 dos votos é necessário para ganhar">
48 tool_tip="A maioria de 2/3 dos votos é necessário para ganhar">
49 Simples maioria 2/3 maioria unanime 37 Simples maioria 2/3 maioria unanime
50 </radio_group> 38 </radio_group>
51 <text name="start_lbl"> 39 <text name="start_lbl">
@@ -54,12 +42,11 @@
54 <text name="end_lbl"> 42 <text name="end_lbl">
55 Voto final: 43 Voto final:
56 </text> 44 </text>
57 <button label="Submeter a proposta" label_selected="Submeter a proposta" 45 <button label="Submeter a proposta" label_selected="Submeter a proposta" name="btn_submit"/>
58 name="btn_submit" /> 46 <button label="Cancelar" label_selected="Cancelar" name="btn_cancel"/>
59 <button label="Cancelar" label_selected="Cancelar" name="btn_cancel" /> 47 <button label="Sim" label_selected="Sim" name="btn_yes"/>
60 <button label="Sim" label_selected="Sim" name="btn_yes" /> 48 <button label="Não" label_selected="Não" name="btn_no"/>
61 <button label="Não" label_selected="Não" name="btn_no" /> 49 <button label="Abstencia" label_selected="Abstencia" name="btn_abstain"/>
62 <button label="Abstencia" label_selected="Abstencia" name="btn_abstain" />
63 <text name="txt"> 50 <text name="txt">
64 Histórico de votos do grupo 51 Histórico de votos do grupo
65 </text> 52 </text>
@@ -69,15 +56,49 @@
69 <text name="history_list_lbl"> 56 <text name="history_list_lbl">
70 Após o voto Voto finalizado 57 Após o voto Voto finalizado
71 </text> 58 </text>
72 <button label="Visualizar Item" label_selected="Visualizar Item" 59 <button label="Visualizar Item" label_selected="Visualizar Item" name="btn_view_history_item"/>
73 name="btn_view_history_item" />
74 <text name="vote_text_lbl"> 60 <text name="vote_text_lbl">
75 Resultado: 61 Resultado:
76 </text> 62 </text>
77 <button label="Visualizar lista" label_selected="Visualizar lista" 63 <button label="Visualizar lista" label_selected="Visualizar lista" name="btn_view_history_list"/>
78 name="btn_view_history_list" /> 64 <string name="proposals_header_view_txt">
79 # o número de votos necessário para eleger a proposta 65 Abrir propostas do grupo
80 66 </string>
81 67 <string name="proposals_header_view_inst">
82# é o número de dias da eleição. 68 Dê um duplo click na proposta a qual você gostaria de votar ou pressione Criar Proposto para criar uma nova proposta
69 </string>
70 <string name="proposals_header_create_txt">
71 Criar proposta
72 </string>
73 <string name="proposals_header_vote_txt">
74 Votar na proposta
75 </string>
76 <string name="proposals_header_vote_inst">
77 Pressione o botão Sim ou Não para votar na proposta,
78Ou escolha de abster nesta proposta.
79 </string>
80 <string name="proposals_header_voted_inst">
81 Você já votou: [VOTE]
82 </string>
83 <string name="empty_proposal_txt">
84 A proposta que você está tentando criar encontra-se vazia.
85 </string>
86 <string name="proposals_submit_yes_txt">
87 Submeter Sim à proposta...
88 </string>
89 <string name="proposals_submit_no_txt">
90 Submeter Não à proposta...
91 </string>
92 <string name="proposals_submit_abstain_txt">
93 Submetendo abster a Proposta...
94 </string>
95 <string name="proposals_submit_new_txt">
96 Submetendo nova proposta...
97 </string>
98 <string name="vote_recorded">
99 Seu voto foi recebido.
100 </string>
101 <string name="vote_previously_recorded">
102 Você já votou antes. Você só pode votar uma vez durante uma eleição
103 </string>
83</panel> 104</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_login.xml b/linden/indra/newview/skins/default/xui/pt/panel_login.xml
index 4665483..3442d68 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_login.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_login.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="panel_login"> 2<panel name="panel_login">
3 <text name="first_name_text"> 3 <text name="first_name_text">
4 Primeiro nome: 4 Primeiro nome:
@@ -23,15 +23,15 @@
23 &lt; Digite o nome da região; 23 &lt; Digite o nome da região;
24 </combo_item> 24 </combo_item>
25 </combo_box> 25 </combo_box>
26 <check_box label="Lembrar senha" name="remember_check" /> 26 <check_box label="Lembrar senha" name="remember_check"/>
27 <text name="full_screen_text"> 27 <button label="Entrar" label_selected="Entrar" name="connect_btn"/>
28 O visor indicará a tela cheia quando entrar. 28 <text name="create_new_account_text">
29 Registrar-se para uma conta
29 </text> 30 </text>
30 <button label="Preferências..." label_selected="Preferências..." 31 <text name="forgot_password_text">
31 name="preferences_btn" /> 32 Esqueceu seu nome de usuário e senha?
32 <button label="Conectar" label_selected="Conectar" name="connect_btn" /> 33 </text>
33 <button label="Sair" label_selected="Sair" name="quit_btn" /> 34 <text name="channel_text">
34 <text name="version_text"> 35 [CHANNEL] [VERSION]
35 1.23.4 (5)
36 </text> 36 </text>
37</panel> 37</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_media_controls.xml b/linden/indra/newview/skins/default/xui/pt/panel_media_controls.xml
new file mode 100644
index 0000000..65a6077
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/panel_media_controls.xml
@@ -0,0 +1,38 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="media_controls">
3 <icon label="" name="music_icon" tool_tip="Executar/pausar fluxo de música"/>
4 <button label="" name="music_play" tool_tip="Executar/pausar fluxo de música"/>
5 <button label="" name="music_pause" tool_tip="Pausar fluxo de música"/>
6 <button label="" name="music_stop" tool_tip="Parar o fluxo de música"/>
7 <icon label="" name="media_icon" tool_tip="Executar/pausar o fluxo de música"/>
8 <button label="" name="media_play" tool_tip="Executar/pausar o fluxo de música"/>
9 <button label="" name="media_pause" tool_tip="Pausar o fluxo de mídia"/>
10 <button label="" name="media_stop" tool_tip="Parar o fluxo de mídia"/>
11 <volume_slider name="volume_slider" tool_tip="Volume Mestre"/>
12 <button label="" name="mute_master" tool_tip="Emudecedor Mestre"/>
13 <button label="" name="expand" tool_tip="Ajustar níveis de volume individuais"/>
14 <string name="play_label">
15 Executar
16 </string>
17 <string name="stop_label">
18 Parar
19 </string>
20 <string name="pause_label">
21 Pausar
22 </string>
23 <string name="default_tooltip_label">
24 Nenhuma Mídia Especificada
25 </string>
26 <string name="media_hidden_label">
27 (URL escondida pelo dono do terreno)
28 </string>
29 <string name="media_icon_tooltip_web">
30 Esta localidade mostra conteúdo da World Wide Web. Clique no botão Play para mostrar conteúdo da web.
31 </string>
32 <string name="media_icon_tooltip_movie">
33 Esta localidade mostra conteúdo de Vídeo. Clique no botão Play para executar o vídeo.
34 </string>
35 <string name="media_play_tooltip">
36 Mostra conteúdo da Web nesta localidade.
37 </string>
38</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_media_remote_expanded.xml b/linden/indra/newview/skins/default/xui/pt/panel_media_remote_expanded.xml
new file mode 100644
index 0000000..ed34f2a
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/panel_media_remote_expanded.xml
@@ -0,0 +1,28 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="media_remote">
3 <panel label="Ãudio &amp; Vídeo" name="Volume Panel"/>
4 <string name="play_label">
5 Executar
6 </string>
7 <string name="stop_label">
8 Parar
9 </string>
10 <string name="pause_label">
11 Pausar
12 </string>
13 <string name="default_tooltip_label">
14 Nenhuma Mídia Especificada
15 </string>
16 <string name="media_hidden_label">
17 (URL escondida pelo dono do terreno)
18 </string>
19 <string name="media_icon_tooltip_web">
20 Esta localidade mostra conteúdo da World Wide Web. Clique no botão Executar para mostrar o conteúdo Web.
21 </string>
22 <string name="media_icon_tooltip_movie">
23 Esta localidade mostra conteúdo de Vídeo. Clique no botão Executar para executar o vídeo.
24 </string>
25 <string name="media_play_tooltip">
26 Mostra conteúdo Web nesta localidade.
27 </string>
28</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_overlaybar.xml b/linden/indra/newview/skins/default/xui/pt/panel_overlaybar.xml
index 223e88e..60f43cb 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_overlaybar.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_overlaybar.xml
@@ -1,20 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="overlay"> 2<panel name="overlay">
3 <layout_stack name="overlay_layout_panel"> 3 <layout_stack name="overlay_layout_panel">
4 <layout_panel name="main_panel"> 4 <layout_panel name="main_panel">
5 <layout_stack name="chatbar_and_buttons"> 5 <layout_stack name="chatbar_and_buttons">
6 <layout_panel name="state_buttons"> 6 <layout_panel name="state_buttons">
7 <button label="MI Recebida" label_selected="MI Recebida" name="IM Received" 7 <button label="MI recebida" label_selected="MI recebida" name="IM Received" tool_tip="Você tem uma mensagem instantânea pendente. Clique para mostrar as MIs."/>
8 tool_tip="Você tem uma mensagem instantânea pendente. Clique para visualizar." /> 8 <button label="Ajustar para Não Ocupado" label_selected="Ajustar para desocupado" name="Set Not Busy" tool_tip="Conversa e MI estão ocultas para você. Clique aqui para se colocar desocupado."/>
9 <button label="Ajustar como não ocupado" label_selected="Ajustar como não ocupado" 9 <button label="Olhar com mouse" label_selected="Olhar com mouse" name="Mouselook" tool_tip="Use o mouse para pilotar sua visão. Se você tiver uma arma, clicando, ela dispara."/>
10 name="Set Not Busy" 10 <button label="Levantar" label_selected="Levantar" name="Stand Up" tool_tip="Clique aqui para levantar."/>
11 tool_tip="O chat e o MI não aparecem. Clique aqui para solucionar." />
12 <button label="Liberar Teclas" label_selected="Liberar Teclas" name="Release Keys"
13 tool_tip="Foi feito um controle em suas teclas. Clique aqui para liberá-las." />
14 <button label="Mouselook" label_selected="Mouselook" name="Mouselook"
15 tool_tip="Use o mouse para aproximar sua visualização." />
16 <button label="Levantar" label_selected="Levantar" name="Stand Up"
17 tool_tip="Clique aqui para levantar" />
18 </layout_panel> 11 </layout_panel>
19 </layout_stack> 12 </layout_stack>
20 </layout_panel> 13 </layout_panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_place.xml b/linden/indra/newview/skins/default/xui/pt/panel_place.xml
index 7a5fd99..40ceca2 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_place.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_place.xml
@@ -1,6 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="Place" title="Lugar"> 2<panel name="Place" title="Lugar">
3 <button label="Teleportar" name="teleport_btn" /> 3 <text name="name_label">
4 <button label="Mostrar no mapa" name="map_btn" /> 4 Nome:
5 <button label="Ofertas..." name="auction_btn" /> 5 </text>
6 <text name="description_label">
7 Descrição:
8 </text>
9 <text name="information_label">
10 Informação:
11 </text>
12 <text name="location_label">
13 Localidade:
14 </text>
15 <button label="Teleportar" name="teleport_btn"/>
16 <button label="Mostrar no mapa" name="map_btn"/>
17 <button label="Ofertas..." name="auction_btn"/>
18 <string name="traffic_text">
19 Tráfego: [TRAFFIC]
20 </string>
21 <string name="area_text">
22 Ãrea: [AREA] m2.
23 </string>
24 <string name="forsale_text">
25 À venda por L$ [PRICE]
26 </string>
27 <string name="auction_text">
28 ID do leilão [ID].
29 </string>
30 <string name="server_update_text">
31 Informação do local indisponível sem a atualização do servidor.
32 </string>
33 <string name="server_error_text">
34 A informação sobre esta localidade está indisponível no momento, por favor tente novamente mais tarde.
35 </string>
36 <string name="server_forbidden_text">
37 Informações sobre esta localidade estão indisponíveis devido a restrições de acesso. Por favor, verifique suas permissões com o dono do terreno.
38 </string>
6</panel> 39</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_place_small.xml b/linden/indra/newview/skins/default/xui/pt/panel_place_small.xml
index eebdd74..217b322 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_place_small.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_place_small.xml
@@ -1,6 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="Place" title="Lugar"> 2<panel name="Place" title="Lugar">
3 <button label="Tele-transportar" name="teleport_btn" /> 3 <text name="name_label">
4 <button label="Mostrar no mapa" name="map_btn" /> 4 Nome:
5 <button label="Ofertas..." name="auction_btn" /> 5 </text>
6 <text name="description_label">
7 Descrição:
8 </text>
9 <text name="information_label">
10 Informações:
11 </text>
12 <text name="location_label">
13 Localidade:
14 </text>
15 <button label="Tele-transportar" name="teleport_btn"/>
16 <button label="Mostrar no mapa" name="map_btn"/>
17 <button label="Ofertas..." name="auction_btn"/>
18 <string name="traffic_text">
19 Tráfego: [TRAFFIC]
20 </string>
21 <string name="area_text">
22 Ãrea: [AREA] m2
23 </string>
24 <string name="forsale_text">
25 À venda por L$ [PRICE]
26 </string>
27 <string name="auction_text">
28 ID do Leilão [ID].
29 </string>
30 <string name="server_update_text">
31 Informação do local indisponível sem a atualização do servidor.
32 </string>
33 <string name="server_error_text">
34 Informações sobre esta localidade estão indisponíveis no momento, por favor tente novamente mais tarde.
35 </string>
36 <string name="server_forbidden_text">
37 Informações sobre esta localidade estão indisponíveis. Por favor, verifique suas permissões com o dono do terreno.
38 </string>
6</panel> 39</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_preferences_audio.xml b/linden/indra/newview/skins/default/xui/pt/panel_preferences_audio.xml
index 1ec9e30..8494e98 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_preferences_audio.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_preferences_audio.xml
@@ -1,53 +1,22 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Ãudio &amp; Vídeo" name="Media panel"> 2<panel label="Ãudio &amp; Vídeo" name="Media panel">
3 <text type="string" length="1" name="muting_text"> 3 <text length="1" name="muting_text" type="string">
4 Silenciar: 4 Volume:
5 </text> 5 </text>
6 <check_box label="Silenciar Ãudio" name="disable audio" /> 6 <text name="streaming_prefs_text">
7 <check_box label="Silenciar Ãudio Quando Minimizar Janela" name="mute_when_minimized" /> 7 Preferências de &#10;Streaming:
8 <text type="string" length="1" name="streaming_text"> 8 </text>
9 Streaming: 9 <text name="audio_prefs_text">
10 </text> 10 Preferências de Ãudio:
11 <check_box label="Executar Música em Streaming Quando Disponível" name="streaming_music" /> 11 </text>
12 <check_box label="Executar Vídeo em Streaming Quando Disponível" name="streaming_video" /> 12 <panel label="Volume" name="Volume Panel"/>
13 <text type="string" length="1" name="system_volume_text"> 13 <check_box label="Tocar música em streaming quando disponível (usa mais banda)" name="streaming_music"/>
14 Efeitos Sonoros: 14 <check_box label="Tocar corrente de Media quando disponível (usa mais banda)" name="streaming_video"/>
15 </text> 15 <check_box label="Tocar mídia automaticamente" name="auto_streaming_video"/>
16 <text type="string" length="1" name="wind_volume_text"> 16 <check_box label="Silenciar Ãudio quando minimizar janela" name="mute_when_minimized"/>
17 Volume do Vento: 17 <slider label="Efeito Doppler" name="Doppler Effect"/>
18 </text> 18 <slider label="Fator Distância" name="Distance Factor"/>
19 <text type="string" length="1" name="footsteps_volume_text"> 19 <slider label="Fator Rolloff" name="Rolloff Factor"/>
20 Volume dos Passos: 20 <spinner label="Alerta de L$" name="L$ Change Threshold"/>
21 </text> 21 <spinner label="Alerta de Saúde" name="Health Change Threshold"/>
22 <text type="string" length="1" name="ui_volume_text">
23 Volume de interface:
24 </text>
25 <spinner label="Alerta de L$" name="L$ Change Threshold" />
26 <spinner label="Alerta de Saúde" name="Health Change Threshold" />
27 <text type="string" length="1" name="doppler_effect_text">
28 Efeito Doppler:
29 </text>
30 <text type="string" length="1" name="distance_factor_text">
31 Fator Distância:
32 </text>
33 <text type="string" length="1" name="rolloff_factor_text">
34 Fator Perda:
35 </text>
36 <text type="string" length="1" name="default_upload_bitrate_text">
37 Bitrate para Upload:
38 </text>
39 <radio_group name="bitrate">
40 <radio_item type="string" length="1" name="32kbps">
41 32 kbps
42 </radio_item>
43 <radio_item type="string" length="1" name="64kbps">
44 64 kbps
45 </radio_item>
46 <radio_item type="string" length="1" name="96kbps">
47 96 kbps
48 </radio_item>
49 <radio_item type="string" length="1" name="128kbps">
50 128 kbps
51 </radio_item>
52 </radio_group>
53</panel> 22</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
index 48e82b6..2bb8a82 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
@@ -1,56 +1,58 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Chat" name="chat"> 2<panel label="Chat" name="chat">
3 <text type="string" length="1" name="text_box"> 3 <text length="1" name="text_box" type="string">
4 Tamanho da Fonte do Chat: 4 Tamanho da Fonte &#10;do Chat:
5 </text> 5 </text>
6 <radio_group name="chat font size"> 6 <radio_group name="chat_font_size">
7 <radio_item type="string" length="1" name="radio"> 7 <radio_item name="radio">
8 Pequeno 8 Pequeno
9 </radio_item> 9 </radio_item>
10 <radio_item type="string" length="1" name="radio2"> 10 <radio_item name="radio2">
11 Médio 11 Médio
12 </radio_item> 12 </radio_item>
13 <radio_item type="string" length="1" name="radio3"> 13 <radio_item name="radio3">
14 Grande 14 Grande
15 </radio_item> 15 </radio_item>
16 </radio_group> 16 </radio_group>
17 <text type="string" length="1" name="text_box2"> 17 <text length="1" name="text_box2" type="string">
18 Cor do Chat: 18 Cor do Chat:
19 </text> 19 </text>
20 <color_swatch label="Sistema" name="system" /> 20 <color_swatch label="Você" name="user"/>
21 <color_swatch label="Usuários" name="users" /> 21 <color_swatch label="Outros" name="agent"/>
22 <color_swatch label="Objetos" name="objects" /> 22 <color_swatch label="MI" name="im"/>
23 <color_swatch label="Bubble" name="background" /> 23 <color_swatch label="Sistema" name="system"/>
24 <color_swatch label="URLs" name="links" /> 24 <color_swatch label="Erros" name="script_error"/>
25 <text type="string" length="1" name="text_box3"> 25 <color_swatch label="Objetos" name="objects"/>
26 <color_swatch label="Dono" name="owner"/>
27 <color_swatch label="Bubble" name="background"/>
28 <color_swatch label="URLs" name="links"/>
29 <text length="1" name="text_box8" type="string">
30 Erros de Script:
31 </text>
32 <check_box label="Mostrar Erros de Script e avisos como chat comum" name="script_errors_as_chat"/>
33 <text length="1" name="text_box3" type="string">
26 Console do Chat: 34 Console do Chat:
27 </text> 35 </text>
28 <spinner label="Ocultar Chat depois" name="fade_chat_time" /> 36 <spinner label="Ocultar Chat depois" name="fade_chat_time" label_width="112" width="162"/>
29 <text type="string" length="1" name="text_box4"> 37 <text length="1" name="text_box4" type="string" left="310">
30 (segundos) 38 (segundos)
31 </text> 39 </text>
32 <text type="string" length="1" name="text_box5"> 40 <spinner left="373" name="max_chat_count"/>
41 <text length="1" name="text_box5" type="string" left="435" width="94">
33 (# linhas) 42 (# linhas)
34 </text> 43 </text>
35 <slider label="Opacidade" name="console_opacity" /> 44 <slider label="Opacidade" name="console_opacity"/>
36 <text type="string" length="1" name="text_box6"> 45 <check_box label="Use a largura total da tela (Precisa reiniciar)" name="chat_full_width_check"/>
46 <text length="1" name="text_box6" type="string">
37 Opções do Chat: 47 Opções do Chat:
38 </text> 48 </text>
39 <check_box label="Usar largura da tela cheia no Chat (depois do reinício)" 49 <check_box label="Feche a barra de conversa após pressionar retornar" name="close_chat_on_return_check"/>
40 name="chat_full_width_check" /> 50 <check_box label="Teclas de Setas movem o avatar durante o chat" name="arrow_keys_move_avatar_check"/>
41 <check_box label="Fechar Chat depois de tocar voltar" name="close_chat_on_return_check" /> 51 <check_box label="Mostrar a hora na conversa local" name="show_timestamps_check"/>
42 <check_box label="Teclas de Setas movem o avatar durante o chat" 52 <check_box label="Executar animação digitada quando estiver conversando" name="play_typing_animation"/>
43 name="arrow_keys_move_avatar_check" /> 53 <text length="1" name="text_box7" type="string">
44 <check_box label="Mostrar data e hora no chat" name="show_timestamps_check" />
45 <text type="string" length="1" name="text_box7">
46 Bubble Chat: 54 Bubble Chat:
47 </text> 55 </text>
48 <check_box label="Mostrar bolhas do chat" name="bubble_text_chat" /> 56 <check_box label="Mostrar bolhas do chat" name="bubble_text_chat"/>
49 <slider label="Opacidade" name="bubble_chat_opacity" /> 57 <slider label="Opacidade" name="bubble_chat_opacity"/>
50 <text type="string" length="1" name="text_box8">
51 Erros de Script:
52 </text>
53 <check_box label="Mostrar Erros de Script e avisos como chat comum"
54 name="script_errors_as_chat" />
55 <color_swatch label="Cor" name="script_error" />
56</panel> 58</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
index 07117dd..8eccaf3 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
@@ -1,67 +1,105 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Geral" name="general_panel"> 2<panel label="Geral" name="general_panel">
3 <combo_box name="location_combobox"> 3 <radio_group name="default_start_location">
4 <combo_item name="MyHome"> 4 <radio_item name="MyHome" tool_tip="Como padrão, registrar na minha casa.">
5 Minha Casa 5 Minha Casa
6 </combo_item>
7 </combo_box>
8 <check_box label="Mostrar Posição Inicial na Tela de Login"
9 name="show_location_checkbox" />
10 <radio_group name="fade_out_radio">
11 <radio_item type="string" length="1" name="Never">
12 Nunca
13 </radio_item> 6 </radio_item>
14 <radio_item type="string" length="1" name="Temporarily"> 7 <radio_item name="MyLastLocation" tool_tip="Por padrão, registrar na minha última localidade.">
15 Temporariamente 8 Minha Última Localidade
16 </radio_item>
17 <radio_item type="string" length="1" name="Always">
18 Sempre
19 </radio_item> 9 </radio_item>
20 </radio_group> 10 </radio_group>
21 <check_box label="Ocultar meu Nome na minha Tela" name="show_my_name_checkbox" /> 11 <check_box label="Mostrar Posição Inicial na Tela de Login" name="show_location_checkbox"/>
22 <check_box label="Ocultar meu Título no Grupo" name="show_my_title_checkbox" /> 12 <combo_box name="fade_out_combobox" width="166">
23 <check_box label="Avatar com Nomes Pequenos" name="small_avatar_names_checkbox" /> 13 <combo_item name="Never">
24 <color_swatch label="" name="effect_color_swatch" 14 Nunca
25 tool_tip="Clique para abrir po seletor de cores" /> 15 </combo_item>
26 <spinner label="Tempo para ficar Ausente:" name="afk_timeout_spinner" /> 16 <combo_item name="Show Temporarily">
27 <check_box label="Avisar meus amigos que estou online" 17 Mostrar Temporariamente
28 name="friends_online_notify_checkbox" /> 18 </combo_item>
29 <check_box label="Rotacionar Mini-Mapa" name="rotate_mini_map_checkbox" /> 19 <combo_item name="Always">
30 <check_box label="Avisar quando receber ou gastar Linden dollars (L$)" 20 Sempre
31 name="notify_money_change_checkbox" /> 21 </combo_item>
32 <check_box label="Usar a paleta de cores padrão do sistema" 22 </combo_box>
33 name="use_system_color_picker_checkbox" 23 <check_box label="Avatar com Nomes Pequenos" name="small_avatar_names_checkbox"/>
34 tool_tip="Usar a palheta de cores padrão do sistema ao invés de uma feita dentro de Second Life." /> 24 <check_box label="Ocultar meu Nome na minha Tela" name="show_my_name_checkbox"/>
35 <text type="string" length="1" name="start_location_textbox"> 25 <text name="group_titles_textbox">
26 Títulos dos Grupos:
27 </text>
28 <check_box label="Esconder Todos os Títulos de Grupos" name="show_all_title_checkbox"/>
29 <check_box label="Ocultar meu Título no Grupo" name="show_my_title_checkbox"/>
30 <color_swatch label="" name="effect_color_swatch" tool_tip="Clique para abrir po seletor de cores"/>
31 <text name="UI Size:">
32 Tamanho da UI:
33 </text>
34 <check_box label="Usar escala independente da resolução" name="ui_auto_scale"/>
35 <spinner label="Tempo para ficar Ausente:" name="afk_timeout_spinner"/>
36 <check_box label="Rotacionar Mini-Mapa" name="rotate_mini_map_checkbox"/>
37 <check_box label="Avisar quando receber ou gastar Linden dollars (L$)" name="notify_money_change_checkbox"/>
38 <check_box label="Usar a paleta de cores padrão do sistema" name="use_system_color_picker_checkbox" tool_tip="Usar a palheta de cores padrão do sistema ao invés de uma feita dentro de Second Life."/>
39 <check_box label="Mostrar o painel de busca na barra sobreposta" name="show_search_panel" tool_tip="Mostrar o painel de busca embutido."/>
40 <text length="1" name="start_location_textbox" type="string">
36 Posição Inicial: 41 Posição Inicial:
37 </text> 42 </text>
38 <text type="string" length="1" name="show_names_textbox"> 43 <text length="1" name="show_names_textbox" type="string">
39 Mostrar Nomes: 44 Mostrar Nomes:
40 </text> 45 </text>
41 <text type="string" length="1" name="effects_color_textbox"> 46 <text length="1" name="effects_color_textbox" type="string">
42 Cores para Meus Efeitos: 47 Cores para Meus Efeitos:
43 </text> 48 </text>
44 <text type="string" length="1" name="seconds_textbox"> 49 <text length="1" name="seconds_textbox" type="string">
45 segundos 50 segundos
46 </text> 51 </text>
47 <text type="string" length="1" name="crash_report_textbox"> 52 <text length="1" name="crash_report_textbox" type="string">
48 Relatórios de Falhas: 53 Relatórios de Falhas:
49 </text> 54 </text>
50 <text type="string" length="1" name="language_textbox2"> 55 <text name="language_textbox">
56 Linguagem:
57 </text>
58 <text length="1" name="language_textbox2" type="string" left_delta="313">
51 (Precisa de reinício para efetivar) 59 (Precisa de reinício para efetivar)
52 </text> 60 </text>
53 <text name="region_name_prompt"> 61 <string name="region_name_prompt">
54 Digite o nome da Região 62 Digite o nome da Região
55 </text> 63 </string>
56 <combo_box name="crash_behavior_combobox"> 64 <combo_box name="crash_behavior_combobox" width="166">
57 <combo_item type="string" length="1" name="Askbeforesending"> 65 <combo_item length="1" name="Askbeforesending" type="string">
58 Perguntar antes de enviar 66 Perguntar antes de enviar
59 </combo_item> 67 </combo_item>
60 <combo_item type="string" length="1" name="Alwayssend"> 68 <combo_item length="1" name="Alwayssend" type="string">
61 Sempre enviar 69 Sempre enviar
62 </combo_item> 70 </combo_item>
63 <combo_item type="string" length="1" name="Neversend"> 71 <combo_item length="1" name="Neversend" type="string">
64 Nunca Enviar 72 Nunca Enviar
65 </combo_item> 73 </combo_item>
66 </combo_box> 74 </combo_box>
75 <combo_box name="language_combobox" width="166">
76 <combo_item name="System Default Language">
77 Padrão do Sistema
78 </combo_item>
79 <combo_item name="English">
80 English (Inglês)
81 </combo_item>
82 <combo_item name="Deutsch(German)">
83 Deutsch (Alemão) - Beta
84 </combo_item>
85 <combo_item name="Spanish">
86 Español (Espanhol) - Beta
87 </combo_item>
88 <combo_item name="French">
89 Français (Francês) - Beta
90 </combo_item>
91 <combo_item name="Portugese">
92 Português - Beta
93 </combo_item>
94 <combo_item name="Chinese">
95 中文 (简体) (Chinês) - Beta
96 </combo_item>
97 <combo_item name="(Japanese)">
98 日本語 (Japonês) - Beta
99 </combo_item>
100 <combo_item name="(Korean)">
101 한국어 (Coreano) - Beta
102 </combo_item>
103 </combo_box>
104 <check_box label="Compartilhar a linguagem com objetos" name="language_is_public" tool_tip="Isto permite que os objetos no mundo conheçam sua linguagem preferida."/>
67</panel> 105</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml b/linden/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
index 265a70f..eca25a9 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
@@ -1,40 +1,176 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Gráficos" name="Display panel"> 2<panel label="Gráficos" name="Display panel">
3 <check_box label="Executar em Janela" name="windowed mode" /> 3 <button label="?" name="GraphicsPreferencesHelpButton"/>
4 <text type="string" length="1" name="Fullscreen Aspect Ratio:"> 4 <check_box label="Execute Second Life emu ma janela" name="windowed mode"/>
5 Aparência de Tela Cheia: 5 <text_editor bottom="-56" height="40" name="FullScreenInfo" width="480">
6 Caso contrário, visualizador irá exibir em tela inteira quando fizer o acesso.
7 </text_editor>
8 <text name="WindowSizeLabel">
9 Tamanho da Janela:
6 </text> 10 </text>
7 <text type="string" length="1" name="(width / height)"> 11 <combo_box name="windowsize combo">
8 (largura / altura) 12 <combo_item name="640x480">
13 640x480
14 </combo_item>
15 <combo_item name="800x600">
16 800x600
17 </combo_item>
18 <combo_item name="720x480">
19 720x480 (NTSC)
20 </combo_item>
21 <combo_item name="768x576">
22 768x576 (PAL)
23 </combo_item>
24 <combo_item name="1024x768">
25 1024x768
26 </combo_item>
27 </combo_box>
28 <text name="DisplayResLabel">
29 Resolução de Display:
9 </text> 30 </text>
10 <combo_box name="aspect_ratio"> 31 <text name="AspectRatioLabel1" tool_tip="largura / altura">
11 <combo_item type="string" length="1" name="4:3(StandardCRT)"> 32 Aspecto da tela:
33 </text>
34 <combo_box name="aspect_ratio" tool_tip="largura / altura">
35 <combo_item length="1" name="4:3(StandardCRT)" type="string">
12 4:3 (CRT Padrão) 36 4:3 (CRT Padrão)
13 </combo_item> 37 </combo_item>
14 <combo_item type="string" length="1" name="5:4(1280x1024LCD)"> 38 <combo_item length="1" name="5:4(1280x1024LCD)" type="string">
15 5:4 (1280x1024 LCD) 39 5:4 (1280x1024 LCD)
16 </combo_item> 40 </combo_item>
17 <combo_item type="string" length="1" name="16:9(Widescreen)"> 41 <combo_item name="8:5(Widescreen)">
42 8:5 (tela ampla)
43 </combo_item>
44 <combo_item length="1" name="16:9(Widescreen)" type="string">
18 16:9 (Widescreen) 45 16:9 (Widescreen)
19 </combo_item> 46 </combo_item>
20 </combo_box> 47 </combo_box>
21 <check_box label="Auto detectar" name="aspect_auto_detect" /> 48 <check_box label="Auto-detectar ratio" name="aspect_auto_detect"/>
22 <text type="string" length="1" name="UI Size:"> 49 <text name="HigherText">
23 Tamanho da interface: 50 Qualidade e
24 </text> 51 </text>
25 <text type="string" length="1" name="(meters, lower is faster)"> 52 <text name="QualityText">
26 (metros, menor é mais rápido) 53 Performance:
27 </text> 54 </text>
28 <text type="string" length="1" name="text2"> 55 <text name="FasterText">
29 Mostrar Opções: 56 Mais &#10;rápido
30 </text> 57 </text>
31 <check_box label="Usar resolução de escala independente" name="ui_auto_scale" /> 58 <text name="ShadersPrefText">
32 <spinner label="Desenhar Distância:" name="draw_distance" /> 59 Baixo
33 <check_box label="Mostrar Avatar em Mouselook" name="avfp" />
34 <text name="resolution_format">
35 [RES_X] x [RES_Y]
36 </text> 60 </text>
37 <text name="aspect_ratio_text"> 61 <text name="ShadersPrefText2">
38 [NUM]:[DEN] 62 Mid
63 </text>
64 <text name="ShadersPrefText3">
65 Alto
66 </text>
67 <text name="ShadersPrefText4">
68 Ultra
69 </text>
70 <text name="HigherText2">
71 Mais alto
72 </text>
73 <text name="QualityText2">
74 Qualidade
75 </text>
76 <check_box label="Padrão" name="CustomSettings" left="395" />
77 <text name="ShadersText">
78 Sombreamentos:
79 </text>
80 <check_box label="Bump de Mapeamento e Brilho" name="BumpShiny"/>
81 <check_box label="Sombreamento básico" name="BasicShaders" tool_tip="Desabilitar esta opção poderá impedir que alguns drivers de placa de vídeo a travem."/>
82 <check_box label="Sombreamento Atmosférico" name="WindLightUseAtmosShaders"/>
83 <check_box label="Reflexos de Ãgua" name="Reflections"/>
84 <text name="ReflectionDetailText">
85 Detalhes de Reflexão:
39 </text> 86 </text>
87 <radio_group name="ReflectionDetailRadio">
88 <radio_item name="0">
89 Terreno e Ãrvores
90 </radio_item>
91 <radio_item name="1">
92 Todos os objetos estáticos
93 </radio_item>
94 <radio_item name="2">
95 Todos os avatares e Objetos
96 </radio_item>
97 <radio_item name="3">
98 Tudo
99 </radio_item>
100 </radio_group>
101 <text name="AvatarRenderingText">
102 Renderização de Avatar:
103 </text>
104 <check_box label="Avatar Impostors" name="AvatarImpostors"/>
105 <check_box label="Hardware Skinning" name="AvatarVertexProgram"/>
106 <check_box label="Vestimenta do Avatar" name="AvatarCloth"/>
107 <text name="DrawDistanceMeterText1">
108 m
109 </text>
110 <text name="DrawDistanceMeterText2">
111 m
112 </text>
113 <slider label="Medir Distancia:" name="DrawDistance" width="255" label_width="146" />
114 <slider label="Contador máx de partículas:" name="MaxParticleCount" width="262" label_width="146" />
115 <slider label="Qualidade de Post Process:" name="RenderPostProcess" width="223" label_width="146" />
116 <text name="MeshDetailText">
117 Detalhes de Malha:
118 </text>
119 <slider label="Objetos:" name="ObjectMeshDetail"/>
120 <slider label="Primitivos Flexiveis:" name="FlexibleMeshDetail"/>
121 <slider label="Ãrvores:" name="TreeMeshDetail"/>
122 <slider label="Avatares:" name="AvatarMeshDetail"/>
123 <slider label="Terreno:" name="TerrainMeshDetail"/>
124 <slider label="Céu:" name="SkyMeshDetail"/>
125 <text name="PostProcessText">
126 Baixo
127 </text>
128 <text name="ObjectMeshDetailText">
129 Baixo
130 </text>
131 <text name="FlexibleMeshDetailText">
132 Baixo
133 </text>
134 <text name="TreeMeshDetailText">
135 Baixo
136 </text>
137 <text name="AvatarMeshDetailText">
138 Baixo
139 </text>
140 <text name="TerrainMeshDetailText">
141 Baixo
142 </text>
143 <text name="SkyMeshDetailText">
144 Baixo
145 </text>
146 <text name="LightingDetailText">
147 Detalhes de Iluminação:
148 </text>
149 <radio_group name="LightingDetailRadio">
150 <radio_item name="SunMoon">
151 Sol e Lua apenas
152 </radio_item>
153 <radio_item name="LocalLights">
154 Luzes locais nas proximidades
155 </radio_item>
156 </radio_group>
157 <text name="TerrainDetailText">
158 Detalhes do Terreno:
159 </text>
160 <radio_group name="TerrainDetailRadio" left_delta="45" width="276">
161 <radio_item name="0">
162 Baixo
163 </radio_item>
164 <radio_item name="2">
165 Alto
166 </radio_item>
167 </radio_group>
168 <button label="Configurações Recomendadas" name="Defaults"/>
169 <button label="Opções de Hardware" label_selected="Opções de Hardware" name="GraphicsHardwareButton"/>
170 <string name="resolution_format">
171 [RES_X] x [RES_Y]
172 </string>
173 <string name="aspect_ratio_text">
174 [NUM]:[DEN]
175 </string>
40</panel> 176</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/pt/panel_preferences_im.xml
index 7da6bf5..5456544 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_preferences_im.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_preferences_im.xml
@@ -1,24 +1,31 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Comunicação" name="im"> 2<panel label="Comunicação" name="im">
3 <text type="string" length="1" name="text_box"> 3 <text length="1" name="text_box" type="string">
4 Situação do Perfil On-Line: 4 Minha situação online:
5 </text> 5 </text>
6 <check_box label="Fazer com que meus amigos saibam que estou on-line" 6 <check_box label="Apenas meus Amigos e Grupos podem me ver online" name="online_visibility"/>
7 name="online_visibility" /> 7 <text length="1" name="text_box2" type="string">
8 <text type="string" length="1" name="text_box2">
9 Opções MI: 8 Opções MI:
10 </text> 9 </text>
11 <text name="log_in_to_change"> 10 <string name="log_in_to_change">
12 Logar para Alterar 11 Logar para Alterar
13 </text> 12 </string>
14 <check_box label="Enviar MI para o e-mail ([EMAIL])" name="send_im_to_email" /> 13 <check_box label="Enviar MI para o e-mail ([EMAIL])" name="send_im_to_email"/>
15 <check_box label="Incluir MI no Histórico do Chat" name="include_im_in_chat_history" /> 14 <check_box label="Incluir MIs no histórico de conversas" name="include_im_in_chat_history"/>
16 <check_box label="Mostrar data e hora na MI" name="show_timestamps_check" /> 15 <check_box label="Mostrar data e hora na MI" name="show_timestamps_check"/>
17 <check_box label="Registrar Mensagens Instantâneas" name="log_instant_messages" /> 16 <check_box label="Mostrar notificação de Amigo online" name="friends_online_notify_checkbox"/>
18 <check_box label="Registrar Chat" name="log_chat" /> 17 <text length="1" name="text_box3" type="string" width="134">
19 <check_box label="Mostrar final da última conversa MI" name="log_show_history" />
20 <button label="Alt. Caminho" label_selected="Alt. Caminho" name="log_path_button" />
21 <text type="string" length="1" name="text_box3">
22 Resp. no Modo Ocupado: 18 Resp. no Modo Ocupado:
23 </text> 19 </text>
20 <text name="text_box4">
21 Opções de Registro:
22 </text>
23 <check_box label="Salvar um registro das MIs em meu computador" name="log_instant_messages"/>
24 <check_box label="Mostrar a hora nas MIs" name="log_instant_messages_timestamp"/>
25 <check_box label="Mostrar o final da última conversa em MI" name="log_show_history"/>
26 <check_box label="Salvar um registro da Conversa local em meu computador" name="log_chat"/>
27 <check_box label="Mostrar a hora no registro da Conversa local" name="log_chat_timestamp"/>
28 <check_box label="Mostrar MIs recebidas no registro de Conversa local" name="log_chat_IM"/>
29 <check_box label="Incluir data e hora" name="log_date_timestamp"/>
30 <button label="Alt. Caminho" label_selected="Alt. Caminho" name="log_path_button"/>
24</panel> 31</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/pt/panel_preferences_input.xml
index 177dd12..f10f33c 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_preferences_input.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_preferences_input.xml
@@ -1,26 +1,36 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Câmera" name="Input panel"> 2<panel label="Câmera" name="Input panel">
3 <text type="string" length="1" name=" Mouselook Options:"> 3 <text length="1" name=" Mouselook Options:" type="string">
4 Opções de Mouselook: 4 Opções de Mouselook:
5 </text> 5 </text>
6 <text type="string" length="1" name=" Mouse Sensitivity:"> 6 <text length="1" name=" Mouse Sensitivity:" type="string">
7 Sensibilidade do Mouse: 7 Sensibilidade do Mouse:
8 </text> 8 </text>
9 <check_box label="Inverter Mouse" name="invert mouse" /> 9 <check_box label="Inverter o Mouse" name="invert_mouse"/>
10 <text type="string" length="1" name=" Auto Fly Options:"> 10 <text length="1" name=" Auto Fly Options:" type="string">
11 Opções de Vôo Automático: 11 Vôo Automático:
12 </text> 12 </text>
13 <check_box label="Voar/Pousar segurando Para Cima/Para Baixo" name="automatic fly" /> 13 <check_box label="Voar/Aterrissar pressionando teclar para cima/baixo" name="automatic_fly"/>
14 <text type="string" length="1" name=" Camera Options:"> 14 <text length="1" name=" Camera Options:" type="string">
15 Opções de Câmera: 15 Opções de Câmera:
16 </text> 16 </text>
17 <text type="string" length="1" name="Camera Springiness:"> 17 <text name="Camera Follow Distance:" width="178">
18 Elasticidade da Câmera: 18 Distância de Acompanhamento da Camêra:
19 </text> 19 </text>
20 <check_box label="Movimento Automático da Câmera de Edição" 20 <slider left="325" name="dynamic_camera_strength" />
21 name="edit camera movement" 21 <text name="Camera Transition Time:" width="178">
22 tool_tip="Usar posicionamento automático de câmera quando estiver entrando ou saindo do modo de edição" /> 22 Tempo de transição da câmera :
23 <check_box label="Movimento Automático da Câmera de Aparência" 23 </text>
24 name="appearance camera movement" 24 <slider left="325" name="zoom_time" />
25 tool_tip="Usar posicionamento automático da câmera enquanto no modo de edição" /> 25 <slider left="325" name="camera_position_smoothing" />
26 <check_box label="Movimento automático da câmera de edição" name="edit_camera_movement" tool_tip="Usar posicionamento automático da câmera quando entrar e sair do modo de edição"/>
27 <check_box label="Movimento Automático da Câmera na edição de aparência" name="appearance_camera_movement" tool_tip="Usar posicionamento automático da câmera em modo de edição"/>
28 <text name="text2">
29 Opções de Exibição &#10;do Avatar:
30 </text>
31 <check_box label="Mostra o avatar em primeira pessoa" name="first_person_avatar_visible"/>
32 <text name="text5">
33 Opções de Joystick:
34 </text>
35 <button label="Configuração do Joystick" name="joystick_setup_button" width="165"/>
26</panel> 36</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_preferences_network.xml b/linden/indra/newview/skins/default/xui/pt/panel_preferences_network.xml
index a3bc97e..a49bbc6 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_preferences_network.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_preferences_network.xml
@@ -1,20 +1,23 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Rede" name="network"> 2<panel label="Rede" name="network">
3 <text type="string" length="1" name="text_box"> 3 <text length="1" name="text_box" type="string">
4 Banda Máxima: 4 Banda Máxima:
5 </text> 5 </text>
6 <text type="string" length="1" name="text_box2"> 6 <text length="1" name="text_box2" type="string">
7 kbps(kilobits por segundo) 7 kbps(kilobits por segundo)
8 </text> 8 </text>
9 <text type="string" length="1" name="cache_size_label_l"> 9 <text length="1" name="cache_size_label_l" type="string">
10 Cache em Disco: 10 Tamanho do Cachê de Disco:
11 </text> 11 </text>
12 <button label="Limpar Cache" name="clear_cache" /> 12 <text name="text_box5">
13 <text type="string" length="1" name="cache_location_label"> 13 MB
14 </text>
15 <button label="Limpar Cache" name="clear_cache"/>
16 <text length="1" name="cache_location_label" type="string">
14 Local do Cache em Disco: 17 Local do Cache em Disco:
15 </text> 18 </text>
16 <button label="Ajusta" label_selected="Ajusta" name="set_cache" /> 19 <button label="Ajusta" label_selected="Ajusta" name="set_cache"/>
17 <button label="Inicia" label_selected="Inicia" name="reset_cache" /> 20 <button label="Inicia" label_selected="Inicia" name="reset_cache"/>
18 <check_box label="Conexão de porta personalizada" name="connection_port_enabled" /> 21 <check_box label="Conexão de porta personalizada" name="connection_port_enabled"/>
19 <spinner label=" Porta:" name="connection_port" /> 22 <spinner label=" Porta:" name="connection_port"/>
20</panel> 23</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_preferences_popups.xml b/linden/indra/newview/skins/default/xui/pt/panel_preferences_popups.xml
index 1aec4ec..280096d 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_preferences_popups.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_preferences_popups.xml
@@ -1,16 +1,18 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Popups" name="popups"> 2<panel label="Popups" name="popups" title="Popups">
3 <text name="dont_show_label"> 3 <text name="dont_show_label">
4 Não mostrar popups: 4 Não mostrar estas popups:
5 </text> 5 </text>
6 <button label="Habilitar este popup" label_selected="Habilitar este popup" 6 <button label="Habilitar este popup" label_selected="Habilitar este popup" name="enable_popup"/>
7 name="enable_popup" /> 7 <button width="200" label="Habilitar todas as popups..." label_selected="Reiniciar Dialogos que serão mostrados na próxima vez..." name="reset_dialogs_btn" tool_tip="Habilitar todas as popups opcionais e notificações de “primeiro usoâ€."/>
8 <text type="string" length="1" name="show_label"> 8 <text length="1" name="show_label" type="string">
9 Mostrar popups: 9 Mostrar estas popups:
10 </text> 10 </text>
11 <check_box label="Aceitar automaticamente" name="accept_new_inventory" /> 11 <button width="200" label="Desabilitar todas estas popups..." name="skip_dialogs_btn" tool_tip="Desabilitar todas as popups opcionais e notificações de “primeiro usoâ€."/>
12 <check_box label="Visualizar após aceitar" name="show_new_inventory" /> 12 <text name="text_box2">
13 <button label="Reiniciar Dialogos que serão mostrados na próxima vez..." 13 Ofertas de notecards, texturas e landmarks:
14 label_selected="Reiniciar Dialogos que serão mostrados na próxima vez..." 14 </text>
15 name="reset_dialogs_btn" /> 15 <check_box label="Aceitar automaticamente" name="accept_new_inventory"/>
16 <check_box label="Visualizar após aceitar" name="show_new_inventory"/>
17 <check_box label="Mostrar automaticamente objetos aceitos recentemente no inventário." name="show_in_inventory"/>
16</panel> 18</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_preferences_skins.xml b/linden/indra/newview/skins/default/xui/pt/panel_preferences_skins.xml
new file mode 100644
index 0000000..6564953
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/panel_preferences_skins.xml
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Peles" name="Skins panel">
3 <text name="muting_text">
4 Selecione uma pele (necessita reiniciar):
5 </text>
6 <radio_group name="skin_selection">
7 <radio_item name="default">
8 Padrão
9 </radio_item>
10 <radio_item name="silver">
11 Prata
12 </radio_item>
13 </radio_group>
14</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_preferences_voice.xml b/linden/indra/newview/skins/default/xui/pt/panel_preferences_voice.xml
new file mode 100644
index 0000000..9a38bff
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/panel_preferences_voice.xml
@@ -0,0 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Voice Chat" name="chat">
3 <button label="Configurações do dispositivo" name="device_settings_btn" width="180" />
4 <text_editor name="device_settings_text" height="48" bottom_delta="-45">
5 NOTA: Executar o Configurações do dispositivo vai desligá-lo temporariamente do Bate- papo de voz, e as mudanças que você fizer serão imediatamente aplicadas.
6 </text_editor>
7</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_preferences_web.xml b/linden/indra/newview/skins/default/xui/pt/panel_preferences_web.xml
index 7da48d5..cd626c8 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_preferences_web.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_preferences_web.xml
@@ -1,12 +1,28 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Web" name="web"> 2<panel label="Web" name="web">
3 <text type="string" length="1" name="cache_size_label_l"> 3 <radio_group name="use_external_browser">
4 <radio_item name="external" tool_tip="Use o sistema navegador web padrão sistema para ajuda, links, etc. Não é recomendável se estiver sendo executado em tela cheia.">
5 Use navegador externo (Firefox, Safari, Internet Explorer)
6 </radio_item>
7 <radio_item name="internal" tool_tip="Use o navegador web embutido para ajudar, links, etc Este navegador abre uma nova janela dentro do Second Life.">
8 Use navegador built-in
9 </radio_item>
10 </radio_group>
11 <text length="1" name="cache_size_label_l" type="string">
4 Cache do Browser: 12 Cache do Browser:
5 </text> 13 </text>
6 <button label="Limpar Agora" name="clear_cache" /> 14 <button label="Limpar Agora" name="clear_cache" width="105" />
7 <text type="string" length="1" name="cookie_label"> 15 <text length="1" name="cookie_label" type="string">
8 Cookies: 16 Cookies:
9 </text> 17 </text>
10 <check_box label="Aceitar cookies de websites" name="cookies_enabled" /> 18 <check_box label="Aceitar cookies de websites" name="cookies_enabled"/>
11 <button label="Limpar Agora" name="clear_cookies" /> 19 <text name="proxy_label">
20 Web Proxy:
21 </text>
22 <check_box label="Permitir Web Proxy" name="web_proxy_enabled"/>
23 <text name="proxy_text_label">
24 Endereço:
25 </text>
26 <line_editor name="web_proxy_editor" tool_tip="Nome ou endereço de IP do proxy que você gostaria de usar" left="237" />
27 <spinner label="Número da porta:" name="web_proxy_port" label_width="95" width="170"/>
12</panel> 28</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_region_covenant.xml b/linden/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
index fee0329..7aa408b 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
@@ -1,27 +1,27 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="Corretagem" name="Covenant"> 2<panel label="Corretagem" name="Covenant">
3 <text name="covenant_help_text"> 3 <text name="covenant_help_text" bottom="-25">
4 As mudanças à informação do convénio mostrarão em todos os pacotes na propriedade. 4 As mudanças à informação do convénio mostrarão em todos os pacotes
5na propriedade.
5 </text> 6 </text>
6 <text name="region_name_lbl"> 7 <text name="region_name_lbl" bottom_delta="-31">
7 Região: 8 Região:
8 </text> 9 </text>
9 <text name="region_name_text"> 10 <text name="region_name_text">
10 (desconhecido) 11 (desconhecido)
11 </text> 12 </text>
12 <text name="estate_name_lbl"> 13 <text name="estate_name_lbl" bottom_delta="-19">
13 Propriedade: 14 Propriedade:
14 </text> 15 </text>
15 <text name="estate_name_text"> 16 <text name="estate_name_text">
16 (desconhecido) 17 (desconhecido)
17 </text> 18 </text>
18 <text name="covenent_instructions"> 19 <text name="covenent_instructions">
19 Arraste o cartao de um Corretor 20 Arraste e solte um notecard para alterar o Contrato para este Terreno.
20para este estado.
21 </text> 21 </text>
22 <button label="?" name="covenant_help" /> 22 <button label="?" name="covenant_help" />
23 <button label="Resetar" name="reset_covenant" /> 23 <button label="Resetar" name="reset_covenant" />
24 <text name="estate_owner_lbl"> 24 <text name="estate_owner_lbl" bottom_delta="-19">
25 Proprietário final: 25 Proprietário final:
26 </text> 26 </text>
27 <text name="estate_owner_text"> 27 <text name="estate_owner_text">
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_region_debug.xml b/linden/indra/newview/skins/default/xui/pt/panel_region_debug.xml
index 32315e1..eb0f83d 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_region_debug.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_region_debug.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Debug" name="Debug"> 2<panel label="Debug" name="Debug">
3 <text name="region_text_lbl"> 3 <text name="region_text_lbl">
4 Região: 4 Região:
@@ -6,29 +6,35 @@
6 <text name="region_text"> 6 <text name="region_text">
7 nenhum 7 nenhum
8 </text> 8 </text>
9 <check_box label="Desabilitar Scripts" name="disable_scripts_check" 9 <check_box label="Desabilitar Scripts" name="disable_scripts_check" tool_tip="Desabilitar todos scripts nesta região"/>
10 tool_tip="Desabilitar todos scripts nesta região" /> 10 <button label="?" name="disable_scripts_help"/>
11 <button label="?" name="disable_scripts_help" /> 11 <check_box label="Desabilitar colisões" name="disable_collisions_check" tool_tip="Desabilitar colisões dos avateres nessa região"/>
12 <check_box label="Desabilitar colisões" name="disable_collisions_check" 12 <button label="?" name="disable_collisions_help"/>
13 tool_tip="Desabilitar colisões dos avateres nessa região" /> 13 <check_box label="Desabilitar física" name="disable_physics_check" tool_tip="Desabilitar fisíca nessa região"/>
14 <button label="?" name="disable_collisions_help" /> 14 <button label="?" name="disable_physics_help"/>
15 <check_box label="Desabilitar física" name="disable_physics_check" 15 <button label="Aplicar" name="apply_btn"/>
16 tool_tip="Desabilitar fisíca nessa região" /> 16 <text name="objret_text_lbl">
17 <button label="?" name="disable_physics_help" /> 17 Retornar objeto
18 <button label="Aplicar" name="apply_btn" /> 18 </text>
19 <button label="Escolher o avatar..." name="choose_avatar_btn" /> 19 <text name="resident_text_lbl">
20 <button label="Retornar objetos com scripts no terreno de outros" 20 Residente:
21 name="return_scripted_other_land_btn" /> 21 </text>
22 <button label="Retornar todos os objetos com script" name="return_scripted_all_btn" /> 22 <line_editor name="target_avatar_name">
23 <button label="Ranking-Colisões" name="top_colliders_btn" 23 (nenhum)
24 tool_tip="Lista dos objetos que experimentam as colisões " /> 24 </line_editor>
25 <button label="?" name="top_colliders_help" /> 25 <button label="Escolher..." name="choose_avatar_btn"/>
26 <button label="Ranking-Scripts" name="top_scripts_btn" 26 <text name="options_text_lbl">
27 tool_tip="List of objects spending the most time running scripts" /> 27 Opções:
28 <button label="?" name="top_scripts_help" /> 28 </text>
29 <button label="Restart Region" name="restart_btn" 29 <check_box label="Retornar apenas aqueles objetos que contenham scripts" name="return_scripts" tool_tip="Retornar apenas objetos que contenham scripts."/>
30 tool_tip="Inicio da contagem regressiva em 2 minutos" /> 30 <check_box label="Retornar apenas aqueles objetos na terra de alguém" name="return_other_land" tool_tip="Retornar apenas objetos que estejam em uma terra pertencente a alguém"/>
31 <button label="?" name="restart_help" /> 31 <check_box label="Retornar objetos em cada região desta propriedade" name="return_estate_wide" tool_tip="Retornar objetos em todas as regiões que constituem esta propriedade"/>
32 <button label="Cancelar Reinicio" name="cancel_restart_btn" 32 <button label="Retornar" name="return_btn"/>
33 tool_tip="Cancelar o reinicio da região" /> 33 <button label="Ranking-Colisões" name="top_colliders_btn" tool_tip="Lista dos objetos que experimentam as colisões "/>
34 <button label="?" name="top_colliders_help"/>
35 <button label="Ranking-Scripts" name="top_scripts_btn" tool_tip="List of objects spending the most time running scripts"/>
36 <button label="?" name="top_scripts_help"/>
37 <button label="Restart Region" name="restart_btn" tool_tip="Inicio da contagem regressiva em 2 minutos"/>
38 <button label="?" name="restart_help"/>
39 <button label="Cancelar Reinicio" name="cancel_restart_btn" tool_tip="Cancelar o reinicio da região"/>
34</panel> 40</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_region_estate.xml b/linden/indra/newview/skins/default/xui/pt/panel_region_estate.xml
index f6423fe..d7b993f 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_region_estate.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_region_estate.xml
@@ -1,7 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Estado" name="Estate"> 2<panel label="Estado" name="Estate">
3 <text name="estate_help_text"> 3 <text name="estate_help_text">
4 As mudanças aos ajustes nesta aba afetarão todas as regiões na propriedade. 4 Mudanças nas definições nesta guia irá afetar
5todas as regiões do Terreno.
5 </text> 6 </text>
6 <text name="estate_text"> 7 <text name="estate_text">
7 Estado: 8 Estado:
@@ -15,49 +16,54 @@
15 <text name="estate_owner"> 16 <text name="estate_owner">
16 (nenhum) 17 (nenhum)
17 </text> 18 </text>
18 <text name="estate_manager_label"> 19 <check_box label="Usar Tempo global " name="use_global_time_check"/>
19 Gerentes da propriedade: 20 <button label="?" name="use_global_time_help"/>
21 <check_box label="Sol fixo " name="fixed_sun_check"/>
22 <button label="?" name="fixed_sun_help"/>
23 <slider label="Fase " name="sun_hour_slider"/>
24 <check_box label="Permitir acesso público" name="externally_visible_check"/>
25 <button label="?" name="externally_visible_help"/>
26 <text name="Only Allow">
27 Acesso restrito a:
20 </text> 28 </text>
21 <button label="?" name="estate_manager_help" /> 29 <check_box label="Residentes com informações de pagamento em arquivo" name="limit_payment" tool_tip="Banir residentes não identificados."/>
22 <button label="Adicionar..." name="add_estate_manager_btn" /> 30 <check_box label="Idade verificada -adultos" name="limit_age_verified" tool_tip="Banir residentes que não tenham confirmado a sua idade. Ver support.secondlife.com para mais informações."/>
23 <button label="Remover..." name="remove_estate_manager_btn" /> 31 <check_box label="Permitir conversa de voz" name="voice_chat_check"/>
24 <check_box label="Usar Tempo global " name="use_global_time_check" /> 32 <button label="?" name="voice_chat_help"/>
25 <button label="?" name="use_global_time_help" /> 33 <check_box label="Permitir Tele-transporte direto" name="allow_direct_teleport"/>
26 <check_box label="Sol fixo " name="fixed_sun_check" /> 34 <button label="?" name="allow_direct_teleport_help"/>
27 <button label="?" name="fixed_sun_help" />
28 <slider label="Fase " name="sun_hour_slider" />
29 <check_box label="Acesso público " name="externally_visible_check" />
30 <button label="?" name="externally_visible_help" />
31 <check_box label="Permitir Tele-transporte direto" name="allow_direct_teleport" />
32 <button label="?" name="allow_direct_teleport_help" />
33 <text name="region_text_lbl">
34 Proibir acesso a:
35 </text>
36 <check_box label="Informações de não pagamento" name="deny_anonymous" />
37 <check_box label="Informações de pagamento" name="deny_identified" />
38 <check_box label="Informações de pagtos realizados" name="deny_transacted" />
39 <text name="abuse_email_text"> 35 <text name="abuse_email_text">
40 E-mail do abuso: 36 Endereço de email de Abuso:
37 </text>
38 <string name="email_unsupported">
39 Funcionalidade não suportada
40 </string>
41 <button label="?" name="abuse_email_address_help"/>
42 <button label="Aplicar" name="apply_btn"/>
43 <button label="Descartar Estado" name="kick_user_from_estate_btn"/>
44 <button label="Enviar mensagem ao Estado " name="message_estate_btn"/>
45 <text name="estate_manager_label">
46 Gerentes da propriedade:
41 </text> 47 </text>
42 <button label="Aplicar" name="apply_btn" /> 48 <button label="?" name="estate_manager_help"/>
49 <button label="Remover..." name="remove_estate_manager_btn"/>
50 <button label="Adicionar..." name="add_estate_manager_btn"/>
43 <text name="allow_resident_label"> 51 <text name="allow_resident_label">
44 Residentes permitidos: 52 Residentes permitidos:
45 </text> 53 </text>
46 <button label="?" name="allow_resident_help" /> 54 <button label="?" name="allow_resident_help"/>
47 <button label="Adicionar..." name="add_allowed_avatar_btn" /> 55 <button label="Remover..." name="remove_allowed_avatar_btn"/>
48 <button label="Remover..." name="remove_allowed_avatar_btn" /> 56 <button label="Adicionar..." name="add_allowed_avatar_btn"/>
49 <text name="allow_group_label"> 57 <text name="allow_group_label">
50 Grupos reservados: 58 Grupos permitidos:
51 </text> 59 </text>
52 <button label="?" name="allow_group_help" /> 60 <button label="?" name="allow_group_help"/>
53 <button label="Adicionar..." name="add_allowed_group_btn" /> 61 <button label="Remover..." name="remove_allowed_group_btn"/>
54 <button label="Remover..." name="remove_allowed_group_btn" /> 62 <button label="Adicionar..." name="add_allowed_group_btn"/>
55 <text name="ban_resident_label"> 63 <text name="ban_resident_label">
56 Residentes proibidos: 64 Residentes banidos:
57 </text> 65 </text>
58 <button label="?" name="ban_resident_help" /> 66 <button label="?" name="ban_resident_help"/>
59 <button label="Adicionar..." name="add_banned_avatar_btn" /> 67 <button label="Remover..." name="remove_banned_avatar_btn"/>
60 <button label="Remover..." name="remove_banned_avatar_btn" /> 68 <button label="Adicionar..." name="add_banned_avatar_btn"/>
61 <button label="Enviar mensagem ao Estado " name="message_estate_btn" />
62 <button label="Descartar Estado" name="kick_user_from_estate_btn" />
63</panel> 69</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_region_general.xml b/linden/indra/newview/skins/default/xui/pt/panel_region_general.xml
index 5c915b3..d70cb48 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_region_general.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_region_general.xml
@@ -1,4 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel label="Região" name="General"> 2<panel label="Região" name="General">
3 <text name="region_text_lbl"> 3 <text name="region_text_lbl">
4 Região: 4 Região:
@@ -6,23 +6,30 @@
6 <text name="region_text"> 6 <text name="region_text">
7 desconhecido 7 desconhecido
8 </text> 8 </text>
9 <check_box label="Bloquear Terraform" name="block_terraform_check" /> 9 <text name="version_channel_text_lbl">
10 <button label="?" name="terraform_help" /> 10 Versão:
11 <check_box label="Bloquear Vôo" name="block_fly_check" /> 11 </text>
12 <button label="?" name="fly_help" /> 12 <text name="version_channel_text">
13 <check_box label="Permitir Dano" name="allow_damage_check" /> 13 desconhecido
14 <button label="?" name="damage_help" /> 14 </text>
15 <check_box label="Restringir Empurrar" name="restrict_pushobject" /> 15 <check_box label="Bloquear Terraform" name="block_terraform_check"/>
16 <button label="?" name="restrict_pushobject_help" /> 16 <button label="?" name="terraform_help"/>
17 <check_box label="Permitir Revenda de Terra" name="allow_land_resell_check" /> 17 <check_box label="Bloquear Vôo" name="block_fly_check"/>
18 <button label="?" name="land_resell_help" /> 18 <button label="?" name="fly_help"/>
19 <check_box label="Permitir Compartilhamento/Divisão de Lotes" 19 <check_box label="Permitir Dano" name="allow_damage_check"/>
20 name="allow_parcel_changes_check" /> 20 <button label="?" name="damage_help"/>
21 <button label="?" name="parcel_changes_help" /> 21 <check_box label="Restringir Empurrar" name="restrict_pushobject"/>
22 <spinner label="Agente Limite" name="agent_limit_spin" /> 22 <button label="?" name="restrict_pushobject_help"/>
23 <button label="?" name="agent_limit_help" /> 23 <check_box label="Permitir Revenda de Terra" name="allow_land_resell_check"/>
24 <spinner label="Objeto Bonus" name="object_bonus_spin" /> 24 <button label="?" name="land_resell_help"/>
25 <button label="?" name="object_bonus_help" /> 25 <check_box label="Permitir Unir/Dividir Terra" name="allow_parcel_changes_check"/>
26 <button label="?" name="parcel_changes_help"/>
27 <check_box label="Bloquear Mostrar Terra na Busca" name="block_parcel_search_check" tool_tip="Permitir que as pessoas vejam esta região e seus terrenos nos resultados de busca"/>
28 <button label="?" name="parcel_search_help"/>
29 <spinner label="Agente Limite" name="agent_limit_spin"/>
30 <button label="?" name="agent_limit_help"/>
31 <spinner label="Objeto Bonus" name="object_bonus_spin"/>
32 <button label="?" name="object_bonus_help"/>
26 <text label="Maturidade" name="access_text"> 33 <text label="Maturidade" name="access_text">
27 Maturidade: 34 Maturidade:
28 </text> 35 </text>
@@ -34,10 +41,10 @@
34 Adulto 41 Adulto
35 </combo_item> 42 </combo_item>
36 </combo_box> 43 </combo_box>
37 <button label="?" name="access_help" /> 44 <button label="?" name="access_help"/>
38 <button label="Aplicar" name="apply_btn" /> 45 <button label="Aplicar" name="apply_btn"/>
39 <button label="Teleportar um usuário para Casa..." name="kick_btn" /> 46 <button label="Teleportar um usuário para Casa..." name="kick_btn"/>
40 <button label="Teleportar Todos os Usuários..." name="kick_all_btn" /> 47 <button label="Teleportar Todos os Usuários..." name="kick_all_btn"/>
41 <button label="Enviar Mensagem para Região..." name="im_btn" /> 48 <button label="Enviar Mensagem para Região..." name="im_btn"/>
42 <button label="Gerenciar Telehub..." name="manage_telehub_btn" /> 49 <button label="Gerenciar Telehub..." name="manage_telehub_btn"/>
43</panel> 50</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_speaker_controls.xml b/linden/indra/newview/skins/default/xui/pt/panel_speaker_controls.xml
new file mode 100644
index 0000000..1967362
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/panel_speaker_controls.xml
@@ -0,0 +1,38 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="active_speakers_panel">
3 <string name="moderator_label">
4 (Moderador)
5 </string>
6 <layout_stack name="panels">
7 <layout_panel name="moderation_mode_panel">
8 <combo_box name="moderation_mode">
9 <combo_item name="OpenVoice">
10 Voz ativada por padrão
11 </combo_item>
12 <combo_item name="ModeratedVoice">
13 Voz desligada por padrão
14 </combo_item>
15 </combo_box>
16 </layout_panel>
17 <layout_panel name="moderate_chat_panel">
18 <scroll_list name="speakers_list">
19 <column label="Nome" name="speaker_name"/>
20 </scroll_list>
21 <panel name="speaker_controls">
22 <button label="" name="mute_btn" tool_tip="Emudecer a voz para este residente"/>
23 <check_box label="Emudecer Texto" name="mute_text_btn"/>
24 </panel>
25 </layout_panel>
26 <layout_panel name="moderator_controls">
27 <text name="moderator_controls_label">
28 Controles do Moderador:
29 </text>
30 <check_box name="moderator_allow_voice">
31 Permitir conversa por voz
32 </check_box>
33 <check_box name="moderator_allow_text">
34 Permitir conversa por texto
35 </check_box>
36 </layout_panel>
37 </layout_stack>
38</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_status_bar.xml b/linden/indra/newview/skins/default/xui/pt/panel_status_bar.xml
index 25e2a15..0fca748 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_status_bar.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_status_bar.xml
@@ -1,32 +1,38 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="status"> 2<panel name="status">
3 <text type="string" length="1" name="ParcelNameText" 3 <text length="1" name="ParcelNameText" tool_tip="Nome do pedaço de terra em que você esta. Clique para informações." type="string">
4 tool_tip="Nome do pedaço de terra em que você esta. Clique para informações.">
5 Nome do pedaço de terra vai aqui. 4 Nome do pedaço de terra vai aqui.
6 </text> 5 </text>
7 <text type="string" length="1" name="BalanceText" tool_tip="Cotação de Compra"> 6 <text length="1" name="BalanceText" tool_tip="Cotação de Compra" type="string">
8 L$ 7 L$
9 </text> 8 </text>
10 <button label="" label_selected="" name="buycurrency" tool_tip="Compras" /> 9 <button label="" label_selected="" name="buycurrency" tool_tip="Compras"/>
11 <text type="string" length="12" name="TimeText" tool_tip="Hora atual (Pacific)"> 10 <text length="12" name="TimeText" tool_tip="Hora atual (Pacific)" type="string">
12 12:00 AM 11 12:00 AM
13 </text> 12 </text>
14 <button label="" label_selected="" name="scriptout" tool_tip="Erros e avisos do Script" /> 13 <string name="StatBarDaysOfWeek">
15 <button label="" label_selected="" name="health" tool_tip="Saúde" /> 14 Domingo:Segunda-feira:terça-feira:Quarta-feira:Quinta-feira:Sexta-feira:Sábado
16 <text type="string" length="1" name="HealthText" tool_tip="Saúde"> 15 </string>
16 <string name="StatBarMonthsOfYear">
17 Janeiro: Fevereiro: Março: Abril: Maio: Junho: Julho: Agosto: Setembro: Outubro: Novembro: Dezembro
18 </string>
19 <button label="" label_selected="" name="scriptout" tool_tip="Erros e avisos do Script"/>
20 <button label="" label_selected="" name="health" tool_tip="Saúde"/>
21 <text length="1" name="HealthText" tool_tip="Saúde" type="string">
17 100% 22 100%
18 </text> 23 </text>
19 <button label="" label_selected="" name="fly" tool_tip="Sem voar." /> 24 <button label="" label_selected="" name="no_fly" tool_tip="Não é permitido Voar"/>
20 <button label="" label_selected="" name="build" tool_tip="Sem construções." /> 25 <button label="" label_selected="" name="no_build" tool_tip="construir/Rezzar não permitido"/>
21 <button label="" label_selected="" name="scripts" tool_tip="Sem scripts." /> 26 <button label="" label_selected="" name="no_scripts" tool_tip="Scripts não permitidos"/>
22 <button label="" label_selected="" name="restrictpush" 27 <button label="" label_selected="" name="restrictpush" tool_tip="Não Empurrar"/>
23 tool_tip="Restriro llEmpurrar objeto." /> 28 <button label="" label_selected="" name="status_no_voice" tool_tip="Voz não disponível aqui"/>
24 <button label="" label_selected="" name="buyland" tool_tip="Comprar esse pedaço" /> 29 <button label="" label_selected="" name="buyland" tool_tip="Comprar esse pedaço"/>
25 <line_editor label="Procurar" name="search_editor" tool_tip="Procurar em Second Life" /> 30 <line_editor label="Buscar" name="search_editor" tool_tip="Buscar no Second Life"/>
26 <text name="packet_loss_tooltip"> 31 <button label="" label_selected="" name="search_btn" tool_tip="Buscar no Second Life"/>
32 <string name="packet_loss_tooltip">
27 Perda de pacote 33 Perda de pacote
28 </text> 34 </string>
29 <text name="bandwidth_tooltip"> 35 <string name="bandwidth_tooltip">
30 Banda 36 Banda
31 </text> 37 </string>
32</panel> 38</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_toolbar.xml b/linden/indra/newview/skins/default/xui/pt/panel_toolbar.xml
index cda9440..a5a8c83 100644
--- a/linden/indra/newview/skins/default/xui/pt/panel_toolbar.xml
+++ b/linden/indra/newview/skins/default/xui/pt/panel_toolbar.xml
@@ -1,21 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="toolbar"> 2<panel name="toolbar">
3 <string name="Redock Windows">
4 Reagrupar as janelas
5 </string>
3 <layout_stack name="toolbar_stack"> 6 <layout_stack name="toolbar_stack">
4 <button label="MI" name="im_btn" tool_tip="Mensagens Instantâneas para seus amigos" /> 7 <button label="" name="chat_btn" tool_tip="Mostrar a barra de Conversa por Texto. (Enter)"/>
5 <button label="" name="chat_btn" 8 <flyout_button label="Comunicar-se" name="communicate_btn" tool_tip="Comunicar-se com seus Amigos e Grupos."/>
6 tool_tip="Conversar com as pessoas próximas. (Enter)" /> 9 <button label="Voar" label_selected="Parar de voar." name="fly_btn" tool_tip="Começar a voar. Use E/C ou PgUp/PgDn para voar para cima ou para baixo."/>
7 <button label="Amigos" name="friends_btn" 10 <button label="Instantâneo" name="snapshot_btn" tool_tip="Salvar uma foto da tela no disco ou no inventário."/>
8 tool_tip="Ache e converse com os seus camaradas." /> 11 <button label="Busca" name="directory_btn" tool_tip="Busca a lugares, eventos, pessoas e mais."/>
9 <button label="Voar" label_selected="Parar de voar" name="fly_btn" 12 <button label="Construir" name="build_btn" tool_tip="Criar novos objetos."/>
10 tool_tip="Comece a voar. Use E/C ou PgUp/PgDn para voar para cima e para baixo." /> 13 <button label="Mapa" name="map_btn" tool_tip="Mapa do Mundo. (Ctrl-M)"/>
11 <button label="Foto" name="snapshot_btn" 14 <button label="Mini-Mapa" name="radar_btn" tool_tip="Mapa da área ao seu redor. (Ctrl-Shift-M)"/>
12 tool_tip="Salve uma foto em seu disco ou inventário." /> 15 <button label="Inventário" name="inventory_btn" tool_tip="Seus itens. (Ctrl-I)"/>
13 <button label="Procurar" name="directory_btn" 16 </layout_stack>
14 tool_tip="Procurar por lugares, eventos, pessoas, e muito mais." />
15 <button label="Construir" name="build_btn" tool_tip="Construa novos objetos" />
16 <button label="Mini-Mapa" name="radar_btn"
17 tool_tip="Mapa da área próxima a você. (Ctrl-Shift-M)" />
18 <button label="Mapa" name="map_btn" tool_tip="Map do mundo todo. (Ctrl-M)" />
19 <button label="Inventário" name="inventory_btn" tool_tip="Seus itens. (Ctrl-I)" />
20 </layout_stack>
21</panel> 17</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_voice_controls.xml b/linden/indra/newview/skins/default/xui/pt/panel_voice_controls.xml
new file mode 100644
index 0000000..29ecfbf
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/panel_voice_controls.xml
@@ -0,0 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="voice_controls">
3 <button label="" name="speakers_btn" tool_tip="Mostra os residentes que estão usando bate-papo em voz em torno de ti."/>
4 <button label="Falar" name="push_to_talk" tool_tip="Segure o botão para falar"/>
5 <button label="" name="ptt_lock" tool_tip="Clique na fechadura para entrar no modo de falar"/>
6 <button label="" name="show_channel" tool_tip="Clique para mostrar o canal corrente de voz"/>
7</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_voice_enable.xml b/linden/indra/newview/skins/default/xui/pt/panel_voice_enable.xml
new file mode 100644
index 0000000..b159ec7
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/panel_voice_enable.xml
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="content_panel">
3 <text_editor name="voice_intro_text1">
4 Bem-vindo ao Bate-Papo em voz do Second Life! O Bate-papo em Voz lhe permite falar com outros residentes. Este assistente irá guiá-lo através dos passos necessários para configurar o Bate-papo em voz. Utilizá-lo exige falantes e áudio, se quiser falar com outras pessoas, use um microfone ou headset estéreo com microfone.
5 </text_editor>
6 <text_editor name="voice_intro_text2">
7 Bate-papo em voz é ativado por padrão. Quer continuar usando a conversa em voz?
8 </text_editor>
9 <radio_group name="voice_enable">
10 <radio_item name="1">
11 Sim, continue com o Bate-papo em Voz.
12 </radio_item>
13 <radio_item name="0">
14 Não, desative o Bate-papo em Voz.
15 </radio_item>
16 </radio_group>
17</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_voice_options.xml b/linden/indra/newview/skins/default/xui/pt/panel_voice_options.xml
new file mode 100644
index 0000000..31468b7
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/panel_voice_options.xml
@@ -0,0 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="content_panel">
3 <check_box label="Permitir somente amigos de iniciar chamadas de voz comigo." name="friends_only_check"/>
4</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/panel_voice_remote_expanded.xml b/linden/indra/newview/skins/default/xui/pt/panel_voice_remote_expanded.xml
new file mode 100644
index 0000000..feb407e
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/panel_voice_remote_expanded.xml
@@ -0,0 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel name="voice_remote">
3 <button label="" name="end_call_btn" tool_tip="Clique para deixar em espera"/>
4</panel>
diff --git a/linden/indra/newview/skins/default/xui/pt/strings.xml b/linden/indra/newview/skins/default/xui/pt/strings.xml
new file mode 100644
index 0000000..bc0e1ea
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/pt/strings.xml
@@ -0,0 +1,421 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<!-- This file contains strings that used to be hardcoded in the source.
3 It is only for those strings which don&apos;t belong in a floater.
4 For example, the strings used in avatar chat bubbles, and strings
5 that are returned from one component and may appear in many places-->
6<strings>
7 <string name="LoginInProgress">
8 Fazendo Login. [APP_NAME] pode parecer congelado. Por favor, aguarde.
9 </string>
10 <string name="LoginAuthenticating">
11 Autenticando
12 </string>
13 <string name="LoginMaintenance">
14 Executando manutenção da conta...
15 </string>
16 <string name="LoginAttempt">
17 Falha na tentativa anterior de login. Fazendo Login, tentativa [NUMBER]
18 </string>
19 <string name="LoginPrecaching">
20 Carregando mundo...
21 </string>
22 <string name="LoginInitializingBrowser">
23 Inicializando navegador embutido...
24 </string>
25 <string name="LoginInitializingMultimedia">
26 Inicializando multimídia...
27 </string>
28 <string name="LoginVerifyingCache">
29 Verificando arquivos no cache (pode levar 60-90 segundos)...
30 </string>
31 <string name="LoginProcessingResponse">
32 Processando Resposta...
33 </string>
34 <string name="LoginInitializingWorld">
35 Inicializando Mundo...
36 </string>
37 <string name="LoginDecodingImages">
38 Decodificando imagens...
39 </string>
40 <string name="LoginInitializingQuicktime">
41 Inicializando o QuickTime...
42 </string>
43 <string name="LoginQuicktimeNotFound">
44 O QuickTime não foi encontrado - incapaz de inicializar.
45 </string>
46 <string name="LoginQuicktimeOK">
47 O QuickTime foi inicializado com sucesso.
48 </string>
49 <string name="LoginWaitingForRegionHandshake">
50 Aguardando o handshake com a região...
51 </string>
52 <string name="LoginConnectingToRegion">
53 Conectando à região...
54 </string>
55 <string name="LoginDownloadingClothing">
56 Baixando roupas...
57 </string>
58 <string name="LoginFailedNoNetwork">
59 Erro de Rede: Não foi possível estabelecer uma conexão. Por favor, verifique sua conexão de rede.
60 </string>
61 <string name="AgentLostConnection">
62 Esta região pode estar passando por problemas. Por favor, verifique sua conexão com a internet.
63 </string>
64 <string name="TooltipPerson">
65 Pessoa
66 </string>
67 <string name="TooltipNoName">
68 (sem nome)
69 </string>
70 <string name="TooltipOwner">
71 Proprietário:
72 </string>
73 <string name="TooltipPublic">
74 Público
75 </string>
76 <string name="TooltipIsGroup">
77 (Grupo)
78 </string>
79 <string name="TooltipFlagScript">
80 Script
81 </string>
82 <string name="TooltipFlagPhysics">
83 Física
84 </string>
85 <string name="TooltipFlagTouch">
86 Toque
87 </string>
88 <string name="TooltipFlagL$">
89 L$
90 </string>
91 <string name="TooltipFlagDropInventory">
92 Largar Estoque
93 </string>
94 <string name="TooltipFlagPhantom">
95 Imaterial
96 </string>
97 <string name="TooltipFlagTemporary">
98 Temporário
99 </string>
100 <string name="TooltipFlagRightClickMenu">
101 (Clique com o botão direito para acessar o menu)
102 </string>
103 <string name="TooltipFreeToCopy">
104 Cópia Permitida
105 </string>
106 <string name="TooltipForSaleL$">
107 À venda: L$[AMOUNT]
108 </string>
109 <string name="TooltipForSaleMsg">
110 À venda: [MESSAGE]
111 </string>
112 <string name="TooltipFlagGroupBuild">
113 Construído por Grupo
114 </string>
115 <string name="TooltipFlagNoBuild">
116 Não é Permitido Construir
117 </string>
118 <string name="TooltipFlagNoEdit">
119 Construído por Grupo
120 </string>
121 <string name="TooltipFlagNotSafe">
122 Não é Seguro
123 </string>
124 <string name="TooltipFlagNoFly">
125 Não é Permitido Voar
126 </string>
127 <string name="TooltipFlagGroupScripts">
128 Scripts de Grupo
129 </string>
130 <string name="TooltipFlagNoScripts">
131 Não são Permitidos Scripts
132 </string>
133 <string name="TooltipLand">
134 Terreno:
135 </string>
136 <string name="TooltipMustSingleDrop">
137 Apenas um item único pode ser arrastado para este local
138 </string>
139 <string name="RetrievingData">
140 Buscando...
141 </string>
142 <string name="ReleaseNotes">
143 Notas de Distribuição
144 </string>
145 <string name="LoadingData">
146 Carregando...
147 </string>
148 <string name="AvatarNameNobody">
149 (ninguém)
150 </string>
151 <string name="AvatarNameWaiting">
152 (aguardando)
153 </string>
154 <string name="AvatarNameHippos">
155 (hippos)
156 </string>
157 <string name="GroupNameNone">
158 (nenhum)
159 </string>
160 <string name="AssetErrorNone">
161 Nenhum erro
162 </string>
163 <string name="AssetErrorRequestFailed">
164 Valor pedido falhou
165 </string>
166 <string name="AssetErrorNonexistentFile">
167 Valor pedido: arquivo inexistente
168 </string>
169 <string name="AssetErrorNotInDatabase">
170 Valor pedido: valor não encontrado na base de dados.
171 </string>
172 <string name="AssetErrorEOF">
173 Fim do arquivo
174 </string>
175 <string name="AssetErrorCannotOpenFile">
176 Não é possível abrir arquivo
177 </string>
178 <string name="AssetErrorFileNotFound">
179 Arquivo não encontrado
180 </string>
181 <string name="AssetErrorTCPTimeout">
182 Tempo de transferência de arquivo expirado
183 </string>
184 <string name="AssetErrorCircuitGone">
185 Circuito caiu (Circuit gone)
186 </string>
187 <string name="AssetErrorUnknownStatus">
188 Status desconhecido
189 </string>
190 <string name="AvatarEditingApparance">
191 (Editando Aparência)
192 </string>
193 <string name="AvatarAway">
194 Distante
195 </string>
196 <string name="AvatarBusy">
197 Ocupado
198 </string>
199 <string name="AvatarMuted">
200 Emudecido
201 </string>
202 <string name="anim_express_afraid">
203 Temeroso
204 </string>
205 <string name="anim_express_anger">
206 Bravo
207 </string>
208 <string name="anim_away">
209 Distante
210 </string>
211 <string name="anim_backflip">
212 Virar para trás
213 </string>
214 <string name="anim_express_laugh">
215 Rir segurando a barriga
216 </string>
217 <string name="anim_express_toothsmile">
218 Sorriso largo
219 </string>
220 <string name="anim_blowkiss">
221 Mandar beijo
222 </string>
223 <string name="anim_express_bored">
224 Entediado
225 </string>
226 <string name="anim_bow">
227 Saudar curvando
228 </string>
229 <string name="anim_clap">
230 Aplaudir
231 </string>
232 <string name="anim_courtbow">
233 Saudação formal
234 </string>
235 <string name="anim_express_cry">
236 Chorar
237 </string>
238 <string name="anim_dance1">
239 Dança 1
240 </string>
241 <string name="anim_dance2">
242 Dança 2
243 </string>
244 <string name="anim_dance3">
245 Dança 3
246 </string>
247 <string name="anim_dance4">
248 Dança 4
249 </string>
250 <string name="anim_dance5">
251 Dança 5
252 </string>
253 <string name="anim_dance6">
254 Dança 6
255 </string>
256 <string name="anim_dance7">
257 Dança 7
258 </string>
259 <string name="anim_dance8">
260 Dança 8
261 </string>
262 <string name="anim_express_disdain">
263 Desdém
264 </string>
265 <string name="anim_drink">
266 Beber
267 </string>
268 <string name="anim_express_embarrased">
269 Envergonhado
270 </string>
271 <string name="anim_angry_fingerwag">
272 Negar com o dedo.
273 </string>
274 <string name="anim_fist_pump">
275 Vibrar provocando
276 </string>
277 <string name="anim_yoga_float">
278 Levitar Yoga
279 </string>
280 <string name="anim_express_frown">
281 Careta
282 </string>
283 <string name="anim_impatient">
284 Impaciente
285 </string>
286 <string name="anim_jumpforjoy">
287 Pular de Alegria
288 </string>
289 <string name="anim_kissmybutt">
290 Beije meu Bumbum
291 </string>
292 <string name="anim_express_kiss">
293 Beijar
294 </string>
295 <string name="anim_laugh_short">
296 rir
297 </string>
298 <string name="anim_musclebeach">
299 Exibir músculos
300 </string>
301 <string name="anim_no_unhappy">
302 Não (descontente)
303 </string>
304 <string name="anim_no_head">
305 Não
306 </string>
307 <string name="anim_nyanya">
308 Nya-nya-nya
309 </string>
310 <string name="anim_punch_onetwo">
311 Um-Dois soco
312 </string>
313 <string name="anim_express_open_mouth">
314 Abrir a boca
315 </string>
316 <string name="anim_peace">
317 Paz
318 </string>
319 <string name="anim_point_you">
320 Apontar para o outro
321 </string>
322 <string name="anim_point_me">
323 Apontar para si
324 </string>
325 <string name="anim_punch_l">
326 Socar Esquerda
327 </string>
328 <string name="anim_punch_r">
329 Socar Direita
330 </string>
331 <string name="anim_rps_countdown">
332 RPS contar
333 </string>
334 <string name="anim_rps_paper">
335 RPS papel
336 </string>
337 <string name="anim_rps_rock">
338 RPS pedra
339 </string>
340 <string name="anim_rps_scissors">
341 RPS tesoura
342 </string>
343 <string name="anim_express_repulsed">
344 Repulsa
345 </string>
346 <string name="anim_kick_roundhouse_r">
347 Chute giratório
348 </string>
349 <string name="anim_express_sad">
350 Triste
351 </string>
352 <string name="anim_salute">
353 Saúde
354 </string>
355 <string name="anim_shout">
356 Gritar
357 </string>
358 <string name="anim_express_shrug">
359 Encolher ombros
360 </string>
361 <string name="anim_express_smile">
362 Sorrir
363 </string>
364 <string name="anim_smoke_idle">
365 Fumar à toa
366 </string>
367 <string name="anim_smoke_inhale">
368 Inalar Fumaça
369 </string>
370 <string name="anim_smoke_throw_down">
371 Expelir Fumaça
372 </string>
373 <string name="anim_express_surprise">
374 Surpresa
375 </string>
376 <string name="anim_sword_strike_r">
377 Golpe de Espada
378 </string>
379 <string name="anim_angry_tantrum">
380 Enraivecer
381 </string>
382 <string name="anim_express_tongue_out">
383 Mostrar a língua
384 </string>
385 <string name="anim_hello">
386 Onda
387 </string>
388 <string name="anim_whisper">
389 Sussurrar
390 </string>
391 <string name="anim_whistle">
392 Assobiar
393 </string>
394 <string name="anim_express_wink">
395 Piscar
396 </string>
397 <string name="anim_wink_hollywood">
398 Piscar (Hollywood)
399 </string>
400 <string name="anim_express_worry">
401 Preocupar-se
402 </string>
403 <string name="anim_yes_happy">
404 Sim (Feliz)
405 </string>
406 <string name="anim_yes_head">
407 Sim
408 </string>
409 <string name="texture_loading">
410 Carregando...
411 </string>
412 <string name="worldmap_offline">
413 Desconectado
414 </string>
415 <string name="whisper">
416 sussurra:
417 </string>
418 <string name="shout">
419 grita:
420 </string>
421</strings>
diff --git a/linden/indra/newview/skins/default/xui/pt/teleport_strings.xml b/linden/indra/newview/skins/default/xui/pt/teleport_strings.xml
index 2ead8d6..44ff1c3 100644
--- a/linden/indra/newview/skins/default/xui/pt/teleport_strings.xml
+++ b/linden/indra/newview/skins/default/xui/pt/teleport_strings.xml
@@ -1,56 +1,43 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<teleport_messages> 2<teleport_messages>
3 <message_set name="errors"> 3 <message_set name="errors">
4 <message name="invalid_tport"> 4 <message name="invalid_tport">
5 Foi encontrado um problema na sua solicitação de teleport. Você 5 Problema encontrado ao processar seu pedido de Teleporte. Você pode tentar reiniciar antes de tentar teleportar. Se você continuar a receber essa mensagem, por favor cheque a FAQ do Suporte Técnico em:
6 provavelmente precisará entrar no Second Life novamente 6www.secondlife.com/support
7 antes de teleportar-se. Se esse problema persistir, por favor
8 verifique o FAQ do suporte técnico em www.secondlife.com/support.
9 </message> 7 </message>
10 <message name="invalid_region_handoff"> 8 <message name="invalid_region_handoff">
11 Foi encontrado um problema ao processar sua transição entre as 9 Problema encontrado ao processar a passage de regiões. Você pode tentar reiniciar antes de tentar atravessar regiões novamente. Se você continuar a receber essa mensagem, por favor cheque a FAQ do Suporte Técnico em:
12 regiões. Você provavelmente precisará entrar no Second Life 10www.secondlife.com/support
13 novamente antes de conseguir passar entre regiões.
14 Se esse problema persistir, por favor verifique o FAQ do suporte
15 técnico em www.secondlife.com/support.
16 </message> 11 </message>
17 <message name="blocked_tport"> 12 <message name="blocked_tport">
18 Desculpe, teleport temporariamente bloqueado. Tente novamente em 13 Desculpe, Teleportes estão atualmente bloqueados. Tente novamente dentro de alguns instantes. Se você continuar com problemas de teleporte, por favor tente deslogar e relogar para resolver o problema.
19 alguns instantes. Se você ainda não puder teleportar-se, por favor,
20 entre novamente no Second Life para resolver seu problema.
21 </message> 14 </message>
22 <message name="nolandmark_tport"> 15 <message name="nolandmark_tport">
23 Desculpe, mas o sistema não conseguiu localizar a landmark de destino. 16 Desculpe, mas o sistema não conseguiu localizar a landmark de destino.
24 </message> 17 </message>
25 <message name="timeout_tport"> 18 <message name="timeout_tport">
26 Desculpe, mas o sistema está incapaz de completar sua conexão para o 19 Desculpe, não foi possível para o sistema executar o teleporte, Tente novamente dentro de alguns instantes.
27 teleport. Tente novamente em alguns instantes.
28 </message> 20 </message>
29 <message name="noaccess_tport"> 21 <message name="noaccess_tport">
30 Desculpe, você não tem permissão para acessar esse destino. 22 Desculpe, você não tem permissão para acessar esse destino.
31 </message> 23 </message>
32 <message name="missing_attach_tport"> 24 <message name="missing_attach_tport">
33 Seus anexos não foram carregados ainda. Tente esperar por alguns 25 Seu anexos ainda não chegaram. Tente esperar por alguns momentos ou deslogar e logar antes de tentar teleportar novamente.
34 segundos ou entre no Second Life novamente antes de tentar
35 teleportar-se.
36 </message> 26 </message>
37 <message name="too_many_uploads_tport"> 27 <message name="too_many_uploads_tport">
38 A fila de recursos nesta região está sobrecarregada portanto sua solicitação 28 A fluxo nesta região é atualmente tão alto e entupido que seu pedido de teleporte não será possível teleportar com êxito em tempo oportuno. Por favor, tente novamente em alguns minutos ou vá a uma área menos ocupada.
39 de teleport não pode ser atendida em tempo hábil. Por favor tente novamente
40 em alguns minutos ou vá para uma área menos carregada.
41 </message> 29 </message>
42 <message name="expired_tport"> 30 <message name="expired_tport">
43 Desculpe, mas o sistema não foi capaz de completar sua solicitação 31 Desculpe, mas o sistema não conseguiu concluir o seu pedido de teleporte em tempo hábil. Por favor, tente novamente em alguns minutos.
44 de teleport. Por favor, tente novamente em alguns minutos.
45 </message> 32 </message>
46 <message name="expired_region_handoff"> 33 <message name="expired_region_handoff">
47 Desculpe, mas o sistema não foi capaz de completar transição entre 34 Desculpe, mas o sistema não pôde concluir a sua travessia de região em tempo hábil. Por favor, tente novamente em alguns minutos.
48 as regiões. Por favor, tente novamente em alguns minutos.
49 </message> 35 </message>
50 <message name="no_host"> 36 <message name="no_host">
51 Não foi possível encontrar o destino para o teleport. O destino 37 Não foi possível encontrar o destino do teleporte. O destino pode estar temporariamente indisponível ou não existir mais. Por favor, tente novamente em poucos minutos.
52 pode estar temporariamente indisponível ou não existir mais. 38 </message>
53 Por favor, tente novamente em alguns minutos. 39 <message name="no_inventory_host">
40 O sistema de inventário está indisponível no momento.
54 </message> 41 </message>
55 </message_set> 42 </message_set>
56 <message_set name="progress"> 43 <message_set name="progress">
diff --git a/linden/indra/newview/skins/default/xui/zh/alerts.xml b/linden/indra/newview/skins/default/xui/zh/alerts.xml
index 49cf3b2..666f0ab 100644
--- a/linden/indra/newview/skins/default/xui/zh/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/zh/alerts.xml
@@ -1,27 +1,36 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<alerts> 2<alerts>
3 <global name="skipnexttime">
4 下次ä¸è¦å†è®©æˆ‘看这个了
5 </global>
6 <global name="alwayschoose">
7 总是选择该选项
8 </global>
3 <alert name="MissingAlert"> 9 <alert name="MissingAlert">
4 <message name="message"> 10 <message name="message">
5 [ALERT_NAME]从alerts.xml中é—失! 11 alerts.xml 中找ä¸åˆ° [ALERT_NAME]!
6 </message> 12 </message>
7 <option name="OK"> 13 <option name="OK">
8 OK 14 确定
9 </option> 15 </option>
10 </alert> 16 </alert>
11 <alert name="FloaterNotFound"> 17 <alert name="FloaterNotFound">
12 <message name="message"> 18 <message name="message">
13 处ç†é”™è¯¯: 无法找到以下调节: 19 浮动框错误: 无法找到以下控件:
14 20
15[CONTROLS] 21[CONTROLS]
16 </message> 22 </message>
17 <option name="OK"> 23 <option name="OK">
18 OK 24 确定
19 </option> 25 </option>
20 </alert> 26 </alert>
21 <alert name="MOTD" title="通知天数"> 27 <alert name="TutorialNotFound">
22 <message name="message"> 28 <message name="message">
23 [MOTD] 29 现在还没有å¯ç”¨çš„教程。
24 </message> 30 </message>
31 <option name="OK">
32 确定
33 </option>
25 </alert> 34 </alert>
26 <alert name="GenericAlert"> 35 <alert name="GenericAlert">
27 <message name="message"> 36 <message name="message">
@@ -46,41 +55,28 @@
46 </alert> 55 </alert>
47 <alert name="ConnectTimeout"> 56 <alert name="ConnectTimeout">
48 <message name="message"> 57 <message name="message">
49 无法连接到[SECOND_LIFE]. 58 无法连接到 [SECOND_LIFE].
50系统å¯èƒ½å‡ºçŽ°æ•…障。 59系统å¯èƒ½å‡ºçŽ°æ•…障。
51请几分钟åŽå†è¯•, 或点击帮助 60
61请ç¨å€™å†è¯•, 或点击帮助
52获得建议和到达系统状æ€çš„网页链接。 62获得建议和到达系统状æ€çš„网页链接。
53 </message> 63 </message>
54 <option name="OK"> 64 <option name="OK">
55 OK 65 确定
56 </option> 66 </option>
57 <option name="Help"> 67 <option name="Help">
58 帮助 68 帮助
59 </option> 69 </option>
60 </alert> 70 </alert>
61 <alert name="RemoveWearableSave"> 71 <alert name="WearableSave">
62 <message name="message">
63 ä¿å­˜ç›®å‰å¯¹è¡£ç‰©/身体部ä½çš„更改?
64 </message>
65 <option name="Save">
66 存储
67 </option>
68 <option name="Don&apos;tSave">
69 ç¦æ­¢å‚¨å­˜
70 </option>
71 <option name="Cancel">
72 å–消
73 </option>
74 </alert>
75 <alert name="SetWearableSave">
76 <message name="message"> 72 <message name="message">
77 ä¿å­˜ç›®å‰å¯¹è¡£ç‰©/身体部ä½çš„更改? 73 ä¿å­˜å¯¹å½“å‰è¡£ç‰©/身体部ä½çš„更改?
78 </message> 74 </message>
79 <option name="Save"> 75 <option name="Save">
80 存储 76 ä¿å­˜
81 </option> 77 </option>
82 <option name="Don&apos;tSave"> 78 <option name="Don&apos;tSave">
83 ç¦æ­¢å‚¨å­˜ 79 ä¸ä¿å­˜
84 </option> 80 </option>
85 <option name="Cancel"> 81 <option name="Cancel">
86 å–消 82 å–消
@@ -93,12 +89,12 @@
93 </alert> 89 </alert>
94 <alert name="CompileQueueSaveBytecode"> 90 <alert name="CompileQueueSaveBytecode">
95 <message name="message"> 91 <message name="message">
96 上传汇编脚本时出错,出于以下原因: [REASON]。请ç¨å€™å†è¯•ã€‚ 92 上传已编译脚本代ç æ—¶å‡ºé”™ï¼Œå‡ºäºŽä»¥ä¸‹åŽŸå› : [REASON]。请ç¨å€™å†è¯•ã€‚
97 </message> 93 </message>
98 </alert> 94 </alert>
99 <alert name="WriteAnimationFail"> 95 <alert name="WriteAnimationFail">
100 <message name="message"> 96 <message name="message">
101 æ— æ³•å†™å…¥åŠ¨ç”»æ•°æ® 97 无法写入动画数æ®ã€‚请ç¨å€™å†è¯•ã€‚
102 </message> 98 </message>
103 </alert> 99 </alert>
104 <alert name="UploadAuctionSnapshotFail"> 100 <alert name="UploadAuctionSnapshotFail">
@@ -108,62 +104,65 @@
108 </alert> 104 </alert>
109 <alert name="UnableToViewContentsMoreThanOne"> 105 <alert name="UnableToViewContentsMoreThanOne">
110 <message name="message"> 106 <message name="message">
111 一次ä¸èƒ½æµè§ˆä¸€ä¸ªä»¥ä¸Šçš„物å“. 107 一次ä¸èƒ½æµè§ˆä¸€ä¸ªä»¥ä¸Šç‰©å“的内容。
112请åªé€‰æ‹©ä¸€ä¸ªä¸œä¸œé‡è¯•. 108请åªé€‰æ‹©ä¸€ä¸ªç‰©ä½“åŽé‡è¯•ã€‚
113 </message> 109 </message>
114 </alert> 110 </alert>
115 <alert name="MustSupplyVoteProposal"> 111 <alert name="MustSupplyVoteProposal">
116 <message name="message"> 112 <message name="message">
117 你必须为选举给出æå人。. 113 你必须为投票给出æ议。
118键入一æ¡ç¤¾å›¢ç›®æ ‡çš„简短æ述。 114键入一æ¡ç¤¾å›¢ç›®æ ‡çš„简短æ述。
119 </message> 115 </message>
120 </alert> 116 </alert>
121 <alert name="InsufficientFunds"> 117 <alert name="InsufficientFunds">
122 <message name="message"> 118 <message name="message">
123 资金充足。 119 资金ä¸è¶³ã€‚
124 </message> 120 </message>
125 </alert> 121 </alert>
126 <alert name="CharacterSnapshotSaved"> 122 <alert name="CharacterSnapshotSaved">
127 <message name="message"> 123 <message name="message">
128 你的形象快照已ç»ä¿å­˜ã€‚ 124 你的角色的快照已ç»ä¿å­˜ã€‚
129
130查看形象请访问网络工作室的陈列馆。 125查看形象请访问网络工作室的陈列馆。
131 </message> 126 </message>
132 </alert> 127 </alert>
133 <alert name="SaveClothingBodyChanges"> 128 <alert name="SaveClothingBodyChanges">
134 <message name="message"> 129 <message name="message">
135 ä¿å­˜æ‰€æœ‰å¯¹è¡£ç‰©/身体部ä½çš„更改? 130 ä¿å­˜æ‰€æœ‰å¯¹è¡£ç‰©/身体部ä½çš„更改?
136 </message> 131 </message>
137 <option name="SaveAll"> 132 <option name="SaveAll">
138 储存全部 133 全部ä¿å­˜
139 </option> 134 </option>
140 <option name="Don&apos;tSave"> 135 <option name="Don&apos;tSave">
141 ç¦æ­¢å‚¨å­˜ 136 ä¸ä¿å­˜
142 </option> 137 </option>
143 <option name="Cancel"> 138 <option name="Cancel">
144 å–消 139 å–消
145 </option> 140 </option>
146 </alert> 141 </alert>
147 <alert name="AlterModifyRights"> 142 <alert name="GrantModifyRights">
148 <message name="message"> 143 <message name="message">
149 你是å¦è¦[ACTION]更改æƒåˆ©[DERECTION] [FIRST_NAME] [LAST_NAME]? 144 授予å¦å¤–一å居民修改的æƒåˆ©ï¼Œæ„味ç€å…许他们修改ã€åˆ é™¤æˆ–æ‹¿èµ°
145任何你在世界里å¯èƒ½æ‹¥æœ‰çš„物å“。请在执行这项许å¯çš„时候格外å°å¿ƒã€‚
146你真的希望授予[FIRST_NAME] [LAST_NAME]修改æƒåˆ©å—?
150 </message> 147 </message>
151 <option name="Yes"> 148 <option name="Yes">
152 是 149 是的,我愿æ„
153 </option> 150 </option>
154 <option name="No"> 151 <option name="No">
155 å¦ 152 ä¸ï¼Œæˆ‘想å†è€ƒè™‘一下
156 </option> 153 </option>
157 </alert> 154 </alert>
158 <alert name="GrantModifyRights"> 155 <alert name="GrantModifyRightsMultiple">
159 <message name="message"> 156 <message name="message">
160 授予å¦å¤–一å居民修改的æƒåˆ©ï¼Œåˆ™æ„味ç€å…许他们修改任何你å†ç¬¬äºŒäººç”Ÿä¸–界里å¯èƒ½æ‹¥æœ‰çš„物å“。请在执行这项许å¯çš„时候格外å°å¿ƒã€‚ 你真的希望授予[FIRST_NAME] [LAST_NAME]修改æƒåˆ©å—? 157 授予å¦å¤–一å居民修改的æƒåˆ©ï¼Œæ„味ç€å…许他们修改ã€åˆ é™¤æˆ–æ‹¿èµ°
158任何你在世界里å¯èƒ½æ‹¥æœ‰çš„物å“。请在执行这项许å¯çš„时候格外å°å¿ƒã€‚
159你真的希望授予所选择的居民修改æƒåˆ©å—?
161 </message> 160 </message>
162 <option name="Yes"> 161 <option name="Yes">
163 æ˜¯çš„ï¼Œæˆ‘æ„¿æ„ 162 是的,我愿æ„
164 </option> 163 </option>
165 <option name="No"> 164 <option name="No">
166 ä¸æ˜¯ï¼Œæˆ‘想å†è€ƒè™‘一下 165 ä¸ï¼Œæˆ‘想å†è€ƒè™‘一下
167 </option> 166 </option>
168 </alert> 167 </alert>
169 <alert name="RevokeModifyRights"> 168 <alert name="RevokeModifyRights">
@@ -174,12 +173,23 @@
174 æ˜¯çš„ï¼Œæˆ‘æ„¿æ„ 173 是的,我愿æ„
175 </option> 174 </option>
176 <option name="No"> 175 <option name="No">
177 ä¸æ˜¯ï¼Œæˆ‘想å†è€ƒè™‘一下 176 ä¸ï¼Œæˆ‘想å†è€ƒè™‘一下
177 </option>
178 </alert>
179 <alert name="RevokeModifyRightsMultiple">
180 <message name="message">
181 你真的希望撤回所选居民的修改æƒåˆ©å—?
182 </message>
183 <option name="Yes">
184 是的,我愿æ„
185 </option>
186 <option name="No">
187 ä¸ï¼Œæˆ‘想å†è€ƒè™‘一下
178 </option> 188 </option>
179 </alert> 189 </alert>
180 <alert name="RemoveFriend"> 190 <alert name="RemoveFriend">
181 <message name="message"> 191 <message name="message">
182 你是å¦è¦å°†[FIRST_NAME] [LAST_NAME]移出你的朋å‹åœˆ? 192 你是å¦è¦å°†[FIRST_NAME] [LAST_NAME]从你的朋å‹åˆ—表中去除?
183 </message> 193 </message>
184 <option name="Remove"> 194 <option name="Remove">
185 移除 195 移除
@@ -199,7 +209,7 @@
199[MESSAGE] 209[MESSAGE]
200 </message> 210 </message>
201 <option name="OK"> 211 <option name="OK">
202 OK 212 确定
203 </option> 213 </option>
204 </alert> 214 </alert>
205 <alert name="PanelGroupApply"> 215 <alert name="PanelGroupApply">
@@ -211,7 +221,7 @@
211 应用更改 221 应用更改
212 </option> 222 </option>
213 <option name="IgnoreChanges"> 223 <option name="IgnoreChanges">
214 忽视更改 224 忽略更改
215 </option> 225 </option>
216 <option name="Cancel"> 226 <option name="Cancel">
217 å–消 227 å–消
@@ -221,13 +231,13 @@
221 <message name="message"> 231 <message name="message">
222 创建一个新社团需花费 L$[COST]. 232 创建一个新社团需花费 L$[COST].
223 233
224è¦æƒ³ä¿æŒä¸€ä¸ªæ–°ç¤¾å›¢è¶…过三天,你的社团总人数必须达到三人获三人以上。 234è¦æƒ³ä¿æŒä¸€ä¸ªæ–°ç¤¾å›¢è¶…过三天,你的社团总人数必须达到三人或三人以上。
225 235
226 236
227是å¦åˆ›å»ºæ–°ç¤¾å›¢? 237是å¦åˆ›å»ºæ–°ç¤¾å›¢?
228 </message> 238 </message>
229 <option name="Create"> 239 <option name="Create">
230 创造 240 创建
231 </option> 241 </option>
232 <option name="Cancel"> 242 <option name="Cancel">
233 å–消 243 å–消
@@ -235,18 +245,18 @@
235 </alert> 245 </alert>
236 <alert name="CreateGroupCannotAfford"> 246 <alert name="CreateGroupCannotAfford">
237 <message name="message"> 247 <message name="message">
238 建立社团将花费 L$[花费]. 248 建立社团将花费 L$[COST].
239你没有足够的钱æ¥å»ºç«‹æ­¤ç¤¾å›¢ã€‚ 249你没有足够的 L$ æ¥å»ºç«‹æ­¤ç¤¾å›¢ã€‚
240 </message> 250 </message>
241 </alert> 251 </alert>
242 <alert name="GroupNameTooShort"> 252 <alert name="GroupNameTooShort">
243 <message name="message"> 253 <message name="message">
244 社团å必须包å«è‡³å°‘4个字æ¯ã€‚ 254 社团å必须至少4个字æ¯é•¿ã€‚
245 </message> 255 </message>
246 </alert> 256 </alert>
247 <alert name="GroupNameUsesReservedWord"> 257 <alert name="GroupNameUsesReservedWord">
248 <message name="message"> 258 <message name="message">
249 社团å已被预订。 请å¦å¤– 259 社团å中带有ä¸èƒ½ä½¿ç”¨çš„è¯ã€‚ 请å¦å¤–
250选择一个å字。 260选择一个å字。
251 </message> 261 </message>
252 </alert> 262 </alert>
@@ -255,18 +265,25 @@
255 你必须为å‘é€ç»™ç¤¾å›¢çš„通知拟定一个主题. 265 你必须为å‘é€ç»™ç¤¾å›¢çš„通知拟定一个主题.
256 </message> 266 </message>
257 <option name="OK"> 267 <option name="OK">
258 OK 268 确定
259 </option> 269 </option>
260 </alert> 270 </alert>
261 <alert name="MustSupplyGroupCharter"> 271 <alert name="MustSupplyGroupCharter">
262 <message name="message"> 272 <message name="message">
263 请为社团制定一个规章。 273 请为社团制定一个规章。
274简短地æ述社团的目标。
264 </message> 275 </message>
265 </alert> 276 </alert>
266 <alert name="AddGroupOwnerWarning"> 277 <alert name="AddGroupOwnerWarning">
267 <message name="message"> 278 <message name="message">
268 你将添加社团会员至角色[ROLE_NAME]中。会员ä¸èƒ½ä»Žè¯¥è§’色中被移除。会员必须自己从角色中辞èŒã€‚你真的愿æ„继续å—? 279 你将添加社团会员至角色 [ROLE_NAME] 中。
280会员ä¸èƒ½ä»Žè¯¥è§’色中被移除。
281会员必须自己从角色中辞èŒã€‚
282你真的愿æ„继续å—?
269 </message> 283 </message>
284 <ignore name="ignore">
285 当添加社团会员到团长角色时
286 </ignore>
270 <option name="Yes"> 287 <option name="Yes">
271 是 288 是
272 </option> 289 </option>
@@ -276,12 +293,15 @@
276 </alert> 293 </alert>
277 <alert name="AssignDangerousActionWarning"> 294 <alert name="AssignDangerousActionWarning">
278 <message name="message"> 295 <message name="message">
279 你将添加能力&apos;[ACTION_NAME]&apos;至角色&apos;[ROLE_NAME]&apos;中。 296 你将为角色 ‘[ROLE_NAME]’ 添加 ‘[ACTION_NAME]’ 的能力。
280 297
281 *警告* 298 *警告*
282 任何角色中的会员拥有这项能力åŽï¼Œéƒ½å¯ä»¥åˆ†é…给他们自己,或者任何其他的会员å„ç§è§’色,这些角色的æƒåˆ©å¯èƒ½æ¯”他们目å‰æ‰€æ‹¥æœ‰çš„大得多,并很å¯èƒ½æ拔他们自己到最é è¿‘主人æƒåˆ©çš„ä½ç½®ä¸Šã€‚请在分é…这项能力之å‰ç¡®å®šè‡ªå·±è¿™ä¹ˆåšå°†å¸¦æ¥çš„åŽæžœã€‚ 299任何具有该角色的会员拥有这项能力åŽï¼Œéƒ½å¯ä»¥ç»™ä»–们自己——以åŠ
300任何其他的会员å„ç§è§’色——分é…æƒåˆ©æ¯”他们目å‰æ‰€æ‹¥æœ‰çš„æƒåˆ©å¤§å¾—多
301的角色,并å¯èƒ½æ拔他们自己到相近于团长æƒåˆ©çš„ä½ç½®ä¸Šã€‚
302请在分é…这项能力之å‰ç¡®å®šè‡ªå·±è¿™ä¹ˆåšå°†å¸¦æ¥çš„åŽæžœã€‚
283 303
284你是å¦æ„¿æ„添加这个能力至&apos;[ROLE_NAME]&apos;? 304你是å¦æ„¿æ„添加这个能力至 ‘[ROLE_NAME]’?
285 </message> 305 </message>
286 <option name="Yes"> 306 <option name="Yes">
287 是 307 是
@@ -295,7 +315,7 @@
295 你将添加能力&apos;[ACTION_NAME]&apos;至角色 &apos;[ROLE_NAME]&apos;中。 315 你将添加能力&apos;[ACTION_NAME]&apos;至角色 &apos;[ROLE_NAME]&apos;中。
296 316
297 *警告* 317 *警告*
298 任何角色中的会员拥有这项能力åŽï¼Œéƒ½å¯ä»¥åˆ†é…给他们自己,或者其他会员所有的能力,甚至å¯ä»¥æ拔他们自己到最é è¿‘主人的æƒåˆ©çš„ä½ç½®ä¸Šã€‚ 318任何具有该角色的会员拥有这项能力åŽï¼Œéƒ½å¯ä»¥ç»™ä»–们自己——或者其他会员——分é…所有的能力,甚至å¯ä»¥æ拔他们自己到相近于团长æƒåˆ© çš„ä½ç½®ä¸Šã€‚
299 319
300你是å¦æ„¿æ„添加这项能力至 &apos;[ROLE_NAME]&apos;? 320你是å¦æ„¿æ„添加这项能力至 &apos;[ROLE_NAME]&apos;?
301 </message> 321 </message>
@@ -313,82 +333,107 @@
313 </alert> 333 </alert>
314 <alert name="ClickPublishHelpLand"> 334 <alert name="ClickPublishHelpLand">
315 <message name="message"> 335 <message name="message">
316 选择 &quot;在网络上å‘布&quot;选项将å…许我们å‘布土地的å称,æ述,快照和地点至[SECOND_LIFE]网站。如果你å‘布的内容,根æ®ç¤¾åŒºæ ‡å‡†è§„定,涉åŠåˆ°æˆäººå†…容,你有责任对此作出声明。 336 选择 &quot;在æœç´¢ä¸­å‘布&quot;
337这个选项将会:
338- 在æœç´¢ç»“果中显示该地å—
339- 显示该地å—的公开物体
340- 在网页æœç´¢ä¸­æ˜¾ç¤ºè¿™ä¸ªåœ°å—
341 </message>
342 </alert>
343 <alert name="ClickPublishHelpLandDisabled">
344 <message name="message">
345 ä½ ä¸èƒ½è®©è¿™ä¸ªåœ°å—显示在æœç´¢ä¸­ï¼Œå› ä¸ºå®ƒæ‰€åœ¨çš„地区ç¦æ­¢è¿™æ ·åšã€‚
317 </message> 346 </message>
318 </alert> 347 </alert>
319 <alert name="ClickPublishHelpPostcard"> 348 <alert name="ClickPublishHelpPostcard">
320 <message name="message"> 349 <message name="message">
321 选择 &quot;在网络上å‘布&quot;选项将å…许我们å‘布摄影师在[SECOND_LIFE]çš„å字,工作,地点,信æ¯å’Œå¿«ç…§è‡³[SECOND_LIFE]网站。如果你å‘布的任何快照内容,根æ®ç¤¾åŒºæ ‡å‡†è§„定,涉åŠåˆ°æˆäººå†…容,你有责任对此作出声明。 350 选择 &quot;在网络上å‘布&quot;选项将å…许我们å‘布摄影师在[SECOND_LIFE]çš„åå­—ã€ä¸»é¢˜ã€åœ°ç‚¹ã€ä¿¡æ¯å’Œå¿«ç…§è‡³[SECOND_LIFE]网站。如果你å‘布的任何快照内容,根æ®ç¤¾åŒºæ ‡å‡†è§„定,涉åŠåˆ°æˆäººå†…容,你有责任对此作出声明。
322 </message> 351 </message>
323 </alert> 352 </alert>
324 <alert name="ClickPublishHelpAvatar"> 353 <alert name="ClickPublishHelpAvatar">
325 <message name="message"> 354 <message name="message">
326 选择 &quot;在网络上å‘布&quot;选项将å…许我们å‘布你的å字,图åƒï¼Œå’Œâ€˜å…³äºŽè‡ªå·±â€™çš„文本至[SECOND_LIFE]网站。 355 选择 &quot;在æœç´¢ä¸­æ˜¾ç¤º&quot; 将会:
356 - 在æœç´¢ç»“果中显示我的档案
357 - 在公开社团的页é¢ä¸­æ˜¾ç¤ºåˆ°æˆ‘的档案的链接
327 </message> 358 </message>
328 </alert> 359 </alert>
360 <alert name="ClickPartnerHelpAvatar">
361 <message name="message">
362 ä½ å¯ä»¥é€šè¿‡[SECOND_LIFE] 网站邀请å¦ä¸€ä½å±…æ°‘æˆä¸ºä½ çš„æ­æ¡£ï¼Œæˆ–者解除现存的关系。
363
364到[SECOND_LIFE]网站查询关于æ­æ¡£çš„ä¿¡æ¯å—?
365 </message>
366 <option name="GotoPage">
367 打开网页
368 </option>
369 <option name="Cancel">
370 å–消
371 </option>
372 </alert>
329 <alert name="ClickWebProfileHelpAvatar"> 373 <alert name="ClickWebProfileHelpAvatar">
330 <message name="message"> 374 <message name="message">
331 If this resident has a web profile URL set then you can: 375 如果该居民设置了网络档案URLçš„è¯ä½ å¯ä»¥:
332 * Click Load to load the page with the embedded web browser. 376 * 选择“加载“æ¥ç”¨å†…部æµè§ˆå™¨æ‰“开这个档案页é¢ã€‚
333 * Click Open to view externally in your default web browser. 377 * 选择 加载 &gt; “在外部æµè§ˆå™¨ä¸­æ‰“开†æ¥åœ¨å¤–部æµè§ˆã€‚
378 * 如果您æµè§ˆåˆ°äº†å…¶ä»–的地方,点击加载 &gt; “返回原æ¥é¡µé¢â€ æ¥å›žåˆ°å±…æ°‘çš„ Web 档案。
334 379
335When viewing your profile you can enter any URL as your Web Profile. 380在你的档案中你å¯ä»¥è¾“入任何URL作为你的网络档案然åŽæŒ‰ç¡®è®¤æ¥è®¾ç½®ã€‚
336Residents can visit the URL you specify when they view your profile. 381其他居民在观看你的档案的时候å¯ä»¥è®¿é—®ä½ æ‰€æŒ‡å®šçš„URL。
337 </message> 382 </message>
338 </alert> 383 </alert>
339 <alert name="ClickWebProfileNoWebHelpAvatar"> 384 <alert name="ClickWebProfileNoWebHelpAvatar">
340 <message name="message"> 385 <message name="message">
341 If this resident has a web profile URL set then you can: 386 如果该居民设置了网络档案URLçš„è¯ä½ å¯ä»¥:
342 * Click Open to view externally in your default web browser. 387 * 用你的默认æµè§ˆå™¨æ‰“开这个档案页é¢ã€‚
343 388
344When viewing your profile you can enter any URL as your Web Profile. 389在你的档案中你å¯ä»¥è¾“入任何URL作为你的网络档案。
345Residents can visit the URL you specify when they view your profile. 390其他居民在观看你的档案的时候å¯ä»¥è®¿é—®ä½ æ‰€æŒ‡å®šçš„URL。
346 </message> 391 </message>
347 </alert> 392 </alert>
348 <alert name="ReputationMinGreaterThanMax"> 393 <alert name="ReputationMinGreaterThanMax">
349 <message name="message"> 394 <message name="message">
350 声望最å°å€¼æ¯”最大值大。 395 声望最å°å€¼æ¯”最大值大。
351é™ä½Žæœ€å°å€¼æˆ–æ高最大值。 396请é™ä½Žæœ€å°å€¼æˆ–æ高最大值。
352 </message> 397 </message>
353 </alert> 398 </alert>
354 <alert name="MoneyMinGreaterThanMax"> 399 <alert name="MoneyMinGreaterThanMax">
355 <message name="message"> 400 <message name="message">
356 钱的最å°é™åº¦æ¯”最大é™åº¦å¤§ã€‚ 401 钱的最å°é™åº¦æ¯”最大é™åº¦å¤§ã€‚
357å¯ä»¥é™ä½Žæœ€å°å€¼æˆ–者æ高最大值。 402请é™ä½Žæœ€å°å€¼æˆ–者æ高最大值。
358 </message> 403 </message>
359 </alert> 404 </alert>
360 <alert name="OfficerTitleTooLong"> 405 <alert name="OfficerTitleTooLong">
361 <message name="message"> 406 <message name="message">
362 官员头衔最多å¯ä»¥åŒ…å«20个è¯ã€‚ 407 官员头衔最多å¯ä»¥åŒ…å«20个字。
363请选择一个较短头衔。 408请选择一个较短的头衔。
364 </message> 409 </message>
365 </alert> 410 </alert>
366 <alert name="MemberTitleTooLong"> 411 <alert name="MemberTitleTooLong">
367 <message name="message"> 412 <message name="message">
368 æˆå‘˜å¤´è¡”最多å¯ä»¥åŒ…å«20个è¯ã€‚ 413 æˆå‘˜å¤´è¡”最多å¯ä»¥åŒ…å«20个字。
369请选择一个较短的头衔。 414请选择一个较短的头衔。
370 </message> 415 </message>
371 </alert> 416 </alert>
372 <alert name="RunningLocally"> 417 <alert name="RunningLocally">
373 <message name="message"> 418 <message name="message">
374 本地è¿è¡Œ... 419 在本地è¿è¡Œ...
375没有找到你的数æ®. 420å°ä¸ä¼šç»™ä½ ä»»ä½•çš„æ•°æ®ã€‚
376 </message> 421 </message>
377 <option name="OK"> 422 <option name="OK">
378 OK 423 确定
379 </option> 424 </option>
380 </alert> 425 </alert>
381 <alert name="EjectNoMemberSelected"> 426 <alert name="EjectNoMemberSelected">
382 <message name="message"> 427 <message name="message">
383 没有选定è¦é©±é€æˆå‘˜ã€‚ 428 没有选定è¦é©±é€çš„æˆå‘˜ã€‚
384 </message> 429 </message>
385 <option name="OK"> 430 <option name="OK">
386 OK 431 确定
387 </option> 432 </option>
388 </alert> 433 </alert>
389 <alert name="ConfirmEject"> 434 <alert name="ConfirmEject">
390 <message name="message"> 435 <message name="message">
391 这将会把[MEMBER]驱é€å‡ºç¤¾å›¢ 436 这将会把 [MEMBER] 驱é€å‡ºç¤¾å›¢ã€‚
392你确定è¦ç»§ç»­å—? 437你确定è¦ç»§ç»­å—?
393 </message> 438 </message>
394 <option name="Eject"> 439 <option name="Eject">
@@ -413,16 +458,16 @@ Residents can visit the URL you specify when they view your profile.
413 <alert name="JoinGroupCannotAfford"> 458 <alert name="JoinGroupCannotAfford">
414 <message name="message"> 459 <message name="message">
415 加入该社团需花费 L$[COST]. 460 加入该社团需花费 L$[COST].
416加入该社团åŽï¼Œä½ å¹¶ä¸æ˜¯ä¸€å®šè¦ç•™æœ‰ç»“余。 461您拥有的 L$ ä¸å¤Ÿã€‚
417 </message> 462 </message>
418 </alert> 463 </alert>
419 <alert name="LandBuyPass"> 464 <alert name="LandBuyPass">
420 <message name="message"> 465 <message name="message">
421 花费L$[COST]ä½ å°±å¯ä»¥è¿›å…¥è¿™å—土地(&apos;[PARCEL_NAME]&apos;) 466 花费 L$[COST] ä½ å°±å¯ä»¥è¿›å…¥è¿™å—土地(&apos;[PARCEL_NAME]&apos;)
422[TIME]å°æ—¶ã€‚是å¦è´­ä¹°é€šè¡Œè¯? 467[TIME]å°æ—¶ã€‚是å¦è´­ä¹°é€šè¡Œè¯?
423 </message> 468 </message>
424 <option name="OK"> 469 <option name="OK">
425 OK 470 è´­ä¹°
426 </option> 471 </option>
427 <option name="Cancel"> 472 <option name="Cancel">
428 å–消 473 å–消
@@ -431,25 +476,37 @@ Residents can visit the URL you specify when they view your profile.
431 <alert name="CannotStartAuctionAlreadyForSale"> 476 <alert name="CannotStartAuctionAlreadyForSale">
432 <message name="message"> 477 <message name="message">
433 ä½ ä¸èƒ½å¯¹å·²ç»è®¾ç½®ä¸ºä»£å”®çš„土地进行 478 ä½ ä¸èƒ½å¯¹å·²ç»è®¾ç½®ä¸ºä»£å”®çš„土地进行
434æ‹å–. 如果你执æ„开始æ‹å–,必须ç§æ¤è¯¥åœŸåœ° 479æ‹å–。如果你执æ„开始æ‹å–,必须中止该土地
435的销售. 480的销售。
436 </message> 481 </message>
437 </alert> 482 </alert>
438 <alert name="SalePriceRestriction"> 483 <alert name="SalePriceRestriction">
439 <message name="message"> 484 <message name="message">
440 ä¸ç®¡å‡ºå”®ç»™ä½•äººï¼Œå‡ºå”®ä»·æ ¼å¿…é¡» &gt; L$0。 485 如果出售给任何人,出售价格必须 &gt; L$0。
441如果售价为L$0,请选定一个用户æ¥å”®å‡ºã€‚ 486如果售价为L$0,请选定一个用户æ¥å”®å‡ºã€‚
442 </message> 487 </message>
443 </alert> 488 </alert>
444 <alert name="ConfirmLandSaleChange"> 489 <alert name="ConfirmLandSaleChange">
445 <message name="message"> 490 <message name="message">
446 所选的[LAND_SIZE]平方米土地正被设置为代售。 491 所选的 [LAND_SIZE]平方米土地正被设置为代售。
447你的售价应当为 L$[SALE_PRICE]并将被审定为售给[NAME]。 492你的售价将是为 L$[SALE_PRICE]并将被授æƒå”®ç»™[NAME]。
448
449ä½ æ„¿æ„继续改å˜å—?
450 </message> 493 </message>
451 <option name="Continue"> 494 <option name="Continue">
452 继续 495 确定
496 </option>
497 <option name="Cancel">
498 å–消
499 </option>
500 </alert>
501 <alert name="ConfirmLandSaleToAnyoneChange">
502 <message name="message">
503 请注æ„: 点击 &apos;售出给任何人&apos; 将使你的土地对整个第二人生社区开放,包括当å‰ä¸åœ¨è¿™ä¸ªåœ°åŒºä¸­çš„人。
504
505所选的 [LAND_SIZE]平方米土地正被设置为代售。
506你的售价将是为 L$[SALE_PRICE]并将被授æƒå”®ç»™[NAME]。
507 </message>
508 <option name="Continue">
509 确定
453 </option> 510 </option>
454 <option name="Cancel"> 511 <option name="Cancel">
455 å–消 512 å–消
@@ -457,15 +514,15 @@ Residents can visit the URL you specify when they view your profile.
457 </alert> 514 </alert>
458 <alert name="ReturnObjectsDeededToGroup"> 515 <alert name="ReturnObjectsDeededToGroup">
459 <message name="message"> 516 <message name="message">
460 你是å¦ç¡®å®šæ„¿æ„归还在这å—土地上由社团[NAME]分享的东东至它们原先主人的库存? 517 你是å¦ç¡®å®šè¿”还在这å—土地上由社团 &apos;[NAME]&apos;
461å·²ç»è½¬è®©ç»™åˆ«çš„社团的,å¯ç§»åŠ¨çš„东东将被å½è¿˜è‡³å®ƒä»¬åŽŸå…ˆçš„主人å¤ã€‚ 518分享的物ä½è‡³å®ƒä»¬åŽŸå…ˆä¸»äººçšåº“å­˜?
462 519
463*警告* 这项æ“作将删除已转让至别的社团的ä¸å¯ç§»åŠ¨çš„东东。 520*警告* 这项æ“作将删除该社团所分享的ä¸å¯è½¬è®©çš„物体ï¼
464 521
465东东: [N] 522物体: [N]个
466 </message> 523 </message>
467 <option name="Return"> 524 <option name="Return">
468 返回 525 返还
469 </option> 526 </option>
470 <option name="Cancel"> 527 <option name="Cancel">
471 å–消 528 å–消
@@ -473,14 +530,13 @@ Residents can visit the URL you specify when they view your profile.
473 </alert> 530 </alert>
474 <alert name="ReturnObjectsOwnedByUser"> 531 <alert name="ReturnObjectsOwnedByUser">
475 <message name="message"> 532 <message name="message">
476 Are you sure you want to return all objects owned by the 533 你是å¦ç¡®å®šè¿”还居民 &apos;[NAME]&apos;
477resident &apos;[NAME]&apos; on this parcel of land 534在这地å—上拥有的所有物体到他的库存?
478back to their inventory?
479 535
480Objects: [N] 536物体: [N]个
481 </message> 537 </message>
482 <option name="Return"> 538 <option name="Return">
483 返回 539 返还
484 </option> 540 </option>
485 <option name="Cancel"> 541 <option name="Cancel">
486 å–消 542 å–消
@@ -488,12 +544,13 @@ Objects: [N]
488 </alert> 544 </alert>
489 <alert name="ReturnObjectsOwnedBySelf"> 545 <alert name="ReturnObjectsOwnedBySelf">
490 <message name="message"> 546 <message name="message">
491 你是å¦ç¡®å®šæ„¿æ„归还你在这å—土地上拥有的所有东东至你的库存? 547 你是å¦ç¡®å®šæ„¿æ„返还你在这å—土地上
548拥有的所有物体至你的库存?
492 549
493东东: [N] 550物体: [N]个
494 </message> 551 </message>
495 <option name="Return"> 552 <option name="Return">
496 返回 553 返还
497 </option> 554 </option>
498 <option name="Cancel"> 555 <option name="Cancel">
499 å–消 556 å–消
@@ -501,15 +558,16 @@ Objects: [N]
501 </alert> 558 </alert>
502 <alert name="ReturnObjectsNotOwnedBySelf"> 559 <alert name="ReturnObjectsNotOwnedBySelf">
503 <message name="message"> 560 <message name="message">
504 你是å¦ç¡®å®šæ„¿æ„归还在这å—土地上所有ä¸å±žäºŽä½ è‡ªå·±çš„东东至它们主人的库存? 561 你是å¦ç¡®å®šè¿”还在这å—土地上所有ä¸å±žäºŽä½ è‡ªå·±çš„物体至
505å·²ç»è½¬è®©ç»™åˆ«çš„社团的,å¯ç§»åŠ¨çš„东东将被归还至它们原先的主人处。 562它们主人的库存?å·²ç»è½¬è®©ç»™åˆ«çš„社团的,å¯è½¬è®©çš„物体将
563被归还至它们原先的主人处。
506 564
507*警告* 这项æ“作将删除已转让至别的社团的ä¸å¯ç§»åŠ¨çš„东东。 565*警告* 这项æ“作将删除该社团所分享的ä¸å¯è½¬è®©çš„物体ï¼
508 566
509东东: [N] 567物体: [N]个
510 </message> 568 </message>
511 <option name="Return"> 569 <option name="Return">
512 返回 570 返还
513 </option> 571 </option>
514 <option name="Cancel"> 572 <option name="Cancel">
515 å–消 573 å–消
@@ -517,18 +575,17 @@ Objects: [N]
517 </alert> 575 </alert>
518 <alert name="ReturnObjectsNotOwnedByUser"> 576 <alert name="ReturnObjectsNotOwnedByUser">
519 <message name="message"> 577 <message name="message">
520 Are you sure you want to return all objects NOT owned 578 你是å¦ç¡®å®šè¿”还在这å—土地上所有*ä¸*属于居民 [NAME] 的物体至
521by [NAME] on this parcel of land back to their owner&apos;s inventory? 579它们主人的库存? å·²ç»è½¬è®©ç»™åˆ«çš„社团的,å¯è½¬è®©çš„物体将
522Transferable objects deeded to a group will be 580被归还至它们原先的主人处。
523returned to their previous owners.
524 581
525*WARNING* This will delete the non-transferable objects 582*警告* 这项æ“作将删除该社团所分享的ä¸å¯è½¬è®©çš„物体ï¼
526deeded to the group! 583
527 584
528Objects: [N] 585物体: [N]个
529 </message> 586 </message>
530 <option name="Return"> 587 <option name="Return">
531 返回 588 返还
532 </option> 589 </option>
533 <option name="Cancel"> 590 <option name="Cancel">
534 å–消 591 å–消
@@ -536,11 +593,10 @@ Objects: [N]
536 </alert> 593 </alert>
537 <alert name="ReturnAllTopObjects"> 594 <alert name="ReturnAllTopObjects">
538 <message name="message"> 595 <message name="message">
539 Are you sure you want to return all objects 596 你确定è¦è¿”还所有该区域中的物体至他们原先主人的库存中å—?
540in this region back to their owner&apos;s inventory?
541 </message> 597 </message>
542 <option name="Return"> 598 <option name="Return">
543 返回 599 返还
544 </option> 600 </option>
545 <option name="Cancel"> 601 <option name="Cancel">
546 å–消 602 å–消
@@ -548,7 +604,7 @@ in this region back to their owner&apos;s inventory?
548 </alert> 604 </alert>
549 <alert name="DisableAllTopObjects"> 605 <alert name="DisableAllTopObjects">
550 <message name="message"> 606 <message name="message">
551 Are you sure you want to disable all objects in this region? 607 你确定è¦ç¦æ­¢è¯¥åŒºåŸŸä¸­çš„所有物体å—?
552 </message> 608 </message>
553 <option name="Disable"> 609 <option name="Disable">
554 ç¦æ­¢ 610 ç¦æ­¢
@@ -559,12 +615,14 @@ in this region back to their owner&apos;s inventory?
559 </alert> 615 </alert>
560 <alert name="ReturnObjectsNotOwnedByGroup"> 616 <alert name="ReturnObjectsNotOwnedByGroup">
561 <message name="message"> 617 <message name="message">
562 是å¦å½’还这å—土地上ä¸ç”±ç¤¾å›¢[NAME]分享的东东至它们的主人处? 618 是å¦å½’还这å—土地上ä¸ç”±
619社团 [NAME] 分享的物体
620至它们的主人处?
563 621
564对象: [N] 622物体: [N]个
565 </message> 623 </message>
566 <option name="Return"> 624 <option name="Return">
567 返回 625 返还
568 </option> 626 </option>
569 <option name="Cancel"> 627 <option name="Cancel">
570 å–消 628 å–消
@@ -572,9 +630,9 @@ in this region back to their owner&apos;s inventory?
572 </alert> 630 </alert>
573 <alert name="UnableToDisableOutsideScripts"> 631 <alert name="UnableToDisableOutsideScripts">
574 <message name="message"> 632 <message name="message">
575 无法废除外部脚本。 633 无法ç¦ç”¨å¤–部脚本。
576这整å—区域都是正常状æ€(ä¸å®‰å…¨). 634æ•´å—区域都是已å¯ç”¨ä¼¤å®³(ä¸å®‰å…¨)。
577脚本必须被å…许è¿è¡Œï¼Œæžªæ‰èƒ½å¤Ÿå·¥ä½œã€‚ 635脚本必须被å…许è¿è¡Œï¼Œæ‰èƒ½ä½¿ç”¨æ­¦å™¨ã€‚
578 </message> 636 </message>
579 </alert> 637 </alert>
580 <alert name="MustBeInParcel"> 638 <alert name="MustBeInParcel">
@@ -585,7 +643,7 @@ in this region back to their owner&apos;s inventory?
585 </alert> 643 </alert>
586 <alert name="PromptRecipientEmail"> 644 <alert name="PromptRecipientEmail">
587 <message name="message"> 645 <message name="message">
588 请键入接å—者的电å­é‚®ä»¶åœ°å€ã€‚ 646 请键入收件人的电å­é‚®ä»¶åœ°å€ã€‚
589 </message> 647 </message>
590 </alert> 648 </alert>
591 <alert name="PromptSelfEmail"> 649 <alert name="PromptSelfEmail">
@@ -593,41 +651,30 @@ in this region back to their owner&apos;s inventory?
593 请键入你的电å­é‚®ä»¶åœ°å€ã€‚ 651 请键入你的电å­é‚®ä»¶åœ°å€ã€‚
594 </message> 652 </message>
595 </alert> 653 </alert>
596 <alert name="ErrorProcessingSnapshot"> 654 <alert name="PromptMissingSubjMsg">
597 <message name="message"> 655 <message name="message">
598 å¤ç快照数æ®é”™è¯¯ 656 以默认标题或内容用电å­é‚®ä»¶å‘é€å¿«ç…§å—?
599 </message> 657 </message>
600 </alert> 658 <option name="OK">
601 <alert name="ConfirmNotecardSave"> 659 确定
602 <message name="message">
603 åªæœ‰ä¿å­˜è¿™å¼ æ示å¡ä¹‹åŽï¼Œæ­¤é¡¹ç‰©å“æ‰å¯ä»¥å¤åˆ¶æˆ–查看。是å¦ä¿å­˜æ示å¡ï¼Ÿ
604 </message>
605 <option name="Save">
606 是的,请ä¿å­˜
607 </option> 660 </option>
608 <option name="Cancel"> 661 <option name="Cancel">
609 å–消ä¿å­˜ 662 å–消
610 </option> 663 </option>
611 </alert> 664 </alert>
612 <alert name="RemoveMultipleFromFriends"> 665 <alert name="ErrorProcessingSnapshot">
613 <message name="message"> 666 <message name="message">
614 你希望从好å‹åˆ—表中移除若干好å‹å—? 667 处ç†å¿«ç§æ•°æ®é™è¯¯
615 </message> 668 </message>
616 <option name="Remove">
617 是的,我è¦ç§»é™¤
618 </option>
619 <option name="Cancel">
620 å–消
621 </option>
622 </alert> 669 </alert>
623 <alert name="ErrorEncodingSnapshot"> 670 <alert name="ErrorEncodingSnapshot">
624 <message name="message"> 671 <message name="message">
625 ç¼–ç å¿«ç…§é”™è¯¯! 672 ç¼–ç å¿«ç…§æ—¶å‘生错误
626 </message> 673 </message>
627 </alert> 674 </alert>
628 <alert name="ErrorUploadingPostcard"> 675 <alert name="ErrorUploadingPostcard">
629 <message name="message"> 676 <message name="message">
630 上传明信片时出错,出于以下原因: [REASON]。 677 å‘é€å¿«ç…§æ—¶å‡ºçŽ°é—®é¢˜ï¼Œå‡ºäºŽä»¥ä¸‹åŽŸå› : [REASON]。
631 </message> 678 </message>
632 </alert> 679 </alert>
633 <alert name="ErrorUploadingReportScreenshot"> 680 <alert name="ErrorUploadingReportScreenshot">
@@ -637,99 +684,78 @@ in this region back to their owner&apos;s inventory?
637 </alert> 684 </alert>
638 <alert name="MustAgreeToLogIn"> 685 <alert name="MustAgreeToLogIn">
639 <message name="message"> 686 <message name="message">
640 ä½ å¿…é¡»åŒæ„æœåŠ¡åè®®æ‰èƒ½ç»§ç»­ç™»é™†è‡³[SECOND_LIFE]。 687 ä½ å¿…é¡»åŒæ„æœåŠ¡åè®®æ‰èƒ½ç»§ç»­ç™»é™†è‡³ [SECOND_LIFE]。
641 </message> 688 </message>
642 </alert> 689 </alert>
643 <alert name="CouldNotPutOnOutfit"> 690 <alert name="CouldNotPutOnOutfit">
644 <message name="message"> 691 <message name="message">
645 无法装载é置。 692 无法装载è£æŸã€‚
646é置文件夹ä¸åŒ…å«è¡£ç‰©ï¼Œ 693装æŸæ–‡ä»¶å¤¹ä¸­æ²¡æœ‰è¡£ç‰©ã€èº«ä½“部ä½ã€æˆ–附件。
647 </message> 694 </message>
648 </alert> 695 </alert>
649 <alert name="CannotWearTrash"> 696 <alert name="CannotWearTrash">
650 <message name="message"> 697 <message name="message">
651 无法使用垃圾æ å†…的衣物或身体部ä½ã€‚ 698 无法使用垃圾箱内的衣物或身体部ä½ã€‚
652 </message> 699 </message>
653 </alert> 700 </alert>
654 <alert name="CannotWearInfoNotComplete"> 701 <alert name="CannotWearInfoNotComplete">
655 <message name="message"> 702 <message name="message">
656 无法使用该物å“,因为其完整信æ¯æ˜¾ç¤ºå…¶æš‚ä¸å¯ç”¨ã€‚请ç¨å€™å†è¯•ã€‚ 703 无法穿上该物å“,因为它还没有加载完。请ç¨å€™å†è¯•ã€‚
657 </message> 704 </message>
658 </alert> 705 </alert>
659 <alert name="MustHaveAccountToLogInNoLinks"> 706 <alert name="MustHaveAccountToLogIn">
660 <message name="message"> 707 <message name="message">
661 你必须先创建一个新å¸æˆ·æ‰èƒ½ç™»é™†åˆ°[SECOND_LIFE]. 708 å“Žå‘€ï¼æœ‰ä»€ä¹ˆåœ°æ–¹æ²¡å¡«ä¸Šã€‚
709您必须输入您的化身的å和姓。
710
711您需è¦ä¸€ä¸ªå¸æˆ·æ‰èƒ½è¿›å…¥[SECOND_LIFE]。您希望现在创建一个å—?
662 </message> 712 </message>
663 <option name="OK"> 713 <option name="OK">
664 OK 714 创建新å¸æˆ·
665 </option> 715 </option>
666 <option name="Cancel"> 716 <option name="Cancel">
667 å消 717 å†è¯•ä¸€æ¬¡å§â€¦
668 </option> 718 </option>
669 </alert> 719 </alert>
670 <alert name="MustHaveAccountToLogIn"> 720 <alert name="AddClassified">
671 <message name="message"> 721 <message name="message">
672 你必须先创建一个新å¸æˆ·æ‰èƒ½ç™»é™†åˆ°[SECOND_LIFE]. 722 分类广告会在查找å录的 &apos;分类广告&apos; æ ç›®é‡Œä¿ç•™ä¸€å‘¨æ—¶é—´ã€‚
723
673 724
674现在到www.secondlife.com注册新å¸æˆ·? 725填写你的广告,然åŽç‚¹å‡» &apos;å‘布...&apos;,å³ä¼šæ·»åŠ å¹¿å‘Šè‡³å¹¿å‘Šå录中。
726当点击å‘布时,你将被è¦æ±‚支付å‘布广告费用。 大é¢æ”¯ä»˜æ„味ç€ä½ çš„广告会在åå•è¾ƒå‰çš„地方出现,并且当用关键è¯æŸ¥æ‰¾æ—¶ï¼Œä½ çš„广告也出现在查询结果较高的ä½ç½®ä¸Šã€‚
675 </message> 727 </message>
676 <option name="OK"> 728 <option name="OK">
677 OK 729 确定
678 </option> 730 </option>
679 <option name="Cancel"> 731 <option name="Cancel">
680 å–消 732 å–消
681 </option> 733 </option>
734 <ignore name="ignore">
735 添加新分类广告时
736 </ignore>
682 </alert> 737 </alert>
683 <alert name="GrantedModifyRights"> 738 <alert name="DeleteClassified">
684 <message name="message">
685 ä½ å·²ç»è¢«æŽˆäºˆç‰¹æƒï¼Œä½ å¯ä»¥ä»»æ„修改[FIRST_NAME] [LAST_NAME]的东东。
686 </message>
687 </alert>
688 <alert name="RevokedModifyRights">
689 <message name="message">
690 你的特æƒå·²ç»è¢«æ’¤å›žï¼Œä½ ä¸å¯ä»¥å†ä»»æ„修改[FIRST_NAME] [LAST_NAME]的东东。
691 </message>
692 </alert>
693 <alert name="InvalidTerrainBitDepth">
694 <message name="message">
695 无法设定区域的质地:
696
697目标质地 [TEXTURE_NUM] 的色彩格å¼[TEXTURE_BIT_DEPTH]无效.
698
699请把目å‰çš„目标质地[TEXTURE_NUM]更替为24比特 512x512分辨率,或者更å°çš„显示图片,然åŽç‚¹å‡» &quot;设置&quot;.
700 </message>
701 </alert>
702 <alert name="InvalidTerrainSize">
703 <message name="message">
704 无法设置区域的质地:
705
706目标质地[TEXTURE_NUM]的尺寸 [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y]过大.
707
708请把目å‰çš„目标质地[TEXTURE_NUM]替æ¢æˆ24比特 512x512分辨率或者更å°çš„显示图片,然åŽç‚¹å‡» &quot;设置&quot;.
709 </message>
710 </alert>
711 <alert name="AddClassified">
712 <message name="message"> 739 <message name="message">
713 分类广告会在查找å录的&apos;Classified&apos;æ ç›®é‡Œä¿ç•™ä¸€å‘¨æ—¶é—´ã€‚ 740 删除分类广告 &apos;[å称]&apos;?
714 741å°†ä¸ä¼šé€€è¿˜å·²ä»˜çš„费用。
715
716填写你的广告,然åŽç‚¹å‡»&apos;å‘布...&apos;,既添加广告至广告å录中。
717当点击å‘布时,你将被è¦æ±‚支付å‘布广告费用. 大é¢æ”¯ä»˜æ„味ç€ä½ çš„广告会在åå•è¾ƒå‰çš„地方出现,并且当用关键è¯æŸ¥æ‰¾æ—¶ï¼Œä½ çš„广告也出现在查询结果较高的ä½ç½®ä¸Šã€‚
718 </message> 742 </message>
719 <option name="OK"> 743 <option name="Delete">
720 OK 744 删除
721 </option> 745 </option>
722 <option name="Cancel"> 746 <option name="Cancel">
723 å–消 747 å–消
724 </option> 748 </option>
725 </alert> 749 </alert>
726 <alert name="DeleteClassified"> 750 <alert name="ClassifiedSave">
727 <message name="message"> 751 <message name="message">
728 Delete分类 &apos;[å称]&apos;? 752 ä¿å­˜å¯¹åˆ†ç±»å¹¿å‘Š [NAME] 的修改?
729付款åŽä¸ä¼šé€€è´¹ã€‚
730 </message> 753 </message>
731 <option name="Delete"> 754 <option name="Save">
732 删除 755 ä¿å­˜
756 </option>
757 <option name="Don&apos;tSave">
758 ä¸è¦ä¿å­˜
733 </option> 759 </option>
734 <option name="Cancel"> 760 <option name="Cancel">
735 å–消 761 å–消
@@ -737,7 +763,7 @@ in this region back to their owner&apos;s inventory?
737 </alert> 763 </alert>
738 <alert name="DeleteAvatarPick"> 764 <alert name="DeleteAvatarPick">
739 <message name="message"> 765 <message name="message">
740 删除挑选 [挑选]? 766 åˆ é™¤æ”¶è— [PICK]?
741 </message> 767 </message>
742 <option name="Delete"> 768 <option name="Delete">
743 删除 769 删除
@@ -749,10 +775,10 @@ in this region back to their owner&apos;s inventory?
749 <alert name="DisplayChangeRestart"> 775 <alert name="DisplayChangeRestart">
750 <message name="message"> 776 <message name="message">
751 æœ‰ä¸€äº›ä½ æ‰§è¡Œçš„æ˜¾ç¤ºè®¾ç½®çš„æ”¹å˜ 777 有一些你执行的显示设置的改å˜
752会è¦æ±‚[SECOND_LIFE]ç«‹å³å…³é—­ï¼Œ 778éœ€è¦ [SECOND_LIFE] ç«‹å³å…³é—­ï¼Œ
753这会导致进程中的所有工作丢失。 779这会导致进行中的所有工作丢失。
754 780
755应用改å˜å¹¶é€€å‡º 781应用更改并退出?
756 </message> 782 </message>
757 <option name="ApplyandQuit"> 783 <option name="ApplyandQuit">
758 应用并退出 784 应用并退出
@@ -763,10 +789,10 @@ in this region back to their owner&apos;s inventory?
763 </alert> 789 </alert>
764 <alert name="PromptGoToEventsPage"> 790 <alert name="PromptGoToEventsPage">
765 <message name="message"> 791 <message name="message">
766 是å¦è·³è‡³[SECOND_LIFE]事件网页? 792 是å¦è½¬åˆ° [SECOND_LIFE] 事件网页?
767 </message> 793 </message>
768 <option name="GotoPage"> 794 <option name="GotoPage">
769 回主页 795 打开网页
770 </option> 796 </option>
771 <option name="Cancel"> 797 <option name="Cancel">
772 å–消 798 å–消
@@ -779,25 +805,36 @@ in this region back to their owner&apos;s inventory?
779 </alert> 805 </alert>
780 <alert name="SelectItemToView"> 806 <alert name="SelectItemToView">
781 <message name="message"> 807 <message name="message">
782 请选择ä¸ä¸ªç‰©å“å…°æ¥æŸ¥çœ‹ã€‚ 808 请选择éœè¦æŸ¥çœ‹çš„æ案。
783 </message> 809 </message>
784 </alert> 810 </alert>
785 <alert name="SelectProposalToView"> 811 <alert name="SelectProposalToView">
786 <message name="message"> 812 <message name="message">
787 选择查看一个æ案. 813 请选择需è¦æŸ¥çœ‹çš„æ案。
788 </message> 814 </message>
789 </alert> 815 </alert>
790 <alert name="SelectHistoryItemToView"> 816 <alert name="SelectHistoryItemToView">
791 <message name="message"> 817 <message name="message">
792 请选择一个历å²ç‰©å“æ¥æŸ¥çœ‹ã€‚ 818 请选择一个历å²é¡¹ç›®æ¥æŸ¥çœ‹ã€‚
793 </message> 819 </message>
794 </alert> 820 </alert>
795 <alert name="ResetShowNextTimeDialogs"> 821 <alert name="ResetShowNextTimeDialogs">
796 <message name="message"> 822 <message name="message">
797 Reset all &apos;Show next time&apos; dialogs? 823 您希望é‡æ–°å¯ç”¨è¿™äº›ä¹‹å‰å¸Œæœ› ‘ä¸å†æ˜¾ç¤ºâ€™ 的对è¯æ¡†å—?
798 </message> 824 </message>
799 <option name="OK"> 825 <option name="OK">
800 OK 826 确定
827 </option>
828 <option name="Cancel">
829 å–消
830 </option>
831 </alert>
832 <alert name="SkipShowNextTimeDialogs">
833 <message name="message">
834 您希望ç¦ç”¨æ‰€æœ‰å¯ä»¥è¢«ç•¥è¿‡çš„对è¯æ¡†å—?
835 </message>
836 <option name="OK">
837 确定
801 </option> 838 </option>
802 <option name="Cancel"> 839 <option name="Cancel">
803 å–消 840 å–消
@@ -805,16 +842,32 @@ in this region back to their owner&apos;s inventory?
805 </alert> 842 </alert>
806 <alert name="CacheWillClear"> 843 <alert name="CacheWillClear">
807 <message name="message"> 844 <message name="message">
808 é‡å¯[SECOND_LIFE]åŽå°†æ¸…除缓存。 845 缓存将在é‡æ–°å¯åŠ¨ [SECOND_LIFE] åŽæ¸…除。
846 </message>
847 </alert>
848 <alert name="CacheWillBeMoved">
849 <message name="message">
850 缓存将在é‡æ–°å¯åŠ¨ [SECOND_LIFE] åŽç§»åŠ¨ã€‚
851注æ„: 这样将会清除缓存。
852 </message>
853 </alert>
854 <alert name="ChangeConnectionPort">
855 <message name="message">
856 端å£è®¾å®šå°†åœ¨é‡æ–°å¯åŠ¨ [SECOND_LIFE] åŽç”Ÿæ•ˆã€‚
857 </message>
858 </alert>
859 <alert name="ChangeSkin">
860 <message name="message">
861 新皮肤将在 [SECOND_LIFE] é‡æ–°å¯åŠ¨åŽåº”用。
809 </message> 862 </message>
810 </alert> 863 </alert>
811 <alert name="GoToAuctionPage"> 864 <alert name="GoToAuctionPage">
812 <message name="message"> 865 <message name="message">
813 是å¦è·³è‡³[SECOND_LIFE]ç½‘é¡µæŸ¥çœ‹æœ‰å£°ä¿¡æ¯ 866 是å¦è·³è‡³[SECOND_LIFE]网页查看æåä¿¡æ¯
814或者å‚与投标? 867或者å‚与投标?
815 </message> 868 </message>
816 <option name="GotoPage"> 869 <option name="GotoPage">
817 回主页 870 打开网页
818 </option> 871 </option>
819 <option name="Cancel"> 872 <option name="Cancel">
820 å–消 873 å–消
@@ -825,10 +878,10 @@ in this region back to their owner&apos;s inventory?
825 ä¿å­˜æ›´æ”¹? 878 ä¿å­˜æ›´æ”¹?
826 </message> 879 </message>
827 <option name="Save"> 880 <option name="Save">
828 存储 881 ä¿å­˜
829 </option> 882 </option>
830 <option name="Don&apos;tSave"> 883 <option name="Don&apos;tSave">
831 ç¦æ­¢å‚¨å­˜ 884 ä¸è¦ä¿å­˜
832 </option> 885 </option>
833 <option name="Cancel"> 886 <option name="Cancel">
834 å–消 887 å–消
@@ -848,31 +901,31 @@ in this region back to their owner&apos;s inventory?
848 </alert> 901 </alert>
849 <alert name="GestureSaveFailedObjectNotFound"> 902 <alert name="GestureSaveFailedObjectNotFound">
850 <message name="message"> 903 <message name="message">
851 无法ä¿å­˜åŠ¨ä½œï¼Œå› ä¸ºæ‰¾ä¸åˆ°ç›®æ ‡æˆ–相关ç®æ ‡ã€‚ 904 无法ä¿å­˜åŠ¨ä½œï¼Œå› ä¸ºæ‰¾ä¸åˆ°ç‰©ä½“或相关物体的内容。
852目标å¯èƒ½åœ¨èŒƒå›´ä¹‹å¤–或已被删除。 905物体å¯èƒ½åœ¨èŒƒå›´ä¹‹å¤–或已被删除。
853 </message> 906 </message>
854 </alert> 907 </alert>
855 <alert name="GestureSaveFailedReason"> 908 <alert name="GestureSaveFailedReason">
856 <message name="message"> 909 <message name="message">
857 ä¿å­˜åŠ¨ä½œæ—¶å‡ºé”™ï¼Œå‡ºäºŽä»¥ä¸‹åŽŸå› : [REASON].请ç¨å€™å°è¯•é‡æ–°ä¿å­˜åŠ¨ä½œã€‚ 910 ä¿å­˜åŠ¨ä½œæ—¶å‡ºé”™ï¼Œå‡ºäºŽä»¥ä¸‹åŽŸå› : [REASON]。请ç¨å€™å°è¯•é‡æ–°ä¿å­˜åŠ¨ä½œã€‚
858 </message> 911 </message>
859 </alert> 912 </alert>
860 <alert name="SaveNotecardFailObjectNotFound"> 913 <alert name="SaveNotecardFailObjectNotFound">
861 <message name="message"> 914 <message name="message">
862 无法ä¿å­˜å片,因为无法找到目标或相关目标库存。 915 无法ä¿å­˜è®°äº‹å¡ï¼Œå› ä¸ºæ‰¾ä¸åˆ°ç‰©ä½“或相关物ä½çš„内容。
863目标å¯èƒ½åœ¨èŒƒå›´ä¹‹å¤–或被删除。 916物体å¯èƒ½åœ¨èŒƒå›´ä¹‹å¤–或已被删除。
864 </message> 917 </message>
865 </alert> 918 </alert>
866 <alert name="SaveNotecardFailReason"> 919 <alert name="SaveNotecardFailReason">
867 <message name="message"> 920 <message name="message">
868 ä¿å­˜æ³¨é‡Šå¡æ—¶å‡ºé”™ï¼Œå‡ºäºŽä»¥ä¸‹åŽŸå› : [REASON]。请ç¨å€™å°è¯•é‡æ–°ä¿å­˜æ³¨é‡Šå¡ã€‚ 921 ä¿å­˜è®°äº‹å¡æ—¶å‡ºé”™ï¼Œå‡ºäºŽä»¥ä¸‹åŽŸå› : [REASON]。请ç¨å€™å°è¯•é‡æ–°ä¿å­˜è®°äº‹å¡ã€‚
869 </message> 922 </message>
870 </alert> 923 </alert>
871 <alert name="ScriptCannotUndo"> 924 <alert name="ScriptCannotUndo">
872 <message name="message"> 925 <message name="message">
873 无法撤销对你的脚本版本的所有更改. 926 无法撤销对你的脚本版本的所有更改.
874你是å¦æ„¿æ„载入æœåŠ¡å™¨ä¸Šæ¬¡ä¿å­˜çš„版本? 927你是å¦æ„¿æ„载入æœåŠ¡å™¨ä¸Šæ¬¡ä¿å­˜çš„版本?
875(æ示: 此次æ“作无法撤销.) 928(***警告***: 此次æ“作无法撤销.)
876 </message> 929 </message>
877 <option name="Yes"> 930 <option name="Yes">
878 是 931 是
@@ -888,19 +941,19 @@ in this region back to their owner&apos;s inventory?
888 </alert> 941 </alert>
889 <alert name="SaveScriptFailObjectNotFound"> 942 <alert name="SaveScriptFailObjectNotFound">
890 <message name="message"> 943 <message name="message">
891 无法ä¿ç•™è„šæœ¬ï¼Œå› ä¸ºæ²¡æœæ‰¾åˆ°åŽŸæœ¬ä¸œä¸œã€‚ 944 无法ä¿å­˜è„šæœ¬ï¼Œå› ä¸ºæ‰¾ä¸åˆ°å…¶æ‰€åœ¨çš„物体。
892东东å¯èƒ½åœ¨èŒƒå›´ä¹‹å¤–或被删除。 945该物体å¯èƒ½åœ¨èŒƒå›´ä¹‹å¤–或已被删除。
893 </message> 946 </message>
894 </alert> 947 </alert>
895 <alert name="SaveBytecodeFailReason"> 948 <alert name="SaveBytecodeFailReason">
896 <message name="message"> 949 <message name="message">
897 ä¿å­˜æ±‡ç¼–脚本时出错,出于以下原因: [REASON].请ç¨å€™å°è¯•é‡æ–°ä¿å­˜è„šæœ¬ã€‚ 950 ä¿å­˜æ±‡ç¼–脚本时出错,出于以下原因: [REASON]。请ç¨å€™å°è¯•é‡æ–°ä¿å­˜è„šæœ¬ã€‚
898 </message> 951 </message>
899 </alert> 952 </alert>
900 <alert name="CouldNotStartStopScript"> 953 <alert name="CouldNotStartStopScript">
901 <message name="message"> 954 <message name="message">
902 无法开始或åœè„šæœ¬ï¼Œå› ä¸ºæ²¡æœæ‰¾åˆ°åŽŸæœ¬ä¸œä¸œã€‚ 955 无法开始或åœæ­¢è„šæœ¬ï¼Œå› ä¸ºæ‰¾ä¸åˆ°å…¶æ‰€åœ¨çš„物体。
903东东å¯èƒ½åœ¨èŒƒå›´ä¹‹å¤–或被删除。 956该物体å¯èƒ½åœ¨èŒƒå›´ä¹‹å¤–或已被删除。
904 </message> 957 </message>
905 </alert> 958 </alert>
906 <alert name="CannotDownloadFile"> 959 <alert name="CannotDownloadFile">
@@ -910,23 +963,23 @@ in this region back to their owner&apos;s inventory?
910 </alert> 963 </alert>
911 <alert name="CannotWriteEncode"> 964 <alert name="CannotWriteEncode">
912 <message name="message"> 965 <message name="message">
913 无法解密文件 [[FILE]] 966 无法编ç æ–‡ä»¶ [[FILE]]
914 </message> 967 </message>
915 </alert> 968 </alert>
916 <alert name="CannotWriteFile"> 969 <alert name="CannotWriteFile">
917 <message name="message"> 970 <message name="message">
918 无法写入文件[[FILE]] 971 无法写入文件 [[FILE]]
919 </message> 972 </message>
920 </alert> 973 </alert>
921 <alert name="CannotLoadWearable"> 974 <alert name="CannotLoadWearable">
922 <message name="message"> 975 <message name="message">
923 对ä¸èµ·ï¼Œä¸èƒ½è½½å…¥è¡£æœã€‚ 976 对ä¸èµ·ï¼Œè½½å…¥è¡£æœå¤±è´¥ã€‚
924 </message> 977 </message>
925 </alert> 978 </alert>
926 <alert name="ConfirmDeleteComplicated"> 979 <alert name="ConfirmDeleteComplicated">
927 <message name="message"> 980 <message name="message">
928 至少有一件所选东东被é”定,ä¸å¯å¤åˆ¶,或属于其他人。 981 您选择的物å“中至少有一件被é”定,ä¸å¯å¤åˆ¶ï¼Œæˆ–者属于其他人。
929你确定è¦åˆ é™¤æ‰€æœ‰ç‰©å“å—? 982您确定è¦åˆ é™¤æ‰€æœ‰ç‰©å“å—?
930 </message> 983 </message>
931 <option name="Yes"> 984 <option name="Yes">
932 是 985 是
@@ -937,22 +990,83 @@ in this region back to their owner&apos;s inventory?
937 </alert> 990 </alert>
938 <alert name="DisplaySettingsSafe"> 991 <alert name="DisplaySettingsSafe">
939 <message name="message"> 992 <message name="message">
940 基于您的特殊安全è¦æ±‚,显示设置 993 显示设置已调整为安全水平,因为您指定了 -safe 选项。
941å·²ç»è¢«è®¾æˆå®‰å…¨æ°´å¹³æ¨¡å¼ã€‚
942 </message> 994 </message>
943 </alert> 995 </alert>
996 <alert name="UnsupportedGLRequirements">
997 <message name="message">
998 您似乎没有满足第二人生的系统需求的硬件。第二人生需è¦æ”¯æŒå¤šé‡æè´¨ (multitexture)
999çš„ OpenGL 显示å¡ã€‚如果您满足这个æ¡ä»¶çš„è¯ï¼Œä¹Ÿè®¸æ‚¨éœ€è¦ç¡®è®¤å·²ç»
1000安装了您的显示å¡çš„最新驱动程åºã€ä»¥åŠæ“作系统的 Service Pack 和补ä¸ã€‚
1001
1002如果您还是é‡åˆ°é—®é¢˜ï¼Œè¯·è®¿é—®: http://www.secondlife.com/support
1003 </message>
1004 </alert>
1005 <alert name="UnsupportedHardware">
1006 <message name="message">
1007 警告: 您的系统没有满足第二人生的最低系统需求。如果您继续使用第二人生,您å¯èƒ½ä¼šå¾—到糟糕的性能体验。ä¸å¹¸çš„是,我们无法为ä¸æ”¯æŒçš„系统é…备æ供技术支æŒã€‚
1008
1009MINSPECS
1010您希望访问 [_URL] 得到更多信æ¯å—?
1011 </message>
1012 <ignore name="ignore">
1013 检测到ä¸æ”¯æŒçš„硬件时
1014 </ignore>
1015 <option name="Yes">
1016 是
1017 </option>
1018 <option name="No">
1019 å¦
1020 </option>
1021 </alert>
1022 <alert name="UnsupportedGPU">
1023 <message name="message">
1024 - 您的显示å¡æ²¡æœ‰è¾¾åˆ°æœ€ä½Žéœ€æ±‚。
1025 </message>
1026 </alert>
1027 <alert name="UnsupportedCPU">
1028 <message name="message">
1029 - 您的 CPU(中央处ç†å™¨)速度没有达到最低需求。
1030 </message>
1031 </alert>
1032 <alert name="UnsupportedRAM">
1033 <message name="message">
1034 - 您的系统内存没有达到最低需求。
1035 </message>
1036 </alert>
1037 <alert name="UnknownGPU">
1038 <message name="message">
1039 您的系统中安装了一个我们所ä¸çŸ¥é“的显å¡ã€‚
1040è¿™ç»å¸¸å‘生于我们还没有æ¥å¾—åŠæµ‹è¯•çš„新硬件上。
1041第二人生将很å¯èƒ½æ­£å¸¸è¿è¡Œï¼Œä½†æ‚¨ä¹Ÿè®¸è¦
1042调节您的图形设定到更åˆé€‚的水平上。
1043(编辑 &gt; 首选项 &gt; 图åƒ).
1044 </message>
1045 <ignore name="ignore">
1046 检测到未知的显示å¡æ—¶
1047 </ignore>
1048 </alert>
944 <alert name="DisplaySettingsRecommended"> 1049 <alert name="DisplaySettingsRecommended">
945 <message name="message"> 1050 <message name="message">
946 显示设置已ç»è¢«è®¾ç½®åœ¨æŽ¨è的水平上,推è水平是基于您计算机的系统é…置得出的。 1051 基于您计算机的系统é…置,显示设置已ç»è¢«è®¾ç½®åœ¨æŽ¨è的水平上。
947 </message> 1052 </message>
948 <option name="OK"> 1053 <option name="OK">
949 OK 1054 确定
950 </option> 1055 </option>
951 </alert> 1056 </alert>
1057 <alert name="DisplaySettingsNoShaders">
1058 <message name="message">
1059 [SECOND_LIFE] 在åˆå§‹åŒ–图形驱动程åºæ—¶å´©æºƒäº†ã€‚
1060图形质é‡å°†è¢«è®¾ä¸ºâ€œä½Žâ€ä»¥é¿å…常è§çš„驱动程åºé”™è¯¯ã€‚
1061这将ç¦ç”¨æŸäº›å›¾å½¢ç‰¹æ€§ã€‚
1062我们建议更新您的显示å¡é©±åŠ¨ç¨‹åºã€‚
1063图形质é‡å¯ä»¥åœ¨é¦–选项 → 图åƒä¸­æ高。
1064 </message>
1065 </alert>
952 <alert name="CannotRequestDomain"> 1066 <alert name="CannotRequestDomain">
953 <message name="message"> 1067 <message name="message">
954 无法连接到æœåŠ¡å™¨. 1068 无法连接到æœåŠ¡å™¨ã€‚
955无法请求连接域å: [HOST] 1069无法请求域å: [HOST]
956 </message> 1070 </message>
957 </alert> 1071 </alert>
958 <alert name="CannotFindDomain"> 1072 <alert name="CannotFindDomain">
@@ -961,11 +1075,11 @@ in this region back to their owner&apos;s inventory?
961è¿™å¯èƒ½æ˜¯ç½‘络连接故障或æœåŠ¡å™¨å‡ºé”™ 1075è¿™å¯èƒ½æ˜¯ç½‘络连接故障或æœåŠ¡å™¨å‡ºé”™
962所引å‘的结果。 1076所引å‘的结果。
963 1077
964请几分钟åŽå†è¯•, 或点击帮助 1078请ç¨åŽå†è¯•, 或点击帮助
965获得建议和到达系统状æ€çš„网页链接。 1079获得建议和到系统状æ€ç½‘页的链接。
966 </message> 1080 </message>
967 <option name="OK"> 1081 <option name="OK">
968 OK 1082 确定
969 </option> 1083 </option>
970 <option name="Help"> 1084 <option name="Help">
971 帮助 1085 帮助
@@ -973,74 +1087,82 @@ in this region back to their owner&apos;s inventory?
973 </alert> 1087 </alert>
974 <alert name="PromptSelectServer"> 1088 <alert name="PromptSelectServer">
975 <message name="message"> 1089 <message name="message">
976 请选择一个æœåŠ¡å™¨. 1090 请选择一个æœåŠ¡å™¨ã€‚
977无法连接至æœåŠ¡å™¨[SERVER] 1091无法连接至æœåŠ¡å™¨[SERVER]
978 </message> 1092 </message>
979 </alert> 1093 </alert>
980 <alert name="CannotConnectDNSError"> 1094 <alert name="CannotConnectDNSError">
981 <message name="message"> 1095 <message name="message">
982 无法连接到[SECOND_LIFE]. 1096 无法连接到[SECOND_LIFE].
983DNSæœåŠ¡å™¨æ— æ³•è§£è¯»ã€‚ 1097域åæœåŠ¡å™¨æ— æ³•è§£æžä¸»æœºå称。
1098
984请确定å¯ä»¥è¿žæŽ¥ä¸»é¡µ www.secondlife.com。 1099请确定å¯ä»¥è¿žæŽ¥ä¸»é¡µ www.secondlife.com。
985如果å¯ä»¥ï¼Œä½†ä¸€ç›´æ”¶åˆ°é”™è¯¯ä¿¡æ¯ï¼Œ 1100如果å¯ä»¥ï¼Œä½†ä¸€ç›´æ”¶åˆ°è¯¥é”™è¯¯ä¿¡æ¯ï¼Œ
986请到技术部门并报告此项错误。 1101请到 www.secondlife.com/support 报告此项错误。
987 </message> 1102 </message>
988 </alert> 1103 </alert>
989 <alert name="CannotConnectSecurityError"> 1104 <alert name="CannotConnectSecurityError">
990 <message name="message"> 1105 <message name="message">
991 无法与登陆æœåŠ¡å™¨å»ºç«‹å®‰å…¨è¿žæŽ¥ã€‚ 1106 无法与登陆æœåŠ¡å™¨å»ºç«‹å®‰å…¨è¿žæŽ¥ã€‚
992通常这æ„味ç€è®¡ç®—机时钟的设置ä¸æ­£ç¡®ã€‚ 1107通常这æ„味ç€è®¡ç®—机时钟的设置ä¸æ­£ç¡®ã€‚
993请到控制é¢æ¿é€‰é¡¹å¯Ÿçœ‹æ—¶é—´è®¾ç½®ï¼Œå¹¶ç¡®å®šæ—¶é—´ 1108
994和日期设定正确。 1109请确定时间和日期设定正确。
995 1110如果ä»ç„¶æ”¶åˆ°è¿™ä¸ªé”™è¯¯ä¿¡æ¯ï¼Œè¯·åˆ°
996如果一直收到这个错误信æ¯ï¼Œè¯·ç™»é™† 1111www.secondlife.com/support
997SecondLife.com网站,与技术支æŒéƒ¨é—¨è”系, 1112报告此项错误。
998并å‘他们报告问题。
999 </message> 1113 </message>
1000 </alert> 1114 </alert>
1001 <alert name="CannotConnectVerificationError"> 1115 <alert name="CannotConnectVerificationError">
1002 <message name="message"> 1116 <message name="message">
1003 无法连接到[SECOND_LIFE]. 1117 无法连接到 [SECOND_LIFE]。
1004登陆æœåŠ¡å™¨æ— æ³•è¯†åˆ«è‡ªèº«ã€‚ 1118登陆æœåŠ¡å™¨æ— æ³•è¯†åˆ«è‡ªèº«ã€‚
1119
1120如果一直收到这个错误信æ¯ï¼Œè¯·åˆ°
1121www.secondlife.com/support
1122报告此项错误。
1005 </message> 1123 </message>
1006 </alert> 1124 </alert>
1007 <alert name="CannotConnectUnknownErrorWindows"> 1125 <alert name="CannotConnectUnknownErrorWindows">
1008 <message name="message"> 1126 <message name="message">
1009 无法连接至[SECOND_LIFE]. 1127 无法连接至[SECOND_LIFE].
1010尽管我们尽了最大努力, 一些ä¸å¯çŸ¥çš„错误导致了这次连接失败. 1128尽管我们尽了最大努力, 一些ä¸å¯çŸ¥çš„错误导致了
1011请å°è¯•ç™»é™†SecondLife.com网站的技术支æŒéƒ¨é—¨ï¼Œå¹¶æŠ¥å‘Šé—®é¢˜ï¼Œå¦‚æžœå¯èƒ½ï¼Œè¯·é™„上你的SecondLife.log文件,文件路径为: C:\Documents and Settings\(name)\Application Data\SecondLife\logs 1129这次连接失败。请å°è¯•ç™»é™†SecondLife.com网站的
1130技术支æŒéƒ¨é—¨ï¼Œå¹¶æŠ¥å‘Šé—®é¢˜ï¼Œå¦‚æžœå¯èƒ½ï¼Œè¯·é™„上你的
1131SecondLife.log文件,文件路径为:
1132C:\Documents and Settings\(用户å)\Application Data\SecondLife\logs
1012éžå¸¸æ„Ÿè°¢. 1133éžå¸¸æ„Ÿè°¢.
1013 </message> 1134 </message>
1014 </alert> 1135 </alert>
1015 <alert name="CannotConnectUnknownErrorDarwin"> 1136 <alert name="CannotConnectUnknownErrorDarwin">
1016 <message name="message"> 1137 <message name="message">
1017 无法连接到[SECOND_LIFE]. 1138 无法连接到 [SECOND_LIFE]。
1018尽管我们åšäº†æœ€å¤§åŠªåŠ›, ä»æœ‰ä¸€äº›ä¸å¯é¢„知的错误å‘生。 1139尽管我们尽了最大努力, 一些ä¸å¯çŸ¥çš„错误导致了
1019请登陆the SecondLife.com 网站,与技术支æŒéƒ¨é—¨ 1140这次连接失败。请å°è¯•ç™»é™†SecondLife.com网站的
1020è”系并报告问题。如果有å¯èƒ½ï¼Œè¯·é™„上你的 1141技术支æŒéƒ¨é—¨ï¼Œå¹¶æŠ¥å‘Šé—®é¢˜ï¼Œå¦‚æžœå¯èƒ½ï¼Œè¯·é™„上你的
1021ä½äºŽ: C:Documents and Settings(name)Application DataSecondLifelogsçš„ 1142SecondLife.log文件,文件路径为:
1022SecondLife.log文件。谢谢。 1143~/Library/Application Support/SecondLife/logs
1144谢谢。
1023 </message> 1145 </message>
1024 </alert> 1146 </alert>
1025 <alert name="CannotResolveLoginToken"> 1147 <alert name="CannotResolveLoginToken">
1026 <message name="message"> 1148 <message name="message">
1027 处ç†ä½ çš„注册è¯æ˜Žæ—¶å‡ºé”™ã€‚ 1149 处ç†ä½ çš„登陆令牌时出错。
1028请å°è¯•é‡æ–°æ³¨å†Œä¸€é。 1150请å°è¯•é‡æ–°ç™»é™†ä¸€é。
1151
1029如果æŒç»­æ”¶åˆ°è¿™ä¸ªé”™è¯¯ï¼Œ 1152如果æŒç»­æ”¶åˆ°è¿™ä¸ªé”™è¯¯ï¼Œ
1030请登陆SecondLife.com 网站上的 1153请登陆 www.secondlife.com/support .
1031支æŒä¸­å¿ƒã€‚
1032 </message> 1154 </message>
1033 </alert> 1155 </alert>
1034 <alert name="CannotConnectNoMessage"> 1156 <alert name="CannotConnectNoMessage">
1035 <message name="message"> 1157 <message name="message">
1036 未知问题出现. 1158 连接时å‘生未知的问题。
1037(从æœåŠ¡å™¨æ”¶åˆ°ç©ºç™½é”™è¯¯ä¿¡æ¯.) 1159(从æœåŠ¡å™¨æ”¶åˆ°ç©ºç™½é”™è¯¯ä¿¡æ¯ã€‚)
1038 1160
1039请几分钟åŽå†è¯•,或者点击帮助 1161请ç¨åŽå†è¯•, 或点击帮助
1040获得建议和到达系统状æ€çš„网页链接。 1162获得建议和到系统状æ€ç½‘页的链接。
1041 </message> 1163 </message>
1042 <option name="OK"> 1164 <option name="OK">
1043 OK 1165 确定
1044 </option> 1166 </option>
1045 <option name="Help"> 1167 <option name="Help">
1046 帮助 1168 帮助
@@ -1048,13 +1170,13 @@ SecondLife.log文件。谢谢。
1048 </alert> 1170 </alert>
1049 <alert name="CannotConnectNoReplyFromLogin"> 1171 <alert name="CannotConnectNoReplyFromLogin">
1050 <message name="message"> 1172 <message name="message">
1051 无法连接。 登陆数æ®åº“没有回å¤ã€‚ 1173 无法连接。 模拟器没有登陆回应。
1052 1174
1053请几分钟åŽå†è¯•, 或点击帮助 1175请几分钟åŽå†è¯•, 或点击帮助
1054获得建议和到达系统状æ€çš„网页链接。 1176获得建议和到系统状æ€ç½‘页的链接。
1055 </message> 1177 </message>
1056 <option name="OK"> 1178 <option name="OK">
1057 OK 1179 确定
1058 </option> 1180 </option>
1059 <option name="Help"> 1181 <option name="Help">
1060 帮助 1182 帮助
@@ -1062,17 +1184,17 @@ SecondLife.log文件。谢谢。
1062 </alert> 1184 </alert>
1063 <alert name="CannotConnectLoginTimeout"> 1185 <alert name="CannotConnectLoginTimeout">
1064 <message name="message"> 1186 <message name="message">
1065 等待你在世界中注册ä½ç½®çš„时间已过。请é‡æ–°å°è¯•ã€‚ 1187 等待你在世界中注册ä½ç½®è¶…时。请é‡æ–°å°è¯•ã€‚
1066 </message> 1188 </message>
1067 </alert> 1189 </alert>
1068 <alert name="FirstRunDialog"> 1190 <alert name="FirstRunDialog">
1069 <message name="message"> 1191 <message name="message">
1070 [SECOND_LIFE] 安装已完æˆã€‚ 1192 [SECOND_LIFE] 安装已完æˆã€‚
1071 1193
1072这是你第一次使用[SECOND_LIFE], 登陆å‰ä½  1194如果这是你第一次使用[SECOND_LIFE], 登陆å‰ä½ 
1073需è¦åˆ›å»ºä¸€ä¸ªæ–°å¸æˆ·ã€‚ 1195需è¦åˆ›å»ºä¸€ä¸ªæ–°å¸æˆ·ã€‚
1074 1196
1075返回www.secondlife.com创建账户? 1197返回 www.secondlife.com 创建账户?
1076 </message> 1198 </message>
1077 <option name="NewAccount..."> 1199 <option name="NewAccount...">
1078 æ–°å¸æˆ·... 1200 æ–°å¸æˆ·...
@@ -1083,41 +1205,27 @@ SecondLife.log文件。谢谢。
1083 </alert> 1205 </alert>
1084 <alert name="ClothingStillDownloading"> 1206 <alert name="ClothingStillDownloading">
1085 <message name="message"> 1207 <message name="message">
1086 你的装æŸä»åœ¨ä¸‹è½½ä¸­ã€‚ 1208 你的化身ä»åœ¨ä¸‹è½½ä¸­ã€‚
1087你现在å¯ä»¥æŒ‰æ­£å¸¸çš„使用这个世界, 1209你现在å¯ä»¥æ­£å¸¸åœ°ä½¿ç”¨ [SECOND_LIFE],
1088其他用户也å¯ä»¥çœ‹è§ä½ ã€‚ 1210其他用户也å¯ä»¥æ­£å¸¸åœ°çœ‹è§ä½ ã€‚
1089 </message> 1211 </message>
1090 </alert> 1212 </alert>
1091 <alert name="CannotResolveDomain"> 1213 <alert name="CannotResolveDomain">
1092 <message name="message"> 1214 <message name="message">
1093 无法连接到æœåŠ¡å™¨. 1215 无法连接到æœåŠ¡å™¨ã€‚
1094无法找到域å: [DOMAIN] 1216无法找到域å: [DOMAIN]
1217
1095请检查你的网络连接。 1218请检查你的网络连接。
1096 </message> 1219 </message>
1097 </alert> 1220 </alert>
1098 <alert name="CannotConnectLoginPacket">
1099 <message name="message">
1100 无法连接。登陆æœåŠ¡å™¨æœªæ”¶åˆ°ä»»ä½•ç™»é™†
1101ä¿¡æ¯.
1102
1103请几分钟åŽå†è¯•, 或点击帮助
1104获得建议和到达系统状æ€çš„网页链接。
1105 </message>
1106 <option name="OK">
1107 OK
1108 </option>
1109 <option name="Help">
1110 帮助
1111 </option>
1112 </alert>
1113 <alert name="WelcomeToSecondLife"> 1221 <alert name="WelcomeToSecondLife">
1114 <message name="message"> 1222 <message name="message">
1115 欢迎æ¥åˆ°[SECOND_LIFE]! 1223 欢迎æ¥åˆ°[SECOND_LIFE]!
1116 1224
1117使用箭头键æ¥è¡Œèµ°. 1225使用方åé”®æ¥è¡Œèµ°ã€‚
1118 1226
1119请选择男性或女性角色. 1227请选择男性或女性角色。
1120éšåŽå¯æ›´æ”¹é€‰æ‹©. 1228éšåŽå¯æ›´æ”¹é€‰æ‹©ã€‚
1121 </message> 1229 </message>
1122 <option name="Male"> 1230 <option name="Male">
1123 男性 1231 男性
@@ -1130,9 +1238,9 @@ SecondLife.log文件。谢谢。
1130 <message name="message"> 1238 <message name="message">
1131 欢迎æ¥åˆ°[SECOND_LIFE]! 1239 欢迎æ¥åˆ°[SECOND_LIFE]!
1132 1240
1133使用箭头键æ¥è¡Œèµ°. 1241使用方åé”®æ¥è¡Œèµ°ã€‚
1134 1242
1135请选择男性或女性角色. 1243请选择男性或女性角色。
1136 </message> 1244 </message>
1137 <option name="Male"> 1245 <option name="Male">
1138 男性 1246 男性
@@ -1141,40 +1249,16 @@ SecondLife.log文件。谢谢。
1141 女性 1249 女性
1142 </option> 1250 </option>
1143 </alert> 1251 </alert>
1144 <alert name="WebLaunchSupport">
1145 <message name="message">
1146 è”ç³»[SECOND_LIFE]支æŒä¸­å¿ƒ.
1147 </message>
1148 <option name="Gotopage">
1149 翻页
1150 </option>
1151 <option name="Cancel">
1152 å–消
1153 </option>
1154 </alert>
1155 <alert name="ConfirmQuit">
1156 <message name="message">
1157 确定退出?
1158 </message>
1159 <option name="Yes">
1160 是
1161 </option>
1162 <option name="No">
1163 å¦
1164 </option>
1165 </alert>
1166 <alert name="RegionNoTerraforming"> 1252 <alert name="RegionNoTerraforming">
1167 <message name="message"> 1253 <message name="message">
1168 地区[REGION]ä¸å…许改å˜åœ°å½¢ã€‚ 1254 [REGION] 地区ä¸å…许改å˜åœ°å½¢ã€‚
1169你将需è¦åœ¨ä¸–界的别处购买土地
1170æ¥æ”¹å˜å®ƒçš„地形。
1171 </message> 1255 </message>
1172 </alert> 1256 </alert>
1173 <alert name="CannotCopyWarning"> 1257 <alert name="CannotCopyWarning">
1174 <message name="message"> 1258 <message name="message">
1175 你没有拿到å¤åˆ¶æ­¤é¡¹ç‰©å“的许å¯ã€‚ 1259 你没有å¤åˆ¶æ­¤é¡¹ç‰©å“的许å¯ã€‚
1176如果é€å‡ºå®ƒï¼Œä½ å°†å½»åº•å¤±åŽ» 1260如果é€å‡ºå®ƒï¼Œä½ å°†å½»åº•å¤±åŽ»
1177此项物å“.你是å¦çœŸçš„è¦ 1261此项物å“。你是å¦çœŸçš„è¦
1178æ供这项物å“? 1262æ供这项物å“?
1179 </message> 1263 </message>
1180 <option name="Yes"> 1264 <option name="Yes">
@@ -1186,7 +1270,7 @@ SecondLife.log文件。谢谢。
1186 </alert> 1270 </alert>
1187 <alert name="CannotGiveItem"> 1271 <alert name="CannotGiveItem">
1188 <message name="message"> 1272 <message name="message">
1189 无法æ供库存的目录内容。 1273 无法给与库存物å。
1190 </message> 1274 </message>
1191 </alert> 1275 </alert>
1192 <alert name="TransactionCancelled"> 1276 <alert name="TransactionCancelled">
@@ -1196,20 +1280,20 @@ SecondLife.log文件。谢谢。
1196 </alert> 1280 </alert>
1197 <alert name="TooManyItems"> 1281 <alert name="TooManyItems">
1198 <message name="message"> 1282 <message name="message">
1199 一次库存转移无法包括这么多物å“。 1283 一次库存转移中ä¸èƒ½ç»™ä¸Žå¤šäºŽ 42 件物å“。
1200 </message> 1284 </message>
1201 </alert> 1285 </alert>
1202 <alert name="NoItems"> 1286 <alert name="NoItems">
1203 <message name="message"> 1287 <message name="message">
1204 ä½ ä¸èƒ½æ供任何物å“。 1288 你没有æƒåˆ©ä¼ é€æ‰€é€‰çš„物å“。
1205 </message> 1289 </message>
1206 </alert> 1290 </alert>
1207 <alert name="CannotCopyCountItems"> 1291 <alert name="CannotCopyCountItems">
1208 <message name="message"> 1292 <message name="message">
1209 你没有å¤åˆ¶æ‰€é€‰æ¡ç›® [COUNT]次的许å¯ã€‚ 1293 你没有å¤åˆ¶æ‰€é€‰ç‰©å“中的 [COUNT]件的许å¯ã€‚
1210这些æ¡ç›®å°†ä»Žä½ çš„库存中被 1294这些æ¡ç›®å°†ä»Žä½ çš„库存中被除去。
1211除去。 1295
1212你真的è¦ç»™å‡ºè¿™äº›æ¡ç›®å— 1296你真的è¦ç»™å‡ºè¿™äº›ç‰©å“å?
1213 </message> 1297 </message>
1214 <option name="Yes"> 1298 <option name="Yes">
1215 是 1299 是
@@ -1220,20 +1304,36 @@ SecondLife.log文件。谢谢。
1220 </alert> 1304 </alert>
1221 <alert name="CannotGiveCategory"> 1305 <alert name="CannotGiveCategory">
1222 <message name="message"> 1306 <message name="message">
1223 无法æ供库存的目录分类内容. 1307 你没有æƒåˆ©ä¼ é€æ‰€é€‰çš„æ–‡ä»å¤¹ã€‚
1224 </message> 1308 </message>
1225 </alert> 1309 </alert>
1226 <alert name="FreezeAvatar"> 1310 <alert name="FreezeAvatar">
1227 <message name="message"> 1311 <message name="message">
1228 冻结此化身? 1312 冻结此化身?
1229他或她将暂时无法移动,交谈 1313他或她将暂时无法移动ã€äº¤è°ˆ
1314或与世界互动。
1315 </message>
1316 <option name="Freeze">
1317 é”定
1318 </option>
1319 <option name="Unfreeze">
1320 解é”
1321 </option>
1322 <option name="Cancel">
1323 å–消
1324 </option>
1325 </alert>
1326 <alert name="FreezeAvatarFullname">
1327 <message name="message">
1328 冻结 [AVATAR_NAME]?
1329他或她将暂时无法移动ã€äº¤è°ˆ
1230或与世界互动。 1330或与世界互动。
1231 </message> 1331 </message>
1232 <option name="Freeze"> 1332 <option name="Freeze">
1233 é”定 1333 é”定
1234 </option> 1334 </option>
1235 <option name="Unfreeze"> 1335 <option name="Unfreeze">
1236 解é”定 1336 解é”
1237 </option> 1337 </option>
1238 <option name="Cancel"> 1338 <option name="Cancel">
1239 å–消 1339 å–消
@@ -1241,13 +1341,27 @@ SecondLife.log文件。谢谢。
1241 </alert> 1341 </alert>
1242 <alert name="EjectAvatar"> 1342 <alert name="EjectAvatar">
1243 <message name="message"> 1343 <message name="message">
1244 将这个化身é€å‡ºä½ çš„地盘? 1344 将这个化身é€å‡ºä½ çš„土地?
1345 </message>
1346 <option name="Eject">
1347 驱除
1348 </option>
1349 <option name="EjectandBan">
1350 驱除并å°ç¦
1351 </option>
1352 <option name="Cancel">
1353 å–消
1354 </option>
1355 </alert>
1356 <alert name="EjectAvatarFullname">
1357 <message name="message">
1358 å°† [AVATAR_NAME] é€å‡ºä½ çš„土地?
1245 </message> 1359 </message>
1246 <option name="Eject"> 1360 <option name="Eject">
1247 驱除 1361 驱除
1248 </option> 1362 </option>
1249 <option name="EjectandBan"> 1363 <option name="EjectandBan">
1250 驱除并ç¦æ­¢ 1364 驱除并å°ç¦
1251 </option> 1365 </option>
1252 <option name="Cancel"> 1366 <option name="Cancel">
1253 å–消 1367 å–消
@@ -1255,29 +1369,28 @@ SecondLife.log文件。谢谢。
1255 </alert> 1369 </alert>
1256 <alert name="InvalidUUID"> 1370 <alert name="InvalidUUID">
1257 <message name="message"> 1371 <message name="message">
1258 Not a valid uuid 1372 ä¸æ˜¯æœ‰æ•ˆçš„ UUID
1259 </message> 1373 </message>
1260 </alert> 1374 </alert>
1261 <alert name="AcquireErrorTooManyObjects"> 1375 <alert name="AcquireErrorTooManyObjects">
1262 <message name="message"> 1376 <message name="message">
1263 获å–错误: 选择的东东太多。 1377 获å–错误: 选择的物体太多。
1264 </message> 1378 </message>
1265 </alert> 1379 </alert>
1266 <alert name="AcquireErrorObjectSpan"> 1380 <alert name="AcquireErrorObjectSpan">
1267 <message name="message"> 1381 <message name="message">
1268 获å–错误: 东东跨区。 1382 获å–错误: 物体处在ä¸åªä¸€ä¸ªåŒºåŸŸå†…。
1269请将所有待获得东东移至 1383请将所有待获得物体移至
1270åŒä¸€åŒºåŸŸã€‚ 1384åŒä¸€åŒºåŸŸã€‚
1271 </message> 1385 </message>
1272 </alert> 1386 </alert>
1273 <alert name="TakeLockedOrNotOwnedBy"> 1387 <alert name="TakeLockedOrNotOwnedBy">
1274 <message name="message"> 1388 <message name="message">
1275 最少有一件东东被é”定或ä¸å±žäºŽä½ ã€‚ 1389 最少有一件物体被é”定或ä¸å±žäºŽä½ ã€‚
1276如果有æŸä»¶ä¸œä¸œæœ¬ä¸å±žäºŽä½ è€Œä½ å´æ‹¿èµ°äº†å®ƒ, 1390如果有æŸä»¶ç‰©ä½“本ä¸å±žäºŽä½ è€Œä½ å´æ‹¿èµ°äº†å®ƒ,
1277东东使用下一个主人许å¯è¯æ—¶ï¼Œæœ‰å¯èƒ½ä¼š 1391下个拥有者æƒåˆ©å°†å¯¹è¯¥ç‰©ä½“适用并å¯èƒ½é™åˆ¶
1278ç¦æ­¢ä½ åœ¨æœªæ¥ä¿®æ”¹æˆ–å¤åˆ¶å®ƒçš„ 1392ä½ å¤åˆ¶æˆ–修改它的æƒåˆ©ã€‚
1279能力。 1393
1280然而,你还是å¯ä»¥æ‰§è¡Œç›®å‰çš„选择。
1281你确定è¦æ‹¿èµ°ç‰©å“æ é‡Œçš„东西å—? 1394你确定è¦æ‹¿èµ°ç‰©å“æ é‡Œçš„东西å—?
1282 </message> 1395 </message>
1283 <option name="Yes"> 1396 <option name="Yes">
@@ -1291,11 +1404,10 @@ SecondLife.log文件。谢谢。
1291 <message name="message"> 1404 <message name="message">
1292 [EXTRA] 1405 [EXTRA]
1293 1406
1294 1407登陆 [URL] 查询购买货å¸çš„资料?
1295登陆[URL]获得更多购买现钞的机会?
1296 </message> 1408 </message>
1297 <option name="GotoPage"> 1409 <option name="GotoPage">
1298 回主页 1410 打开网页
1299 </option> 1411 </option>
1300 <option name="Cancel"> 1412 <option name="Cancel">
1301 å–消 1413 å–消
@@ -1303,61 +1415,61 @@ SecondLife.log文件。谢谢。
1303 </alert> 1415 </alert>
1304 <alert name="UnableToLinkObjects"> 1416 <alert name="UnableToLinkObjects">
1305 <message name="message"> 1417 <message name="message">
1306 无法连接数é‡ä¸º[COUNT]的东东. 1418 无法链接 [COUNT] 个物体。
1307ä½ åªèƒ½è¿žæŽ¥æœ€å¤šæ•°é‡ä¸º[MAX]的东东. 1419您最多å¯ä»¥é“¾æŽ¥ [MAX]个物体。
1308请å°è¯•é€‰æ‹©æ•°é‡è¾ƒå°‘的东东.
1309 </message> 1420 </message>
1310 </alert> 1421 </alert>
1311 <alert name="CannotLinkIncompleteSet"> 1422 <alert name="CannotLinkIncompleteSet">
1312 <message name="message"> 1423 <message name="message">
1313 ä½ åªèƒ½å¯¹å®Œæ•´ä¸œä¸œè¿›è¡Œè¿žæŽ¥, 1424 ä½ åªèƒ½å¯¹å®Œæ•´çš„物体进行链接,
1314并且一次必须选定多个东东. 1425并且一次必须选定多个物体。
1315 </message> 1426 </message>
1316 </alert> 1427 </alert>
1317 <alert name="CannotLinkModify"> 1428 <alert name="CannotLinkModify">
1318 <message name="message"> 1429 <message name="message">
1319 无法到达链接,因为你没有更改所有东东的许å¯è®¾ç½®ã€‚ 1430 无法进行链接,因为你并ä¸åœ¨å…¨éƒ¨æ‰€é€‰ç‰©ä½“上
1320请确定没有东东被é”定,并且所有东东都 1431都有更改æƒåˆ©ã€‚
1321归你所有。 1432
1433请确定没有物体被é”定,并且所有物体都归你所有。
1322 </message> 1434 </message>
1323 </alert> 1435 </alert>
1324 <alert name="CannotLinkDifferentOwners"> 1436 <alert name="CannotLinkDifferentOwners">
1325 <message name="message"> 1437 <message name="message">
1326 无法到达链接,因为所有东东ä¸å±žäºŽåŒä¸€ä¸ªäººã€‚ 1438 无法进行链接,因为并ä¸æ˜¯æ‰€æœ‰ç‰©ä½“都属于åŒä¸€ä¸ªäººã€‚
1327请确定所选定东东全部归你所有。 1439请确定所有物体都归你所有。
1328 </message> 1440 </message>
1329 </alert> 1441 </alert>
1330 <alert name="NoFileExtension"> 1442 <alert name="NoFileExtension">
1331 <message name="message"> 1443 <message name="message">
1332 此文件没有文件拓展å: &apos;[FILE]&apos; 1444 此文件没有文件拓展å: &apos;[FILE]&apos;
1445
1333请确ä¿æ–‡ä»¶æœ‰å…¶æ­£ç¡®çš„拓展å。 1446请确ä¿æ–‡ä»¶æœ‰å…¶æ­£ç¡®çš„拓展å。
1334 </message> 1447 </message>
1335 </alert> 1448 </alert>
1336 <alert name="InvalidFileExtension"> 1449 <alert name="InvalidFileExtension">
1337 <message name="message"> 1450 <message name="message">
1338 文件拓展å[EXTENSION]ä¸å¯ç”¨ã€‚ 1451 无效的文件拓展å [EXTENSION]
1339期望使用[VALIDS] 1452期待的 [VALIDS]
1340 </message> 1453 </message>
1341 <option name="OK"> 1454 <option name="OK">
1342 OK 1455 确定
1343 </option> 1456 </option>
1344 </alert> 1457 </alert>
1345 <alert name="CannotUploadSoundFile"> 1458 <alert name="CannotUploadSoundFile">
1346 <message name="message"> 1459 <message name="message">
1347 由于读å–文件:[FILE],所以ä¸èƒ½ 1460 ä¸èƒ½æ‰“开上传的声音文件 [FILE]
1348打开上传的声音文件。
1349 </message> 1461 </message>
1350 </alert> 1462 </alert>
1351 <alert name="SoundFileNotRIFF"> 1463 <alert name="SoundFileNotRIFF">
1352 <message name="message"> 1464 <message name="message">
1353 文件无法以 RIFF WAVE file: 1465 文件ä¸åƒæ˜¯ RIFF WAVE æ ¼å¼:
1354[FILE]å½¢å¼æ‰“å¼€ 1466[FILE]
1355 </message> 1467 </message>
1356 </alert> 1468 </alert>
1357 <alert name="SoundFileNotPCM"> 1469 <alert name="SoundFileNotPCM">
1358 <message name="message"> 1470 <message name="message">
1359 文件无法以 PCM WAVE 有声文件: 1471 文件ä¸åƒæ˜¯ PCM WAVE æ ¼å¼:
1360[FILE]å½¢å¼æ‰“å¼€ 1472[FILE]
1361 </message> 1473 </message>
1362 </alert> 1474 </alert>
1363 <alert name="SoundFileInvalidChannelCount"> 1475 <alert name="SoundFileInvalidChannelCount">
@@ -1368,48 +1480,50 @@ SecondLife.log文件。谢谢。
1368 </alert> 1480 </alert>
1369 <alert name="SoundFileInvalidSampleRate"> 1481 <alert name="SoundFileInvalidSampleRate">
1370 <message name="message"> 1482 <message name="message">
1371 文件中的速率ä¸æ˜¯æ”¯æŒæ ·æœ¬é€ŸçŽ‡(应该为44.1k): 1483 文件的频率ä¸æ˜¯æ”¯æŒé‡‡æ ·é¢‘率 ¿…须为 44.1k):
1372[FILE] 1484[FILE]
1373 </message> 1485 </message>
1374 </alert> 1486 </alert>
1375 <alert name="SoundFileInvalidWordSize"> 1487 <alert name="SoundFileInvalidWordSize">
1376 <message name="message"> 1488 <message name="message">
1377 文件中的文字尺寸ä¸æ˜¯æ”¯æŒæ–‡å­—尺寸 (应改为8 or 16比特): 1489 文件ä¸åƒæ˜¯æ”¯æŒçš„å­—é•¿ (应该为 8 或 16 ä½):
1378[FILE] 1490[FILE]
1379 </message> 1491 </message>
1380 </alert> 1492 </alert>
1381 <alert name="SoundFileInvalidHeader"> 1493 <alert name="SoundFileInvalidHeader">
1382 <message name="message"> 1494 <message name="message">
1383 在WAV标题文件:[文件]中无法找到 1495 在 WAV 文件头中无法找到 &apos;data&apos; 模å—:
1384 &apos;data&apos; æ¨¡å— 1496[文件]
1385 </message> 1497 </message>
1386 </alert> 1498 </alert>
1387 <alert name="SoundFileInvalidTooLong"> 1499 <alert name="SoundFileInvalidTooLong">
1388 <message name="message"> 1500 <message name="message">
1389 声音文件过长(最长10秒): 1501 声音文件过长 (最长 10 秒):
1390[FILE] 1502[FILE]
1391 </message> 1503 </message>
1392 </alert> 1504 </alert>
1393 <alert name="ProblemWithFile"> 1505 <alert name="ProblemWithFile">
1394 <message name="message"> 1506 <message name="message">
1395 出错文件[FILE]: 1507 文件 [FILE] 有问题:
1396 1508
1397[ERROR] 1509[ERROR]
1398 </message> 1510 </message>
1399 </alert> 1511 </alert>
1400 <alert name="CannotOpenTemporarySoundFile"> 1512 <alert name="CannotOpenTemporarySoundFile">
1401 <message name="message"> 1513 <message name="message">
1402 由于写入文件: [FILE]则ä¸èƒ½æ‰“开暂时压缩声音文件。 1514 无法写入压缩的声音临时文件:
1515 [FILE]
1403 </message> 1516 </message>
1404 </alert> 1517 </alert>
1405 <alert name="UnknownVorbisEncodeFailure"> 1518 <alert name="UnknownVorbisEncodeFailure">
1406 <message name="message"> 1519 <message name="message">
1407 未知代ç é”™è¯¯çš„文件: [FILE] 1520 对文件进行 Vorbis ç¼–ç æ—¶å‘生错误:
1521 [FILE]
1408 </message> 1522 </message>
1409 </alert> 1523 </alert>
1410 <alert name="CorruptResourceFile"> 1524 <alert name="CorruptResourceFile">
1411 <message name="message"> 1525 <message name="message">
1412 误用的资æºæ–‡ä»¶: [FILE] 1526 å´©å的的资æºæ–‡ä»¶: [FILE]
1413 </message> 1527 </message>
1414 </alert> 1528 </alert>
1415 <alert name="UnknownResourceFileVersion"> 1529 <alert name="UnknownResourceFileVersion">
@@ -1419,155 +1533,171 @@ SecondLife.log文件。谢谢。
1419 </alert> 1533 </alert>
1420 <alert name="UnableToCreateOutputFile"> 1534 <alert name="UnableToCreateOutputFile">
1421 <message name="message"> 1535 <message name="message">
1422 无法创造输出文件:: [FILE] 1536 无法创建输出文件: [FILE]
1423 </message> 1537 </message>
1424 </alert> 1538 </alert>
1425 <alert name="DoNotSupportBulkAnimationUpload"> 1539 <alert name="DoNotSupportBulkAnimationUpload">
1426 <message name="message"> 1540 <message name="message">
1427 我们现在ä¸æ”¯æŒå¤§é‡ä¸Šä¼ åŠ¨ç”»æ–‡ä»¶. 1541 我们现在ä¸æ”¯æŒå¤§å®—上传动画文件。
1428 </message> 1542 </message>
1429 </alert> 1543 </alert>
1430 <alert name="CannotAccessOutputFile"> 1544 <alert name="CannotAccessOutputFile">
1431 <message name="message"> 1545 <message name="message">
1432 无法到达输出文件: [FILE] 1546 无法访问输出文件: [FILE]
1433 </message> 1547 </message>
1434 </alert> 1548 </alert>
1435 <alert name="InsufficientFundsToUploadFile"> 1549 <alert name="InsufficientFundsToUploadFile">
1436 <message name="message"> 1550 <message name="message">
1437 æœè¶³å¤Ÿçš„资金以完æˆ[FILE]的上传:花费为 L$[COST], 结余为L$[结余] 1551 上传éœè¦çš„ L$ ä¸å¤Ÿ: 花费为 L$[COST], 您的结余为 L$[BALANCE]
1438 </message> 1552 </message>
1439 </alert> 1553 </alert>
1440 <alert name="InsufficientFundsToFinishUpload"> 1554 <alert name="InsufficientFundsToFinishUpload">
1441 <message name="message"> 1555 <message name="message">
1442 没有足够的资金以完æˆ[FILE]的上传:花费为 L$[COST], 结余为L$[结余] 1556 没有足够的 L$ 以完æˆ[FILE]的上传: 花费为 L$[COST], 您的结余为 L$[BALANCE]
1443 </message> 1557 </message>
1444 </alert> 1558 </alert>
1445 <alert name="CannotUploadReason"> 1559 <alert name="CannotUploadReason">
1446 <message name="message"> 1560 <message name="message">
1447 无法上传文件[FILE],导致原因为: [REASON] 1561 无法上传文件[FILE],原因为: [REASON]
1448请éšåŽé‡è¯•ã€‚ 1562请éšåŽé‡è¯•ã€‚
1449 </message> 1563 </message>
1450 </alert> 1564 </alert>
1451 <alert name="CannotCreateLandmarkNotOwner"> 1565 <alert name="CannotCreateLandmarkNotOwner">
1452 <message name="message"> 1566 <message name="message">
1453 ä½ ä¸èƒ½åœ¨æ­¤è®¾å®šè·¯æ ‡ï¼Œå› ä¸º 1567 ä½ ä¸èƒ½åœ¨æ­¤è®¾å®šåœ°æ ‡ï¼Œå› ä¸º
1454地主ä¸å…许这样åšã€‚ 1568土地所有人ä¸å…许这样åšã€‚
1455请移动一段è·ç¦»å†åŠ ä»¥è®¾å®šã€‚
1456 </message> 1569 </message>
1457 </alert> 1570 </alert>
1458 <alert name="CannotRecompileSelectObjectsNoScripts"> 1571 <alert name="CannotRecompileSelectObjectsNoScripts">
1459 <message name="message"> 1572 <message name="message">
1460 无法实现编辑。 1573 无法é‡æ–°ç¼–译。
1461选择有å¯ç”¨è„šæœ¬çš„东东。 1574
1575请选择有脚本的物体。
1462 </message> 1576 </message>
1463 </alert> 1577 </alert>
1464 <alert name="CannotRecompileSelectObjectsNoPermission"> 1578 <alert name="CannotRecompileSelectObjectsNoPermission">
1465 <message name="message"> 1579 <message name="message">
1466 无法实现编辑。 1580 无法é‡æ–°ç¼–译。
1467选择被你å…许修改脚本的 1581
1468东东。 1582请选择你能够修改的有脚本的物体。
1469 </message> 1583 </message>
1470 </alert> 1584 </alert>
1471 <alert name="CannotResetSelectObjectsNoScripts"> 1585 <alert name="CannotResetSelectObjectsNoScripts">
1472 <message name="message"> 1586 <message name="message">
1473 无法实现é‡ç½®ã€‚ 1587 无法é‡ç½®è„šæœ¬ã€‚
1474选择有å¯ç”¨è„šæœ¬çš„东东。 1588
1589请选择有脚本的物体。
1475 </message> 1590 </message>
1476 </alert> 1591 </alert>
1477 <alert name="CannotResetSelectObjectsNoPermission"> 1592 <alert name="CannotResetSelectObjectsNoPermission">
1478 <message name="message"> 1593 <message name="message">
1479 无法实现é‡ç½®ã€‚ 1594 无法é‡ç½®è„šæœ¬ã€‚
1480选择被你å…许修改脚本的 1595
1481东东。 1596请选择你能够修改的有脚本的物体。
1482 </message> 1597 </message>
1483 </alert> 1598 </alert>
1484 <alert name="CannotSetRunningSelectObjectsNoScripts"> 1599 <alert name="CannotSetRunningSelectObjectsNoScripts">
1485 <message name="message"> 1600 <message name="message">
1486 无法设置任何脚本为è¿è¡Œã€‚ 1601 无法设置任何脚本为è¿è¡Œã€‚
1487选择具有å¯ç”¨è„šæœ¬çš„东东。 1602
1603请选择有脚本的物体。
1488 </message> 1604 </message>
1489 </alert> 1605 </alert>
1490 <alert name="CannotSetRunningSelectObjectsNoPermission"> 1606 <alert name="CannotSetRunningSelectObjectsNoPermission">
1491 <message name="message"> 1607 <message name="message">
1492 无法设置任何脚本为è¿è¡Œã€‚ 1608 无法设置任何脚本为è¿è¡Œã€‚
1493选择被你å…许å¯ä»¥ä¿®æ”¹è„šæœ¬çš„ 1609
1494东东。 1610请选择你能够修改的有脚本的物体。
1495 </message> 1611 </message>
1496 </alert> 1612 </alert>
1497 <alert name="CannotSetRunningNotSelectObjectsNoScripts"> 1613 <alert name="CannotSetRunningNotSelectObjectsNoScripts">
1498 <message name="message"> 1614 <message name="message">
1499 无法设置任何脚本为ä¸è¿è¡Œã€‚ 1615 无法设置任何脚本为ä¸è¿è¡Œã€‚
1500选择具有å¯ç”¨è„šæœ¬çš„东东。 1616
1617请选择有脚本的物体。
1501 </message> 1618 </message>
1502 </alert> 1619 </alert>
1503 <alert name="CannotSetRunningNotSelectObjectsNoPermission"> 1620 <alert name="CannotSetRunningNotSelectObjectsNoPermission">
1504 <message name="message"> 1621 <message name="message">
1505 无法设置任何脚本为ä¸è¿è¡Œã€‚ 1622 无法设置任何脚本为ä¸è¿è¡Œã€‚
1506选择被你å…许å¯ä»¥ä¿®æ”¹è„šæœ¬çš„ 1623
1507东东。 1624请选择你能够修改的有脚本的物体。
1508 </message> 1625 </message>
1509 </alert> 1626 </alert>
1510 <alert name="NoFrontmostFloater"> 1627 <alert name="NoFrontmostFloater">
1511 <message name="message"> 1628 <message name="message">
1512 No frontmost floater to save 1629 没有å¯ä¿å­˜çš„å‰ç½®æµ®åŠ¨æ¡†
1630 </message>
1631 </alert>
1632 <alert name="SeachFilteredOnShortWords">
1633 <message name="message">
1634 您的查询已被更改,其中过短的è¯è¢«åŽ»é™¤ã€‚
1635
1636最åŽæœç´¢äº†: [FINALQUERY]
1637 </message>
1638 </alert>
1639 <alert name="SeachFilteredOnShortWordsEmpty">
1640 <message name="message">
1641 您的æœç´¢ç”¨å­—太短
1642所以最åŽå¹¶æ²¡æœ‰æ‰§è¡ŒæŸ¥æ‰¾ã€‚
1513 </message> 1643 </message>
1514 </alert> 1644 </alert>
1515 <alert name="ColladaExportFailedUnknownServerError"> 1645 <alert name="ColladaExportFailedUnknownServerError">
1516 <message name="message"> 1646 <message name="message">
1517 克拉达输出失败:未知æœåŠ¡å™¨é”™è¯¯ã€‚ 1647 Collada 文件输出失败: 未知æœåŠ¡å™¨é”™è¯¯ã€‚
1518 </message> 1648 </message>
1519 </alert> 1649 </alert>
1520 <alert name="ColladaExportFailedInvalidPermissions"> 1650 <alert name="ColladaExportFailedInvalidPermissions">
1521 <message name="message"> 1651 <message name="message">
1522 克拉达输出失败: 许å¯è¯æ— æ•ˆæˆ–东东é”定! 1652 Collada 文件输出失败: 无效æƒé™æˆ–物体已é”定ï¼
1523 </message> 1653 </message>
1524 </alert> 1654 </alert>
1525 <alert name="ColladaExportFailedUnknownError"> 1655 <alert name="ColladaExportFailedUnknownError">
1526 <message name="message"> 1656 <message name="message">
1527 克拉达输出失败:未知错误。 1657 Collada 文件输出失败: 未知错误。
1528 </message> 1658 </message>
1529 </alert> 1659 </alert>
1530 <alert name="ObjectImportFailedTransfer"> 1660 <alert name="ObjectImportFailedTransfer">
1531 <message name="message"> 1661 <message name="message">
1532 输入东东失败。无法传é€æ–‡ä»¶ã€‚ 1662 导入物体失败。无法传é€æ–‡ä»¶ã€‚
1533 </message> 1663 </message>
1534 </alert> 1664 </alert>
1535 <alert name="ObjectImportFailedBadFormat"> 1665 <alert name="ObjectImportFailedBadFormat">
1536 <message name="message"> 1666 <message name="message">
1537 输入东东失败。文件ä¸æ˜¯SL接å—的文件形å¼ã€‚ 1667 导入物体失败。文件ä¸æ˜¯å¯æŽ¥å—çš„ SLObject æ ¼å¼ã€‚
1538 </message> 1668 </message>
1539 </alert> 1669 </alert>
1540 <alert name="ObjectImportFailedUnknownError"> 1670 <alert name="ObjectImportFailedUnknownError">
1541 <message name="message"> 1671 <message name="message">
1542 东东输入失败。未知错误。 1672 导入物体失败。未知错误。
1543 </message> 1673 </message>
1544 </alert> 1674 </alert>
1545 <alert name="CouldNotTeleportReason"> 1675 <alert name="CouldNotTeleportReason">
1546 <message name="message"> 1676 <message name="message">
1547 ä¸èƒ½é—ªç”µä¼ é€ã€‚ 1677 没能瞬间移动。
1548[REASON] 1678[REASON]
1549 </message> 1679 </message>
1550 </alert> 1680 </alert>
1551 <alert name="CannotSetLandOwnerNothingSelected"> 1681 <alert name="CannotSetLandOwnerNothingSelected">
1552 <message name="message"> 1682 <message name="message">
1553 法设定土地拥有者: 1683 无法设定土地拥有者:
1554未选择任何对象。 1684未选择任何地å—。
1555 </message> 1685 </message>
1556 </alert> 1686 </alert>
1557 <alert name="CannotSetLandOwnerMultipleRegions"> 1687 <alert name="CannotSetLandOwnerMultipleRegions">
1558 <message name="message"> 1688 <message name="message">
1559 无法强制土地所属,因为因为选项跨越数个 1689 无法强制土地所有æƒï¼Œå› ä¸ºé€‰é¡¹è·¨è¶Šæ•°ä¸ª
1560区域。请选择一个é¢ç§¯è¾ƒå°çš„区域并é‡è¯•ã€‚ 1690区域。请选择较å°çš„区域并é‡è¯•ã€‚
1561 </message> 1691 </message>
1562 </alert> 1692 </alert>
1563 <alert name="ForceOwnerAuctionWarning"> 1693 <alert name="ForceOwnerAuctionWarning">
1564 <message name="message"> 1694 <message name="message">
1565 è¿™å—å•ä½åœŸåœ°æ­£åœ¨æ‹å–。如果投标已ç»å¼€å§‹ï¼Œ 1695 è¿™å—å•ä½åœŸåœ°æ­£åœ¨æ‹å–。如果投标已ç»å¼€å§‹ï¼Œ
1566强制拥有将会使æ‹å–æµäº§ï¼Œå¹¶ä¸”很有å¯èƒ½ 1696强制所有æƒå°†ä¼šä½¿æ‹å–æµæ ‡ï¼Œå¹¶ä¸”很有å¯èƒ½
1567使其他居民ä¸å¿«ã€‚是å¦å¼ºåˆ¶æ‹¥æœ‰? 1697使其他居民ä¸å¿«ã€‚是å¦å¼ºåˆ¶æ‰€æœ‰æƒ?
1568 </message> 1698 </message>
1569 <option name="Force"> 1699 <option name="Force">
1570 强迫 1700 强制
1571 </option> 1701 </option>
1572 <option name="Cancel"> 1702 <option name="Cancel">
1573 å–消 1703 å–消
@@ -1587,7 +1717,7 @@ SecondLife.log文件。谢谢。
1587 </alert> 1717 </alert>
1588 <alert name="CannotReleaseLandNothingSelected"> 1718 <alert name="CannotReleaseLandNothingSelected">
1589 <message name="message"> 1719 <message name="message">
1590 无法放弃土地: 1720 无法放弃土地:
1591未选中任何对象。 1721未选中任何对象。
1592 </message> 1722 </message>
1593 </alert> 1723 </alert>
@@ -1609,16 +1739,22 @@ SecondLife.log文件。谢谢。
1609无法找到该土地所在区域。 1739无法找到该土地所在区域。
1610 </message> 1740 </message>
1611 </alert> 1741 </alert>
1742 <alert name="CannotCloseFloaterBuyLand">
1743 <message name="message">
1744 在第二人生完æˆå¯¹è¿™æ¬¡äº¤æ˜“çš„ä¼°ä»·å‰ï¼Œ
1745ä½ ä¸èƒ½å…³é—­â€œè´­ä¹°åœŸåœ°â€çª—å£ã€‚
1746 </message>
1747 </alert>
1612 <alert name="CannotDeedLandNothingSelected"> 1748 <alert name="CannotDeedLandNothingSelected">
1613 <message name="message"> 1749 <message name="message">
1614 无法转让土地: 1750 无法转让土地:
1615未选中任何对象. 1751没æœé€‰æ‹©åœ°å—。
1616 </message> 1752 </message>
1617 </alert> 1753 </alert>
1618 <alert name="CannotDeedLandNoGroup"> 1754 <alert name="CannotDeedLandNoGroup">
1619 <message name="message"> 1755 <message name="message">
1620 无法转让土地: 1756 无法转让土地:
1621没有社团. 1757没有选择社团。
1622 </message> 1758 </message>
1623 </alert> 1759 </alert>
1624 <alert name="CannotDeedLandNoRegion"> 1760 <alert name="CannotDeedLandNoRegion">
@@ -1628,18 +1764,6 @@ SecondLife.log文件。谢谢。
1628请使用帮助 -&gt; 报告æ¼æ´žæ¥æŠ¥å‘Šæ­¤é¡¹é”™è¯¯ã€‚ 1764请使用帮助 -&gt; 报告æ¼æ´žæ¥æŠ¥å‘Šæ­¤é¡¹é”™è¯¯ã€‚
1629 </message> 1765 </message>
1630 </alert> 1766 </alert>
1631 <alert name="CannotSetLandOwnerNothingSelected">
1632 <message name="message">
1633 法设定土地拥有者:
1634未选择任何对象。
1635 </message>
1636 </alert>
1637 <alert name="CannotBuyLandMultipleRegions">
1638 <message name="message">
1639 无法购买土地,因为选项跨越的区域太多。
1640请选择一个å°ä¸€ç‚¹çš„é¢ç§¯ï¼Œå¹¶é‡è¯•ã€‚
1641 </message>
1642 </alert>
1643 <alert name="CannotBuyLandMultipleSelected"> 1767 <alert name="CannotBuyLandMultipleSelected">
1644 <message name="message"> 1768 <message name="message">
1645 无法购买土地: 1769 无法购买土地:
@@ -1647,60 +1771,27 @@ SecondLife.log文件。谢谢。
1647请选择一å—较å°çš„é¢ç§¯ã€‚ 1771请选择一å—较å°çš„é¢ç§¯ã€‚
1648 </message> 1772 </message>
1649 </alert> 1773 </alert>
1650 <alert name="CannotDeedLandMultipleSelected">
1651 <message name="message">
1652 无法转让土地:
1653选中的ä¸åŒå•ä½åœŸåœ°æ•°é‡å¤ªå¤šã€‚
1654请选择一å—较å°çš„é¢ç§¯ã€‚
1655 </message>
1656 </alert>
1657 <alert name="RegionNotFound"> 1774 <alert name="RegionNotFound">
1658 <message name="message"> 1775 <message name="message">
1659 没有找到此地区 1776 没有找到此地区
1660 </message> 1777 </message>
1661 </alert> 1778 </alert>
1662 <alert name="ParcelCanPlayMusic">
1663 <message name="message">
1664 这个地方å¯ä»¥æ’­æ”¾æµåŠ¨éŸ³ä¹ã€‚
1665
1666音ä¹è¦æ±‚ 768 kbps 或者更快的
1667网络连接速度。
1668
1669如果网络å¯ç”¨ï¼Œæ˜¯å¦æ’­æ”¾éŸ³ä¹?
1670 </message>
1671 <option name="PlayMusic">
1672 播放音ä¹
1673 </option>
1674 <option name="Disable">
1675 ç¦æ­¢
1676 </option>
1677 </alert>
1678 <alert name="ParcelCanPlayMedia"> 1779 <alert name="ParcelCanPlayMedia">
1679 <message name="message"> 1780 <message name="message">
1680 T这个地方å¯ä»¥æ’­æ”¾æµåŠ¨è§†é¢‘。 1781 这个地方å¯ä»¥æ’­æ”¾æµåª’体。
1681 1782æµåª’体需è¦è¾ƒå¿«çš„网络连接。
1682æµåŠ¨è§†é¢‘è¦æ±‚768 kbps或者
1683更快的网络连接速度。
1684
1685如果网络å¯ç”¨ï¼Œæ˜¯å¦æ’­æ”¾æµåŠ¨è§†é¢‘?
1686 1783
1687(ä½ å¯ä»¥ç¨å€™åœ¨å‚数选择 &gt;音频 &amp;视频 1784如果网络å¯ç”¨ï¼Œæ˜¯å¦æ’­æ”¾æµåª’体?
1688下改å˜é€‰é¡¹ã€‚) 1785(ä½ å¯ä»¥ç¨åŽåœ¨ 首选项 &gt; 音频和视频 中
1786更改这个选项。)
1689 </message> 1787 </message>
1690 <option name="PlayMedia"> 1788 <option name="PlayMusic">
1691 播放多媒体 1789 播放媒体
1692 </option> 1790 </option>
1693 <option name="Disable"> 1791 <option name="Disable">
1694 ç¦æ­¢ 1792 ç¦æ­¢
1695 </option> 1793 </option>
1696 </alert> 1794 </alert>
1697 <alert name="CannotBuyLandWaitingForServer">
1698 <message name="message">
1699 无法购买土地:
1700等到æœåŠ¡å™¨æŠ¥å‘ŠèŠ±è´¹ã€‚
1701请ç¨å€™å†è¯•ã€‚
1702 </message>
1703 </alert>
1704 <alert name="CannotDeedLandWaitingForServer"> 1795 <alert name="CannotDeedLandWaitingForServer">
1705 <message name="message"> 1796 <message name="message">
1706 无法转让土地: 1797 无法转让土地:
@@ -1708,109 +1799,67 @@ SecondLife.log文件。谢谢。
1708请ç¨å€™å†è¯•ã€‚ 1799请ç¨å€™å†è¯•ã€‚
1709 </message> 1800 </message>
1710 </alert> 1801 </alert>
1711 <alert name="CannotBuyLandNoPublic">
1712 <message name="message">
1713 无法购买土地:
1714选择中ä¸åŒ…å«ä»»ä½•å…¬å…±åœŸåœ°ã€‚
1715 </message>
1716 </alert>
1717 <alert name="CannotBuyLandLandOwned">
1718 <message name="message">
1719 无法购买土地:
1720所选的土地属于å¦å¤–一个用户。
1721请é‡æ–°é€‰æ‹©ä¸€ä¸ªè¾ƒå°çš„é¢ç§¯ã€‚
1722 </message>
1723 </alert>
1724 <alert name="CannotButLandRegionNotFound">
1725 <message name="message">
1726 无法购买土地:
1727无法找到该土地所在区域。
1728请使用帮助 -&gt; 报告æ¼æ´žæ¥å‘我们报告这项错误。
1729 </message>
1730 </alert>
1731 <alert name="CannotBuyLandNoTransfer">
1732 <message name="message">
1733 无法购买土地:
1734区域[REGION]ä¸å…许转移土地。
1735 </message>
1736 </alert>
1737 <alert name="CannotDeedLandNoTransfer"> 1802 <alert name="CannotDeedLandNoTransfer">
1738 <message name="message"> 1803 <message name="message">
1739 无法转让土地: 1804 无法转让土地:
1740区域[REGION]ä¸å…许转移土地。 1805区域 [REGION] ä¸å…许转移土地。
1741 </message>
1742 </alert>
1743 <alert name="CannotBuyLandForGroupNotOfficer">
1744 <message name="message">
1745 无法为这个社团购买土地:
1746你在目å‰çš„社团里ä¸æ˜¯ç¤¾å›¢å®˜å‘˜
1747激活å¦ä¸€ä¸ªç¤¾å›¢è¯·ä½¿ç”¨ç¼–辑 -&gt; 社团...
1748 </message>
1749 </alert>
1750 <alert name="CannotBuyLandInsufficientFunds">
1751 <message name="message">
1752 è´­ä¹°é¢ç§¯ä¸º[é¢ç§¯]平方米的土地需è¦L$[ä»·æ ¼].
1753ä½ åªæœ‰ L$[资产表]。
1754 </message>
1755 </alert>
1756 <alert name="CannotReleaseLandNothingSelected">
1757 <message name="message">
1758 无法放弃土地:
1759未选中任何对象。
1760 </message> 1806 </message>
1761 </alert> 1807 </alert>
1762 <alert name="CannotReleaseLandWatingForServer"> 1808 <alert name="CannotReleaseLandWatingForServer">
1763 <message name="message"> 1809 <message name="message">
1764 无法放弃土地: 1810 无法放弃土地:
1765等待æœåŠ¡å™¨æŠ¥å‘ŠèŠ±è´¹ã€‚ 1811正等待æœåŠ¡å™¨æ›´æ–°åœ°å—ä¿¡æ¯ã€‚
1812
1766几秒钟åŽè¯·å†å°è¯•ä¸€æ¬¡ã€‚ 1813几秒钟åŽè¯·å†å°è¯•ä¸€æ¬¡ã€‚
1767 </message> 1814 </message>
1768 </alert> 1815 </alert>
1769 <alert name="CannotReleaseLandSelected"> 1816 <alert name="CannotReleaseLandSelected">
1770 <message name="message"> 1817 <message name="message">
1771 无法放弃土地: 1818 无法放弃土地:
1772选中的å•ä½åœŸåœ°æ•°é‡å¤ªå¤šã€‚ 1819你并ä¸æ‹¥æœ‰æ‰€æœ‰é€‰ä¸­çš„地å—。
1773请选择一å—较å°çš„é¢ç§¯ã€‚ 1820
1821请选择å•ä¸ªåœ°å—。
1774 </message> 1822 </message>
1775 </alert> 1823 </alert>
1776 <alert name="CannotReleaseLandDontOwn"> 1824 <alert name="CannotReleaseLandDontOwn">
1777 <message name="message"> 1825 <message name="message">
1778 无法放弃土地: 1826 无法放弃土地:
1779你没有让出这å—土地的许å¯è¯. 1827你没有让出这å—土地的许å¯ã€‚
1780你拥有的土地在游æˆä¸–界中是绿色. 1828你拥有的土地在世界中是绿色。
1781 </message> 1829 </message>
1782 </alert> 1830 </alert>
1783 <alert name="CannotReleaseLandRegionNotFound"> 1831 <alert name="CannotReleaseLandRegionNotFound">
1784 <message name="message"> 1832 <message name="message">
1785 无法放弃土地: 1833 无法放弃土地:
1786无法找到此土地所属的区域。 1834无法找到此土地所属的区域。
1835
1787请使用帮助 -&gt; 报告æ¼æ´žæ¥æŠ¥å‘Šè¿™ä¸ªé”™è¯¯ã€‚ 1836请使用帮助 -&gt; 报告æ¼æ´žæ¥æŠ¥å‘Šè¿™ä¸ªé”™è¯¯ã€‚
1788 </message> 1837 </message>
1789 </alert> 1838 </alert>
1790 <alert name="CannotReleaseLandNoTransfer"> 1839 <alert name="CannotReleaseLandNoTransfer">
1791 <message name="message"> 1840 <message name="message">
1792 无法放弃土地: 1841 无法放弃土地:
1793区域[REGION]内ä¸å…许转移土地。 1842区域 [REGION] 内ä¸å…许转移土地。
1794 </message> 1843 </message>
1795 </alert> 1844 </alert>
1796 <alert name="CannotReleaseLandPartialSelection"> 1845 <alert name="CannotReleaseLandPartialSelection">
1797 <message name="message"> 1846 <message name="message">
1798 无法放弃土地: 1847 无法放弃土地:
1799你必须选中全部å•ä½åœŸåœ°æ‰èƒ½ä½¿ç”¨æ­¤åŠŸèƒ½ã€‚ 1848你必须选中æ´ä¸ªåœ°å—æ‰èƒ½ä½¿ç”¨æ­¤åŠŸèƒ½ã€‚
1800å°è¯•åŒå‡»æ¥é€‰ä¸­å…¨éƒ¨å•ä½åœŸåœ°,或者 1849å°è¯•åŒå‡»æ¥é€‰ä¸­å…¨éƒ¨åœ°å—,或者
1801分割你的å•ä½åœŸåœ°ã€‚ 1850åˆåˆ†å‰²ä½ çš„地å—。
1802 </message> 1851 </message>
1803 </alert> 1852 </alert>
1804 <alert name="ReleaseLandWarning"> 1853 <alert name="ReleaseLandWarning">
1805 <message name="message"> 1854 <message name="message">
1806 你将放弃é¢ç§¯ä¸º[AREA]平方米的土地。 1855 你将放弃é¢ç§¯ä¸º [AREA] 平方米的土地。
1807放弃该土地会将他从你拥有的土地中 1856放弃该土地会将他从你拥有的土地中
1808移走, ä¸ä¼šå…‘æ¢æˆä»»ä½•çŽ°é‡‘. 1857移走, ä¸ä¼šå…‘æ¢æˆä»»ä½• L$。
1809 1858
1810是å¦æ”¾å¼ƒåœŸåœ°? 1859是å¦æ”¾å¼ƒåœŸåœ°?
1811 </message> 1860 </message>
1812 <option name="Release"> 1861 <option name="Release">
1813 å¯åŠ¨ 1862 确定
1814 </option> 1863 </option>
1815 <option name="Cancel"> 1864 <option name="Cancel">
1816 å–消 1865 å–消
@@ -1825,15 +1874,15 @@ SecondLife.log文件。谢谢。
1825 <alert name="CannotDivideLandPartialSelection"> 1874 <alert name="CannotDivideLandPartialSelection">
1826 <message name="message"> 1875 <message name="message">
1827 无法划分土地: 1876 无法划分土地:
1828你选择了一整å—å•ä½åœŸåœ°ã€‚ 1877
1829请使用点击,拖带的方法选用一å—é¢ç§¯è¾ƒå° 1878你选择了整å—地å—。
1830的土地。 1879请选择该地å—的一部分。
1831 </message> 1880 </message>
1832 </alert> 1881 </alert>
1833 <alert name="LandDivideWarning"> 1882 <alert name="LandDivideWarning">
1834 <message name="message"> 1883 <message name="message">
1835 分割次此土地会造æˆå•ä½åœŸåœ°ä¸€åˆ†ä¸ºäºŒï¼Œ 1884 分割此土地会将地å—一分为二,
1836且æ¯å—å•ä½åœŸåœ°ä¼šä¿ç•™åŽŸé…置。æ“作æˆåŠŸåŽï¼Œ 1885且æ¯å—地å—会ä¿ç•™åŽŸé…置。æ“作æˆåŠŸåŽï¼Œ
1837一些设置会被é‡ç½®ä¸ºé»˜è®¤å€¼ã€‚ 1886一些设置会被é‡ç½®ä¸ºé»˜è®¤å€¼ã€‚
1838 1887
1839是å¦åˆ†å‰²åœŸåœ°? 1888是å¦åˆ†å‰²åœŸåœ°?
@@ -1855,8 +1904,8 @@ SecondLife.log文件。谢谢。
1855 <alert name="CannotJoinLandNoRegion"> 1904 <alert name="CannotJoinLandNoRegion">
1856 <message name="message"> 1905 <message name="message">
1857 无法连接土地: 1906 无法连接土地:
1858无法找到该土地所属的区域. 1907无法找到该土地所属的区域。
1859请使用帮助 -&gt; 报告程åºæ¼æ´ž,让我们知é“问题所在. 1908请使用帮助 -&gt; 报告程åºæ¼æ´žï¼Œè®©æˆ‘们知é“问题所在。
1860 </message> 1909 </message>
1861 </alert> 1910 </alert>
1862 <alert name="CannotJoinLandNothingSelected"> 1911 <alert name="CannotJoinLandNothingSelected">
@@ -1868,39 +1917,49 @@ SecondLife.log文件。谢谢。
1868 <alert name="CannotJoinLandEntireParcelSelected"> 1917 <alert name="CannotJoinLandEntireParcelSelected">
1869 <message name="message"> 1918 <message name="message">
1870 无法åˆå¹¶åœŸåœ°: 1919 无法åˆå¹¶åœŸåœ°:
1871ä½ å·²ç»é€‰ä¸­ä¸€å—完整的å•ä½åœŸåœ°ã€‚ 1920您åªé€‰æ‹©äº†å•ä¸ªåœ°å—。
1872请å°è¯•ç‚¹å‡»å¹¶æ‹–动,选择一å—é¢ç§¯è¾ƒå¤§ 1921
1873的区域。 1922请选择跨两个地å—的区域。
1874 </message> 1923 </message>
1875 </alert> 1924 </alert>
1876 <alert name="CannotJoinLandSelection"> 1925 <alert name="CannotJoinLandSelection">
1877 <message name="message"> 1926 <message name="message">
1878 无法åˆå¹¶åœŸåœ°: 1927 无法åˆå¹¶åœŸåœ°:
1879你必须选择一å—以上的å•ä½åœŸåœ°. 1928您必须选择一个以上的地å—。
1880请å°è¯•ç‚¹å‡»å¹¶æ‹–动,选择一å—é¢ç§¯è¾ƒå¤§ 1929
1881的区域。 1930请选择跨两个地å—的区域。
1882 </message> 1931 </message>
1883 </alert> 1932 </alert>
1884 <alert name="JoinLandWarning"> 1933 <alert name="JoinLandWarning">
1885 <message name="message"> 1934 <message name="message">
1886 连接土地需è¦åœ¨ä¸Žæ‰€é€‰çŸ©å½¢ç›¸äº¤çš„所有 1935 åˆå¹¶åœŸåœ°å°†ä»Žä¸Žæ‰€é€‰çŸ©å½¢ç›¸äº¤çš„所有
1887å•ä½åœŸåœ°å¤–创建新的更大的å•ä½åœŸåœ°ã€‚ 1936地å创建新的地å—。
1888 1937
1889ä½ å¿…é¡»é‡ç½®æ–°å•ä½åœŸåœ°çš„åç§°å’Œä¹°å– 1938ä½ å¿…é¡»é‡ç½®è¿™ä¸€æ–°åœ°å—çš„å称和选项。
1890特æƒã€‚
1891 1939
1892是å¦è¿žæŽ¥åœŸåœ°? 1940是å¦åˆå¹¶åœŸåœ°?
1893 </message> 1941 </message>
1894 <option name="Join"> 1942 <option name="Join">
1895 加入 1943 åˆå¹¶
1896 </option> 1944 </option>
1897 <option name="Cancel"> 1945 <option name="Cancel">
1898 å–消 1946 å–消
1899 </option> 1947 </option>
1900 </alert> 1948 </alert>
1949 <alert name="ConfirmNotecardSave">
1950 <message name="message">
1951 åªæœ‰ä¿å­˜è¿™å¼ è®°äº‹å¡ä¹‹åŽï¼Œæ­¤é¡¹ç‰©å“æ‰å¯ä»¥å¤åˆ¶æˆ–查看。是å¦ä¿å­˜è®°äº‹å¡ï¼Ÿ
1952 </message>
1953 <option name="Save">
1954 是的,请ä¿å­˜
1955 </option>
1956 <option name="Cancel">
1957 å–消ä¿å­˜
1958 </option>
1959 </alert>
1901 <alert name="ConfirmLandmarkCopy"> 1960 <alert name="ConfirmLandmarkCopy">
1902 <message name="message"> 1961 <message name="message">
1903 å¤åˆ¶æ­¤ç‰©å至你的库存? 1962 å¤åˆ¶æ­¤åœ°æ ‡è‡³ä½ çš„库存?
1904 </message> 1963 </message>
1905 <option name="Copy"> 1964 <option name="Copy">
1906 å¤åˆ¶ 1965 å¤åˆ¶
@@ -1911,7 +1970,7 @@ SecondLife.log文件。谢谢。
1911 </alert> 1970 </alert>
1912 <alert name="ConfirmItemCopy"> 1971 <alert name="ConfirmItemCopy">
1913 <message name="message"> 1972 <message name="message">
1914 å¤åˆ¶æ­¤ç‰©å“至你的库存? 1973 å¤åˆ¶æ­¤ç‰©å“至你的库存?
1915 </message> 1974 </message>
1916 <option name="Copy"> 1975 <option name="Copy">
1917 å¤åˆ¶ 1976 å¤åˆ¶
@@ -1922,41 +1981,42 @@ SecondLife.log文件。谢谢。
1922 </alert> 1981 </alert>
1923 <alert name="ResolutionSwitchFail"> 1982 <alert name="ResolutionSwitchFail">
1924 <message name="message"> 1983 <message name="message">
1925 无法用[RESY]ç½®æ¢[RESX] 1984 切æ¢åˆ†è¾¨çŽ‡åˆ° [RESX] × [RESY] 失败
1926 </message> 1985 </message>
1927 </alert> 1986 </alert>
1928 <alert name="ErrorUndefinedGrasses"> 1987 <alert name="ErrorUndefinedGrasses">
1929 <message name="message"> 1988 <message name="message">
1930 错误: 为定义è‰åª: [ç§ç±»] 1989 错误: 未定义è‰åª: [SPECIES]
1931 </message> 1990 </message>
1932 </alert> 1991 </alert>
1933 <alert name="ErrorUndefinedTrees"> 1992 <alert name="ErrorUndefinedTrees">
1934 <message name="message"> 1993 <message name="message">
1935 错误:为定义树木: [ç§ç±»] 1994 错误: 未定义树木: [SPECIES]
1936 </message> 1995 </message>
1937 </alert> 1996 </alert>
1938 <alert name="CannotSaveWearableOutOfSpace"> 1997 <alert name="CannotSaveWearableOutOfSpace">
1939 <message name="message"> 1998 <message name="message">
1940 无法储存&apos;[NAME]&apos;至衣物文档.ä½ å¯èƒ½éœ€è¦ 1999 无法储存 &apos;[NAME]&apos; 到装æŸæ–‡ä»¶ã€‚ä½ å¯èƒ½éœ€è¦
1941释放部分电脑存储空间åŽé‡æ–°å‚¨å­˜ 2000释放部分电脑存储空间åŽé‡æ–°å‚¨å­˜ã€‚
1942至衣物文档.
1943 </message> 2001 </message>
1944 </alert> 2002 </alert>
1945 <alert name="CannotSaveToAssetStore"> 2003 <alert name="CannotSaveToAssetStore">
1946 <message name="message"> 2004 <message name="message">
1947 无法储存[NAME]至终属资产存储. 2005 无法储存 [NAME] 至中央资料æœåŠ¡å™¨ã€‚
1948这通常是暂时性功能障ç¢ã€‚请用户化åŽå†æ¬¡ä¿å­˜ã€‚ 2006这通常åªæ˜¯ä¸´æ—¶çš„问题。请自定义åŽå†æ¬¡ä¿å­˜ã€‚
2007
1949如果问题ä¾ç„¶å­˜åœ¨ï¼Œè¯·ç‚¹å‡» 2008如果问题ä¾ç„¶å­˜åœ¨ï¼Œè¯·ç‚¹å‡»
1950帮助/报告æ¼æ´žå¹¶æä¾› 2009帮助/报告æ¼æ´žå¹¶æä¾›
1951客户网络设置的具体信æ¯ã€‚ 2010您的网络设置的具体信æ¯ã€‚
1952 </message> 2011 </message>
1953 </alert> 2012 </alert>
1954 <alert name="AppEarlyExit"> 2013 <alert name="AppEarlyExit">
1955 <message name="message"> 2014 <message name="message">
1956 [MESSAGE] 2015 [MESSAGE]
1957 2016
1958我们无法修å¤è¯¥é”™è¯¯ã€‚请 2017我们无法修å¤è¯¥é”™è¯¯ã€‚
1959请å¸è½½å¹¶é‡æ–°å®‰è£…,并å†æ¬¡å°è¯•ã€‚如果错误ä»å­˜åœ¨ï¼Œ 2018
2019请å¸è½½å¹¶é‡æ–°å®‰è£…,然åŽå†æ¬¡å°è¯•ã€‚如果错误ä»å­˜åœ¨ï¼Œ
1960请登陆www.secondlife.com/support 2020请登陆www.secondlife.com/support
1961寻求技术支æŒã€‚ 2021寻求技术支æŒã€‚
1962 </message> 2022 </message>
@@ -1966,16 +2026,15 @@ SecondLife.log文件。谢谢。
1966 </alert> 2026 </alert>
1967 <alert name="YouHaveBeenLoggedOut"> 2027 <alert name="YouHaveBeenLoggedOut">
1968 <message name="message"> 2028 <message name="message">
1969 ä½ å·²ç»é€€å‡ºç™»é™†[SECOND_LIFE]: 2029 ä½ å·²ç»é€€å‡º[SECOND_LIFE]:
1970 2030
1971[MESSAGE] 2031[MESSAGE]
1972 2032
1973点击继续å¯ä»¥æŸ¥çœ‹åŽ†å²å³æ—¶é€šè®°å½•å’ŒèŠå¤©è®°å½•ã€‚ 2033您ä»å¯ä»¥æŸ¥çœ‹åŽ†å²å³æ—¶é€šè®°å½•å’ŒèŠå¤©è®°å½•ã€‚
1974ä½ å°†ä¸èƒ½ä½¿ç”¨å…¶ä»–任何功能进行其它æ“作。 2034å¦åˆ™ç‚¹å‡»é€€å‡ºå°†ç«‹å³å…³é—­ [SECOND_LIFE]。
1975点击退出,马上退出SECOND_LIFE]。
1976 </message> 2035 </message>
1977 <option name="Continue"> 2036 <option name="Continue">
1978 继续 2037 查看èŠå¤©è®°å½•
1979 </option> 2038 </option>
1980 <option name="Quit"> 2039 <option name="Quit">
1981 退出 2040 退出
@@ -1984,18 +2043,37 @@ SecondLife.log文件。谢谢。
1984 <alert name="OnlyOfficerCanBuyLand"> 2043 <alert name="OnlyOfficerCanBuyLand">
1985 <message name="message"> 2044 <message name="message">
1986 无法为社团购买土地: 2045 无法为社团购买土地:
1987你没有为你的活动社团购买土地的许å¯è¯. 2046你没有为你的活动社团购买土地的许å¯ã€‚
1988请激活å¦ä¸€ç¤¾å›¢ï¼Œä½¿ç”¨ç¼–辑 -&gt; 社团...
1989 </message> 2047 </message>
1990 </alert> 2048 </alert>
1991 <alert name="AddFriend" title="添加朋å‹"> 2049 <alert name="AddFriend" title="添加朋å‹">
1992 <message name="message"> 2050 <message name="message">
1993 好å‹ä»¬å¯ä»¥åœ¨åœ°å›¾ä¸Šäº’相追踪,并å¯ä»¥åœ¨çº¿æŽ¥å—æ›´æ–°ä¿¡æ¯. 2051 好å‹å¯ä»¥äº’相å…许对方
2052在地图上找到自己,
2053以åŠæŽ¥å—上线通知。
1994 2054
1995是å¦å‘é€å‹è°Šå¡ç»™[NAME]? 2055是å¦æè®® [NAME] æˆä¸ºå¥½å‹ï¼Ÿ
1996 </message> 2056 </message>
1997 <option name="Offer"> 2057 <option name="Offer">
1998 接收 2058 æè®®
2059 </option>
2060 <option name="Cancel">
2061 å–消
2062 </option>
2063 </alert>
2064 <alert name="AddFriendWithMessage" title="添加朋å‹">
2065 <message name="message">
2066 好å‹å¯ä»¥äº’相å…许对方
2067在地图上找到自己,
2068以åŠæŽ¥å—上线通知。
2069
2070是å¦æè®® [NAME] æˆä¸ºå¥½å‹ï¼Ÿ
2071 </message>
2072 <editline name="editline">
2073 我们åšæœ‹å‹å¥½å—?
2074 </editline>
2075 <option name="Offer">
2076 æè®®
1999 </option> 2077 </option>
2000 <option name="Cancel"> 2078 <option name="Cancel">
2001 å–消 2079 å–消
@@ -2003,7 +2081,7 @@ SecondLife.log文件。谢谢。
2003 </alert> 2081 </alert>
2004 <alert name="RemoveFromFriends"> 2082 <alert name="RemoveFromFriends">
2005 <message name="message"> 2083 <message name="message">
2006 你是å¦è¦å°†[FIRST_NAME] [LAST_NAME] 移出你的朋å‹åœˆ? 2084 你是å¦è¦å°†[FIRST_NAME] [LAST_NAME] 从好å‹åˆ—表中去除?
2007 </message> 2085 </message>
2008 <option name="Remove"> 2086 <option name="Remove">
2009 移除 2087 移除
@@ -2012,17 +2090,26 @@ SecondLife.log文件。谢谢。
2012 å–消 2090 å–消
2013 </option> 2091 </option>
2014 </alert> 2092 </alert>
2015 <alert name="GodDeleteAllScriptedPublicObjectsByUser"> 2093 <alert name="RemoveMultipleFromFriends">
2016 <message name="message"> 2094 <message name="message">
2017 你是å¦ç¡®å®šæ„¿æ„删除以下用户 2095 你希望从好å‹åˆ—表中移除若干好å‹å—?
2018 2096 </message>
2019 2097 <option name="Remove">
2098 是的,移除
2099 </option>
2100 <option name="Cancel">
2101 å–消
2102 </option>
2103 </alert>
2104 <alert name="GodDeleteAllScriptedPublicObectsByUser">
2105 <message name="message">
2106 你是å¦ç¡®å®šåˆ é™¤ç”¨æˆ·
2020** [AVATAR_NAME] ** 2107** [AVATAR_NAME] **
2021 2108
2022在其他土地上æ‰æ‹¥æœçš„所有å¯æœ¬ä¸œä¸œï¼Ÿ 2109在所有他人所有的土地上带æœè„šæœ¬çš„所有ç©ä½“?
2023 </message> 2110 </message>
2024 <option name="DELETE!!"> 2111 <option name="DELETE!!">
2025 删除!! 2112 全部删掉!!
2026 </option> 2113 </option>
2027 <option name="Cancel"> 2114 <option name="Cancel">
2028 å–消 2115 å–消
@@ -2030,15 +2117,12 @@ SecondLife.log文件。谢谢。
2030 </alert> 2117 </alert>
2031 <alert name="GodDeleteAllScriptedObjectsByUser"> 2118 <alert name="GodDeleteAllScriptedObjectsByUser">
2032 <message name="message"> 2119 <message name="message">
2033 你是å¦ç¡®å®šæ„¿æ„删除以下用户 2120 你是å¦ç¡®å®šåˆ é™¤ç”¨æˆ·
2034
2035
2036** [AVATAR_NAME] ** 2121** [AVATAR_NAME] **
2037 2122在该模拟器中 &lt;所有土地&gt; 上带有脚本的所有物体?
2038在所有土地上所拥有的所有东东(无论是å¦æœ‰å‰¯æœ¬)?
2039 </message> 2123 </message>
2040 <option name="!!DELETEALL!!"> 2124 <option name="!!DELETEALL!!">
2041 !!DELETE ALL!! 2125 全部删掉!!
2042 </option> 2126 </option>
2043 <option name="Cancel"> 2127 <option name="Cancel">
2044 å–消 2128 å–消
@@ -2046,15 +2130,13 @@ SecondLife.log文件。谢谢。
2046 </alert> 2130 </alert>
2047 <alert name="GodDeleteAllObjectsByUser"> 2131 <alert name="GodDeleteAllObjectsByUser">
2048 <message name="message"> 2132 <message name="message">
2049 你是å¦ç¡®å®šæ„¿æ„删除以下用户 2133 你是å¦ç¡®å®šåˆ é™¤ç”¨æˆ·
2050
2051
2052** [AVATAR_NAME] ** 2134** [AVATAR_NAME] **
2053 2135在该模拟器中 &lt;所有土地&gt; 上的所有物体
2054在所有土地上所拥有的所有东东(无论是å¦æœ‰å‰¯æœ¬)? 2136(无论是å¦å¸¦æœ‰è„šæœ¬)?
2055 </message> 2137 </message>
2056 <option name="!!DELETEALL!!"> 2138 <option name="!!DELETEALL!!">
2057 !!DELETE ALL!! 2139 全部删掉!!
2058 </option> 2140 </option>
2059 <option name="Cancel"> 2141 <option name="Cancel">
2060 å–消 2142 å–消
@@ -2062,36 +2144,36 @@ SecondLife.log文件。谢谢。
2062 </alert> 2144 </alert>
2063 <alert name="PublishGroupInfoToWeb"> 2145 <alert name="PublishGroupInfoToWeb">
2064 <message name="message"> 2146 <message name="message">
2065 选择 &quot;在网络上å‘布&quot;选项将å…许我们å‘布社团的å称,徽章,规章制度,头衔和创始人至[SECOND_LIFE]网站。如果你å‘布的内容,根æ®ç¤¾åŒºæ ‡å‡†è§„定,涉åŠåˆ°æˆäººå†…容,你有责任对此作出声明。 2147 选择 &quot;在网络上å‘布&quot;选项将å…许我们å‘布社团的å称,徽章,规章制度,头衔和创始人至 [SECOND_LIFE] 网站。如果你å‘布的内容,根æ®ç¤¾åŒºæ ‡å‡†è§„定,涉åŠåˆ°æˆäººå†…容,你有责任对此作出声明。
2066 </message> 2148 </message>
2067 </alert> 2149 </alert>
2068 <alert name="ErrorEncodingSnapshot"> 2150 <alert name="ErrorEncodingSnapshot">
2069 <message name="message"> 2151 <message name="message">
2070 ç¼–ç å¿«ç…§é”™è¯¯! 2152 快照编ç é”™è¯¯!
2071 </message> 2153 </message>
2072 </alert> 2154 </alert>
2073 <alert name="BlankClassifiedName"> 2155 <alert name="BlankClassifiedName">
2074 <message name="message"> 2156 <message name="message">
2075 你必须为你的分类设定一个ä¸æ˜¯ç©ºç™½çš„å字。 2157 你必须给分类广告设定一个å字。
2076 </message> 2158 </message>
2077 </alert> 2159 </alert>
2078 <alert name="MinClassifiedPrice"> 2160 <alert name="MinClassifiedPrice">
2079 <message name="message"> 2161 <message name="message">
2080 Price to pay for listing must be at least L$[MIN_PRICE]. 2162 广告刊登出价必须大于 L$[MIN_PRICE]。
2081 2163
2082Please enter a higher price. 2164请输入一个更高的价格。
2083 </message> 2165 </message>
2084 </alert> 2166 </alert>
2085 <alert name="CantLoadVertexShaders"> 2167 <alert name="CantLoadVertexShaders">
2086 <message name="message"> 2168 <message name="message">
2087 无法无法载入Vertex Shaders. 2169 无法载入顶点ç€è‰²å™¨ã€‚
2088 </message> 2170 </message>
2089 </alert> 2171 </alert>
2090 <alert name="ConfirmObjectDeleteLock"> 2172 <alert name="ConfirmObjectDeleteLock">
2091 <message name="message"> 2173 <message name="message">
2092 至少一件东东被é”定。 2174 您选择的物å“中至少有一件被é”定。
2093然而,你å¯ä»¥åˆ é™¤å½“å‰é€‰é¡¹ã€‚ 2175
2094你确定将这些é€é¡¹åˆ é™¤å—? 2176您确定è¦åˆ é™¤è¿™äº›ç©ä½“å—?
2095 </message> 2177 </message>
2096 <option name="Yes"> 2178 <option name="Yes">
2097 是 2179 是
@@ -2102,9 +2184,9 @@ Please enter a higher price.
2102 </alert> 2184 </alert>
2103 <alert name="ConfirmObjectDeleteNoCopy"> 2185 <alert name="ConfirmObjectDeleteNoCopy">
2104 <message name="message"> 2186 <message name="message">
2105 至少一件东东ä¸å¯å¤åˆ¶ã€‚ 2187 您选择的物å“中至少有一件ä¸å¯å¤åˆ¶ã€‚
2106然而,你å¯ä»¥åˆ é™¤å½“å‰é€‰é¡¹ã€‚ 2188
2107你确定将这些é€é¡¹åˆ é™¤å—? 2189您确定è¦åˆ é™¤è¿™äº›ç©ä½“å—?
2108 </message> 2190 </message>
2109 <option name="Yes"> 2191 <option name="Yes">
2110 是 2192 是
@@ -2115,9 +2197,9 @@ Please enter a higher price.
2115 </alert> 2197 </alert>
2116 <alert name="ConfirmObjectDeleteNoOwn"> 2198 <alert name="ConfirmObjectDeleteNoOwn">
2117 <message name="message"> 2199 <message name="message">
2118 你并没有任何一件东东。 2200 您选择的物å“中至少有一件ä¸æ˜¯ä½ çš„。
2119但是,你å¯ä»¥åˆ é™¤ç›®å‰çš„选择内容。 2201
2120确定删除æ€æœ‰é€‰é¡¹å—? 2202您确定è¦åˆ é™¤è¿™äº›ç©ä½“å—?
2121 </message> 2203 </message>
2122 <option name="Yes"> 2204 <option name="Yes">
2123 是 2205 是
@@ -2128,10 +2210,10 @@ Please enter a higher price.
2128 </alert> 2210 </alert>
2129 <alert name="ConfirmObjectDeleteLockNoCopy"> 2211 <alert name="ConfirmObjectDeleteLockNoCopy">
2130 <message name="message"> 2212 <message name="message">
2131 至少一件东东被é”定。 2213 您选择的物å“中至少有一件被é”定,
2132至少一件东东ä¸å¯å¤åˆ¶ã€‚ 2214并且至少有一件ä¸å¯å¤åˆ¶ã€‚
2133然而,你å¯ä»¥åˆ é™¤ç›®å‰é€‰é¡¹ã€‚ 2215
2134你确定è¦åˆ é™¤ç®å选项å—? 2216您确定è¦åˆ é™¤è¿™äºç©ä½“å—?
2135 </message> 2217 </message>
2136 <option name="Yes"> 2218 <option name="Yes">
2137 是 2219 是
@@ -2142,10 +2224,10 @@ Please enter a higher price.
2142 </alert> 2224 </alert>
2143 <alert name="ConfirmObjectDeleteLockNoOwn"> 2225 <alert name="ConfirmObjectDeleteLockNoOwn">
2144 <message name="message"> 2226 <message name="message">
2145 至少有一件东东被é”定。 2227 您选择的物å“中至少有一件被é”定,
2146你并ä¸æ˜¯è‡³å°‘拥有一件东东。 2228并ä¸è‡³å°‘有一件ä¸æ˜¯ä½ çš„。
2147然而,你å¯ä»¥åˆ é™¤å½“å‰é€‰é¡¹ã€‚ 2229
2148你确定将这些é€é¡¹åˆ é™¤å—? 2230您确定è¦åˆ é™¤è¿™äº›ç©ä½“å—?
2149 </message> 2231 </message>
2150 <option name="Yes"> 2232 <option name="Yes">
2151 是 2233 是
@@ -2156,10 +2238,10 @@ Please enter a higher price.
2156 </alert> 2238 </alert>
2157 <alert name="ConfirmObjectDeleteNoCopyNoOwn"> 2239 <alert name="ConfirmObjectDeleteNoCopyNoOwn">
2158 <message name="message"> 2240 <message name="message">
2159 至少一件东东ä¸å¯å¤åˆ¶ã€‚ 2241 您选择的物å“中至少有一件ä¸å¯å¤åˆ¶ï¼Œ
2160你并éžè‡³å°‘拥有一件东东。 2242并且至少有一件ä¸æ˜¯ä½ çš„。
2161然而,你å¯ä»¥åˆ é™¤å½“å‰é€‰é¡¹ã€‚ 2243
2162你确定将这些é€é¡¹åˆ é™¤å—? 2244您确定è¦åˆ é™¤è¿™äº›ç©ä½“å—?
2163 </message> 2245 </message>
2164 <option name="Yes"> 2246 <option name="Yes">
2165 是 2247 是
@@ -2170,11 +2252,11 @@ Please enter a higher price.
2170 </alert> 2252 </alert>
2171 <alert name="ConfirmObjectDeleteLockNoCopyNoOwn"> 2253 <alert name="ConfirmObjectDeleteLockNoCopyNoOwn">
2172 <message name="message"> 2254 <message name="message">
2173 至少一件东东被é”定。 2255 您选择的物å“中至少有一件被é”定,
2174至少一件东东ä¸å¯å¤åˆ¶ã€‚ 2256 至少有一件ä¸å¯å¤åˆ¶ï¼Œå¹¶ä¸”
2175你并éžè‡³å°‘拥有一件东东。 2257 至少有一件ä¸æ˜¯ä½ çš„。
2176然而,你å¯ä»¥åˆ é™¤å½“å‰é€‰é¡¹ã€‚ 2258
2177你确定将这些é€é¡¹åˆ é™¤å—? 2259您确定è¦åˆ é™¤è¿™äº›ç©ä½“å—?
2178 </message> 2260 </message>
2179 <option name="Yes"> 2261 <option name="Yes">
2180 是 2262 是
@@ -2185,9 +2267,9 @@ Please enter a higher price.
2185 </alert> 2267 </alert>
2186 <alert name="ConfirmObjectTakeLock"> 2268 <alert name="ConfirmObjectTakeLock">
2187 <message name="message"> 2269 <message name="message">
2188 至少一件东东被é”定。 2270 您选择的物å“中至少有一件被é”定。
2189然而,你还是å¯ä»¥é€‰æ‹©å½“å‰é€‰é¡¹ã€‚ 2271
2190你确定选择这些é€é¡¹å—? 2272您确定è¦æ‹¿èµ°è¿™äº›ç©ä½“å—?
2191 </message> 2273 </message>
2192 <option name="Yes"> 2274 <option name="Yes">
2193 是 2275 是
@@ -2198,12 +2280,12 @@ Please enter a higher price.
2198 </alert> 2280 </alert>
2199 <alert name="ConfirmObjectTakeNoOwn"> 2281 <alert name="ConfirmObjectTakeNoOwn">
2200 <message name="message"> 2282 <message name="message">
2201 ä½ æºå¸¦çš„东东并ä¸å®Œå…¨æ˜¯ä½ æ‰€æ‹¥æœ‰ã€‚ 2283 您选择的物å“中至少æœä¸€ä»¶ä¸æ˜¯ä½ çš„。
2202如果继续,下ä¸ä¸ªæ‹¥æœ‰è€…许å¯è¯çš„应用 2284如果有æŸä»ç‰©ä½“本ä¸å±žäºŽä½ è€Œä½ å´æ‹¿èµ°äº†å®ƒ,
2203于东东将有å¯èƒ½é™åˆ¶ä½ åœ¨æœªæ¥ 2285ä¸ä¸ªæ‹¥æœ‰è€…æƒåˆ©å°†å¯¹è¯¥ç©ä½“适用并å¯èƒ½é™åˆ¶
2204修改或å¤åˆ¶ä¸œä¸œçš„能力。 2286ä½ å¤åˆ¶æˆ–修改它的æƒåˆ©ã€‚
2205但是,你å¯ä»¥æºå¸¦ç›®å‰æ‰€é€‰çš„东东。 2287
2206确定继续æºå¸¦è¿™äº›ä¸œä¸œ? 2288您确定è¦æ‹¿èµ°è¿™äº›ç‰©ä½“å—?
2207 </message> 2289 </message>
2208 <option name="Yes"> 2290 <option name="Yes">
2209 是 2291 是
@@ -2214,13 +2296,13 @@ Please enter a higher price.
2214 </alert> 2296 </alert>
2215 <alert name="ConfirmObjectTakeLockNoOwn"> 2297 <alert name="ConfirmObjectTakeLockNoOwn">
2216 <message name="message"> 2298 <message name="message">
2217 至少有一件东东被é”定。 2299 您选择的物å“中至少有一件被é”定,
2218ä½ æ‰æ‹¿èµ°çš„东东并ä¸å®Œå…¨å±žäºŽä½ ã 2300如果有æŸä»¶ç‰©ä½“本ä¸å±žäºŽä½ èŒä½ å´æ‹¿èµ°äº†å®ƒ,
2219如果继续,东东使用下一个主人许å¯æ—,有å¯èƒ½ä¼š 2301ä¸ä¸ªæ‹¥æœ‰è€…æƒåˆ©å°†å¯¹è¯¥ç‰©ä½“适用并å¯èƒ½é™åˆ¶
2220ç¦æ­¢ä½ åœ¨æœªæ¥ä¿®æ”¹æˆ–å¤åˆ¶å®ƒçš„ 2302ä½ å¤åˆ¶æˆ–修改它的æƒåˆ©ã€‚
2221能力。 2303但是你ä»æ—§å¯ä»¥æ‹¿èµ°å½å‰æ‰€é€‰é¡¹ã€‚
2222然而,你还是å¯ä»¥æ‰§è¡Œç›®å‰çš„选择。 2304
2223你确定è¦æ‹¿èµ°ç‰©å“æ é‡Œçš„东西å—? 2305您确定è¦æ‹¿èµ°è¿™äº›ç‰©ä½“å—?
2224 </message> 2306 </message>
2225 <option name="Yes"> 2307 <option name="Yes">
2226 是 2308 是
@@ -2237,15 +2319,15 @@ Please enter a higher price.
2237 </alert> 2319 </alert>
2238 <alert name="DeedLandToGroup"> 2320 <alert name="DeedLandToGroup">
2239 <message name="message"> 2321 <message name="message">
2240 转让这å—å•ä½åœŸåœ°åŽ, 社团需è¦æ‹¥æœ‰å¹¶ 2322 转让这å—地å—åŽ, 社团需è¦æ‹¥æœ‰å¹¶
2241ä¿ç•™è¶³å¤Ÿçš„土地使用信用é¢ã€‚ 2323ä¿ç•™è¶³å¤Ÿçš„土地使用é¢åº¦ã€‚
2242 2324
2243土地的消费价格ä¸ä¼šé€€è¿˜ç»™åœ°ä¸»ã€‚ 2325土地的购买价格ä¸ä¼šé€€è¿˜ç»™æ‰€æœäººã€‚
2244若所转让的å•ä½åœŸåœ°è¢«å”®å‡ºï¼Œå”®å‡ºä»· 2326若所转让的地å—被售出,售出价
2245将被平å‡åˆ†ç»™æ‰€æœ‰ç»„员。 2327将被平å‡åˆ†ç»™æ‰€æœ‰ç»„员。
2246 2328
2247转让这å—é¢ç§¯ä¸º[é¢ç§¯]平方米的土地至社团 2329转让这å—é¢ç§¯ä¸º [AREA]平方米的土地至社团
2248&apos;[社团å称]&apos;? 2330&apos;[GROUP_NAME]&apos;?
2249 </message> 2331 </message>
2250 <option name="Deed"> 2332 <option name="Deed">
2251 转让 2333 转让
@@ -2256,18 +2338,18 @@ Please enter a higher price.
2256 </alert> 2338 </alert>
2257 <alert name="DeedLandToGroupWithContribution"> 2339 <alert name="DeedLandToGroupWithContribution">
2258 <message name="message"> 2340 <message name="message">
2259 转让这å—å•ä½åœŸåœ°åŽ, 社团需è¦æ‹¥æœ‰å¹¶ 2341 转让这å—地å—åŽ, 社团需è¦æ‹¥æœ‰å¹¶
2260ä¿ç•™è¶³å¤Ÿçš„土地使用信用é¢ã€‚ 2342ä¿ç•™è¶³å¤Ÿçš„土地使用é¢åº¦ã€‚
2261 2343
2262转让将åŒæ—¶åŒ…括土地从个人 2344转让将åŒæ—¶åŒ…括
2263 &apos;[FIRST_NAME] [LAST_NAME]&apos;贡献到社团处。 2345 &apos;[FIRST_NAME] [LAST_NAME]&apos; 对社团çšåœŸåœ°è´¡çŒ®ã€‚
2264 2346
2265土地的消费价格ä¸ä¼šé€€è¿˜ç»™åœ°ä¸»ã€‚ 2347土地的购买价格ä¸ä¼šé€€è¿˜ç»™æ‰€æœäººã€‚
2266若所转让的å•ä½åœŸåœ°è¢«å”®å‡ºï¼Œå”®å‡ºä»· 2348若所转让的地å—被售出,售出价
2267将被平å‡åˆ†ç»™æ‰€æœ‰ç»„员。 2349将被平å‡åˆ†ç»™æ‰€æœ‰ç»„员。
2268 2350
2269转让这å—é¢ç§¯ä¸º[é¢ç§¯]平方米的土地至社团 2351转让这å—é¢ç§¯ä¸º [AREA]平方米的土地至社团
2270&apos;[社团å称]&apos;? 2352&apos;[GROUP_NAME]&apos;?
2271 </message> 2353 </message>
2272 <option name="Deed"> 2354 <option name="Deed">
2273 转让 2355 转让
@@ -2278,19 +2360,18 @@ Please enter a higher price.
2278 </alert> 2360 </alert>
2279 <alert name="DisplaySetToSafe"> 2361 <alert name="DisplaySetToSafe">
2280 <message name="message"> 2362 <message name="message">
2281 基于您的特殊安全è¦æ±‚,显示设置 2363 显示设置已调整为安全水平,因为您指定了 -safe 选项。
2282å·²ç»è¢«è®¾æˆå®‰å…¨æ°´å¹³æ¨¡å¼ã€‚
2283 </message> 2364 </message>
2284 </alert> 2365 </alert>
2285 <alert name="DisplaySetToRecommended"> 2366 <alert name="DisplaySetToRecommended">
2286 <message name="message"> 2367 <message name="message">
2287 显示设置已ç»è¢«è®¾ç½®åœ¨æŽ¨è的水平上,推è水平是基于您计算机的系统é…置得出的。 2368 基于您计算机的系统é…置,显示设置已ç»è¢«è®¾ç½®åœ¨æŽ¨è的水平上。
2288 </message> 2369 </message>
2289 </alert> 2370 </alert>
2290 <alert name="UnableToConnect"> 2371 <alert name="UnableToConnect">
2291 <message name="message"> 2372 <message name="message">
2292 无法连接到æœåŠ¡å™¨. 2373 无法连接到æœåŠ¡å™¨.
2293无法请求连接域å: [HOST_NAME] 2374无法请求域å: [HOST_NAME]
2294 </message> 2375 </message>
2295 </alert> 2376 </alert>
2296 <alert name="CanNotFindServer"> 2377 <alert name="CanNotFindServer">
@@ -2300,10 +2381,10 @@ Please enter a higher price.
2300所引å‘的结果。 2381所引å‘的结果。
2301 2382
2302请几分钟åŽå†è¯•, 或点击帮助 2383请几分钟åŽå†è¯•, 或点击帮助
2303获得建议和到达系统状æ€çš„网页链接。 2384获得建议和到系统状æ€ç½‘页的链接。
2304 </message> 2385 </message>
2305 <option name="OK"> 2386 <option name="OK">
2306 OK 2387 确定
2307 </option> 2388 </option>
2308 <option name="Help"> 2389 <option name="Help">
2309 帮助 2390 帮助
@@ -2320,10 +2401,10 @@ Please enter a higher price.
2320 无法连接到[SECOND_LIFE] 2401 无法连接到[SECOND_LIFE]
2321å¯èƒ½æ˜¯ç³»ç»Ÿæ•…障。 2402å¯èƒ½æ˜¯ç³»ç»Ÿæ•…障。
2322请几分钟åŽå†è¯•,或者点击帮助 2403请几分钟åŽå†è¯•,或者点击帮助
2323获得建议和到达系统状æ€çš„网页链接。 2404获得建议和到系统状æ€ç½‘页的链接。
2324 </message> 2405 </message>
2325 <option name="OK"> 2406 <option name="OK">
2326 OK 2407 确定
2327 </option> 2408 </option>
2328 <option name="Help"> 2409 <option name="Help">
2329 帮助 2410 帮助
@@ -2334,11 +2415,21 @@ Please enter a higher price.
2334 [ERROR_MESSAGE] 2415 [ERROR_MESSAGE]
2335 </message> 2416 </message>
2336 </alert> 2417 </alert>
2418 <alert name="QuickTimeOutOfDate">
2419 <ignore name="ignore">
2420 QuickTime 由于过期而被ç¦ç”¨
2421 </ignore>
2422 <message name="message">
2423 由于您的系统上安装的QuickTime版本过期,视频播放已被ç¦ç”¨ã€‚
2424
2425请访问 http://www.apple.com/quicktime/ 并下载更新。
2426 </message>
2427 </alert>
2337 <alert name="AvatarMoved"> 2428 <alert name="AvatarMoved">
2338 <message name="message"> 2429 <message name="message">
2339 Your [TYPE] location is not currently available. 2430 您 [TYPE] ä½ç½®å½“å‰ä¸å¯ç”¨ã€‚
2340[HELP] 2431[HELP]
2341You have been moved into a nearby region. 2432您已被移动至附近的区域。
2342 </message> 2433 </message>
2343 </alert> 2434 </alert>
2344 <alert name="ClothingLoading"> 2435 <alert name="ClothingLoading">
@@ -2347,15 +2438,18 @@ You have been moved into a nearby region.
2347你现在å¯ä»¥æŒ‰æ­£å¸¸çš„使用这个世界, 2438你现在å¯ä»¥æŒ‰æ­£å¸¸çš„使用这个世界,
2348其他用户也å¯ä»¥çœ‹è§ä½ ã€‚ 2439其他用户也å¯ä»¥çœ‹è§ä½ ã€‚
2349 </message> 2440 </message>
2441 <ignore name="ignore">
2442 装æŸä¸‹è½½æ—¶é—´å¤ªé•¿
2443 </ignore>
2350 </alert> 2444 </alert>
2351 <alert name="FirstRun"> 2445 <alert name="FirstRun">
2352 <message name="message"> 2446 <message name="message">
2353 [SECOND_LIFE] 安装已完æˆã€‚ 2447 [SECOND_LIFE] 安装已完æˆã€‚
2354 2448
2355这是你第一次使用[SECOND_LIFE], 登陆å‰ä½  2449如果这是你第一次使用[SECOND_LIFE], 登陆å‰ä½ 
2356需è¦åˆ›å»ºä¸€ä¸ªæ–°å¸æˆ·ã€‚ 2450需è¦åˆ›å»ºä¸€ä¸ªæ–°å¸æˆ·ã€‚
2357 2451
2358返回www.secondlife.com创建账户? 2452返回 www.secondlife.com 创建账户?
2359 </message> 2453 </message>
2360 <option name="NewAccount..."> 2454 <option name="NewAccount...">
2361 æ–°å¸æˆ·... 2455 æ–°å¸æˆ·...
@@ -2367,43 +2461,43 @@ You have been moved into a nearby region.
2367 <alert name="SetByHostFail"> 2461 <alert name="SetByHostFail">
2368 <message name="message"> 2462 <message name="message">
2369 无法连接到æœåŠ¡å™¨. 2463 无法连接到æœåŠ¡å™¨.
2370无法找到域å: [HOST_NAME] 2464无法解æžåŸŸå: [HOST_NAME]
2465
2371请检查你的网络连接. 2466请检查你的网络连接.
2372 </message> 2467 </message>
2373 </alert> 2468 </alert>
2374 <alert name="LoginPacketNeverReceived"> 2469 <alert name="LoginPacketNeverReceived">
2375 <message name="message"> 2470 <message name="message">
2376 无法连接。登陆æœåŠ¡å™¨æœªæ”¶åˆ°ä»»ä½•ç™»é™† 2471 我们é‡åˆ°äº†ä¸€äº›è¿žæŽ¥ä¸Šçš„麻烦。问题å¯èƒ½å‡ºåœ¨æ‚¨çš„互è”网连接,也å¯èƒ½å‡ºåœ¨ç¬¬äºŒäººç”Ÿçš„æœåŠ¡å™¨ã€‚
2377ä¿¡æ¯.
2378 2472
2379请几分钟åŽå†è¯•, 或点击帮助 2473请几分钟åŽå†è¯•, 或点击帮助连接我们的支æŒé¡µé¢ï¼Œæˆ–选择 “瞬间移动†æ¥å°è¯•çž¬é—´ç§»åŠ¨å›žå®¶ã€‚
2380获得建议和到达系统状æ€çš„网页链接。
2381 </message> 2474 </message>
2382 <option name="OK"> 2475 <option name="OK">
2383 OK 2476 确定
2384 </option> 2477 </option>
2385 <option name="Help"> 2478 <option name="Help">
2386 帮助 2479 帮助
2387 </option> 2480 </option>
2481 <option name="Teleport">
2482 瞬间移动
2483 </option>
2388 </alert> 2484 </alert>
2389 <alert name="WelcomeNoClothes"> 2485 <alert name="WelcomeNoClothes">
2390 <message name="message"> 2486 <message name="message">
2391 你的角色将在数秒åŽå‡ºçŽ°ã€‚ 2487 你的角色将在数秒åŽå‡ºçŽ°ã€‚
2392使用箭头键走动。 2488
2393 2489使用方å‘é”®æ¥è¡Œèµ°ã€‚
2394任何时候都å¯ä»¥æŒ‰F1键获å–帮助,或学习更多关于[SECOND_LIFE]çš„ä¿¡æ¯. 2490任何时候都å¯ä»¥æŒ‰ F1 键,æ¥èŽ·å–帮助或学习更多关于 [SECOND_LIFE] çš„ä¿¡æ¯.
2395 </message> 2491 </message>
2396 </alert> 2492 </alert>
2397 <alert name="WelcomeChooseSex"> 2493 <alert name="WelcomeChooseSex">
2398 <message name="message"> 2494 <message name="message">
2399 你的角色将在数秒åŽå‡ºçŽ°ã€‚ 2495 你的角色将在数秒åŽå‡ºçŽ°ã€‚
2400 2496
2401使用方å‘箭头键控制走路。 2497使用方å‘é”®æ¥è¡Œèµ°ã€‚
2402 2498任何时候都å¯ä»¥æŒ‰ F1 键,æ¥èŽ·å–帮助或学习更多关于 [SECOND_LIFE] çš„ä¿¡æ¯ã€‚
2403任何时间都å¯ä»¥æŒ‰F1键获å–帮助,或者学习更多关于[SECOND_LIFE]. 2499请选择男性或女性角色。
2404 2500以åŽè¿˜æ˜¯å¯ä»¥æ”¹å˜ä¸»æ„的。
2405请选择一个男性或女性的角色。
2406ä½ å¯ä»¥ä¹‹åŽæ”¹å˜ä½ çš„选择。
2407 </message> 2501 </message>
2408 <option name="Male"> 2502 <option name="Male">
2409 男性 2503 男性
@@ -2414,41 +2508,27 @@ You have been moved into a nearby region.
2414 </alert> 2508 </alert>
2415 <alert name="NotEnoughCurrency"> 2509 <alert name="NotEnoughCurrency">
2416 <message name="message"> 2510 <message name="message">
2417 [NAME] L$ [PRICE] You don&apos;t have enough currency to do that. 2511 [NAME] L$ [PRICE] 您没有足够的 L$ æ¥è¿™æ ·åšã€‚
2418 </message> 2512 </message>
2419 </alert> 2513 </alert>
2420 <alert name="GrantModRights"> 2514 <alert name="GrantedModifyRights">
2421 <message name="message"> 2515 <message name="message">
2422 你是å¦åŒæ„更改对[FIRST_NAME] [LAST_NAME]çš„æƒåˆ©? 2516 ä½ å·²ç»è¢«æŽˆäºˆç‰¹æƒï¼Œä½ å¯ä»¥ä»»æ„修改[FIRST_NAME] [LAST_NAME]的物体。
2423 </message> 2517 </message>
2424 <option name="Yes">
2425 是
2426 </option>
2427 <option name="No">
2428 å¦
2429 </option>
2430 </alert> 2518 </alert>
2431 <alert name="RevokeModRights"> 2519 <alert name="RevokedModifyRights">
2432 <message name="message"> 2520 <message name="message">
2433 你是å¦æ’¤å›žæ›´æ”¹[FIRST_NAME][LAST_NAME]çš„æƒåˆ©? 2521 你的特æƒå·²ç»è¢«æ’¤å›žï¼Œä½ ä¸å¯ä»¥å†ä»»æ„修改[FIRST_NAME] [LAST_NAME]的物体。
2434 </message> 2522 </message>
2435 <option name="Yes">
2436 是
2437 </option>
2438 <option name="No">
2439 å¦
2440 </option>
2441 </alert> 2523 </alert>
2442 <alert name="FlushMapVisibilityCaches"> 2524 <alert name="FlushMapVisibilityCaches">
2443 <message name="message"> 2525 <message name="message">
2444 这样将ä¸åœè·³å‡ºåœ°å›¾å¿«ç…§ç¼“存文件. 2526 这样将会清空该区域的地图缓存。
2445 2527这实际上åªå¯¹è°ƒè¯•æœ‰ç”¨ã€‚
2446这样实际上åªå¯¹è°ƒè¯•æœ‰ç”¨. 2528(在正å¼çŽ¯å¢ƒä¸­ï¼Œç­‰å¾… 5 分钟,然åŽæ‰€æœ‰äººçš„地图将在他们é‡æ–°ç™»å½•åŽæ›´æ–°ã€‚)
2447
2448(在此过程中,等待5分钟, 知é“æ¯ä¸ªäººçš„地图缓存在他们é‡æ–°ç™»é™†åŽä¸Šä¼ æˆåŠŸã€‚
2449 </message> 2529 </message>
2450 <option name="OK"> 2530 <option name="OK">
2451 OK 2531 确定
2452 </option> 2532 </option>
2453 <option name="Cancel"> 2533 <option name="Cancel">
2454 å–消 2534 å–消
@@ -2456,8 +2536,8 @@ You have been moved into a nearby region.
2456 </alert> 2536 </alert>
2457 <alert name="OnlyCopyContentsOfSingleItem"> 2537 <alert name="OnlyCopyContentsOfSingleItem">
2458 <message name="message"> 2538 <message name="message">
2459 无法åŒæ—¶å¤åˆ¶ä¸€ä¸ªä»¥ä¸Šçš„æ¡ç›®. 2539 无法åŒæ—¶å¤åˆ¶ä¸€ä¸ªä»¥ä¸Šç‰©å“的内容。
2460请仅选择一项对象,并é‡æ–°å°è¯•. 2540请仅选择一项物体,并é‡æ–°å°è¯•ã€‚
2461 </message> 2541 </message>
2462 <option name="OK"> 2542 <option name="OK">
2463 好的 2543 好的
@@ -2468,96 +2548,58 @@ You have been moved into a nearby region.
2468 </alert> 2548 </alert>
2469 <alert name="KickUsersFromRegion"> 2549 <alert name="KickUsersFromRegion">
2470 <message name="message"> 2550 <message name="message">
2471 是å¦ä½¿æ­¤åŒºåŸŸå†…所有用户闪电传è¿å›žå®¶? 2551 是å¦å°†æ­¤åŒºåŸŸå†…所有用户瞬间移动回家?
2472 </message> 2552 </message>
2473 <option name="OK"> 2553 <option name="OK">
2474 OK 2554 确定
2475 </option>
2476 <option name="Cancel">
2477 å–消
2478 </option>
2479 </alert>
2480 <alert name="ReturnScriptedOnOthersLand">
2481 <message name="message">
2482 你是å¦ç¡®å®šæ„¿æ„归还主人为
2483** [USER_NAME] **
2484且åªåœ¨åœ¨è‡ªå·±é¢†åœ°å†…的副本东东?
2485 </message>
2486 <option name="Return">
2487 返回
2488 </option> 2555 </option>
2489 <option name="Cancel"> 2556 <option name="Cancel">
2490 å–消 2557 å–消
2491 </option> 2558 </option>
2492 </alert> 2559 </alert>
2493 <alert name="ReturnScriptedOnAllLand"> 2560 <alert name="EstateObjectReturn">
2494 <message name="message"> 2561 <message name="message">
2495 你是å¦ç¡®å®šä¸åˆ é™¤ä»¥ä¸‹ç”¨æˆ· 2562 您是å¦è¦è¿”还
2496** [USER_NAME] **在区域内所有土地上的副本东东? 2563[USER_NAME]
2564拥有的物体?
2497 </message> 2565 </message>
2498 <option name="Return"> 2566 <option name="Return">
2499 返回 2567 返还
2500 </option> 2568 </option>
2501 <option name="Cancel"> 2569 <option name="Cancel">
2502 å–消 2570 å–消
2503 </option> 2571 </option>
2504 </alert> 2572 </alert>
2505 <alert name="InvalidTerrainBitDepthSmall"> 2573 <alert name="InvalidTerrainBitDepth">
2506 <message name="message">
2507 无法设置区域的æè´¨:
2508
2509基本æè´¨[TEXTURE_NUM]çš„åƒç´ [TEXTURE_BIT_DEPTH]无效.
2510
2511替æ¢åŸºç¡€æè´¨[TEXTURE_NUM]为128x128åƒç´ 24ä½å›¾ç‰‡, 然åŽå†æ¬¡ç‚¹å‡»&quot;设置&quot;.
2512 </message>
2513 </alert>
2514 <alert name="InvalidTerrainSizeSmall">
2515 <message name="message">
2516 无法设置区域内的æè´¨:
2517
2518基础æè´¨[TEXTURE_NUM]的尺寸[TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y]无效.
2519
2520替æ¢åŸºç¡€æè´¨[TEXTURE_NUM]为128x128åƒç´ 24ä½å›¾ç‰‡, 然åŽå†æ¬¡ç‚¹å‡»&quot;设置&quot;.
2521 </message>
2522 </alert>
2523 <alert name="InvalidTerrainBitDepthLarge">
2524 <message name="message">
2525 无法设置区域的æè´¨:
2526
2527基本æè´¨[TEXTURE_NUM]çš„åƒç´ [TEXTURE_BIT_DEPTH]无效.
2528
2529替æ¢åŸºç¡€æè´¨[TEXTURE_NUM]为512512x512åƒç´ æˆ–æ›´å°çš„24ä½å›¾ç‰‡, 然åŽå†æ¬¡ç‚¹å‡»&quot;设置&quot;.
2530 </message>
2531 </alert>
2532 <alert name="InvalidTerrainWidthLarge">
2533 <message name="message"> 2574 <message name="message">
2534 无法设置区域内的æè´¨: 2575 无法设定区域的æè´¨:
2535 2576地é¢æè´¨ [TEXTURE_NUM] 的色彩深度 [TEXTURE_BIT_DEPTH] 无效。
2536基础æè´¨[TEXTURE_NUM]的尺寸[TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y]太宽以至无效.
2537 2577
2538替æ¢åŸºç¡€æè´¨[TEXTURE_NUM]为512x512åƒç´ æˆ–æ›´å°çš„24ä½å›¾ç‰‡, 然åŽå†æ¬¡ç‚¹å‡»&quot;设置&quot;. 2578请把目å‰çš„地é¢æè´¨ [TEXTURE_NUM] 替æ¢ä¸º 24 ä½
2579512×512 分辨率或者更å°çš„图片,然åŽå†æ¬¡ç‚¹å‡» ‘应用’.
2539 </message> 2580 </message>
2540 </alert> 2581 </alert>
2541 <alert name="InvalidTerrainHeightLarge"> 2582 <alert name="InvalidTerrainSize">
2542 <message name="message"> 2583 <message name="message">
2543 无法设置区域内的æè´¨: 2584 无法设置区域的质地:
2544 2585
2545基础æè´¨[TEXTURE_NUM]的尺寸[TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y]太高以至无效. 2586地é¢æè´¨ [TEXTURE_NUM] 的尺寸 [TEXTURE_SIZE_X]×[TEXTURE_SIZE_Y] è¿å¤§ã€‚
2546 2587
2547替æ¢åŸºç¡€æè´¨[TEXTURE_NUM]为512x512åƒç´ æˆ–æ›´å°çš„24ä½å›¾ç‰‡, 然åŽå†æ¬¡ç‚¹å‡»&quot;设置&quot;. 2588请把目å‰çš„地é¢æè´¨ [TEXTURE_NUM] 替æ¢ä¸º 24 ä½
2589512×512 分辨率或者更å°çš„图片,然åŽå†æ¬¡ç‚¹å‡» ‘应用’.
2548 </message> 2590 </message>
2549 </alert> 2591 </alert>
2550 <alert name="RawUploadStarted"> 2592 <alert name="RawUploadStarted">
2551 <message name="message"> 2593 <message name="message">
2552 上载开始. 这个过程å¯èƒ½æŒç»­2分钟, 具体时间å–决于你的网络连接速度. 2594 上载开始。这个过程å¯èƒ½æŒç»­2分钟, 具体时间å–决于你的网络连接速度.
2553 </message> 2595 </message>
2554 </alert> 2596 </alert>
2555 <alert name="ConfirmBakeTerrain"> 2597 <alert name="ConfirmBakeTerrain">
2556 <message name="message"> 2598 <message name="message">
2557 是你å¦çœŸçš„æ„¿æ„烧硬当å‰çš„地形, 使得它æˆä¸ºåœ°å½¢ä¸Šå‡æˆ–下é™æžå€¼çš„中间值,并且默认&apos;æ¢å¤&apos;工具? 2599 是你å¦çœŸçš„æ„¿æ„烘烤当å‰çš„地形, 使得它æˆä¸ºåœ°å½¢ä¸Šå‡æˆ–下é™é™åˆ¶çš„中间值,以åŠâ€˜æ¢å¤â€™å·¥å…·çš„默认值?
2558 </message> 2600 </message>
2559 <option name="Bake"> 2601 <option name="Bake">
2560 å˜ç¡¬ 2602 烘烤
2561 </option> 2603 </option>
2562 <option name="Cancel"> 2604 <option name="Cancel">
2563 å–消 2605 å–消
@@ -2565,38 +2607,44 @@ You have been moved into a nearby region.
2565 </alert> 2607 </alert>
2566 <alert name="MaxAllowedAgentOnRegion"> 2608 <alert name="MaxAllowedAgentOnRegion">
2567 <message name="message"> 2609 <message name="message">
2568 ä½ åªèƒ½æœ‰[MAX_AGENTS]å…许的居民。 2610 你最多åªèƒ½åˆ—出 [MAX_AGENTS]åå…许的居民。
2569 </message> 2611 </message>
2570 </alert> 2612 </alert>
2571 <alert name="MaxAllowedGroupsOnRegion"> 2613 <alert name="MaxAllowedGroupsOnRegion">
2572 <message name="message"> 2614 <message name="message">
2573 ä½ åªèƒ½æœ‰[MAX_GROUPS]å…许的社团。 2615 ä½ åªèƒ½æœ‰[MAX_GROUPS]个å…许的社团。
2574 </message> 2616 </message>
2575 <option name="Bake"> 2617 <option name="Bake">
2576 执行 2618 烘烤
2577 </option> 2619 </option>
2578 <option name="Cancel"> 2620 <option name="Cancel">
2579 å–消 2621 å–消
2580 </option> 2622 </option>
2581 </alert> 2623 </alert>
2624 <alert name="MaxAgentOnRegionBatch">
2625 <message name="message">
2626 å°è¯•æ·»åŠ  [NUM_ADDED] å代表时失败:
2627超出 [LIST_TYPE] [MAX_AGENTS]åçš„é™åˆ¶ [NUM_EXCESS]å。
2628 </message>
2629 </alert>
2582 <alert name="MaxBannedAgentsOnRegion"> 2630 <alert name="MaxBannedAgentsOnRegion">
2583 <message name="message"> 2631 <message name="message">
2584 ä½ åªèƒ½æœ‰[MAX_BANNED]ç¦æ­¢çš„居民。 2632 你最多åªèƒ½åˆ—出 [MAX_BANNED] åç¦æ­¢çš„居民。
2585 </message> 2633 </message>
2586 </alert> 2634 </alert>
2587 <alert name="MaxManagersOnRegion"> 2635 <alert name="MaxManagersOnRegion">
2588 <message name="message"> 2636 <message name="message">
2589 ä½ åªèƒ½æœ‰[MAX_MANAGER]ç¦æ­¢çš„å±…æ°ã€‚ 2637 您最多åªèƒ½æœ‰ [MAX_MANAGER]ä½åœ°äº§ç®¡ç†äººã€‚
2590 </message> 2638 </message>
2591 </alert> 2639 </alert>
2592 <alert name="OwnerCanNotBeDenied"> 2640 <alert name="OwnerCanNotBeDenied">
2593 <message name="message"> 2641 <message name="message">
2594 ä¸èƒ½æ·»åŠ ä¸åŠ¨äº§ä¸»äººè‡³&apos;æ‹’ç»è¿›å…¥&apos; åå•. 2642 ä¸èƒ½æ·»åŠ åœ°äº§ä¸»äººè‡³ ‘拒ç»è¿›å…¥â€™ åå•.
2595 </message> 2643 </message>
2596 </alert> 2644 </alert>
2597 <alert name="CanNotChangeAppearanceUntilLoaded"> 2645 <alert name="CanNotChangeAppearanceUntilLoaded">
2598 <message name="message"> 2646 <message name="message">
2599 è¡£æœå’Œèº«ä½“载入之å‰ä¸èƒ½æ›´æ”¹å¤–形。 2647 è¡£æœå’Œèº«ä½“载入之å‰ä¸èƒ½æ›´æ”¹å¤–表。
2600 </message> 2648 </message>
2601 </alert> 2649 </alert>
2602 <alert name="ClassifiedMustBeAlphanumeric"> 2650 <alert name="ClassifiedMustBeAlphanumeric">
@@ -2606,8 +2654,8 @@ You have been moved into a nearby region.
2606 </alert> 2654 </alert>
2607 <alert name="CantSetBuyObject"> 2655 <alert name="CantSetBuyObject">
2608 <message name="message"> 2656 <message name="message">
2609 无法购买东东, 因为此东东是éžå–å“. 2657 ä¸èƒ½è®¾ç½®è´­ä¹°ç‰©ä½“, 因为此物体是éžå–å“。
2610请把东东设置为待售状æ€å¹¶é‡è¯•. 2658请把物体设置为待售状æ€å¹¶é‡è¯•ã€‚
2611 </message> 2659 </message>
2612 </alert> 2660 </alert>
2613 <alert name="FinishedRawDownload"> 2661 <alert name="FinishedRawDownload">
@@ -2618,10 +2666,10 @@ You have been moved into a nearby region.
2618 </alert> 2666 </alert>
2619 <alert name="DownloadWindowsMandatory"> 2667 <alert name="DownloadWindowsMandatory">
2620 <message name="message"> 2668 <message name="message">
2621 [SECOND_LIFE]有新版本å¯ç”¨ã€‚ 2669 [SECOND_LIFE] 有新版本å¯ç”¨ã€‚
2622[MESSAGE] 2670[MESSAGE]
2623 2671
2624你必须下载此更新æ‰èƒ½è¿è¡Œç³»ç»Ÿã€‚ 2672你必须下载此更新æ‰èƒ½ä½¿ç”¨ [SECOND_LIFE]。
2625 </message> 2673 </message>
2626 <option name="Download"> 2674 <option name="Download">
2627 下载 2675 下载
@@ -2632,10 +2680,10 @@ You have been moved into a nearby region.
2632 </alert> 2680 </alert>
2633 <alert name="DownloadWindows"> 2681 <alert name="DownloadWindows">
2634 <message name="message"> 2682 <message name="message">
2635 [SECOND_LIFE]有新版本å¯ç”¨ã€‚ 2683 [SECOND_LIFE] 有新版本å¯ç”¨ã€‚
2636[MESSAGE] 2684[MESSAGE]
2637 2685
2638这个更新ä¸æ˜¯å¿…须的,但我们建议下载并安装此更新,以改善画é¢è´¨é‡å’Œç¨³å®šæ€§. 2686这个更新ä¸æ˜¯å¿…须的,但我们建议下载并安装此更新,以改善性能和稳定性。
2639 </message> 2687 </message>
2640 <option name="Download"> 2688 <option name="Download">
2641 下载 2689 下载
@@ -2646,10 +2694,10 @@ You have been moved into a nearby region.
2646 </alert> 2694 </alert>
2647 <alert name="DownloadWindowsReleaseForDownload"> 2695 <alert name="DownloadWindowsReleaseForDownload">
2648 <message name="message"> 2696 <message name="message">
2649 [SECOND_LIFE]有新版本å¯ç”¨ã€‚ 2697 [SECOND_LIFE] 有新版本å¯ç”¨ã€‚
2650[MESSAGE] 2698[MESSAGE]
2651 2699
2652这个更新ä¸æ˜¯å¿…须的,但我们建议下载并安装此更新,以改善画é¢è´¨é‡å’Œç¨³å®šæ€§. 2700这个更新ä¸æ˜¯å¿…须的,但我们建议下载并安装此更新,以改善性能和稳定性。
2653 </message> 2701 </message>
2654 <option name="Download"> 2702 <option name="Download">
2655 下载 2703 下载
@@ -2663,8 +2711,8 @@ You have been moved into a nearby region.
2663 [SECOND_LIFE]有新版本å¯ç”¨ã€‚ 2711 [SECOND_LIFE]有新版本å¯ç”¨ã€‚
2664[MESSAGE] 2712[MESSAGE]
2665 2713
2666你必须下å†æ¬¡æ›´æ–°æ‰èƒ½è¿è¡Œç³»ç»Ÿã€‚ 2714你必须下载此更新æ‰èƒ½ä½¿ç”¨ [SECOND_LIFE]。
2667是å¦ä¸‹è½½æ›´æ–°è‡³åº”用软件文件夹? 2715是å¦ä¸‹è½½æ›´æ–°è‡³åº”用程åºæ–‡ä»¶å¤¹?
2668 </message> 2716 </message>
2669 <option name="Download"> 2717 <option name="Download">
2670 下载 2718 下载
@@ -2678,9 +2726,9 @@ You have been moved into a nearby region.
2678 [SECOND_LIFE]有新版本å¯ç”¨ã€‚ 2726 [SECOND_LIFE]有新版本å¯ç”¨ã€‚
2679[MESSAGE] 2727[MESSAGE]
2680 2728
2681这个更新ä¸æ˜¯å¿…须的,但我们建议下载并安装此更新,以改善画é¢è´¨é‡å’Œç¨³å®šæ€§. 2729这个更新ä¸æ˜¯å¿…须的,但我们建议下载并安装此更新,以改善性能和稳定性。
2682 2730
2683是å¦ç«‹åˆ»ä¸‹è½½è‡³åº”用程åºæ–‡ä»¶å¤¹ï¼Ÿ 2731是å¦ä¸‹è½½æ›´æ–°è‡³åº”用程åºæ–‡ä»¶å¤¹?
2684 </message> 2732 </message>
2685 <option name="Download"> 2733 <option name="Download">
2686 下载 2734 下载
@@ -2694,9 +2742,9 @@ You have been moved into a nearby region.
2694 [SECOND_LIFE]有新版本å¯ç”¨ã€‚ 2742 [SECOND_LIFE]有新版本å¯ç”¨ã€‚
2695[MESSAGE] 2743[MESSAGE]
2696 2744
2697这个更新ä¸æ˜¯å¿…须的,但我们建议下载并安装此更新,以改善画é¢è´¨é‡å’Œç¨³å®šæ€§. 2745这个更新ä¸æ˜¯å¿…须的,但我们建议下载并安装此更新,以改善性能和稳定性。
2698 2746
2699是å¦ç«‹åˆ»ä¸‹è½½è‡³åº”用程åºæ–‡ä»¶å¤¹ï¼Ÿ 2747是å¦ä¸‹è½½æ›´æ–°è‡³åº”用程åºæ–‡ä»¶å¤¹?
2700 </message> 2748 </message>
2701 <option name="Download"> 2749 <option name="Download">
2702 下载 2750 下载
@@ -2707,8 +2755,8 @@ You have been moved into a nearby region.
2707 </alert> 2755 </alert>
2708 <alert name="DeedObjectToGroup"> 2756 <alert name="DeedObjectToGroup">
2709 <message name="message"> 2757 <message name="message">
2710 转让此东东会导致社团: 2758 转让此物体会导致社团:
2711* 收到买出东东æ€å¾—的钱。 2759* 收到付给该ç©ä½“çš„L$。
2712 </message> 2760 </message>
2713 <option name="Deed"> 2761 <option name="Deed">
2714 转让 2762 转让
@@ -2716,76 +2764,103 @@ You have been moved into a nearby region.
2716 <option name="Cancel"> 2764 <option name="Cancel">
2717 å–消 2765 å–消
2718 </option> 2766 </option>
2767 <ignore name="ignore">
2768 转让物体到社团
2769 </ignore>
2719 </alert> 2770 </alert>
2720 <alert name="AddClassified"> 2771 <alert name="WebLaunchExternalTarget">
2721 <message name="message"> 2772 <message name="message">
2722 分类广告在‘查找一周内目录的’ 2773 打开你系统的æµè§ˆå™¨æ¥æŸ¥çœ‹è¯¥å†…容?
2723&apos;分类&apos;部分出现。 2774 </message>
2724 2775 <ignore name="ignore">
2725填入你的广告, 然åŽç‚¹å‡» &apos;å‘布...&apos; ,添加广告至 2776 打开默认æµè§ˆå™¨æŸ¥çœ‹ç½‘页
2726目录。 2777 </ignore>
2727 2778 <option name="Open">
2728点击å‘布时,你会被è¦æ±‚付款。 2779 打开
2729付的多å¯ä»¥ä½¿ä½ çš„广在出现在åå•çš„较高ä½ç½®, 并且 2780 </option>
2730当人们按关键è¯æ£€ç´¢æ—¶ï¼Œä½ çš„广告也会出现在较高ä½ç½®ã€‚ 2781 <option name="Cancel">
2782 å–消
2783 </option>
2784 </alert>
2785 <alert name="WebLaunchJoinNow">
2786 <message name="message">
2787 是å¦è½¬è‡³ www.secondlife.com 管ç†å¸æˆ·?
2731 </message> 2788 </message>
2732 <option name="OK"> 2789 <option name="OK">
2733 OK 2790 确定
2734 </option> 2791 </option>
2735 <option name="Cancel"> 2792 <option name="Cancel">
2736 å–消 2793 å–消
2737 </option> 2794 </option>
2795 <ignore name="ignore">
2796 打开æµè§ˆå™¨ç®¡ç†æ‚¨çš„å¸æˆ·
2797 </ignore>
2738 </alert> 2798 </alert>
2739 <alert name="WebLaunchGraphicsDriver"> 2799 <alert name="WebLaunchBugReport101">
2740 <message name="message"> 2800 <message name="message">
2741 你在这å°è®¡ç®—机上的[VENDOR_LABLE] [CARD_NAME]图åƒé©±åŠ¨å·²ç»è¿‡æœŸã€‚ 2801 访问 [SECOND_LIFE] Wiki 学习怎样正确地报告错误。
2742
2743这是控制你的图åƒå¡çš„软件的一部分。旧的驱动å¯ä»¥å¯¼è‡´3D图åƒç¨‹åºï¼Œä¾‹å¦‚[SECOND_LIFE]è¿è¡Œç¼“慢或崩溃。
2744我们强烈推èå‡çº§ &quot;[DRIVER_NAME]&quot; 驱动, å…费的驱动下载在 [VENDOR_LABLE].
2745
2746你是å¦æ„¿æ„登陆[SECOND_LIFE]驱动网页?
2747 </message> 2802 </message>
2803 <ignore name="ignore">
2804 打开æµè§ˆå™¨æŸ¥çœ‹é”™è¯¯æŠ¥å‘ŠåŸºç¡€ Wiki
2805 </ignore>
2748 <option name="Gotopage"> 2806 <option name="Gotopage">
2749 回主页 2807 确定
2750 </option> 2808 </option>
2751 <option name="Cancel"> 2809 <option name="Cancel">
2752 å–消 2810 å–消
2753 </option> 2811 </option>
2754 </alert> 2812 </alert>
2755 <alert name="WebLaunchGraphicsDriverIntelExtreme"> 2813 <alert name="WebLaunchSecurityIssues">
2756 <message name="message"> 2814 <message name="message">
2757 你计算机上的图片处ç†é©±åŠ¨ç¨‹åºå·²ç»è¿‡æœŸã€‚ 2815 访问 [SECOND_LIFE] Wiki 学习如何正确地报告安全事件。
2758
2759这是一款控制图形å¡çš„软件。
2760旧的驱动版本å¯èƒ½ä¼šä½¿3Dç”»é¢çš„程åºï¼Œä¾‹å¦‚ [SECOND_LIFE]è¿è¡Œç¼“慢甚至崩溃。
2761
2762我们强烈建议å‡çº§åˆ°æœ€æ–°ç‰ˆæœ¬çš„驱动, å¯ä»¥åœ¨å› ç‰¹ç½‘上找到å…费下载的版本。
2763
2764ä½ æ„¿æ„登陆[SECOND_LIFE]驱动程åºç½‘页å—?
2765 </message> 2816 </message>
2817 <ignore name="ignore">
2818 打开æµè§ˆå™¨æŸ¥çœ‹å®‰å…¨äº‹ä»¶ Wiki
2819 </ignore>
2766 <option name="Gotopage"> 2820 <option name="Gotopage">
2767 回主页 2821 确定
2768 </option> 2822 </option>
2769 <option name="Cancel"> 2823 <option name="Cancel">
2770 å–消 2824 å–消
2771 </option> 2825 </option>
2772 </alert> 2826 </alert>
2773 <alert name="RunningInPCI"> 2827 <alert name="WebLaunchQAWiki">
2774 <message name="message"> 2828 <message name="message">
2775 GL 表明系统的图åƒé©±åŠ¨æ­£åœ¨è¿è¡ŒPCI模å¼ï¼Œ 2829 访问 [SECOND_LIFE] è´¨é‡ä¿è¯ Wiki.
2776该模å¼ä¼šå‡æ…¢ç»˜å›¾é€Ÿåº¦ã€‚如果你正在使用PCI视频å¡,
2777则å¯ä»¥å¿½ç•¥è¿™æ¡æ¶ˆæ¯ã€‚如果你正在使用 AGP视频å¡ï¼Œä½ å¯ä»¥
2778更新你的木æ¿é©±åŠ¨ï¼ŒèŽ·å¾—更好的图åƒæ€§èƒ½å’Œå…¶ä»–一些
27793D应用程åºã€‚如果你正在使用PCI快速图åƒå¡ï¼Œä½ å°±å¯ä»¥ä½¿
2780AGP绘图加速器起作用。Options panel in Preferences in [SECOND_LIFE].
2781 </message> 2830 </message>
2831 <ignore name="ignore">
2832 打开æµè§ˆå™¨æŸ¥çœ‹è´¨é‡ä¿è¯ Wiki
2833 </ignore>
2834 <option name="Gotopage">
2835 确定
2836 </option>
2837 <option name="Cancel">
2838 å–消
2839 </option>
2782 </alert> 2840 </alert>
2783 <alert name="WebLaunchJoinNow"> 2841 <alert name="WebLaunchPublicIssue">
2784 <message name="message"> 2842 <message name="message">
2785 是å¦è·³è‡³ www.secondlife.com管ç†å¸å·? 2843 访问 [SECOND_LIFE] 公开事件跟踪器,你å¯ä»¥åœ¨é‚£éŒæŠ¥å‘Šç¨‹åºé”™è¯¯å’Œå…¶ä»–事件。
2786 </message> 2844 </message>
2787 <option name="OK"> 2845 <ignore name="ignore">
2788 OK 2846 打开æµè§ˆå™¨æŸ¥çœ‹å…¬å¼€äº‹ä»¶è·Ÿè¸ªå™¨
2847 </ignore>
2848 <option name="Gotopage">
2849 打开页é¢
2850 </option>
2851 <option name="Cancel">
2852 å–消
2853 </option>
2854 </alert>
2855 <alert name="WebLaunchPublicIssueHelp">
2856 <message name="message">
2857 访问 [SECOND_LIFE] Wiki 了解如何使用公开事件跟踪器。
2858 </message>
2859 <ignore name="ignore">
2860 打开æµè§ˆå™¨æŸ¥çœ‹å…¬å¼€äº‹ä»¶è·Ÿè¸ªå™¨ Wiki
2861 </ignore>
2862 <option name="Gotopage">
2863 打开页é¢
2789 </option> 2864 </option>
2790 <option name="Cancel"> 2865 <option name="Cancel">
2791 å–消 2866 å–消
@@ -2793,10 +2868,27 @@ AGP绘图加速器起作用。Options panel in Preferences in [SECOND_LIFE].
2793 </alert> 2868 </alert>
2794 <alert name="WebLaunchForums"> 2869 <alert name="WebLaunchForums">
2795 <message name="message"> 2870 <message name="message">
2796 在[SECOND_LIFE]基础知识中查找最新的å°è´´å£«å’Œå°æŠ€å·§ã€‚ 2871 在 [SECOND_LIFE] 知识库中查找最新的æ示和技巧。
2797 </message> 2872 </message>
2873 <ignore name="ignore">
2874 打开æµè§ˆå™¨æŸ¥çœ‹çŸ¥è¯†åº“
2875 </ignore>
2798 <option name="Gotopage"> 2876 <option name="Gotopage">
2799 回主页 2877 打开页é¢
2878 </option>
2879 <option name="Cancel">
2880 å–消
2881 </option>
2882 </alert>
2883 <alert name="WebLaunchSupport">
2884 <message name="message">
2885 è”ç³» [SECOND_LIFE] 支æŒä¸­å¿ƒã€‚
2886 </message>
2887 <ignore name="ignore">
2888 打开æµè§ˆå™¨è”系支æŒä¸­å¿ƒ
2889 </ignore>
2890 <option name="Gotopage">
2891 打开网页
2800 </option> 2892 </option>
2801 <option name="Cancel"> 2893 <option name="Cancel">
2802 å–消 2894 å–消
@@ -2804,10 +2896,13 @@ AGP绘图加速器起作用。Options panel in Preferences in [SECOND_LIFE].
2804 </alert> 2896 </alert>
2805 <alert name="WebLaunchSupportWiki"> 2897 <alert name="WebLaunchSupportWiki">
2806 <message name="message"> 2898 <message name="message">
2807 进入林登官方åšå®¢, 获å–最新的新闻和咨讯. 2899 进入林登官方åšå®¢ï¼ŒèŽ·å–最新的新闻和信æ¯ã€‚
2808 </message> 2900 </message>
2901 <ignore name="ignore">
2902 打开æµè§ˆå™¨æŸ¥çœ‹å®˜æ–¹åšå®¢
2903 </ignore>
2809 <option name="Gotopage"> 2904 <option name="Gotopage">
2810 回主页 2905 打开页é¢
2811 </option> 2906 </option>
2812 <option name="Cancel"> 2907 <option name="Cancel">
2813 å–消 2908 å–消
@@ -2815,10 +2910,13 @@ AGP绘图加速器起作用。Options panel in Preferences in [SECOND_LIFE].
2815 </alert> 2910 </alert>
2816 <alert name="WebLaunchLSLGuide"> 2911 <alert name="WebLaunchLSLGuide">
2817 <message name="message"> 2912 <message name="message">
2818 是å¦è·³è‡³æž—登脚本语言å‘导以获得脚本编辑帮助? 2913 是å¦è½¬è‡³æž—登脚本语言å‘导查阅脚本编辑帮助?
2819 </message> 2914 </message>
2915 <ignore name="ignore">
2916 打开æµè§ˆå™¨æŸ¥é˜…脚本编辑帮助
2917 </ignore>
2820 <option name="Gotopage"> 2918 <option name="Gotopage">
2821 回主页 2919 打开页é¢
2822 </option> 2920 </option>
2823 <option name="Cancel"> 2921 <option name="Cancel">
2824 å–消 2922 å–消
@@ -2826,10 +2924,10 @@ AGP绘图加速器起作用。Options panel in Preferences in [SECOND_LIFE].
2826 </alert> 2924 </alert>
2827 <alert name="WebLaunchLSLWiki"> 2925 <alert name="WebLaunchLSLWiki">
2828 <message name="message"> 2926 <message name="message">
2829 是å¦è·³è‡³æž—登脚本语言维基è¯å…¸ä»¥èŽ·å¾—编辑脚本帮助? 2927 是å¦è·³è‡³LSL语言首页以获得脚本编辑帮助?
2830 </message> 2928 </message>
2831 <option name="Gotopage"> 2929 <option name="Gotopage">
2832 回主页 2930 打开页é¢
2833 </option> 2931 </option>
2834 <option name="Cancel"> 2932 <option name="Cancel">
2835 å–消 2933 å–消
@@ -2837,15 +2935,42 @@ AGP绘图加速器起作用。Options panel in Preferences in [SECOND_LIFE].
2837 </alert> 2935 </alert>
2838 <alert name="ReturnToOwner"> 2936 <alert name="ReturnToOwner">
2839 <message name="message"> 2937 <message name="message">
2840 你确定è¦å°†æ‰€é€‰ä¸œä¸œå½’还至 2938 你确定è¦å°†æ‰€é€‰ç‰©ä½“归还至
2841它们的主人?å¯è½¬ç§»çš„已转让 2939它们的主人?å¯è½¬ç§»çš„已转让给社团的
2842东东会被归还至他们原先的主人处。 2940物体会被归还至他们原先的主人处。
2843(所有归还的东东会被归还至他们上一次被ä¿å­˜çš„文件夹内。)
2844 2941
2845*警告* ä¸å¯è½¬ç§»çš„已转让东东会被删除! 2942*警告* ä¸å¯è½¬è®©çš„转让给社团的物体会被删除!
2846 </message> 2943 </message>
2847 <option name="Return"> 2944 <option name="Return">
2848 返回 2945 返还
2946 </option>
2947 <option name="Cancel">
2948 å–消
2949 </option>
2950 </alert>
2951 <alert name="ViewReleaseNotes">
2952 <message name="message">
2953 是å¦æŸ¥çœ‹ç¬¬äºŒäººç”Ÿå‘布通告?
2954 </message>
2955 <ignore name="ignore">
2956 查看å‘布通告
2957 </ignore>
2958 <option name="Gotopage">
2959 打开页é¢
2960 </option>
2961 <option name="Cancel">
2962 å–消
2963 </option>
2964 </alert>
2965 <alert name="WebLaunchReleaseNotes">
2966 <message name="message">
2967 是å¦æŸ¥çœ‹ [SECOND_LIFE] å‘布通告?
2968 </message>
2969 <ignore name="ignore">
2970 打开æµè§ˆå™¨æŸ¥çœ‹å‘布通告时
2971 </ignore>
2972 <option name="Gotopage">
2973 确定
2849 </option> 2974 </option>
2850 <option name="Cancel"> 2975 <option name="Cancel">
2851 å–消 2976 å–消
@@ -2853,8 +2978,8 @@ AGP绘图加速器起作用。Options panel in Preferences in [SECOND_LIFE].
2853 </alert> 2978 </alert>
2854 <alert name="GroupLeaveConfirmOfficer"> 2979 <alert name="GroupLeaveConfirmOfficer">
2855 <message name="message"> 2980 <message name="message">
2856 ä½ ç›®å‰æ˜¯ç¤¾å›¢[GROUP]的官员. 2981 ä½ ç›®å‰æ˜¯ç¤¾å›¢[GROUP]的官员。
2857是å¦ç¦»å¼€ç¤¾å›¢? 2982是å¦ç¦»å¼€ç¤¾å›¢ï¼Ÿ
2858 </message> 2983 </message>
2859 <option name="Leave"> 2984 <option name="Leave">
2860 离开 2985 离开
@@ -2865,8 +2990,8 @@ AGP绘图加速器起作用。Options panel in Preferences in [SECOND_LIFE].
2865 </alert> 2990 </alert>
2866 <alert name="GroupLeaveConfirmMember"> 2991 <alert name="GroupLeaveConfirmMember">
2867 <message name="message"> 2992 <message name="message">
2868 ä½ ç›®å‰æ˜¯ç¤¾å›¢[GROUP]çš„æˆå‘˜. 2993 ä½ ç›®å‰æ˜¯ç¤¾å›¢[GROUP]çš„æˆå‘˜ã€‚
2869是å¦ç¦»å¼€ç¤¾å›¢? 2994是å¦ç¦»å¼€ç¤¾å›¢ï¼Ÿ
2870 </message> 2995 </message>
2871 <option name="Leave"> 2996 <option name="Leave">
2872 离开 2997 离开
@@ -2877,66 +3002,57 @@ AGP绘图加速器起作用。Options panel in Preferences in [SECOND_LIFE].
2877 </alert> 3002 </alert>
2878 <alert name="ConfirmKick"> 3003 <alert name="ConfirmKick">
2879 <message name="message"> 3004 <message name="message">
2880 你真的è¦è¸¢èµ°æ‰€æœ‰ç”¨æˆ·å—? 3005 ä½ *真的*è¦å°†æ‰€æœ‰ç”¨æˆ·è¸¢ä¸‹çº¿å—?
2881 </message>
2882 </alert>
2883 <alert name="MuteLinden">
2884 <message name="message">
2885 对ä¸èµ·,ä½ ä¸èƒ½å±è”½æž—登家的人。
2886 </message> 3006 </message>
2887 <option name="OK"> 3007 <option name="Kick">
2888 OK 3008 踢下所有用户
3009 </option>
3010 <option name="Cancel">
3011 å–消
2889 </option> 3012 </option>
2890 </alert> 3013 </alert>
2891 <alert name="MuteByName" title="通过å称å±è”½ä¸œä¸œ"> 3014 <alert name="MuteLinden">
2892 <message name="message"> 3015 <message name="message">
2893 通过åå­—å±è”½å£°éŸ³åªä¼šå½±å“对象èŠå¤©å’Œå³æ—¶æ¶ˆæ¯, ä¸ä¼šå½±æ•ˆæžœå£°éŸ³ã€‚ 3016 对ä¸èµ·ï¼Œä½ ä¸èƒ½å±è”½æž—登家的人。
2894你必须准确键入对象的åå­—.
2895 </message> 3017 </message>
2896 <editline name="editline">
2897 东东å称
2898 </editline>
2899 <option name="OK"> 3018 <option name="OK">
2900 OK 3019 确定
2901 </option>
2902 <option name="Cancel">
2903 å–消
2904 </option> 3020 </option>
2905 </alert> 3021 </alert>
2906 <alert name="MuteByNameFailed" title="通过å称å±è”½ä¸œä¸œå¤±è´¥"> 3022 <alert name="MuteByNameFailed" title="按å称å±è”½ç‰©ä½“失败">
2907 <message name="message"> 3023 <message name="message">
2908 ä½ å·²ç»å±è”½äº†è¿™ä¸ªåå­—. 3024 ä½ å·²ç»å±è”½äº†è¿™ä¸ªå字。
2909 </message> 3025 </message>
2910 <option name="OK"> 3026 <option name="OK">
2911 OK 3027 确定
2912 </option> 3028 </option>
2913 </alert> 3029 </alert>
2914 <alert name="RemoveItemWarn"> 3030 <alert name="RemoveItemWarn">
2915 <message name="message"> 3031 <message name="message">
2916 尽管被准许, 删除库存å¯èƒ½ä¼šé€ æˆä¸œä¸œçš„ 3032 尽管å许, 删除内容å¯èƒ½ä¼šé€ æˆç‰©ä½“çš„
2917æŸå。你确定è¦åˆ é™¤åº“存中的物å“å—? 3033æŸå。你确定è¦åˆ é™¤è¯¥ç‰©å“å—?
2918 </message> 3034 </message>
2919 <option name="Yes"> 3035 <option name="Yes">
2920 是 3036 删除
2921 </option> 3037 </option>
2922 <option name="No"> 3038 <option name="No">
2923 å¦ 3039 å–消
2924 </option> 3040 </option>
2925 </alert> 3041 </alert>
2926 <alert name="CantRateOwnedByGroup"> 3042 <alert name="CantRateOwnedByGroup">
2927 <message name="message"> 3043 <message name="message">
2928 无法鉴定东东主人,东东由社团拥有。 3044 无法为物体主人评分,物体由社团拥有。
2929 </message> 3045 </message>
2930 <option name="OK"> 3046 <option name="OK">
2931 OK 3047 确定
2932 </option> 3048 </option>
2933 </alert> 3049 </alert>
2934 <alert name="CantOfferCallingCard"> 3050 <alert name="CantOfferCallingCard">
2935 <message name="message"> 3051 <message name="message">
2936 ç›®å‰æ— æ³•æä¾›å¬é›†å¡ã€‚请ç¨å€™å†è¯•ã€‚ 3052 ç›®å‰æ— æ³•æä¾›å片。请ç¨å€™å†è¯•ã€‚
2937 </message> 3053 </message>
2938 <option name="OK"> 3054 <option name="OK">
2939 OK 3055 确定
2940 </option> 3056 </option>
2941 </alert> 3057 </alert>
2942 <alert name="CantOfferFriendship"> 3058 <alert name="CantOfferFriendship">
@@ -2944,54 +3060,57 @@ AGP绘图加速器起作用。Options panel in Preferences in [SECOND_LIFE].
2944 ç›®å‰æ— æ³•å»ºç«‹æœ‹å‹å…³ç³»ã€‚请ç¨å€™å†è¯•ã€‚ 3060 ç›®å‰æ— æ³•å»ºç«‹æœ‹å‹å…³ç³»ã€‚请ç¨å€™å†è¯•ã€‚
2945 </message> 3061 </message>
2946 <option name="OK"> 3062 <option name="OK">
2947 OK 3063 确定
2948 </option> 3064 </option>
2949 </alert> 3065 </alert>
2950 <alert name="CantSetHome"> 3066 <alert name="CantSetHome">
2951 <message name="message"> 3067 <message name="message">
2952 无法在此建ä½å®…。 3068 无法把家设在这里。
2953ä½ çš„ä½å®…必须建在由你或你所在社团拥有的土地上。
2954 </message> 3069 </message>
2955 <option name="OK"> 3070 <option name="OK">
2956 OK 3071 确定
2957 </option> 3072 </option>
2958 </alert> 3073 </alert>
2959 <alert name="BusyModeSet"> 3074 <alert name="BusyModeSet">
2960 <message name="message"> 3075 <message name="message">
2961 忙碌模å¼è°ƒèŠ‚。 3076 已设置为忙碌模å¼ã€‚
2962éšè—èŠå¤©åœºæ™¯å’Œå³æ—¶æ¶ˆæ¯ã€‚å³æ—¶é€š 3077å°†éšè—èŠå¤©å’Œå³æ—¶æ¶ˆæ¯ã€‚å³æ—¶é€šä¼šæ”¶åˆ°
2963会å—到你的忙碌模å¼å›žå¤ã€‚æ‹’ç»æ‰€æœ‰çš„ 3078你的忙碌模å¼å›žå¤ã€‚所有瞬间移动邀请
2964闪电传é€é‚€è¯·å’Œåº“存邀请。 3079都会被拒ç»ã€‚所有给与的物å“都会放入
3080你的垃圾箱。
2965 </message> 3081 </message>
2966 <option name="OK"> 3082 <option name="OK">
2967 OK 3083 确定
2968 </option> 3084 </option>
3085 <ignore name="ignore">
3086 设置忙碌状æ€
3087 </ignore>
2969 </alert> 3088 </alert>
2970 <alert name="NoPVPDetected"> 3089 <alert name="NoPVPDetected">
2971 <message name="message"> 3090 <message name="message">
2972 没有å‘现用户与用户之间(PvP)弊端。 3091 没有å‘现用户与用户之间(PvP)的冲çªã€‚
2973 </message> 3092 </message>
2974 <option name="OK"> 3093 <option name="OK">
2975 OK 3094 确定
2976 </option> 3095 </option>
2977 </alert> 3096 </alert>
2978 <alert name="NotecardAttachPermFail"> 3097 <alert name="NotecardAttachPermFail">
2979 <message name="message"> 3098 <message name="message">
2980 åªæœ‰å…·æœ‰æ— é™åˆ¶&apos;下一个主人&apos;许å¯è¯çš„ 3099 åªæœ‰å…·æœ‰æ— é™åˆ¶ ‘下个拥有者’
2981æ‰å¯ä»¥è¢«é™„在注释å¡ä¸Šã€‚ 3100æƒåˆ©çš„ç©å“æ‰å¯ä»¥è¢«é™„在注释å¡ä¸Šã€‚
2982 </message> 3101 </message>
2983 <option name="OK"> 3102 <option name="OK">
2984 OK 3103 确定
2985 </option> 3104 </option>
2986 </alert> 3105 </alert>
2987 <alert name="JoinedTooManyGroupsMember"> 3106 <alert name="JoinedTooManyGroupsMember">
2988 <message name="message"> 3107 <message name="message">
2989 You are a member of too many groups to join 3108 ä½ å·²ç»åŠ å…¥äº†å¤ªå¤šçš„社团,无法å†åŠ å…¥
2990another one. Please leave at least one group 3109新的社团。加入此社团之å‰ï¼Œè¯·è‡³å°‘离开
2991before joining this one, or decline the offer. 3110一个旧社团, 或者拒ç»æ–°ç¤¾å›¢é‚€è¯·ã€‚
2992To leave a group select the &apos;My Groups..&apos; option 3111离开社团请选择&apos;编辑&apos;èœå•ä¸‹çš„
2993from the &apos;Edit&apos; menu. 3112&apos;我的社团..&apos;选项。
2994[NAME] has invited you to join a group as a member. 3113[NAME]邀请你æˆä¸ºè¯¥ç¤¾å›¢æˆå‘˜ã€‚
2995[INVITE] 3114[INVITE]
2996 </message> 3115 </message>
2997 <option name="Join"> 3116 <option name="Join">
@@ -3008,7 +3127,7 @@ from the &apos;Edit&apos; menu.
3008一个旧社团, 或者拒ç»æ–°ç¤¾å›¢é‚€è¯·ã€‚ 3127一个旧社团, 或者拒ç»æ–°ç¤¾å›¢é‚€è¯·ã€‚
3009离开社团请选择&apos;编辑&apos;èœå•ä¸‹çš„ 3128离开社团请选择&apos;编辑&apos;èœå•ä¸‹çš„
3010&apos;我的社团..&apos;选项。 3129&apos;我的社团..&apos;选项。
3011[NAME]邀请你æˆä¸ºè¯¥ç¤¾å›¢æˆå‘˜ã€‚ 3130[NAME]邀请你æˆä¸ºè¯¥ç¤¾å›¢å®˜å‘˜ã€‚
3012[INVITE] 3131[INVITE]
3013 </message> 3132 </message>
3014 <option name="Join"> 3133 <option name="Join">
@@ -3020,13 +3139,13 @@ from the &apos;Edit&apos; menu.
3020 </alert> 3139 </alert>
3021 <alert name="KickUser"> 3140 <alert name="KickUser">
3022 <message name="message"> 3141 <message name="message">
3023 以哪å¥æ¶ˆæ¯è¸¢èµ°æ­¤äºº? 3142 å‘é€ä¸‹åˆ—消æ¯å¹¶è¸¢èµ°æ­¤äººï¼Ÿ
3024 </message> 3143 </message>
3025 <editline name="editline"> 3144 <editline name="editline">
3026 管ç†å‘˜å·²ç»è¿«ä½¿æ‚¨ä¸‹çº¿ã€‚ 3145 管ç†å‘˜å·²ç»è¿«ä½¿æ‚¨ä¸‹çº¿ã€‚
3027 </editline> 3146 </editline>
3028 <option name="OK"> 3147 <option name="OK">
3029 OK 3148 确定
3030 </option> 3149 </option>
3031 <option name="Cancel"> 3150 <option name="Cancel">
3032 å–消 3151 å–消
@@ -3034,13 +3153,13 @@ from the &apos;Edit&apos; menu.
3034 </alert> 3153 </alert>
3035 <alert name="KickAllUsers"> 3154 <alert name="KickAllUsers">
3036 <message name="message"> 3155 <message name="message">
3037 以哪å¥æ¶ˆæ¯è¸¢èµ°ç›®å‰åœ¨æ­¤çš„æ¯ä¸ªäºº? 3156 å‘é€ä¸‹åˆ—消æ¯å¹¶è¸¢èµ°ç›®å‰è¿žæŽ¥åˆ°ç½‘格的æ¯ä¸ªäºº?
3038 </message> 3157 </message>
3039 <editline name="editline"> 3158 <editline name="editline">
3040 管ç†å‘˜å·²ç»è¿«ä½¿æ‚¨ä¸‹çº¿ã€‚ 3159 管ç†å‘˜å·²ç»è¿«ä½¿æ‚¨ä¸‹çº¿ã€‚
3041 </editline> 3160 </editline>
3042 <option name="OK"> 3161 <option name="OK">
3043 OK 3162 确定
3044 </option> 3163 </option>
3045 <option name="Cancel"> 3164 <option name="Cancel">
3046 å–消 3165 å–消
@@ -3048,13 +3167,13 @@ from the &apos;Edit&apos; menu.
3048 </alert> 3167 </alert>
3049 <alert name="FreezeUser"> 3168 <alert name="FreezeUser">
3050 <message name="message"> 3169 <message name="message">
3051 用哪一æ¡é€šçŸ¥å†»ç»“化身? 3170 用哪一æ¡æ¶ˆæ¯é€šçŸ¥å†»ç»“的化身?
3052 </message> 3171 </message>
3053 <editline name="editline"> 3172 <editline name="editline">
3054 ä½ å·²ç»è¢«å†»ç»“。你ä¸èƒ½ç§»åŠ¨æˆ–èŠå¤©ã€‚管ç†å‘˜ä¼šé€šè¿‡å³æ—¶ä¿¡æ¯è”系你。 3173 您已ç»è¢«å†»ç»“。您ä¸èƒ½ç§»åŠ¨æˆ–èŠå¤©ã€‚管ç†å‘˜ä¼šé€šè¿‡å³æ—¶ä¿¡æ¯è”系您。
3055 </editline> 3174 </editline>
3056 <option name="OK"> 3175 <option name="OK">
3057 OK 3176 确定
3058 </option> 3177 </option>
3059 <option name="Cancel"> 3178 <option name="Cancel">
3060 å–消 3179 å–消
@@ -3062,13 +3181,13 @@ from the &apos;Edit&apos; menu.
3062 </alert> 3181 </alert>
3063 <alert name="UnFreezeUser"> 3182 <alert name="UnFreezeUser">
3064 <message name="message"> 3183 <message name="message">
3065 å‘é€ä½•ç§ä¿¡æ¯å°é”该用户? 3184 用哪一æ¡æ¶ˆæ¯é€šçŸ¥è§£å†»çš„化身?
3066 </message> 3185 </message>
3067 <editline name="editline"> 3186 <editline name="editline">
3068 ä½ å·²ç»è¢«è§£å†» 3187 您已ç»è¢«è§£å†»ã€‚
3069 </editline> 3188 </editline>
3070 <option name="OK"> 3189 <option name="OK">
3071 OK 3190 确定
3072 </option> 3191 </option>
3073 <option name="Cancel"> 3192 <option name="Cancel">
3074 å–消 3193 å–消
@@ -3076,10 +3195,10 @@ from the &apos;Edit&apos; menu.
3076 </alert> 3195 </alert>
3077 <alert name="ExpungeUser"> 3196 <alert name="ExpungeUser">
3078 <message name="message"> 3197 <message name="message">
3079 输入用户的代ç†èº«ä»½ 3198 输入用户的 agent id
3080 </message> 3199 </message>
3081 <option name="OK"> 3200 <option name="OK">
3082 OK 3201 确定
3083 </option> 3202 </option>
3084 <option name="Cancel"> 3203 <option name="Cancel">
3085 å–消 3204 å–消
@@ -3087,13 +3206,13 @@ from the &apos;Edit&apos; menu.
3087 </alert> 3206 </alert>
3088 <alert name="OfferTeleport"> 3207 <alert name="OfferTeleport">
3089 <message name="message"> 3208 <message name="message">
3090 用以下消æ¯æ供到你æ‰åœ¨åœ°çš„闪电传é€? 3209 å‘é€ä¸‹åˆ—消æ¯å¹¶é‚请瞬间移动?
3091 </message> 3210 </message>
3092 <editline name="editline"> 3211 <editline name="editline">
3093 我è¦åŠ å…¥ [REGION] 3212 和我一起到 [REGION] æ¥å§ï¼
3094 </editline> 3213 </editline>
3095 <option name="OK"> 3214 <option name="OK">
3096 OK 3215 确定
3097 </option> 3216 </option>
3098 <option name="Cancel"> 3217 <option name="Cancel">
3099 å–消 3218 å–消
@@ -3101,38 +3220,52 @@ from the &apos;Edit&apos; menu.
3101 </alert> 3220 </alert>
3102 <alert name="OfferTeleportFromGod"> 3221 <alert name="OfferTeleportFromGod">
3103 <message name="message"> 3222 <message name="message">
3104 是å¦ç¥žæ˜Žå¬å”¤ç”¨æˆ·åŽ»ä½ çš„ä½ç½®? 3223 是å¦ç¥žæ˜Žå¬å”¤ç”¨æˆ·æ¥ä½ çš„ä½ç½®ï¼Ÿ
3105 </message> 3224 </message>
3106 <editline name="editline"> 3225 <editline name="editline">
3107 我è¦åŠ å…¥ [REGION] 3226 和我一起到 [REGION] æ¥å§ï¼
3108 </editline> 3227 </editline>
3109 <option name="OK"> 3228 <option name="OK">
3110 OK 3229 确定
3111 </option> 3230 </option>
3112 <option name="Cancel"> 3231 <option name="Cancel">
3113 å–消 3232 å–消
3114 </option> 3233 </option>
3115 </alert> 3234 </alert>
3116 <alert name="MessageEstate" title="通知在这å—ä¸åŠ¨äº§ä¸Šçš„æ¯ä¸ªäºº"> 3235 <alert name="TeleportFromLandmark">
3236 <message name="message">
3237 你确定è¦çž¬é—´ç§»åŠ¨å—?
3238 </message>
3239 <ignore name="ignore">
3240 使用库存中的地标瞬间移动
3241 </ignore>
3242 <option name="Teleport">
3243 瞬间移动
3244 </option>
3245 <option name="Cancel">
3246 å–消
3247 </option>
3248 </alert>
3249 <alert name="MessageEstate" title="通知在这å—地产上的æ¯ä¸ªäºº">
3117 <message name="message"> 3250 <message name="message">
3118 输入一æ¡ç®€çŸ­çš„通知,该声明将 3251 输入一æ¡ç®€çŸ­çš„通知,该声明将
3119会分å‘给目å‰åœ¨ä½ é¢†åœ°å†…的所有居民。 3252会å‘é€ç»™ç›®å‰åœ¨ä½ åœ°äº§å†…的所有居民。
3120 </message> 3253 </message>
3121 <option name="OK"> 3254 <option name="OK">
3122 OK 3255 确定
3123 </option> 3256 </option>
3124 <option name="Cancel"> 3257 <option name="Cancel">
3125 å–消 3258 å–消
3126 </option> 3259 </option>
3127 </alert> 3260 </alert>
3128 <alert name="ChangeLindenEstate" title="更改林登拥有的ä¸åŠ¨äº§"> 3261 <alert name="ChangeLindenEstate" title="更改林登地产">
3129 <message name="message"> 3262 <message name="message">
3130 ä½ å°†è¦æ›´æ”¹æž—登所有的ç§äººè´¢äº§(大陆, 3263 ä½ å°†è¦æ›´æ”¹æž—登所有的地产(大陆ã€
3131æ ¼å­,æ–¹ä½, 等等.). 3264少年网格ã€æ–¹ä½å²›ï¼Œç­‰ç­‰)。
3132 3265
3133这个动作æžåº¦å±é™©ï¼Œå› ä¸ºå®ƒå¯èƒ½ä¼šå½±å到 3266 这个动作æžåº¦å±é™©ï¼Œå› ä¸ºå®ƒå¯èƒ½ä¼šåœ¨åŸºç¡€çš„层次上
3134 è¿™å大陆上, å®ƒå°†æ”¹å˜ 3267å½±å“到用户体验。在大陆上, 它将改å˜
3135上åƒçš„区域,并会使空间æœåŠ¡å™¨æŠ¥è­¦ã€‚ 3268上åƒçš„区域,并会使空间æœåŠ¡å™¨å™Žç€ã€‚
3136 3269
3137是å¦ç»§ç»­? 3270是å¦ç»§ç»­?
3138 </message> 3271 </message>
@@ -3143,19 +3276,17 @@ from the &apos;Edit&apos; menu.
3143 å–消 3276 å–消
3144 </option> 3277 </option>
3145 </alert> 3278 </alert>
3146 <alert name="ChangeLindenAccess" title="更改进入林登拥有的ä¸åŠ¨äº§çš„通é“"> 3279 <alert name="ChangeLindenAccess" title="更改林登地产准入列表">
3147 <message name="message"> 3280 <message name="message">
3148 å³å°†æ”¹å˜æž—ç™»ç§äººè´¢äº§ 3281 ä½ å°†è¦æ›´æ”¹æž—登所有的地产的准入列表(大陆ã€
3149(大陆,æ ¼å­, æ–¹å‘,等等.)的准入åå•. 3282少年网格ã€æ–¹ä½å²›ï¼Œç­‰ç­‰)。
3150 3283
3151该æ“作éžå¸¸å±é™©ï¼Œ 应该仅在防止黑客把东东和 3284该æ“作éžå¸¸å±é™©ï¼Œ 应该仅在利用把物体/金钱
3152金钱转移进或出地区的时候æ‰èƒ½å¤Ÿè¢« 3285转移进或出æŸä¸ªç½‘格的对付活儿 (hack) 时候
3153执行。 3286æ‰åº”该被执行。 它将改å˜ä¸Šåƒçš„区域,并会
3287使空间æœåŠ¡å™¨å™Žç€ã€‚
3154 3288
3155è¿™å¯èƒ½ä¼šæ›´æ”¹ä¸Šåƒåœ°åŒºï¼Œå¹¶ä½¿å¾— 3289是å¦ç»§ç»­ï¼Ÿ
3156空间æœåŠ¡å™¨æŠ¥è­¦ã€‚
3157
3158Proceed?
3159 </message> 3290 </message>
3160 <option name="ChangeEstate"> 3291 <option name="ChangeEstate">
3161 更改ä¸åŠ¨äº§ 3292 更改ä¸åŠ¨äº§
@@ -3164,127 +3295,127 @@ Proceed?
3164 å–消 3295 å–消
3165 </option> 3296 </option>
3166 </alert> 3297 </alert>
3167 <alert name="EstateAllowedAgentAdd" title="选择ä¸åŠ¨äº§"> 3298 <alert name="EstateAllowedAgentAdd" title="选择地产">
3168 <message name="message"> 3299 <message name="message">
3169 仅将此独立领地还是将[所有独立领地ˆ—å¥å…许åå•? 3300 仅列入此地产还是[ALL_ESTATES]çš„å…许åå•?
3170 </message> 3301 </message>
3171 <option name="ThisEstate"> 3302 <option name="ThisEstate">
3172 该领地 3303 该地产
3173 </option> 3304 </option>
3174 <option name="AllEstates"> 3305 <option name="AllEstates">
3175 所有ä¸åŠ¨äº§ 3306 所有地产
3176 </option> 3307 </option>
3177 <option name="Cancel"> 3308 <option name="Cancel">
3178 å–消 3309 å–消
3179 </option> 3310 </option>
3180 </alert> 3311 </alert>
3181 <alert name="EstateAllowedAgentRemove" title="选择ä¸åŠ¨äº§"> 3312 <alert name="EstateAllowedAgentRemove" title="选择地产">
3182 <message name="message"> 3313 <message name="message">
3183 从å许åå•ä¸­ç§»é™¤ä»…è¿™å—领地还是[ALL_ESTATES]? 3314 仅移出此地产还是[ALL_ESTATES]çš„å…许åå•?
3184 </message> 3315 </message>
3185 <option name="ThisEstate"> 3316 <option name="ThisEstate">
3186 该领地 3317 该地产
3187 </option> 3318 </option>
3188 <option name="AllEstates"> 3319 <option name="AllEstates">
3189 所有ä¸åŠ¨äº§ 3320 所有地产
3190 </option> 3321 </option>
3191 <option name="Cancel"> 3322 <option name="Cancel">
3192 å–消 3323 å–消
3193 </option> 3324 </option>
3194 </alert> 3325 </alert>
3195 <alert name="EstateAllowedGroupAdd" title="选择ä¸åŠ¨äº§"> 3326 <alert name="EstateAllowedGroupAdd" title="选择地产">
3196 <message name="message"> 3327 <message name="message">
3197 仅将此独立领地还是将[所有独立领地]列入社团å…许åå•? 3328 仅列入此地产还是[ALL_ESTATESš„社团å…许åå•?
3198 </message> 3329 </message>
3199 <option name="ThisEstate"> 3330 <option name="ThisEstate">
3200 该领地 3331 该地产
3201 </option> 3332 </option>
3202 <option name="AllEstates"> 3333 <option name="AllEstates">
3203 所有ä¸åŠ¨äº§ 3334 所有地产
3204 </option> 3335 </option>
3205 <option name="Cancel"> 3336 <option name="Cancel">
3206 å–消 3337 å–消
3207 </option> 3338 </option>
3208 </alert> 3339 </alert>
3209 <alert name="EstateAllowedGroupRemove" title="选择ä¸åŠ¨äº§"> 3340 <alert name="EstateAllowedGroupRemove" title="选择地产">
3210 <message name="message"> 3341 <message name="message">
3211 从社团å许åå•ä¸­ç§»é™¤ä»…è¿™å—领地还是[ALL_ESTATES]? 3342 仅移出此地产还是[ALL_ESTATES]的社团å…许åå•?
3212 </message> 3343 </message>
3213 <option name="ThisEstate"> 3344 <option name="ThisEstate">
3214 该领地 3345 该地产
3215 </option> 3346 </option>
3216 <option name="AllEstates"> 3347 <option name="AllEstates">
3217 所有ä¸åŠ¨äº§ 3348 所有地产
3218 </option> 3349 </option>
3219 <option name="Cancel"> 3350 <option name="Cancel">
3220 å–消 3351 å–消
3221 </option> 3352 </option>
3222 </alert> 3353 </alert>
3223 <alert name="EstateBannedAgentAdd" title="选择ä¸åŠ¨äº§"> 3354 <alert name="EstateBannedAgentAdd" title="选择地产">
3224 <message name="message"> 3355 <message name="message">
3225 æ‹’ç»è®¿é—®ä»…此领地或[所有_领地]? 3356 æ‹’ç»è®¿é—®ä»…此领地还是[ALL_ESTATES]?
3226 </message> 3357 </message>
3227 <option name="ThisEstate"> 3358 <option name="ThisEstate">
3228 该领地 3359 该地产
3229 </option> 3360 </option>
3230 <option name="AllEstates"> 3361 <option name="AllEstates">
3231 所有ä¸åŠ¨äº§ 3362 所有地产
3232 </option> 3363 </option>
3233 <option name="Cancel"> 3364 <option name="Cancel">
3234 å–消 3365 å–消
3235 </option> 3366 </option>
3236 </alert> 3367 </alert>
3237 <alert name="EstateBannedAgentRemove" title="选择ä¸åŠ¨äº§"> 3368 <alert name="EstateBannedAgentRemove" title="选择地产">
3238 <message name="message"> 3369 <message name="message">
3239 åœæ­¢æ‹’ç»è¿›å…¥ä»…这一个领地还是[ALL_ESTATES]? 3370 åœæ­¢æ‹’ç»è¯¥å±…民进入仅这一个地产还是[ALL_ESTATES]?
3240 </message> 3371 </message>
3241 <option name="ThisEstate"> 3372 <option name="ThisEstate">
3242 该领地 3373 该地产
3243 </option> 3374 </option>
3244 <option name="AllEstates"> 3375 <option name="AllEstates">
3245 所有ä¸åŠ¨äº§ 3376 所有地产
3246 </option> 3377 </option>
3247 <option name="Cancel"> 3378 <option name="Cancel">
3248 å–消 3379 å–消
3249 </option> 3380 </option>
3250 </alert> 3381 </alert>
3251 <alert name="EstateManagerAdd" title="选择ä¸åŠ¨äº§"> 3382 <alert name="EstateManagerAdd" title="选择地产">
3252 <message name="message"> 3383 <message name="message">
3253 仅为这一个独立领地还是为所有独立领地添加独立领地ç»ç†? 3384 仅为这一个地产还是为[ALL_ESTATES]添加地产ç»ç†?
3254 </message> 3385 </message>
3255 <option name="ThisEstate"> 3386 <option name="ThisEstate">
3256 该领地 3387 该地产
3257 </option> 3388 </option>
3258 <option name="AllEstates"> 3389 <option name="AllEstates">
3259 所有ä¸åŠ¨äº§ 3390 所有地产
3260 </option> 3391 </option>
3261 <option name="Cancel"> 3392 <option name="Cancel">
3262 å–消 3393 å–消
3263 </option> 3394 </option>
3264 </alert> 3395 </alert>
3265 <alert name="EstateManagerRemove" title="选择ä¸åŠ¨äº§"> 3396 <alert name="EstateManagerRemove" title="选择地产">
3266 <message name="message"> 3397 <message name="message">
3267 仅开除此处领地的领地ç»ç†è¿˜æ˜¯å¼€é™¤ä½ æ‰€æœ‰é¢†åœ°çš„领地ç»ç†ã 3398 ä»…å°é¢†åœ°ç»ç†ä»Žè¿™ä¸ªå¼€é™¤ä»Ž[ALL_ESTATES]å¼é™¤ï¼Ÿ
3268 </message> 3399 </message>
3269 <option name="ThisEstate"> 3400 <option name="ThisEstate">
3270 该领地 3401 该地产
3271 </option> 3402 </option>
3272 <option name="AllEstates"> 3403 <option name="AllEstates">
3273 所有ä¸åŠ¨äº§ 3404 所有地产
3274 </option> 3405 </option>
3275 <option name="Cancel"> 3406 <option name="Cancel">
3276 å–消 3407 å–消
3277 </option> 3408 </option>
3278 </alert> 3409 </alert>
3279 <alert name="EstateCovenantChange" title="选择ä¸åŠ¨äº§"> 3410 <alert name="EstateCovenantChange" title="选择地产">
3280 <message name="message"> 3411 <message name="message">
3281 åªæ”¹å˜æ­¤å¤„ä¸åŠ¨äº§çš„åˆåŒæ¶ˆæ¯è¿˜æ˜¯æ”¹å˜[ALL_ESTATES]çš„åˆåŒæ¶ˆæ¯? 3412 åªæ”¹å˜æ­¤å¤„地产的契约消æ¯è¿˜æ˜¯æ”¹å˜[ALL_ESTATES]的契约消æ¯?
3282 </message> 3413 </message>
3283 <option name="ThisEstate"> 3414 <option name="ThisEstate">
3284 该领地 3415 该地产
3285 </option> 3416 </option>
3286 <option name="AllEstates"> 3417 <option name="AllEstates">
3287 所有ä¸åŠ¨äº§ 3418 所有地产
3288 </option> 3419 </option>
3289 <option name="Cancel"> 3420 <option name="Cancel">
3290 å–消 3421 å–消
@@ -3292,7 +3423,7 @@ Proceed?
3292 </alert> 3423 </alert>
3293 <alert name="EstateKickUser" title="确定踢出"> 3424 <alert name="EstateKickUser" title="确定踢出">
3294 <message name="message"> 3425 <message name="message">
3295 将[EVIL_USER]踢出此处领地? 3426 将 [EVIL_USER] 踢出此处地产?
3296 </message> 3427 </message>
3297 <option name="Kick"> 3428 <option name="Kick">
3298 踢人 3429 踢人
@@ -3303,7 +3434,7 @@ Proceed?
3303 </alert> 3434 </alert>
3304 <alert name="EstateChangeCovenant"> 3435 <alert name="EstateChangeCovenant">
3305 <message name="message"> 3436 <message name="message">
3306 你是å¦ç¡®å®šæ”¹å˜ä¸åŠ¨äº§åˆåŒ? 3437 你是å¦ç¡®å®šæ”¹å˜åœ°äº§å¥‘约?
3307 </message> 3438 </message>
3308 <option name="Change"> 3439 <option name="Change">
3309 更改 3440 更改
@@ -3314,41 +3445,51 @@ Proceed?
3314 </alert> 3445 </alert>
3315 <alert name="ProblemImportingEstateCovenant"> 3446 <alert name="ProblemImportingEstateCovenant">
3316 <message name="message"> 3447 <message name="message">
3317 Problem importing estate covenant. 3448 导入地产契约时出错。
3318 </message> 3449 </message>
3319 <option name="OK"> 3450 <option name="OK">
3320 OK 3451 确定
3321 </option> 3452 </option>
3322 </alert> 3453 </alert>
3454 <alert name="ProblemAddingEstateManager">
3455 <message name="message">
3456 添加地产管ç†äººæ—¶é‡åˆ°é—®é¢˜ã€‚ 一个或多个地产的管ç†äººåˆ—表å¯èƒ½å·²æ»¡ã€‚
3457 </message>
3458 </alert>
3459 <alert name="ProblemAddingEstateGeneric">
3460 <message name="message">
3461 添加到地产列表时é‡åˆ°é—®é¢˜ã€‚ 一个或多个地产的列表å¯èƒ½å·²æ»¡ã€‚
3462 </message>
3463 </alert>
3323 <alert name="UnableToLoadNotecard"> 3464 <alert name="UnableToLoadNotecard">
3324 <message name="message"> 3465 <message name="message">
3325 这次å°è¯•æ— æ³•è½½å…¥æ³¨é‡Šå¡æ‰€å±žçš„资产. 3466 现在暂æ¶æ— æ³•è½½å…¥è®°äº‹å¡ç›¸å…³çš„资产。
3326 </message> 3467 </message>
3327 <option name="OK"> 3468 <option name="OK">
3328 OK 3469 确定
3329 </option> 3470 </option>
3330 </alert> 3471 </alert>
3331 <alert name="NotAllowedToViewNotecard"> 3472 <alert name="NotAllowedToViewNotecard">
3332 <message name="message"> 3473 <message name="message">
3333 缺ä¹è®¸å¯è¯ï¼Œä¸èƒ½æŸ¥çœ‹è¦æ±‚查看的和资产IDç›¸å…³çš„æ³¨é‡Šå¡ 3474 缺ä¹æƒé™ï¼Œä¸èƒ½æŸ¥çœ‹ä¸Žè¦æ±‚的资产 ID 相关的记事å¡
3334 </message> 3475 </message>
3335 <option name="OK"> 3476 <option name="OK">
3336 OK 3477 确定
3337 </option> 3478 </option>
3338 </alert> 3479 </alert>
3339 <alert name="MissingNotecardAssetID"> 3480 <alert name="MissingNotecardAssetID">
3340 <message name="message"> 3481 <message name="message">
3341 资产ID的注释信æ¯å·²ç»ä»Žæ•°æ®åº“中é—失 . 3482 记事å¡çš„资产 ID å·²ç»ä»Žæ•°æ®åº“中é—失。
3342 </message> 3483 </message>
3343 <option name="OK"> 3484 <option name="OK">
3344 OK 3485 确定
3345 </option> 3486 </option>
3346 </alert> 3487 </alert>
3347 <alert name="PublishClassified"> 3488 <alert name="PublishClassified">
3348 <message name="message"> 3489 <message name="message">
3349 请éµè®°: 分类广告费用ä¸ä¼šé€€è¿˜ã€‚ 3490 请éµè®°: 分类广告费用ä¸ä¼šé€€è¿˜ã€‚
3350 3491
3351是å¦æ¶ˆè´¹L$[AMOUNT]å‘布广告? 3492是å¦ä»¥L$[AMOUNT]å‘布广告?
3352 </message> 3493 </message>
3353 <option name="Publish"> 3494 <option name="Publish">
3354 å‘布 3495 å‘布
@@ -3357,9 +3498,37 @@ Proceed?
3357 å–消 3498 å–消
3358 </option> 3499 </option>
3359 </alert> 3500 </alert>
3501 <alert name="SetClassifiedMature">
3502 <message name="message">
3503 分类广告包å«æˆäººå†…容å—?
3504 </message>
3505 <option name="Mature">
3506 包å«
3507 </option>
3508 <option name="Not Mature">
3509 ä¸åŒ…å«
3510 </option>
3511 <option name="Cancel">
3512 å–消
3513 </option>
3514 </alert>
3515 <alert name="SetGroupMature">
3516 <message name="message">
3517 社团包å«æˆäººå†…容å—?
3518 </message>
3519 <option name="Mature">
3520 包å«
3521 </option>
3522 <option name="Not Mature">
3523 ä¸åŒ…å«
3524 </option>
3525 <option name="Cancel">
3526 å–消
3527 </option>
3528 </alert>
3360 <alert name="ConfirmRestart" title="确定é‡æ–°å¯åŠ¨"> 3529 <alert name="ConfirmRestart" title="确定é‡æ–°å¯åŠ¨">
3361 <message name="message"> 3530 <message name="message">
3362 你真的è¦åœ¨2分钟åŽé‡æ–°è¿›å…¥åŒºåŸŸå—? 3531 你真的è¦åœ¨2分钟åŽé‡æ–°å¯åŠ¨åŒºåŸŸå—?
3363 </message> 3532 </message>
3364 <option name="Restart"> 3533 <option name="Restart">
3365 é‡å¯ 3534 é‡å¯
@@ -3374,33 +3543,31 @@ Proceed?
3374会分å‘给目å‰åœ¨æ­¤åŒºåŸŸå†…的所有居民。 3543会分å‘给目å‰åœ¨æ­¤åŒºåŸŸå†…的所有居民。
3375 </message> 3544 </message>
3376 <option name="OK"> 3545 <option name="OK">
3377 OK 3546 确定
3378 </option> 3547 </option>
3379 <option name="Cancel"> 3548 <option name="Cancel">
3380 å–消 3549 å–消
3381 </option> 3550 </option>
3382 </alert> 3551 </alert>
3383 <alert name="HelpRegionBlockTerraform" title="é”定外形"> 3552 <alert name="HelpRegionBlockTerraform" title="é”定地形">
3384 <message name="message"> 3553 <message name="message">
3385 如果此项被选择并执行, 无论æ¯å•å…ƒåœŸåœ°çš„&apos;编辑地形&apos; 如何设置,土地所有者å¯èƒ½æ— æ³•ç¼–辑他们自己的土地。 3554 如果选择此项, 无论æ¯åœ°å—çš„&apos;编辑地形&apos; 如何设置,土地所有者都无法编辑他们自己的土地。
3386 3555
3387默认: 关 3556默认: 关
3388 </message> 3557 </message>
3389 </alert> 3558 </alert>
3390 <alert name="HelpRegionBlockFly" title="é”定飞翔"> 3559 <alert name="HelpRegionBlockFly" title="é”定飞翔">
3391 <message name="message"> 3560 <message name="message">
3392 如果此框被选中,无论æ¯å•ä½åœŸåœ°è®¾ç½®å¦‚何, 3561 如果选择此项,无论æ¯ä¸ªåœ°å—设置如何,
3393人们都ä¸èƒ½åœ¨æ­¤åŒºåŸŸå†…飞翔。 3562人们都ä¸èƒ½åœ¨æ­¤åŒºåŸŸå†…飞行。
3394 3563
3395默认:关 3564默认:关
3396 </message> 3565 </message>
3397 </alert> 3566 </alert>
3398 <alert name="HelpRegionAllowDamage" title="å…许æŸå®³"> 3567 <alert name="HelpRegionAllowDamage" title="å…许伤害">
3399 <message name="message"> 3568 <message name="message">
3400 忽略个别å•ä½åœŸåœ°çš„设置,选定框使å¥åº·ç³»ç»Ÿ 3569 选定框将使å¥åº·ç³»ç»Ÿåº”用于所有地å—。如果ä¸é€‰ä¸­è¿™é¡¹ï¼Œ 个别地å—
3401应用于所有å•ä½åœŸåœ°ã€‚如果有é—留框 3570çš„æŒæœ‰äººä»å¯ä»¥æ‰“开他们土地上的å¥åº·ç³»ç»Ÿã€‚
3402没被查看, 个别å•ä½åœŸåœ°çš„地主ä»å¯ä»¥
3403他们土地上的å¥åº·ç³»ç»Ÿã€‚
3404 3571
3405默认:关 3572默认:关
3406 </message> 3573 </message>
@@ -3408,76 +3575,85 @@ Proceed?
3408 <alert name="HelpRegionAgentLimit" title="代ç†é™åˆ¶"> 3575 <alert name="HelpRegionAgentLimit" title="代ç†é™åˆ¶">
3409 <message name="message"> 3576 <message name="message">
3410 设置此片区域内的化身数é‡æœ€å¤§å€¼ã€‚ 3577 设置此片区域内的化身数é‡æœ€å¤§å€¼ã€‚
3411注æ„,区域内的化身数é‡è¶Šå¤šï¼Œè¡¨çŽ°çš„性能 3578注æ„,区域内的化身数é‡è¶Šå¤šï¼Œæ€§èƒ½
3412å¯èƒ½å°±è¶Šå·®ã€‚ 3579å¯èƒ½å°±è¶Šå·®ã€‚
3413 3580
3414Default: 30 3581默认:40
3415 </message> 3582 </message>
3416 </alert> 3583 </alert>
3417 <alert name="HelpRegionObjectBonus" title="å¥åŠ±ä¸œä¸œ"> 3584 <alert name="HelpRegionObjectBonus" title="é¢å¤ç‰©ä½“å› æ•°">
3418 <message name="message"> 3585 <message name="message">
3419 奖励的东东是原始东东的å¤åˆ¶å“,它å…许å°æ‰¹åœ°æ‰“包 。 3586 é¢å¤–物体因数是对å•ä¸ªåœ°å—内所å…许的元件数é‡çš„å€æ•°ã€‚
3420包裹的数é‡èŒƒå›´æ˜¯1到10。 æ¯512m2设定‘1’个包裹 3587å…许的范围是1 到 10。‘1’ 代表æ¯ä¸ª 512 平方米的地å—å…许 117
3421å…许打包117 个东东。 æ¯512m2设定‘2’个包裹å…许打包 3588个物体。‘2’ 代表æ¯ä¸ª 512 平方米的地å—å…许 234 个物体,也就是
3422234个东东, 也就是å‰è€…的两å€,剩下的以此类推。 无论包裹数的 35892 å€ï¼Œä»¥æ­¤ç±»æŽ¨ã€‚无论é¢å¤–物体是多少,æ¯ä¸ªåŒºåŸŸæ‰€å…许的物体ä»æ˜¯
3423设定值为多少,æ¯ä¸€ä¸ªåŒºåŸŸå…许的奖励东东的数é‡æœ€å¤§ä¸º 359015,000。一旦é¢å¤–物体被设置,请注æ„å‡å°‘该设置将å¯èƒ½å¯¼è‡´ç‰©ä½“
342415,000个。 一旦奖励东东的数é‡è¢«è®¾å®š, å°±ä¸èƒ½å‡å°‘ï¼Œé™¤éž 3591被返还或删除。
3425ä½ å¯ä»¥ç¡®å®šå‡å°‘东东ä¸ä¼šå¯¼è‡´åŒ…裹内东东的
3426删除或归还。
3427 3592
3428默认: 1.0 3593默认: 1.0
3429 </message> 3594 </message>
3430 </alert> 3595 </alert>
3431 <alert name="HelpRegionMaturity" title="æˆäººå†…容"> 3596 <alert name="HelpRegionMaturity" title="æˆäººå†…容">
3432 <message name="message"> 3597 <message name="message">
3433 设置区域内的æˆäººå†…容, æ“作å‚ç…§å³ä¸Šè§’ 3598 设置区域是å¦åŒ…å«æˆäººå†…容,这会显示在
3434çš„å±å¹•ä»¥åŠåœ°å›¾ä¸Šå¼¹å‡ºçš„å°è´´å£«ã€‚æˆäººå†…容 3599å±å¹•ä¸Šæ–¹ä»¥åŠåœ°å›¾çš„æ示中。该设定也会影å“æœç´¢
3435也会影å“æœç´¢ç»“æžœ - 居民们å¯ä»¥é€‰æ‹©ä¸æœç´¢ 3600结果 — 居民们å¯ä»¥é€‰æ‹©ä¸æœç´¢æˆäººåŒºåŸŸå†…的内容。
3436æˆäººåŒºåŸŸå†…的内容。
3437 3601
3438地图上弹出的å°è´´å£«5分钟内ä¸ä¼šæ”¹å˜, 因为 3602改å˜è¿™ä¸€è®¾å®šå¯èƒ½è¦è¿‡ä¸€ä¼šå„¿æ‰ä¼šå映到地图上。
3439系统åªæ˜¯å®šæ—¶æ€§çš„上传地图信æ¯ã€‚
3440 3603
3441默认:éžæˆäººçº§åˆ« 3604默认:éžæˆäººçº§åˆ«
3442 </message> 3605 </message>
3443 </alert> 3606 </alert>
3444 <alert name="HelpRegionRestrictPushObject" title="é™åˆ¶æŽ¨åŠ¨"> 3607 <alert name="HelpRegionRestrictPushObject" title="é™åˆ¶æŽ¨åŠ¨">
3445 <message name="message"> 3608 <message name="message">
3446 设定所有区域为é™åˆ¶æŽ¨åŠ¨åŒºã€‚代ç†å•†åªèƒ½æŽ¨åŠ¨è‡ªå·±ï¼Œæˆ–者由土地主人所设的脚本代ç æŽ¨åŠ¨ï¼Œæˆ–者由社团所属土地的脚本代ç æŽ¨åŠ¨ï¼Œè¿™é‡Œå‡è®¾åœŸåœ°æœ‰ç¤¾å›¢è½¬è®©è®¾ç½®ã€‚ 3609 设定所有区域为é™åˆ¶æŽ¨åŠ¨åŒºã€‚å±…æ°‘åªèƒ½æŽ¨åŠ¨è‡ªå·±ï¼Œæˆ–者由土地主人的脚本代ç æŽ¨åŠ¨ã€‚
3447 3610
3448推动功能和llPushObject() LSL功能有关. 3611(推动功能和llPushObject() LSLå½æ•°æœ‰å…³ã€‚)
3449 3612
3450默认: 关 3613默认: 关
3451 </message> 3614 </message>
3452 </alert> 3615 </alert>
3453 <alert name="HelpParcelChanges" title="土地连接/划分"> 3616 <alert name="HelpParcelChanges" title="土地åˆå¹¶/划分">
3454 <message name="message"> 3617 <message name="message">
3455 设置æˆæ— è®ºåœŸåœ°æ˜¯å¦å½’ä¸åŠ¨äº§ä¸»äººæ‰€æœ‰ï¼Œéƒ½å¯ä»¥è¢«è¿žæŽ¥æˆ–å†åˆ’分。 3618 该设置决定ä¸å±žäºŽåœ°äº§æ‰€æœ‰äººçš„地å—是å¦å¯è¢«åˆå¹¶æˆ–划分。
3456如果该选项未被æ§è¡Œ: 3619如果该选项未被é€æ‹©:
3457 * åªæœ‰ä¸åŠ¨äº§ä¸»äººå’Œç»ç†äººæœ‰æƒåˆ©è¿žæŽ¥æˆ–å†åˆ’分土地. 3620 * åªæœ‰ä¸åŠ¨äº§ä¸»äººå’Œç»ç†äººæœ‰æƒåˆ©è¿žæŽ¥æˆ–å†åˆ’分土地。
3458 * 他们åªèƒ½è¿žæŽ¥æˆ–å†åˆ’分属于这个主人的土地,或属于具有åˆé€‚æƒåˆ©çš„社团的土地。 3621 * 他们åªèƒ½è¿žæŽ¥æˆ–å†åˆ’分属于这个主人的土地, 或属于具有åˆé€‚æƒåˆ©çš„社团的土地。
3459 3622
3460如果选项已被æ§è¡Œ: 3623如果选项被é€æ‹©:
3461 * 所有土地的主人都å¯ä»¥è¿žæŽ¥æˆ–å†åˆ’分他们所拥有的土地. 3624 * 所有土地的主人都å¯ä»¥è¿žæŽ¥æˆ–å†åˆ’分他们所拥有的土地.
3462 * 对于社团所拥有的土地, 拥有åˆé€‚æƒåˆ©çš„社团å¯ä»¥è¿žæŽ¥æˆ–å†åˆ’分土地。 3625 * 对于社团所拥有的土地, 拥有åˆé€‚æƒåˆ©çš„社团å¯ä»¥è¿žæŽ¥æˆ–å†åˆ’分土地。
3463 3626
3464 3627
3465默认: 执行 3628默认: 选择
3629 </message>
3630 </alert>
3631 <alert name="HelpRegionSearch" title="Do Not Show In Search">
3632 <message name="message">
3633 打开该选项将阻止地å—拥有者在æœç´¢ä¸­åˆ—出他们的地å—。
3634默认:关
3635 </message>
3636 </alert>
3637 <alert name="HelpParcelSearch" title="Do Not Show In Search">
3638 <message name="message">
3639 这个选项将会:
3640- 在æœç´¢ç»“果中显示该地å—
3641- 显示该地å—的公开物体
3466 </message> 3642 </message>
3467 </alert> 3643 </alert>
3468 <alert name="RegionMaturityChange" title="更改区域的æˆäººæŒ‡æ•°è®¾å®š"> 3644 <alert name="RegionMaturityChange" title="更改区域的æˆäººæŒ‡æ•°è®¾å®š">
3469 <message name="message"> 3645 <message name="message">
3470 此区域内的æˆäººå†…容等级已ç»æ›´æ–°ã€‚ 3646 此区域内的æˆäººå†…容等级已ç»æ›´æ–°ã€‚
3471 3647
3472但是,世界地图更新时间需è¦å¤§çº¦5分钟, 3648但是,世界地图更新时间需è¦å¤§çº¦5分钟,
3473因为系统åªèƒ½å®šæœŸæ›´æ–°åœ°å›¾ 3649因为系统åªèƒ½å®šæœŸæ›´æ–°åœ°å›¾ä¿¡æ¯ã€‚
3474ä¿¡æ¯ã€‚
3475 </message> 3650 </message>
3476 </alert> 3651 </alert>
3477 <alert name="HelpRegionLandResell" title="土地é‡æ–°å‡ºå”®"> 3652 <alert name="HelpRegionLandResell" title="土地é‡æ–°å‡ºå”®">
3478 <message name="message"> 3653 <message name="message">
3479 ä¸åŠ¨äº§ä¸»äººå’Œç»ç†äººæœ‰æƒåˆ©å‡ºå”®ä»»ä½•ä¸åŠ¨äº§ä¸»äººçš„土地。 3654 ä¸åŠ¨äº§ä¸»äººå’Œç»ç†äººæœ‰æƒåˆ©å‡ºå”®ä»»ä½•ä¸åŠ¨äº§ä¸»äººçš„土地。
3480如果选项没有被执行,买主ä¸èƒ½é‡æ–°å‡ºå”®è¯¥åŒºåŸŸå†…的土地。如果选项被执行,买主则å¯ä»¥é‡æ–°å‡ºå”®è¯¥åŒºåŸŸå†…土地。 3655如果选项没有被执行, 买主ä¸èƒ½å†å‡ºå”®è¯¥åŒºåŸŸå†…的土地。如果选项被执行,
3656买主则å¯ä»¥å†å‡ºå”®è¯¥åŒºåŸŸå†…土地。
3481 3657
3482 3658
3483默认: ä¸å…许 3659默认: ä¸å…许
@@ -3485,196 +3661,181 @@ Default: 30
3485 </alert> 3661 </alert>
3486 <alert name="HelpEstateCovenantID" title="契约åˆåŒçš„资产ID"> 3662 <alert name="HelpEstateCovenantID" title="契约åˆåŒçš„资产ID">
3487 <message name="message"> 3663 <message name="message">
3488 设置这个属于这项ä¸åŠ¨äº§çš„ä¸åŠ¨äº§å¥‘约å议的注释å¡èµ„产ID。 3664 设置该地产的地产契约记事å¡èµ„产 ID。
3489默认: 00000000-0000-0000-0000-000000000000或没有 3665默认: 00000000-0000-0000-0000-000000000000 或没有
3490 </message> 3666 </message>
3491 </alert> 3667 </alert>
3492 <alert name="HelpRegionDisableScripts" title="无效脚本"> 3668 <alert name="HelpRegionDisableScripts" title="无效脚本">
3493 <message name="message"> 3669 <message name="message">
3494 如果模拟表现平庸,å¯èƒ½æ˜¯è„šæœ¬é—®é¢˜ã€‚打开 3670 如果模拟性能平庸,å¯èƒ½æ˜¯è„šæœ¬é—®é¢˜ã€‚
3495ç»Ÿè®¡æ¡ (Ctrl-Shift-1)。 找到模拟器物ç†FPS。 3671æ‰“å¼€ç»Ÿè®¡æ¡ (Ctrl-Shift-1)。 找到模拟器物ç†FPS。如果低于
3496如果低于45,打开ä½äºŽç³»ç»Ÿæ¡åº•éƒ¨çš„ 367245,打开ä½äºŽç³»ç»Ÿæ¡åº•éƒ¨çš„‘时间’ æ¿ã€‚ 如果脚本时间为 25 毫秒
3497‘时间’æ¿ã€‚ 如果脚本时间设定为æ¯ç§’读25祯甚至更高, 则点击 3673甚至更高, 则点击 ‘获å–首è¦è„šæœ¬â€™ 按钮。你会得到å¯èƒ½å¯¼è‡´ä¸è‰¯
3498‘获å–首è¦è„šæœ¬&apos;按钮。你会得到å¯èƒ½å¯¼è‡´ä¸è‰¯æ¨¡æ‹Ÿè¡¨çŽ°çš„ 3674模拟表现的脚本的å称åŠä½ç½®ã€‚
3499脚本的å称åŠä½ç½®ã€‚
3500 3675
3501检查‘无效脚本&apos;ç›’å­ç„¶åŽç‚¹å‡» ‘应用&apos; 3676打开 ‘ç¦ç”¨è„šæœ¬â€™ 选项然åŽç‚¹å‡» ‘应用’按钮,å¯ä»¥æš‚时使该区域内
3502按钮,这å¯ä»¥æš‚时使该区域内所有脚本失效。 ä½ å¯èƒ½ 3677所有脚本失效。 ä½ å¯èƒ½éœ€è¦è¿™æ ·åšä»¥åˆ°è¾¾æ ‡å‡ºçš„ ‘首è¦è„šæœ¬â€™ çš„
3503如是åšä»¥è¾¾åˆ°æ ‡å‡ºçš„‘首è¦è„šæœ¬â€™çš„ä½ç½®ã€‚ 3678ä½ç½®ã€‚一旦你到达那里, å°±å¯ä»¥åˆ†æž 是å¦æ˜¯è¿™äº›è„šæœ¬å¯¼è‡´äº†é—®é¢˜ã€‚ 你也许想è”系脚本的主人或删除或归还物体。关闭 ‘ç¦ç”¨è„šæœ¬â€™ 选项
3504 一旦你到达那里, å°±å¯ä»¥åˆ†æž 3679并点击 ‘应用’,å¯ä»¥å†æ¬¡æ¿€æ´»è¯¥åŒºåŸŸå†…脚本。
3505是å¦æ˜¯è¿™äº›è„šæœ¬å¯¼è‡´äº†é—®é¢˜ã€‚ 你也许想
3506è”系脚本的主人或删除或归还东东。
3507ä¸æ£€æŸ¥ &apos;无效脚本&apos; ç›’å­å¹¶ç‚¹å‡» &apos;应用&apos;,å¯ä»¥å†æ¬¡
3508激活该区域内脚本。
3509 3680
3510默认: 关 3681默认: 关
3511 </message> 3682 </message>
3512 </alert> 3683 </alert>
3513 <alert name="HelpRegionDisableCollisions" title="无效冲çª"> 3684 <alert name="HelpRegionDisableCollisions" title="无效碰撞">
3514 <message name="message"> 3685 <message name="message">
3515 如果模拟效果ä¸å¥½, 物ç†ä¸œä¸œä¹Ÿå¯èƒ½æ˜¯åŽŸå› ã€‚ 3686 如果模拟性能平庸,å¯èƒ½æ˜¯ç‰©ç†ç‰©ä½“问题。
3516打开统计æ¡(Ctrl-Shift-1)ã€‚æ‰¾åˆ°ç¬¬ä¸€äººç§°ç‰©ç† 3687打开统计æ¡(Ctrl-Shift-1)。找到模拟器物ç†FPS。如果它å°äºŽ45,
3517视角模拟器。 如果它å°äºŽ45,打开ä½äºŽç³»ç»Ÿæ¡åº•éƒ¨çš„ 3688打开ä½äºŽç»Ÿè®¡æ¡åº•éƒ¨çš„时间一æ ã€‚ 如果 ‘模拟物ç†æ—¶é—´â€™ 在
3518系统æ¡ã€‚ 如果模拟物ç†æ—¶é—´è¯»å–速度为 368920 毫秒或以上,点击 &apos;获得首è¦ç¢°æ’žè€…&apos; 按钮。
351920 祯æ¯ç§’或更快, 点击&apos;获得首è¦Colliders&apos; 按钮。 3690你将得到å¯èƒ½å¯¼è‡´æ¨¡æ‹Ÿè¡¨çŽ°ä¸å¥½çš„物体的å称和ä½ç½®ã€‚
3520ä½ å°±å¯ä»¥èŽ·å¾—导致模拟表现ä¸å¥½çš„东东的å称和
3521物ç†åœ°å€ã€‚
3522 3691
3523检查 &apos;无效冲çª&apos; ç›’å­ å¹¶æŒ‰ä¸‹ &apos;应用&apos; 3692打开 ‘ç¦ç”¨ç¢°æ’žâ€™ 选项然åŽç‚¹å‡» ‘应用’按钮,这样å¯ä»¥æš‚时关闭
3524按钮,这样å¯ä»¥æš‚时消除东东与东东之间的冲çªã€‚è¦æ‰¾åˆ° 3693物体对物体的碰撞。 ä½ å¯èƒ½éœ€è¦è¿™æ ·åšä»¥åˆ°è¾¾æ ‡å‡ºçš„ ‘首è¦ç¢°æ’žè€…’
3525标注出的‘首è¦å†²çªæºâ€™çš„ä½ç½®ï¼Œä½ å¯èƒ½å¿…须照上述方法 3694çš„ä½ç½®ã€‚一旦你到达该ä½ç½®ï¼Œä½ åº”该调查该物体是å¦åœ¨ä¸Žå…¶ä»–物体
3526æ¥åšã€‚ 一旦你到达该ä½ç½®, 你应该调查 3695一直碰撞。你也许想è”系脚本的主人或删除或归还物体。
3527该东东是å¦ä¸€ç›´åœ¨ä¸Žå…¶ä»–东东产生冲çª? ä½ å¯èƒ½æƒ³ 3696关闭 ‘ç¦ç”¨ç¢°æ’žâ€™ 选项并点击 ‘应用’,å¯ä»¥å†æ¬¡æ¿€æ´»è¯¥åŒºåŸŸå†…脚本。
3528è”系东东的主人,或者删除或归还此东东。
3529ä¸æ£€æŸ¥ &apos;无效冲çª&apos;ç›’å­ç„¶åŽ&apos;应用&apos; 以é‡æ–°æ¿€æ´»
3530该区域内的冲çªã€‚
3531 3697
3532默认: 关 3698默认: 关
3533 </message> 3699 </message>
3534 </alert> 3700 </alert>
3535 <alert name="HelpRegionDisablePhysics" title="无效物ç†"> 3701 <alert name="HelpRegionDisablePhysics" title="无效物ç†">
3536 <message name="message"> 3702 <message name="message">
3537 无效物ç†å’Œæ— æ•ˆå†²çªç±»ä¼¼, 除了所有 3703 无效物ç†å’Œæ— æ•ˆç¢°æ’žç±»ä¼¼, 除了所有物ç†æ¨¡æ‹Ÿ
3538物ç†æ¨¡æ‹Ÿéƒ½æ˜¯æ— æ•ˆçš„。这æ„味ç€ä¸ä»…所有东东将ä¸ä¼šåœæ­¢ 3704都是无效的。这æ„味ç€ä¸ä»…所有物体将会
3539相互冲çª, 且化身们也将无法移动。 3705åœæ­¢ç›¸äº’碰撞,且化身们也将无法移动。
3540 3706
3541仅当无效冲çªæ²¡æœ‰å‘地区å馈回足够的 3707仅当无效碰撞没有å‘地区å馈回足够的表现,
3542表现,以致无法调查物ç†é—®é¢˜æˆ–者 3708以致无法调查物ç†é—®é¢˜æˆ–者
3543&apos;首è¦å†²çªæº&apos;时,æ‰èƒ½ä½¿ç”¨æ— æ•ˆç‰©ç†ã€‚ 3709 ‘首è¦ç¢°æ’žæºâ€™ 时,æ‰èƒ½ä½¿ç”¨æ— æ•ˆç‰©ç†ã€‚
3544 3710
3545完æˆåŽè¯·ç¡®è®¤æ¢å¤ç‰©ç†, å¦åˆ™åŒ–身们 3711完æˆåŽè¯·ç¡®è®¤æ¢å¤ç‰©ç†, å¦åˆ™åŒ–身们还将无法移动。
3546还将无法移动。
3547 3712
3548默认:关 3713默认:关
3549 </message> 3714 </message>
3550 </alert> 3715 </alert>
3551 <alert name="HelpRegionTopColliders" title="首è¦å†²å‡»æº"> 3716 <alert name="HelpRegionTopColliders" title="首è¦å†²å‡»æº">
3552 <message name="message"> 3717 <message name="message">
3553 列出正在ç»å—大é‡æ½œåœ¨çš„物物冲çªçš„ 3718 列出正在ç»å—大é‡æ½œåœ¨çš„物物碰撞的
3554东东的åå•ã€‚这些东东å¯èƒ½ä¼šå‡æ…¢ 3719物体的åå•ã€‚这些物体å¯èƒ½ä¼šå‡æ…¢
3555模拟性能。如果模æŸç‰©ç†çš„时间超过20秒, 3720模拟性能。选择查看 &gt; 统计æ¡
3556 选择查看 &gt; 统计æ¡å’Œæ¨¡æ‹Ÿå™¨ &gt; 时间 &gt; 模拟时间 (物ç†) 3721然åŽæ¨¡æ‹Ÿå™¨ &gt; 时间 &gt; 模拟时间 (物ç†)
3557æ¥æŸ¥çœã€‚ 3722æ¥å‚考是å¦æœ‰è‡³å°‘ 20 毫秒花在物ç†ä¸Šäº†ã€‚
3558 </message> 3723 </message>
3559 </alert> 3724 </alert>
3560 <alert name="HelpRegionTopScripts" title="首è¦è„šæœ¬"> 3725 <alert name="HelpRegionTopScripts" title="首è¦è„šæœ¬">
3561 <message name="message"> 3726 <message name="message">
3562 显示花费很多时间è¿è¡Œæž—登脚本语言的东东 3727 显示花费很多时间è¿è¡Œæž—登脚本语言的物体
3563çš„åå•ã€‚ 这些东东å¯èƒ½ä¼šå‡æ…¢æ¨¡æ‹Ÿæ€§èƒ½ã€‚ 3728çš„åå•ã€‚ 这些物体å¯èƒ½ä¼šå‡æ…¢æ¨¡æ‹Ÿæ€§èƒ½ã€‚
3564如果脚本花费时间超过25秒,选择查看 &gt; 3729选择查看 &gt; 统计æ¡
3565统计æ¡å’Œæ¨¡æ‹Ÿå™¨ &gt; 时间 &gt;脚本时间 3730然åŽæ¨¡æ‹Ÿå™¨ &gt; 时间 &gt; 模拟时间 (物ç†)
3566æ¥æŸ¥çœã€‚ 3731æ¥å‚考是å¦æœ‰è‡³å°‘ 25 毫秒花在脚本上了。
3567 </message> 3732 </message>
3568 </alert> 3733 </alert>
3569 <alert name="HelpRegionRestart" title="é‡æ–°è¿›å…¥åœ°åŒº"> 3734 <alert name="HelpRegionRestart" title="é‡æ–°å¯åŠ¨åœ°åŒº">
3570 <message name="message"> 3735 <message name="message">
3571 两分钟的警告之åŽï¼Œå°†ä¼šé‡æ–°å¯åŠ¨è¿™ç‰‡åŒºåŸŸè¿è¡Œ 3736 两分钟的警告之åŽï¼Œå°†ä¼šé‡æ–°å¯åŠ¨è¿™ç‰‡åŒºåŸŸçš„æœåŠ¡å™¨è¿›ç¨‹ã€‚
3572çš„æœåŠ¡å™¨å¤„ç†è¿‡ç¨‹ã€‚区域内的所有居民将会 3737区域内的所有居民将会断线。区域内的数æ®å°†ä¼šä¿ç•™ï¼Œ
3573断线。区域内的数æ®å°†ä¼šä¿ç•™,并且应会在 3738并且应会在 90 秒钟以内æ¢å¤æ­£å¸¸ã€‚
357490秒钟以内æ¢å¤æ­£å¸¸ã€‚
3575 3739
3576é‡æ–°å¯åŠ¨ä¸ä¼šå¸¦æ¥å¤ªå¤šçš„性能问题, 3740é‡æ–°å¯åŠ¨ä¸ä¼šè§£å†³å¤ªå¤šçš„性能问题,
3577并且应该åªæœ‰åœ¨æ”¶åˆ°æŒ‡ç¤ºæ—¶æ‰ç”¨åˆ°ã€‚ 3741所以应该åªæœ‰åœ¨æ”¶åˆ°æŒ‡ç¤ºæ—¶æ‰ç”¨åˆ°ã€‚
3578 </message> 3742 </message>
3579 </alert> 3743 </alert>
3580 <alert name="HelpRegionWaterHeight" title="æ°´æ·±"> 3744 <alert name="HelpRegionWaterHeight" title="æ°´æ·±">
3581 <message name="message"> 3745 <message name="message">
3582 这时水域的深度。 如果设置值是 3746 这是水é¢å‡ºçŽ°çš„深度。如果该值ä¸æ˜¯ 20,
3583除去20外的任何值,并且你拥有的是临近世界 3747并且你拥有临近世界边缘的水域或者
3584边缘的水域,或者 &apos;无用&apos; 3748‘空洞’ 水,那么将会å¯ä»¥çœ‹åˆ°æ°´é¢æ–­å¼€ã€‚
3585æ°´,那么所看è§çš„就是一个沟渠。
3586 3749
3587默认: 20 3750默认: 20
3588 </message> 3751 </message>
3589 </alert> 3752 </alert>
3590 <alert name="HelpRegionTerrainRaise" title="地形å‡é«˜"> 3753 <alert name="HelpRegionTerrainRaise" title="地形å‡é«˜">
3591 <message name="message"> 3754 <message name="message">
3592 这个市å•ä½åœŸåœ°ä¸»äººèƒ½å¤ŸæŠ¬é«˜ä»–们的 3755 这是地å—æ‹¥æœäººå¯ä»¥å°†ä»–们的
3593地形,使得其高于 &apos;baked&apos; 地形的默认 3756土地å高至 ‘烘烤的’ 土地
3594高度。 3757默认高度之上的最高值。
3595 3758
3596默认: 4 3759默认: 4
3597 </message> 3760 </message>
3598 </alert> 3761 </alert>
3599 <alert name="HelpRegionTerrainLower" title="地形é™ä½Ž"> 3762 <alert name="HelpRegionTerrainLower" title="地形é™ä½Ž">
3600 <message name="message"> 3763 <message name="message">
3601 这个是å•ä½åœŸåœ°çš„主人能够使 3764 这是地å—æ‹¥æœäººå¯ä»¥å°†ä»–们的
3602他们的地形比 &apos;baked&apos; 地形高度低的默认 3765土地é低至 ‘烘烤的’ 土地
3603è·ç¦»ã€‚ 3766默认高度之下的最低值。
3604 3767
3605默认: -4 3768默认: -4
3606 </message> 3769 </message>
3607 </alert> 3770 </alert>
3608 <alert name="HelpRegionUploadRaw" title="上传åŽç¼€ä¸º RAW的地形"> 3771 <alert name="HelpRegionUploadRaw" title="上传åŽç¼€ä¸º RAW的地形">
3609 <message name="message"> 3772 <message name="message">
3610 点击这个按钮å¯ä»¥æŠŠåŽç¼€ä¸º.RAW的文件上传到你所在的地区。 3773 点击这个按钮å¯ä»¥æŠŠåŽç¼€ä¸º .RAW 的文件上传到你所在的地区。
3611文件必须包å«æ­£ç¡®çš„尺寸和通é“æ•°: 3774文件必须包å«æ­£ç¡®çš„尺寸和通é“æ•°: RGB, 256×256 å’Œ 13 个通é“。
3612RGB, 256x256 and 13 通路. 创建地形文件最好的 3775创建地形文件最好的方法就是下载已有的 RAW 文件。一个好的
3613方法就是下载已有的 RAW 文件。一个好的 3776首è¦æ­¥éª¤æ˜¯ä¿®å¤ç¬¬ä¸€ä¸ªé€šé“ (陆地高度),并将它上传。
3614首è¦æ­¥éª¤æ˜¯ä¿®å¤ç¬¬ä¸€ä¸ªé€šè·¯ (陆地高度),
3615并将它上传。
3616 3777
3617上传过程需时45秒。请注æ„,上传地形文件 3778上传过程需时 45 秒。请注æ„,上传地形文件 *ä¸ä¼š* 移动
3618æ—¶ *ä¸èƒ½* 移动地上的东东, 3779地上的物体, åªä¼šç§»åŠ¨åœ°å½¢æœ¬èº«å’Œåœ°å—相关的æƒé™ã€‚
3619åªæœ‰åœ°å½¢æœ¬èº«è¿˜æœ‰å…许的包裹å¯ä»¥ç§»åŠ¨ã€‚ 3780è¿™å¯èƒ½å¯¼è‡´ç‰©ä½“沉入地下。
3620这会导致东东沉入地下。
3621 3781
3622更多关于编辑高地区域的信æ¯, 请登陆: 3782更多编辑区域高度图的信æ¯ï¼Œè¯·æŒ‰ F1 键寻求帮助。
3623http://secondlife.com/tiki/tiki-index.php?page=RawTerrainFile
3624 </message> 3783 </message>
3625 </alert> 3784 </alert>
3626 <alert name="HelpRegionDownloadRaw" title="下载åŽç¼€ä¸ºRAW的地形"> 3785 <alert name="HelpRegionDownloadRaw" title="下载åŽç¼€ä¸ºRAW的地形">
3627 <message name="message"> 3786 <message name="message">
3628 点击此按钮å¯ä»¥ä¸‹è½½åŒ…å«åœŸåœ°é«˜åº¦æ•°æ®,å•ä½åœŸåœ°å°ºå¯¸ï¼Œ 3787 点击此按钮å¯ä»¥ä¸‹è½½åŒ…å«åœŸåœ°é«˜åº¦æ•°æ®ï¼Œåœ°å—尺寸,
3629代售å•ä½åœŸåœ°çŠ¶å†µï¼Œå’Œæ­¤åŒºåŸŸå†…å•ä½åœŸåœ°è®¸å¯è¯ 3788地å—出售情况,和此区域内å•ä½åœŸåœ°è®¸å¯è¯ç­‰ä¿¡æ¯
3630等信æ¯çš„文件。当用如åŒPhotoshop这类程åºæ‰“开文件时, 3789çš„æ–‡ä»¶ã€‚å½“ç”¨å¦‚åŒ Photoshop 这类程åºæ‰“开文件时,
3631 你必须指定文件的尺寸为: 3790你必须指定文件的尺寸为: RGB, 256×256 ,13
3632 RGB, 256x256 ,13个通路。这ç§åœ°å½¢æ–‡ä»¶åªèƒ½ä»¥ 3791个通é“。这ç§åœ°å½¢æ–‡ä»¶åªèƒ½ä»¥è¿™ç§æ–¹å¼æ‰“开,
3633è¿™ç§æ–¹å¼æ‰“开,而ä¸èƒ½ç”¨åˆ«çš„。 3792而ä¸èƒ½ç”¨åˆ«çš„。
3634 3793
3635获å–更多关于区域内田地高度的信æ¯, 请登陆: 3794更多编辑区域高度图的信æ¯ï¼Œè¯·æŒ‰ F1 键寻求帮助。
3636http://secondlife.com/tiki/tiki-index.php?page=RawTerrainFile
3637 </message> 3795 </message>
3638 </alert> 3796 </alert>
3639 <alert name="HelpRegionUseEstateSun" title="使用领地太阳"> 3797 <alert name="HelpRegionUseEstateSun" title="使用地产太阳">
3640 <message name="message"> 3798 <message name="message">
3641 这个选定框å¯ä»¥ä½¿è¿™ç‰‡åŒºåŸŸå†…太阳的ä½ç½® 3799 这个选定框å¯ä»¥ä½¿è¿™ç‰‡åŒºåŸŸå†…太阳的ä½ç½®
3642与领地内其他区域内太阳的ä½ç½®ç›¸åŒã€‚ 3800与地产内其他区域内太阳的ä½ç½®ç›¸åŒã€‚
3643 3801
3644默认:开 3802默认:开
3645 </message> 3803 </message>
3646 </alert> 3804 </alert>
3647 <alert name="HelpRegionFixedSun" title="太阳固定"> 3805 <alert name="HelpRegionFixedSun" title="太阳固定">
3648 <message name="message"> 3806 <message name="message">
3649 这个选择框设置太阳的ä½ç½®å›ºå®šåœ¨å¤ªé˜³ 3807 这个选择框设置太阳的ä½ç½®åˆ°æ»‘å
3650滑动到此阶段时的ä½ç½®ï¼Œå¹¶ä¸”使得太阳无法移动。 3808所指定的ä½ç½®ï¼Œå¹¶ä¸”åœæ­¢å¤ªé˜³ç§»åŠ¨ã€‚
3651 3809
3652默认: 关 3810默认: 关
3653 </message> 3811 </message>
3654 </alert> 3812 </alert>
3655 <alert name="HelpRegionBakeTerrain" title="硬地"> 3813 <alert name="HelpRegionBakeTerrain" title="烘烤地形">
3656 <message name="message"> 3814 <message name="message">
3657 这个按钮把当å‰åœ°å½¢ä¿å­˜ä¸ºåŒºåŸŸå†…心的默认模å¼ã€‚一旦烤干,土地将æ¢å¤æˆä¿å­˜çš„å½¢æ€ï¼Œæ— è®ºä½•æ—¶ä½ æˆ–者他人使用编辑‘æ¢å¤â€™é€‰è´¤/工具。烤干的地形åŒæ ·æ˜¯åœ°å½¢ä¸Šå‡æˆ–下é™æžé™çš„中点。 3815 这个按钮把当å‰åœ°å½¢ä¿å­˜ä¸ºåŒºåŸŸåœ°å½¢çš„默认值。
3816 一旦烤干,你或者他人使用编辑土地的 ‘æ¢å¤â€™é€‰é¡¹æ—¶
3817 土地将æ¢å¤æˆä¿å­˜çš„å½¢æ€ã€‚
3818 烤干的地形也是地形上å‡æˆ–下é™æžé™çš„中点。
3658 </message> 3819 </message>
3659 </alert> 3820 </alert>
3660 <alert name="HelpEstateEstateManager" title="ä¸åŠ¨äº§ç»ç†"> 3821 <alert name="HelpEstateEstateManager" title="ä¸åŠ¨äº§ç»ç†">
3661 <message name="message"> 3822 <message name="message">
3662 领地ç»ç†æ˜¯ä½ å§”派的负责区域控制 3823 地产ç»ç†æ˜¯ä½ å§”派的负责区域控制
3663和领地调节的居民。 领地ç»ç† 3824和地产调节的居民。 地产ç»ç†
3664有æƒæ”¹å˜æŽ§åˆ¶æ¿å†…任何调解项, 除了上传, 3825有æƒæ”¹å˜æŽ§åˆ¶æ¿å†…任何调节项, 除了上传,
3665下载,和压缩地形。特别的, 他们有æƒå…许 3826下载, 和压缩地形。特别的, 他们有æƒå…许
3666或ç¦æ­¢å±…民进入你的领地。 3827或ç¦æ­¢å±…民进入你的地产。
3667 3828
3668领地ç»ç†åªèƒ½è¢«é¢†åœ°ä¸»äººé›‡ä½£æˆ–辞退 3829地产ç»ç†åªèƒ½è¢«åœ°äº§ä¸»äººé›‡ä½£æˆ–辞退
3669, ä¸èƒ½äº’相之间委派。请选择你信任的 3830, ä¸èƒ½äº’相之间委派。请选择你信任的
3670居民作为你的领地ç»ç†, 因为他们的 3831居民作为你的地产ç»ç†, 因为他们的
3671行为最终将由你负责。 3832行为最终将由你负责。
3672 </message> 3833 </message>
3673 </alert> 3834 </alert>
3674 <alert name="HelpEstateUseGlobalTime" title="使用国际时间"> 3835 <alert name="HelpEstateUseGlobalTime" title="使用国际时间">
3675 <message name="message"> 3836 <message name="message">
3676 这个选定框å¯ä»¥ä½¿ä½ çš„领地的太阳ä½ç½® 3837 这个选定框å¯ä»¥ä½¿ä½ çš„地产的太阳ä½ç½®
3677与林登所属的&apos;大陆&apos;领地的太阳ä½ç½® 3838与林登所有的 ‘大陆’ 地产的太阳ä½ç½®
3678一致。 3839一致。
3679 3840
3680默认: 开 3841默认: 开
@@ -3682,101 +3843,112 @@ http://secondlife.com/tiki/tiki-index.php?page=RawTerrainFile
3682 </alert> 3843 </alert>
3683 <alert name="HelpEstateFixedSun" title="太阳固定"> 3844 <alert name="HelpEstateFixedSun" title="太阳固定">
3684 <message name="message"> 3845 <message name="message">
3685 这个选择框设置太阳的ä½ç½®å›ºå®šåœ¨å¤ªé˜³ 3846 这个选择框设置太阳的ä½ç½®åˆ°æ»‘å
3686滑动到此阶段时的ä½ç½®ï¼Œå¹¶ä¸”使得太阳无法移动。 3847所指定的ä½ç½®ï¼Œå¹¶ä¸”åœæ­¢å¤ªé˜³ç§»åŠ¨ã€‚
3687 </message> 3848 </message>
3688 </alert> 3849 </alert>
3689 <alert name="HelpEstateMainlandVisible" title="从此处å¯ä»¥çœ‹è§æ•´ä¸ªå¤§é™†"> 3850 <alert name="HelpEstateMainlandVisible" title="从此处å¯ä»¥çœ‹è§å¤§é™†">
3690 <message name="message"> 3851 <message name="message">
3691 设置此处领地内的居民是å¦èƒ½ä»Žåœ°å›¾ä¸Š 3852 设置此处地产内的居民是å¦èƒ½ä»Žåœ°å›¾ä¸Š
3692看è§æž—登所拥有的 &apos;大陆&apos; 领地。 3853看è§æž—登所拥有的 ‘大陆’ 地产。
3693 3854
3694默认:å¯ä»¥ 3855默认:å¯ä»¥
3695 </message> 3856 </message>
3696 </alert> 3857 </alert>
3697 <alert name="HelpEstateExternallyVisible" title="从大陆å¯è§†"> 3858 <alert name="HelpEstateExternallyVisible" title="从大陆å¯è§†">
3698 <message name="message"> 3859 <message name="message">
3699 设置在林登所拥有的&apos;大陆&apos;领地内的居民 3860 设置在在其他地产上的居民是å¦å¯ä»¥
3700是å¦èƒ½ä»Žåœ°å›¾ä¸Šçœ‹åˆ°ä½ çš„领地。 3861 进入该地产而ä¸éœ€è¦åœ¨è®¿é—®åˆ—表上åˆå‡ºã€‚
3701 3862
3702默认:å¯ä»¥ 3863默认: å¯ä»¥
3703 </message> 3864 </message>
3704 </alert> 3865 </alert>
3705 <alert name="HelpEstateAllowDirectTeleport" title="å…许直接闪电传é€"> 3866 <alert name="HelpEstateAllowDirectTeleport" title="å…许直接瞬间移动">
3706 <message name="message"> 3867 <message name="message">
3707 éšè¿‡éªŒè¯åŽï¼Œç”¨æˆ·å¯è¢«é—ªç”µä¼ è¿è‡³è‡ªå·±é¢†åœ°çš„ 3868 打开该选项åŽï¼Œç”¨æˆ·å¯çž¬é—´ç§»åŠ¨åˆ°ä½ çš„领地的
3708任何一个点。 未通过验è¯æ—¶, å±…æ°‘åªèƒ½è¢«é—ªç”µ 3869任何一个点。 关闭该选项时, å±…æ°‘åªèƒ½çž¬é—´
3709ä¼ è¿è‡³æœ€è¿‘的集åˆç‚¹ã€‚ 3870移动至最近的瞬间移动枢纽。
3710 3871
3711默认: 关 3872默认: 关
3712 </message> 3873 </message>
3713 </alert> 3874 </alert>
3714 <alert name="HelpEstateAllowResident" title="å…许进入通é“"> 3875 <alert name="HelpEstateAllowResident" title="å…许进入通é“">
3715 <message name="message"> 3876 <message name="message">
3716 一旦任何居民被列于此,å‰å¾€è¿™å—é¢†åœ°çš„é€šé“ 3877 对该地产的访问将仅é™äºŽä»¥ä¸‹åˆ—出的居民和社团。
3717将对该åå•ä¸Šçš„居民下é¢åå•ä¸Šçš„社团进行é™åˆ¶ã€‚ 3878该设置仅在 “å…许公众访问â€å…³é—­æ—¶æœ‰æ•ˆã€‚
3718
3719(如果此领地å¯ä»¥ä»Žå¤§é™†ä¸Šçœ‹è§,通é“å°±ä¸èƒ½å¯¹
3720åå•ä¸Šçš„居民或社团进行é™åˆ¶,且这些控制都是无效的。
3721åªæœ‰ &apos;æ‹’ç»çš„通é“&apos; åå•å¯ç”¨ã€‚
3722 </message> 3879 </message>
3723 </alert> 3880 </alert>
3724 <alert name="HelpEstateAllowGroup" title="å…许社团进入通é“"> 3881 <alert name="HelpEstateAllowGroup" title="å…许社团进入通é“">
3725 <message name="message"> 3882 <message name="message">
3726 一旦任何社团被列于此,å‰å¾€è¿™å—é¢†åœ°çš„é€šé“ 3883 对该地产的访问将仅é™åˆ—出的社团和以上列出的居民。
3727将对åå•ä¸Šçš„社团进行é™åˆ¶ï¼Œand residents specifically 3884该设置仅在 “å…许公众访问â€å…³é—­æ—¶æœ‰æ•ˆã€‚
3728allowed above.
3729
3730(如果此领地å¯ä»¥ä»Žå¤§é™†ä¸Šçœ‹è§,通é“å°±ä¸èƒ½å¯¹
3731居民或社团åå•è¿›è¡Œé™åˆ¶,且这些控制都是无效的。
3732åªæœ‰ &apos;æ‹’ç»çš„通é“&apos; åå•å¯ç”¨ã€‚)
3733 </message> 3885 </message>
3734 </alert> 3886 </alert>
3735 <alert name="HelpEstateBanResident" title="æ‹’ç»é€šè¿"> 3887 <alert name="HelpEstateBanResident" title="æ‹’ç»è®¿é—®">
3736 <message name="message"> 3888 <message name="message">
3737 ä¸ç®¡ä»¥ä¸Šç¤¾å›¢çš„设置为什么情况, 3889 ä¸ç®¡ä»¥ä¸Šç¤¾å›¢çš„设置为什么情况,
3738åå•ä¸Šçš„居民被拒ç»åˆ°è¾¾æ‚¨çš„领地。 3890åå•ä¸Šçš„居民将被拒ç»åˆ°è¾¾æ‚¨çš„地产。
3739 3891 </message>
3740添加一ä½å±…民上此åå•å°†æŠŠä»–从å…许åå• 3892 </alert>
3741中删除。 3893 <alert name="HelpEstateAbuseEmailAddress" title="ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šç”µå­é‚®ä»¶åœ°å€">
3894 <message name="message">
3895 将这一项设为有效的电å­é‚®ä»¶åœ°å€ä¼šè®©
3896该地产上的ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šé€åˆ°è¿™ä¸ªåœ°å€ã€‚
3897留空该项会使得ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šä»…å‘é€ç»™
3898林登实验室。
3899 </message>
3900 </alert>
3901 <alert name="HelpEstateVoiceChat" title="å…许语音èŠå¤©">
3902 <message name="message">
3903 å…许该地产中的地å—拥有自己的语音èŠå¤©é¢‘é“,
3904 å¯ä»¥è®©å±…民与临近的其他人交谈。
3905
3906
3907默认:关
3908 </message>
3909 </alert>
3910 <alert name="VoiceVersionMismatch" title="语音èŠå¤©ç‰ˆæœ¬ä¸ç¬¦åˆ">
3911 <message name="message">
3912 该版本的第二人生与该地区的语音èŠå¤©ä¸å…¼å®¹ã€‚
3913为了正常使用语音èŠå¤©ä½ éœ€è¦æ›´æ–°ç¬¬äºŒäººç”Ÿã€‚
3742 </message> 3914 </message>
3743 </alert> 3915 </alert>
3744 <alert name="HelpEstateCovenant" title="ä¸åŠ¨äº§å¥‘约åˆåŒ"> 3916 <alert name="HelpEstateCovenant" title="ä¸åŠ¨äº§å¥‘约åˆåŒ">
3745 <message name="message"> 3917 <message name="message">
3746 设置ä¸åŠ¨äº§çš„契约åˆåŒä½¿ä½ å¯ä»¥è¿žä¸åŠ¨äº§ä¸€èµ·å‡ºå”®åœŸåœ°ã€‚如果在ä¸åŠ¨äº§å¥‘约åˆåŒä¸­æ²¡æœ‰è®¾ç½®ï¼Œä½ åˆ™ä¸èƒ½å‡ºå”®åœŸåœ°ï¼Œè€Œåªèƒ½å•ç‹¬å‡ºå”®ä¸åŠ¨äº§ã€‚如果在买主购买之å‰ï¼Œä½ ä¸æƒ³åœ¨åœŸåœ°ä¸Šè®¾ç½®ä»»ä½•ç›¸å…³çš„给买主的æ„è§å’Œè§„定,则这张你契约åˆåŒçš„注释å¡å¯èƒ½æ˜¯ç©ºçš„。 3918 设置ä¸åŠ¨äº§çš„契约åˆåŒä½¿ä½ å¯ä»¥å‡ºå”®åœ°äº§ä¸­çš„土地。如果ä¸åŠ¨äº§å¥‘约åˆåŒæ²¡æœ‰è®¾ç½®ï¼Œä½ åˆ™ä¸èƒ½å‡ºå”®åœŸåœ°ã€‚如果在买主购买之å‰ï¼Œä½ ä¸æƒ³åœ¨åœŸåœ°ä¸Šè®¾ç½®ä»»ä½•ç›¸å…³çš„给买主的æ„è§å’Œè§„定,你的契约åˆåŒçš„注释å¡å¯ä»¥æ˜¯ç©ºçš„。
3747 3919
3748一个ä¸åŠ¨äº§å¥‘约åˆåŒå¯ä»¥è¢«ç”¨æ¥åˆ¶å®šè§„定和指导方针,表明文化信æ¯æˆ–仅仅是你自己对未æ¥ä¹°å®¶çš„期望。它å¯ä»¥åŒ…å«åˆ†åŒºåˆ¶åº¦ï¼Œå»ºç­‘规范,支付方å¼é€‰æ‹©ä»¥åŠä»»ä½•ä½ è®¤ä¸ºé‡è¦ï¼Œå¹¶å¸Œæœ›æ–°ä¸»äººåœ¨è´­ä¹°ä¹‹å‰çœ‹åˆ°ï¼Œå¹¶åŒæ„çš„æ¡æ¬¾ã€‚ 3920一个ä¸åŠ¨äº§å¥‘约åˆåŒå¯ä»¥è¢«ç”¨æ¥åˆ¶å®šè§„定和指导方针,表明文化信æ¯æˆ–仅仅是你自己对未æ¥ä¹°å®¶çš„期望。它å¯ä»¥åŒ…å«åˆ†åŒºåˆ¶åº¦ï¼Œå»ºç­‘规范,支付方å¼é€‰æ‹©ä»¥åŠä»»ä½•ä½ è®¤ä¸ºé‡è¦ï¼Œå¹¶å¸Œæœ›æ–°ä¸»äººåœ¨è´­ä¹°ä¹‹å‰çœ‹åˆ°ï¼Œå¹¶åŒæ„çš„æ¡æ¬¾ã€‚
3749 3921
3750买主必须éµå®ˆå¥‘约åˆåŒä¸Šæ‰€æ ‡å‡ºçš„规定,在完æˆæ¶ˆè´¹å‰ï¼Œä¹°ä¸»è¦åœ¨æ˜¯å¦åŒæ„的方格里画钩。ä¸åŠ¨äº§å¥‘约åˆåŒæ€»æ˜¯åœ¨ä»»ä½•è®¾ç½®ä¸ºæ­¤çš„土地中关于土地对è¯æ¡†ä¸­å¯è§ã€‚ 3922买主必须éµå®ˆå¥‘约åˆåŒä¸Šæ‰€æ ‡å‡ºçš„规定,在完æˆæ¶ˆè´¹å‰ï¼Œä¹°ä¸»è¦åœ¨æ˜¯å¦åŒæ„的方格里画钩。ä¸åŠ¨äº§å¥‘约åˆåŒæ€»æ˜¯åœ¨ä»»ä½•è®¾ç½®ä¸ºæ­¤çš„土地中关于土地对è¯æ¡†ä¸­å¯è§ã€‚
3751 </message> 3923 </message>
3752 </alert> 3924 </alert>
3753 <alert name="BuyObjectOneOnly" title="ä¸èƒ½è´­ä¹°ä¸œä¸œ"> 3925 <alert name="BuyObjectOneOnly" title="ä¸èƒ½è´­ä¹°ç‰©ä½“">
3754 <message name="message"> 3926 <message name="message">
3755 一次å¯ä»¥è´­ä¹°çš„东东ä¸å¾—多于ä¸ä»¶ã€‚ 3927 一次无法购买ä¸ä¸ªä»¥ä¸Šçš„物体。
3756请仅选择一件东东并å†è¯•ä¸€é。 3928请仅选择一件物体并å†è¯•ä¸€é。
3757 </message> 3929 </message>
3758 </alert> 3930 </alert>
3759 <alert name="BuyObjectOneOwner" title="ä¸èƒ½è´­ä¹°ä¸œä¸œ"> 3931 <alert name="BuyObjectOneOwner" title="ä¸èƒ½è´­ä¹°ç‰©ä½“">
3760 <message name="message"> 3932 <message name="message">
3761 一次无法从ä¸åŒä¸»äººå¤„购买东东。 3933 一次无法从ä¸åŒä¸»äººå¤„购买物体。
3762请仅选择一件东东,å†è¯•ä¸€æ¬¡ã€‚ 3934请仅选择一件物体,å†è¯•ä¸€æ¬¡ã€‚
3763 </message> 3935 </message>
3764 </alert> 3936 </alert>
3765 <alert name="BuyContentsOneOnly" title="ä¸èƒ½è´­ä¹°å†…容"> 3937 <alert name="BuyContentsOneOnly" title="ä¸èƒ½è´­ä¹°å†…容">
3766 <message name="message"> 3938 <message name="message">
3767 一次å¯ä»¥è´­ä¹°çš„东东ä¸å¾—多于ä¸ä»¶ã€‚ 3939 一次无法购买ä¸ä¸ªä»¥ä¸Šçš„物体的内容。
3768请仅选择一件东东并å†è¯•ä¸€é。 3940请仅选择一件物体,并å†è¯•ä¸€é。
3769 </message> 3941 </message>
3770 </alert> 3942 </alert>
3771 <alert name="BuyContentsOneOwner" title="ä¸èƒ½è´­ä¹°å†…容"> 3943 <alert name="BuyContentsOneOwner" title="ä¸èƒ½è´­ä¹°å†…容">
3772 <message name="message"> 3944 <message name="message">
3773 一次无法从ä¸åŒä¸»äººå¤„购买东东。 3945 一次无法从ä¸åŒä¸»äººå¤„购买物体。
3774请仅选择一件东东,å†è¯•ä¸€æ¬¡ã€‚ 3946请仅选择一件物体,å†è¯•ä¸€æ¬¡ã€‚
3775 </message> 3947 </message>
3776 </alert> 3948 </alert>
3777 <alert name="PermYes"> 3949 <alert name="PermYes">
3778 <message name="message"> 3950 <message name="message">
3779 是 3951 å¯
3780 </message> 3952 </message>
3781 </alert> 3953 </alert>
3782 <alert name="PermNo"> 3954 <alert name="PermNo">
@@ -3786,12 +3958,12 @@ allowed above.
3786 </alert> 3958 </alert>
3787 <alert name="BuyOriginal"> 3959 <alert name="BuyOriginal">
3788 <message name="message"> 3960 <message name="message">
3789 是å¦æ¶ˆè´¹L$[PRICE]è´­ä¹°åˆå§‹ä¸œä¸œ? 3961 是å¦ä»¥ L$[PRICE] 购买原物体?
3790ä½ å°†æˆä¸ºä¸œä¸œçš„主人。 3962ä½ å°†æˆä¸ºç‰©ä½“的主人。
3791ä½ å°†å¯ä»¥ï¼š 3963ä½ å°†å¯ä»¥ï¼š
3792修饰: [MODIFYPERM] 3964 修改: [MODIFYPERM]
3793 å¤åˆ¶: [COPYPERM] 3965 å¤åˆ¶: [COPYPERM]
3794 é‡æ°å‡ºå”®æˆ–馈赠他人: [RESELLPERM] 3966 转å–或赠é€: [RESELLPERM]
3795 </message> 3967 </message>
3796 <option name="Buy"> 3968 <option name="Buy">
3797 è´­ä¹° 3969 è´­ä¹°
@@ -3802,12 +3974,12 @@ allowed above.
3802 </alert> 3974 </alert>
3803 <alert name="BuyOriginalNoOwner"> 3975 <alert name="BuyOriginalNoOwner">
3804 <message name="message"> 3976 <message name="message">
3805 是å¦æ¶ˆè´¹L$[PRICE]è´­ä¹°åˆå§‹ä¸œä¸œ? 3977 是å¦ä»¥ L$[PRICE] 购买原物体?
3806ä½ å°†æˆä¸ºä¸œä¸œçš„主人。 3978ä½ å°†æˆä¸ºç‰©ä½“的主人。
3807ä½ å°†å¯ä»¥ï¼š 3979ä½ å°†å¯ä»¥ï¼š
3808修饰: [MODIFYPERM] 3980 修改: [MODIFYPERM]
3809 å¤åˆ¶: [COPYPERM] 3981 å¤åˆ¶: [COPYPERM]
3810 é‡æ°å‡ºå”®æˆ–馈赠他人: [RESELLPERM] 3982 转å–或赠é€: [RESELLPERM]
3811 </message> 3983 </message>
3812 <option name="Buy"> 3984 <option name="Buy">
3813 è´­ä¹° 3985 è´­ä¹°
@@ -3818,12 +3990,12 @@ allowed above.
3818 </alert> 3990 </alert>
3819 <alert name="BuyCopy"> 3991 <alert name="BuyCopy">
3820 <message name="message"> 3992 <message name="message">
3821 是å¦æ¶ˆè´¹L$[PRICE]从[OWNER]处购买一件拷è´? 3993 是å¦ä»¥ L$[PRICE] 从 [OWNER] 购买物体的副本?
3822这件东东将从你的库存中. 3994这件物体将被å¤åˆ¶åˆ°ä½ çš„库存。
3823ä½ å¯ä»¥åšçš„有: 3995ä½ å°†å¯ä»¥ï¼š
3824 修改: [MODIFYPERM] 3996 修改: [MODIFYPERM]
3825 å¤åˆ¶: [COPYPERM] 3997 å¤åˆ¶: [COPYPERM]
3826 é‡æ°å‡ºå”®æˆ–馈赠他人: [RESELLPERM] 3998 转å–或赠é€: [RESELLPERM]
3827 </message> 3999 </message>
3828 <option name="Buy"> 4000 <option name="Buy">
3829 è´­ä¹° 4001 è´­ä¹°
@@ -3834,11 +4006,12 @@ allowed above.
3834 </alert> 4006 </alert>
3835 <alert name="BuyCopyNoOwner"> 4007 <alert name="BuyCopyNoOwner">
3836 <message name="message"> 4008 <message name="message">
3837 是å¦æ¶ˆè´¹L$[PRICE]购买东东拷è´? 4009 是å¦ä»¥ L$[PRICE] 购买物体的副本?
3838这件东东将被å¤åˆ¶è‡³ä½ çš„库存中.ä½ å°†å¯ä»¥ï¼š 4010这件物体将被å¤åˆ¶åˆ°ä½ çš„库存。
3839修饰: [MODIFYPERM] 4011ä½ å°†å¯ä»¥ï¼š
4012 修改: [MODIFYPERM]
3840 å¤åˆ¶: [COPYPERM] 4013 å¤åˆ¶: [COPYPERM]
3841 é‡æ°å‡ºå”®æˆ–馈赠他人: [RESELLPERM] 4014 转å–或赠é€: [RESELLPERM]
3842 </message> 4015 </message>
3843 <option name="Buy"> 4016 <option name="Buy">
3844 è´­ä¹° 4017 è´­ä¹°
@@ -3849,8 +4022,8 @@ allowed above.
3849 </alert> 4022 </alert>
3850 <alert name="BuyContents"> 4023 <alert name="BuyContents">
3851 <message name="message"> 4024 <message name="message">
3852 是å¦æ¶ˆè´¹L$[PRICE]从[OWNER]处购买内容? 4025 是å¦ä»¥ L$[PRICE] 从 [OWNER] 购买内容?
3853它们将被拷è´åˆ°ä½ çš„库存。 4026它们将被å¤åˆ¶åˆ°ä½ çš„库存。
3854 </message> 4027 </message>
3855 <option name="Buy"> 4028 <option name="Buy">
3856 è´­ä¹° 4029 è´­ä¹°
@@ -3861,8 +4034,8 @@ allowed above.
3861 </alert> 4034 </alert>
3862 <alert name="BuyContentsNoOwner"> 4035 <alert name="BuyContentsNoOwner">
3863 <message name="message"> 4036 <message name="message">
3864 是å¦æ¶ˆè´¹L$[PRICE]购买内容? 4037 是å¦ä»¥ L$[PRICE] 购买内容?
3865它们将被拷è´åˆ°ä½ çš„库存。 4038它们将被å¤åˆ¶åˆ°ä½ çš„库存。
3866 </message> 4039 </message>
3867 <option name="Buy"> 4040 <option name="Buy">
3868 è´­ä¹° 4041 è´­ä¹°
@@ -3873,11 +4046,10 @@ allowed above.
3873 </alert> 4046 </alert>
3874 <alert name="ConfirmPurchase"> 4047 <alert name="ConfirmPurchase">
3875 <message name="message"> 4048 <message name="message">
3876 此项处ç†å°†: 4049 此项交易将:
4050 [ACTION]
3877 4051
3878[ACTION] 4052你确定è¦ç»§ç»­è´­ä¹°å—?
3879
3880你确定你愿æ„把交易进行下去å—?
3881 </message> 4053 </message>
3882 <option name="Confirm"> 4054 <option name="Confirm">
3883 确认 4055 确认
@@ -3888,11 +4060,10 @@ allowed above.
3888 </alert> 4060 </alert>
3889 <alert name="ConfirmPurchasePassword"> 4061 <alert name="ConfirmPurchasePassword">
3890 <message name="message"> 4062 <message name="message">
3891 此项处ç†å°†è¦: 4063 此项交易将:
3892 4064 [ACTION]
3893[ACTION]
3894 4065
3895你确定愿æ„把交易进行下去å? 4066你确定è¦ç»§ç»­è´­ä¹°å—?
3896请你å†æ¬¡é”®å…¥å¯†ç å¹¶ç‚¹å‡»ç¡®å®šã€‚ 4067请你å†æ¬¡é”®å…¥å¯†ç å¹¶ç‚¹å‡»ç¡®å®šã€‚
3897 </message> 4068 </message>
3898 <option name="ConfirmPurchase"> 4069 <option name="ConfirmPurchase">
@@ -3905,177 +4076,228 @@ allowed above.
3905 <alert name="SetPickLocation"> 4076 <alert name="SetPickLocation">
3906 <message name="message"> 4077 <message name="message">
3907 注æ„: 4078 注æ„:
3908ä½ åªä¸Šä¼ äº†ä½ç½®ï¼Œå…¶ä»–细节还将ä¿æŒåŽŸå€¼. 4079您已ç»æ›´æ–°äº†è¯¥æ”¶è—çš„
4080地å€ï¼Œä½†å…¶ä»–的细节ä»
4081会ä¿ç•™å…¶åŽŸæ¥çš„值。
3909 </message> 4082 </message>
3910 <option name="OK"> 4083 <option name="OK">
3911 OK 4084 确定
3912 </option> 4085 </option>
3913 </alert> 4086 </alert>
3914 <alert name="MoveInventoryFromObject"> 4087 <alert name="MoveInventoryFromObject">
3915 <message name="message"> 4088 <message name="message">
3916 ä½ å·²ç»é€‰æ‹© &apos;ä¸å¯å¤åˆ¶&apos;çš„åºå­˜ä¸œä¸œã€‚ 4089 ä½ å·²ç»é€‰æ‹© ‘ä¸å¯å¤åˆ¶â€™ 的物å“æ¡ç›®ã€‚
3917这些东东将被移出库存,ä¸èƒ½è¢«å¤åˆ¶ã€‚ 4090这些物体将被移入库存,而ä¸æ˜¯è¢«å¤åˆ¶ã€‚
3918 4091
3919确定移动库存东东� 4092确定移动物体�
3920 </message> 4093 </message>
4094 <ignore name="ignore">
4095 从物体内容中移动ä¸å¯å¤åˆ¶çš„æ¡ç›®
4096 </ignore>
3921 <option name="Move"> 4097 <option name="Move">
3922 移动 4098 移动
3923 </option> 4099 </option>
3924 <option name="Don&apos;tMove"> 4100 <option name="Don&apos;tMove">
3925 ç¦æ­¢ç§»åŠ¨ 4101 ä¸è¦ç§»åŠ¨
3926 </option> 4102 </option>
3927 </alert> 4103 </alert>
3928 <alert name="MoveInventoryFromScriptedObject"> 4104 <alert name="MoveInventoryFromScriptedObject">
3929 <message name="message"> 4105 <message name="message">
3930 ä½ å·²ç»é€‰æ‹© &apos;ä¸å¯å¤åˆ¶&apos;的库存东东。 4106 ä½ å·²ç»é€‰æ‹© ‘ä¸å¯å¤åˆ¶â€™ 的物å“æ¡ç›®ã€‚
3931这些东东将被移出库存,ä¸èƒ½è¢«å¤åˆ¶ã€‚ 4107这些物体将被移入库存,而ä¸æ˜¯è¢«å¤åˆ¶ã€‚
3932
3933因为此东东已ç»è¢«è®°å½•,移动它至你的
3934目录å¯èƒ½ä¼šå¯¼è‡´è„šæœ¬æ•…障。
3935 4108
3936确定移动库存东东? 4109由于此物体带有脚本,将这些æ¡ç›®ç§»åŠ¨åˆ°
4110你的库存å¯èƒ½é€ æˆè„šæœ¬æ•…障。
4111
4112确定移动物体�
3937 </message> 4113 </message>
3938 <option name="Move"> 4114 <option name="Move">
3939 移动 4115 移动
3940 </option> 4116 </option>
3941 <option name="Don&apos;tMove"> 4117 <option name="Don&apos;tMove">
3942 ç¦æ­¢ç§»åŠ¨ 4118 ä¸è¦ç§»åŠ¨
3943 </option> 4119 </option>
3944 </alert> 4120 </alert>
3945 <alert name="ClickActionNotPayable"> 4121 <alert name="ClickActionNotPayable">
3946 <message name="message"> 4122 <message name="message">
3947 警告:购买东东选项已设定,但它仅在 4123 警告:å‘物体付款的动作已ç»è®¾å®šï¼Œä½†å®ƒä»…在
3948脚本被添加到金钱支付()情节时æ‰èƒ½ä½¿ç”¨. 4124添加了带有 money() 事件的脚本åŽæ‰èƒ½å·¥ä½œã€‚
3949这是因为居民通常希望钱一旦支付,
3950购买的东东就å¯ä»¥ä½¿ç”¨.
3951 </message> 4125 </message>
4126 <ignore name="ignore">
4127 在物体上设置付款动作但没有 money() 事件时
4128 </ignore>
3952 </alert> 4129 </alert>
3953 <alert name="OpenObjectCannotCopy"> 4130 <alert name="OpenObjectCannotCopy">
3954 <message name="message"> 4131 <message name="message">
3955 在你å…许å¤åˆ¶çš„对象中没有找到项目。 4132 这个物体中没有你能够å¤åˆ¶çš„项目。
3956 </message> 4133 </message>
3957 </alert> 4134 </alert>
3958 <alert name="LoadAccountTransactions"> 4135 <alert name="WebLaunchAccountHistory">
3959 <message name="message"> 4136 <message name="message">
3960 是å¦è·³è‡³[URL] 4137 是å¦å‰å¾€ç¬¬äºŒäººç”Ÿç½‘站查看你的å¸æˆ·è®°å½•ï¼Ÿ
3961查看处ç†ç»†èŠ‚?
3962 </message> 4138 </message>
3963 <option name="OK"> 4139 <ignore name="ignore">
3964 OK 4140 打开æµè§ˆå™¨æŸ¥çœ‹å¸æˆ·è®°å½•
4141 </ignore>
4142 <option name="Gotopage">
4143 打开网页
3965 </option> 4144 </option>
3966 <option name="Cancel"> 4145 <option name="Cancel">
3967 å–消 4146 å–消
3968 </option> 4147 </option>
3969 </alert> 4148 </alert>
3970 <alert name="HelpReportAbuse"> 4149 <alert name="ClickOpenF1Help">
3971 <message name="message"> 4150 <message name="message">
3972 Use this tool to report violations of the Terms of Service and Community Standards. See: 4151 访问第二人生帮助网站å—?
3973http://secondlife.com/corporate/tos.php
3974http://secondlife.com/corporate/cs.php
3975
3976All reported abuses of the Terms of Service and Community Standards
3977are investigated and resolved. You will receive an email informing you
3978of the resolution when it occurs.
3979You can also view the incident resolution on the Police Blotter at:
3980
3981http://secondlife.com/community/blotter.php
3982 </message> 4152 </message>
4153 <ignore name="ignore">
4154 访问第二人生帮助网站时
4155 </ignore>
4156 <option name="Gotopage">
4157 打开页é¢
4158 </option>
4159 <option name="Cancel">
4160 å–消
4161 </option>
4162 </alert>
4163 <alert name="RetryFetchInventoryDescendents">
4164 <message name="message">
4165 从æœåŠ¡å™¨èŽ·å–库存超时。å†è¯•ä¸€æ¬¡å—?
4166 </message>
4167 <ignore name="ignore">
4168 é‡è¯•è¯»å–库存
4169 </ignore>
4170 <option name="Retry">
4171 é‡è¯•
4172 </option>
4173 <option name="Cancel">
4174 å–消
4175 </option>
4176 </alert>
4177 <alert name="ConfirmQuit">
4178 <message name="message">
4179 确定退出?
4180 </message>
4181 <ignore name="ignore">
4182 退出第二人生时
4183 </ignore>
4184 <option name="Quit">
4185 退出
4186 </option>
4187 <option name="Continue">
4188 继续
4189 </option>
3983 </alert> 4190 </alert>
3984 <alert name="HelpReportAbuseEmailLL"> 4191 <alert name="HelpReportAbuseEmailLL">
3985 <message name="message"> 4192 <message name="message">
3986 使用这个工具å¯ä»¥æŠ¥å‘Šè¿åæœåŠ¡å’Œç¤¾åŒºæ ‡å‡†æ¡ä¾‹çš„æ“作。详情请è§ï¼š 4193 使用这个工具å¯ä»¥æŠ¥å‘Šè¿åæœåŠ¡æ¡ä¾‹å’Œç¤¾åŒºæ ‡å‡†æ¡ä¾‹çš„æ“作。详情请è§ï¼š
3987- 4194-
3988http://secondlife.com/corporate/tos.php 4195http://secondlife.com/corporate/tos.php
3989http://secondlife.com/corporate/cs.php 4196http://secondlife.com/corporate/cs.php
3990- 4197-
3991所有对è¿åæœåŠ¡å’Œç¤¾åŒºæ ‡å‡†æ¡ä¾‹çš„报告都会被调查并解决。你会收到一å°é‚®ä»¶æ示你解决的进展情况。åŒæ—¶ï¼Œä½ å¯ä»¥åœ¨çº¿æŸ¥çœ‹ç§©åºæœ¬ï¼ŒåŠæ—¶èŽ·å¾—事件的解决情况。在线秩åºæœ¬çš„地å€æ˜¯: 4198所有对è¿åæœåŠ¡å’Œç¤¾åŒºæ ‡å‡†æ¡ä¾‹çš„报告都会被调查并解决。你会
4199收到一å°é‚®ä»¶æ示你解决的进展情况。åŒæ—¶ï¼Œä½ å¯ä»¥åœ¨çº¿æŸ¥çœ‹äº‹
4200件报告,åŠæ—¶èŽ·å¾—事件的解决情况。在线秩åºæœ¬çš„地å€æ˜¯:
3992- 4201-
3993http://secondlife.com/community/blotter.php 4202http://secondlife.com/support/incidentreport.php
3994 </message> 4203 </message>
3995 </alert> 4204 </alert>
3996 <alert name="HelpReportAbuseEmailEO"> 4205 <alert name="HelpReportAbuseEmailEO">
3997 <message name="message"> 4206 <message name="message">
3998 é‡è¦æ示: 这个报告将ä¸ä¼šåˆ°è¾¾æž—登实验室处,而会å‘é€ç»™ä½ ç›®å‰æ‰€åœ¨åŒºåŸŸçš„主人。 4207 é‡è¦æ示: 这个报告将ä¸ä¼šåˆ°è¾¾æž—登实验室处,而会å‘é€ç»™ä½ 
4208ç›®å‰æ‰€åœ¨åŒºåŸŸçš„主人。
3999- 4209-
4000作为一项针对于居民和游客的æœåŠ¡ï¼Œä½ æ‰€åœ¨è¿™å—区域的主人有责任接å—所有æ¥è‡ªè¿™å—区域的问题报告,并有责任解决它们。林登实验室将ä¸ä¼šè°ƒæŸ¥ä½ ä»Žæ‰€åœ¨åœ°ç‚¹æ交的问题报告。这å—区域的主人将éµå®ˆåœŸåœ°å¥‘约,解决一些基于此å—区域的本地规则的报告。(查看土地土地契约,å¯ä»¥è¿›å…¥æ¸¸æˆ 4210作为一项针对于居民和游客的æœåŠ¡ï¼Œä½ æ‰€åœ¨è¿™å—区域的主人有责任
4211接å—所有æ¥è‡ªè¿™å—区域的问题报告,并有责任解决它们。
4212林登实验室将ä¸ä¼šè°ƒæŸ¥ä½ ä»Žæ‰€åœ¨åœ°ç‚¹æ交的问题报告。
4213
4214è¿™å—区域的主人将éµå®ˆåŸºäºŽåœŸåœ°å¥‘约所概述的当地规则,解决报告。
4215(ä½ å¯ä»¥ä»Žä¸–ç•Œèœå•ä¸­é€‰æ‹© “关于土地†æ¥æŸ¥çœ‹å¥‘约。)
4216
4217该报告的解决结果仅对该区域有效;居民对第二人生其他地方的使用
4218å°†ä¸ä¼šå—该报告结果的影å“。åªæœ‰æž—登实验室能够é™åˆ¶è®¿é—®æ•´ä¸ª
4219第二人生。
4001 </message> 4220 </message>
4002 </alert> 4221 </alert>
4003 <alert name="HelpReportBug"> 4222 <alert name="HelpReportBug">
4004 <message name="message"> 4223 <message name="message">
4005 Use this tool to report technical features that do not perform 4224 这个工具åªç”¨æ¥æŠ¥å‘Šä¸Žæ述或预期工作ä¸ä¸€è‡´çš„技术功能。请尽能æ供详细资料。
4006as described or expected. All bug reports are investigated and 4225你也å¯ä»¥å›žå¤è‡ªåŠ¨ç¡®è®¤ç”µå­é‚®ä»¶æ¥ä¸ºä½ çš„报告添加更多细节。
4007resolved. No email response will be sent, you may reply to the 4226
4008auto-response email to add more details to your report. 4227所有的错误都会被追查并评估。ä¸ä¼šæœ‰ä»»ä½•ç”µå­é‚®ä»¶å›žå¤ã€‚
4009If you are having a technical difficulty, please contact Support at: 4228
4010 4229如果你é‡åˆ°äº†æŠ€æœ¯éšœç¢ï¼Œè¯·ä¸Žæ”¯æŒå–å¾—è”系:
4230
4011http://secondlife.com/community/support.php 4231http://secondlife.com/community/support.php
4232
4233注æ„:ä¸å®Œæ•´çš„报告将ä¸ä¼šè¢«è°ƒæŸ¥ã€‚
4012 </message> 4234 </message>
4013 </alert> 4235 </alert>
4014 <alert name="HelpReportAbuseSelectCategory"> 4236 <alert name="HelpReportAbuseSelectCategory">
4015 <message name="message"> 4237 <message name="message">
4016 请为次辱骂事件报告选择一项分类。 4238 请为此次ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šé€‰æ‹©ä¸€é¡¹åˆ†ç±»ã€‚
4017 4239 选择一个分类å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šã€‚
4018选择一个分类å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†è¾±éª‚事件。
4019 </message> 4240 </message>
4020 </alert> 4241 </alert>
4021 <alert name="HelpReportBugSelectCategory"> 4242 <alert name="HelpReportBugSelectCategory">
4022 <message name="message"> 4243 <message name="message">
4023 Please select a category for this bug. 4244 请为此次错误报告选择一项分类。
4024 4245 选择一个分类å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†é”™è¯¯æŠ¥å‘Šã€‚
4025Selecting a category helps us file and process bug reports.
4026 </message> 4246 </message>
4027 </alert> 4247 </alert>
4028 <alert name="HelpReportAbuseAbuserNameEmpty"> 4248 <alert name="HelpReportAbuseAbuserNameEmpty">
4029 <message name="message"> 4249 <message name="message">
4030 请输入辱骂者的åå­—. 4250 请输入辱骂者的å字。
4031 4251输入正确的æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šã€‚
4032输入正确的æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†è¾±éª‚事件。
4033 </message> 4252 </message>
4034 </alert> 4253 </alert>
4035 <alert name="HelpReportAbuseAbuserLocationEmpty"> 4254 <alert name="HelpReportAbuseAbuserLocationEmpty">
4036 <message name="message"> 4255 <message name="message">
4037 请输入辱骂事件å‘生的地å€ã€‚ 4256 请输入ä¸è‰¯è¡Œä¸ºå‘生的地å€ã€‚
4038 4257
4039输入正确的æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†è¾±éª‚事件。 4258输入正确的æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šã€‚
4040 </message> 4259 </message>
4041 </alert> 4260 </alert>
4042 <alert name="HelpReportAbuseSummaryEmpty"> 4261 <alert name="HelpReportAbuseSummaryEmpty">
4043 <message name="message"> 4262 <message name="message">
4044 请输入已å‘生的辱骂事件的概括。 4263 请输入ä¸è‰¯è¡Œä¸ºçš„概况。
4045 4264
4046输入对事件的正确æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†è¾±éª‚事件。 4265输入对事件的正确æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šã€‚
4047 </message> 4266 </message>
4048 </alert> 4267 </alert>
4049 <alert name="HelpReportBugSummaryEmpty"> 4268 <alert name="HelpReportBugSummaryEmpty">
4050 <message name="message"> 4269 <message name="message">
4051 Please enter a summary of the bug. 4270 请输入错误概况。
4052 4271
4053Entering an accurate summary helps us file and process bug reports. 4272输入对事件的正确æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†é”™è¯¯æŠ¥å‘Šã€‚
4054 </message> 4273 </message>
4055 </alert> 4274 </alert>
4056 <alert name="HelpReportAbuseDetailsEmpty"> 4275 <alert name="HelpReportAbuseDetailsEmpty">
4057 <message name="message"> 4276 <message name="message">
4058 请键入已å‘生的辱骂事件的详细æè¿°.请尽é‡è¯¦ç»†æ述,包括你报告事件的å称和细节。 4277 请键入ä¸è‰¯è¡Œä¸ºçš„详细æ述。请尽é‡å…·ä½“地æ述,包括å字和报告事件细节。
4059 4278
4060 输入对事件的正确æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†è¾±éª‚事件。 4279 输入对事件的正确æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†è¾±éª‚事件。
4061 </message> 4280 </message>
4062 </alert> 4281 </alert>
4063 <alert name="HelpReportBugDetailsEmpty"> 4282 <alert name="HelpReportBugDetailsEmpty">
4064 <message name="message"> 4283 <message name="message">
4065 Please enter a detailed description of the bug. 4284 请键入错误的详细æ述。
4066Be as specific as you can, including steps to reproduce the bug 4285请尽é‡å…·ä½“地æ述,å¯èƒ½çš„è¯åŒ…括如何å†çŽ°é”™è¯¯çš„步骤。
4067if possible.
4068 4286
4069Entering an accurate description helps us file and process bug reports. 4287输入对事件的正确æè¿°å¯ä»¥å¸®åŠ©æˆ‘们归档和处ç†é”™è¯¯æŠ¥å‘Šã€‚
4070 </message> 4288 </message>
4071 </alert> 4289 </alert>
4072 <alert name="HelpReportAbuseContainsCopyright"> 4290 <alert name="HelpReportAbuseContainsCopyright">
4073 <message name="message"> 4291 <message name="message">
4074 亲爱的居民, 4292 亲爱的居民,
4293如果您将è¦æŠ¥å‘ŠçŸ¥è¯†äº§æƒä¾µçŠ¯ï¼Œè¯·ç¡®è®¤æ‚¨é€šè¿‡æ­£ç¡®çš„æ–¹å¼æŠ¥å‘Š:
4294
4295(1) ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šæ‰‹ç»­ã€‚您å¯ä»¥æ交一份ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šï¼Œå¦‚果您相信æŸä½å±…民正在利用第二人生许å¯ç³»ç»Ÿçš„æ¼æ´žï¼Œä¾‹å¦‚使用 CopyBot 或者类似的å¤åˆ¶å·¥å…·ï¼Œæ¥ä¾µçŠ¯çŸ¥è¯†äº§æƒã€‚ä¸è‰¯è¡Œä¸ºè°ƒæŸ¥å°ç»„负责对于è¿å第二人生社区标准或æœåŠ¡æ¡æ¬¾çš„行为进行调查以åŠå®žè¡Œç›¸åº”的惩罚措施。但是,ä¸è‰¯è¡Œä¸ºè°ƒæŸ¥å°ç»„ä¸è´Ÿè´£ä»Žä¸–界中移除内容,并且ä¸ä¼šå¯¹è¿™ç±»è¯·æ±‚作出回应。
4075 4296
4076关于版æƒä¾µå®³çš„报告åªèƒ½é€šè¿‡ä¸‹åˆ—网页上http://secondlife.com/corporate/dmca.phpæè¿°çš„æ–¹å¼æ交. 4297(2) DMCA (æ•°å­—åƒå¹´ç‰ˆæƒå定) 或者说内容移除手续。 è¦è¯·æ±‚从第二人生中去除内容,您*å¿…é¡»*æ交一份按我们 DMCA æ¡ä¾‹ http://secondlife.com/corporate/dmca.php 中所指出的,有效的侵æƒé€šçŸ¥ã€‚
4077 4298
4078关于版æƒä¾µå®³çš„报告,如果通过&apos;辱骂报告&apos;æ–¹å¼æ交,将被系统自动忽视。如果您的报告和版æƒä¾µå®³æ— å…³ï¼Œè¯·å…³é—­æ­¤çª—å£ï¼Œå¹¶å®Œæˆæ交您的报告。 4299如果您ä»å¸Œæœ›ç»§ç»­ä¸è‰¯è¡Œä¸ºçš„报告,请关闭此窗å£ï¼Œå¹¶å®Œæˆæ交您的报告。
4300您å¯èƒ½éœ€è¦é€‰æ‹© ‘CopyBot 或利用æ¼æ´žâ€™ 这一特定分类。
4079 4301
4080感谢您的åˆä½œ, 4302感谢您的åˆä½œ,
4081 4303
@@ -4084,55 +4306,558 @@ Entering an accurate description helps us file and process bug reports.
4084 </alert> 4306 </alert>
4085 <alert name="FailedRequirementsCheck"> 4307 <alert name="FailedRequirementsCheck">
4086 <message name="message"> 4308 <message name="message">
4087 以下è¦æ±‚的内容是丢失于[FLOATER]: 4309 以下必须的部件丢失于 [FLOATER]:
4088[COMPONENTS] 4310[COMPONENTS]
4089 </message> 4311 </message>
4090 </alert> 4312 </alert>
4091 <alert name="ReplaceAttachment" title="替æ¢å·²ç»å­˜åœ¨çš„附件"> 4313 <alert name="ReplaceAttachment" title="替æ¢å·²ç»å­˜åœ¨çš„附件">
4092 <message name="message"> 4314 <message name="message">
4093 这里已ç»æœ‰ä¸€ä»¶ä¸œä¸œé™„在了你的身体上。 你是å¦è¦ç”¨æ‰€é€‰ä¸œä¸œæ›¿ä»£å®ƒï¼Ÿ 4315 å·²ç»æœ‰ä¸€ä¸ªç‰©ä½“附在身体的这个部ä½ä¸Šäº†ã€‚ 你是å¦è¦ç”¨æ‰€é€‰ç‰©ä½“替代它?
4094 </message> 4316 </message>
4095 <option ignore="自动æ¢ä½" name="Yes"> 4317 <ignore name="ignore">
4318 替æ¢å·²æœ‰çš„附件时
4319 </ignore>
4320 <option ignore="自动替æ¢" name="Yes">
4096 是 4321 是
4097 </option> 4322 </option>
4098 <option ignore="永远ä¸æ¢ä½" name="No"> 4323 <option ignore="永远ä¸æ›¿æ¢" name="No">
4099 å¦ 4324 å¦
4100 </option> 4325 </option>
4101 </alert> 4326 </alert>
4102 <alert name="BusyModePay" title="ç¹å¿™æ¨¡å¼è­¦å‘Š"> 4327 <alert name="BusyModePay" title="忙碌模å¼è­¦å‘Š">
4103 <message name="message"> 4328 <message name="message">
4104 你在忙碌模å¼ä¸­, è¿™æ„味ç€ä½ å°†ä¸èƒ½ 4329 你在忙碌模å¼ä¸­, è¿™æ„味ç€ä½ å°†ä¸èƒ½
4105æ”¶åˆ°è¿™æ¬¡äº¤æ˜“ä¸­ä»¥æ‰¾é›¶å½¢å¼ 4330收到这次交易中对方æ供的任何物å“。
4106æ供的任何物å“。
4107 4331
4108你是å¦æ„¿æ„在完æˆå¤„ç†å‰ 4332你是å¦æ„¿æ„在完æˆäº¤æ˜“å‰
4109退出ç¹å¿™æ¨¡å¼? 4333退出忙碌模å¼?
4110 </message> 4334 </message>
4111 <option ignore="总使用忙碌模å¼" name="Yes"> 4335 <ignore name="ignore">
4336 忙碌模å¼ä¸­ä»˜æ¬¾ç»™ä»–人或物体时
4337 </ignore>
4338 <option ignore="总离开忙碌模å¼" name="Yes">
4112 是 4339 是
4113 </option> 4340 </option>
4114 <option ignore="从ä¸ä½¿ç”¨å¿™ç¢Œæ¨¡å¼" name="No"> 4341 <option ignore="从ä¸ç¦»å¼€å¿™ç¢Œæ¨¡å¼" name="No">
4115 å¦ 4342 å¦
4116 </option> 4343 </option>
4117 </alert> 4344 </alert>
4118 <alert name="ConfirmEmptyTrash"> 4345 <alert name="ConfirmEmptyTrash">
4119 <message name="message"> 4346 <message name="message">
4120 你确定è¦æ°¸ä¹…性删除垃圾文件夹里的内容å—? 4347 你确定è¦æ°¸ä¹…性删除垃圾箱里的内容å—?
4121 </message> 4348 </message>
4349 <ignore name="ignore">
4350 清空库存垃圾箱文件夹时
4351 </ignore>
4122 <option name="Yes"> 4352 <option name="Yes">
4123 使得,我è¦åˆ é™¤ 4353 是的,删除
4124 </option> 4354 </option>
4125 <option name="No"> 4355 <option name="No">
4126 ä¸æ˜¯ 4356 ä¸æ˜¯
4127 </option> 4357 </option>
4128 </alert> 4358 </alert>
4359 <alert name="ConfirmClearBrowserCache">
4360 <message name="message">
4361 确实è¦æ¸…除æµè§ˆå™¨ç¼“å­˜å—?
4362 </message>
4363 <option name="Yes">
4364 清除
4365 </option>
4366 <option name="No">
4367 å–消
4368 </option>
4369 </alert>
4370 <alert name="ConfirmClearCookies">
4371 <message name="message">
4372 确实è¦æ¸…除 Cookies å—?
4373 </message>
4374 <option name="Yes">
4375 清除
4376 </option>
4377 <option name="No">
4378 å–消
4379 </option>
4380 </alert>
4381 <alert name="ConfirmClearMediaUrlList">
4382 <message name="message">
4383 确实è¦æ¸…除ä¿å­˜çš„ URL 列表å—?
4384 </message>
4385 <option name="Yes">
4386 清除
4387 </option>
4388 <option name="No">
4389 å–消
4390 </option>
4391 </alert>
4129 <alert name="CopySLURL"> 4392 <alert name="CopySLURL">
4130 <message name="message"> 4393 <message name="message">
4131 以下链接已ç»è¢«å¤åˆ¶åˆ°ä½ çš„剪贴æ¿ä¸­: 4394 以下链接已ç»è¢«å¤åˆ¶åˆ°ä½ çš„剪贴æ¿ä¸­:
4132 4395
4133 [SLURL] 4396 [SLURL]
4134 4397
4135 把它加入到网页里,å¯ä»¥è®©åˆ«äººæ›´å®¹æ˜“的进入这个地点,或者直接拉入æµè§ˆå™¨çš„地å€æ ä¸­ï¼Œè®©è‡ªå·±è¿›å…¥è¿™ä¸ªåœ°ç‚¹ã€‚ 4398 把它加入到网页里,让别人更容易的访问这个地点,
4399 或者直接粘贴到æµè§ˆå™¨çš„地å€æ ä¸­è‡ªå·±å°è¯•ä¸€ä¸‹ã€‚
4400 </message>
4401 </alert>
4402 <alert name="ConfirmEmptyLostAndFound">
4403 <message name="message">
4404 你确定è¦æ°¸ä¹…性删除失物招领文件夹里的内容å—?
4405 </message>
4406 <ignore name="ignore">
4407 清空库存失物招领文件夹时
4408 </ignore>
4409 <option name="Yes">
4410 Yes
4411 </option>
4412 <option name="No">
4413 No
4414 </option>
4415 </alert>
4416 <alert name="GraphicsPreferencesHelp">
4417 <message name="message">
4418 该é¢æ¿æŽ§åˆ¶çª—å£å°ºå¯¸å’Œåˆ†è¾¨çŽ‡ï¼Œä»¥åŠå®¢æˆ·ç«¯å›¾å½¢è´¨é‡ã€‚ä½ å¯ä»¥é€‰æ‹©å››ç§å›¾åƒç­‰çº§ï¼šä½Žã€ä¸­ã€é«˜å’Œæžé«˜ã€‚你也å¯ä»¥é€‰æ‹©è‡ªå®šä¹‰ï¼Œæ¥æ›´æ”¹ä»¥ä¸‹çš„设置:
4419
4420ç€è‰²å™¨ï¼šå¯ç”¨æˆ–ç¦ç”¨å„ç§åƒç´ ç€è‰²å™¨ã€‚
4421
4422å射细节:设置å¯ä»¥å射的物体类型。
4423
4424化身渲染:设置影å“客户端渲染化身的选项。
4425
4426æ绘è·ç¦»: å½±å“离你的视角多远的物体将会被渲染在场景中。
4427
4428最大粒å­æ•°:设置你在å±å¹•ä¸ŠåŒæ—¶å¯è§ç²’å­çš„最大数目。
4429
4430åŽæœŸå¤„ç†è´¨é‡ï¼šè®¾ç½®å…‰è¾‰æ¸²æŸ“的分辨率。
4431
4432模型细节: 设置渲染å„类物体时的细节,或者说使用三角形的数目。较高的值渲染时间较长,但会令物体显得更具细节。
4433
4434光照细节: 选择你想è¦æ¸²æŸ“什么类型的ç¯å…‰ã€‚
4435
4436地é¢ç»†èŠ‚: 选择地é¢æ质细节é‡ã€‚
4437 </message>
4438 </alert>
4439 <alert name="WLSavePresetAlert">
4440 <message name="message">
4441 你希望覆盖ä¿å­˜çš„预设å—?
4442 </message>
4443 <option name="Save">
4444 ä¿å­˜
4445 </option>
4446 <option name="Cancel">
4447 å–消
4448 </option>
4449 </alert>
4450 <alert name="WLDeletePresetAlert">
4451 <message name="message">
4452 你希望删除 [SKY] �
4453 </message>
4454 <option name="Delete">
4455 删除
4456 </option>
4457 <option name="Cancel">
4458 å–消
4459 </option>
4460 </alert>
4461 <alert name="WLNoEditDefault">
4462 <message name="message">
4463 ä½ ä¸èƒ½ç¼–辑或删除默认预设。
4464 </message>
4465 </alert>
4466 <alert name="WLMissingSky">
4467 <message name="message">
4468 该日期循环文件å‚考了一个ä¸å­˜åœ¨çš„天空文件: [SKY].
4469 </message>
4470 </alert>
4471 <alert name="PPSaveEffectAlert">
4472 <message name="message">
4473 åŽå¤„ç†æ•ˆæžœå·²å­˜åœ¨ã€‚还是想è¦è¦†ç›–它å—?
4474 </message>
4475 <option name="Save">
4476 是
4477 </option>
4478 <option name="Cancel">
4479 å¦
4480 </option>
4481 </alert>
4482 <alert name="HelpEditSky">
4483 <message name="message">
4484 编辑 WindLight 滑动æ¡åˆ›å»ºå’Œä¿å­˜å¤©ç©ºè®¾å®šã€‚
4485 </message>
4486 </alert>
4487 <alert name="HelpEditDayCycle">
4488 <message name="message">
4489 选择一天之内出现哪些天空。
4490 </message>
4491 </alert>
4492 <alert name="EnvSettingsHelpButton">
4493 <message name="message">
4494 这些设置调节环境在您的电脑上看起æ¥æ€Žä¹ˆæ ·ã€‚您的显å¡éœ€è¦æ”¯æŒå¤§æ°”染色器æ‰èƒ½åˆ©ç”¨å…¨éƒ¨çš„设置。
4495
4496调节 &quot;时间&quot; 滑å—æ¥åœ¨æœ¬åœ°æ”¹å˜ä¸€æ—¥çš„时间。
4497
4498调节 &quot;云层覆盖&quot; 滑å—æ¥æŽ§åˆ¶äº‘彩的多少。
4499
4500选择 &quot;水色&quot; 改å˜æ°´çš„颜色。
4501
4502调节 &quot;水雾&quot; 控制水下的雾的浓淡。
4503
4504点击 &quot;使用地产时间&quot; 使时间返回到区域的时间并与之åŒæ­¥ã€‚
4505
4506点击 &quot;高级天空选项&quot; æ¥æ‰“开较高级天空设置的编辑器。
4507
4508点击 &quot;高级水é¢é€‰é¡¹&quot; æ¥æ‰“开较高级水é¢è®¾ç½®çš„编辑器。
4509 </message>
4510 </alert>
4511 <alert name="HelpDayCycle">
4512 <message name="message">
4513 日夜周期编辑器给予你对第二人生日夜循环中天空的控制。这也是基础环境编辑器的时间滑å—所使用的周期。
4514
4515日夜周期编辑器的基础是关键帧。它们是带有天空预设的节点 (在时间图上以ç°è‰²çš„点表示)。当时间æµé€ï¼ŒWindLight 的天空 也会通过过在这些关键帧之间æ’值而产生å˜åŒ–。
4516
4517在时间线之上的黄色箭头表示您当å‰æ‰€çœ‹åˆ°å¤©ç©ºçš„时间。拖动它å¯ä»¥çœ‹åˆ°æ‚¨çš„天空将如何å˜åŒ–。您å¯ä»¥æŒ‰å³è¾¹çš„添加键和删除键按钮æ¥æ·»åŠ æˆ–删除关键帧。
4518
4519您å¯ä»¥é€šè¿‡åœ¨æ—¶é—´çº¿ä¸Šæ‹–动关键帧æ¥æ”¹å˜å…¶æ—¶é—´ä½ç½®ï¼Œä¹Ÿå¯ä»¥ç›´æŽ¥åœ¨å…³é”®å¸§è®¾ç½®ä¸­ç›´æŽ¥è®¾ç½®å®ƒçš„值。在关键帧设置中,您å¯ä»¥å°†å…³é”®å¸§ä¸Žå…¶ç›¸åº”çš„ WindLight 预设è”系起æ¥ã€‚
4520
4521周期长度决定一天的时间长短。将这个值设得较低 (例如,2 分钟) æ„味ç€æ‚¨æ•´ä¸ª 24 å°æ—¶çš„时间线完æˆå˜åŒ–的时间将åªæœ‰å®žé™…的两分钟ï¼ä¸€æ—¦æ‚¨å¯¹æ—¶é—´çº¿å’Œå…³é”®å¸§å‘¨æœŸæ»¡æ„,使用播放和åœæ­¢æŒ‰é’®æ¥é¢„览结果。切记 — 您也å¯ä»¥æ‹–动黄色的时间指示箭头观看天空å˜åŒ–。使用使用地产时间按钮将使您的全天长度与时间和地产的日夜周期åŒæ­¥ã€‚
4522
4523当您对您的日夜周期满æ„时,您å¯ä»¥ä½¿ç”¨ä¿å­˜æµ‹è¯•æ—¥å’Œè¯»å–测试日按钮将其ä¿å­˜ã€‚请注æ„,我们现在åªå…许一个日夜周期。
4524 </message>
4525 </alert>
4526 <alert name="HelpBlueHorizon">
4527 <message name="message">
4528 使用 红色/绿色/è“色 (RGB) 滑å—æ¥ç¼–辑天空的颜色。您å¯ä»¥ç”¨å¼ºåº¦ (I) 滑å—æ¥åŒæ—¶ç§»åŠ¨çº¢ç»¿è“滑å—。
4529 </message>
4530 </alert>
4531 <alert name="HelpHazeHorizon">
4532 <message name="message">
4533 云雾地平是调节整个场景æ›å…‰æœ€æœ‰ç”¨çš„å‚数。它å¯ä»¥æœ‰æ•ˆåœ°æ¨¡ä»¿å¤šç§æ›å…‰è®¾å®šï¼Œ
4534例如雪天白茫茫一片的场景以åŠæ›å…‰ä¸è¶³è¾ƒé˜´æš—的场景。
4535 </message>
4536 </alert>
4537 <alert name="HelpBlueDensity">
4538 <message name="message">
4539 è“色浓度影å“整个天空和雾的饱和度。如果您将强度 (I) 滑å—å‘å³ç§»åŠ¨ï¼Œé¢œè‰²å°†å˜å¾—更亮ã€æ›´é²œè‰³ã€‚如果您将其移动到最左边,颜色将å˜å¾—暗淡,直到最åŽæˆä¸ºé»‘白。如果您想è¦ç²¾ç»†çš„调节天空的颜色平衡,您å¯ä»¥ä½¿ç”¨çº¢è‰²/绿色/è“色 (RGB) 滑å—å•ç‹¬æŽ§åˆ¶å„个颜色的饱和度。
4540 </message>
4541 </alert>
4542 <alert name="HelpHazeDensity">
4543 <message name="message">
4544 云雾浓度控制大气中ç°è’™è’™é›¾éœ¾çš„é‡ã€‚在模拟å«æœ‰å¤§é‡çƒŸé›¾å’Œäººé€ æ±¡æŸ“物的场景时很有效。也适于模拟雾和霭。
4545 </message>
4546 </alert>
4547 <alert name="HelpDensityMult">
4548 <message name="message">
4549 浓度乘数å¯ä»¥ç”¨æ¥å½±å“整个的大气浓度。在较低的设定上,它å¯ä»¥è¡¨çŽ°å‡º “稀薄空气†的感å—,而较高的设定将会创造厚é‡è€Œæµ“的效果。
4550 </message>
4551 </alert>
4552 <alert name="HelpDistanceMult">
4553 <message name="message">
4554 调节 WindLight çš„è·ç¦»æ•ˆæžœã€‚设置为零将等åŒäºŽå…³é—­ WindLight 对地é¢å’Œç‰©ä½“的作用。大于 1 的值模拟比实际更深的è·ç¦»ï¼Œäº§ç”Ÿæ›´æµ“的气象效果。
4555 </message>
4556 </alert>
4557 <alert name="HelpMaxAltitude">
4558 <message name="message">
4559 最大高度调节 WindLight 进行气象计算时所作的高度计算。 在å‚晚时分时,用它æ¥è°ƒèŠ‚æ—¥è½çš„ ‘深度’ 很有作用。
4560 </message>
4561 </alert>
4562 <alert name="HelpSunlightColor">
4563 <message name="message">
4564 调节场景中的直射光æºçš„亮度和颜色。
4565 </message>
4566 </alert>
4567 <alert name="HelpSunAmbient">
4568 <message name="message">
4569 调节场景中的环境光亮度和颜色。
4570 </message>
4571 </alert>
4572 <alert name="HelpSunGlow">
4573 <message name="message">
4574 尺寸滑å—控制太阳的尺寸。
4575èšç„¦æ»‘å—调节太阳在天空中模糊的程度。
4576 </message>
4577 </alert>
4578 <alert name="HelpSceneGamma">
4579 <message name="message">
4580 调节å±å¹•çš„明暗分布。
4581 </message>
4582 </alert>
4583 <alert name="HelpStarBrightness">
4584 <message name="message">
4585 调节天空中星星的亮度。
4586 </message>
4587 </alert>
4588 <alert name="HelpTimeOfDay">
4589 <message name="message">
4590 调节太阳在天空中的ä½ç½®ã€‚
4591类似高度。
4592 </message>
4593 </alert>
4594 <alert name="HelpEastAngle">
4595 <message name="message">
4596 调节太阳在天空中的ä½ç½®ã€‚
4597类似方ä½è§’。
4598 </message>
4599 </alert>
4600 <alert name="HelpCloudColor">
4601 <message name="message">
4602 编辑云的颜色。一般æ¥è¯´ï¼Œ
4603建议还是白一点好,ä¸è¿‡å˜›ï¼Œ
4604想è¦æœ‰ç‚¹ä¹è¶£å½“然也没问题。
4605 </message>
4606 </alert>
4607 <alert name="HelpCloudDetail">
4608 <message name="message">
4609 控制覆盖在在主云层图åƒä¹‹ä¸Šçš„细节图。X å’Œ Y 控制它的ä½ç½®ã€‚ D (密度) 控制云看起æ¥æ˜¯è“¬æ¾è¿˜æ˜¯ç¦»æ•£ã€‚
4610 </message>
4611 </alert>
4612 <alert name="HelpCloudDensity">
4613 <message name="message">
4614 å¯ä»¥ç”¨ X å’Œ Y 滑å—控制云层的ä½ç½®ï¼ŒD (密度) 控制云层的密度。
4615 </message>
4616 </alert>
4617 <alert name="HelpCloudCoverage">
4618 <message name="message">
4619 控制云覆盖天空的é‡ã€‚
4620 </message>
4621 </alert>
4622 <alert name="HelpCloudScale">
4623 <message name="message">
4624 控制云层在穹顶上的大å°ã€‚
4625 </message>
4626 </alert>
4627 <alert name="HelpCloudScrollX">
4628 <message name="message">
4629 控制云层在 X 轴移动的速度。
4630 </message>
4631 </alert>
4632 <alert name="HelpCloudScrollY">
4633 <message name="message">
4634 控制云层在 Y 轴移动的速度。
4635 </message>
4636 </alert>
4637 <alert name="HelpClassicClouds">
4638 <message name="message">
4639 选å–该框以在渲染 WindLight 的云层åŒæ—¶æ¸²æŸ“第二人生的旧云层。
4640 </message>
4641 </alert>
4642 <alert name="HelpWaterFogColor">
4643 <message name="message">
4644 控制水雾颜色。
4645 </message>
4646 </alert>
4647 <alert name="HelpWaterFogDensity">
4648 <message name="message">
4649 控制水雾浓度åŠæ°´ä¸‹è§†é‡ŽèŒƒå›´ã€‚
4650 </message>
4651 </alert>
4652 <alert name="HelpUnderWaterFogMod">
4653 <message name="message">
4654 修饰水雾浓度指数的效果,控制水下视野范围。
4655 </message>
4656 </alert>
4657 <alert name="HelpWaterGlow">
4658 <message name="message">
4659 控制水é¢å‘光的范围。
4660 </message>
4661 </alert>
4662 <alert name="HelpWaterNormalScale">
4663 <message name="message">
4664 控制组æˆæ°´é¢çš„三个å°æ³¢çš„缩放。
4665 </message>
4666 </alert>
4667 <alert name="HelpWaterFresnelScale">
4668 <message name="message">
4669 控制ä¸åŒè§’度åå°„çš„å…‰é‡å¤šå°‘。
4670 </message>
4671 </alert>
4672 <alert name="HelpWaterFresnelOffset">
4673 <message name="message">
4674 控制å光强度。
4675 </message>
4676 </alert>
4677 <alert name="HelpWaterScaleAbove">
4678 <message name="message">
4679 控制水é¢ä¸Šæ”¾æŠ˜å°„å…‰é‡çš„大å°ã€‚
4680 </message>
4681 </alert>
4682 <alert name="HelpWaterScaleBelow">
4683 <message name="message">
4684 控制水é¢ä¸‹æ–¹æŠ˜å°„å…‰é‡çš„大å°ã€‚
4685 </message>
4686 </alert>
4687 <alert name="HelpWaterBlurMultiplier">
4688 <message name="message">
4689 控制水波和折射混åˆçš„æ–¹å¼ã€‚
4690 </message>
4691 </alert>
4692 <alert name="HelpWaterNormalMap">
4693 <message name="message">
4694 改å˜å†³å®šæ°´é¢åå°„/折射的法å‘贴图。
4695 </message>
4696 </alert>
4697 <alert name="HelpWaterWave1">
4698 <message name="message">
4699 控制较大尺寸的法å‘贴图在 X å’Œ Y æ–¹å‘上移动的速度。
4700 </message>
4701 </alert>
4702 <alert name="HelpWaterWave2">
4703 <message name="message">
4704 控制较å°å°ºå¯¸çš„法å‘贴图在 X å’Œ Y æ–¹å‘上移动的速度。
4705 </message>
4706 </alert>
4707 <alert name="NewSkyPreset">
4708 <message name="message">
4709 给新的天空å–一个å字。
4710 </message>
4711 <editline name="editline">
4712 新设定
4713 </editline>
4714 <option name="OK">
4715 确定
4716 </option>
4717 <option name="Cancel">
4718 å–消
4719 </option>
4720 </alert>
4721 <alert name="ExistsSkyPresetAlert">
4722 <message name="message">
4723 预设已存在ï¼
4724 </message>
4725 </alert>
4726 <alert name="NewWaterPreset">
4727 <message name="message">
4728 给新的水é¢å–一个å字。
4729 </message>
4730 <editline name="editline">
4731 新设定
4732 </editline>
4733 <option name="OK">
4734 确定
4735 </option>
4736 <option name="Cancel">
4737 å–消
4738 </option>
4739 </alert>
4740 <alert name="ExistsWaterPresetAlert">
4741 <message name="message">
4742 预设已存在ï¼
4743 </message>
4744 </alert>
4745 <alert name="WaterNoEditDefault">
4746 <message name="message">
4747 您ä¸èƒ½æ›´æ”¹æˆ–删除默认预设。
4748 </message>
4749 </alert>
4750 <alert name="ChatterBoxSessionStartError">
4751 <message name="message">
4752 无法与 [RECIPIENT] 开始会è¯ã€‚
4753[REASON]
4754 </message>
4755 <option name="OK">
4756 确定
4757 </option>
4758 </alert>
4759 <alert name="ChatterBoxSessionStartNotVerified">
4760 <message name="message">
4761 å¯åŠ¨ä¸Ž [RECIPIENT] çš„èŠå¤©ä¼šè¯æ—¶å‡ºé”™ã€‚
4762[REASON]
4763 </message>
4764 <option name="OK">
4765 确定
4766 </option>
4767 </alert>
4768 <alert name="ChatterBoxSessionEventError">
4769 <message name="message">
4770 [EVENT]
4771[REASON]
4772 </message>
4773 <option name="OK">
4774 确定
4775 </option>
4776 </alert>
4777 <alert name="ForceCloseChatterBoxSession">
4778 <message name="message">
4779 您与 [NAME] çš„èŠå¤©ä¼šè¯å¿…须关闭。
4780[REASON]
4781 </message>
4782 <option name="OK">
4783 确定
4784 </option>
4785 </alert>
4786 <alert name="Cannot_Purchase_an_Attachment">
4787 <message name="message">
4788 物å“作为附件时无法购买。
4789 </message>
4790 </alert>
4791 <alert name="DebitPermissionDetails" title="About Requests for the Debit Permission">
4792 <message name="message">
4793 授予该请求将给予脚本æŒç»­çš„从您的å¸æˆ·ä¸­æå–æž—ç™»å¸ (L$) 的许å¯ã€‚è¦å–消这项许å¯ï¼Œç‰©ä½“的拥有者必须删除物体或é‡ç½®ç‰©ä½“中的脚本。
4794 </message>
4795 <option name="OK">
4796 确定
4797 </option>
4798 </alert>
4799 <alert name="AutoWearNewClothing">
4800 <message name="message">
4801 希望自动穿ç€æ‚¨åˆ›å»ºçš„衣物å—?
4802 </message>
4803 <ignore name="ignore">
4804 自动穿ç€æ–°è¡£ç‰©
4805 </ignore>
4806 <option name="Yes">
4807 是
4808 </option>
4809 <option name="No">
4810 å¦
4811 </option>
4812 </alert>
4813 <alert name="BadURL">
4814 <message name="message">
4815 第二人生ä¸çŸ¥é“怎么处ç†è¿™ä¸ªé“¾æŽ¥:
4816 [SLURL]
4817大部分链接åƒæ˜¯è¿™æ ·çš„:
4818
4819secondlife:///app/agent/ae1c96b8-9bca-4e5b-9418-80e5397a2b41/about
4820
4821请检查拼写å†è¯•ä¸€æ¬¡ã€‚
4822 </message>
4823 </alert>
4824 <alert name="NotAgeVerified">
4825 <message name="message">
4826 您需è¦éªŒè¯å¹´é¾„æ‰èƒ½è¿›å…¥è¿™ä¸ªåœ°å—。
4827您希望访问第二人生网站验è¯æ‚¨çš„年龄å—?
4828
4829[_URL]
4830 </message>
4831 <ignore name="ignore">
4832 警告没有验è¯å¹´é¾„æ—¶
4833 </ignore>
4834 <option name="Yes">
4835 是
4836 </option>
4837 <option name="No">
4838 å¦
4839 </option>
4840 </alert>
4841 <alert name="无法进入地å—: 支付信æ¯ä¸åœ¨æ¡ˆ">
4842 <message name="message">
4843 这个地å—需è¦ä½ ç™»è®°æ”¯ä»˜ä¿¡æ¯ç„¶åŽæ‰èƒ½è®¿é—®å®ƒã€‚
4844您è¦è®¿é—®ç¬¬äºŒäººç”Ÿç½‘ç«™æ¥ç™»è®°å—?
4845
4846[_URL]
4847 </message>
4848 <ignore name="ignore">
4849 警告缺少支付信æ¯
4850 </ignore>
4851 <option name="Yes">
4852 是
4853 </option>
4854 <option name="No">
4855 å¦
4856 </option>
4857 </alert>
4858 <alert name="MissingString">
4859 <message name="message">
4860 strings.xml 中找ä¸åˆ°å­—符串 [STRING_NAME]
4136 </message> 4861 </message>
4137 </alert> 4862 </alert>
4138</alerts> 4863</alerts>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_about.xml b/linden/indra/newview/skins/default/xui/zh/floater_about.xml
index bee9def..621195d 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_about.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_about.xml
@@ -1,32 +1,35 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_about" title="关于第二人生"> 2<floater name="floater_about" title="关于第二人生">
3 <text_editor name="credits_editor"> 3 <text_editor name="credits_editor">
4 第二人生的推出应感谢以下人物的贡献: Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ and many others. 4 第二人生的推出应感谢以下人物的贡献: Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les 以åŠæ›´å¤šäººã€‚
5 5
6感谢以下居民,他们的帮助ä¿è¯äº†è¿™æ¬¡ç¬¬äºŒäººç”Ÿçš„版本是有å²ä»¥æ¥æœ€å‡ºè‰²çš„: Aminom Marvin, ava ganache, Balthazar Fouroux, CrystalShard Foo, Davec Horsforth, Drew Dwi, Ellla McMahon, Gellan Glenelg, Harleen Gretzky, istephanija munro, Iustinian Tomsen, JC Glimmer, Joeseph Albanese, kelly young, Latif Khalifa, Lex Neva, McCabe Maxsted, Michi Lumin, moni duettmann, Moon Metty, motor loon, Opensource Obscure, Sky Hye, Soap Clawtooth, velveeta biedermann, zeebster colasanti 6感谢以下居民,他们的帮助ä¿è¯äº†è¿™æ¬¡ç¬¬äºŒäººç”Ÿçš„版本是有å²ä»¥æ¥æœ€å‡ºè‰²çš„: afon shepherd, Aimee Trescothick, Alexandrea Fride, Alissa Sabre, Amber DeCuir, Asuka Neely, Auron Forcella, Blue Revolution, Bocan Undercroft, Boroondas Gupte, Brandon Shinobu, Bri Gufler, Buckaroo Mu, Celierra Darling, Christos Atlantis, Coder Kas, Cummere Mayo, dakota schwade, Dirk Talamasca, Dizzy Banjo, Drew Dwi, Duckling Kwak, Ellla McMahon, Erikah Jameson, Erinyse Planer, Eyana Yohkoh, Ezian Ecksol, Faron Karu, Fenoe Lowey, Fox Hwasung, Francisca Biedermann, Gally Young, Gellan Glenelg, Geneko Nemeth, Glenn Rotaru, Hagar Qinan, Harleen Gretzky, Holger Gilruth, hotrodjohnny gears, IAm Zabelin, Inigo Catteneo, Iustinian Tomsen, Jacek Antonell, James Benedek, Jim Kupferberg, Joeseph Albanese, JPT62089 Agnon, Kardargo Adamczyk, Kirstenlee Cinquetti, Latif Khalifa, lea Parnall, Lex Neva, Lillith Anatine, Lilly Zenovka, Lim Catteneo, Lindal Kidd, Mark Rosenbaum, MasterJ Chaplin, McCabe Maxsted, Melvin Starbrook, Meni Kaiousei, Mero Collas, Minakothegothicgeisha Kamachi, Moon Metty, neofilo aabye, Neutron Chesnokov, Nomad Ingwer, norritt Xi, Opensource Obscure, Oracle Weatherwax, Ourasi Ferraris, Pabl0 Roffo, Peyton Aleixandre, Phli Foxchase, Psi Merlin, r2d2 Wunderlich, Regi Yifu, Saijanai Kuhn, Sandor Balczo, Sarkan Dreamscape, Scree Raymaker, Sedona Mills, Selena Beale, Sheet Spotter, Shibari Twine, Silver Key, Simon Kline, SLB Wirefly, Stacy Wombat, Sugarcult Dagger, Tayra Dagostino, Tetsuryu Vlodovic, ThaBiGGDoGG Richez, Timo Gufler, tx Oh, wayfinder wishbringer, Wizzytoe McCullough, Wundur Primbee, Yann Dufaux, Yuu Nakamichi, Aminom Marvin, Andred Qinan, arminasx saiman, caroline apollo, Iskar Ariantho, Jenika Connolly, Maghnus Balogh, Nefertiti Nefarious, RodneyLee Jessop
7 7
8 8
9 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion 9 3Dconnexion SDK Copyright © 1992-2007 3Dconnexion
10 APR Copyright (C) 2000-2004 The Apache Software Foundation 10 APR Copyright © 2000-2004 The Apache Software Foundation
11 cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) 11 cURL Copyright © 1996-2002, Daniel Stenberg, (daniel@haxx.se)
12 expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd. 12 DBus/dbus-glib Copyright © 2002, 2003 CodeFactory AB / Copyright © 2003, 2004 Red Hat, Inc.
13 FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org). 13 expat Copyright © 1998, 1999, 2000 Thai Open Source Software Center Ltd.
14 GL Copyright (C) 1999-2004 Brian Paul. 14 FreeType Copyright © 1996-2002, The FreeType Project (www.freetype.org).
15 Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited. 15 GL Copyright © 1999-2004 Brian Paul.
16 jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW) 16 Havok.com(TM) Copyright © 1999-2001, Telekinesys Research Limited.
17 jpeglib Copyright (C) 1991-1998, Thomas G. Lane. 17 jpeg2000 Copyright © 2001, David Taubman, The University of New South Wales (UNSW)
18 ogg/vorbis Copyright (C) 2001, Xiphophorus 18 jpeglib Copyright © 1991-1998, Thomas G. Lane.
19 OpenSSL Copyright (C) 1998-2002 The OpenSSL Project. 19 ogg/vorbis Copyright © 2001, Xiphophorus
20 SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga 20 OpenSSL Copyright © 1998-2002 The OpenSSL Project.
21 SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 21 SDL Copyright © 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
22 xmlrpc-epi Copyright (C) 2000 Epinions, Inc. 22 SSLeay Copyright © 1995-1998 Eric Young (eay@cryptsoft.com)
23 zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler. 23 xmlrpc-epi Copyright © 2000 Epinions, Inc.
24 zlib Copyright © 1995-2002 Jean-loup Gailly and Mark Adler.
24 25
25 All rights reserved. 查看licenses.txt获å–细节. 26 All rights reserved. 查看licenses.txt获å–细节.
26 27
27 Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C) 28 语音èŠå¤©éŸ³é¢‘ç¼–ç : Polycom® Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
28 29
29 30å¾æ‰€èƒ½è§ä¹‹é€”虽近,而所è§éœ€åšä¹‹äº‹å·²å¤šçŸ£ã€‚—— 亚兰·图çµ
30 We can only see a short distance ahead, but we can see plenty there that needs to be done. --Alan Turing
31 </text_editor> 31 </text_editor>
32 <string name="you_are_at">
33 您现在ä½äºŽ [POSITION]
34 </string>
32</floater> 35</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_about_land.xml b/linden/indra/newview/skins/default/xui/zh/floater_about_land.xml
index 63ac152..8f3d1da 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_about_land.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_about_land.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floaterland" title="关于土地"> 2<floater name="floaterland" title="关于土地">
3 <tab_container name="landtab"> 3 <tab_container name="landtab">
4 <panel label="General" name="land_general_panel"> 4 <panel label="一般" name="land_general_panel">
5 <text type="string" length="1" name="Name:"> 5 <text type="string" length="1" name="Name:">
6 åå­—: 6 åå­—:
7 </text> 7 </text>
@@ -16,20 +16,20 @@
16 </text> 16 </text>
17 <button label="档案..." label_selected="档案..." name="Profile..." /> 17 <button label="档案..." label_selected="档案..." name="Profile..." />
18 <text type="string" length="1" name="Group:"> 18 <text type="string" length="1" name="Group:">
19 Group: 19 社团:
20 </text> 20 </text>
21 <button label="调节..." label_selected="调节..." name="Set..." /> 21 <button label="更改..." label_selected="更改..." name="Set..." />
22 <check_box label="å…许转让给社团" name="check deed" 22 <check_box label="å…许转让给社团" name="check deed"
23 tool_tip="一个社团官员å¯ä»¥è½¬è®©è¿™å—土地至社团,所以它将被社团和目å‰çš„土地分é…情况支æŒã€‚" /> 23 tool_tip="一个社团官员å¯ä»¥è½¬è®©è¿™å—土地至社团,使其被社团的土地é…é¢æ”¯æŒã€‚" />
24 <button label="契约..." label_selected="契约..." name="Deed..." 24 <button label="转让..." label_selected="转让..." name="Deed..."
25 tool_tip="如果你是所选社团中的官员,åˆä½ å¯èƒ½åªèƒ½è½¬è®©åœŸåœ°." /> 25 tool_tip="åªæœä½ æ˜¯æ‰€é€‰ç¤¾å›¢å®˜å‘˜çš„æ—¶åæ‰èƒ½è½¬è®©åœŸåœ°ã€‚" />
26 <check_box label="地主义转让的形å¼æ献" name="check contib" 26 <check_box label="拥有者在转让åŒæ—¶ç»™å‡ºè´¡çŒ®" name="check contib"
27 tool_tip="当土地被转让给社团时, å‰ä¸€ä¸ªä¸»äººè´¡çŒ®è¶³å¤Ÿçš„土地é…置以支æŒåœŸåœ°çš„è¿è¡Œ." /> 27 tool_tip="当土地被转让给社团时, å‰ä¸€ä¸ªä¸»äººè´¡çŒ®è¶³å¤Ÿçš„土地é…é¢ä»¥æ”¯æŒåœŸåœ°çš„è¿è¡Œã€‚" />
28 <text type="string" length="1" name="For Sale:"> 28 <text type="string" length="1" name="For Sale:">
29 待售: 29 出售:
30 </text> 30 </text>
31 <text type="string" length="1" name="Not for sale."> 31 <text type="string" length="1" name="Not for sale.">
32 éžå–çŠ¶æ€ 32 éžå–状æ€ã€‚
33 </text> 33 </text>
34 <text type="string" length="1" name="For Sale: Price L$[PRICE]."> 34 <text type="string" length="1" name="For Sale: Price L$[PRICE].">
35 ä»·æ ¼: L$[PRICE]. 35 ä»·æ ¼: L$[PRICE].
@@ -39,38 +39,38 @@
39 出售给: [BUYER] 39 出售给: [BUYER]
40 </text> 40 </text>
41 <text type="string" length="1" name="Sell with landowners objects in parcel."> 41 <text type="string" length="1" name="Sell with landowners objects in parcel.">
42 包括代售状æ€çš„东东. 42 出售中包括物体。
43 </text> 43 </text>
44 <text type="string" length="1" name="Selling with no objects in parcel."> 44 <text type="string" length="1" name="Selling with no objects in parcel.">
45 ä¸åŒ…括代售状æ€ä¸‹çš„东东. 45 出售中ä¸åŒ…括物体。
46 </text> 46 </text>
47 <button label="å–消土地出售" label_selected="å–消土地出售" 47 <button label="å–消土地出售" label_selected="å–消土地出售"
48 name="Cancel Land Sale" /> 48 name="Cancel Land Sale" />
49 <text type="string" length="1" name="Claimed:"> 49 <text type="string" length="1" name="Claimed:">
50 声明: 50 认购时间:
51 </text> 51 </text>
52 <text type="string" length="1" name="DateClaimText"> 52 <text type="string" length="1" name="DateClaimText"><!--placeholder-->
53 星期二 八月15日 13:47:25 2006年 53 星期二 八月15日 13:47:25 2006年
54 </text> 54 </text>
55 <text type="string" length="1" name="PriceLabel"> 55 <text type="string" length="1" name="PriceLabel">
56 é¢ç§¯ï¼š 56 é¢ç§¯ï¼š
57 </text> 57 </text>
58 <text type="string" length="1" name="PriceText"> 58 <text type="string" length="1" name="PriceText"><!--placeholder-->
59 4048平方米. 59 4048平方米.
60 </text> 60 </text>
61 <text type="string" length="1" name="Traffic:"> 61 <text type="string" length="1" name="Traffic:">
62 交通: 62 æµé:
63 </text> 63 </text>
64 <text type="string" length="1" name="DwellText"> 64 <text type="string" length="1" name="DwellText"><!--placeholder-->
65 0 65 0
66 </text> 66 </text>
67 <button label="购买土地..." label_selected="购买土地..." name="Buy Land..." /> 67 <button label="购买土地..." label_selected="购买土地..." name="Buy Land..." />
68 <button label="为社团购买..." label_selected="为社团购买..." 68 <button label="为社团购买..." label_selected="为社团购买..."
69 name="Buy For Group..." /> 69 name="Buy For Group..." />
70 <button label="通过…购买" label_selected="通过…购买" name="Buy Pass..." 70 <button label="购买通行è¯..." label_selected="购买通行è¯..." name="Buy Pass..."
71 tool_tip="通行è¯æ供给你一个暂时通往这å—土地的通é“。" /> 71 tool_tip="通行è¯è®©ä½ å¯ä»¥æš‚时访问这å—土地。" />
72 <button label="放弃土地..." label_selected="放弃土地..." name="Abandon Land..." /> 72 <button label="放弃土地..." label_selected="放弃土地..." name="Abandon Land..." />
73 <button label="放弃土地..." label_selected="放弃土地..." name="Reclaim Land..." /> 73 <button label="回认土地..." label_selected="回认土地..." name="Reclaim Land..." />
74 <button label="林登出售..." label_selected="林登出售..." name="Linden Sale..." 74 <button label="林登出售..." label_selected="林登出售..." name="Linden Sale..."
75 tool_tip="土地必需有主人, 设定内容以åŠä¸å¯è¢«æ‹å–。" /> 75 tool_tip="土地必需有主人, 设定内容以åŠä¸å¯è¢«æ‹å–。" />
76 <text name="new users only"> 76 <text name="new users only">
@@ -79,9 +79,53 @@
79 <text name="anyone"> 79 <text name="anyone">
80 任何人 80 任何人
81 </text> 81 </text>
82 <string
83 name="area_text">
84 é¢ç§¯
85 </string>
86 <string
87 name="area_size_text">
88 [AREA] 平方米
89 </string>
90 <string
91 name="auction_id_text">
92 æ‹å– ID: [ID]
93 </string>
94 <string
95 name="need_tier_to_modify">
96 您必须确认购买æ‰èƒ½ä¿®æ”¹è¿™å—土地。
97 </string>
98 <string
99 name="group_owned_text">
100 (社团所有)
101 </string>
102 <string
103 name="profile_text">
104 档案...
105 </string>
106 <string
107 name="info_text">
108 ä¿¡æ¯...
109 </string>
110 <string
111 name="public_text">
112 (公共)
113 </string>
114 <string
115 name="none_text">
116 (æ— )
117 </string>
118 <string
119 name="sale_pending_text">
120 (等待出售中)
121 </string>
122 <string name="no_selection_text">
123 没有选中的地å—。
124请到 世界èœå• > 关于土地 或选择å¦ä¸€å—地å—æ¥æ˜¾ç¤ºè¯¦ç»†èµ„料。
125 </string>
82 </panel> 126 </panel>
83 <panel label="契约åˆåŒ" name="land_covenant_panel"> 127 <panel label="契约åˆåŒ" name="land_covenant_panel">
84 <text type="string" length="1" name="covenant_timestamp_text"> 128 <text type="string" length="1" name="covenant_timestamp_text"><!--placeholder, not translatable-->
85 上次修改时间 星期三12 月3 1日 16:00:00 1969年 129 上次修改时间 星期三12 月3 1日 16:00:00 1969年
86 </text> 130 </text>
87 <text type="string" length="1" name="region_name_lbl"> 131 <text type="string" length="1" name="region_name_lbl">
@@ -91,139 +135,159 @@
91 leyla 135 leyla
92 </text> 136 </text>
93 <text type="string" length="1" name="estate_name_lbl"> 137 <text type="string" length="1" name="estate_name_lbl">
94 ç§äººé¢†åœ°: 138 地产:
95 </text> 139 </text>
96 <text type="string" length="1" name="estate_name_text"> 140 <text type="string" length="1" name="estate_name_text"><!--placeholder, not translatable-->
97 大陆 141 大陆
98 </text> 142 </text>
99 <text type="string" length="1" name="estate_owner_lbl"> 143 <text type="string" length="1" name="estate_owner_lbl">
100 ä¸åŠ¨äº§ä¸»äºº: 144 地产主人:
101 </text> 145 </text>
102 <text type="string" length="1" name="estate_owner_text"> 146 <text type="string" length="1" name="estate_owner_text"><!--placeholder, not translatable-->
103 (æ— ) 147 (æ— )
104 </text> 148 </text>
105 <text type="string" length="1" name="resellable_clause"> 149 <text type="string" length="1" name="resellable_clause">
106 è¿™å—区域内被购买的土地å¯èƒ½ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚ 150 è¿™å—区域内购买的土地ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚
107 </text> 151 </text>
108 <text type="string" length="1" name="changeable_clause"> 152 <text type="string" length="1" name="changeable_clause">
109 è¿™å—区域内被购买的土地å¯èƒ½ä¸èƒ½è¢«è¿žæŽ¥/划分。 153 è¿™å—区域内购买的土地ä¸èƒ½è¢«åˆå¹¶/划分。
110 </text> 154 </text>
111 <text_editor type="string" length="1" name="covenant_editor"> 155 <text_editor type="string" length="1" name="covenant_editor"><!--placeholder, not translatable-->
112 è¿™å—ä¸åŠ¨äº§æ²¡æœ‰æ供任何契约åˆåŒã€‚ 156 è¿™å—地产没有æ供任何契约åˆåŒã€‚
113 </text_editor> 157 </text_editor>
114 <text name="can_resell"> 158 <text name="can_resell">
115 è¿™å—区域内被购买的土地å¯ä»¥è¢«é‡æ–°å‡ºå”®. 159 è¿™å—区域内被购买的土地å¯ä»¥è¢«é‡æ–°å‡ºå”®.
116 </text> 160 </text>
117 <text name="can_not_resell"> 161 <text name="can_not_resell">
118 è¿™å—区域内被购买的土地å¯èƒ½ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚ 162 è¿™å—区域内被购买的土地ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚
119 </text> 163 </text>
120 <text name="can_change"> 164 <text name="can_change">
121 è¿™å—区域内被购买的土地å¯ä»¥è¢«è¿žæŽ¥æˆ–者被划分。 165 è¿™å—区域内被购买的土地å¯ä»¥è¢«åˆå¹¶/划分。
122 </text> 166 </text>
123 <text name="can_not_change"> 167 <text name="can_not_change">
124 è¿™å—区域内被购买的土地å¯èƒ½ä¸èƒ½è¢«è”系或者被划分。 168 è¿™å—区域内被购买的土地ä¸èƒ½è¢«åˆå¹¶/划分。
125 </text> 169 </text>
126 </panel> 170 </panel>
127 <panel label="东东" name="land_objects_panel"> 171 <panel label="物体" name="land_objects_panel">
128 <text type="string" length="1" name="Simulator primitive usage:"> 172 <text name="parcel_object_bonus">
129 模拟器简å•ç”¨æ³•: 173 区域é¢å¤–物体因数: [BONUS]
130 </text>
131 <text type="string" length="1" name="0 out of 0 available">
132 0个,总数为14055 (14055个有效)
133 </text> 174 </text>
175 <text type="string" length="1" name="Simulator primitive usage:">
176 模拟器元件使用情况:
177 </text>
178 <text
179 name="objects_available">
180 [COUNT]个, 最多 [MAX] 个 (还剩 [AVAILABLE] 个)
181 </text>
182 <string
183 name="objects_available_text">
184 [COUNT] 个, 最多 [MAX] 个 (还剩 [AVAILABLE] 个)
185 </string>
186 <string
187 name="objects_deleted_text">
188 [COUNT] 个, 最多 [MAX] 个 ([DELETED] 个将会被删除)
189 </string>
134 <text type="string" length="1" name="Primitives parcel supports:"> 190 <text type="string" length="1" name="Primitives parcel supports:">
135 原始土地支柱: 191 地å—支æŒå…ƒä»¶æ•°:
136 </text> 192 </text>
137 <text type="string" length="1" name="object_contrib_text"> 193 <text type="string" length="1" name="object_contrib_text">
138 926 194 [COUNT] 个
139 </text> 195 </text>
140 <text type="string" length="1" name="Primitives on parcel:"> 196 <text type="string" length="1" name="Primitives on parcel:">
141 土地上所有的原始建筑: 197 地å—上的元件数:
142 </text> 198 </text>
143 <text type="string" length="1" name="total_objects_text"> 199 <text type="string" length="1" name="total_objects_text">
144 0 200 [COUNT] 个
145 </text> 201 </text>
146 <text type="string" length="1" name="Owned by parcel owner:"> 202 <text type="string" length="1" name="Owned by parcel owner:">
147 为土地拥有者所有: 203 土地拥有者所有:
148 </text> 204 </text>
149 <text type="string" length="1" name="owner_objects_text"> 205 <text type="string" length="1" name="owner_objects_text">
150 0 206 [COUNT] 个
151 </text> 207 </text>
152 <button label="显示" label_selected="显示" name="ShowOwner" /> 208 <button label="显示" label_selected="显示" name="ShowOwner" />
153 <button label="归还..." label_selected="归还..." name="ReturnOwner..." 209 <button label="归还..." label_selected="归还..." name="ReturnOwner..."
154 tool_tip="将东东归还其主人." /> 210 tool_tip="将物体归还其主人。" />
155 <text type="string" length="1" name="Set to group:"> 211 <text type="string" length="1" name="Set to group:">
156 转入社团状æ: 212 设为社团的元件数:
157 </text> 213 </text>
158 <text type="string" length="1" name="group_objects_text"> 214 <text type="string" length="1" name="group_objects_text">
159 0 215 [COUNT] 个
160 </text> 216 </text>
161 <button label="显示" label_selected="显示" name="ShowGroup" /> 217 <button label="显示" label_selected="显示" name="ShowGroup" />
162 <button label="归还..." label_selected="归还..." name="ReturnGroup..." 218 <button label="归还..." label_selected="归还..." name="ReturnGroup..."
163 tool_tip="将东东归还其主人." /> 219 tool_tip="将物体归还其主人。" />
164 <text type="string" length="1" name="Owned by others:"> 220 <text type="string" length="1" name="Owned by others:">
165 为其他人所有: 221 为其他人所有:
166 </text> 222 </text>
167 <text type="string" length="1" name="other_objects_text"> 223 <text type="string" length="1" name="other_objects_text">
168 0 224 [COUNT] 个
169 </text> 225 </text>
170 <button label="显示" label_selected="显示" name="ShowOther" /> 226 <button label="显示" label_selected="显示" name="ShowOther" />
171 <button label="归还..." label_selected="归还..." name="ReturnOther..." 227 <button label="归还..." label_selected="归还..." name="ReturnOther..."
172 tool_tip="将东东归还其主人." /> 228 tool_tip="将物体归还其主人。" />
173 <text type="string" length="1" name="Selected / sat upon:"> 229 <text type="string" length="1" name="Selected / sat upon:">
174 已选的/å上去: 230 被选择 / 被å上的:
175 </text> 231 </text>
176 <text type="string" length="1" name="selected_objects_text"> 232 <text type="string" length="1" name="selected_objects_text">
177 0 233 [COUNT] 个
178 </text> 234 </text>
179 <text type="string" length="1" name="Autoreturn other resident&amp;apos;s objects (minutes, 0 for off):"> 235 <text type="string" length="1" name="Autoreturn">
180 自动归还其他居民的东东(分钟, 0为关闭): 236 自动归还其他居民的物体 (分钟, 0为关闭):
181 </text> 237 </text>
182 <text type="string" length="1" name="Object Owners:"> 238 <text type="string" length="1" name="Object Owners:">
183 东东主人: 239 物体主人:
184 </text> 240 </text>
185 <button label="æ›´æ–°åå•" label_selected="æ›´æ–°åå•" name="Refresh List" /> 241 <button label="æ›´æ–°åå•" label_selected="æ›´æ–°åå•" name="Refresh List" />
186 <button label="归还东东..." label_selected="归还东东..." 242 <button label="归还物体..." label_selected="归还物体..."
187 name="Return objects..." /> 243 name="Return objects..." />
244 <name_list name="owner list">
245 <column name="type"/>
246 <column name="online_status"/>
247 <column label="å称" name="name"/>
248 <column label="æ•°ç›®" name="count"/>
249 <column name="mostrecent"/>
250 </name_list>
188 <button label="" label_selected="" name="Type" tool_tip="以ç§ç±»åˆ†ç±»" /> 251 <button label="" label_selected="" name="Type" tool_tip="以ç§ç±»åˆ†ç±»" />
189 <button label="å称" label_selected="å称" name="Name" tool_tip="以å字分类" /> 252 <button label="å称" label_selected="å称" name="Name" tool_tip="以å字分类" />
190 <button label="清点" label_selected="清点" name="Count" tool_tip="以点数分类" /> 253 <button label="数目" label_selected="数目" name="Count" tool_tip="以数目分类" />
191 </panel> 254 </panel>
192 <panel label="Options" name="land_options_panel"> 255 <panel label="选项" name="land_options_panel">
193 <text type="string" length="1" name="allow_label"> 256 <text type="string" length="1" name="allow_label">
194 å…许其他居民去: 257 å…许其他居民:
195 </text> 258 </text>
259 <check_box label="编辑地形" name="edit land check"
260 tool_tip="如果选中的è¯ï¼Œè°éƒ½èƒ½ç¼–辑您的土地地形。最好是ä¸è¦é€‰ä¸­è¿™é¡¹ï¼Œå› ä¸ºæ‚¨æ€»å¯ä»¥ç¼–辑您自己的土地。"/>
261 <check_box label="创造地标" name="check landmark" />
262 <check_box label="飞翔" name="check fly" tool_tip="如果选中的è¯ï¼Œå±…æ°‘å¯ä»¥åœ¨æ‚¨çš„土地上飞行。如果ä¸é€‰ä¸­çš„è¯ï¼Œä»–们åªèƒ½é£žå…¥æˆ–飞过您的土地。"/>
196 <text name="allow_label2"> 263 <text name="allow_label2">
197 创造东东: 264 创建物体:
198 </text> 265 </text>
199 <check_box label="创造东东" name="edit objects check" /> 266 <check_box label="所有居民" name="edit objects check" />
200 <check_box label="编辑地形" name="edit land check" />
201 <check_box label="创造地标" name="check landmark" />
202 <check_box label="社团" name="edit group objects check" /> 267 <check_box label="社团" name="edit group objects check" />
203 <text name="allow_label3"> 268 <text name="allow_label3">
204 进入东东: 269 带入物体:
205 </text> 270 </text>
206 <check_box label="所有居民" name="all object entry check" /> 271 <check_box label="所有居民" name="all object entry check" />
207 <check_box label="社团" name="group object entry check" /> 272 <check_box label="社团" name="group object entry check" />
208 <text name="allow_label4"> 273 <text name="allow_label4">
209 è¿è¡Œè„šæœ¬: 274 è¿è¡Œè„šæœ¬:
210 </text> 275 </text>
211 <check_box label="è¿è¡Œç¤¾å›¢è„šæœ¬" name="check group scripts" /> 276 <check_box label="社团" name="check group scripts" />
212 <check_box label="飞翔" name="check fly" /> 277 <check_box label="所有居民" name="check other scripts" />
213 <check_box label="è¿è¡Œå…¶å®ƒè„šæœ¬" name="check other scripts" />
214 <text type="string" length="1" name="land_options_label"> 278 <text type="string" length="1" name="land_options_label">
215 土地选项: 279 土地选项:
216 </text> 280 </text>
217 <check_box label="安全 (æ— æŸä¼¤)" name="check safe" /> 281 <check_box label="安全 (ä¸ä¼šå—伤)" name="check safe" tool_tip="如果选中的è¯ï¼ŒåœŸåœ°è®¾ç½®ä¸ºå®‰å…¨ï¼Œç¦ç”¨æ ¼æ–—伤害。ä¸é€‰ä¸­çš„è¯ï¼Œå¯ç”¨æ ¼æ–—伤害。"/>
218 <check_box label="é™åˆ¶æŽ¨åŠ¨" name="PushRestrictCheck" 282 <check_box label="ä¸å…许推动" name="PushRestrictCheck"
219 tool_tip="ll推动目标将åªèƒ½é€šè¿‡åœŸåœ°ä¸»äººè„šæœ¬ä»£ç è¿è¡Œï¼Œæˆ–者通过推动æºæœ¬èº«æ˜¯è„šæœ¬ä¸»äººçš„脚本推动。" /> 283 tool_tip="防止脚本进行推动。选中该项也许对防止在您的土地上å‘生扰乱行为有帮助。llPushObject å°†åªèƒ½é€šè¿‡åœŸåœ°ä¸»äººçš„脚本代ç è¿è¡Œï¼Œæˆ–者通过推动æºæœ¬èº«æ˜¯è„šæœ¬æ‰€æœ‰è€…的脚本。" />
220 <check_box label="Show in Search &gt; Places (L$30/week) under" name="ShowDirectoryCheck" /> 284 <check_box label="显示在æœç´¢ä¸­ (L$30/周),分类为" name="ShowDirectoryCheck" />
221 <combo_box name="land category"> 285 <combo_box name="land category">
222 <combo_item name="AnyCategory"> 286 <combo_item name="AnyCategory">
223 ä»»æ„分类 287 ä»»æ„分类
224 </combo_item> 288 </combo_item>
225 <combo_item name="LindenLocation"> 289 <combo_item name="LindenLocation">
226 æž—ç™»å®çš„地点 290 林登实验室的地点
227 </combo_item> 291 </combo_item>
228 <combo_item name="Adult"> 292 <combo_item name="Adult">
229 æˆäºº 293 æˆäºº
@@ -232,25 +296,25 @@
232 艺术和文化 296 艺术和文化
233 </combo_item> 297 </combo_item>
234 <combo_item name="Business"> 298 <combo_item name="Business">
235 ç”Ÿæ„ 299 商业
236 </combo_item> 300 </combo_item>
237 <combo_item name="Educational"> 301 <combo_item name="Educational">
238 教育的 302 教育
239 </combo_item> 303 </combo_item>
240 <combo_item name="Gaming"> 304 <combo_item name="Gaming">
241 åšå½©æ¸¸æˆ 305 åšå½©/游æˆ
242 </combo_item> 306 </combo_item>
243 <combo_item name="Hangout"> 307 <combo_item name="Hangout">
244 临时ä½æ‰€ 308 èšä¼š
245 </combo_item> 309 </combo_item>
246 <combo_item name="NewcomerFriendly"> 310 <combo_item name="NewcomerFriendly">
247 å‹å¥½çš„åˆæ¥è€… 311 åˆè¡Œè€…å‹å¥½
248 </combo_item> 312 </combo_item>
249 <combo_item name="Parks&amp;Nature"> 313 <combo_item name="Parks&amp;Nature">
250 公园和大自然 314 公园和大自然
251 </combo_item> 315 </combo_item>
252 <combo_item name="Residential"> 316 <combo_item name="Residential">
253 土木建筑 317 å±…ä½åŒº
254 </combo_item> 318 </combo_item>
255 <combo_item name="Shopping"> 319 <combo_item name="Shopping">
256 购物 320 购物
@@ -259,29 +323,27 @@
259 其他 323 其他
260 </combo_item> 324 </combo_item>
261 </combo_box> 325 </combo_box>
262 <check_box label="在网上公布åå•" name="PublishCheck"
263 tool_tip="将你土地的信æ¯å‘布到网络上去." />
264 <check_box label="æˆäººå†…容" name="MatureCheck" 326 <check_box label="æˆäººå†…容" name="MatureCheck"
265 tool_tip="你的土地信æ¯è¢«è®¤ä¸ºå¸¦æœ‰æˆäººå†…容." /> 327 tool_tip="你的土地信æ¯æˆ–内容会被认为带有æˆäººå†…容。" />
266 <button label="?" label_selected="?" name="?" /> 328 <button label="?" label_selected="?" name="?" />
267 <text type="string" length="1" name="Snapshot:"> 329 <text type="string" length="1" name="Snapshot:">
268 å¿«ç…§: 330 å¿«ç…§:
269 </text> 331 </text>
270 <texture_picker label="" name="snapshot_ctrl" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 332 <texture_picker label="" name="snapshot_ctrl" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
271 <text type="string" length="1" name="Landing Point: (none)"> 333 <text type="string" length="1" name="landing_point">
272 ç€é™†ç‚¹æ•°: (none) 334 ç€é™†ç‚¹: [LANDING]
273 </text> 335 </text>
274 <button label="调节" label_selected="调节" name="Set" 336 <button label="设置" label_selected="设置" name="Set"
275 tool_tip="设置你的化身的登陆地点。此地点必须在此å—土地上。" /> 337 tool_tip="设置访问者抵达时的ç€é™†ç‚¹ã€‚将会设置到您化身在该地å—内的ä½ç½®ã€‚" />
276 <button label="清除" label_selected="清除" name="Clear" 338 <button label="清除" label_selected="清除" name="Clear"
277 tool_tip="清除登陆地点上的障ç¢." /> 339 tool_tip="清除ç陆点" />
278 <text type="string" length="1" name="Teleport Routing: "> 340 <text type="string" length="1" name="Teleport Routing: ">
279 闪电传é€è·¯çº¿: 341 瞬间移动传é€è·¯çº¿:
280 </text> 342 </text>
281 <combo_box name="landing type" 343 <combo_box name="landing type"
282 tool_tip="Teleport Routing -- select how to handle teleports onto your land."> 344 tool_tip="Teleport Routing -- 选择如何应对到你的土地的瞬间移动。">
283 <combo_item type="string" length="1" name="Blocked"> 345 <combo_item type="string" length="1" name="Blocked">
284 åŠ é” 346 ä¸å许
285 </combo_item> 347 </combo_item>
286 <combo_item type="string" length="1" name="LandingPoint"> 348 <combo_item type="string" length="1" name="LandingPoint">
287 ç€é™†ç‚¹ 349 ç€é™†ç‚¹
@@ -290,49 +352,204 @@
290 ä»»æ„ä½ç½® 352 ä»»æ„ä½ç½®
291 </combo_item> 353 </combo_item>
292 </combo_box> 354 </combo_box>
355 <string
356 name="push_restrict_text">
357 ä¸å…许推动
358 </string>
359 <string
360 name="push_restrict_region_text">
361 ä¸å…许推动 (区域强制)
362 </string>
293 </panel> 363 </panel>
294 <panel label="Media" name="land_media_panel"> 364 <panel label="媒体" name="land_media_panel">
365 <text
366 name="with media:">
367 媒体类型:
368 </text>
369<combo_box
370 allow_text_entry="false"
371 max_chars="20"
372 name="media type"
373 tool_tip="指定该 URL 是动画,网页,或者其它媒体" />
295 <check_box label="Restrict spatialized sound to this parcel" name="check sound local" /> 374 <check_box label="Restrict spatialized sound to this parcel" name="check sound local" />
296 <text type="string" length="1" name="Music URL:"> 375 <text
297 音ä¹URL: 376 name="at URL:">
377 媒体 URL:
378 </text>
379 <button
380 label="设置..."
381 label_selected="设置..."
382 name="set_media_url"
383 />
384 <text
385 name="Description:">
386 æè¿°:
298 </text> 387 </text>
299 <text type="string" length="1" name="Media texture:"> 388 <text type="string" length="1" name="Media texture:">
300 媒体 389 媒体
301æè´¨: 390æè´¨:
302 </text> 391 </text>
392 <line_editor
393 name="url_description"
394 tool_tip="在播放/加载按钮æ—显示的文字" />
303 <text type="string" length="1" name="Replace this texture:"> 395 <text type="string" length="1" name="Replace this texture:">
304 替æ¢è¯¥æè´¨: 396 替æ¢è¯¥æè´¨:
305 </text> 397 </text>
306 <texture_picker label="" name="media texture" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 398 <texture_picker label="" name="media texture" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
307 <text type="string" length="1" name="with content from this URL:"> 399 <text
308 内容æ¥è‡ªURL : 400 name="replace_texture_help">
401 (点击播放按钮åŽä½¿ç”¨è¯¥æ质的物体将会
402显示选择的动画或网页。)
403 </text>
404 <text
405 name="Options:">
406 媒体
407选项:
309 </text> 408 </text>
310 <check_box label="è‡ªåŠ¨è°ƒæ•´å†…å®¹å¤§å° (较慢或é™ä½Žå›¾åƒè´¨é‡)" 409 <check_box label="è‡ªåŠ¨è°ƒæ•´å†…å®¹å¤§å° "
311 name="media_auto_scale" 410 name="media_auto_scale"
312 tool_tip="检测此项将会对此å°å—土地的满æ„度自动缩å‡/增加。它å¯ä»¥è½»å¾®å‡æ…¢å’Œé™ä½Žå¯è§†æ•ˆæžœï¼Œä½†ä¸ä¼šè¦æ±‚其他的æ质缩放或排列。" /> 411 tool_tip="打开此项将自动缩放该地å—上的内容。其速度和质é‡å¯èƒ½ä¼šç¨ç¨é™ä½Žï¼Œä½†ä¸ä¼šéœ€è¦ä»»ä½•å…¶ä»–çš„æ质缩放或对é½ã€‚" />
412 <check_box
413 label="循环播放"
414 name="media_loop"
415 tool_tip="循环播放媒体。当媒体播放完毕时,它将从开始处é‡æ–°æ’­æ”¾ã€‚" />
416 <check_box
417 initial_value="false"
418 label="éšè—媒体 URL"
419 name="hide_media_url"
420 tool_tip="打开该选项将对未ç»å…许的土地信æ¯å¯Ÿçœ‹è€…éšè—媒体 URL。请注æ„该选项ä¸é€‚用于 HTML 类型。" />
421 <check_box
422 initial_value="false"
423 label="éšè—éŸ³ä¹ URL"
424 name="hide_music_url"
425 tool_tip="打开该选项将对未ç»å…许的土地信æ¯å¯Ÿçœ‹è€…éšè—éŸ³ä¹ URL。" />
426 <text
427 name="media_size"
428 tool_tip="渲染媒体的尺寸,设为 0 使用默认值">
429 媒体尺寸:
430 </text>
431 <spinner
432 name="media_size_width"
433 tool_tip="渲染媒体的尺寸,设为 0 使用默认值" />
434 <spinner
435 name="media_size_height"
436 tool_tip="渲染媒体的尺寸,设为 0 使用默认值" />
437 <text
438 name="pixels"
439 right="-10">
440 åƒç´ 
441 </text>
442 <text
443 name="MusicURL:">
444 éŸ³ä¹ URL:
445 </text>
446 <line_editor
447 name="music_url"
448 right="-15" />
449 <text
450 name="Sound:">
451 声音:
452 </text>
453 <check_box
454 initial_value="false"
455 label="é™åˆ¶ç©ºé—´å£°éŸ³åˆ°è¿™ä¸ªåœ°å—"
456 name="check sound local" />
457 <text
458 name="Voice settings:">
459 语音:
460 </text>
461 <radio_group
462 draw_border="true"
463 name="parcel_voice_channel">
464 <radio_item
465 name="Estate">
466 使用地产空间声音频é“
467 </radio_item>
468 <radio_item
469 name="Private">
470 使用地å—ç§æœ‰çš„空间声音频é“
471 </radio_item>
472 <radio_item
473 name="Disabled">
474 在此地å—ç¦ç”¨ç©ºé—´å£°éŸ³
475 </radio_item>
476 </radio_group>
313 </panel> 477 </panel>
314 <panel label="Access" name="land_access_panel"> 478 <panel label="访问" name="land_access_panel">
479 <check_box label="å…许公众访问" name="public_access"/>
315 <text type="string" length="1" name="Limit access to this parcel to:"> 480 <text type="string" length="1" name="Limit access to this parcel to:">
316 é™åˆ¶è¿›å…¥è¯¥åœŸåœ°çš„通é“: 481 对该地å—的访问
317 </text> 482 </text>
318 <check_box label="社团: (无)" name="GroupCheck" /> 483 <text
319 <check_box label="化身: (0 项被列出, 最多300ä½)" name="AccessCheck" /> 484 name="Only Allow">
320 <button label="添加..." label_selected="添加..." name="Add..." /> 485 ç¦æ­¢ä»¥ä¸‹å±…民访问:
321 <button label="移除" label_selected="移除" name="Remove" /> 486 </text>
322 <check_box label="通过å…许的暂时通é“出售:" name="PassCheck" /> 487 <check_box
323 <spinner label="æž—ç™»å¸æ ‡ä»·:" name="PriceSpin" /> 488 initial_value="false"
489 label="没有给林登实验室æ供支付信æ¯çš„å±…æ°‘"
490 name="limit_payment"
491 tool_tip="ç¦æ­¢æœªè¯†åˆ«çš„居民进入。" />
492 <check_box
493 initial_value="false"
494 label="没有年龄确认为æˆå¹´äººçš„å±…æ°‘"
495 name="limit_age_verified"
496 tool_tip="ç¦æ­¢æ²¡æœ‰éªŒè¯å¹´é¾„的居民进入。详细信æ¯å‚è§ support.secondlife.com 。" />
497 <string
498 name="estate_override">
499 这些选项中的一个或多个在地产级别被设定
500 </string>
501 <check_box
502 label="å…许社团访问: [GROUP]"
503 name="GroupCheck"
504 tool_tip="请在一般标签页中设定社团。"/>
505 <check_box
506 initial_value="false"
507 label="å‘以下出售通行è¯"
508 name="PassCheck"
509 tool_tip="å…许临时访问该地å—" />
510 <combo_box
511 name="pass_combo">
512 <combo_item
513 name="Anyone"
514 value="anyone">
515 任何人
516 </combo_item>
517 <combo_item
518 name="Group"
519 value="group">
520 社团
521 </combo_item>
522 </combo_box>
523 <spinner label="L$ 标价:" name="PriceSpin" />
324 <spinner label="访问时间:" name="HoursSpin" /> 524 <spinner label="访问时间:" name="HoursSpin" />
325 </panel> 525
326 <panel label="Ban" name="land_ban_panel"> 526 <text
327 <check_box label="阻止以下化身: (0ä½è¢«åˆ—出, 最多300ä½)" name="LandBanCheck" /> 527 initial_value="false"
328 <button label="添加..." label_selected="添加..." name="Add..." /> 528 label="总是å…许"
329 <button label="移除" label_selected="移除" name="Remove" /> 529 name="AllowedText">
330 <text type="string" length="1" name="Deny by Payment Status:"> 530 被å…许的居民
331 被支付情况信æ¯æ‹’ç»: 531 </text>
332 </text> 532 <name_list
333 <check_box label="å¦è®¤æ–‡ä»¶ä¸­çš„没有完æˆæ”¯ä»˜çš„ä¿¡æ¯" name="DenyAnonymousCheck" /> 533 name="AccessList"
334 <check_box label="å¦è®¤æ–‡ä»¶ä¸­çš„支付信æ¯" name="DenyIdentifiedCheck" /> 534 tool_tip="(已列出 [LISTED] å, 最多[MAX] å)" />
335 <check_box label="å¦è®¤ä½¿ç”¨è¿‡çš„支付信æ¯" name="DenyTransactedCheck" /> 535 <button label="添加..." label_selected="添加..." name="add_allowed" />
536 <button label="删除" label_selected="删除" name="remove_allowed" />
537 <text
538 label="Ban"
539 name="BanCheck">
540 被ç¦æ­¢çš„å±…æ°‘
541 </text>
542 <name_list
543 name="BannedList"
544 tool_tip="(已列出 [LISTED] å, 最多[MAX] å)" />
545 <button
546 label="添加..."
547 label_selected="添加..."
548 name="add_banned" />
549 <button
550 label="删除"
551 label_selected="删除"
552 name="remove_banned" />
336 </panel> 553 </panel>
337 </tab_container> 554 </tab_container>
338</floater> 555</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_active_speakers.xml b/linden/indra/newview/skins/default/xui/zh/floater_active_speakers.xml
new file mode 100644
index 0000000..14ab2e4
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_active_speakers.xml
@@ -0,0 +1,23 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="active_speakers"
4 title="活跃的说è¯äºº">
5 <panel
6 name="active_speakers_panel">
7 <scroll_list
8 name="speakers_list">
9 <column
10 label="åå­—"
11 name="speaker_name" />
12 </scroll_list>
13 <panel
14 name="volume_container"
15 right="-10">
16 <button
17 label=""
18 name="mute_btn"
19 toggle="true"
20 tool_tip="å±è”½è¯¥å±…民的语音" />
21 </panel>
22 </panel>
23</floater> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_animation_preview.xml b/linden/indra/newview/skins/default/xui/zh/floater_animation_preview.xml
index 4133242..cd41a43 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_animation_preview.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_animation_preview.xml
@@ -6,36 +6,18 @@
6 <text name="description_label"> 6 <text name="description_label">
7 æè¿°: 7 æè¿°:
8 </text> 8 </text>
9 <spinner label="优先" name="priority" 9 <spinner label="优先级" name="priority"
10 tool_tip="å¯åœ¨ä¸é¡¾åŠæ­¤åŠ¨ç”»çš„模å¼ä¸‹æŽ§åˆ¶å…¶å®ƒåŠ¨ç”»ã€‚" /> 10 tool_tip="控制哪些动画å¯ä»¥è¢«è¯¥åŠ¨ç”»è¦†ç›–。" />
11 <text name="preview_label"> 11 <check_box label="循环" name="loop_check" tool_tip="使此动画循环播放." />
12 预览 12 <spinner label="始 (%)" name="loop_in_point"
13 </text> 13 tool_tip="选择循环åŽè¿”回的点。" />
14 <combo_box label="" name="preview_base_anim" 14 <spinner label="终 (%)" name="loop_out_point"
15 tool_tip="Use this to test your animation behavior while your avatar performs common actions."> 15 tool_tip="选择循环结æŸçš„点。" />
16 <combo_item name="Standing">
17 站立
18 </combo_item>
19 <combo_item name="Walking">
20 步行
21 </combo_item>
22 <combo_item name="Sitting">
23 å下
24 </combo_item>
25 <combo_item name="Flying">
26 起飞
27 </combo_item>
28 </combo_box>
29 <check_box label="绕圈飞行" name="loop_check" tool_tip="使此动画循环播放." />
30 <spinner label="In(%)" name="loop_in_point"
31 tool_tip="在动画设置一点用以返还循环到此点。" />
32 <spinner label="出局(%)" name="loop_out_point"
33 tool_tip="在动画设置一点用以åœæ­¢å¾ªçŽ¯ã€‚" />
34 <text name="hand_label"> 16 <text name="hand_label">
35 手势 17 手势
36 </text> 18 </text>
37 <combo_box label="" name="hand_pose_combo" 19 <combo_box label="" name="hand_pose_combo"
38 tool_tip="Controls what hands do during animation."> 20 tool_tip="控制动画中手的动作。">
39 <combo_item name="Spread"> 21 <combo_item name="Spread">
40 伸展 22 伸展
41 </combo_item> 23 </combo_item>
@@ -43,49 +25,48 @@
43 æ”¾æ¾ 25 放æ¾
44 </combo_item> 26 </combo_item>
45 <combo_item name="PointBoth"> 27 <combo_item name="PointBoth">
46 两者都指 28 两手都指
47 </combo_item> 29 </combo_item>
48 <combo_item name="Fist"> 30 <combo_item name="Fist">
49 æ部 31 æ¡æ³
50 </combo_item> 32 </combo_item>
51 <combo_item name="RelaxedLeft"> 33 <combo_item name="RelaxedLeft">
52 放æ¾å·¦è¾¹ 34 左手放æ¾
53 </combo_item> 35 </combo_item>
54 <combo_item name="PointLeft"> 36 <combo_item name="PointLeft">
55 指左边 37 左手指
56 </combo_item> 38 </combo_item>
57 <combo_item name="FistLeft"> 39 <combo_item name="FistLeft">
58 左手 40 左手æ¡æ‹³
59 </combo_item> 41 </combo_item>
60 <combo_item name="RelaxedRight"> 42 <combo_item name="RelaxedRight">
61 放æ¾å³è¾¹ 43 å³æ‰‹æ”¾æ¾
62 </combo_item> 44 </combo_item>
63 <combo_item name="PointRight"> 45 <combo_item name="PointRight">
64 指å³è¾¹ 46 å³æ‰‹æŒ‡
65 </combo_item> 47 </combo_item>
66 <combo_item name="FistRight"> 48 <combo_item name="FistRight">
67 å³æ‰‹ 49 å³æ‰‹æ¡æ‹³
68 </combo_item> 50 </combo_item>
69 <combo_item name="SaluteRight"> 51 <combo_item name="SaluteRight">
70 å‘å³æ•¬ç¤¼ 52 å³æ‰‹æ•¬ç¤¼
71 </combo_item> 53 </combo_item>
72 <combo_item name="Typing"> 54 <combo_item name="Typing">
73 T键入 55 打字中
74 </combo_item> 56 </combo_item>
75 <combo_item name="PeaceRight"> 57 <combo_item name="PeaceRight">
76 和平æƒåˆ© 58 å³æ‰‹å’Œå¹³
77 </combo_item> 59 </combo_item>
78 </combo_box> 60 </combo_box>
79 <text name="emote_label"> 61 <text name="emote_label">
80 表情 62 表情
81 </text> 63 </text>
82 <combo_box label="" name="emote_combo" 64 <combo_box label="" name="emote_combo" >
83 tool_tip="Controls what face does during animation.">
84 <combo_item name="[None]"> 65 <combo_item name="[None]">
85 [None] 66 [None]
86 </combo_item> 67 </combo_item>
87 <combo_item name="Aaaaah"> 68 <combo_item name="Aaaaah">
88 å•Š 69 å•Šå•Šå•Š
89 </combo_item> 70 </combo_item>
90 <combo_item name="Afraid"> 71 <combo_item name="Afraid">
91 害怕 72 害怕
@@ -118,7 +99,7 @@
118 大笑 99 大笑
119 </combo_item> 100 </combo_item>
120 <combo_item name="Plllppt"> 101 <combo_item name="Plllppt">
121 Plllppt 102 呸
122 </combo_item> 103 </combo_item>
123 <combo_item name="Repulsed"> 104 <combo_item name="Repulsed">
124 æ‹’ç» 105 æ‹’ç»
@@ -142,18 +123,52 @@
142 担心 123 担心
143 </combo_item> 124 </combo_item>
144 </combo_box> 125 </combo_box>
145 <spinner label="Ease In (sec)" name="ease_in_time" 126
127 <text name="preview_label">
128 预览
129 </text>
130 <combo_box label="" name="preview_base_anim"
131 tool_tip="测试在化身åšå¸¸è§åŠ¨ä½œåŒæ—¶æ‚¨çš„动画的行为">
132 <combo_item name="Standing">
133 站立
134 </combo_item>
135 <combo_item name="Walking">
136 步行
137 </combo_item>
138 <combo_item name="Sitting">
139 å下
140 </combo_item>
141 <combo_item name="Flying">
142 起飞
143 </combo_item>
144 </combo_box>
145
146
147 <spinner label="æ¸å…¥ (秒)" name="ease_in_time"
146 tool_tip="动画æ¸å…¥çš„所需时间(秒)" /> 148 tool_tip="动画æ¸å…¥çš„所需时间(秒)" />
147 <spinner label="Ease Out (sec)" name="ease_out_time" 149 <spinner label="æ¸å‡º (秒)" name="ease_out_time"
148 tool_tip="动画æ¸å‡ºçš„所需时间(秒)" /> 150 tool_tip="动画æ¸å‡ºçš„所需时间(秒)" />
149 <button label="" name="play_btn" tool_tip="播放/åœæ­¢ä½ çŽ°æœ‰çš„动画." /> 151 <button label="" name="play_btn" tool_tip="播放/æš‚åœä½ çŽ°æœ‰çš„动画." />
150 <button label="" name="stop_btn" tool_tip="åœæ­¢åŠ¨ç”»å›žæ’­" /> 152 <button label="" name="stop_btn" tool_tip="åœæ­¢åŠ¨ç”»æ’­æ”¾" />
151 <slider label="" name="playback_slider" /> 153 <slider label="" name="playback_slider" />
152 <text name="bad_animation_text"> 154 <text name="bad_animation_text">
153 ä¸èƒ½è¯»å–动画文件。 155 ä¸èƒ½è¯»å–动画文件。
154 156
155 推èPoser 4产生的BVHæ ¼å¼æ–‡ä»¶ã€‚ 157推èPoser 4产生的BVHæ ¼å¼æ–‡ä»¶ã€‚
156 </text> 158 </text>
157 <button label="å–消" name="cancel_btn" /> 159 <button label="å–消" name="cancel_btn" />
158 <button label="上传(L$[AMOUNT])" name="ok_btn" /> 160 <button label="上传(L$[AMOUNT])" name="ok_btn" />
161 <string name="failed_to_initialize">
162 åˆå§‹åŒ–动作失败。
163 </string>
164 <string name="anim_too_long">
165 动画文件长度为 [LENGTH] 秒。
166
167最长å…许的长度为 [MAX_LENGTH] 秒。
168 </string>
169 <string name="failed_file_read">
170 无法读å–动画文件。
171
172[STATUS]
173 </string>
159</floater> 174</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_auction.xml b/linden/indra/newview/skins/default/xui/zh/floater_auction.xml
index 79a24f4..6f1bd44 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_auction.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_auction.xml
@@ -1,13 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_auction" title="开始销售林登土地"> 2<floater name="floater_auction" title="开始林登土地销售">
3 <check_box label="包å«é»„色选择æ¡" name="fence_check" /> 3 <check_box label="包å«é»„色选择æ¡" name="fence_check" />
4 <combo_box name="saletype_combo"> 4 <combo_box name="saletype_combo">
5 <combo_item name="Auction"> 5 <combo_item name="Auction">
6 æ‹å– 6 æ‹å–
7 </combo_item> 7 </combo_item>
8 <combo_item name="FirstLand">
9 首次ç€é™†
10 </combo_item>
11 </combo_box> 8 </combo_box>
12 <button label="å¿«ç…§" label_selected="å¿«ç…§" name="snapshot_btn" /> 9 <button label="å¿«ç…§" label_selected="å¿«ç…§" name="snapshot_btn" />
13 <button label="OK" label_selected="OK" name="ok_btn" /> 10 <button label="OK" label_selected="OK" name="ok_btn" />
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml b/linden/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml
index d6172f6..4b1b64f 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_avatar_picker.xml
@@ -1,15 +1,22 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="avatarpicker" title="选择人物"> 2
3 <text name="Type part of the person&apos;s name:"> 3<floater
4 min_height="340"
5 min_width="200"
6 name="avatarpicker"
7 title="选择居民">
8 <text
9 name="instruct_search_resident_name">
4 键入这个人的部分姓å: 10 键入这个人的部分姓å:
5 </text> 11 </text>
6 <button label="寻找" label_selected="寻找" name="Find" /> 12 <button label="寻找" label_selected="寻找" name="Find" />
7 <text name="Or select a calling card:"> 13 <text
14 name="Or select their calling card:">
8 或者选择一张通è¯å¡: 15 或者选择一张通è¯å¡:
9 </text> 16 </text>
10 <button label="选择" label_selected="选择" name="Select" /> 17 <button label="选择" label_selected="选择" name="Select" />
11 <button label="关闭" label_selected="关闭" name="Close" /> 18 <button label="关闭" label_selected="关闭" name="Close" />
12 <text name="NotFound"> 19 <string name="NotFound">
13 &apos;[TEXT]&apos;没有找到 20 没有找到 &apos;[TEXT]&apos;
14 </text> 21 </string>
15</floater> 22</floater> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_avatar_textures.xml b/linden/indra/newview/skins/default/xui/zh/floater_avatar_textures.xml
index bdb4e75..8f2ba92 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_avatar_textures.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_avatar_textures.xml
@@ -1,25 +1,25 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="avatar_texture_debug" title="Avatar Textures"> 2<floater name="avatar_texture_debug" title="化身æè´¨">
3 <text name=""> 3 <text name="">
4 Baked Textures 4 烘烤的æè´¨
5 </text> 5 </text>
6 <text name=""> 6 <text name="">
7 Composite Textures 7 å¤åˆæè´¨
8 </text> 8 </text>
9 <texture_picker label="头部" name="baked_head" /> 9 <texture_picker label="头部" name="baked_head" />
10 <texture_picker label="化妆" name="head_bodypaint" /> 10 <texture_picker label="化妆" name="head_bodypaint" />
11 <texture_picker label="头å‘" name="hair" /> 11 <texture_picker label="头å‘" name="hair" />
12 <button label="Dump" label_selected="Dump" name="Dump" /> 12 <button label="转储" label_selected="转储" name="Dump" />
13 <texture_picker label="眼ç›" name="baked_eyes" /> 13 <texture_picker label="åŒçœ¼" name="baked_eyes" />
14 <texture_picker label="Eye" name="eye_texture" /> 14 <texture_picker label="眼ç›" name="eye_texture" />
15 <texture_picker label="Upper Body" name="baked_upper_body" /> 15 <texture_picker label="上身" name="baked_upper_body" />
16 <texture_picker label="Upper Body Tattoo" name="upper_bodypaint" /> 16 <texture_picker label="上身纹身" name="upper_bodypaint" />
17 <texture_picker label="内衣" name="undershirt" /> 17 <texture_picker label="内衣" name="undershirt" />
18 <texture_picker label="手套" name="gloves" /> 18 <texture_picker label="手套" name="gloves" />
19 <texture_picker label="衬衣" name="shirt" /> 19 <texture_picker label="衬衣" name="shirt" />
20 <texture_picker label="Upper Jacket" name="upper_jacket" /> 20 <texture_picker label="上身外衣" name="upper_jacket" />
21 <texture_picker label="Lower Body" name="baked_lower_body" /> 21 <texture_picker label="下身" name="baked_lower_body" />
22 <texture_picker label="Lower Body Tattoo" name="lower_bodypaint" /> 22 <texture_picker label="下身纹身" name="lower_bodypaint" />
23 <texture_picker label="内裤" name="underpants" /> 23 <texture_picker label="内裤" name="underpants" />
24 <texture_picker label="袜å­" name="socks" /> 24 <texture_picker label="袜å­" name="socks" />
25 <texture_picker label="éž‹å­" name="shoes" /> 25 <texture_picker label="éž‹å­" name="shoes" />
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_beacons.xml b/linden/indra/newview/skins/default/xui/zh/floater_beacons.xml
new file mode 100644
index 0000000..0aaea0b
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_beacons.xml
@@ -0,0 +1,35 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="beacons"
4 title="ä¿¡æ ‡">
5 <panel
6 name="beacons_panel">
7 <check_box
8 name="touch_only"
9 label="有触摸脚本的物体" />
10 <check_box
11 name="scripted"
12 label="有脚本的物体" />
13 <check_box
14 name="physical"
15 label="物ç†ç‰©ä½“" />
16 <check_box
17 name="sounds"
18 label="声音æº" />
19 <check_box
20 name="particles"
21 label="ç²’å­æº" />
22 <check_box
23 name="highlights"
24 label="渲染高亮" />
25 <check_box
26 name="beacons"
27 label="渲染信标" />
28 <text
29 name="beacon_width_label">
30 信标宽度:
31 </text>
32 </panel>
33</floater>
34
35
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_build_options.xml b/linden/indra/newview/skins/default/xui/zh/floater_build_options.xml
index 64ada24..a7b1c7e 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_build_options.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_build_options.xml
@@ -1,7 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="build options floater" title="æ ¼å­é€‰é¡¹"> 2<floater name="build options floater" title="网格选项">
3 <spinner label="æ ¼å­å•ä½ (ç±³)&quot;" name="GridResolution" /> 3 <spinner label="网格å•ä½ (ç±³)" name="GridResolution" />
4 <spinner label="æ ¼å­å®½åº¦ (ç±³)" name="GridDrawSize" /> 4 <spinner label="网格宽度 (ç±³)" name="GridDrawSize" />
5 <check_box label="Enable Sub-Unit Snapping" name="GridSubUnit" /> 5 <check_box
6 initial_value="false"
7 label="å¯ç”¨å­å•ä½å¯¹é½"
8 name="GridSubUnit" />
9 <check_box
10 initial_value="false"
11 label="显示剖é¢"
12 name="GridCrossSection" />
6 <slider label="æ ¼å­ä¸é€æ˜Žåº¦" name="GridOpacity" /> 13 <slider label="æ ¼å­ä¸é€æ˜Žåº¦" name="GridOpacity" />
7</floater> 14</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_bumps.xml b/linden/indra/newview/skins/default/xui/zh/floater_bumps.xml
index b4d265a..817965c 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_bumps.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_bumps.xml
@@ -1,21 +1,21 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_bumps" title="撞击, 推动和敲打"> 2<floater name="floater_bumps" title="碰撞ã€æŽ¨åŠ¨å’Œæ•²æ‰“">
3 <text name="none_detected"> 3 <text name="none_detected">
4 没有监测到 4 没有监测到
5 </text> 5 </text>
6 <text name="bump"> 6 <text name="bump">
7 [TIME] [FIRST] [LAST] 抛弃了你 7 [TIME] [FIRST] [LAST] 撞了你
8 </text> 8 </text>
9 <text name="llpushobject"> 9 <text name="llpushobject">
10 [TIME] [FIRST] [LAST]用脚本推了你 10 [TIME] [FIRST] [LAST] 用脚本推了你
11 </text> 11 </text>
12 <text name="selected_object_collide"> 12 <text name="selected_object_collide">
13 [TIME] [FIRST] [LAST] 用一件东东敲打了你 13 [TIME] [FIRST] [LAST] 用一件物体敲打了你
14 </text> 14 </text>
15 <text name="scripted_object_collide"> 15 <text name="scripted_object_collide">
16 [TIME] [FIRST] [LAST]用一件脚本东东敲打了你 16 [TIME] [FIRST] [LAST] 用一件有脚本物体敲打了你
17 </text> 17 </text>
18 <text name="physical_object_collide"> 18 <text name="physical_object_collide">
19 [TIME] [FIRST] [LAST] 用一件物ç†ä¸œä¸œæ•²æ‰“了你 19 [TIME] [FIRST] [LAST] 用一件物ç†çš„物体敲打了你
20 </text> 20 </text>
21</floater> 21</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_buy_contents.xml b/linden/indra/newview/skins/default/xui/zh/floater_buy_contents.xml
index 079f792..2ce722e 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_buy_contents.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_buy_contents.xml
@@ -1,12 +1,24 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_buy_contents" title="购买内容"> 2<floater name="floater_buy_contents" title="购买内容">
3 <text name="contains_text"> 3 <text name="contains_text">
4 [NAME]包括: 4 [NAME] 包括:
5 </text> 5 </text>
6 <text name="buy_text"> 6 <text name="buy_text">
7 购买L$[AMOUNT]于[NAME]? 7 以 L$[AMOUNT] 从 [NAME] 处购买?
8 </text> 8 </text>
9 <button label="å–消" label_selected="å–消" name="cancel_btn" /> 9 <button label="å–消" label_selected="å–消" name="cancel_btn" />
10 <button label="è´­ä¹°" label_selected="è´­ä¹°" name="buy_btn" /> 10 <button label="è´­ä¹°" label_selected="è´­ä¹°" name="buy_btn" />
11 <check_box label="马上穿上衣æœ" name="wear_check" /> 11 <check_box label="马上穿上衣æœ" name="wear_check" />
12 <string
13 name="no_copy_text">
14 (ä¸å¯å¤åˆ¶)
15 </string>
16 <string
17 name="no_modify_text">
18 (ä¸å¯æ›´æ”¹)
19 </string>
20 <string
21 name="no_transfer_text">
22 (ä¸å¯è½¬è®©)
23 </string>
12</floater> 24</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_buy_currency.xml b/linden/indra/newview/skins/default/xui/zh/floater_buy_currency.xml
index bc8b13a..e065d2a 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_buy_currency.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_buy_currency.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="buy currency" title="购买现钞"> 2<floater name="buy currency" title="è´­ä¹°è´§å¸">
3 <text name="info_buying"> 3 <text name="info_buying">
4 购买现钞: 4 è´­ä¹°è´§å¸:
5 </text> 5 </text>
6 <text name="info_cannot_buy"> 6 <text name="info_cannot_buy">
7 现在无法购买: 7 现在无法购买:
@@ -10,14 +10,14 @@
10 你需è¦æ›´å¤šçš„è´§å¸: 10 你需è¦æ›´å¤šçš„è´§å¸:
11 </text> 11 </text>
12 <text name="error_message"> 12 <text name="error_message">
13 出错 13 事情好åƒä¸å¤§å¯¹å¤´ã€‚
14 </text> 14 </text>
15 <button label="去网页" name="error_web" /> 15 <button label="去网页" name="error_web" />
16 <text name="contacting"> 16 <text name="contacting">
17 è”系林登X... 17 正在连接 LindeX...
18 </text> 18 </text>
19 <text name="buy_action_unknown"> 19 <text name="buy_action_unknown">
20 è´­ä¹°L$按照LindeXè´§å¸å…‘æ¢æ¯”率 20 在 LindeX è´§å¸äº¤æ¢æ‰€è´­ä¹° L$
21 </text> 21 </text>
22 <text name="buy_action"> 22 <text name="buy_action">
23 [NAME] L$ [PRICE] 23 [NAME] L$ [PRICE]
@@ -50,12 +50,15 @@
50 L$ [AMT] 50 L$ [AMT]
51 </text> 51 </text>
52 <text name="purchase_warning_repurchase"> 52 <text name="purchase_warning_repurchase">
53 请确认åªè´­ä¹°çŽ°é’ž. 53 确认此次æ“作åªä¼šè´­ä¹°çŽ°é’žã€‚
54你需è¦é‡è¯•è¯¥æ“作。 54你需è¦é‡è¯•è¯¥æ“作。
55 </text> 55 </text>
56 <text name="purchase_warning_notenough"> 56 <text name="purchase_warning_notenough">
57 你没有购买足够的货å¸ï¼Œä¸è¶³ä»¥è´­ä¹°ã€‚ 57 你没有购买足够的货å¸ã€‚请增加购买的é¢åº¦ã€‚
58 </text> 58 </text>
59 <button label="è´­ä¹°" name="buy_btn" /> 59 <button label="è´­ä¹°" name="buy_btn" />
60 <button label="å–消" name="cancel_btn" /> 60 <button label="å–消" name="cancel_btn" />
61 <string name="buy_currency">
62 以大约 US$ [USD] 购买 L$ [LINDENS]
63 </string>
61</floater> 64</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_buy_land.xml b/linden/indra/newview/skins/default/xui/zh/floater_buy_land.xml
index f7336aa..06b56e8 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_buy_land.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_buy_land.xml
@@ -7,13 +7,13 @@
7 (未知) 7 (未知)
8 </text> 8 </text>
9 <text name="estate_name_label"> 9 <text name="estate_name_label">
10 ç§äººé¢†åœ°: 10 地产:
11 </text> 11 </text>
12 <text name="estate_name_text"> 12 <text name="estate_name_text">
13 (未知) 13 (未知)
14 </text> 14 </text>
15 <text name="estate_owner_label"> 15 <text name="estate_owner_label">
16 ä¸åŠ¨äº§ä¸»äºº: 16 地产主人:
17 </text> 17 </text>
18 <text name="estate_owner_text"> 18 <text name="estate_owner_text">
19 (未知) 19 (未知)
@@ -25,17 +25,17 @@
25 è¿™å—区域内被购买的土地å¯èƒ½å¯ä»¥è¢«é‡æ–°å‡ºå”®ï¼Œä¹Ÿå¯èƒ½ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚ 25 è¿™å—区域内被购买的土地å¯èƒ½å¯ä»¥è¢«é‡æ–°å‡ºå”®ï¼Œä¹Ÿå¯èƒ½ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚
26 </text> 26 </text>
27 <text name="changeable_clause"> 27 <text name="changeable_clause">
28 å¯èƒ½å¯ä»¥æˆ–å¯èƒ½ä¸å¯ä»¥è¢«è¿žæŽ¥æˆ–划分 28 å¯èƒ½å¯ä»¥ä¹Ÿå¯èƒ½ä¸å¯ä»¥è¢«åˆå¹¶æˆ–划分
29 </text> 29 </text>
30 <text name="covenant_text"> 30 <text name="covenant_text">
31 ä½ å¿…é¡»åŒæ„这项ä¸åŠ¨äº§å¥‘约åˆåŒ: 31 ä½ å¿…é¡»åŒæ„以下的ä¸åŠ¨äº§å¥‘约åˆåŒ:
32 </text> 32 </text>
33 <text_editor name="covenant_editor"> 33 <text_editor name="covenant_editor">
34 请等待... 34 请等待...
35 </text_editor> 35 </text_editor>
36 <check_box label="我åŒæ„以上规定的åˆçº¦" name="agree_covenant" /> 36 <check_box label="我åŒæ„以上规定的åˆçº¦" name="agree_covenant" />
37 <text name="info_parcel_label"> 37 <text name="info_parcel_label">
38 土地: 38 地å—:
39 </text> 39 </text>
40 <text name="info_parcel"> 40 <text name="info_parcel">
41 Scotopteryx 138,204 41 Scotopteryx 138,204
@@ -56,9 +56,9 @@
56 购买该土地将会: 56 购买该土地将会:
57 </text> 57 </text>
58 <text name="error_message"> 58 <text name="error_message">
59 出错 59 事情好åƒå“ªéŒå‡ºäº†é—®é¢˜ã€‚
60 </text> 60 </text>
61 <button label="去网页" name="error_web" /> 61 <button label="打开网页" name="error_web" />
62 <text name="account_action"> 62 <text name="account_action">
63 ä½ å°†å‡çº§è‡³ä¼˜å…ˆçº§ä¼šå‘˜ã€‚ 63 ä½ å°†å‡çº§è‡³ä¼˜å…ˆçº§ä¼šå‘˜ã€‚
64 </text> 64 </text>
@@ -90,66 +90,75 @@
90 你有L$2,100. 90 你有L$2,100.
91 </text> 91 </text>
92 <text name="currency_action"> 92 <text name="currency_action">
93 购买更多L$ 93 è´­ä¹°é¢å¤–çšL$
94 </text> 94 </text>
95 <line_editor name="currency_amt"> 95 <line_editor name="currency_amt">
96 1000 96 1000
97 </line_editor> 97 </line_editor>
98 <text name="currency_est"> 98 <text name="currency_est">
99 for approx. US$ [AMOUNT2] 99 以大约 US$ [AMOUNT2]
100 </text> 100 </text>
101 <text name="currency_balance"> 101 <text name="currency_balance">
102 你有L$2,100. 102 你有L$2,100.
103 </text> 103 </text>
104 <check_box label="Remove Group Contribution On Purchase" name="remove_contribution" /> 104 <check_box
105 label="从团队é…é¢è´¡çŒ®ä¸­æ’¤åŽ» [AMOUNT] 平方米。"
106 name="remove_contribution"
107 visible="false" />
105 <button label="è´­ä¹°" name="buy_btn" /> 108 <button label="è´­ä¹°" name="buy_btn" />
106 <button label="å–消" name="cancel_btn" /> 109 <button label="å–消" name="cancel_btn" />
107 <text name="can_resell"> 110 <text name="can_resell">
108 å¯èƒ½è¢«é‡æ–°å‡ºå”®. 111 å¯ä»¥è¢«é‡æ–°å‡ºå”®ã€‚
109 </text> 112 </text>
110 <text name="can_not_resell"> 113 <text name="can_not_resell">
111 å¯èƒ½ä¸ä¼šè¢«é‡æ–°å‡ºå”®. 114 ä¸å¯ä»¥è¢«é‡æ–°å‡ºå”®ã€‚
112 </text> 115 </text>
113 <text name="can_change"> 116 <text name="can_change">
114 å¯èƒ½è¢«è¿žæŽ¥æˆ–划分. 117 å¯ä»¥è¢«åˆå¹¶æˆ–划分。
115 </text> 118 </text>
116 <text name="can_not_change"> 119 <text name="can_not_change">
117 å¯èƒ½ä¸ä¼šè¢«è¿žæŽ¥æˆ–划分. 120 ä¸å¯ä»¥è¢«åˆå¹¶æˆ–划分。
118 </text> 121 </text>
119 <text name="cant_buy_for_group"> 122 <text name="cant_buy_for_group">
120 你没有为目å‰ä½ çš„社团购买土地的许å¯è¯ã€‚ 123 你没有为目å‰ä½ çš„社团购买土地的许å¯ã€‚
121 </text> 124 </text>
122 <text name="no_land_selected"> 125 <text name="no_land_selected">
123 没有选择任何土地 126 没有选择任何土地
124 </text> 127 </text>
125 <text name="multiple_parcels_selected"> 128 <text name="multiple_parcels_selected">
126 选择了多ç§ä¸åŒç±»åž‹çš„土地。请å°è¯•é€‰æ‹©ä¸€å—较å°çš„土地。 129 选择了多个ä¸åŒçš„地å—。请å°è¯•é€‰æ‹©ä¸€å—较å°çš„土地。
127 </text> 130 </text>
128 <text name="no_permission"> 131 <text name="no_permission">
129 你没有为目å‰ä½ çš„社团购买土地的许å¯è¯ã€‚ 132 你没有为目å‰ä½ çš„社团购买土地的许å¯ã€‚
130 </text> 133 </text>
131 <text name="parcel_not_for_sale"> 134 <text name="parcel_not_for_sale">
132 所选择的土地ä¸åœ¨å¾…售状æ. 135 所选择的土地是éžåçš„ã
133 </text> 136 </text>
134 <text name="group_already_owns"> 137 <text name="group_already_owns">
135 这个社团已ç»æ‹¥æœ‰äº†è¿™å—土地. 138 社团已ç»æ‹¥æœ‰äº†è¿™å—土地。
136 </text> 139 </text>
137 <text name="you_already_own"> 140 <text name="you_already_own">
138 ä½ å·²ç»æ‹¥æœ‰äº†è¿™å—土地. 141 ä½ å·²ç»æ‹¥æœ‰äº†è¿™å—土地。
139 </text> 142 </text>
140 <text name="set_to_sell_to_other"> 143 <text name="set_to_sell_to_other">
141 所选的土地被设置æˆè½¬å–至其他社团。 144 所选的土地被设置æˆè½¬å–至他方。
142 </text> 145 </text>
143 <text name="no_public_land"> 146 <text name="no_public_land">
144 所选中的土地中没有公共区域. 147 所选中的土地中没有公共区域。
145 </text> 148 </text>
146 <text name="not_owned_by_you"> 149 <text name="not_owned_by_you">
147 你选择了一å—由其他人å æœ‰çš„土地.请å°è¯•é€‰æ‹©ä¸€å—较å°çš„土地. 150 你选择了一å—由其他人å æœ‰çš„土地。请å°è¯•é€‰æ‹©ä¸€å—较å°çš„土地。
151 </text>
152 <text name="for_first_time_group">
153 è¿™å—土地将为第一次购买者ä¿ç•™ã€‚ä½ ä¸èƒ½ä¸ºç¤¾å›¢è´­ä¹°å®ƒã€‚
154 </text>
155 <text name="for_first_time">
156 è¿™å—土地将为第一次购买者ä¿ç•™ã€‚ä½ å·²ç»æ‹¥æœ‰è‡ªå·±çš„土地了。
148 </text> 157 </text>
149 <text name="processing"> 158 <text name="processing">
150 Processing your purchase... 159 处ç†è´­ä¹°ä¸­...
151 160
152(This may take a minute or two.) 161(å¯èƒ½è¦ç­‰å¾…一两分钟。)
153 </text> 162 </text>
154 <text name="fetching_error"> 163 <text name="fetching_error">
155 在获å–土地购买信æ¯çš„时候出现错误。 164 在获å–土地购买信æ¯çš„时候出现错误。
@@ -178,44 +187,55 @@
178 <text name="first_purchase"> 187 <text name="first_purchase">
179 这是你第一次购买土地,并且是你唯一一次能够购买&apos;第一å—土地&apos;的机会. 188 这是你第一次购买土地,并且是你唯一一次能够购买&apos;第一å—土地&apos;的机会.
180 </text> 189 </text>
190 <text name="first_time_but_not_first_land">
191 这是你第一次购买土地,但你购买的ä¸æ˜¯ä¸ºç¬¬ä¸€æ¬¡è´­ä¹°åœŸåœ°çš„用户ä¿ç•™çš„土地。你å¯ä»¥ä½¿ç”¨æŸ¥è¯¢åŠŸèƒ½ï¼Œå®šä½ä¸€å—更便宜的 &apos;第一å—土地&apos;的代售土地.
192 </text>
181 <text name="land_holdings"> 193 <text name="land_holdings">
182 你拥有[BUYER]平方米的土地. 194 你拥有[BUYER]平方米的土地。
183 </text> 195 </text>
184 <text name="pay_to_for_land"> 196 <text name="pay_to_for_land">
185 支付L$ [AMOUNT]至[SELLER]è´­ä¹°è¿™å—土地 197 支付L$ [AMOUNT] 至 [SELLER] è´­ä¹°è¿™å—土地
186 </text> 198 </text>
187 <text name="buy_for_US"> 199 <text name="buy_for_US">
188 Buy L$ [AMOUNT] for approx. US$ [AMOUNT2] , 200 以大约 US$ [AMOUNT2] 购买 L$ [AMOUNT] ,
189 </text> 201 </text>
190 <text name="parcel_meters"> 202 <text name="parcel_meters">
191 è¿™å—土地的é¢ç§¯ä¸º[AMOUNT]平方米。 203 è¿™å—土地的é¢ç§¯ä¸º[AMOUNT]平方米。
192 </text> 204 </text>
193 <text name="premium_land"> 205 <text name="premium_land">
194 è¿™å—土地是é¢å¤–奖励, 而且现在åªæŒ‰[AMOUNT]平方米出售。 206 è¿™å—土地现在加价出售, 而且现在åªæŒ‰[AMOUNT]平方米出售。
195 </text> 207 </text>
196 <text name="discounted_land"> 208 <text name="discounted_land">
197 è¿™å—土地正在打折, 而且现在åªæŒ‰[AMOUNT]平方米出售。 209 è¿™å—土地正在打折, 而且现在åªæŒ‰[AMOUNT]平方米出售。
198 </text> 210 </text>
199 <text name="meters_supports_object"> 211 <text name="meters_supports_object">
200 [AMOUNT]平方米 212 [AMOUNT]平方米
201s支æŒæ•°é‡ä¸º[AMOUNT2]的东东 213支æŒ[AMOUNT2]个物体
202 </text> 214 </text>
203 <text name="sold_with_objects"> 215 <text name="sold_with_objects">
204 和东东一起出售 216 和物体一起出售
205 </text> 217 </text>
206 <text name="insufficient_land_credits"> 218 <text name="insufficient_land_credits">
207 在这次购买完æˆä¹‹å‰ï¼Œç¤¾å›¢[GROUP]将需è¦è¶³å¤Ÿçš„被贡献的土地所用的信用é¢åº¦ï¼Œæ¥è¦†ç›–这片土地。 219 在这次购买完æˆä¹‹å‰ï¼Œç¤¾å›¢[GROUP]将需è¦è¶³å¤Ÿçš„被贡献的土地所用的信用é¢åº¦ï¼Œæ¥è¦†ç›–这片土地。
208 </text> 220 </text>
209 <text name="have_enough_lindens"> 221 <text name="have_enough_lindens">
210 你有L$ [AMOUNT],这些钱足够购买这å—土地。 222 你有L$ [AMOUNT], 这些钱足够购买这å—土地。
211 </text> 223 </text>
212 <text name="not_enough_lindens"> 224 <text name="not_enough_lindens">
213 ä½ åªæœ‰L$ [AMOUNT],ä½ è¿˜éœ€è¦ L$ [AMOUNT2] ã€. 225 ä½ åªæœ‰L$ [AMOUNT], ä½ è¿˜éœ€è¦ L$ [AMOUNT2]ã€
214 </text> 226 </text>
215 <text name="balance_left"> 227 <text name="balance_left">
216 此项消费åŽ,你还会有L$ [AMOUNT]结余. 228 此项消费åŽ, 你还会有L$ [AMOUNT]结余.
217 </text> 229 </text>
218 <text name="balance_needed"> 230 <text name="balance_needed">
219 你需è¦è´­ä¹°è‡³å°‘ L$ [AMOUNT]æ¥è´­ä¹°è¿™å—土地。 231 你需è¦è´­ä¹°è‡³å°‘ L$ [AMOUNT]æ¥è´­ä¹°è¿™å—土地。
220 </text> 232 </text>
233 <string
234 name="no_parcel_selected">
235 (没有选择地å—)
236 </string>
237 <string
238 name="buy_currency">
239 以大约 US$ [USD] 购买 L$ [LINDENS]
240 </string>
221</floater> 241</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_buy_object.xml b/linden/indra/newview/skins/default/xui/zh/floater_buy_object.xml
index 54c829d..b7c977c 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_buy_object.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_buy_object.xml
@@ -1,11 +1,26 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="contents" title="购买东东拷è´"> 2<floater name="contents" title="购买物体副本">
3 <text name="contents_text"> 3 <text name="contents_text">
4 以åŠå®ƒçš„内容: 4 以åŠå®ƒçš„内容:
5 </text> 5 </text>
6 <text name="buy_text"> 6 <text name="buy_text">
7 购买L$[AMOUNT]于[NAME]? 7 以 L$[AMOUNT] 从 [NAME] 处购买?
8 </text> 8 </text>
9 <button label="å–消" label_selected="å–消" name="cancel_btn" /> 9 <button label="å–消" label_selected="å–消" name="cancel_btn" />
10 <button label="è´­ä¹°" label_selected="è´­ä¹°" name="buy_btn" /> 10 <button label="è´­ä¹°" label_selected="è´­ä¹°" name="buy_btn" />
11 <string name="title_buy_text">
12 è´­ä¹°
13 </string>
14 <string name="title_buy_copy_text">
15 è´­ä¹°å¤ä»¶
16 </string>
17 <string name="no_copy_text">
18 (ä¸å¯å¤åˆ¶)
19 </string>
20 <string name="no_modify_text">
21 (ä¸å¯æ›´æ”¹)
22 </string>
23 <string name="no_transfer_text">
24 (ä¸å¯è½¬è®©)
25 </string>
11</floater> 26</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_camera.xml b/linden/indra/newview/skins/default/xui/zh/floater_camera.xml
new file mode 100644
index 0000000..23c7387
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_camera.xml
@@ -0,0 +1,11 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="move floater"
4 title="">
5 <!-- 图标是代ç ä¸­çš„自定按钮(写死的) -->
6 <string name="rotate_tooltip">围绕焦点旋转摄åƒæœº</string>
7 <string name="zoom_tooltip">æœç€ç„¦ç‚¹ç¼©æ”¾æ‘„åƒæœº</string>
8 <string name="move_tooltip">上下左å³ç§»åŠ¨æ‘„åƒæœº</string>
9</floater>
10
11
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_chat_history.xml b/linden/indra/newview/skins/default/xui/zh/floater_chat_history.xml
index cae2952..fe44967 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_chat_history.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_chat_history.xml
@@ -1,5 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="chat floater" title="èŠå¤©è®°å½•"> 2<floater name="chat floater" title="本地èŠå¤©">
3 <button label="å±è”½å±…æ°‘" label_selected="å±è”½å±…æ°‘" name="Mute resident" /> 3 <string name="ringing">
4 <check_box label="显示å±è”½å†…容" name="show mutes" /> 4 正在连接到世界内语音èŠå¤©...
5 </string>
6 <string name="connected">
7 已连接。
8 </string>
9 <string name="unavailable">
10 当å‰ä½ç½®è¯­éŸ³ä¸å¯ç”¨ã€‚
11 </string>
12 <string name="hang_up">
13 从世界内语音èŠå¤©æ–­å¼€
14 </string>
15 <layout_stack name="panels">
16 <layout_panel name="im_contents_panel" min_width="275">
17 <combo_box label="动作" name="Gesture">
18 <combo_item name="Gestures">
19 动作
20 </combo_item>
21 </combo_box>
22 <check_box label="显示å±è”½çš„文字" name="show mutes" />
23 <button label="&lt; &lt;" label_selected="&gt; &gt;" name="toggle_active_speakers_btn"
24 tool_tip="显示在该å³æ—¶é€šä¿¡ä¼šè¯ä¸­æ´»åŠ¨çš„å‚与者。" />
25 <panel name="chat_panel">
26 <string name="gesture_label">
27 动作
28 </string>
29 <line_editor label="点击这里开始èŠå¤©ã€‚" name="Chat Editor" />
30 <flyout_button label="说" name="Say" tool_tip="(回车键)" >
31 <flyout_button_item name="shout_item">å–Šå«</flyout_button_item>
32 <flyout_button_item name="say_item">说</flyout_button_item>
33 <flyout_button_item name="whisper_item">å°å£°è¯´</flyout_button_item>
34 </flyout_button>
35 </panel>
36 </layout_panel>
37 </layout_stack>
5</floater> 38</floater>
39<!--Translated for Second Life 1.21.3 -->
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_chatterbox.xml b/linden/indra/newview/skins/default/xui/zh/floater_chatterbox.xml
new file mode 100644
index 0000000..cff5808
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_chatterbox.xml
@@ -0,0 +1,3 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<multi_floater name="floater_chatterbox" title="交æµ">
3</multi_floater> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_clothing.xml b/linden/indra/newview/skins/default/xui/zh/floater_clothing.xml
index 3572602..1e94b01 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_clothing.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_clothing.xml
@@ -2,7 +2,7 @@
2<floater name="clothing" title="衣物"> 2<floater name="clothing" title="衣物">
3 <scroll_list name="clothing_list"> 3 <scroll_list name="clothing_list">
4 <column label="" name="icon" /> 4 <column label="" name="icon" />
5 <column label="Name" name="name" /> 5 <column label="å称" name="name" />
6 </scroll_list> 6 </scroll_list>
7 <button label="脱掉" name="take_off_btn" /> 7 <button label="脱掉" name="take_off_btn" />
8 <button label="穿上" name="wear_btn" /> 8 <button label="穿上" name="wear_btn" />
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_color_picker.xml b/linden/indra/newview/skins/default/xui/zh/floater_color_picker.xml
index b9e7b53..80c7297 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_color_picker.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_color_picker.xml
@@ -10,10 +10,10 @@
10 è“色: 10 è“色:
11 </text> 11 </text>
12 <text name="h_val_text"> 12 <text name="h_val_text">
13 颜色: 13 色调:
14 </text> 14 </text>
15 <text name="s_val_text"> 15 <text name="s_val_text">
16 å过: 16 饱和度:
17 </text> 17 </text>
18 <text name="l_val_text"> 18 <text name="l_val_text">
19 亮度: 19 亮度:
@@ -26,6 +26,6 @@
26 当å‰é¢œè‰²: 26 当å‰é¢œè‰²:
27 </text> 27 </text>
28 <text name="(Drag below to save.)"> 28 <text name="(Drag below to save.)">
29 (拖动下列内容以储存.) 29 (拖动到下方储存。)
30 </text> 30 </text>
31</floater> 31</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_critical.xml b/linden/indra/newview/skins/default/xui/zh/floater_critical.xml
index de628aa..ecf454f 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_critical.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_critical.xml
@@ -2,6 +2,8 @@
2<floater name="modal container" title=" "> 2<floater name="modal container" title=" ">
3 <button label="继续" label_selected="继续" name="Continue" /> 3 <button label="继续" label_selected="继续" name="Continue" />
4 <button label="å–消" label_selected="å–消" name="Cancel" /> 4 <button label="å–消" label_selected="å–消" name="Cancel" />
5 <text
6 name="tos_title"></text>
5 <text name="tos_heading"> 7 <text name="tos_heading">
6 请仔细阅读下列信æ¯ã€‚ 8 请仔细阅读下列信æ¯ã€‚
7 </text> 9 </text>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_customize.xml b/linden/indra/newview/skins/default/xui/zh/floater_customize.xml
index e25f38f..d798f4c 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_customize.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_customize.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater customize" title="外表"> 2<floater name="floater customize" title="外表">
3 <tab_container name="customize tab container"> 3 <tab_container name="customize tab container">
4 <panel label="Body Parts" /> 4 <panel label="身体部ä½" />
5 <panel label="外形" name="Shape"> 5 <panel label="体型" name="Shape">
6 <button label="创建新的身æ" label_selected="创建新的身æ" 6 <button label="创建新的体型" label_selected="创建新的体型"
7 name="Create New" /> 7 name="Create New" />
8 <button label="脱掉" label_selected="脱掉" name="Take Off" /> 8 <button label="脱掉" label_selected="脱掉" name="Take Off" />
9 <button label="存储" label_selected="存储" name="Save" /> 9 <button label="存储" label_selected="存储" name="Save" />
@@ -16,14 +16,22 @@
16 <button label="é¼»å­" label_selected="é¼»å­" name="Nose" /> 16 <button label="é¼»å­" label_selected="é¼»å­" name="Nose" />
17 <button label="嘴部" label_selected="嘴部" name="Mouth" /> 17 <button label="嘴部" label_selected="嘴部" name="Mouth" />
18 <button label="下巴" label_selected="下巴" name="Chin" /> 18 <button label="下巴" label_selected="下巴" name="Chin" />
19 <button label="åŠæˆå“" label_selected="åŠæˆå“" name="Torso" /> 19 <button label="腹部" label_selected="腹部" name="Torso" />
20 <button label="腿部" label_selected="腿部" name="Legs" /> 20 <button label="腿部" label_selected="腿部" name="Legs" />
21 <radio_group name="sex radio">
22 <radio_item type="string" length="1" name="radio">
23 女性
24 </radio_item>
25 <radio_item type="string" length="1" name="radio2">
26 男性
27 </radio_item>
28 </radio_group>
21 <button label="éšæœºæŽ’列" label_selected="éšæœºæŽ’列" name="Randomize" /> 29 <button label="éšæœºæŽ’列" label_selected="éšæœºæŽ’列" name="Randomize" />
22 <text type="string" length="1" name="title"> 30 <text type="string" length="1" name="title">
23 [DESC] 31 [DESC]
24 </text> 32 </text>
25 <text type="string" length="1" name="title_no_modify"> 33 <text type="string" length="1" name="title_no_modify">
26 [DESC]:ä¸èƒ½ä¿®é¥° 34 [DESC]: 无法修改
27 </text> 35 </text>
28 <text type="string" length="1" name="title_loading"> 36 <text type="string" length="1" name="title_loading">
29 [DESC]: 载入中... 37 [DESC]: 载入中...
@@ -35,19 +43,13 @@
35 ä½äºŽ[PATH] 43 ä½äºŽ[PATH]
36 </text> 44 </text>
37 <text type="string" length="1" name="not worn instructions"> 45 <text type="string" length="1" name="not worn instructions">
38 è¦ä½¿ç”¨æ–°çš„体型,需从你的库存中拖拽一个新的体型至你的化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 46 è¦ä½¿ç”¨æ–°çš„体型,需从你的库存中拖拽一个新的体型至你的化身上。
47或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
39 </text> 48 </text>
40 <text type="string" length="1" name="no modify instructions"> 49 <text type="string" length="1" name="no modify instructions">
41 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 50 你没有修改这件穿ç€çš„æƒåˆ©ã€‚
42 </text> 51 </text>
43 <radio_group name="sex radio"> 52
44 <radio_item type="string" length="1" name="radio">
45 女性
46 </radio_item>
47 <radio_item type="string" length="1" name="radio2">
48 男性
49 </radio_item>
50 </radio_group>
51 </panel> 53 </panel>
52 <panel label="皮肤" name="Skin"> 54 <panel label="皮肤" name="Skin">
53 <button label="创建新的皮肤" label_selected="创建新的皮肤" 55 <button label="创建新的皮肤" label_selected="创建新的皮肤"
@@ -65,7 +67,7 @@
65 [DESC] 67 [DESC]
66 </text> 68 </text>
67 <text type="string" length="1" name="title_no_modify"> 69 <text type="string" length="1" name="title_no_modify">
68 [DESC]:ä¸èƒ½ä¿®é¥° 70 [DESC]: 无法修改
69 </text> 71 </text>
70 <text type="string" length="1" name="title_loading"> 72 <text type="string" length="1" name="title_loading">
71 [DESC]: 载入中... 73 [DESC]: 载入中...
@@ -74,22 +76,24 @@
74 [DESC]: æ²¡æœ‰è¢«ç©¿ç€ 76 [DESC]: 没有被穿ç€
75 </text> 77 </text>
76 <text type="string" length="1" name="path"> 78 <text type="string" length="1" name="path">
77 ä½äºŽ[PATH] 79 ä½äºŽ [PATH]
78 </text> 80 </text>
79 <text type="string" length="1" name="not worn instructions"> 81 <text type="string" length="1" name="not worn instructions">
80 è¦ä½¿ç”¨æ–°çš„皮肤,需从你的库存中拖拽一个新的皮肤至你的化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 82 è¦ä½¿ç”¨æ–°çš„皮肤,需从你的库存中拖拽一个新的皮肤至你的
83化身上。
84或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
81 </text> 85 </text>
82 <text type="string" length="1" name="no modify instructions"> 86 <text type="string" length="1" name="no modify instructions">
83 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 87 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚
84 </text> 88 </text>
85 <texture_picker label="头部纹身" name="Head Tattoos" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 89 <texture_picker label="头部纹身" name="Head Tattoos" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
86 <texture_picker label="上身的纹身" name="Upper Tattoos" 90 <texture_picker label="上身的纹身" name="Upper Tattoos"
87 tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 91 tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
88 <texture_picker label="é™ä½Žçº¹èº«" name="Lower Tattoos" 92 <texture_picker label="下身纹身" name="Lower Tattoos"
89 tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 93 tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
90 </panel> 94 </panel>
91 <panel label="头å‘" name="Hair"> 95 <panel label="头å‘" name="Hair">
92 <button label="传建新的头å‘" label_selected="传建新的头å‘" 96 <button label="创建新的头å‘" label_selected="传建新的头å‘"
93 name="Create New" /> 97 name="Create New" />
94 <button label="脱掉" label_selected="脱掉" name="Take Off" /> 98 <button label="脱掉" label_selected="脱掉" name="Take Off" />
95 <button label="存储" label_selected="存储" name="Save" /> 99 <button label="存储" label_selected="存储" name="Save" />
@@ -98,13 +102,13 @@
98 <button label="颜色" label_selected="颜色" name="Color" /> 102 <button label="颜色" label_selected="颜色" name="Color" />
99 <button label="风格" label_selected="风格" name="Style" /> 103 <button label="风格" label_selected="风格" name="Style" />
100 <button label="眉毛" label_selected="眉毛" name="Eyebrows" /> 104 <button label="眉毛" label_selected="眉毛" name="Eyebrows" />
101 <button label="é¢éƒ¨çš„" label_selected="é¢éƒ¨çš„" name="Facial" /> 105 <button label="胡须" label_selected="胡须" name="Facial" />
102 <button label="éšæœºæŽ’列" label_selected="éšæœºæŽ’列" name="Randomize" /> 106 <button label="éšæœºæŽ’列" label_selected="éšæœºæŽ’列" name="Randomize" />
103 <text type="string" length="1" name="title"> 107 <text type="string" length="1" name="title">
104 [DESC] 108 [DESC]
105 </text> 109 </text>
106 <text type="string" length="1" name="title_no_modify"> 110 <text type="string" length="1" name="title_no_modify">
107 [DESC]:ä¸èƒ½ä¿®é¥° 111 [DESC]: 无法修改
108 </text> 112 </text>
109 <text type="string" length="1" name="title_loading"> 113 <text type="string" length="1" name="title_loading">
110 [DESC]: 载入中... 114 [DESC]: 载入中...
@@ -116,15 +120,16 @@
116 ä½äºŽ[PATH] 120 ä½äºŽ[PATH]
117 </text> 121 </text>
118 <text type="string" length="1" name="not worn instructions"> 122 <text type="string" length="1" name="not worn instructions">
119 è¦ä½¿ç”¨æ–°çš„å‘型,需从你的库存中拖拽一个新的å‘型至你的化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 123 è¦ä½¿ç”¨æ–°çš„å‘型,需从你的库存中拖拽一个新的å‘型至你的化身上。
124或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
120 </text> 125 </text>
121 <text type="string" length="1" name="no modify instructions"> 126 <text type="string" length="1" name="no modify instructions">
122 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 127 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚
123 </text> 128 </text>
124 <texture_picker label="æè´¨" name="Texture" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 129 <texture_picker label="æè´¨" name="Texture" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
125 </panel> 130 </panel>
126 <panel label="眼ç›" name="Eyes"> 131 <panel label="眼ç›" name="Eyes">
127 <button label="传建新的眼ç›" label_selected="传建新的眼ç›" 132 <button label="创建新的眼ç›" label_selected="创建新的眼ç›"
128 name="Create New" /> 133 name="Create New" />
129 <button label="脱掉" label_selected="脱掉" name="Take Off" /> 134 <button label="脱掉" label_selected="脱掉" name="Take Off" />
130 <button label="存储" label_selected="存储" name="Save" /> 135 <button label="存储" label_selected="存储" name="Save" />
@@ -135,7 +140,7 @@
135 [DESC] 140 [DESC]
136 </text> 141 </text>
137 <text type="string" length="1" name="title_no_modify"> 142 <text type="string" length="1" name="title_no_modify">
138 [DESC]:ä¸èƒ½ä¿®é¥° 143 [DESC]: 无法修改
139 </text> 144 </text>
140 <text type="string" length="1" name="title_loading"> 145 <text type="string" length="1" name="title_loading">
141 [DESC]: 载入中... 146 [DESC]: 载入中...
@@ -147,14 +152,15 @@
147 ä½äºŽ[PATH] 152 ä½äºŽ[PATH]
148 </text> 153 </text>
149 <text type="string" length="1" name="not worn instructions"> 154 <text type="string" length="1" name="not worn instructions">
150 è¦ä½¿ç”¨æ–°çš„眼ç›ï¼Œéœ€ä»Žä½ çš„库存中拖拽一个新的眼ç›è‡³ä½ çš„化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 155 è¦ä½¿ç”¨æ–°çš„眼ç›ï¼Œéœ€ä»Žä½ çš„库存中拖拽一个新的眼ç›è‡³ä½ çš„化身上。
156或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
151 </text> 157 </text>
152 <text type="string" length="1" name="no modify instructions"> 158 <text type="string" length="1" name="no modify instructions">
153 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 159 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚
154 </text> 160 </text>
155 <texture_picker label="爱丽ä¸" name="Iris" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 161 <texture_picker label="瞳孔" name="Iris" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
156 </panel> 162 </panel>
157 <panel label="Clothes" /> 163 <panel label="æœé¥°" />
158 <panel label="衬衣" name="Shirt"> 164 <panel label="衬衣" name="Shirt">
159 <button label="创建新的衬衫" label_selected="创建新的衬衫" 165 <button label="创建新的衬衫" label_selected="创建新的衬衫"
160 name="Create New" /> 166 name="Create New" />
@@ -166,7 +172,7 @@
166 [DESC] 172 [DESC]
167 </text> 173 </text>
168 <text type="string" length="1" name="title_no_modify"> 174 <text type="string" length="1" name="title_no_modify">
169 [DESC]:ä¸èƒ½ä¿®é¥° 175 [DESC]: 无法修改
170 </text> 176 </text>
171 <text type="string" length="1" name="title_loading"> 177 <text type="string" length="1" name="title_loading">
172 [DESC]: 载入中... 178 [DESC]: 载入中...
@@ -178,14 +184,15 @@
178 ä½äºŽ[PATH] 184 ä½äºŽ[PATH]
179 </text> 185 </text>
180 <text type="string" length="1" name="not worn instructions"> 186 <text type="string" length="1" name="not worn instructions">
181 è¦ä½¿ç”¨æ–°çš„衬衫,需从你的库存中拖拽一个新的衬衫至你的化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 187 è¦ä½¿ç”¨æ–°çš„衬衫,需从你的库存中拖拽一个新的衬衫至你的化身上。
188或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
182 </text> 189 </text>
183 <text type="string" length="1" name="no modify instructions"> 190 <text type="string" length="1" name="no modify instructions">
184 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 191 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚
185 </text> 192 </text>
186 <color_swatch label="颜色/é…色" name="Color/Tint" 193 <color_swatch label="颜色/é…色" name="Color/Tint"
187 tool_tip="点击这里æ¥æ‰“开色彩选择器" /> 194 tool_tip="点击这里æ¥æ‰“开色彩选择器" />
188 <texture_picker label="纺织å" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 195 <texture_picker label="质地" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
189 </panel> 196 </panel>
190 <panel label="裤å­" name="Pants"> 197 <panel label="裤å­" name="Pants">
191 <button label="创建新的裤å­" label_selected="创建新的裤å­" 198 <button label="创建新的裤å­" label_selected="创建新的裤å­"
@@ -198,7 +205,7 @@
198 [DESC] 205 [DESC]
199 </text> 206 </text>
200 <text type="string" length="1" name="title_no_modify"> 207 <text type="string" length="1" name="title_no_modify">
201 [DESC]:ä¸èƒ½ä¿®é¥° 208 [DESC]: 无法修改
202 </text> 209 </text>
203 <text type="string" length="1" name="title_loading"> 210 <text type="string" length="1" name="title_loading">
204 [DESC]: 载入中... 211 [DESC]: 载入中...
@@ -210,14 +217,15 @@
210 ä½äºŽ[PATH] 217 ä½äºŽ[PATH]
211 </text> 218 </text>
212 <text type="string" length="1" name="not worn instructions"> 219 <text type="string" length="1" name="not worn instructions">
213 è¦ä½¿ç”¨æ–°çš„裤å­ï¼Œéœ€ä»Žä½ çš„库存中拖拽一个新的裤å­è‡³ä½ çš„化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 220 è¦ä½¿ç”¨æ–°çš„裤å­ï¼Œéœ€ä»Žä½ çš„库存中拖拽一个新的裤å­è‡³ä½ çš„化身上。
221或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
214 </text> 222 </text>
215 <text type="string" length="1" name="no modify instructions"> 223 <text type="string" length="1" name="no modify instructions">
216 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 224 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚
217 </text> 225 </text>
218 <color_swatch label="颜色/é…色" name="Color/Tint" 226 <color_swatch label="颜色/é…色" name="Color/Tint"
219 tool_tip="点击这里æ¥æ‰“开色彩选择器" /> 227 tool_tip="点击这里æ¥æ‰“开色彩选择器" />
220 <texture_picker label="纺织å" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 228 <texture_picker label="质地" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
221 </panel> 229 </panel>
222 <panel label="éž‹å­" name="Shoes"> 230 <panel label="éž‹å­" name="Shoes">
223 <button label="创建新的鞋å­" label_selected="创建新的鞋å­" 231 <button label="创建新的鞋å­" label_selected="创建新的鞋å­"
@@ -230,7 +238,7 @@
230 [DESC] 238 [DESC]
231 </text> 239 </text>
232 <text type="string" length="1" name="title_no_modify"> 240 <text type="string" length="1" name="title_no_modify">
233 [DESC]:ä¸èƒ½ä¿®é¥° 241 [DESC]: 无法修改
234 </text> 242 </text>
235 <text type="string" length="1" name="title_loading"> 243 <text type="string" length="1" name="title_loading">
236 [DESC]: 载入中... 244 [DESC]: 载入中...
@@ -242,14 +250,14 @@
242 ä½äºŽ[PATH] 250 ä½äºŽ[PATH]
243 </text> 251 </text>
244 <text type="string" length="1" name="not worn instructions"> 252 <text type="string" length="1" name="not worn instructions">
245 è¦ä½¿ç”¨æ–°çš„éž‹å­ï¼Œéœ€ä»Žä½ çš„库存中拖拽一个新的鞋å­è‡³ä½ çš„化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 253 è¦ä½¿ç”¨æ–°çš„éž‹å­ï¼Œéœ€ä»Žä½ çš„库存中拖拽一个新的鞋å­è‡³ä½ çš„化身上。
254或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
246 </text> 255 </text>
247 <text type="string" length="1" name="no modify instructions"> 256 <text type="string" length="1" name="no modify instructions">
248 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 257 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚ </text>
249 </text>
250 <color_swatch label="颜色/é…色" name="Color/Tint" 258 <color_swatch label="颜色/é…色" name="Color/Tint"
251 tool_tip="点击这里æ¥æ‰“开色彩选择器" /> 259 tool_tip="点击这里æ¥æ‰“开色彩选择器" />
252 <texture_picker label="纺织å" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 260 <texture_picker label="质地" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
253 </panel> 261 </panel>
254 <panel label="袜å­" name="Socks"> 262 <panel label="袜å­" name="Socks">
255 <button label="创建新的袜å­" label_selected="创建新的袜å­" 263 <button label="创建新的袜å­" label_selected="创建新的袜å­"
@@ -262,7 +270,7 @@
262 [DESC] 270 [DESC]
263 </text> 271 </text>
264 <text type="string" length="1" name="title_no_modify"> 272 <text type="string" length="1" name="title_no_modify">
265 [DESC]:ä¸èƒ½ä¿®é¥° 273 [DESC]: 无法修改
266 </text> 274 </text>
267 <text type="string" length="1" name="title_loading"> 275 <text type="string" length="1" name="title_loading">
268 [DESC]: 载入中... 276 [DESC]: 载入中...
@@ -274,14 +282,15 @@
274 ä½äºŽ[PATH] 282 ä½äºŽ[PATH]
275 </text> 283 </text>
276 <text type="string" length="1" name="not worn instructions"> 284 <text type="string" length="1" name="not worn instructions">
277 è¦ä½¿ç”¨æ–°çš„袜å­ï¼Œéœ€ä»Žä½ çš„库存中拖拽一个新的袜å­è‡³ä½ çš„化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 285 è¦ä½¿ç”¨æ–°çš„袜å­ï¼Œéœ€ä»Žä½ çš„库存中拖拽一个新的袜å­è‡³ä½ çš„化身上。
286或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
278 </text> 287 </text>
279 <text type="string" length="1" name="no modify instructions"> 288 <text type="string" length="1" name="no modify instructions">
280 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 289 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚
281 </text> 290 </text>
282 <color_swatch label="颜色/é…色" name="Color/Tint" 291 <color_swatch label="颜色/é…色" name="Color/Tint"
283 tool_tip="点击这里æ¥æ‰“开色彩选择器" /> 292 tool_tip="点击这里æ¥æ‰“开色彩选择器" />
284 <texture_picker label="纺织å" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 293 <texture_picker label="质地" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
285 </panel> 294 </panel>
286 <panel label="夹克" name="Jacket"> 295 <panel label="夹克" name="Jacket">
287 <button label="创建新的夹克" label_selected="创建新的夹克" 296 <button label="创建新的夹克" label_selected="创建新的夹克"
@@ -294,7 +303,7 @@
294 [DESC] 303 [DESC]
295 </text> 304 </text>
296 <text type="string" length="1" name="title_no_modify"> 305 <text type="string" length="1" name="title_no_modify">
297 [DESC]:ä¸èƒ½ä¿®é¥° 306 [DESC]: 无法修改
298 </text> 307 </text>
299 <text type="string" length="1" name="title_loading"> 308 <text type="string" length="1" name="title_loading">
300 [DESC]: 载入中... 309 [DESC]: 载入中...
@@ -306,16 +315,17 @@
306 ä½äºŽ[PATH] 315 ä½äºŽ[PATH]
307 </text> 316 </text>
308 <text type="string" length="1" name="not worn instructions"> 317 <text type="string" length="1" name="not worn instructions">
309 è¦ä½¿ç”¨æ–°çš„夹克,需从你的库存中拖拽一个新的夹克至你的化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 318 è¦ä½¿ç”¨æ–°çš„夹克,需从你的库存中拖拽一个新的夹克至你的化身上。
319或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
310 </text> 320 </text>
311 <text type="string" length="1" name="no modify instructions"> 321 <text type="string" length="1" name="no modify instructions">
312 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 322 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚
313 </text> 323 </text>
314 <color_swatch label="颜色/é…色" name="Color/Tint" 324 <color_swatch label="颜色/é…色" name="Color/Tint"
315 tool_tip="点击这里æ¥æ‰“开色彩选择器" /> 325 tool_tip="点击这里æ¥æ‰“开色彩选择器" />
316 <texture_picker label="上身的针织å“" name="Upper Fabric" 326 <texture_picker label="上身æè´¨" name="Upper Fabric"
317 tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 327 tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
318 <texture_picker label="é™ä½Žå»ºç­‘物高度" name="Lower Fabric" 328 <texture_picker label="下身æè´¨" name="Lower Fabric"
319 tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 329 tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
320 </panel> 330 </panel>
321 <panel label="手套" name="Gloves"> 331 <panel label="手套" name="Gloves">
@@ -329,7 +339,7 @@
329 [DESC] 339 [DESC]
330 </text> 340 </text>
331 <text type="string" length="1" name="title_no_modify"> 341 <text type="string" length="1" name="title_no_modify">
332 [DESC]:ä¸èƒ½ä¿®é¥° 342 [DESC]: 无法修改
333 </text> 343 </text>
334 <text type="string" length="1" name="title_loading"> 344 <text type="string" length="1" name="title_loading">
335 [DESC]: 载入中... 345 [DESC]: 载入中...
@@ -341,14 +351,15 @@
341 ä½äºŽ[PATH] 351 ä½äºŽ[PATH]
342 </text> 352 </text>
343 <text type="string" length="1" name="not worn instructions"> 353 <text type="string" length="1" name="not worn instructions">
344 è¦ä½¿ç”¨æ–°çš„手套,需从你的库存中拖拽一个新的手套至你的化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 354 è¦ä½¿ç”¨æ–°çš„手套,需从你的库存中拖拽一个新的手套至你的化身上。
355或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
345 </text> 356 </text>
346 <text type="string" length="1" name="no modify instructions"> 357 <text type="string" length="1" name="no modify instructions">
347 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 358 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚
348 </text> 359 </text>
349 <color_swatch label="颜色/é…色" name="Color/Tint" 360 <color_swatch label="颜色/é…色" name="Color/Tint"
350 tool_tip="点击这里æ¥æ‰“开色彩选择器" /> 361 tool_tip="点击这里æ¥æ‰“开色彩选择器" />
351 <texture_picker label="纺织å" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 362 <texture_picker label="质地" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
352 </panel> 363 </panel>
353 <panel label="内衣" name="Undershirt"> 364 <panel label="内衣" name="Undershirt">
354 <button label="创建新的内衣" label_selected="创建新的内衣" 365 <button label="创建新的内衣" label_selected="创建新的内衣"
@@ -361,7 +372,7 @@
361 [DESC] 372 [DESC]
362 </text> 373 </text>
363 <text type="string" length="1" name="title_no_modify"> 374 <text type="string" length="1" name="title_no_modify">
364 [DESC]:ä¸èƒ½ä¿®é¥° 375 [DESC]: 无法修改
365 </text> 376 </text>
366 <text type="string" length="1" name="title_loading"> 377 <text type="string" length="1" name="title_loading">
367 [DESC]: 载入中... 378 [DESC]: 载入中...
@@ -373,14 +384,15 @@
373 ä½äºŽ[PATH] 384 ä½äºŽ[PATH]
374 </text> 385 </text>
375 <text type="string" length="1" name="not worn instructions"> 386 <text type="string" length="1" name="not worn instructions">
376 è¦ä½¿ç”¨æ–°çš„内衣,需从你的库存中拖拽一个新的内衣至你的化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 387 è¦ä½¿ç”¨æ–°çš„内衣,需从你的库存中拖拽一个新的内衣至你的化身上。
388或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
377 </text> 389 </text>
378 <text type="string" length="1" name="no modify instructions"> 390 <text type="string" length="1" name="no modify instructions">
379 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 391 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚
380 </text> 392 </text>
381 <color_swatch label="颜色/é…色" name="Color/Tint" 393 <color_swatch label="颜色/é…色" name="Color/Tint"
382 tool_tip="点击这里æ¥æ‰“开色彩选择器" /> 394 tool_tip="点击这里æ¥æ‰“开色彩选择器" />
383 <texture_picker label="纺织å" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 395 <texture_picker label="质地" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
384 </panel> 396 </panel>
385 <panel label="内裤" name="Underpants"> 397 <panel label="内裤" name="Underpants">
386 <button label="创建新的内裤" label_selected="创建新的内裤" 398 <button label="创建新的内裤" label_selected="创建新的内裤"
@@ -393,7 +405,7 @@
393 [DESC] 405 [DESC]
394 </text> 406 </text>
395 <text type="string" length="1" name="title_no_modify"> 407 <text type="string" length="1" name="title_no_modify">
396 [DESC]:ä¸èƒ½ä¿®é¥° 408 [DESC]: 无法修改
397 </text> 409 </text>
398 <text type="string" length="1" name="title_loading"> 410 <text type="string" length="1" name="title_loading">
399 [DESC]: 载入中... 411 [DESC]: 载入中...
@@ -405,17 +417,18 @@
405 ä½äºŽ[PATH] 417 ä½äºŽ[PATH]
406 </text> 418 </text>
407 <text type="string" length="1" name="not worn instructions"> 419 <text type="string" length="1" name="not worn instructions">
408 è¦ä½¿ç”¨æ–°çš„内裤,需从你的库存中拖拽一个新的内裤至你的化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 420 è¦ä½¿ç”¨æ–°çš„内裤,需从你的库存中拖拽一个新的内裤至你的化身上。
421或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
409 </text> 422 </text>
410 <text type="string" length="1" name="no modify instructions"> 423 <text type="string" length="1" name="no modify instructions">
411 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 424 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚
412 </text> 425 </text>
413 <color_swatch label="颜色/é…色" name="Color/Tint" 426 <color_swatch label="颜色/é…色" name="Color/Tint"
414 tool_tip="点击这里æ¥æ‰“开色彩选择器" /> 427 tool_tip="点击这里æ¥æ‰“开色彩选择器" />
415 <texture_picker label="纺织å" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 428 <texture_picker label="质地" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
416 </panel> 429 </panel>
417 <panel label="裙å­" name="Skirt"> 430 <panel label="裙å­" name="Skirt">
418 <button label="创建新的短裙" label_selected="创建新的短裙" 431 <button label="创建新的裙å­" label_selected="创建新的短裙"
419 name="Create New" /> 432 name="Create New" />
420 <button label="脱掉" label_selected="脱掉" name="Take Off" /> 433 <button label="脱掉" label_selected="脱掉" name="Take Off" />
421 <button label="存储" label_selected="存储" name="Save" /> 434 <button label="存储" label_selected="存储" name="Save" />
@@ -425,7 +438,7 @@
425 [DESC] 438 [DESC]
426 </text> 439 </text>
427 <text type="string" length="1" name="title_no_modify"> 440 <text type="string" length="1" name="title_no_modify">
428 [DESC]:ä¸èƒ½ä¿®é¥° 441 [DESC]: 无法修改
429 </text> 442 </text>
430 <text type="string" length="1" name="title_loading"> 443 <text type="string" length="1" name="title_loading">
431 [DESC]: 载入中... 444 [DESC]: 载入中...
@@ -437,17 +450,18 @@
437 ä½äºŽ[PATH] 450 ä½äºŽ[PATH]
438 </text> 451 </text>
439 <text type="string" length="1" name="not worn instructions"> 452 <text type="string" length="1" name="not worn instructions">
440 è¦ä½¿ç”¨æ–°çš„裙å­ï¼Œéœ€ä»Žä½ çš„库存中拖拽一个新的裙å­è‡³ä½ çš„化身上。å¦å¤–的,你也å¯ä»¥ä»Žåº•ç¨¿ä¸­åˆ›å»ºä¸€ä¸ªæ–°çš„并使用。 453 è¦ä½¿ç”¨æ–°çš„裙å­ï¼Œéœ€ä»Žä½ çš„库存中拖拽一个新的裙å­è‡³ä½ çš„化身上。
454或者,你也å¯ä»¥ä»Žæ–°åˆ›å»ºä¸€ä¸ªï¼Œå¹¶ç©¿ä¸Šå®ƒã€‚
441 </text> 455 </text>
442 <text type="string" length="1" name="no modify instructions"> 456 <text type="string" length="1" name="no modify instructions">
443 你没有修改这件æœé¥°çš„许å¯è¯ã€‚ 457 你没有修改这件æœé¥°çš„æƒåˆ©ã€‚
444 </text> 458 </text>
445 <color_swatch label="颜色/é…色" name="Color/Tint" 459 <color_swatch label="颜色/é…色" name="Color/Tint"
446 tool_tip="点击这里æ¥æ‰“开色彩选择器" /> 460 tool_tip="点击这里æ¥æ‰“开色彩选择器" />
447 <texture_picker label="纺织å" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 461 <texture_picker label="质地" name="Fabric" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
448 </panel> 462 </panel>
449 </tab_container> 463 </tab_container>
450 <button label="制造装备" label_selected="制造装备" name="Make Outfit" /> 464 <button label="ä¿å­˜ä¸ºè£…æŸ" label_selected="ä¿å­˜ä¸ºè£…æŸ" name="Make Outfit" />
451 <button label="储存全部" label_selected="储存全部" name="Save All" /> 465 <button label="储存全部" label_selected="储存全部" name="Save All" />
452 <button label="关闭" label_selected="关闭" name="Close" /> 466 <button label="关闭" label_selected="关闭" name="Close" />
453</floater> 467</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml b/linden/indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml
new file mode 100644
index 0000000..5c4791b
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml
@@ -0,0 +1,133 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 min_height="180"
4 min_width="400"
5 name="Day Cycle Floater"
6 title="日夜周期编辑器">
7 <tab_container
8 name="Day Cycle Tabs"
9 tab_position="top">
10 <panel
11 label="日夜周期"
12 name="Day Cycle">
13 <button
14 label="?"
15 name="WLDayCycleHelp" />
16 <text
17 name="WL12am">
18 上åˆ12æ—¶
19 </text>
20 <text
21 name="WL3am">
22 上åˆ3æ—¶
23 </text>
24 <text
25 name="WL6am">
26 上åˆ6æ—¶
27 </text>
28 <text
29 name="WL9amHash">
30 上åˆ9æ—¶
31 </text>
32 <text
33 name="WL12pmHash">
34 下åˆ12æ—¶
35 </text>
36 <text
37 name="WL3pm">
38 下åˆ3æ—¶
39 </text>
40 <text
41 name="WL6pm">
42 下åˆ6æ—¶
43 </text>
44 <text
45 name="WL9pm">
46 下åˆ9æ—¶
47 </text>
48 <text
49 name="WL12am2">
50 上åˆ12æ—¶
51 </text>
52 <button
53 label="添加键"
54 label_selected="Add Key"
55 name="WLAddKey" />
56 <button
57 label="删除键"
58 label_selected="Delete Key"
59 name="WLDeleteKey" />
60 <text
61 name="WLCurKeyFrameText">
62 关键帧设定:
63 </text>
64 <text
65 name="WLCurKeyTimeText">
66 键时间:
67 </text>
68 <spinner
69 label="æ—¶"
70 name="WLCurKeyHour" />
71 <spinner
72 label="分"
73 name="WLCurKeyMin" />
74 <text
75 name="WLCurKeyTimeText2">
76 键预设:
77 </text>
78 <combo_box
79 allow_text_entry="false"
80 label="Preset"
81 max_chars="20"
82 name="WLKeyPresets" />
83 <view_border />
84 <text
85 name="DayCycleText">
86 æ•æ‰:
87 </text>
88 <combo_box
89 allow_text_entry="false"
90 label="5 min"
91 max_chars="20"
92 name="WLSnapOptions" />
93 <text
94 name="DayCycleText2">
95 周期长度:
96 </text>
97 <spinner
98 label="æ—¶"
99 name="WLLengthOfDayHour" />
100 <spinner
101 label="分"
102 name="WLLengthOfDayMin" />
103 <spinner
104 label="秒"
105 name="WLLengthOfDaySec" />
106 <text
107 name="DayCycleText3">
108 预览:
109 </text>
110 <button
111 label="播放"
112 label_selected="Play"
113 name="WLAnimSky" />
114 <button
115 label="åœæ­¢!"
116 label_selected="Stop"
117 name="WLStopAnimSky" />
118 <button
119 label="使用地产时间"
120 label_selected="使用地产时间"
121 name="WLUseLindenTime" />
122 <button
123 label="ä¿å­˜æµ‹è¯•æ—¥"
124 label_selected="Save Test Day"
125 name="WLSaveDayCycle" />
126 <button
127 label="读å–测试日"
128 label_selected="Load Test Day"
129 name="WLLoadDayCycle" />
130 </panel>
131 </tab_container>
132</floater>
133
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_device_settings.xml b/linden/indra/newview/skins/default/xui/zh/floater_device_settings.xml
new file mode 100644
index 0000000..61e1556
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_device_settings.xml
@@ -0,0 +1,3 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_device_settings" title="语音èŠå¤©è®¾å¤‡è®¾ç½®">
3</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_directory.xml b/linden/indra/newview/skins/default/xui/zh/floater_directory.xml
index b5eb94b..1484e78 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_directory.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_directory.xml
@@ -1,36 +1,87 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="directory" title="æœç´¢"> 2<floater name="directory" title="æœç´¢">
3 <tab_container name="Directory Tabs"> 3 <tab_container name="Directory Tabs">
4 <panel label="全部" name="all_panel"> 4 <panel
5 <scroll_list name="results"> 5 label="All"
6 <column label="" name="icon" /> 6 name="find_all_panel">
7 <column label="Name" name="name" /> 7 <string name="searching_text">
8 <column label="Price" name="price" /> 8 查找中……
9 <column label="Time (PDT)" name="date" /> 9 </string>
10 <column label="Time" name="time" /> 10 <string name="not_found_text">
11 <column label="Traffic" name="dwell" /> 11 什么也没找到。
12 <column label="Area" name="area" /> 12 </string>
13 <column label="L$/sq.m" name="per_meter" /> 13 <button
14 <column label="Online" name="online" /> 14 label="åŽé€€"
15 <column label="Members" name="members" /> 15 name="back_btn" />
16 </scroll_list> 16 <button
17 <button label="&lt; 之å‰" label_selected="&lt; 之å‰" name="&lt; Prev" /> 17 label="å‰è¿›"
18 <button label="下一个&gt;" label_selected="下一个&gt;" name="Next &gt;" /> 18 name="forward_btn" />
19 <text name="find"> 19 <line_editor
20 寻找: 20 label="æœç´¢"
21 </text> 21 name="search_editor"
22 <button label="æœç´¢" label_selected="æœç´¢" name="Search" /> 22 tool_tip="æœç´¢ç¬¬äºŒäººç”Ÿ" />
23 <check_box label="包å«æˆäººå†…容" name="incmature" /> 23 <button
24 </panel> 24 label="æœç´¢"
25 <panel label="分类目录" name="classified_panel"> 25 name="search_btn" />
26 <combo_box
27 name="Category">
28 <combo_item
29 name="AnyCategory"
30 value="All">
31 所有分类
32 </combo_item>
33 <combo_item
34 name="Events">
35 事件
36 </combo_item>
37 <combo_item
38 name="Groups"
39 value="Groups">
40 社团
41 </combo_item>
42 <combo_item
43 name="People"
44 value="People">
45 å±…æ°‘
46 </combo_item>
47 <combo_item
48 name="Places"
49 value="Places">
50 地点
51 </combo_item>
52 <combo_item
53 name="Wiki"
54 value="Wiki">
55 Wiki
56 </combo_item>
57 </combo_box>
58 <check_box
59 initial_value="false"
60 label="包括æˆäººå†…容"
61 name="mature_check" />
62 <text
63 name="loading_text">加载中...</text>
64 <text
65 name="done_text">完æˆ</text>
66<!-- <text
67 name="redirect_404_url">http://secondlife.com/app/search/notfound.html</text>
68--> </panel>
69
70 <panel label="分类广告" name="classified_panel">
26 <scroll_list name="results"> 71 <scroll_list name="results">
27 <column label="" name="icon" /> 72 <column label="" name="icon" />
28 <column label="" name="type" /> 73 <column label="" name="type" />
29 <column label="Name" name="name" /> 74 <column label="Name" name="name" />
30 <column label="Price" name="price" /> 75 <column label="Price" name="price" />
31 </scroll_list> 76 </scroll_list>
32 <button label="&lt; 之å‰" label_selected="&lt; 之å‰" name="&lt; Prev" /> 77 <button label="&lt; 上一页" label_selected="&lt; 上一页" name="&lt; Prev" />
33 <button label="下一个&gt;" label_selected="下一个&gt;" name="Next &gt;" /> 78 <button label="下一页 &gt;" label_selected="下一页 &gt;" name="Next &gt;" />
79 <string name="searching_text">
80 查找中……
81 </string>
82 <string name="not_found_text">
83 什么也没找到。
84 </string>
34 <text name="find"> 85 <text name="find">
35 寻找: 86 寻找:
36 </text> 87 </text>
@@ -52,13 +103,13 @@
52 特殊å¸å¼•åŠ› 103 特殊å¸å¼•åŠ›
53 </combo_item> 104 </combo_item>
54 <combo_item name="NewProducts"> 105 <combo_item name="NewProducts">
55 æ–°ç‰©å“ 106 新产å“
56 </combo_item> 107 </combo_item>
57 <combo_item name="Employment"> 108 <combo_item name="Employment">
58 èŒä¸š 109 èŒä¸š
59 </combo_item> 110 </combo_item>
60 <combo_item name="Wanted"> 111 <combo_item name="Wanted">
61 通缉 112 éœæ±‚
62 </combo_item> 113 </combo_item>
63 <combo_item name="Service"> 114 <combo_item name="Service">
64 æœåŠ¡ 115 æœåŠ¡
@@ -67,28 +118,39 @@
67 ç§äººçš„ 118 ç§äººçš„
68 </combo_item> 119 </combo_item>
69 </combo_box> 120 </combo_box>
121 <button
122 label="æµè§ˆ"
123 label_selected="æµè§ˆ"
124 name="Browse" />
70 <button label="æœç´¢" label_selected="æœç´¢" name="Search" /> 125 <button label="æœç´¢" label_selected="æœç´¢" name="Search" />
71 <button label="地点和广告..." label_selected="地点和广告..." 126 <button label="投放广告..." label_selected="投放广告..."
72 name="Place an Ad..." /> 127 name="Place an Ad..." />
73 <button label="删除" label_selected="删除" name="Delete" /> 128 <button label="删除" label_selected="删除" name="Delete" />
74 </panel> 129 </panel>
75 <panel label="事件或活动" name="events_panel"> 130
131 <panel label="事件" name="events_panel">
76 <scroll_list name="results"> 132 <scroll_list name="results">
77 <column label="" name="icon" /> 133 <column label="" name="icon" />
78 <column label="" name="type" /> 134 <column label="" name="type" />
79 <column label="Name" name="name" /> 135 <column label="å称" name="name" />
80 <column label="Time (PDT)" name="date" /> 136 <column label="时间 (PT)" name="date" />
81 <column label="" name="event_id" /> 137 <column label="" name="event_id" />
82 <column label="Time" name="time" /> 138 <column label="时间" name="time" />
83 </scroll_list> 139 </scroll_list>
84 <button label="&lt; 之å‰" label_selected="&lt; 之å‰" name="&lt; Prev" /> 140 <button label="&lt; 上一页" label_selected="&lt; 上一页" name="&lt; Prev" />
85 <button label="下一个&gt;" label_selected="下一个&gt;" name="Next &gt;" /> 141 <button label="下一页 &gt;" label_selected="下一页 &gt;" name="Next &gt;" />
142 <string name="searching_text">
143 查找中……
144 </string>
145 <string name="not_found_text">
146 什么也没找到。
147 </string>
86 <radio_group name="date_mode"> 148 <radio_group name="date_mode">
87 <radio_item name="current"> 149 <radio_item name="current">
88 In-Progress and Upcoming 150 当å‰å’Œè¿‘期事件
89 </radio_item> 151 </radio_item>
90 <radio_item name="date"> 152 <radio_item name="date">
91 Date 153 日期
92 </radio_item> 154 </radio_item>
93 </radio_group> 155 </radio_group>
94 <button label="&lt;&lt;" label_selected="&lt;&lt;" name="&lt;&lt;" 156 <button label="&lt;&lt;" label_selected="&lt;&lt;" name="&lt;&lt;"
@@ -104,7 +166,7 @@
104 ç§ç±»åˆ—表: 166 ç§ç±»åˆ—表:
105 </text> 167 </text>
106 <text name="text2"> 168 <text name="text2">
107 Name/Desc: 169 å称/æè¿°:
108 </text> 170 </text>
109 <combo_box name="category combo"> 171 <combo_box name="category combo">
110 <combo_item name="All"> 172 <combo_item name="All">
@@ -120,7 +182,7 @@
120 çŽ°åœºéŸ³ä¹ 182 现场音ä¹
121 </combo_item> 183 </combo_item>
122 <combo_item name="Commercial"> 184 <combo_item name="Commercial">
123 ç”Ÿæ„ 185 商业
124 </combo_item> 186 </combo_item>
125 <combo_item name="Nightlife/Entertainment"> 187 <combo_item name="Nightlife/Entertainment">
126 夜生活/å¨±ä¹ 188 夜生活/娱ä¹
@@ -141,40 +203,51 @@
141 慈善机构 203 慈善机构
142 </combo_item> 204 </combo_item>
143 <combo_item name="Miscellaneous"> 205 <combo_item name="Miscellaneous">
144 混色 206 其他
145 </combo_item> 207 </combo_item>
146 </combo_box> 208 </combo_box>
147 <check_box label="显示æˆäººå†…容" name="incmature" /> 209 <check_box label="显示æˆäººå†…容" name="incmature" />
148 <button label="æœç´¢" label_selected="æœç´¢" name="Search" tool_tip="æœç´¢" /> 210 <button label="æœç´¢" label_selected="æœç´¢" name="Search" tool_tip="æœç´¢" />
149 <button label="删除" label_selected="删除" name="Delete" /> 211 <button label="删除" label_selected="删除" name="Delete" />
150 </panel> 212 </panel>
151 <panel label="Popular Places" name="popular_panel"> 213
152 <scroll_list name="results"> 214 <panel label="热门地点" name="showcase_panel">
153 <column label="" name="icon" /> 215 <button label="&lt; 上一页" label_selected="&lt; 上一页" name="&lt; Prev" />
154 <column label="" name="type" /> 216 <button label="下一页 &gt;" label_selected="下一页 &gt;" name="Next &gt;" />
155 <column label="Name" name="name" /> 217 <string name="searching_text">
156 <column label="Traffic" name="dwell" /> 218 查找中……
157 </scroll_list> 219 </string>
158 <button label="&lt; 之å‰" label_selected="&lt; 之å‰" name="&lt; Prev" /> 220 <string name="not_found_text">
159 <button label="下一个&gt;" label_selected="下一个&gt;" name="Next &gt;" /> 221 什么也没找到。
160 <check_box label="åªæ˜¾ç¤ºæœ‰å›¾åƒçš„地点" name="incpictures" /> 222 </string>
161 <check_box label="包å«æˆäººåŒºä¸­çš„地点" name="incmature" /> 223 <button
162 <text 224 label="åŽé€€"
163 name="These are the most popular places in the world, as measured by traffic, the amount of time people spend there."> 225 name="back_btn" />
164 这里有在第二人生世界里最æµè¡Œçš„场所,由交通状况,和人们在那里花费的时间长短æ¥è¡¡é‡ã€‚ 226 <button
165 </text> 227 label="å‰è¿›"
228 name="forward_btn" />
229 <string
230 name="loading_text">加载中...</string>
231 <string
232 name="done_text">完æˆ</string>
166 </panel> 233 </panel>
167 <panel label="Land Sales" name="land_sales_panel"> 234 <panel label="土地出售" name="land_sales_panel">
168 <scroll_list name="results"> 235 <scroll_list name="results">
169 <column label="" name="icon" /> 236 <column label="" name="icon" />
170 <column label="" name="type" /> 237 <column label="" name="type" />
171 <column label="Name" name="name" /> 238 <column label="å称" name="name" />
172 <column label="L$ Price" name="price" /> 239 <column label="L$ ä»·æ ¼" name="price" />
173 <column label="Area" name="area" /> 240 <column label="é¢ç§¯" name="area" />
174 <column label="L$/sq.m" name="per_meter" /> 241 <column label="L$/平米" name="per_meter" />
175 </scroll_list> 242 </scroll_list>
176 <button label="&lt; 之å‰" label_selected="&lt; 之å‰" name="&lt; Prev" /> 243 <button label="&lt; 之å‰" label_selected="&lt; 之å‰" name="&lt; Prev" />
177 <button label="下一个&gt;" label_selected="下一个&gt;" name="Next &gt;" /> 244 <button label="下一页&gt;" label_selected="下一页&gt;" name="Next &gt;" />
245 <string name="searching_text">
246 查找中……
247 </string>
248 <string name="not_found_text">
249 什么也没找到。
250 </string>
178 <combo_box name="type"> 251 <combo_box name="type">
179 <combo_item name="AllTypes"> 252 <combo_item name="AllTypes">
180 所有类型 253 所有类型
@@ -185,22 +258,22 @@
185 <combo_item name="ForSale"> 258 <combo_item name="ForSale">
186 代售 259 代售
187 </combo_item> 260 </combo_item>
188 <combo_item name="FirstLand"> 261 <!--<combo_item name="FirstLand">
189 首次ç€é™† 262 åˆæ¬¡è®¢é˜…土地
190 </combo_item> 263 </combo_item>-->
191 <combo_item name="MainlandSales"> 264 <combo_item name="MainlandSales">
192 出售 - 大陆 265 出售 - 大陆
193 </combo_item> 266 </combo_item>
194 <combo_item name="EstateSales"> 267 <combo_item name="EstateSales">
195 出售 - 土地 268 出售 - 地产
196 </combo_item> 269 </combo_item>
197 </combo_box> 270 </combo_box>
198 <combo_box name="rating"> 271 <combo_box name="rating">
199 <combo_item name="PG&amp;Mature"> 272 <combo_item name="PG&amp;Mature">
200 æˆå¹´äººå’Œåœ¨å®¶é•¿æŒ‡å¯¼ä¸‹çš„未æˆå¹´äºº 273 é™åˆ¶çº§å’ŒæŒ‡å¯¼çº§
201 </combo_item> 274 </combo_item>
202 <combo_item name="PGonly"> 275 <combo_item name="PGonly">
203 仅在家长指导下观看 276 仅指导级
204 </combo_item> 277 </combo_item>
205 <combo_item name="Matureonly"> 278 <combo_item name="Matureonly">
206 ä»…æˆäºº 279 ä»…æˆäºº
@@ -208,31 +281,40 @@
208 </combo_box> 281 </combo_box>
209 <check_box label="标价 &lt;= L$" name="pricecheck" /> 282 <check_box label="标价 &lt;= L$" name="pricecheck" />
210 <check_box label="地区&gt;= 平方米" name="areacheck" /> 283 <check_box label="地区&gt;= 平方米" name="areacheck" />
211 <button label="æœç´¢" label_selected="æœç´¢" name="Search" /> 284 <line_editor left="245" name="priceedit" width="50"/>
212 <text name="land"> 285 <line_editor left="245" name="areaedit" width="50"/>
286 <button label="æœç´¢" label_selected="æœç´¢" name="Search" left="306" />
287 <text name="land" left="399" >
213 土地å¯ä»¥ç›´æŽ¥ç”¨æž—登元购买(L$),也å¯ä»¥ç”¨æž—登元或美元æ‹å–。 288 土地å¯ä»¥ç›´æŽ¥ç”¨æž—登元购买(L$),也å¯ä»¥ç”¨æž—登元或美元æ‹å–。
214想直接购买, 进入土地,在标题æ¡ä¸Šç‚¹å‡»åœ°ç‚¹çš„å字。 289è¦ç›´æŽ¥è´­ä¹°, 进入土地,然åŽåœ¨ç‚¹å‡»èœå•æ ä¸Šçš„地点的å字。
215 </text> 290 </text>
216 </panel> 291 </panel>
217 <panel label="Places" name="places_panel"> 292
293 <panel label="地点" name="places_panel">
218 <scroll_list name="results"> 294 <scroll_list name="results">
219 <column label="" name="icon" /> 295 <column label="" name="icon" />
220 <column label="" name="type" /> 296 <column label="" name="type" />
221 <column label="Name" name="name" /> 297 <column label="å称" name="name" />
222 <column label="Traffic" name="dwell" /> 298 <column label="æµé‡" name="dwell" />
223 </scroll_list> 299 </scroll_list>
224 <button label="&lt; 之å‰" label_selected="&lt; 之å‰" name="&lt; Prev" /> 300 <button label="&lt; 上一页" label_selected="&lt; 上一页" name="&lt; Prev" />
225 <button label="下一个&gt;" label_selected="下一个&gt;" name="Next &gt;" /> 301 <button label="下一页 &gt;" label_selected="下一页 &gt;" name="Next &gt;" />
302 <string name="searching_text">
303 查找中……
304 </string>
305 <string name="not_found_text">
306 什么也没找到。
307 </string>
226 <text name="find"> 308 <text name="find">
227 寻找: 309 查找:
228 </text> 310 </text>
229 <check_box label="包å«æˆäººåŒºä¸­çš„地点" name="incmature" /> 311 <check_box label="包å«æœ‰é™åˆ¶çº§å†…容的地å—" name="incmature" />
230 <combo_box name="Category"> 312 <combo_box name="Category">
231 <combo_item name="AnyCategory"> 313 <combo_item name="AnyCategory">
232 ä»»æ„分类 314 ä»»æ„分类
233 </combo_item> 315 </combo_item>
234 <combo_item name="LindenLocation"> 316 <combo_item name="LindenLocation">
235 æž—ç™»å®çš„地点 317 林登实验室的地点
236 </combo_item> 318 </combo_item>
237 <combo_item name="Adult"> 319 <combo_item name="Adult">
238 æˆäºº 320 æˆäºº
@@ -241,25 +323,25 @@
241 艺术和文化 323 艺术和文化
242 </combo_item> 324 </combo_item>
243 <combo_item name="Business"> 325 <combo_item name="Business">
244 ç”Ÿæ„ 326 商业
245 </combo_item> 327 </combo_item>
246 <combo_item name="Educational"> 328 <combo_item name="Educational">
247 教育的 329 教育
248 </combo_item> 330 </combo_item>
249 <combo_item name="Gaming"> 331 <combo_item name="Gaming">
250 åšå½©æ¸¸æˆ 332 åšå½©/游æˆ
251 </combo_item> 333 </combo_item>
252 <combo_item name="Hangout"> 334 <combo_item name="Hangout">
253 临时ä½æ‰€ 335 èšä¼š
254 </combo_item> 336 </combo_item>
255 <combo_item name="NewcomerFriendly"> 337 <combo_item name="NewcomerFriendly">
256 å‹å¥½çš„åˆæ¥è€… 338 åˆè¡Œè€…å‹å¥½
257 </combo_item> 339 </combo_item>
258 <combo_item name="Parks&amp;Nature"> 340 <combo_item name="Parks&amp;Nature">
259 公园和大自然 341 公园和自然
260 </combo_item> 342 </combo_item>
261 <combo_item name="Residential"> 343 <combo_item name="Residential">
262 土木建筑 344 å±…ä½åŒº
263 </combo_item> 345 </combo_item>
264 <combo_item name="Shopping"> 346 <combo_item name="Shopping">
265 购物 347 购物
@@ -270,34 +352,56 @@
270 </combo_box> 352 </combo_box>
271 <button label="æœç´¢" label_selected="æœç´¢" name="Search" /> 353 <button label="æœç´¢" label_selected="æœç´¢" name="Search" />
272 </panel> 354 </panel>
273 <panel label="People" name="people_panel"> 355
356 <panel label="å±…æ°‘" name="people_panel">
274 <scroll_list name="results"> 357 <scroll_list name="results">
275 <column label="" name="icon" /> 358 <column label="" name="icon" />
276 <column label="" name="type" /> 359 <column label="" name="type" />
277 <column label="Name" name="name" /> 360 <column label="åå­—" name="name" />
278 <column label="Online" name="online" /> 361 <column label="在线" name="online" />
279 </scroll_list> 362 </scroll_list>
280 <button label="&lt; 之å‰" label_selected="&lt; 之å‰" name="&lt; Prev" /> 363 <button label="&lt; 上一页" label_selected="&lt; 上一页" name="&lt; Prev" />
281 <button label="下一个&gt;" label_selected="下一个&gt;" name="Next &gt;" /> 364 <button label="下一页 &gt;" label_selected="下一页 &gt;" name="Next &gt;" />
365 <string name="searching_text">
366 查找中……
367 </string>
368 <string name="not_found_text">
369 什么也没找到。
370 </string>
282 <text name="find"> 371 <text name="find">
283 寻找: 372 查找:
284 </text> 373 </text>
285 <check_box label="在线" name="online check" /> 374 <check_box label="在线" name="online check" />
286 <button label="æœç´¢" label_selected="æœç´¢" name="Search" /> 375 <button label="æœç´¢" label_selected="æœç´¢" name="Search" />
287 </panel> 376 </panel>
377
288 <panel label="社团" name="groups_panel"> 378 <panel label="社团" name="groups_panel">
289 <scroll_list name="results"> 379
290 <column label="" name="icon" /> 380 <string name="searching_text">
291 <column label="" name="type" /> 381 查找中……
292 <column label="Name" name="name" /> 382 </string>
293 <column label="Members" name="members" /> 383 <string name="not_found_text">
294 </scroll_list> 384 什么也没找到。
295 <button label="&lt; 之å‰" label_selected="&lt; 之å‰" name="&lt; Prev" /> 385 </string>
296 <button label="下一个&gt;" label_selected="下一个&gt;" name="Next &gt;" /> 386 <button
387 label="åŽé€€"
388 name="back_btn" />
389 <button
390 label="å‰è¿›"
391 name="forward_btn" />
392 <string
393 name="loading_text">加载中...</string>
394 <string
395 name="done_text">完æˆ</string>
297 <text name="find"> 396 <text name="find">
298 寻找: 397 寻找:
299 </text> 398 </text>
300 <button label="æœç´¢" label_selected="æœç´¢" name="Search" /> 399 <button label="æœç´¢" label_selected="æœç´¢" name="search_btn" />
400 <check_box
401 label="包括æˆäººç¤¾å›¢"
402 name="mature_check" />
301 </panel> 403 </panel>
404
302 </tab_container> 405 </tab_container>
303</floater> 406</floater>
407<!--Translated for Second Life 1.19.0 (79185)--> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_env_settings.xml b/linden/indra/newview/skins/default/xui/zh/floater_env_settings.xml
new file mode 100644
index 0000000..b4cb27e
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_env_settings.xml
@@ -0,0 +1,54 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 min_height="150"
4 min_width="600"
5 name="Environment Editor Floater"
6 title="Environment Editor">
7 <text
8 name="EnvTimeText">
9 时间
10 </text>
11 <text
12 name="EnvTimeText2">
13 12:00 PM
14 </text>
15 <icon
16 name="EnvDayCycle" />
17 <slider
18 label=""
19 name="EnvTimeSlider"
20 value="0.0" />
21 <text
22 name="EnvCloudText">
23 云层覆盖
24 </text>
25 <slider
26 label=""
27 name="EnvCloudSlider"
28 value="0.7" />
29 <text
30 name="EnvWaterColorText">
31 水色
32 </text>
33 <color_swatch
34 label=""
35 name="EnvWaterColor"
36 tool_tip="Click to open Color Picker" />
37 <text
38 name="EnvWaterFogText">
39 水雾
40 </text>
41 <button
42 label="使用地产时间"
43 name="EnvUseEstateTimeButton" />
44 <button
45 label="高级天空选项"
46 name="EnvAdvancedSkyButton" />
47 <button
48 label="高级水é¢é€‰é¡¹"
49 name="EnvAdvancedWaterButton" />
50 <button
51 label="?"
52 name="EnvSettingsHelpButton" />
53</floater>
54
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_gesture.xml b/linden/indra/newview/skins/default/xui/zh/floater_gesture.xml
index 3473e35..d877b29 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_gesture.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_gesture.xml
@@ -1,14 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="gestures" title="表演动作"> 2<floater name="gestures" title="活动的动作">
3 <text name="help_label"> 3 <text name="help_label">
4 使用激活命令或按命令键播放动画文件和 4 点击动作或按快æ·é”®æ¥æ’­æ”¾åŠ¨ç”»å’ŒéŸ³æ•ˆã€‚
5声效。
6 </text> 5 </text>
7 <scroll_list name="gesture_list"> 6 <scroll_list name="gesture_list">
8 <column label="Trigger" name="trigger" /> 7 <column label="命令" name="trigger" />
9 <column label="Key" name="shortcut" /> 8 <column label="按键" name="shortcut" />
10 <column label="" name="key" /> 9 <column label="" name="key" />
11 <column label="Name" name="name" /> 10 <column label="å称" name="name" />
12 </scroll_list> 11 </scroll_list>
13 <button label="新建" name="new_gesture_btn" /> 12 <button label="新建" name="new_gesture_btn" />
14 <button label="库存" name="inventory_btn" /> 13 <button label="库存" name="inventory_btn" />
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_god_tools.xml b/linden/indra/newview/skins/default/xui/zh/floater_god_tools.xml
index f3253f9..b5db758 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_god_tools.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_god_tools.xml
@@ -1,53 +1,53 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="godtools floater" title="神仙工具"> 2<floater name="godtools floater" title="神明工具">
3 <tab_container name="GodTools Tabs"> 3 <tab_container name="GodTools Tabs">
4 <panel label="Grid" name="grid"> 4 <panel label="网格" name="grid">
5 <button label="æ走所有用户" label_selected="æ走所有用户" 5 <button label="踢走所有用户" label_selected="踢走所有用户"
6 name="Kick all users" /> 6 name="Kick all users" />
7 <button label="快速到达此处地图的快照" 7 <button label="清除该区域的地图å¯è§†æ€§ç¼“å­˜"
8 label_selected="快速到达此处地图的快照" 8 label_selected="清除该区域的地图å¯è§†æ€§ç¼“å­˜"
9 name="Flush This Region&apos;s Map Visibility Caches" /> 9 name="Flush This Region&apos;s Map Visibility Caches" />
10 </panel> 10 </panel>
11 <panel label="区域" name="region"> 11 <panel label="区域" name="region">
12 <text name="Sim Name:"> 12 <text name="Sim Name:">
13 游æˆä¸­çš„åå­—: 13 模拟器å称:
14 </text> 14 </text>
15 <check_box label="åºæ›²" name="check prelude" 15 <check_box label="åºç« " name="check prelude"
16 tool_tip="设定此项æ¥ä½¿è¿™å土地å˜ä¸ºå‰é¢çš„项。" /> 16 tool_tip="设定该区域为åºç« ã€‚" />
17 <check_box label="太阳固定" name="check fixed sun" 17 <check_box label="太阳固定" name="check fixed sun"
18 tool_tip="固定太阳的ä½ç½®ï¼ˆä¾‹å¦‚在地区/地产)〉地形" /> 18 tool_tip="固定太阳的ä½ç½® (å’Œ 地区/地产 > 地形 é‡ç‚¹çš„设定相似)" />
19 <check_box label="é‡æ–°è®¾ç½®é—ªç”µä¼ è¿ä¸Šçš„家" name="check reset home" 19 <check_box label="瞬间移动时é‡è®¾å®¶" name="check reset home"
20 tool_tip="当居民闪电传è¿ç¦»å¼€, 将会使他们的家é‡è®¾åœ¨ä»–们ç€é™†çš„目的地处." /> 20 tool_tip="当居民瞬间移动离开, 将会使他们的家é‡è®¾åœ¨ä»–们ç€é™†çš„目的地处." />
21 <check_box label="å¯è§çš„" name="check visible" 21 <check_box label="å¯è§çš„" name="check visible"
22 tool_tip="设定此项使此地对éžç¥žä»™æ—å¯è§†" /> 22 tool_tip="设定此项使此地对éžç¥žå¯è§†" />
23 <check_box label="æ¯å" name="check damage" 23 <check_box label="伤害" name="check damage"
24 tool_tip="设定此项æ¥åœ¨æ­¤åœ°å¼€å¯ç ´å模å¼ã€‚" /> 24 tool_tip="设定此项æ¥åœ¨æ­¤åœ°å¯ç¨ä¼¤å®³ã€‚" />
25 <check_box label="阻止交通追踪" name="block dwell" 25 <check_box label="阻止æµé追踪" name="block dwell"
26 tool_tip="设定此项使这å—土地ä¸è¿›è¡Œäº¤é€šè¿ç®—。" /> 26 tool_tip="设定此项使这å—土地ä¸è¿›è¡Œæµéè¿ç®—。" />
27 <check_box label="é”定外形" name="block terraform" 27 <check_box label="é”定地形" name="block terraform"
28 tool_tip="设置这里ä¸å…许人们交æ¢ä»–们的土地。" /> 28 tool_tip="设定此项æ¥ç¦æ­¢äººä»¬ä¿®æ”¹ä»–们土地的地形" />
29 <check_box label="沙盘" name="is sandbox" 29 <check_box label="沙盘" name="is sandbox"
30 tool_tip="套牢此处å³ä½¿è¿™æ˜¯æ²™ç›’区域." /> 30 tool_tip="设定此处是å¦æ˜¯æ²™ç›’区域。" />
31 <button label="硬地" label_selected="硬地" name="Bake Terrain" 31 <button label="烘烤" label_selected="烘烤" name="Bake Terrain"
32 tool_tip="以默认模å¼ä¿å­˜å½“å‰åœŸåœ°ã€‚" /> 32 tool_tip="将当å‰åœ°å½¢ä¿å­˜ä¸ºé»˜è®¤å€¼ã€‚" />
33 <button label="æ¢å¤åœ°å½¢" label_selected="æ¢å¤åœ°å½¢" name="Revert Terrain" 33 <button label="æ¢å¤åœ°å½¢" label_selected="æ¢å¤åœ°å½¢" name="Revert Terrain"
34 tool_tip="以默认å–代现有土地。" /> 34 tool_tip="以默认值å–代现有地形。" />
35 <button label="交æ¢åœ°å½¢" label_selected="交æ¢åœ°å½¢" name="Swap Terrain" 35 <button label="交æ¢åœ°å½¢" label_selected="交æ¢åœ°å½¢" name="Swap Terrain"
36 tool_tip="将现有土地与DEFAULT互æ¢." /> 36 tool_tip="将现有土地与默认值互æ¢ã€‚" />
37 <text name="estate id"> 37 <text name="estate id">
38 ä¸åŠ¨äº§ID: 38 地产ID:
39 </text> 39 </text>
40 <text name="parent id"> 40 <text name="parent id">
41 åˆçº§ID: 41 æ¯åŒºåŸŸID:
42 </text> 42 </text>
43 <line_editor name="parentestate" tool_tip="这是这å—区域的æ¯åŒºåŸŸã€‚" /> 43 <line_editor name="parentestate" tool_tip="这是这å—区域的æ¯åŒºåŸŸã€‚" />
44 <text name="Grid Pos: "> 44 <text name="Grid Pos: ">
45 方格收款å°: 45 网格ä½ç½®
46 </text> 46 </text>
47 <line_editor name="gridposx" tool_tip="这是方格x在此区域内的ä½ç½®ã€‚" /> 47 <line_editor name="gridposx" tool_tip="这是区域在网格x内的ä½ç½®ã€‚" />
48 <line_editor name="gridposy" tool_tip="这是方格y在此区域内的ä½ç½®ã€‚" /> 48 <line_editor name="gridposy" tool_tip="这是区域在网格y内的ä½ç½®ã€‚" />
49 <text name="Redirect to Grid: "> 49 <text name="Redirect to Grid: ">
50 从新定ä½æ–¹æ ¼ä½ç½®: 50 é‡å®šå‘到ç½æ ¼:
51 </text> 51 </text>
52 <text name="billable factor text"> 52 <text name="billable factor text">
53 å¸å•æ˜Žç»†: 53 å¸å•æ˜Žç»†:
@@ -62,21 +62,21 @@
62 <button label="选择区域" label_selected="选择区域" name="Select Region" 62 <button label="选择区域" label_selected="选择区域" name="Select Region"
63 tool_tip="用土地工具选择整个地区。" /> 63 tool_tip="用土地工具选择整个地区。" />
64 <button label="立刻自动ä¿å­˜" label_selected="立刻自动ä¿å­˜" 64 <button label="立刻自动ä¿å­˜" label_selected="立刻自动ä¿å­˜"
65 name="Autosave now" tool_tip="ä¿å­˜åŽ‹ç¼©çŠ¶æ€åˆ°è‡ªåŠ¨å­˜æ¡£ç›®å½•ã€‚" /> 65 name="Autosave now" tool_tip="ä¿å­˜ gzip 压缩的状æ€åˆ°è‡ªåŠ¨å­˜æ¡£ç›®å½•ã€‚" />
66 </panel> 66 </panel>
67 <panel label="东东" name="objects"> 67 <panel label="物体" name="objects">
68 <text name="Sim Name:"> 68 <text name="Sim Name:">
69 游æˆä¸­çš„åå­—: 69 模拟器å称:
70 </text> 70 </text>
71 <text name="region name"> 71 <text name="region name">
72 å¨å°”士 72 Welsh
73 </text> 73 </text>
74 <check_box label="无效脚本" name="disable scripts" 74 <check_box label="无效脚本" name="disable scripts"
75 tool_tip="设定此项用以关闭此区域内的所有脚本文档" /> 75 tool_tip="设定此项用以关闭此区域内的所有脚本" />
76 <check_box label="无效冲çª" name="disable collisions" 76 <check_box label="无效冲çª" name="disable collisions"
77 tool_tip="设置这里使得这å—区域内的éžä»£ç†å†²çªæ— æ•ˆã€‚" /> 77 tool_tip="设置这里使得这å—区域内的éžä»£ç†å†²çªæ— æ•ˆã€‚" />
78 <check_box label="无效物ç†" name="disable physics" 78 <check_box label="无效物ç†" name="disable physics"
79 tool_tip="设定此项用以关闭次区域内的所有物ç†æ¨¡å¼ã€‚" /> 79 tool_tip="设定此项以关闭此区域内的所有物ç†ã€‚" />
80 <button label="应用" label_selected="应用" name="Apply" 80 <button label="应用" label_selected="应用" name="Apply"
81 tool_tip="点击这里æ¥åº”用以上的更改." /> 81 tool_tip="点击这里æ¥åº”用以上的更改." />
82 <button label="设置目标" label_selected="设置目标" name="Set Target" 82 <button label="设置目标" label_selected="设置目标" name="Set Target"
@@ -84,28 +84,28 @@
84 <text name="target_avatar_name"> 84 <text name="target_avatar_name">
85 (没有目标) 85 (没有目标)
86 </text> 86 </text>
87 <button label="删除其他土地上的é€å®šçš„脚本东东" 87 <button label="删除目标于他人土地上有脚本的物体"
88 label_selected="删除其他土地上的é€å®šçš„脚本东东" 88 label_selected="删除目标于他人土地上有脚本的物体"
89 name="Delete Target&apos;s Scripted Objects On Others Land" 89 name="Delete Target&apos;s Scripted Objects On Others Land"
90 tool_tip="删除所有ä¸è¢«åœŸåœ°ä¸Šçš„目标拥有的东东。 (没有副本)东东将被归还." /> 90 tool_tip="删除他人土地上目标所有有脚本的物体。(ä¸å¯å¤åˆ¶)的物体将被返还。" />
91 <button label="删除*任何*土地上选中的脚本东东" 91 <button label="删除*任何*土地上选中的脚本东东"
92 label_selected="删除*任何*土地上选中的脚本东东" 92 label_selected="删除*任何*土地上选中的脚本东东"
93 name="Delete Target&apos;s Scripted Objects On *Any* Land" 93 name="Delete Target&apos;s Scripted Objects On *Any* Land"
94 tool_tip="删除此区域内目标所属的所有脚本东东。(没有副本)东东会被返回。" /> 94 tool_tip="删除该区域中目标所有有脚本的物体。(ä¸å¯å¤åˆ¶)的物体将被返还。" />
95 <button label="删除*所有*选中的东东" 95 <button label="删除*所有*选中的东东"
96 label_selected="删除*所有*选中的东东" 96 label_selected="删除*所有*选中的东东"
97 name="Delete *ALL* Of Target&apos;s Objects" 97 name="Delete *ALL* Of Target&apos;s Objects"
98 tool_tip="删除此目标在此区域内的所有东东" /> 98 tool_tip="删除该区域中目标所有的物体。(ä¸å¯å¤åˆ¶)的物体将被返还。" />
99 <button label="到达最首è¦å†²çªæº" label_selected="到达最首è¦å†²çªæº" 99 <button label="获å–首è¦ç¢°æ’žæº" label_selected="å最首è¦ç¢°æ’žæº"
100 name="Get Top Colliders" 100 name="Get Top Colliders"
101 tool_tip="获å–一份关于东东承å最弱回收信å·æ¸…å•ã€‚" /> 101 tool_tip="获å–一份短相回å«å‘生最多的物å“的列表。" />
102 <button label="到达首è¦è„šæœ¬" label_selected="到达首è¦è„šæœ¬" 102 <button label="获å–首è¦è„šæœ¬" label_selected="获å–首è¦è„šæœ¬"
103 name="Get Top Scripts" 103 name="Get Top Scripts"
104 tool_tip="获å–一份关于最耗时脚本东东的列表。" /> 104 tool_tip="获å–一份最耗时脚本的列表。" />
105 <button label="脚本摘è¦" label_selected="脚本摘è¦" name="Scripts digest" 105 <button label="脚本摘è¦" label_selected="脚本摘è¦" name="Scripts digest"
106 tool_tip="获å–一份关于所有脚本文档åŠå…¶å‡ºçŽ°æ¬¡æ•°çš„列表。" /> 106 tool_tip="获å–一份所有脚本åŠå…¶å‡ºçŽ°æ¬¡æ•°çš„列表。" />
107 </panel> 107 </panel>
108 <panel label="Request" name="request"> 108 <panel label="请求" name="request">
109 <text name="Destination:"> 109 <text name="Destination:">
110 目的地: 110 目的地:
111 </text> 111 </text>
@@ -114,7 +114,7 @@
114 选项 114 选项
115 </combo_item> 115 </combo_item>
116 <combo_item name="AgentRegion"> 116 <combo_item name="AgentRegion">
117 代ç†åŒºåŸŸ 117 代ç†æ‰€åœ¨åŒºåŸŸ
118 </combo_item> 118 </combo_item>
119 </combo_box> 119 </combo_box>
120 <text name="Request:"> 120 <text name="Request:">
@@ -122,13 +122,13 @@
122 </text> 122 </text>
123 <combo_box name="request"> 123 <combo_box name="request">
124 <combo_item name="colliders&lt;steps&gt;"> 124 <combo_item name="colliders&lt;steps&gt;">
125 å†²çª &lt;步骤&gt; 125 冲çªè€… &lt;步骤&gt;
126 </combo_item> 126 </combo_item>
127 <combo_item name="scripts&lt;count&gt;,&lt;optionalpattern&gt;"> 127 <combo_item name="scripts&lt;count&gt;,&lt;optionalpattern&gt;">
128 脚本 &lt;计数&gt;,&lt;å¯é€‰çš„æ ·å¼&gt; 128 脚本 &lt;计数&gt;,&lt;å¯é€‰çš„查询文字&gt;
129 </combo_item> 129 </combo_item>
130 <combo_item name="objects&lt;pattern&gt;"> 130 <combo_item name="objects&lt;pattern&gt;">
131 东东&lt;å¼æ ·&gt; 131 物体 &lt;查询文字&gt;
132 </combo_item> 132 </combo_item>
133 <combo_item name="rez&lt;asset_id&gt;"> 133 <combo_item name="rez&lt;asset_id&gt;">
134 rez &lt;财产_id&gt; 134 rez &lt;财产_id&gt;
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_group_info.xml b/linden/indra/newview/skins/default/xui/zh/floater_group_info.xml
index 23687c8..c66d27f 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_group_info.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_group_info.xml
@@ -1,7 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<!-- deprecated - doesn't seem to be used -->
2<floater name="groupinfo" title="林登家æ—-社团信æ¯"> 3<floater name="groupinfo" title="林登家æ—-社团信æ¯">
3 <tab_container name="tab"> 4 <tab_container name="tab">
4 <panel label="General" name="gen"> 5 <panel label="一般" name="gen">
5 <text name="title_box"> 6 <text name="title_box">
6 ç¤¾å›¢ä¿¡æ¯ 7 社团信æ¯
7 </text> 8 </text>
@@ -9,7 +10,7 @@
9 社团是你和朋å‹ä»¬åˆä½œçš„有趣的途径。 10 社团是你和朋å‹ä»¬åˆä½œçš„有趣的途径。
10 </text> 11 </text>
11 <text name="txt2"> 12 <text name="txt2">
12 社团使你拥有头衔,徽章和选举æƒ. 13 社团使你拥有头衔,徽章和进行选举的能力。
13 </text> 14 </text>
14 <text name="txt3"> 15 <text name="txt3">
15 任何人都å¯ä»¥åˆ›å»ºç¤¾å›¢ã€‚但æ¯ä¸ªäººæœ€å¤šåªèƒ½å‚加15个社团。 16 任何人都å¯ä»¥åˆ›å»ºç¤¾å›¢ã€‚但æ¯ä¸ªäººæœ€å¤šåªèƒ½å‚加15个社团。
@@ -32,33 +33,33 @@
32 <check_box label="在社团åå•ä¸­æ˜¾ç¤º" name="sho" /> 33 <check_box label="在社团åå•ä¸­æ˜¾ç¤º" name="sho" />
33 <check_box label="在社团åå•ä¸­æ˜¾ç¤ºæˆå‘˜" name="sho_mem" /> 34 <check_box label="在社团åå•ä¸­æ˜¾ç¤ºæˆå‘˜" name="sho_mem" />
34 <check_box label="在网上公布" name="allow_publish" 35 <check_box label="在网上公布" name="allow_publish"
35 tool_tip="将你个人的简介å‘布到网上." /> 36 tool_tip="将简介å‘布到网上。" />
36 <button label="?" label_selected="?" name="publish_help_btn" /> 37 <button label="?" label_selected="?" name="publish_help_btn" />
37 <check_box label="æˆäºº" name="mature" 38 <check_box label="æˆäºº" name="mature"
38 tool_tip="你的档案文件被认为带有æˆäººå†…容." /> 39 tool_tip="您的社团档案带有æˆäººå†…容。" />
39 </panel> 40 </panel>
40 <panel label="Titles" name="tit"> 41 <panel label="头衔" name="tit">
41 <text name="txt"> 42 <text name="txt">
42 社团头衔 43 社团头衔
43 </text> 44 </text>
44 <text name="txt2"> 45 <text name="txt2">
45 社团有官员和社员,他们拥有ä¸åŒçš„头衔。 46 社团的官员和æˆå‘˜éƒ½å¯ä»¥æœ‰ç‰¹æ®Šçš„头衔。
46 </text> 47 </text>
47 <text name="txt3"> 48 <text name="txt3">
48 在世界里,èŠå¤©æ—¶å’Œå³æ—¶é€šæ¶ˆæ¯é‡Œï¼Œå¤´è¡”出现在å字之å‰ã€‚ 49 头衔将在世界里ã€èŠå¤©æ—¶å’Œå³æ—¶é€šæ¶ˆæ¯é‡Œå‡ºçŽ°åœ¨å字之å‰ã€‚
49 </text> 50 </text>
50 <text name="lbl"> 51 <text name="lbl">
51 官员èŒä½: 52 官员头衔:
52 </text> 53 </text>
53 <text name="lbl2"> 54 <text name="lbl2">
54 æˆå‘˜å¤´è¡”: 55 æˆå‘˜å¤´è¡”:
55 </text> 56 </text>
56 <text name="lbl3"> 57 <text name="lbl3">
57 从你的库存中选å–æ料制作社团徽章. 58 从库存中æ‹å‡ºæè´¨æ¥è®¾ç½®ç¤¾å›¢å¾½ç« ã€‚
58 </text> 59 </text>
59 <texture_picker name="insig" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 60 <texture_picker name="insig" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
60 </panel> 61 </panel>
61 <panel label="Members" name="mem"> 62 <panel label="æˆå‘˜" name="mem">
62 <text name="txt"> 63 <text name="txt">
63 社团æˆå‘˜ 64 社团æˆå‘˜
64 </text> 65 </text>
@@ -76,7 +77,7 @@
76 </text> 77 </text>
77 <button label="驱é€æˆå‘˜" label_selected="驱é€æˆå‘˜" name="eject_member_btn" /> 78 <button label="驱é€æˆå‘˜" label_selected="驱é€æˆå‘˜" name="eject_member_btn" />
78 </panel> 79 </panel>
79 <panel label="Voting" name="voting"> 80 <panel label="投票" name="voting">
80 <tab_container name="tab"> 81 <tab_container name="tab">
81 <panel label="Election" name="recall"> 82 <panel label="Election" name="recall">
82 <text name="txt"> 83 <text name="txt">
@@ -104,13 +105,13 @@
104 </text> 105 </text>
105 <radio_group name="majority" tool_tip="Majority of total votes needed to win."> 106 <radio_group name="majority" tool_tip="Majority of total votes needed to win.">
106 <radio_item name="radio"> 107 <radio_item name="radio">
107 Simple Majority 108 简å•å¤šæ•°
108 </radio_item> 109 </radio_item>
109 <radio_item name="radio2"> 110 <radio_item name="radio2">
110 2/3 Majority 111 2/3 多数
111 </radio_item> 112 </radio_item>
112 <radio_item name="radio3"> 113 <radio_item name="radio3">
113 Unanimous 114 一致åŒæ„
114 </radio_item> 115 </radio_item>
115 </radio_group> 116 </radio_group>
116 <text name="duration_lbl"> 117 <text name="duration_lbl">
@@ -157,13 +158,13 @@
157 </text> 158 </text>
158 <radio_group name="majority" tool_tip="Majority of total votes needed to win."> 159 <radio_group name="majority" tool_tip="Majority of total votes needed to win.">
159 <radio_item name="radio"> 160 <radio_item name="radio">
160 Simple Majority 161 简å•å¤šæ•°
161 </radio_item> 162 </radio_item>
162 <radio_item name="radio2"> 163 <radio_item name="radio2">
163 2/3 Majority 164 2/3 多数
164 </radio_item> 165 </radio_item>
165 <radio_item name="radio3"> 166 <radio_item name="radio3">
166 Unanimous 167 一致åŒæ„
167 </radio_item> 168 </radio_item>
168 </radio_group> 169 </radio_group>
169 <text name="duration_lbl"> 170 <text name="duration_lbl">
@@ -201,7 +202,7 @@
201 </panel> 202 </panel>
202 </tab_container> 203 </tab_container>
203 </panel> 204 </panel>
204 <panel label="Invite" name="inv"> 205 <panel label="邀请" name="inv">
205 <text name="txt"> 206 <text name="txt">
206 社团邀请 207 社团邀请
207 </text> 208 </text>
@@ -249,14 +250,14 @@
249 </panel> 250 </panel>
250 <panel label="金钱" name="mon"> 251 <panel label="金钱" name="mon">
251 <tab_container name="group money history tab"> 252 <tab_container name="group money history tab">
252 <panel label="Planning" name="money panel" /> 253 <panel label="计划" name="money panel" />
253 <panel label="Details" name="money panel2"> 254 <panel label="详细" name="money panel2">
254 <button label="&lt;较早" label_selected="&lt;较早" name="&lt; Earlier" 255 <button label="&lt;较早" label_selected="&lt;较早" name="&lt; Earlier"
255 tool_tip="时间返回" /> 256 tool_tip="时间返回" />
256 <button label="延迟 &gt;" label_selected="延迟 &gt;" name="Later &gt;" 257 <button label="延迟 &gt;" label_selected="延迟 &gt;" name="Later &gt;"
257 tool_tip="时间å‰è¿›" /> 258 tool_tip="时间å‰è¿›" />
258 </panel> 259 </panel>
259 <panel label="Sales" name="money panel3"> 260 <panel label="出售" name="money panel3">
260 <button label="&lt;较早" label_selected="&lt;较早" name="&lt; Earlier" 261 <button label="&lt;较早" label_selected="&lt;较早" name="&lt; Earlier"
261 tool_tip="时间返回" /> 262 tool_tip="时间返回" />
262 <button label="延迟 &gt;" label_selected="延迟 &gt;" name="Later &gt;" 263 <button label="延迟 &gt;" label_selected="延迟 &gt;" name="Later &gt;"
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml b/linden/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml
new file mode 100644
index 0000000..199cbed
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_hardware_settings.xml
@@ -0,0 +1,81 @@
1<?xml version="1.0" encoding="utf-8"?>
2<floater
3 name="Hardware Settings Floater"
4 title="硬件设置">
5
6 <text
7 name="Filtering:">
8 过滤:
9 </text>
10 <check_box
11 initial_value="false"
12 label="å„å‘异性过滤 (打开会å‡ä½Žé€Ÿåº¦)"
13 name="ani" />
14 <text
15 name="Antialiasing:">
16 å锯齿:
17 </text>
18 <combo_box
19 initial_value="false"
20 label="Antialiasing"
21 name="fsaa">
22 <combo_item
23 name="FSAADisabled"
24 value="0">
25 关闭
26 </combo_item>
27 <combo_item
28 name="2x"
29 value="2">
30 2×
31 </combo_item>
32 <combo_item
33 name="4x"
34 value="4">
35 4×
36 </combo_item>
37 <combo_item
38 name="8x"
39 value="8">
40 8×
41 </combo_item>
42 <combo_item
43 name="16x"
44 value="16">
45 16×
46 </combo_item>
47 </combo_box>
48 <spinner
49 label="Gamma:"
50 name="gamma" />
51 <text
52 name="(brightness, lower is brighter)">
53 (亮度,越低越亮, 0=使用默认值)
54 </text>
55 <spinner
56 label="夜间亮度:"
57 name="nighttime_brightness" />
58 <text name="(higher is brighter, 1.0 is default)">(越高越亮,默认为1.0)</text>
59 <text name="Enable VBO:">å¯ç”¨ VBO:</text>
60 <check_box
61 initial_value="true"
62 label="å¯ç”¨ OpenGL 顶点缓存对象(Vertex Buffer Objects)"
63 name="vbo"
64 tool_tip="较新的硬件上打开这个选项将å¯ä½¿æ€§èƒ½æå‡ã€‚ä¸è¿‡ï¼Œè¾ƒæ—§çš„硬件通常对VBO支æŒä¸ä½³ï¼Œæ‰“开的è¯æ‚¨å¯èƒ½ä¼šé‡åˆ°ç¨‹åºå´©æºƒã€‚" />
65
66 <slider
67 label="æ质内存 (MB):"
68 name="GrapicsCardTextureMemory"
69 tool_tip="分é…给图åƒçš„内存的数é‡ã€‚默认为全部显å¡å†…存。å‡å°‘该选项也许å¯ä»¥æ”¹è¿›æ€§èƒ½ï¼Œä½†ä¹Ÿè®¸ä¹ŸåŒæ—¶ä¼šä½¿æè´¨å˜å¾—模糊。" />
70
71 <spinner
72 label="雾è·ç¦»æ¯”率:"
73 name="fog" />
74
75 <button
76 label="确定"
77 label_selected="确定"
78 name="OK"
79 scale_image="true" />
80
81</floater> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_html.xml b/linden/indra/newview/skins/default/xui/zh/floater_html.xml
new file mode 100644
index 0000000..695ca27
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_html.xml
@@ -0,0 +1,20 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="htmlfloater"
4 title="">
5 <button
6 label="关闭"
7 name="close_btn"/>
8 <web_browser
9 name="html_floater_browser"/>
10 <button
11 label="åŽé€€"
12 name="back_btn" />
13 <button
14 label="å‰è¿›"
15 name="forward_btn" />
16 <button
17 label="转到"
18 name="go_btn" />
19</floater>
20
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_hud.xml b/linden/indra/newview/skins/default/xui/zh/floater_hud.xml
new file mode 100644
index 0000000..d31798b
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_hud.xml
@@ -0,0 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="floater_hud"
4 title="教程">
5 <web_browser
6 name="floater_hud_browser"
7 start_url="data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody bgcolor=%22#000000%22 text=%22ffffff%22%3E%3Ch1%3E%3Ctt%3E%0D%0A%0D%0A读å–中...%3C/tt%3E%3C/h1%3E%3C/body%3E%3C/html%3E" />
8</floater>
9
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_im.xml b/linden/indra/newview/skins/default/xui/zh/floater_im.xml
index 423e0ae..dd8716a 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_im.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_im.xml
@@ -1,9 +1,68 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<multi_floater name="im_floater" title="å³æ—¶æ¶ˆæ¯é€š"> 2<multi_floater
3 <text name="only_user_message"> 3 min_height="130"
4 你是这个阶段唯一的用户。 4 min_width="350"
5 </text> 5 name="im_floater"
6 <text name="offline_message"> 6 title="å³æ—¶èŠå¤©">
7 [FIRST] [LAST] ç›®å‰ä¸åœ¨çº¿ã€‚ 7 <tab_container
8 </text> 8 name="Preview Tabs" />
9 <string
10 name="only_user_message">
11 您是该会è¯ä¸­å”¯ä¸€çš„å‚与者。
12 </string>
13 <string
14 name="offline_message">
15 [FIRST] [LAST] ä¸åœ¨çº¿ã€‚
16 </string>
17 <string
18 name="invite_message">
19 点击 [BUTTON NAME] 按钮æ¥æŽ¥å—/连接到该语音èŠå¤©ã€‚
20 </string>
21 <string
22 name="muted_message">
23 您已ç»å±è”½äº†è¯¥ä½å±…民。å‘é€æ¶ˆæ¯çš„è¯å°†ä¼šè‡ªåŠ¨è§£é™¤å±è”½ã€‚
24 </string>
25
26 <string
27 name="generic_request_error">
28 å‘出请求时å‘生错误,请等会儿å†è¯•ã€‚
29 </string>
30 <string
31 name="insufficient_perms_error">
32 您的æƒé™ä¸è¶³ã€‚
33 </string>
34 <string
35 name="session_does_not_exist_error">
36 该会è¯å·²ä¸å­˜åœ¨
37 </string>
38 <string
39 name="no_ability_error">
40 您没有那ç§èƒ½åŠ›ã€‚
41 </string>
42 <string
43 name="not_a_mod_error">
44 您ä¸æ˜¯ä¼šè¯ç®¡ç†å‘˜ã€‚
45 </string>
46 <string
47 name="muted_error">
48 一ä½ä¼šè¯ç®¡ç†å‘˜å±è”½äº†æ‚¨çš„文字èŠå¤©ã€‚
49 </string>
50 <!-- *所有* 事件字符串都应该有 [RECIPIENT] 在其中 -->
51 <string
52 name="add_session_event">
53 无法å‘与 [RECIPIENT] çš„èŠå¤©ä¼šè¯ä¸­åŠ å…¥ç”¨æˆ·ã€‚
54 </string>
55 <string
56 name="message_session_event">
57 无法将您的消æ¯é€è¾¾åˆ°ä¸Ž [RECIPIENT] çš„èŠå¤©ä¼šè¯ä¸­ã€‚
58 </string>
59 <string
60 name="removed_from_group">
61 您已被从社团中去除。
62 </string>
63 <string
64 name="close_on_no_ability">
65 您ä¸å†æœ‰åœ¨èŠå¤©ä¼šè¯ä¸­çš„能力。
66 </string>
9</multi_floater> 67</multi_floater>
68
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_image_preview.xml b/linden/indra/newview/skins/default/xui/zh/floater_image_preview.xml
index e669ce0..d3bf113 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_image_preview.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_image_preview.xml
@@ -11,7 +11,7 @@
11 </text> 11 </text>
12 <combo_box label="è¡£æœæ¬¾å¼" name="clothing_type_combo"> 12 <combo_box label="è¡£æœæ¬¾å¼" name="clothing_type_combo">
13 <combo_item name="Image"> 13 <combo_item name="Image">
14 å¤´åƒ 14 图åƒ
15 </combo_item> 15 </combo_item>
16 <combo_item name="Hair"> 16 <combo_item name="Hair">
17 å¤´å‘ 17 头å‘
@@ -37,12 +37,19 @@
37 <combo_item name="Skirt"> 37 <combo_item name="Skirt">
38 è£™å­ 38 裙å­
39 </combo_item> 39 </combo_item>
40 <combo_item
41 name="SculptedPrim">
42 Sculpted 元件
43 </combo_item>
40 </combo_box> 44 </combo_box>
41 <text name="bad_image_text"> 45 <text name="bad_image_text">
42 ä¸èƒ½è¯»å–图åƒã€‚ 46 ä¸èƒ½è¯»å–图åƒã€‚
43 47
44 å°è¯•å°†å›¾åƒæŒ‰24 bit Targaæ–¹å¼å‚¨å­˜ã€‚ 48å°è¯•å°†å›¾åƒæŒ‰24 bit Targaæ–¹å¼å‚¨å­˜ã€‚
45 </text> 49 </text>
50 <check_box
51 label="使用无æŸåŽ‹ç¼©"
52 name="lossless_check" />
46 <button label="å–消" name="cancel_btn" /> 53 <button label="å–消" name="cancel_btn" />
47 <button label="上传(L$[AMOUNT])" name="ok_btn" /> 54 <button label="上传(L$[AMOUNT])" name="ok_btn" />
48</floater> 55</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_inspect.xml b/linden/indra/newview/skins/default/xui/zh/floater_inspect.xml
index 2989bd7..fff47d5 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_inspect.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_inspect.xml
@@ -1,14 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="inspect" title="检查东东"> 2<floater name="inspect" title="审查物体">
3 <scroll_list name="object_list" 3 <scroll_list name="object_list"
4 tool_tip="从这份列表中选择一项东东,使它在游æˆä¸–界中被çªæ˜¾"> 4 tool_tip="从这份列表中选择一项物体æ¥åœ¨ä¸–界中çªå‡ºæ˜¾ç¤ºå®ƒ">
5 <column label="东东å称" name="object_name" /> 5 <column label="物体å称" name="object_name" />
6 <column label="主人åå­—" name="owner_name" /> 6 <column label="主人åå­—" name="owner_name" />
7 <column label="创造者åå­—" name="creator_name" /> 7 <column label="创建者åå­—" name="creator_name" />
8 <column label="创造时间" name="creation_date" /> 8 <column label="创建时间" name="creation_date" />
9 </scroll_list> 9 </scroll_list>
10 <button label="查看主人档案..." name="button owner" 10 <button label="查看主人档案..." name="button owner"
11 tool_tip="查看被çªæ˜¾çš„东东的主人åå­—" /> 11 tool_tip="查看çªå‡ºæ˜¾ç¤ºç‰©ä½“的主人的档案" />
12 <button label="查看创建者档案..." name="button creator" 12 <button label="查看创建者档案..." name="button creator"
13 tool_tip="查看被çªæ˜¾ä¸œä¸œçš„创造者的档案" /> 13 tool_tip="查看çªå‡ºæ˜¾ç¤ºç‰©ä½“的创建者的档案" />
14</floater> 14</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml
index 038fa3d..dcc10e5 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_instant_message.xml
@@ -1,17 +1,79 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater label="(未知)" name="im_floater" title="(未知)"> 2<floater
3 <button label="档案..." label_selected="档案..." name="profile_btn" /> 3 label="(unknown)"
4 <button label="关闭" label_selected="关闭" name="close_btn" /> 4 min_height="155"
5 <text name="live_help_dialog"> 5 min_width="345"
6 *** 欢迎æ¥åˆ°åœ¨çº¿å¸®åŠ©ç«™,在这里,我们出色的志愿者们会å助他们的第二人生居民朋å‹ä»¬åœ¨ç¬¬äºŒäººç”Ÿé‡Œç²¾å½©çš„ç”Ÿæ´»ï¼ *** 6 name="im_floater"
7请先按F1键,进入第二人生帮助页é¢ã€‚如果你想è¦çš„答案ä¸åœ¨è¿™é‡Œï¼Œè¯·é”®å…¥ä½ çš„问题,点击开始,等候若干分钟åŽï¼Œåœ¨çº¿çš„帮助者会给你回å¤ã€‚ 7 title="(unknown)">
8如果您的处ç†è¿‡ç¨‹æ²¡æœ‰ç»“æŸï¼Œè¯·ä¸è¦å…³é—­åœ¨çº¿å¸®åŠ©ç«™çš„页é¢ã€‚如果您没有得到回应,你å¯ä»¥ä¸€ç›´é€‰æ‹©é‡æ–°å°è¯•ä¸€é。 8 <string
9注æ„: 在线帮助者并ä¸æ˜¯æž—登实验室的雇员, 所以,除éžå›žåº”人的姓æ°ä¸º&apos;Linden&apos;,å¦åˆ™å›žå¤éƒ½åº”视为éžæ­£å¼çš„. 9 name="ringing">
10 </text> 10 正在加入语音èŠå¤©...
11 <text name="title_string"> 11 </string>
12 Instant Message with [NAME] 12 <string
13 </text> 13 name="connected">
14 <text name="typing_start_string"> 14 已连接,点击结æŸé€šè¯æ¥æŒ‚æ–­
15 [NAME] is typing... 15 </string>
16 </text> 16 <string
17</floater> 17 name="hang_up">
18 连接已结æŸ
19 </string>
20 <string
21 name="title_string">
22 与 [NAME] çš„å³æ—¶é€šä¿¡
23 </string>
24 <string
25 name="typing_start_string">
26 [NAME] 正在输入...
27 </string>
28 <string
29 name="session_start_string">
30 正在开始和 [NAME] 的会è¯ï¼Œè¯·ç¨å€™ã€‚
31 </string>
32 <string
33 name="default_text_label">
34 点击这里开始å³æ—¶èŠå¤©ã€‚
35 </string>
36 <string
37 name="answering">
38 正在连接...
39 </string>
40 <string
41 name="default_text_label">
42 点击这里开始å³æ—¶èŠå¤©ã€‚
43 </string>
44 <button
45 label="档案..."
46 name="profile_callee_btn" />
47 <button
48 label="呼å«"
49 name="start_call_btn" />
50 <button
51 label="结æŸå‘¼å«"
52 name="end_call_btn"
53 pad_right="10"
54 visible="false" />
55 <panel
56 name="speaker_controls">
57 <volume_slider
58 name="speaker_volume" />
59 <button
60 label=""
61 name="mute_btn"
62 tool_tip="é™éŸ³" />
63 </panel>
64 <text_editor
65 name="im_history" />
66 <line_editor
67 label="点击这里开始å³æ—¶èŠå¤©ã€‚"
68 name="chat_editor" />
69 <button
70 label="å‘é€"
71 name="send_btn" />
72 <string
73 name="live_help_dialog">
74 *** 欢迎æ¥åˆ°å¸®åŠ©è¯·æ±‚ ***
75 请首先按 F1 å‚阅我们的第二人生帮助页é¢ï¼Œæˆ–访问知识库 http://secondlife.com/knowledgebase/
76若你找ä¸åˆ°æ‰€éœ€çš„答案,请输入你的问题,然åŽç­‰å¾…å¯ç”¨çš„工作人员的回å¤ã€‚
77 -=-=- å应时间ä¸å›ºå®šï¼Œç‰¹åˆ«åœ¨é«˜å³°æ—¶æœŸ -=-=-
78 </string>
79</floater> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_instant_message_ad_hoc.xml b/linden/indra/newview/skins/default/xui/zh/floater_instant_message_ad_hoc.xml
new file mode 100644
index 0000000..33c9612
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_instant_message_ad_hoc.xml
@@ -0,0 +1,66 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 default_tab_group="1"
4 label="(unknown)"
5 min_height="225"
6 min_width="265"
7 name="im_floater"
8 title="(unknown)">
9 <string
10 name="ringing">
11 正在加入语音èŠå¤©...
12 </string>
13 <string
14 name="connected">
15 已连接,点击结æŸé€šè¯æ¥æŒ‚æ–­
16 </string>
17 <string
18 name="hang_up">
19 离开了语音èŠå¤©
20 </string>
21 <string
22 name="title_string">
23 与 [NAME] çš„å³æ—¶é€šä¿¡
24 </string>
25 <string
26 name="typing_start_string">
27 [NAME] 正在输入...
28 </string>
29 <string
30 name="session_start_string">
31 正在开始和 [NAME] 的会è¯ï¼Œè¯·ç¨å€™ã€‚
32 </string>
33 <string
34 name="default_text_label">
35 点击这里开始å³æ—¶èŠå¤©ã€‚
36 </string>
37 <layout_stack>
38 <layout_panel
39 name="im_contents_panel">
40 <button
41 label="呼å«"
42 name="start_call_btn" />
43 <button
44 label="结æŸå‘¼å«"
45 name="end_call_btn" />
46 <button
47 name="toggle_active_speakers_btn"
48 tool_tip="显示在该å³æ—¶é€šä¿¡ä¼šè¯ä¸­æ´»åŠ¨çš„å‚与者。" />
49 <line_editor
50 label="点击这里开始å³æ—¶èŠå¤©ã€‚"
51 name="chat_editor" />
52 <button
53 label="å‘é€"
54 name="send_btn" />
55 </layout_panel>
56 </layout_stack>
57 <string
58 name="live_help_dialog">
59 *** 欢迎æ¥åˆ°å¸®åŠ©è¯·æ±‚ ***
60 请首先按 F1 å‚阅我们的第二人生帮助页é¢ï¼Œæˆ–访问知识库 http://secondlife.com/knowledgebase/
61若你找ä¸åˆ°æ‰€éœ€çš„答案,请输入你的问题,然åŽç­‰å¾…å¯ç”¨çš„工作人员的回å¤ã€‚
62 -=-=- å应时间ä¸å›ºå®šï¼Œç‰¹åˆ«åœ¨é«˜å³°æ—¶æœŸ -=-=-
63 </string>
64</floater>
65
66<!--Translated for Second Life 1.19.1 RC3 --> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_instant_message_group.xml b/linden/indra/newview/skins/default/xui/zh/floater_instant_message_group.xml
new file mode 100644
index 0000000..4198c6d
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_instant_message_group.xml
@@ -0,0 +1,76 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 label="(未知)"
4 name="im_floater"
5 title="(未知)">
6 <string
7 name="ringing">
8 正在加入语音èŠå¤©...
9 </string>
10 <string
11 name="connected">
12 已连接,点击结æŸé€šè¯æ¥æŒ‚æ–­
13 </string>
14 <string
15 name="hang_up">
16 离开了语音èŠå¤©
17 </string>
18 <string
19 name="live_help_dialog"
20 wordwrap="false">
21 *** 欢迎æ¥åˆ°å¸®åŠ©è¯·æ±‚ ***
22 请首先按 F1 å‚阅我们的第二人生帮助页é¢ï¼Œæˆ–访问知识库 http://secondlife.com/knowledgebase/
23 若你找ä¸åˆ°æ‰€éœ€çš„答案,请输入你的问题,然åŽç­‰å¾…å¯ç”¨çš„工作人员的回å¤ã€‚
24 -=-=- å应时间ä¸å›ºå®šï¼Œç‰¹åˆ«åœ¨é«˜å³°æ—¶æœŸ -=-=-
25 </string>
26 <string
27 name="title_string">
28 与 [NAME] çš„å³æ—¶é€šä¿¡
29 </string>
30 <string
31 name="typing_start_string">
32 [NAME] 正在输入...
33 </string>
34 <string
35 name="session_start_string">
36 正在开始和 [NAME] 的会è¯ï¼Œè¯·ç¨å€™ã€‚
37 </string>
38 <string
39 name="moderated_chat_label">
40 (对è¯å—管ç†ï¼Œè¯­éŸ³é»˜è®¤å…³é—­)
41 </string>
42 <string
43 name="default_text_label">
44 点击这里语音èŠå¤©ã€‚
45 </string>
46 <string
47 name="muted_text_label">
48 您的文字èŠå¤©å·²è¢«ç¤¾å›¢ç®¡ç†å‘˜ç¦ç”¨ã€‚
49 </string>
50 <layout_stack
51 name="panels">
52 <layout_panel
53 name="im_contents_panel">
54 <button
55 label="社团信æ¯"
56 name="group_info_btn" />
57 <button
58 image_overlay_alignment="left"
59 label="加入通è¯"
60 name="start_call_btn"
61 width="90"/>
62 <button
63 image_overlay_alignment="left"
64 label="结æŸé€šè¯"
65 name="end_call_btn"/>
66 <button
67 label="&lt; &lt;"
68 label_selected="&gt; &gt;"
69 name="toggle_active_speakers_btn"
70 tool_tip="显示在该å³æ—¶é€šä¿¡ä¼šè¯ä¸­æ´»åŠ¨çš„å‚与者。"/>
71 <button
72 label="å‘é€"
73 name="send_btn" />
74 </layout_panel>
75 </layout_stack>
76</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_inventory.xml b/linden/indra/newview/skins/default/xui/zh/floater_inventory.xml
index c231b5c..a94e09e 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_inventory.xml
@@ -1,25 +1,31 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Inventory" title="库存"> 2<floater name="Inventory" title="库存">
3 <search_editor
4 name="inventory search editor"
5 label="在这里输入è¦æŸ¥æ‰¾çš„物体" />
3 <tab_container name="inventory filter tabs"> 6 <tab_container name="inventory filter tabs">
4 <inventory_panel label="All Items" name="All Items" /> 7 <inventory_panel label="所有物体" name="All Items" />
5 <inventory_panel label="Recent Items" name="Recent Items" /> 8 <inventory_panel label="最近使用的物体" name="Recent Items" />
6 </tab_container> 9 </tab_container>
7 <menu_bar name="Inventory Menu"> 10 <menu_bar name="Inventory Menu">
8 <menu label="File" name="File"> 11 <menu label="文件 " name="File">
9 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 12 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
10 <menu_item_call label="打开" name="Open" /> 13 <menu_item_call label="打开" name="Open" />
11 <menu_item_call label="新的窗å£" name="New Window" /> 14 <menu_item_call label="新建窗å£" name="New Window" />
12 <menu_item_call label="显示冲çªè¿‡æ»¤å™¨" name="Show Filters" /> 15 <menu_item_call label="显示æœç´¢è¿‡æ»¤å™¨" name="Show Filters" />
16 <menu_item_call
17 label="清空过滤器"
18 name="Reset Current" />
13 <menu_item_call label="关闭所有文件夹" name="Close All Folders" /> 19 <menu_item_call label="关闭所有文件夹" name="Close All Folders" />
14 <menu_item_call label="清空回收站" name="Empty Trash" /> 20 <menu_item_call label="清空回收站" name="Empty Trash" />
15 </menu> 21 </menu>
16 <menu label="创造" name="Create"> 22 <menu label="创建" name="Create">
17 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 23 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
18 <menu_item_call label="新的文件夹" name="New Folder" /> 24 <menu_item_call label="新的文件夹" name="New Folder" />
19 <menu_item_call label="新的脚本" name="New Script" /> 25 <menu_item_call label="新的脚本" name="New Script" />
20 <menu_item_call label="新的通知" name="New Note" /> 26 <menu_item_call label="新的记事å¡" name="New Note" />
21 <menu_item_call label="新的姿势" name="New Gesture" /> 27 <menu_item_call label="新的动作" name="New Gesture" />
22 <menu name="New Clothes"> 28 <menu name="新建衣物">
23 <menu_item_call label="新的衬衫" name="New Shirt" /> 29 <menu_item_call label="新的衬衫" name="New Shirt" />
24 <menu_item_call label="新的裤å­" name="New Pants" /> 30 <menu_item_call label="新的裤å­" name="New Pants" />
25 <menu_item_call label="æ–°çš„éž‹å­" name="New Shoes" /> 31 <menu_item_call label="æ–°çš„éž‹å­" name="New Shoes" />
@@ -30,23 +36,27 @@
30 <menu_item_call label="新的内衣" name="New Undershirt" /> 36 <menu_item_call label="新的内衣" name="New Undershirt" />
31 <menu_item_call label="新的内裤" name="New Underpants" /> 37 <menu_item_call label="新的内裤" name="New Underpants" />
32 </menu> 38 </menu>
33 <menu name="New Body Parts"> 39 <menu name="新建身体部ä½">
34 <menu_item_call label="新的身æ" name="New Shape" /> 40 <menu_item_call label="新的身æ" name="New Shape" />
35 <menu_item_call label="新的皮肤" name="New Skin" /> 41 <menu_item_call label="新的皮肤" name="New Skin" />
36 <menu_item_call label="新的头å‘" name="New Hair" /> 42 <menu_item_call label="新的头å‘" name="New Hair" />
37 <menu_item_call label="新的眼ç›" name="New Eyes" /> 43 <menu_item_call label="新的眼ç›" name="New Eyes" />
38 </menu> 44 </menu>
39 </menu> 45 </menu>
40 <menu label="Sort" name="Sort"> 46 <menu label="排åº" name="Sort">
41 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 47 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
42 <menu_item_check label="通过åå­—" name="By Name" /> 48 <menu_item_check label="按å称" name="By Name" />
43 <menu_item_check label="通过日期" name="By Date" /> 49 <menu_item_check label="按日期" name="By Date" />
44 <menu_item_check label="文件夹永远通过å字查找" name="Folders Always By Name" /> 50 <menu_item_check label="文件夹总是按å称排列" name="Folders Always By Name" />
51 <menu_item_check
52 label="系统文件夹置顶"
53 name="System Folders To Top" />
54
45 </menu> 55 </menu>
46 <menu label="Filters" name="Filters"> 56<!-- <menu label="Filters" name="Filters">
47 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 57 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
48 <menu_item_check label="修改æµé‡" name="Modify Current" /> 58 <menu_item_check label="修改æµé‡" name="Modify Current" />
49 <menu_item_call label="é‡æ–°è®¾ç½®æµé‡" name="Reset Current" /> 59 <menu_item_call label="é‡æ–°è®¾ç½®æµé‡" name="Reset Current" />
50 </menu> 60 </menu> -->
51 </menu_bar> 61 </menu_bar>
52</floater> 62</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml b/linden/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml
index 73ffedc..85ec0c9 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_inventory_item_properties.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="item properties" title="库存财产æ¡ç›®"> 2<floater name="item properties" title="物å“属性">
3 <text name="LabelItemNameTitle"> 3 <text name="LabelItemNameTitle">
4 åå­—: 4 åå­—:
5 </text> 5 </text>
@@ -10,64 +10,68 @@
10 创造者: 10 创造者:
11 </text> 11 </text>
12 <text name="LabelCreatorName"> 12 <text name="LabelCreatorName">
13 妮å¯å„¿ æž—ç™» 13 Nicole Linden
14 </text> 14 </text>
15 <button label="档案..." label_selected="" name="BtnCreator" /> 15 <button label="档案..." label_selected="" name="BtnCreator" />
16 <text name="LabelOwnerTitle"> 16 <text name="LabelOwnerTitle">
17 主人: 17 主人:
18 </text> 18 </text>
19 <text name="LabelOwnerName"> 19 <text name="LabelOwnerName">
20 斯雷è¨æ–¯ æž—ç™» 20 Thrax Linden
21 </text> 21 </text>
22 <button label="档案..." label_selected="" name="BtnOwner" /> 22 <button label="档案..." label_selected="" name="BtnOwner" />
23 <text name="LabelAcquiredTitle"> 23 <text name="LabelAcquiredTitle">
24 获得: 24 获得时间:
25 </text> 25 </text>
26 <text name="LabelAcquiredDate"> 26 <text name="LabelAcquiredDate">
27 星期三 5月24日12:50:46 2006 27 2006年 5月 24日 星期三 12:50:46
28 </text> 28 </text>
29 <text name="OwnerLabel"> 29 <text name="OwnerLabel">
30 ä½ å¯ä»¥ï¼š 30 ä½ å¯ä»¥ï¼š
31 </text> 31 </text>
32 <check_box label="修饰" name="CheckOwnerModify" /> 32 <check_box label="修改" name="CheckOwnerModify" />
33 <check_box label="å¤åˆ¶" name="CheckOwnerCopy" /> 33 <check_box label="å¤åˆ¶" name="CheckOwnerCopy" />
34 <check_box label="转å–/抛弃" name="CheckOwnerTransfer" /> 34 <check_box label="转å–/赠与" name="CheckOwnerTransfer" />
35 <text name="BaseMaskDebug"> 35 <!--<text name="BaseMaskDebug">
36 B: 36 基:
37 </text> 37 </text>
38 <text name="OwnerMaskDebug"> 38 <text name="OwnerMaskDebug">
39 O: 39 主:
40 </text> 40 </text>
41 <text name="GroupMaskDebug"> 41 <text name="GroupMaskDebug">
42 G: 42 团:
43 </text> 43 </text>
44 <text name="EveryoneMaskDebug"> 44 <text name="EveryoneMaskDebug">
45 E: 45 ä¼—:
46 </text> 46 </text>
47 <text name="NextMaskDebug"> 47 <text name="NextMaskDebug">
48 N: 48 å—:
49 </text> 49 </text>-->
50 <check_box label="与社团分享" name="CheckShareWithGroup" /> 50 <check_box label="与社团分享" name="CheckShareWithGroup" />
51 <check_box label="å…许任何人å¤åˆ¶" name="CheckEveryoneCopy" /> 51 <check_box label="å…许任何人å¤åˆ¶" name="CheckEveryoneCopy" />
52 <text name="NextOwnerLabel"> 52 <text name="NextOwnerLabel">
53 下个拥有者å¯ä»¥: 53 下个拥有者å¯ä»¥:
54 </text> 54 </text>
55 <check_box label="修饰" name="CheckNextOwnerModify" /> 55 <check_box label="修改" name="CheckNextOwnerModify" />
56 <check_box label="å¤åˆ¶" name="CheckNextOwnerCopy" /> 56 <check_box label="å¤åˆ¶" name="CheckNextOwnerCopy" />
57 <check_box label="转å–/抛弃" name="CheckNextOwnerTransfer" /> 57 <check_box label="转å–/赠与" name="CheckNextOwnerTransfer" />
58 <text name="SaleLabel"> 58 <text name="SaleLabel">
59 标记项目: 59 标记项目为:
60 </text> 60 </text>
61 <check_box label="代售" name="CheckPurchase" /> 61 <check_box label="å¯å‡ºå”®" name="CheckPurchase" />
62 <radio_group name="RadioSaleType"> 62 <radio_group name="RadioSaleType">
63 <radio_item name="radio"> 63 <radio_item name="radio">
64 Original 64 原件
65 </radio_item> 65 </radio_item>
66 <radio_item name="radio2"> 66 <radio_item name="radio2">
67 å¤åˆ¶ 67 å¤åˆ¶å“
68 </radio_item> 68 </radio_item>
69 </radio_group> 69 </radio_group>
70 <text name="TextPrice"> 70 <text name="TextPrice">
71 价格:L$ 71 价格:L$
72 </text> 72 </text>
73 <text name="unknown">(未知)</text>
74 <text name="public">(公共的)</text>
75 <text name="you_can">ä½ å¯ä»¥:</text>
76 <text name="owner_can">拥有者å¯ä»¥:</text>
73</floater> 77</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml b/linden/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml
index b91fc71..95a0808 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml
@@ -4,19 +4,19 @@
4 <check_box label="通è¯å¡" name="check_calling_card" /> 4 <check_box label="通è¯å¡" name="check_calling_card" />
5 <check_box label="衣物" name="check_clothing" /> 5 <check_box label="衣物" name="check_clothing" />
6 <check_box label="动作" name="check_gesture" /> 6 <check_box label="动作" name="check_gesture" />
7 <check_box label="地标建筑" name="check_landmark" /> 7 <check_box label="地标" name="check_landmark" />
8 <check_box label="笔记å¡" name="check_notecard" /> 8 <check_box label="记事å¡" name="check_notecard" />
9 <check_box label="东东" name="check_object" /> 9 <check_box label="物体" name="check_object" />
10 <check_box label="脚本" name="check_script" /> 10 <check_box label="脚本" name="check_script" />
11 <check_box label="声音" name="check_sound" /> 11 <check_box label="声音" name="check_sound" />
12 <check_box label="æè´¨" name="check_texture" /> 12 <check_box label="æè´¨" name="check_texture" />
13 <check_box label="快照" name="check_snapshot" /> 13 <check_box label="截图" name="check_snapshot" />
14 <button label="全部" label_selected="全部" name="All" /> 14 <button label="全部" label_selected="全部" name="All" />
15 <button label="都ä¸" label_selected="都ä¸" name="None" /> 15 <button label="清除" label_selected="清除" name="None" />
16 <check_box label="永远显示文件夹" name="check_show_empty" /> 16 <check_box label="总是显示文件夹" name="check_show_empty" />
17 <check_box label="自从下线开始" name="check_since_logoff" /> 17 <check_box label="自从下线开始" name="check_since_logoff" />
18 <text type="string" length="1" name="- OR -"> 18 <text type="string" length="1" name="- OR -">
19 - OR - 19 - 或者 -
20 </text> 20 </text>
21 <spinner label="若干å°æ—¶ä¹‹å‰" name="spin_hours_ago" /> 21 <spinner label="若干å°æ—¶ä¹‹å‰" name="spin_hours_ago" />
22 <spinner label="若干天å‰" name="spin_days_ago" /> 22 <spinner label="若干天å‰" name="spin_days_ago" />
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_lagmeter.xml b/linden/indra/newview/skins/default/xui/zh/floater_lagmeter.xml
new file mode 100644
index 0000000..f74922b
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_lagmeter.xml
@@ -0,0 +1,182 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="floater_lagmeter"
4 title="延迟计é‡å™¨">
5 <button
6 label=""
7 label_selected=""
8 name="client_lagmeter"
9 tool_tip="客户端延迟状况" />
10 <text
11 name="client">
12 客户端:
13 </text>
14 <text
15 name="client_text"
16 right="-10">
17 正常
18 </text>
19 <text
20 name="client_lag_cause"
21 right="-32" />
22 <button
23 label=""
24 label_selected=""
25 name="network_lagmeter"
26 tool_tip="网络延迟状况" />
27 <text
28 name="network">
29 网络:
30 </text>
31 <text
32 name="network_text"
33 right="-10">
34 正常
35 </text>
36 <button
37 label=""
38 label_selected=""
39 name="server_lagmeter"
40 tool_tip="æœåŠ¡å™¨å»¶è¿ŸçŠ¶å†µ" />
41 <text
42 name="server">
43 æœåŠ¡å™¨:
44 </text>
45 <text
46 name="server_text"
47 right="-10">
48 正常
49 </text>
50 <string
51 name="max_title_msg">
52 延迟计é‡å™¨
53 </string>
54
55 <string
56 name="min_title_msg">
57 延迟
58 </string>
59
60 <string
61 name="client_text_msg">
62 客户端
63 </string>
64 <string
65 name="client_frame_time_window_bg_msg">
66 正常,窗å£å¤„于åŽå°çŠ¶æ€
67 </string>
68 <string
69 name="client_frame_time_critical_msg">
70 客户端æ¯ç§’帧数在 [CLIENT_FRAME_RATE_CRITICAL] 以下
71 </string>
72 <string
73 name="client_frame_time_warning_msg">
74 客户端æ¯ç§’帧数在 [CLIENT_FRAME_RATE_CRITICAL] 到 [CLIENT_FRAME_RATE_WARNING] 之间
75 </string>
76 <string
77 name="client_frame_time_normal_msg">
78 正常
79 </string>
80 <string
81 name="client_draw_distance_cause_msg">
82 å¯èƒ½åŽŸå› ï¼šæ绘è·ç¦»è®¾ç½®è¿‡é«˜
83 </string>
84 <string
85 name="client_texture_loading_cause_msg">
86 å¯èƒ½åŽŸå› ï¼šå›¾åƒåŠ è½½ä¸­
87 </string>
88 <string
89 name="client_texture_memory_cause_msg">
90 å¯èƒ½åŽŸå› ï¼šå†…存中图åƒè¿‡å¤š
91 </string>
92 <string
93 name="client_complex_objects_cause_msg">
94 å¯èƒ½åŽŸå› ï¼šåœºæ™¯ä¸­å¤æ‚物体过多
95 </string>
96 <string
97 name="network_text_msg">
98 网络
99 </string>
100 <string
101 name="network_packet_loss_critical_msg">
102 网络连接正在丢弃 [NETWORK_PACKET_LOSS_CRITICAL]% 以上的数æ®åŒ…
103 </string>
104 <string
105 name="network_packet_loss_warning_msg">
106 网络连接正在丢弃 [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% çš„æ•°æ®åŒ…
107 </string>
108 <string
109 name="network_performance_normal_msg">
110 正常
111 </string>
112 <string
113 name="network_ping_critical_ms">
114 600
115 </string>
116 <string
117 name="network_ping_warning_ms">
118 300
119 </string>
120 <string
121 name="network_ping_critical_msg">
122 连接å“应时间大于 [NETWORK_PING_CRITICAL] 毫秒
123 </string>
124 <string
125 name="network_ping_warning_msg">
126 连接å“应时间介于 [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] 毫秒
127 </string>
128 <string
129 name="network_packet_loss_cause_msg">
130 有å¯èƒ½æ˜¯è¿žæŽ¥é—®é¢˜ï¼Œæˆ–“带宽â€è®¾ç½®è¿‡é«˜ã€‚
131 </string>
132 <string
133 name="network_ping_cause_msg">
134 有å¯èƒ½æ˜¯è¿žæŽ¥é—®é¢˜ï¼Œæˆ–正使用文件共享下载程åºã€‚
135 </string>
136 <string
137 name="server_text_msg">
138 æœåŠ¡å™¨
139 </string>
140 <string
141 name="server_single_process_max_time_ms">
142 20
143 </string>
144 <string
145 name="server_frame_time_critical_msg">
146 模拟器æ¯ç§’帧数在 [SERVER_FRAME_RATE_CRITICAL] 以下
147 </string>
148 <string
149 name="server_frame_time_warning_msg">
150 模拟器æ¯ç§’帧数在 [SERVER_FRAME_RATE_CRITICAL] å’Œ [SERVER_FRAME_RATE_WARNING] 之间
151 </string>
152 <string
153 name="server_frame_time_normal_msg">
154 正常
155 </string>
156 <string
157 name="server_physics_cause_msg">
158 å¯èƒ½åŽŸå› ï¼šç‰©ç†ç‰©ä½“过多
159 </string>
160 <string
161 name="server_scripts_cause_msg">
162 å¯èƒ½åŽŸå› ï¼šæœ‰è„šæœ¬çš„物体过多
163 </string>
164 <string
165 name="server_net_cause_msg">
166 å¯èƒ½åŽŸå› ï¼šç½‘络æµé‡è¿‡å¤§
167 </string>
168 <string
169 name="server_agent_cause_msg">
170 å¯èƒ½åŽŸå› ï¼šåŒºåŸŸä¸­ç§»åŠ¨çš„人太多
171 </string>
172 <string
173 name="server_images_cause_msg">
174 å¯èƒ½åŽŸå› ï¼šå›¾åƒè®¡ç®—过多
175 </string>
176 <string
177 name="server_generic_cause_msg">
178 å¯èƒ½åŽŸå› ï¼šæ¨¡æ‹Ÿå™¨è´Ÿè½½è¿‡å¤§
179 </string>
180</floater>
181
182<!--Translated for Second Life 1.19.1 RC3 --> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_land_holdings.xml b/linden/indra/newview/skins/default/xui/zh/floater_land_holdings.xml
index 9d340ab..83dacc0 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_land_holdings.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_land_holdings.xml
@@ -1,38 +1,38 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="land holdings floater" title="我的土地"> 2<floater name="land holdings floater" title="我的土地">
3 <scroll_list name="parcel list"> 3 <scroll_list name="parcel list">
4 <column label="Name" name="name" /> 4 <column label="å称" name="name" />
5 <column label="Location" name="location" /> 5 <column label="地点" name="location" />
6 <column label="Area" name="area" /> 6 <column label="é¢ç§¯" name="area" />
7 <column label="" name="hidden" /> 7 <column label="" name="hidden" />
8 </scroll_list> 8 </scroll_list>
9 <button label="闪电传é€" label_selected="闪电传é€" name="Teleport" 9 <button label="瞬间移动" label_selected="瞬间移动" name="Teleport"
10 tool_tip="闪电传è¿åˆ°æ­¤åœ°çš„中心." /> 10 tool_tip="瞬间移动到该地的中心。" />
11 <button label="在地图中显示" label_selected="在地图中显示" 11 <button label="在地图中显示" label_selected="在地图中显示"
12 name="Show on Map" tool_tip="将此地在世界地图上显示出æ¥" /> 12 name="Show on Map" tool_tip="将该地在世界地图上显示出æ¥ã€‚" />
13 <text name="contrib_label"> 13 <text name="contrib_label">
14 å你的社团æèµ : 14 对你的社团的é…é¢è´¡çŒ®:
15 </text> 15 </text>
16 <scroll_list name="grant list"> 16 <scroll_list name="grant list">
17 <column label="Group" name="group" /> 17 <column label="社团" name="group" />
18 <column label="Area" name="area" /> 18 <column label="é¢ç§¯" name="area" />
19 </scroll_list> 19 </scroll_list>
20 <text name="allowed_label"> 20 <text name="allowed_label">
21 å…许该支付方案购买土地: 21 当å‰æ”¯ä»˜æ–¹æ¡ˆä¸‹å…许的土地æŒæœ‰é‡:
22 </text> 22 </text>
23 <text name="allowed_text"> 23 <text name="allowed_text">
24 0 平方米 24 [AREA] 平方米
25 </text> 25 </text>
26 <text name="current_label"> 26 <text name="current_label">
27 ç›®å‰åœŸåœ°æ‰€æœ‰è€…: 27 ç›®å‰æŒæœ‰åœŸåœ°é‡:
28 </text> 28 </text>
29 <text name="current_text"> 29 <text name="current_text">
30 0 平方米 30 [AREA] 平方米
31 </text> 31 </text>
32 <text name="available_label"> 32 <text name="available_label">
33 å¯ä»¥è¿›è¡ŒåœŸåœ°è´­ä¹°æ´»åŠ¨: 33 å¯ä»¥è´­ä¹°çš„土地é‡:
34 </text> 34 </text>
35 <text name="available_text"> 35 <text name="available_text">
36 0 平方米 36 [AREA] 平方米
37 </text> 37 </text>
38</floater> 38</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_landmark_ctrl.xml b/linden/indra/newview/skins/default/xui/zh/floater_landmark_ctrl.xml
new file mode 100644
index 0000000..a090239
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_landmark_ctrl.xml
@@ -0,0 +1,37 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 can_tear_off="true"
4 min_height="310"
5 min_width="241"
6 name="landmarkpicker"
7 title="æ•´ç†: 地标">
8 <check_box
9 initial_value="true"
10 label="显示文件夹"
11 name="show_folders_check" />
12 <button
13 label="新建"
14 label_selected="新建"
15 name="New" />
16 <button
17 label="é‡å‘½å"
18 label_selected="é‡å‘½å"
19 name="Rename" />
20 <button
21 label="新建文件夹"
22 label_selected="新建文件夹"
23 name="NewFolder" />
24 <button
25 label="编辑"
26 label_selected="编辑"
27 name="Edit" />
28 <button
29 label="删除"
30 label_selected="删除"
31 name="Delete" />
32 <button
33 label="关闭"
34 label_selected="关闭"
35 name="Close" />
36</floater>
37
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_live_lsleditor.xml b/linden/indra/newview/skins/default/xui/zh/floater_live_lsleditor.xml
index b7527fc..e05a577 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_live_lsleditor.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_live_lsleditor.xml
@@ -1,5 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="script ed float" title="脚本:新的脚本"> 2<floater name="script ed float" title="脚本:新的脚本">
3 <button label="é‡è‡³" label_selected="é‡è‡³" name="Reset" /> 3 <button label="é‡ç½®" label_selected="é‡ç½®" name="Reset" />
4 <check_box label="è¿è¡Œ" name="running" /> 4 <check_box label="è¿è¡Œ" name="running" />
5 <string
6 name="script_running">
7 è¿è¡Œ
8 </string>
9 <check_box label="Mono" name="mono" />
5</floater> 10</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_lsl_guide.xml b/linden/indra/newview/skins/default/xui/zh/floater_lsl_guide.xml
new file mode 100644
index 0000000..6ae47af
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_lsl_guide.xml
@@ -0,0 +1,19 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="script ed float"
4 title="LSL Wiki">
5 <check_box
6 label="è·Ÿéšå…‰æ ‡"
7 name="lock_check" />
8 <combo_box
9 label="é”定"
10 name="history_combo" />
11 <button
12 label="åŽé€€"
13 name="back_btn" />
14 <button
15 label="å‰è¿›"
16 name="fwd_btn" />
17</floater>
18
19<!--Translated for Second Life 1.19.1 RC3 --> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_media_browser.xml b/linden/indra/newview/skins/default/xui/zh/floater_media_browser.xml
new file mode 100644
index 0000000..5477f2b
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_media_browser.xml
@@ -0,0 +1,46 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 min_height="140"
4 min_width="467"
5 name="floater_about"
6 title="媒体æµè§ˆå™¨">
7 <layout_stack
8 name="stack1"
9 top="-20">
10 <layout_panel
11 name="nav_controls">
12 <button
13 label="åŽé€€"
14 name="back" />
15 <button
16 label="å‰è¿›"
17 name="forward" />
18 <button
19 label="刷新"
20 name="reload" />
21 <button
22 label="转到"
23 name="go" />
24 </layout_panel>
25 <layout_panel
26 name="parcel_owner_controls">
27 <button
28 label="当å‰URL设置为地å—媒体地å€"
29 name="assign" />
30 </layout_panel>
31 <layout_panel
32 name="external_controls">
33 <button
34 label="在我的网页æµè§ˆå™¨ä¸­æ‰“å¼€"
35 name="open_browser" />
36 <check_box
37 label="总在我的æµè§ˆå™¨ä¸­æ‰“å¼€"
38 name="open_always" />
39 <button
40 label="关闭"
41 name="close" />
42 </layout_panel>
43 </layout_stack>
44</floater>
45
46<!--Translated for Second Life 1.19.1 RC3 --> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_mem_leaking.xml b/linden/indra/newview/skins/default/xui/zh/floater_mem_leaking.xml
new file mode 100644
index 0000000..ad5aadc
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_mem_leaking.xml
@@ -0,0 +1,36 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="MemLeak"
4 title="内存泄æ¼æ¨¡æ‹Ÿ">
5 <spinner
6 label="泄æ¼é€Ÿåº¦ (字节æ¯ç§’):"
7 name="leak_speed" />
8 <spinner
9 label="最大泄æ¼å†…å­˜ (MB):"
10 name="max_leak" />
11 <text
12 name="total_leaked_label">
13 当å‰æ³„æ¼çš„内存: [SIZE] KB
14 </text>
15 <text
16 name="note_label_1">
17 [NOTE1]
18 </text>
19 <text
20 name="note_label_2">
21 [NOTE2]
22 </text>
23 <button
24 label="开始"
25 name="start_btn" />
26 <button
27 label="结æŸ"
28 name="stop_btn" />
29 <button
30 label="释放"
31 name="release_btn" />
32 <button
33 label="关闭"
34 name="close_btn" />
35</floater>
36
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_mute.xml b/linden/indra/newview/skins/default/xui/zh/floater_mute.xml
index dba916e..62b6f07 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_mute.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_mute.xml
@@ -1,10 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="mute floater" title="å±è”½å±…民和东东"> 2<floater
3 <scroll_list name="mutes" tool_tip="List of currently muted residents" /> 3 name="mute floater"
4 short_title="å±è”½åˆ—表"
5 title="å±è”½å±…民和物体">
6<scroll_list name="mutes" tool_tip="当å‰å±è”½çš„居民列表" />
4 <button label="å±è”½å±…æ°‘..." label_selected="å±è”½å±…æ°‘..." 7 <button label="å±è”½å±…æ°‘..." label_selected="å±è”½å±…æ°‘..."
5 name="Mute resident..." tool_tip="选择一个ä½æˆ·å¹¶å±è”½æ­¤äºº" /> 8 name="Mute resident..." tool_tip="选择一个居民并å±è”½æ­¤äºº" />
6 <button label="å±è”½å字为…的东东" 9 <button label="按å称å±è”½ç‰©ä½“..."
7 label_selected="å±è”½å字为…的东东" name="Mute object by name..." /> 10 label_selected="按å称å±è”½ç‰©ä½“..." name="Mute object by name..." />
8 <button label="解除å±è”½" label_selected="解除å±è”½" name="Unmute" 11 <button label="解除å±è”½" label_selected="解除å±è”½" name="Unmute"
9 tool_tip="从消声æ ä¸­å°†å±…民或东东删除。" /> 12 tool_tip="从消声æ ä¸­å°†å±…民或物体删除。" />
10</floater> 13</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_mute_object.xml b/linden/indra/newview/skins/default/xui/zh/floater_mute_object.xml
new file mode 100644
index 0000000..ebeb108
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_mute_object.xml
@@ -0,0 +1,25 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 min_height="140"
4 min_width="375"
5 name="mute by name"
6 title="按å称å±è”½ç‰©ä½“">
7 <text
8 name="message"
9 right="380">
10 按å称å±è”½åªå½±å“物体的公开èŠå¤©å’Œç§èŠï¼Œè€Œä¸ä¼šå½±å“到声音。
11你必须准确地输入物体的å称。
12 </text>
13 <line_editor
14 name="object_name">
15 物体å称
16 </line_editor>
17 <button
18 label="确定"
19 name="OK" />
20 <button
21 label="å–消"
22 name="Cancel" />
23</floater>
24
25<!--Translated for Second Life 1.19.1 RC3 -->
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_my_friends.xml b/linden/indra/newview/skins/default/xui/zh/floater_my_friends.xml
new file mode 100644
index 0000000..1dfaf55
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_my_friends.xml
@@ -0,0 +1,19 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="floater_my_friends"
4 title="è”系人">
5 <tab_container
6 name="friends_and_groups"
7 tab_position="top"
8 tab_width="80">
9 <panel
10 filename="panel_friends.xml"
11 label="好å‹"
12 name="friends_panel" />
13 <panel
14 filename="panel_groups.xml"
15 label="社团"
16 name="groups_panel" />
17 </tab_container>
18</floater>
19<!--Translated for Second Life 1.19.0 (79185)--> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_new_outfit_dialog.xml b/linden/indra/newview/skins/default/xui/zh/floater_new_outfit_dialog.xml
index c7abad0..8fbbf92 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_new_outfit_dialog.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_new_outfit_dialog.xml
@@ -2,7 +2,7 @@
2<floater name="modal container" title=" "> 2<floater name="modal container" title=" ">
3 <button label="存储" label_selected="存储" name="Save" /> 3 <button label="存储" label_selected="存储" name="Save" />
4 <button label="å–消" label_selected="å–消" name="Cancel" /> 4 <button label="å–消" label_selected="å–消" name="Cancel" />
5 <check_box label="外形" name="checkbox_Shape" /> 5 <check_box label="体型" name="checkbox_Shape" />
6 <check_box label="皮肤" name="checkbox_Skin" /> 6 <check_box label="皮肤" name="checkbox_Skin" />
7 <check_box label="头å‘" name="checkbox_Hair" /> 7 <check_box label="头å‘" name="checkbox_Hair" />
8 <check_box label="眼ç›" name="checkbox_Eyes" /> 8 <check_box label="眼ç›" name="checkbox_Eyes" />
@@ -17,7 +17,7 @@
17 <check_box label="内裤" name="checkbox_Underpants" /> 17 <check_box label="内裤" name="checkbox_Underpants" />
18 <check_box label="裙å­" name="checkbox_Skirt" /> 18 <check_box label="裙å­" name="checkbox_Skirt" />
19 <check_box label="胸部" name="checkbox_Chest" /> 19 <check_box label="胸部" name="checkbox_Chest" />
20 <check_box label="头型" name="checkbox_Skull" /> 20 <check_box label="头部" name="checkbox_Skull" />
21 <check_box label="左肩" name="checkbox_Left Shoulder" /> 21 <check_box label="左肩" name="checkbox_Left Shoulder" />
22 <check_box label="å³è‚©" name="checkbox_Right Shoulder" /> 22 <check_box label="å³è‚©" name="checkbox_Right Shoulder" />
23 <check_box label="左手" name="checkbox_Left Hand" /> 23 <check_box label="左手" name="checkbox_Left Hand" />
@@ -30,54 +30,54 @@
30 <check_box label="下巴" name="checkbox_Chin" /> 30 <check_box label="下巴" name="checkbox_Chin" />
31 <check_box label="左耳" name="checkbox_Left Ear" /> 31 <check_box label="左耳" name="checkbox_Left Ear" />
32 <check_box label="å³è€³" name="checkbox_Right Ear" /> 32 <check_box label="å³è€³" name="checkbox_Right Ear" />
33 <check_box label="左眼ç " name="checkbox_Left Eyeball" /> 33 <check_box label="左眼" name="checkbox_Left Eyeball" />
34 <check_box label="å³çœ¼ç " name="checkbox_Right Eyeball" /> 34 <check_box label="å³çœ¼" name="checkbox_Right Eyeball" />
35 <check_box label="é¼»å­" name="checkbox_Nose" /> 35 <check_box label="é¼»å­" name="checkbox_Nose" />
36 <check_box label="R æ高胳膊ä½ç½®" name="checkbox_R Upper Arm" /> 36 <check_box label="å³ä¸Šè‡‚" name="checkbox_R Upper Arm" />
37 <check_box label="R预备" name="checkbox_R Forearm" /> 37 <check_box label="å³å‰è" name="checkbox_R Forearm" />
38 <check_box label="L 增加臂长" name="checkbox_L Upper Arm" /> 38 <check_box label="左上臂" name="checkbox_L Upper Arm" />
39 <check_box label="L 预备" name="checkbox_L Forearm" /> 39 <check_box label="å·¦å‰è" name="checkbox_L Forearm" />
40 <check_box label="å³èƒ¯" name="checkbox_Right Hip" /> 40 <check_box label="å³èƒ¯" name="checkbox_Right Hip" />
41 <check_box label="R æ高腿部ä½ç½®" name="checkbox_R Upper Leg" /> 41 <check_box label="å³å¤§è…¿" name="checkbox_R Upper Leg" />
42 <check_box label="R 增加腿长" name="checkbox_R Lower Leg" /> 42 <check_box label="å³å°è…¿" name="checkbox_R Lower Leg" />
43 <check_box label="左胯" name="checkbox_Left Hip" /> 43 <check_box label="左胯" name="checkbox_Left Hip" />
44 <check_box label="L 增加腿长" name="checkbox_L Upper Leg" /> 44 <check_box label="左大腿" name="checkbox_L Upper Leg" />
45 <check_box label="L 缩短腿长" name="checkbox_L Lower Leg" /> 45 <check_box label="å·¦å°è…¿" name="checkbox_L Lower Leg" />
46 <check_box label="è‚šå­" name="checkbox_Stomach" /> 46 <check_box label="è‚šå­" name="checkbox_Stomach" />
47 <check_box label="左胸肌" name="checkbox_Left Pec" /> 47 <check_box label="左胸肌" name="checkbox_Left Pec" />
48 <check_box label="å³èƒ¸è‚Œ" name="checkbox_Right Pec" /> 48 <check_box label="å³èƒ¸è‚Œ" name="checkbox_Right Pec" />
49 <check_box label="中心2" name="checkbox_Center 2" /> 49 <check_box label="中央2" name="checkbox_Center 2" />
50 <check_box label="上端å³ä¾§" name="checkbox_Top Right" /> 50 <check_box label="å³ä¸Šæ–¹" name="checkbox_Top Right" />
51 <check_box label="上端" name="checkbox_Top" /> 51 <check_box label="上方" name="checkbox_Top" />
52 <check_box label="上端左侧" name="checkbox_Top Left" /> 52 <check_box label="左上方" name="checkbox_Top Left" />
53 <check_box label="Center中心" name="checkbox_Center" /> 53 <check_box label="中央" name="checkbox_Center" />
54 <check_box label="底部左侧" name="checkbox_Bottom Left" /> 54 <check_box label="左下方" name="checkbox_Bottom Left" />
55 <check_box label="底部" name="checkbox_Bottom" /> 55 <check_box label="下方" name="checkbox_Bottom" />
56 <check_box label="底部å³ä¾§" name="checkbox_Bottom Right" /> 56 <check_box label="å³ä¸‹æ–¹" name="checkbox_Bottom Right" />
57 <text type="string" length="1" name="Make New Outfit"> 57 <text type="string" length="1" name="Make New Outfit">
58 制作新的装备 58 制作新的装æŸ
59 </text> 59 </text>
60 <text type="string" length="1" 60 <text type="string" length="1"
61 name="Outfits are folders that contain clothing and body parts. Drag an outfit folder onto your avatar to put it on. &quot;Make New Outfit&quot; makes a new folder and saves copies of the items you are now wearing into it."> 61 name="Outfits are folders that contain clothing and body parts. Drag an outfit folder onto your avatar to put it on. &quot;Make New Outfit&quot; makes a new folder and saves copies of the items you are now wearing into it.">
62 装备是一些文件夹,这些文件夹中包å«æœé¥°å’Œä¸€äº›èº«ä½“躯干。 62 装æŸæ˜¯åŒ…å«æœé¥°å’Œä¸€äº›èº«ä½“躯干的文件夹。
63拖拽一项装备文件夹至你的化身身上,并æ¾å¼€é¼ æ ‡ï¼Œå°†å…¶ä¿ç•™åœ¨åŒ–身身体上。 63将装æŸæ–‡ä»¶å¤¹æ‹–动到化身身上æ¥ç©¿ä¸Šå®ƒã€‚
64 64
65&quot;制造新的装备&quot;会创建新的文件夹,并ä¿å­˜ä½ æ­£åœ¨ä½¿ç”¨æˆ–ç©¿ç€çš„物å“的副本在新的文件夹中。 65&quot;制造新的装æŸ&quot;会创建新的文件夹,并ä¿å­˜ä½ æ­£åœ¨ä½¿ç”¨æˆ–ç©¿ç€çš„物å“的副本在新的文件夹中。
66 </text> 66 </text>
67 <text type="string" length="1" name="Folder name:"> 67 <text type="string" length="1" name="Folder name:">
68 文件夹å称: 68 文件夹å称:
69 </text> 69 </text>
70 <text type="string" length="1" name="Items to include in outfit:"> 70 <text type="string" length="1" name="Items to include in outfit:">
71 包括装备中的物å“æ¡ç›®: 71 装æŸä¸­åŒ…括的物å“:
72 </text> 72 </text>
73 <text type="string" length="1" name="Body Parts:"> 73 <text type="string" length="1" name="Body Parts:">
74 躯干 74 体形
75 </text> 75 </text>
76 <text type="string" length="1" name="Clothes:"> 76 <text type="string" length="1" name="Clothes:">
77 æœé¥°: 77 æœé¥°:
78 </text> 78 </text>
79 <text type="string" length="1" name="Attachments:"> 79 <text type="string" length="1" name="Attachments:">
80 附属: 80 附件:
81 </text> 81 </text>
82 <text type="string" length="1" name="Options:"> 82 <text type="string" length="1" name="Options:">
83 选项: 83 选项:
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_openobject.xml b/linden/indra/newview/skins/default/xui/zh/floater_openobject.xml
index 0ead435..e5b6528 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_openobject.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_openobject.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="objectcontents" title="东东内容"> 2<floater name="objectcontents" title="物体内容">
3 <text type="string" length="1" name="object_name"> 3 <text type="string" length="1" name="object_name">
4 [DESC]: 4 [DESC]:
5 </text> 5 </text>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_pay.xml b/linden/indra/newview/skins/default/xui/zh/floater_pay.xml
index d065349..2691383 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_pay.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_pay.xml
@@ -13,7 +13,7 @@
13 [FIRST] [LAST] 13 [FIRST] [LAST]
14 </text> 14 </text>
15 <text type="string" length="1" name="fastpay text"> 15 <text type="string" length="1" name="fastpay text">
16 快速支付通é“: 16 快速支付:
17 </text> 17 </text>
18 <text type="string" length="1" name="amount text"> 18 <text type="string" length="1" name="amount text">
19 æ•°é‡: 19 æ•°é‡:
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_pay_object.xml b/linden/indra/newview/skins/default/xui/zh/floater_pay_object.xml
index 956104f..ec56c65 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_pay_object.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_pay_object.xml
@@ -10,13 +10,13 @@
10 [FIRST] [LAST] 10 [FIRST] [LAST]
11 </text> 11 </text>
12 <text type="string" length="1" name="object_name_label"> 12 <text type="string" length="1" name="object_name_label">
13 通过东东: 13 通过物体:
14 </text> 14 </text>
15 <text type="string" length="1" name="object_name_text"> 15 <text type="string" length="1" name="object_name_text">
16 ... 16 ...
17 </text> 17 </text>
18 <text type="string" length="1" name="fastpay text"> 18 <text type="string" length="1" name="fastpay text">
19 快速支付通é“: 19 快速支付:
20 </text> 20 </text>
21 <text type="string" length="1" name="amount text"> 21 <text type="string" length="1" name="amount text">
22 æ•°é‡: 22 æ•°é‡:
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_post_process.xml b/linden/indra/newview/skins/default/xui/zh/floater_post_process.xml
new file mode 100644
index 0000000..34840c4
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_post_process.xml
@@ -0,0 +1,117 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 min_height="400"
4 min_width="300"
5 name="Post-Process Floater"
6 title="åŽæœŸå¤„ç†è®¾å®š">
7 <tab_container
8 name="Post-Process Tabs">
9 <panel
10 label="颜色过滤器"
11 name="wmiColorFilterPanel">
12 <check_box
13 initial_value="false"
14 label="å¯ç”¨"
15 name="wmiColorFilterToggle" />
16 <text
17 name="wmiColorFilterBrightnessText">
18 亮度
19 </text>
20 <text
21 name="wmiColorFilterSaturationText">
22 饱和度
23 </text>
24 <text
25 name="wmiColorFilterContrastText">
26 对比度
27 </text>
28 <text
29 name="wmiColorFilterBaseText">
30 对比度基调
31 </text>
32 <slider
33 label="R"
34 name="wmiColorFilterBaseR"
35 value="1.0" />
36 <slider
37 label="G"
38 name="wmiColorFilterBaseG"
39 value="1.0" />
40 <slider
41 label="B"
42 name="wmiColorFilterBaseB"
43 value="1.0" />
44 <slider
45 label="I"
46 name="wmiColorFilterBaseI"
47 value="1.0" />
48 </panel>
49 <panel
50 label="夜间视觉"
51 name="wmiNightVisionPanel">
52 <check_box
53 label="å¯ç”¨"
54 name="wmiNightVisionToggle" />
55 <text
56 name="wmiNightVisionBrightMultText">
57 光线放大å€æ•°
58 </text>
59 <text
60 name="wmiNightVisionNoiseSizeText">
61 噪点尺寸
62 </text>
63 <text
64 name="wmiNightVisionNoiseStrengthText">
65 噪声强度
66 </text>
67 </panel>
68 <panel
69 label="Bloom"
70 name="wmiBloomPanel">
71 <check_box
72 initial_value="false"
73 label="Enable"
74 name="wmiBloomToggle" />
75 <text
76 name="wmiBloomExtractText">
77 明度æå–
78 </text>
79 <slider
80 label=""
81 name="wmiBloomExtract"
82 value="0.7" />
83 <text
84 name="wmiBloomSizeText">
85 辉光尺寸
86 </text>
87 <slider
88 label=""
89 name="wmiBloomSize"
90 value="1.0" />
91 <text
92 name="wmiBloomStrengthText">
93 辉光强度
94 </text>
95 <slider
96 label=""
97 name="wmiBloomStrength"
98 value="1.0" />
99 </panel>
100 <panel
101 label="é¢å¤–选项"
102 name="Extras">
103 <button
104 label="读å–效果"
105 label_selected="读å–效果"
106 name="PPLoadEffect" />
107 <button
108 label="ä¿å­˜æ•ˆæžœ"
109 label_selected="ä¿å­˜æ•ˆæžœ"
110 name="PPSaveEffect" />
111 <line_editor
112 label="效果å称"
113 name="PPEffectNameEditor" />
114 </panel>
115 </tab_container>
116</floater>
117
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_postcard.xml b/linden/indra/newview/skins/default/xui/zh/floater_postcard.xml
index dc6df6f..39934b1 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_postcard.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_postcard.xml
@@ -1,10 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Postcard" title="å‘é€æ˜Žä¿¡ç‰‡"> 2<floater name="Postcard" title="å‘é€å¿«ç…§">
3 <text name="to_label"> 3 <text name="to_label">
4 接收员的邮件: 4 收件人电å­é‚®ä»¶åœ°å€:
5 </text> 5 </text>
6 <text name="from_label"> 6 <text name="from_label">
7 你的电å­é‚®ç®±: 7 你的电å­é‚®ä»¶åœ°å€:
8 </text> 8 </text>
9 <text name="name_label"> 9 <text name="name_label">
10 你的姓å: 10 你的姓å:
@@ -13,16 +13,31 @@
13 主题: 13 主题:
14 </text> 14 </text>
15 <text name="msg_label"> 15 <text name="msg_label">
16 ä¿¡æ¯: 16 正文:
17 </text> 17 </text>
18 <text_editor
19 name="msg_form">
20 在这里键入你的信æ¯ã€‚
21 </text_editor>
18 <check_box label="在网上公布" name="allow_publish_check" 22 <check_box label="在网上公布" name="allow_publish_check"
19 tool_tip="将此明信片å‘布到网络上" /> 23 tool_tip="将此明信片å‘布到网络上" />
20 <check_box label="æˆäººå†…容" name="mature_check" 24 <check_box label="æˆäººå†…容" name="mature_check"
21 tool_tip="这张明信片包å«æˆäººå†…容." /> 25 tool_tip="这张明信片包å«æˆäººå†…容." />
22 <button label="?" name="publish_help_btn" /> 26 <button label="?" name="publish_help_btn" />
27 <string
28 name="default_subject">
29 æ¥è‡ªç¬¬äºŒäººç”Ÿçš„明信片
30 </string>
31 <string
32 name="default_message">
33 瞧瞧这个!
34 </string>
23 <text name="fine_print"> 35 <text name="fine_print">
24 如果你的明信片收到者加入SL,你会得到一份é¢å¤–的奖励。 36 如果你的收件人加入SL,你会得到一份介ç»å¥–励。
25 </text> 37 </text>
26 <button label="å–消" name="cancel_btn" /> 38 <button label="å–消" name="cancel_btn" />
27 <button label="å‘é€" name="send_btn" /> 39 <button label="å‘é€" name="send_btn" />
40 <string name="upload_message">
41 å‘é€ä¸­â€¦â€¦
42 </string>
28</floater> 43</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preferences.xml b/linden/indra/newview/skins/default/xui/zh/floater_preferences.xml
index 1e6f6e5..0af9120 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_preferences.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preferences.xml
@@ -1,7 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Preferences" title="å好"> 2<floater name="Preferences" title="å好">
3 <button label="关于..." label_selected="关于..." name="About..." /> 3 <button label="关于..." label_selected="关于..." name="About..." />
4 <button label="OK" label_selected="OK" name="OK" /> 4 <button label="确定" label_selected="确定" name="OK" />
5 <button label="å–消" label_selected="å–消" name="Cancel" /> 5 <button label="å–消" label_selected="å–消" name="Cancel" />
6 <button label="应用" label_selected="应用" name="Apply" /> 6 <button label="应用" label_selected="应用" name="Apply" />
7 <button label="帮助" label_selected="帮助" name="Help" />
8
7</floater> 9</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_animation.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_animation.xml
index 76f5e65..854c7cb 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_preview_animation.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_animation.xml
@@ -3,7 +3,7 @@
3 <text type="string" length="1" name="desc txt"> 3 <text type="string" length="1" name="desc txt">
4 æè¿°: 4 æè¿°:
5 </text> 5 </text>
6 <button label="在全世界播放" label_selected="åœæ­¢" name="Anim play btn" 6 <button label="在世界中播放" label_selected="åœæ­¢" name="Anim play btn"
7 tool_tip="播放这段动画且其他人也å¯ä»¥è§‚看。" /> 7 tool_tip="播放这段动画且其他人也å¯ä»¥è§‚看。" />
8 <button label="本地播放" label_selected="åœæ­¢" name="Anim audition btn" 8 <button label="本地播放" label_selected="åœæ­¢" name="Anim audition btn"
9 tool_tip="播放这段动画且仅有您å¯ä»¥è§‚看。" /> 9 tool_tip="播放这段动画且仅有您å¯ä»¥è§‚看。" />
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_classified.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_classified.xml
new file mode 100644
index 0000000..554323a
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_classified.xml
@@ -0,0 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="classified_preview"
4 title="分类广告信æ¯">
5 <panel
6 name="classified_details_panel" />
7</floater> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_embedded_texture.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_embedded_texture.xml
index 0cf530c..7bc2024 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_preview_embedded_texture.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_embedded_texture.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="preview texture" title="最上层泥土"> 2<floater name="preview_texture" title="最上层泥土">
3 <button label="å¤åˆ¶è‡³åº“å­˜" label_selected="å¤åˆ¶è‡³åº“å­˜" 3 <button label="å¤åˆ¶è‡³åº“å­˜" label_selected="å¤åˆ¶è‡³åº“å­˜"
4 name="Copy To Inventory" /> 4 name="Copy To Inventory" />
5 <text type="string" length="1" name="dimensions"> 5 <text type="string" length="1" name="dimensions">
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_event.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_event.xml
new file mode 100644
index 0000000..18017a4
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_event.xml
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="event_preview"
4 title="事件信æ¯">
5 <panel
6 name="event_details_panel" />
7</floater>
8
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_existing_landmark.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_existing_landmark.xml
index 699b13d..b499f9d 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_preview_existing_landmark.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_existing_landmark.xml
@@ -4,6 +4,6 @@
4 <text type="string" length="1" name="desc txt"> 4 <text type="string" length="1" name="desc txt">
5 æè¿°: 5 æè¿°:
6 </text> 6 </text>
7 <button label="闪电传é€" label_selected="" name="Teleport btn" /> 7 <button label="瞬间移动" label_selected="" name="Teleport btn" />
8 <button label="在地图中显示" label_selected="" name="Show on Map btn" /> 8 <button label="在地图中显示" label_selected="" name="Show on Map btn" />
9</floater> 9</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml
index 41b63d2..4dfc091 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_gesture.xml
@@ -1,34 +1,43 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="gesture" title="动作"> 2<floater name="gesture_preview" title="动作">
3 <text name="desc_label"> 3 <text name="desc_label">
4 æè¿°: 4 æè¿°:
5 </text> 5 </text>
6 <text name="trigger_label"> 6 <text name="trigger_label">
7 引åæº: 7 命令:
8 </text> 8 </text>
9 <text name="replace_text" 9 <text name="replace_text"
10 tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture!"> 10 tool_tip="将命令è¯ç”¨è¿™äº›è¯æ›¿æ¢ã€‚例如说,命令‘你好’替æ¢ä¸ºâ€˜å¥½å‘€ï¼â€™ å°†ä¼šå°†å¯¹è¯ â€˜æˆ‘æƒ³è¯´ä½ å¥½â€™ å˜æˆ ‘我想说好呀ï¼â€™ 并åŒæ—¶æ’­æ”¾åŠ¨ä½œã€‚">
11 替æ¢ä¸º: 11 替æ¢ä¸º:
12 </text> 12 </text>
13 <line_editor name="replace_editor" 13 <line_editor name="replace_editor"
14 tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture" /> 14 tool_tip="将命令è¯ç”¨è¿™äº›è¯æ›¿æ¢ã€‚例如说,命令‘你好’替æ¢ä¸ºâ€˜å¥½å‘€ï¼â€™ å°†ä¼šå°†å¯¹è¯ â€˜æˆ‘æƒ³è¯´ä½ å¥½â€™ å˜æˆ ‘我想说好呀ï¼â€™ 并åŒæ—¶æ’­æ”¾åŠ¨ä½œã€‚" />
15 <text name="key_label"> 15 <text name="key_label">
16 å¿«æ·é”®: 16 å¿«æ·é”®:
17 </text> 17 </text>
18 <combo_box label="都ä¸" name="modifier_combo" /> 18 <combo_box label="æ— " name="modifier_combo" />
19 <combo_box label="都ä¸" name="key_combo" /> 19 <combo_box label="æ— " name="key_combo" />
20 <text> 20 <text>
21 图书馆: 21 库:
22 </text> 22 </text>
23 <text> 23 <text>
24 步骤: 24 步骤:
25 </text> 25 </text>
26 <scroll_list
27 draw_border="true"
28 name="library_list">
29 Animation
30Sound
31Chat
32Wait
33 </scroll_list>
26 <button label="添加&gt;&gt;" name="add_btn" /> 34 <button label="添加&gt;&gt;" name="add_btn" />
27 <button label="上移" name="up_btn" /> 35 <button label="上移" name="up_btn" />
28 <button label="下移" name="down_btn" /> 36 <button label="下移" name="down_btn" />
29 <button label="移除" name="delete_btn" /> 37 <button label="移除" name="delete_btn" />
30 <text name="help_label"> 38 <text name="help_label">
31 所有的步骤都是自行å‘生,除éžä½ æ·»åŠ äº†ç­‰å¾…步骤。 39 所有的步骤都åŒæ—¶å‘生,
40除éžä½ æ·»åŠ äº†ç­‰å¾…步骤。
32 </text> 41 </text>
33 <radio_group name="animation_trigger_type"> 42 <radio_group name="animation_trigger_type">
34 <radio_item> 43 <radio_item>
@@ -39,9 +48,9 @@
39 </radio_item> 48 </radio_item>
40 </radio_group> 49 </radio_group>
41 <check_box label="直到动画完æˆ" name="wait_anim_check" /> 50 <check_box label="直到动画完æˆ" name="wait_anim_check" />
42 <check_box label="时间计算精确到秒" name="wait_time_check" /> 51 <check_box label="等待时间, 以秒计" name="wait_time_check" />
43 <check_box label="激活" name="active_check" 52 <check_box label="激活" name="active_check"
44 tool_tip="Active gestures can be triggered by chatting their trigger phrases or pressing their hot keys. Gestures usually become inactive when there is a key binding conflict." /> 53 tool_tip="激活的动作å¯ä»¥è¢«å‘½ä»¤æˆ–å¿«æ·é”®å¯åŠ¨ã€‚动作一般当按键冲çªæ—¶ä¼šæˆä¸ºä¸æ¿€æ´»çš„状æ€ã€‚" />
45 <button label="预览" name="preview_btn" /> 54 <button label="预览" name="preview_btn" />
46 <button label="存储" name="save_btn" /> 55 <button label="存储" name="save_btn" />
47</floater> 56</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_new_landmark.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_new_landmark.xml
new file mode 100644
index 0000000..0820df9
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_new_landmark.xml
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Linden Land, Da Boom (155, 136, 35)"
3 title=" Linden Land, Da Boom (155, 136, 35)">
4 <button label="瞬间移动" label_selected="" name="Teleport btn" />
5 <button label="在地图中显示" label_selected="" name="Show on Map btn" />
6 <button label="放弃" label_selected="" name="Discard btn" />
7 <text type="string" length="1" name="desc txt">
8 æè¿°:
9 </text>
10</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml
index feccac6..60ef174 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard.xml
@@ -1,10 +1,18 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="preview notecard" title="注æ„:"> 2<floater name="preview notecard" title="注æ„:">
3 <button label="存储" label_selected="存储" name="Save" /> 3 <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save" />
4 <text type="string" length="1" name="desc txt"> 4 <text type="string" length="1" name="desc txt">
5 æè¿°: 5 æè¿°:
6 </text> 6 </text>
7 <text_editor type="string" length="1" name="Notecard Editor"> 7 <text_editor type="string" length="1" name="Notecard Editor">
8 请等待... 8 请等待...
9 </text_editor> 9 </text_editor>
10 <string
11 name="no_object">
12 无法找到包å«è¿™ä¸ªè®°äº‹å¡çš„物体。
13 </string>
14 <string
15 name="not_allowed">
16 你没有查看该记事å¡çš„æƒåˆ©ã€‚
17 </string>
10</floater> 18</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard_keep_discard.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard_keep_discard.xml
index cfc961f..3853f05 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard_keep_discard.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_notecard_keep_discard.xml
@@ -1,11 +1,19 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="preview notecard" title="注æ„:更改你的外形,第二部分"> 2<floater name="preview_notecard" title="注æ„:更改你的外形,第二部分">
3 <text_editor type="string" length="1" name="Notecard Editor"> 3 <text_editor type="string" length="1" name="Notecard Editor">
4 请等待... 4 请等待...
5 </text_editor> 5 </text_editor>
6 <text type="string" length="1" name="desc txt"> 6 <text type="string" length="1" name="desc txt">
7 æè¿°: 7 æè¿°:
8 </text> 8 </text>
9 <button label="ä¿æŒ" label_selected="ä¿æŒ" name="Keep" /> 9 <button label="ä¿ç•™" label_selected="ä¿ç•™" name="Keep" />
10 <button label="放弃" label_selected="放弃" name="Discard" /> 10 <button label="放弃" label_selected="放弃" name="Discard" />
11 <string
12 name="no_object">
13 无法找到包å«è¿™ä¸ªè®°äº‹å¡çš„物体。
14 </string>
15 <string
16 name="not_allowed">
17 你没有查看该记事å¡çš„æƒåˆ©ã€‚
18 </string>
11</floater> 19</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_sound.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_sound.xml
index 5721b42..b5dc7c2 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_preview_sound.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_sound.xml
@@ -1,11 +1,11 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="preview sound" title="声音: 女性嘘声2"> 2<floater name="preview_sound" title="声音: 女性嘘声2">
3 <text type="string" length="1" name="desc txt"> 3 <text type="string" length="1" name="desc txt">
4 æè¿°: 4 æè¿°:
5 </text> 5 </text>
6 <button label="在全世界播放" label_selected="在全世界播放" 6 <button label="在世界中播放" label_selected="在世界中播放"
7 name="Sound play btn" 7 name="Sound play btn"
8 tool_tip="播放这段音频且其他人也å¯å¬åˆ°ã€‚." /> 8 tool_tip="播放这段音频且其他人也å¯å¬åˆ°ã€‚" />
9 <button label="本地播放" label_selected="本地播放" name="Sound audition btn" 9 <button label="本地播放" label_selected="本地播放" name="Sound audition btn"
10 tool_tip="播放这段音频且仅有您å¯ä»¥å¬åˆ°ã€‚" /> 10 tool_tip="播放这段音频且仅有您å¯ä»¥å¬åˆ°ã€‚" />
11</floater> 11</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_texture.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_texture.xml
index a3b0711..c5d54e9 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_preview_texture.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_texture.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="preview texture" title="æè´¨: ç°è‰²é‡‘属涂抹"> 2<floater name="preview_texture" title="æè´¨: ç°è‰²é‡‘属涂抹">
3 <text type="string" length="1" name="desc txt"> 3 <text type="string" length="1" name="desc txt">
4 æè¿°: 4 æè¿°:
5 </text> 5 </text>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_texture_keep_discard.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_texture_keep_discard.xml
index f4b74a9..acf1ded 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_preview_texture_keep_discard.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_texture_keep_discard.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="preview texture" title="æè´¨: 手形"> 2<floater name="preview_texture" title="æè´¨: 手形">
3 <text type="string" length="1" name="desc txt"> 3 <text type="string" name="desc txt">
4 æè¿°: 4 æè¿°:
5 </text> 5 </text>
6 <button label="ä¿æŒ" label_selected="ä¿æŒ" name="Keep" /> 6 <button label="ä¿ç•™" label_selected="ä¿ç•™" name="Keep" />
7 <button label="放弃" label_selected="放弃" name="Discard" /> 7 <button label="放弃" label_selected="放弃" name="Discard" />
8 <text type="string" length="1" name="dimensions"> 8 <text type="string" length="1" name="dimensions">
9 尺寸: [WIDTH] x [HEIGHT] 9 尺寸: [WIDTH] x [HEIGHT]
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_preview_url.xml b/linden/indra/newview/skins/default/xui/zh/floater_preview_url.xml
new file mode 100644
index 0000000..005a62f
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_preview_url.xml
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="url_preview"
4 title="地点信æ¯">
5 <panel
6 name="place_details_panel" />
7</floater>
8
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_price_for_listing.xml b/linden/indra/newview/skins/default/xui/zh/floater_price_for_listing.xml
index 95658da..24dc421 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_price_for_listing.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_price_for_listing.xml
@@ -12,6 +12,6 @@
12 <text name="price_text"> 12 <text name="price_text">
13 广告价格(L$): 13 广告价格(L$):
14 </text> 14 </text>
15 <button label="调节价格" name="set_price_btn" /> 15 <button label="设置价格" name="set_price_btn" />
16 <button label="å–消" name="cancel_btn" /> 16 <button label="å–消" name="cancel_btn" />
17</floater> 17</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_region_info.xml b/linden/indra/newview/skins/default/xui/zh/floater_region_info.xml
new file mode 100644
index 0000000..ad777f5
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_region_info.xml
@@ -0,0 +1,3 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="regioninfo" title="地区/地产" />
3
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_report_abuse.xml b/linden/indra/newview/skins/default/xui/zh/floater_report_abuse.xml
index e59b4d3..d19b274 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_report_abuse.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_report_abuse.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="floater_report_abuse" title="报告åµæž¶"> 2<floater name="floater_report_abuse" title="举报ä¸è‰¯è¡Œä¸º">
3 <text name="reporter_title"> 3 <text name="reporter_title">
4 报告者: 4 报告者:
5 </text> 5 </text>
@@ -9,42 +9,137 @@
9 <text name="pos_title"> 9 <text name="pos_title">
10 ä½ç½®: 10 ä½ç½®:
11 </text> 11 </text>
12 <texture_picker name="screenshot" /> 12 <texture_picker label="截图..." name="screenshot" />
13 <check_box label="包å«å±å¹•æˆªå›¾" name="screen_check" /> 13 <check_box label="包å«å±å¹•æˆªå›¾" name="screen_check" />
14 <combo_box name="category_combo" 14 <combo_box name="category_combo"
15 tool_tip="Category -- select the category that best describes this report"> 15 tool_tip="分类 -- 选择æ述该报告最åˆé€‚的分类">
16 <combo_item name="Selectcategory"> 16 <combo_item name="Select_category">
17 选择一个分类 17 选择分类
18 </combo_item>
19 <combo_item name="Age__Age_play">
20 年龄 &gt; 年龄扮演
21 </combo_item>
22 <combo_item name="Age__Adult_resident_on_Teen_Second_Life">
23 年龄 &gt; æˆå¹´äººå±…民在 Teen Second Life 上
24 </combo_item>
25 <combo_item name="Age__Underage_resident_on_Adult_Second_Life">
26 年龄 &gt; 未æˆå¹´äººå±…民在æˆäºº Second Life 上
27 </combo_item>
28 <combo_item name="Assault__Combat_sandbox___unsafe_area">
29 攻击 &gt; 格斗沙盒 / ä¸å®‰å…¨åœ°åŒº
30 </combo_item>
31 <combo_item name="Assault__Safe_area">
32 攻击 &gt; 安全地区
33 </combo_item><combo_item name="Assault__Weapons_testing_sandbox">
34 攻击 &gt; 武器测试沙盒
35 </combo_item>
36 <combo_item name="Copyright_or_intellectual_property_violation">
37 版æƒæˆ–知识产æƒä¾µçŠ¯
38 </combo_item>
39 <combo_item name="Commerce__Failure_to_deliver_product_or_service">
40 商业 &gt; 没能够æ供产å“或æœåŠ¡
41 </combo_item>
42 <combo_item name="Disclosure__Real_world_information">
43 é€éœ² &gt; 真实世界信æ¯
44 </combo_item>
45 <combo_item name="Disclosure__Remotely_monitoring chat">
46 é€éœ² &gt; 远处监视èŠå¤©
47 </combo_item>
48 <combo_item name="Disclosure__Second_Life_information_chat_IMs">
49 é€éœ² &gt; ç¬¬äºŒäººç”Ÿä¿¡æ¯ / èŠå¤© / å³æ—¶æ¶ˆæ¯
50 </combo_item>
51 <combo_item name="Disturbing_the_peace__Unfair_use_of_region_resources">
52 æ‰°ä¹±ç§©åº &gt; 滥用区域资æº
53 </combo_item>
54 <combo_item name="Disturbing_the_peace__Excessive_scripted_objects">
55 æ‰°ä¹±ç§©åº &gt; 滥用有脚本的物体
56 </combo_item>
57 <combo_item name="Disturbing_the_peace__Object_littering">
58 æ‰°ä¹±ç§©åº &gt; 乱扔物体
59 </combo_item>
60 <combo_item name="Disturbing_the_peace__Repetitive_spam">
61 æ‰°ä¹±ç§©åº &gt; é‡å¤çš„垃圾信æ¯
62 </combo_item>
63 <combo_item name="Disturbing_the_peace__Unwanted_advert_spam">
64 æ‰°ä¹±ç§©åº &gt; ä¸éœ€è¦çš„商业垃圾信æ¯
65 </combo_item>
66 <combo_item name="Fraud__L$">
67 欺骗 &gt; L$
68 </combo_item>
69 <combo_item name="Fraud__Land">
70 欺骗 &gt; 土地
71 </combo_item>
72 <combo_item name="Fraud__Pyramid_scheme_or_chain_letter">
73 欺骗 &gt; 传销,è€é¼ ä¼šæˆ–链å¼é‚®ä»¶
74 </combo_item>
75 <combo_item name="Fraud__US$">
76 欺骗 &gt; US$
77 </combo_item>
78 <combo_item name="Harassment__Advert_farms___visual_spam">
79 骚扰 &gt; 广告 / 视觉垃圾信æ¯
80 </combo_item>
81 <combo_item name="Harassment__Defaming_individuals_or_groups">
82 骚扰 &gt; 侮辱个人或团体
83 </combo_item>
84 <combo_item name="Harassment__Impeding_movement">
85 骚扰 &gt; 妨ç¢ç§»åŠ¨
86 </combo_item>
87 <combo_item name="Harassment__Sexual_harassment">
88 骚扰 &gt; 性骚扰
89 </combo_item>
90 <combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS">
91 骚扰 &gt; 请求或诱导他人è¿å使用æ¡æ¬¾
92 </combo_item>
93 <combo_item name="Harassment__Verbal_abuse">
94 骚扰 &gt; 语言辱骂等ä¸è‰¯è¡Œä¸º
95 </combo_item>
96 <combo_item name="Indecency__Broadly_offensive_content_or_conduct">
97 猥亵 &gt; æžå…·æ”»å‡»æ€§çš„内容或行为
98 </combo_item>
99 <combo_item name="Indecency__Broadly_visible_mature_content">
100 猥亵 &gt; 明显å¯è§çš„æˆäººå†…容
101 </combo_item>
102 <combo_item name="Indecency__Inappropriate_avatar_name">
103 猥亵 &gt; ä¸å¦¥å½“的化身åå­—
104 </combo_item>
105 <combo_item name="Indecency__Mature_content_in_PG_region">
106 猥亵 &gt; æˆäººå†…容ä½äºŽ PG 区域内
107 </combo_item>
108 <combo_item name="Intellectual_property_infringement_Content_Removal" value="66">
109 知识产æƒä¾µçŠ¯ &gt; 撤除内容
110 </combo_item>
111 <combo_item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" value="37">
112 知识产æƒä¾µçŠ¯ &gt; CopyBot 或者æƒé™æ¼æ´žåˆ©ç”¨
18 </combo_item> 113 </combo_item>
19 <combo_item name="Intolerance"> 114 <combo_item name="Intolerance">
20 ä¸è€æ€§ 115 ä¸å®½å®¹
21 </combo_item> 116 </combo_item>
22 <combo_item name="Harassment"> 117 <combo_item name="Land__Abuse_of_sandbox_resources">
23 折磨 118 土地 &gt; 滥ç¨æ²™ç›’资æº
24 </combo_item> 119 </combo_item>
25 <combo_item name="Assault"> 120 <combo_item name="Land__Encroachment__Objects_textures">
26 攻击 121 土地 &gt; 入侵 &gt; 物体或æè´¨
27 </combo_item> 122 </combo_item>
28 <combo_item name="Disclosure"> 123 <combo_item name="Land__Encroachment__Particles">
29 æ­å 124 土地 &gt; 入侵 &gt; ç²’å­
30 </combo_item> 125 </combo_item>
31 <combo_item name="Indecency"> 126 <combo_item name="Land__Encroachment__Trees_plants">
32 侵犯 127 土地 &gt; 入侵 &gt; 树木/æ¤è¢«
33 </combo_item> 128 </combo_item>
34 <combo_item name="Age"> 129 <combo_item name="Trademark_violation">
35 年纪 130 商标侵害
36 </combo_item> 131 </combo_item>
37 <combo_item name="Parcel"> 132 <combo_item name="Wagering_gambling">
38 å°å—土地 133 赌åš
39 </combo_item> 134 </combo_item>
40 <combo_item name="Other"> 135 <combo_item name="Other">
41 其他 136 其他
42 </combo_item> 137 </combo_item>
43 </combo_box> 138 </combo_box>
44 <button label="" label_selected="" name="pick_btn" 139 <button label="" label_selected="" name="pick_btn"
45 tool_tip="东东拾å–器 - 确认一个东东为此份报告中的一项" /> 140 tool_tip="物体拾å–器 - 确认一个物体为此份报告中的一项" />
46 <text name="select_object_label"> 141 <text name="select_object_label">
47 点击按钮然åŽç‚¹å‡»ä¸œä¸œ: 142 点击按钮然åŽç‚¹å‡»ç‰©ä½“:
48 </text> 143 </text>
49 <text name="object_name_label"> 144 <text name="object_name_label">
50 åå­—: 145 åå­—:
@@ -57,8 +152,12 @@
57 </text> 152 </text>
58 <button label="选择" label_selected="" name="select_abuser" 153 <button label="选择" label_selected="" name="select_abuser"
59 tool_tip="从列表中选择被辱者的姓å。" /> 154 tool_tip="从列表中选择被辱者的姓å。" />
155 <check_box
156 label="ä¸çŸ¥é“åå­—"
157 name="omit_abuser_name"
158 tool_tip="如果你无法æ供实施ä¸è‰¯è¡Œä¸ºçš„å±…æ°‘çš„å字,请选择这项。"/>
60 <text name="abuser_name_title2"> 159 <text name="abuser_name_title2">
61 辱骂情况å‘生的地å€: 160 ä¸è‰¯è¡Œä¸ºå‘生的地å€:
62 </text> 161 </text>
63 <text name="sum_title"> 162 <text name="sum_title">
64 总结: 163 总结:
@@ -67,11 +166,11 @@
67 详细: 166 详细:
68 </text> 167 </text>
69 <text name="bug_aviso"> 168 <text name="bug_aviso">
70 请详尽的æ述关于日期,地点,辱骂事件的特å¾ï¼Œç›¸å…³çš„èŠå¤©è®°å½•ï¼Œå¦‚æžœå¯èƒ½è¯·é€‰æ‹©å¯¹è±¡ã€‚ 169 请详尽的æ述关于日期,地点,ä¸è‰¯è¡Œä¸ºäº‹ä»¶çš„特å¾ï¼Œç›¸å…³çš„èŠå¤©è®°å½•ï¼Œå¦‚æžœå¯èƒ½è¯·é€‰æ‹©å¯¹è±¡ã€‚
71 </text> 170 </text>
72 <text name="incomplete_title"> 171 <text name="incomplete_title">
73 通知:ä¸å®Œæ•´çš„报告将ä¸ä¼šè¢«è°ƒæŸ¥ 172 注æ„:ä¸å®Œæ•´çš„报告将ä¸ä¼šè¢«è°ƒæŸ¥
74 </text> 173 </text>
75 <button label="报告åµæž¶" label_selected="报告åµæž¶" name="send_btn" /> 174 <button label="报告ä¸è‰¯è¡Œä¸º" label_selected="报告ä¸è‰¯è¡Œä¸º" name="send_btn" />
76 <button label="å–消" label_selected="å–消" name="cancel_btn" /> 175 <button label="å–消" label_selected="å–消" name="cancel_btn" />
77</floater> 176</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_report_bug.xml b/linden/indra/newview/skins/default/xui/zh/floater_report_bug.xml
index 65472d4..0a5d292 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_report_bug.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_report_bug.xml
@@ -10,7 +10,7 @@
10 ä½ç½®: 10 ä½ç½®:
11 </text> 11 </text>
12 <text name="select_object_label"> 12 <text name="select_object_label">
13 点击按钮é€æ‹©ä¸€ä¸ªä¸œä¸œ: 13 点击按钮然åŽç‚¹å‡»ç‰©ä½“:
14 </text> 14 </text>
15 <button label="" label_selected="" name="pick_btn" 15 <button label="" label_selected="" name="pick_btn"
16 tool_tip="东东拾å–器 - 确认一个东东为此份报告中的一项" /> 16 tool_tip="东东拾å–器 - 确认一个东东为此份报告中的一项" />
@@ -23,7 +23,7 @@
23 <check_box label="包å«å±å¹•æˆªå›¾" name="screen_check" /> 23 <check_box label="包å«å±å¹•æˆªå›¾" name="screen_check" />
24 <texture_picker label="工作..." name="screenshot" /> 24 <texture_picker label="工作..." name="screenshot" />
25 <text name="category_label"> 25 <text name="category_label">
26 ç§ç±»åˆ—表: 26 分类:
27 </text> 27 </text>
28 <combo_box name="category_combo" 28 <combo_box name="category_combo"
29 tool_tip="Category -- select the category that best describes this report"> 29 tool_tip="Category -- select the category that best describes this report">
@@ -31,7 +31,7 @@
31 选择一个分类 31 选择一个分类
32 </combo_item> 32 </combo_item>
33 <combo_item name="Building"> 33 <combo_item name="Building">
34 楼宇 34 建造
35 </combo_item> 35 </combo_item>
36 <combo_item name="Character"> 36 <combo_item name="Character">
37 角色 37 角色
@@ -43,7 +43,7 @@
43 文档 43 文档
44 </combo_item> 44 </combo_item>
45 <combo_item name="Exploit"> 45 <combo_item name="Exploit">
46 å¼€å 46 æ¼æ´ž
47 </combo_item> 47 </combo_item>
48 <combo_item name="Graphics"> 48 <combo_item name="Graphics">
49 å›¾åƒ 49 图åƒ
@@ -52,22 +52,22 @@
52 库存 52 库存
53 </combo_item> 53 </combo_item>
54 <combo_item name="Lag"> 54 <combo_item name="Lag">
55 æ»žåŽ 55 延迟
56 </combo_item> 56 </combo_item>
57 <combo_item name="MissingContent"> 57 <combo_item name="MissingContent">
58 é—失内容 58 é—失内容
59 </combo_item> 59 </combo_item>
60 <combo_item name="LindenDollars(L$)"> 60 <combo_item name="LindenDollars(L$)">
61 Linden Dollars (L$) 61 æž—ç™»å¸ (L$)
62 </combo_item> 62 </combo_item>
63 <combo_item name="Permissions"> 63 <combo_item name="Permissions">
64 å…许 64 许å¯
65 </combo_item> 65 </combo_item>
66 <combo_item name="Physics"> 66 <combo_item name="Physics">
67 实物 67 物ç†
68 </combo_item> 68 </combo_item>
69 <combo_item name="Script"> 69 <combo_item name="Script">
70 剧本 70 脚本
71 </combo_item> 71 </combo_item>
72 <combo_item name="Sound"> 72 <combo_item name="Sound">
73 音效 73 音效
@@ -79,7 +79,7 @@
79 ç”¨æˆ·ç•Œé¢ 79 用户界é¢
80 </combo_item> 80 </combo_item>
81 <combo_item name="Miscellaneous"> 81 <combo_item name="Miscellaneous">
82 混色 82 其他
83 </combo_item> 83 </combo_item>
84 </combo_box> 84 </combo_box>
85 <text name="sum_title"> 85 <text name="sum_title">
@@ -89,14 +89,16 @@
89 详细: 89 详细:
90 </text> 90 </text>
91 <text_editor name="details_edit"> 91 <text_editor name="details_edit">
92 ä¿®å¤æ¼æ´žçš„途径:: 92é‡å¤æ¼æ´žå‘生的步骤:
93 93
94观察的结果:: 94观察到的结果:
95
96期望的结果:
95 </text_editor> 97 </text_editor>
96 <text name="bug_aviso"> 98 <text name="bug_aviso">
97 If this bug allows you to do something you should not be able 99 注æ„:ä¸å®Œæ•´çš„报告将ä¸ä¼šè¢«è°ƒæŸ¥
98to do, especially if it impacts performance or security, please 100 如果这个æ¼æ´žå…许你åšä½ ä¸åº”该åšçš„事情,特别
99select the &apos;Exploit&apos; category. Thank you! 101 是妨ç¢åˆ°æ€§èƒ½æˆ–安全,请选择æ¼æ´žä¸€ç±»ã€‚谢谢!
100 </text> 102 </text>
101 <button label="报告æ¼æ´ž" label_selected="报告æ¼æ´ž" name="send_btn" /> 103 <button label="报告æ¼æ´ž" label_selected="报告æ¼æ´ž" name="send_btn" />
102 <button label="å–消" label_selected="å–消" name="cancel_btn" /> 104 <button label="å–消" label_selected="å–消" name="cancel_btn" />
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_script_debug.xml b/linden/indra/newview/skins/default/xui/zh/floater_script_debug.xml
index 0d40bd7..733e192 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_script_debug.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_script_debug.xml
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<multi_floater name="script debug floater" title="脚本错误/警告"> 2<multi_floater name="script debug floater" title="脚本错误/警告">
3 <tab_container name="Preview Tabs"> 3 <tab_container name="Preview Tabs">
4 <floater label="剧本" name="all_scripts" title="所有脚本" /> 4 <floater label="脚本" name="all_scripts" title="所有脚本" />
5 </tab_container> 5 </tab_container>
6</multi_floater> 6</multi_floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_script_ed_panel.xml b/linden/indra/newview/skins/default/xui/zh/floater_script_ed_panel.xml
index 2941882..27c97aa 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_script_ed_panel.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_script_ed_panel.xml
@@ -4,12 +4,39 @@
4 <text_editor type="string" length="1" name="Script Editor"> 4 <text_editor type="string" length="1" name="Script Editor">
5 请等待... 5 请等待...
6 </text_editor> 6 </text_editor>
7 <string
8 name="loading">
9 请等待......
10 </string>
11 <string
12 name="can_not_view">
13 你没有æƒåˆ©æŸ¥çœ‹è¯¥è„šæœ¬ã€‚
14 </string>
15 <string
16 name="public_objects_can_not_run">
17 公共物体ä¸èƒ½è¿è¡Œè„šæœ¬ã€‚
18 </string>
19 <string
20 name="script_running">
21 è¿è¡Œä¸­
22 </string>
23
24 <combo_box
25 allow_text_entry="false"
26 label="æ’å…¥..."
27 max_chars="20"
28 name="Insert..." />
29
7 <menu_bar name="script_menu"> 30 <menu_bar name="script_menu">
8 <menu name="File"> 31 <menu
32 label="文件"
33 name="File">
9 <menu_item_call label="存储" name="Save" /> 34 <menu_item_call label="存储" name="Save" />
10 <menu_item_call label="æ¢å¤æ‰€æœ‰æ›´æ”¹" name="Revert All Changes" /> 35 <menu_item_call label="æ¢å¤æ‰€æœ‰æ›´æ”¹" name="Revert All Changes" />
11 </menu> 36 </menu>
12 <menu name="Edit"> 37 <menu
38 label="编辑"
39 name="Edit">
13 <menu_item_call label="撤销" name="Undo" /> 40 <menu_item_call label="撤销" name="Undo" />
14 <menu_item_call label="é‡ç½®" name="Redo" /> 41 <menu_item_call label="é‡ç½®" name="Redo" />
15 <menu_item_separator label="-----------" name="separator" /> 42 <menu_item_separator label="-----------" name="separator" />
@@ -18,12 +45,18 @@
18 <menu_item_call label="粘贴" name="Paste" /> 45 <menu_item_call label="粘贴" name="Paste" />
19 <menu_item_separator label="-----------" name="separator2" /> 46 <menu_item_separator label="-----------" name="separator2" />
20 <menu_item_call label="全选" name="Select All" /> 47 <menu_item_call label="全选" name="Select All" />
21 <menu_item_call label="å–消选定" name="Deselect" /> 48 <menu_item_call label="å–消选择" name="Deselect" />
22 <menu_item_separator label="-----------" name="separator3" /> 49 <menu_item_separator label="-----------" name="separator3" />
23 <menu_item_call label="查找 / 替代..." name="Search / Replace..." /> 50 <menu_item_call label="查找 / 替æ¢..." name="Search / Replace..." />
51
24 </menu> 52 </menu>
25 <menu name="Help"> 53 <menu
54 label="帮助"
55 name="Help">
26 <menu_item_call label="帮助..." name="Help..." /> 56 <menu_item_call label="帮助..." name="Help..." />
57 <menu_item_call
58 label="LSL Wiki 帮助..."
59 name="LSL Wiki Help..." />
27 </menu> 60 </menu>
28 </menu_bar> 61 </menu_bar>
29</panel> 62</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_script_search.xml b/linden/indra/newview/skins/default/xui/zh/floater_script_search.xml
index 25e71d7..81ba081 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_script_search.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_script_search.xml
@@ -1,11 +1,11 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="script search" title="脚本æœç´¢"> 2<floater name="script search" title="脚本æœç´¢">
3 <check_box label="诉讼å–消" name="case_text" /> 3 <check_box label="ä¸åŒºåˆ†å¤§å°å†™" name="case_text" />
4 <button label="æœç´¢" label_selected="æœç´¢" name="search_btn" /> 4 <button label="查找" label_selected="查找" name="search_btn" />
5 <button label="替æ¢" label_selected="替æ¢" name="replace_btn" /> 5 <button label="替æ¢" label_selected="替æ¢" name="replace_btn" />
6 <button label="全部替æ¢" label_selected="全部替æ¢" name="replace_all_btn" /> 6 <button label="全部替æ¢" label_selected="全部替æ¢" name="replace_all_btn" />
7 <text type="string" length="1" name="txt"> 7 <text type="string" length="1" name="txt">
8 æœç´¢ 8 查找
9 </text> 9 </text>
10 <text type="string" length="1" name="txt2"> 10 <text type="string" length="1" name="txt2">
11 æ›¿æ¢ 11 替æ¢
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_select_key.xml b/linden/indra/newview/skins/default/xui/zh/floater_select_key.xml
new file mode 100644
index 0000000..67d4dc4
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_select_key.xml
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="modal container"
4 title="">
5 <button
6 label="å–消"
7 label_selected="å–消"
8 name="Cancel" />
9 <text
10 name="Save item as:">
11 请按键选择
12 </text>
13</floater>
14
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_sell_land.xml b/linden/indra/newview/skins/default/xui/zh/floater_sell_land.xml
index 7247383..7ecc330 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_sell_land.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_sell_land.xml
@@ -1,16 +1,16 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="sell land" title="出售土地..."> 2<floater name="sell land" title="出售土地...">
3 <text name="info_parcel_label"> 3 <text name="info_parcel_label">
4 土地: 4 地å—:
5 </text> 5 </text>
6 <text name="info_parcel"> 6 <text name="info_parcel">
7 土地的å称 7 PARCEL NAME
8 </text> 8 </text>
9 <text name="info_size_label"> 9 <text name="info_size_label">
10 尺寸: 10 尺寸:
11 </text> 11 </text>
12 <text name="info_size"> 12 <text name="info_size">
13 [AREA]平方米 13 [AREA] 平方米
14 </text> 14 </text>
15 <text name="info_action"> 15 <text name="info_action">
16 出售这å—土地: 16 出售这å—土地:
@@ -31,37 +31,37 @@
31 把土地出售给: 31 把土地出售给:
32 </text> 32 </text>
33 <text name="sell_to_text"> 33 <text name="sell_to_text">
34 选择是å¦æŠŠä¸œä¸œå‡ºå”®ç»™ä»»ä½•äººæˆ–是一个特定的人. 34 选择是å¦æŠŠåœ°å—出售给任何人或是一个特定的购买者。
35 </text> 35 </text>
36 <combo_box name="sell_to"> 36 <combo_box name="sell_to">
37 <combo_item name="--selectone--"> 37 <combo_item name="--selectone--">
38 -- select one -- 38 -- 选择用户 --
39 </combo_item> 39 </combo_item>
40 <combo_item name="Anyone"> 40 <combo_item name="Anyone">
41 任何人 41 任何人
42 </combo_item> 42 </combo_item>
43 <combo_item name="Specificuser:"> 43 <combo_item name="Specificuser:">
44 特殊用户: 44 指定用户:
45 </combo_item> 45 </combo_item>
46 </combo_box> 46 </combo_box>
47 <button label="选择..." name="sell_to_select_agent" /> 47 <button label="选择..." name="sell_to_select_agent" />
48 <text name="sell_objects_label"> 48 <text name="sell_objects_label">
49 是å¦å’ŒåœŸåœ°ä¸€èµ·å‡ºå”®ä¸œä¸œ? 49 土地上的物体和土地一起出售å—?
50 </text> 50 </text>
51 <text name="sell_objects_text"> 51 <text name="sell_objects_text">
52 Land owner&apos;s transferable objects on parcel will change ownership. 52 地å—所有人在地å—上的å¯è½¬è®©çš„物体,其所有æƒå°†ä¼šè½¬è®©ã€‚
53 </text> 53 </text>
54 <radio_group name="sell_objects"> 54 <radio_group name="sell_objects">
55 <radio_item name="no"> 55 <radio_item name="no">
56 No, keep ownership of objects 56 ä¸è¦ï¼Œä¿ç•™ç‰©ä½“的所有æƒ
57 </radio_item> 57 </radio_item>
58 <radio_item name="yes"> 58 <radio_item name="yes">
59 Yes, sell objects with land 59 是的,和土地一起出售物体
60 </radio_item> 60 </radio_item>
61 </radio_group> 61 </radio_group>
62 <button label="显示东东" name="show_objects" /> 62 <button label="显示物体" name="show_objects" />
63 <text name="nag_message_label"> 63 <text name="nag_message_label">
64 请谨记: 所有的售åºéƒ½æ˜¯æœ€åŽé˜¶æ®µ. 64 请谨记: 所有土地交易都ä¸èƒ½æ’¤é”€ã€‚
65 </text> 65 </text>
66 <button label="设置土地为代售状æ€" name="sell_btn" /> 66 <button label="设置土地为代售状æ€" name="sell_btn" />
67 <button label="å–消" name="cancel_btn" /> 67 <button label="å–消" name="cancel_btn" />
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_settings_debug.xml b/linden/indra/newview/skins/default/xui/zh/floater_settings_debug.xml
index 91db4b0..cdb02ec 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_settings_debug.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_settings_debug.xml
@@ -1,15 +1,26 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="settings_debug" title="é™ä½Žç¼ºé™·è®¾å®š"> 2<floater
3 <combo_box name="boolean_combo"> 3 name="settings_debug"
4 <combo_item name="TRUE"> 4 title="调试设定">
5 <combo_box
6 name="boolean_combo">
7 <combo_item
8 name="TRUE"
9 value="true">
5 TRUE 10 TRUE
6 </combo_item> 11 </combo_item>
7 <combo_item name="FALSE"> 12 <combo_item
13 name="FALSE"
14 value="">
8 FALSE 15 FALSE
9 </combo_item> 16 </combo_item>
10 </combo_box> 17 </combo_box>
11 <spinner label="x" name="val_spinner_1" /> 18 <color_swatch
12 <spinner label="x" name="val_spinner_2" /> 19 label="颜色"
13 <spinner label="x" name="val_spinner_3" /> 20 name="color_swatch"
14 <spinner label="x" name="val_spinner_4" /> 21 visible="true" />
22 <button
23 label="é‡ç½®ä¸ºé»˜è®¤å€¼"
24 name="default_btn" />
15</floater> 25</floater>
26
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_sim_release_message.xml b/linden/indra/newview/skins/default/xui/zh/floater_sim_release_message.xml
new file mode 100644
index 0000000..6aeaac7
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_sim_release_message.xml
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="floaterreleasemessage"
4 title="正在进入地区">
5 <button
6 label="关闭"
7 name="close_btn"/>
8 <string
9 name="in-world_help_title">
10 世界内帮助
11 </string>
12 <string
13 name="additional_help_title">
14 附加帮助
15 </string>
16</floater>
17
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_snapshot.xml b/linden/indra/newview/skins/default/xui/zh/floater_snapshot.xml
index 3fd6971..0e83c98 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_snapshot.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_snapshot.xml
@@ -1,23 +1,52 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="Snapshot" title="快照预览"> 2<floater name="Snapshot" title="快照预览">
3 <text name="type_label"> 3 <text name="type_label">
4 你想干什么? 4 截图类型
5 </text> 5 </text>
6 <radio_group label="快照类型" name="snapshot_type_radio"> 6 <radio_group label="截图类型" name="snapshot_type_radio">
7 <radio_item name="postcard"> 7 <radio_item name="postcard">
8 Send a postcard 8 通过电å­é‚®ä»¶å‘é€
9 </radio_item> 9 </radio_item>
10 <radio_item name="texture"> 10 <radio_item name="texture">
11 Upload a snapshot 11 ä¿å­˜è‡³åº“å­˜ (L$10)
12 </radio_item> 12 </radio_item>
13 <radio_item name="local"> 13 <radio_item name="local">
14 Save snapshot to hard drive 14 ä¿å­˜è‡³ç¡¬ç›˜
15 </radio_item> 15 </radio_item>
16 </radio_group> 16 </radio_group>
17 <text name="type_label2"> 17 <text name="type_label2">
18 你需è¦å¤šå¤§çš„图åƒ? 18 尺寸
19 </text> 19 </text>
20 <combo_box label="决议" name="postcard_size_combo"> 20 <text
21 name="file_size_label">
22 文件尺寸: [SIZE] KB
23 </text>
24 <button label="刷新截图" name="new_snapshot_btn" />
25 <button label="上传 (L$10)" name="upload_btn" />
26 <button label="å‘é€" name="send_btn" />
27 <flyout_button
28 label="ä¿å­˜"
29 list_position="below"
30 name="save_btn"
31 tool_tip="ä¿å­˜å›¾åƒåˆ°æ–‡ä»¶">
32 <flyout_button_item
33 value="save">ä¿å­˜</flyout_button_item>
34 <flyout_button_item
35 value="save as">å¦å­˜ä¸º...</flyout_button_item>
36 </flyout_button>
37 <button label="放弃" name="discard_btn" />
38 <button
39 label="更多 >>"
40 name="more_btn"
41 tool_tip="高级选项" />
42 <button
43 label="&lt;&lt; 较少"
44 name="less_btn"
45 tool_tip="高级选项" />
46
47
48
49 <combo_box label="分辨率" name="postcard_size_combo">
21 <combo_item name="640x480"> 50 <combo_item name="640x480">
22 640x480 51 640x480
23 </combo_item> 52 </combo_item>
@@ -31,10 +60,10 @@
31 当å‰çª—å£ 60 当å‰çª—å£
32 </combo_item> 61 </combo_item>
33 <combo_item name="Custom"> 62 <combo_item name="Custom">
34 习惯 63 自定ä¹
35 </combo_item> 64 </combo_item>
36 </combo_box> 65 </combo_box>
37 <combo_box label="决议" name="texture_size_combo"> 66 <combo_box label="分辨率" name="texture_size_combo">
38 <combo_item name="CurrentWindow"> 67 <combo_item name="CurrentWindow">
39 当å‰çª—å£ 68 当å‰çª—å£
40 </combo_item> 69 </combo_item>
@@ -48,10 +77,10 @@
48 大 (512x512) 77 大 (512x512)
49 </combo_item> 78 </combo_item>
50 <combo_item name="Custom"> 79 <combo_item name="Custom">
51 习惯 80 自定ä¹
52 </combo_item> 81 </combo_item>
53 </combo_box> 82 </combo_box>
54 <combo_box label="决议" name="local_size_combo"> 83 <combo_box label="分辨率" name="local_size_combo">
55 <combo_item name="CurrentWindow"> 84 <combo_item name="CurrentWindow">
56 当å‰çª—å£ 85 当å‰çª—å£
57 </combo_item> 86 </combo_item>
@@ -74,12 +103,29 @@
74 1600x1200 103 1600x1200
75 </combo_item> 104 </combo_item>
76 <combo_item name="Custom"> 105 <combo_item name="Custom">
77 习惯 106 自定ä¹
78 </combo_item> 107 </combo_item>
79 </combo_box> 108 </combo_box>
109 <combo_box
110 label="æ ¼å¼"
111 name="local_format_combo">
112 <combo_item
113 name="PNG">
114 PNG
115 </combo_item>
116 <combo_item
117 name="JPEG">
118 JPEG
119 </combo_item>
120 <combo_item
121 name="BMP">
122 BMP
123 </combo_item>
124 </combo_box>
80 <spinner label="宽度" name="snapshot_width" /> 125 <spinner label="宽度" name="snapshot_width" />
81 <spinner label="高度" name="snapshot_height" /> 126 <spinner label="高度" name="snapshot_height" />
82 <slider label="ç”»é¢è´¨é‡" name="image_quality_slider" /> 127 <check_box label="ä¿æŒç”»é¢å®½é«˜æ¯”" name="keep_aspect_check" />
128 <slider label="图åƒè´¨é‡" name="image_quality_slider" />
83 <text name="layer_type_label"> 129 <text name="layer_type_label">
84 获å–: 130 获å–:
85 </text> 131 </text>
@@ -88,24 +134,23 @@
88 色彩 134 色彩
89 </combo_item> 135 </combo_item>
90 <combo_item name="Depth"> 136 <combo_item name="Depth">
91 深度 137 景深
92 </combo_item> 138 </combo_item>
93 <combo_item name="ObjectMattes"> 139 <combo_item name="ObjectMattes">
94 Object Mattes 140 物体轮廓
95 </combo_item> 141 </combo_item>
96 </combo_box> 142 </combo_box>
97 <text name="file_size_label"> 143 <text name="file_size_label">
98 å…¨å±: [SIZE] 144 文件尺寸: [SIZE] åƒå­—节
99 </text> 145 </text>
100 <check_box label="快照中显示界é¢" name="ui_check" /> 146 <check_box label="截图中显示界é¢" name="ui_check" />
101 <check_box label="在快照中显示" name="hud_check" /> 147 <!---->
102 <check_box label="ä¿å­˜åŽä¿æŒå¼€å¯" name="keep_open_check" /> 148 <check_box label="在截图中显示显示å±é™„件" name="hud_check" />
103 <check_box label="ä¿æŒç‰¹å®šé¢è²Œçš„比率" name="keep_aspect_check" /> 149 <check_box label="ä¿å­˜åŽä¿æŒçª—å£å¼€å¯" name="keep_open_check" />
104 <check_box label="冻结当å‰ç”»é¢(å…¨å±é¢„览)" name="freeze_frame_check" /> 150 <check_box label="冻结当å‰ç”»é¢(å…¨å±é¢„览)" name="freeze_frame_check" />
105 <button label="新的快照" name="new_snapshot_btn" /> 151 <check_box label="自动截图" name="auto_snapshot_check" />
106 <check_box label="自动-快照" name="auto_snapshot_check" /> 152 <text
107 <button label="上传 (L$10)" name="upload_btn" /> 153 name="unknown">未知</text>
108 <button label="å‘é€" name="send_btn" /> 154
109 <button label="存储" name="save_btn" />
110 <button label="放弃" name="discard_btn" />
111</floater> 155</floater>
156<!--Translated for Second Life 1.21.0 (95157)-->
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_sound_preview.xml b/linden/indra/newview/skins/default/xui/zh/floater_sound_preview.xml
index e5d0abf..77bb748 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_sound_preview.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_sound_preview.xml
@@ -8,21 +8,4 @@
8 </text> 8 </text>
9 <button label="å–消" label_selected="å–消" name="cancel_btn" /> 9 <button label="å–消" label_selected="å–消" name="cancel_btn" />
10 <button label="上传 (L$10)" label_selected="上传 (L$10)" name="ok_btn" /> 10 <button label="上传 (L$10)" label_selected="上传 (L$10)" name="ok_btn" />
11 <text name="text">
12 速率(kbps):
13 </text>
14 <radio_group name="bitrate">
15 <radio_item name="32">
16 32
17 </radio_item>
18 <radio_item name="64">
19 64
20 </radio_item>
21 <radio_item name="96">
22 96
23 </radio_item>
24 <radio_item name="128">
25 128
26 </radio_item>
27 </radio_group>
28</floater> 11</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_telehub.xml b/linden/indra/newview/skins/default/xui/zh/floater_telehub.xml
index 8381e5f..8acbed2 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_telehub.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_telehub.xml
@@ -1,28 +1,28 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="telehub" title="闪电传é€é›†åˆåœ°"> 2<floater name="telehub" title="瞬间移动枢纽">
3 <text name="status_text_connected"> 3 <text name="status_text_connected">
4 闪电传è¿è¿žæŽ¥ç‚¹å’Œä¸œä¸œè¿žæŽ¥[OBJECT] 4 连接到物体 [OBJECT] 的瞬移枢纽
5 </text> 5 </text>
6 <text name="status_text_not_connected"> 6 <text name="status_text_not_connected">
7 没有ç€é™†ç‚¹è¿žæŽ¥ 7 没有连接到瞬移枢纽。
8 </text> 8 </text>
9 <text name="help_text_connected"> 9 <text name="help_text_connected">
10 移除,请点击断开连接 10 è¦ç§»é™¤ï¼Œè¯·ç‚¹å‡»æ–­å¼€è¿žæŽ¥
11 </text> 11 </text>
12 <text name="help_text_not_connected"> 12 <text name="help_text_not_connected">
13 选择一个对象,并点击闪电传è¿è¿žæŽ¥ç‚¹ã€‚ 13 选择一个对象,ç„åŽç‚¹å‡»â€œè¿žæŽ¥çž¬ç§»æž¢çº½â€ã€‚
14 </text> 14 </text>
15 <button label="连接闪电传é€é›†åˆç‚¹" name="connect_btn" /> 15 <button label="连接瞬移枢纽" name="connect_btn" />
16 <button label="断开连接" name="disconnect_btn" /> 16 <button label="断开连接" name="disconnect_btn" />
17 <text name="spawn_points_text"> 17 <text name="spawn_points_text">
18 ç€é™†ç‚¹ (地点, ä¸æ˜¯ä¸œä¸œ): 18 ç€é™†ç‚¹ (地点, ä¸æ˜¯ç‰©ä½“):
19 </text> 19 </text>
20 <button label="Add Spawn" name="add_spawn_point_btn" /> 20 <button label="添加ç€é™†ç‚¹" name="add_spawn_point_btn" />
21 <button label="移除ç€é™†ç‚¹" name="remove_spawn_point_btn" /> 21 <button label="移除ç€é™†ç‚¹" name="remove_spawn_point_btn" />
22 <text name="spawn_point_help"> 22 <text name="spawn_point_help">
23 选择对象东东,并点击添加è³ç¡®å®šä½ç½®ã€‚ 23 选择目标物体,ç„åŽç‚¹å‡»æ·»åŠ ï¼Œæ¥æŒ‡å®šä½ç½®ã€‚
24接下æ¥ä½ å¯ä»¥ç§»åŠ¨æˆ–者删除该东东。 24接下æ¥ä½ å¯ä»¥ç§»åŠ¨æˆ–者删除该物体。
25ä½ç½®å’Œç”µå­ä¼ é€é›†åˆç‚¹çš„中心有关。 25ä½ç½®æ˜¯ä¸Žçž¬é—´ç§»åŠ¨æž¢çº½çš„相对ä½ç½®ã€‚
26选择列表中的选项æ¥æ˜¾ç¤ºå®ƒåœ¨ä¸–界中的ä½ç½®ã€‚ 26选择列表中的选项æ¥æ˜¾ç¤ºå®ƒåœ¨ä¸–界中的ä½ç½®ã€‚
27 </text> 27 </text>
28</floater> 28</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml b/linden/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml
index 98c56cb..bbca686 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_texture_ctrl.xml
@@ -3,15 +3,24 @@
3 <text type="string" length="1" name="Multiple"> 3 <text type="string" length="1" name="Multiple">
4 多项 4 多项
5 </text> 5 </text>
6 <string name="choose_picture">
7 点击选择æè´¨
8 </string>
6 <text type="string" length="1" name="unknown"> 9 <text type="string" length="1" name="unknown">
7 尺寸: 512 x 512 10 尺寸: [DIMENSIONS]
8 </text> 11 </text>
12 <search_editor
13 label="在这里输入查找æè´¨"
14 name="inventory search editor" />
9 <button label="默认" label_selected="默认" name="Default" /> 15 <button label="默认" label_selected="默认" name="Default" />
10 <button label="都ä¸" label_selected="都ä¸" name="None" /> 16 <button label="æ— æè´¨" label_selected="æ— æè´¨" name="None" />
11 <button label="空白" label_selected="空白" name="Blank" /> 17 <button label="空白" label_selected="空白" name="Blank" />
12 <check_box label="显示文件夹" name="show_folders_check" /> 18 <check_box label="显示文件夹" name="show_folders_check" />
13 <check_box label="ç«‹å³åº”用" name="apply_immediate_check" /> 19 <check_box label="ç«‹å³åº”用" name="apply_immediate_check" />
14 <button label="" label_selected="" name="Pipette" /> 20 <button label="" label_selected="" name="Pipette" />
15 <button label="å–消" label_selected="å–消" name="Cancel" /> 21 <button label="å–消" label_selected="å–消" name="Cancel" />
16 <button label="选择" label_selected="选择" name="Select" /> 22 <button label="选择" label_selected="选择" name="Select" />
23 <string name="pick title">
24 选择:
25 </string>
17</floater> 26</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_tools.xml b/linden/indra/newview/skins/default/xui/zh/floater_tools.xml
index d62802e..ed046ad 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_tools.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_tools.xml
@@ -1,103 +1,151 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="toolbox floater" title=""> 2<floater name="toolbox floater" title="">
3 <button label="" label_selected="" name="button focus" /> 3 <button label="" label_selected="" name="button focus"
4 <text name="tool label"> 4 tool_tip="èšç„¦" />
5 焦点 5 <button label="" label_selected="" name="button move"
6 </text> 6 tool_tip="移动"/>
7 <button label="" label_selected="" name="button move" /> 7 <button label="" label_selected="" name="button edit"
8 <text name="tool label2"> 8 tool_tip="编辑" />
9 移动 9 <button label="" label_selected="" name="button create"
10 </text> 10 tool_tip="创造"/>
11 <button label="" label_selected="" name="button edit" /> 11 <button label="" label_selected="" name="button land"
12 <text name="tool label3"> 12 tool_tip="土地"/>
13 编辑 13
14 </text> 14<!-- Focus panel/èšç„¦é¢æ¿ -->
15 <button label="" label_selected="" name="button create" /> 15
16 <text name="tool label4"> 16 <check_box label="缩放" name="radio zoom" />
17 创造 17 <check_box label="环绕(Ctrl)" name="radio orbit" />
18 </text> 18 <check_box label="平移(Ctrl-Shift)" name="radio pan" />
19 <button label="" label_selected="" name="button land" /> 19
20 <text name="tool label5"> 20<!-- Move panel/移动é¢æ¿ -->
21 土地 21
22 </text>
23 <check_box label="Zoom" name="radio zoom" />
24 <check_box label="轨é“(Ctrl)" name="radio orbit" />
25 <check_box label="平底(Ctrl-Shift)" name="radio pan" />
26 <check_box label="移动" name="radio move" /> 22 <check_box label="移动" name="radio move" />
27 <check_box label="举起(Ctrl)" name="radio lift" /> 23 <check_box label="举起 (Ctrl)" name="radio lift" />
28 <check_box label="旋转 (Ctrl-Shift)" name="radio spin" /> 24 <check_box label="旋转 (Ctrl-Shift)" name="radio spin" />
25
26<!-- Edit panel/编辑é¢æ¿ -->
27
29 <check_box label="ä½ç½®" name="radio position" /> 28 <check_box label="ä½ç½®" name="radio position" />
30 <check_box label="旋转(Ctrl)" name="radio rotate" /> 29 <check_box label="旋转(Ctrl)" name="radio rotate" />
31 <check_box label="拉伸(Ctrl-Shift)" name="radio stretch" /> 30 <check_box label="拉伸(Ctrl-Shift)" name="radio stretch" />
32 <check_box label="选择æè´¨" name="radio select face" /> 31 <check_box label="选择æè´¨" name="radio select face" />
33 <check_box label="编辑连接部分" name="checkbox edit linked parts" /> 32 <check_box label="编辑连接部件" name="checkbox edit linked parts" />
34 <check_box label="使用å°æ–¹æ ¼" name="checkbox snap to grid" /> 33 <text
35 <button label="选项..." label_selected="选项..." name="Options..." /> 34 name="text ruler mode">
36 <check_box label="åŒæ—¶æ‹‰ä¼¸ä¸¤è¾¹" name="checkbox uniform" /> 35 标尺模å¼:
37 <check_box label="拉伸æè´¨" name="checkbox stretch textures" />
38 <text name="text ruler mode">
39 管ç†å‘˜æ¨¡å¼:
40 </text>
41 <text name="text status">
42 拖拽并移动, åŒæ—¶æŒ‰shift-拖拽å¤åˆ¶ä¸œä¸œ
43 </text> 36 </text>
44 <combo_box name="combobox grid mode"> 37 <combo_box
45 <combo_item name="World"> 38 name="combobox grid mode">
39 <combo_item
40 name="World">
46 世界 41 世界
47 </combo_item> 42 </combo_item>
48 <combo_item name="Local"> 43 <combo_item
49 本地的 44 name="Local">
45 本地
50 </combo_item> 46 </combo_item>
51 <combo_item name="Reference"> 47 <combo_item
52 å‚考资料 48 name="Reference" >
49 å‚照物
53 </combo_item> 50 </combo_item>
54 </combo_box> 51 </combo_box>
55 <button label="" label_selected="" name="ToolCube" /> 52 <check_box label="使用网格" name="checkbox snap to grid" />
56 <button label="" label_selected="" name="ToolPrism" /> 53 <button label="选项..." label_selected="选项..." name="Options..." />
57 <button label="" label_selected="" name="ToolPyramid" /> 54 <check_box label="åŒæ—¶æ‹‰ä¼¸ä¸¤è¾¹" name="checkbox uniform" />
58 <button label="" label_selected="" name="ToolTetrahedron" /> 55 <check_box label="拉伸æè´¨" name="checkbox stretch textures" />
59 <button label="" label_selected="" name="ToolCylinder" /> 56 <text name="text status">
60 <button label="" label_selected="" name="ToolHemiCylinder" /> 57 拖动æ¥ç§»åŠ¨ç‰©ä½“, æŒ‰ä½ Shift 拖动æ¥å¤åˆ¶
61 <button label="" label_selected="" name="ToolCone" /> 58 </text>
62 <button label="" label_selected="" name="ToolHemiCone" /> 59 <button label="" label_selected="" name="ToolCube" tool_tip="立方体" />
63 <button label="" label_selected="" name="ToolSphere" /> 60 <button label="" label_selected="" name="ToolPrism"
64 <button label="" label_selected="" name="ToolHemiSphere" /> 61 tool_tip="棱柱" />
65 <check_box label="å¤åˆ¶é€‰æ‹©" name="checkbox copy selection" /> 62 <button label="" label_selected="" name="ToolPyramid"
66 <button label="" label_selected="" name="ToolTorus" /> 63 tool_tip="棱锥" />
67 <button label="" label_selected="" name="ToolTube" /> 64 <button label="" label_selected="" name="ToolTetrahedron"
68 <button label="" label_selected="" name="ToolRing" /> 65 tool_tip="å››é¢ä½“" />
69 <button label="" label_selected="" name="ToolTree" /> 66 <button label="" label_selected="" name="ToolCylinder"
70 <button label="" label_selected="" name="ToolGrass" /> 67 tool_tip="圆柱体" />
68 <button label="" label_selected="" name="ToolHemiCylinder"
69 tool_tip="åŠåœ†æŸ±ä½“" />
70 <button label="" label_selected="" name="ToolCone"
71 tool_tip="圆锥" />
72 <button label="" label_selected="" name="ToolHemiCone"
73 tool_tip="åŠåœ†é”¥" />
74 <button label="" label_selected="" name="ToolSphere"
75 tool_tip="çƒä½“" />
76 <button label="" label_selected="" name="ToolHemiSphere"
77 tool_tip="åŠçƒä½“" />
78 <button
79 name="ToolTorus"
80 tool_tip="圆环" />
81 <button
82 image_disabled="object_tube.tga"
83 image_disabled_selected="object_tube_active.tga"
84 label=""
85 label_selected=""
86 name="ToolTube"
87 tool_tip="圆管" />
88 <button
89 image_disabled="object_ring.tga"
90 image_disabled_selected="object_ring_active.tga"
91 label=""
92 label_selected=""
93 name="ToolRing"
94 tool_tip="环" />
95 <button
96 image_disabled="object_tree.tga"
97 image_disabled_selected="object_tree_active.tga"
98 label=""
99 label_selected=""
100 name="ToolTree"
101 tool_tip="树木" />
102 <button
103 image_disabled="object_grass.tga"
104 image_disabled_selected="object_grass_active.tga"
105 label=""
106 label_selected=""
107 name="ToolGrass"
108 tool_tip="è‰åœ°" />
109 <check_box label="å¤åˆ¶é€‰æ‹©é¡¹" name="checkbox copy selection" />
71 <check_box label="ä¿æŒé€‰å®šå·¥å…·" name="checkbox sticky" /> 110 <check_box label="ä¿æŒé€‰å®šå·¥å…·" name="checkbox sticky" />
72 <check_box label="å¤åˆ¶ä¸­å¿ƒ" name="checkbox copy centers" /> 111 <check_box label="居中附件" name="checkbox copy centers" />
73 <check_box label="旋转å¤åˆ¶" name="checkbox copy rotates" /> 112 <check_box label="旋转附件" name="checkbox copy rotates" />
113
114<!-- Land panel/土地é¢æ¿ -->
115
74 <check_box label="选择土地" name="radio select land" /> 116 <check_box label="选择土地" name="radio select land" />
75 <check_box label="磨平土地" name="radio flatten" /> 117 <check_box label="磨平土地" name="radio flatten" />
76 <check_box label="抬高土地" name="radio raise" /> 118 <check_box label="抬高土地" name="radio raise" />
77 <check_box label="é™ä½ŽåœŸåœ°é«˜åº¦" name="radio lower" /> 119 <check_box label="é™ä½ŽåœŸåœ°" name="radio lower" />
78 <check_box label="使土地光滑" name="radio smooth" /> 120 <check_box label="使土地光滑" name="radio smooth" />
79 <check_box label="粗糙化土地" name="radio noise" /> 121 <check_box label="粗糙化土地" name="radio noise" />
80 <check_box label="æ¢å¤åœŸåœ°" name="radio revert" /> 122 <check_box label="æ¢å¤åœŸåœ°" name="radio revert" />
81 <combo_box name="combobox brush size"> 123 <combo_box name="combobox brush size">
82 <combo_item name="Small"> 124 <combo_item name="Small">
83 å°åž‹çš„ 125 å°
84 </combo_item> 126 </combo_item>
85 <combo_item name="Medium"> 127 <combo_item name="Medium">
86 中型的 128 中
87 </combo_item> 129 </combo_item>
88 <combo_item name="Large"> 130 <combo_item name="Large">
89 大型的 131 大
90 </combo_item> 132 </combo_item>
91 </combo_box> 133 </combo_box>
92 <button label="应用所选项目" label_selected="应用所选项目" 134 <text type="string" name="Strength:">
93 name="button apply to selection" tool_tip="修饰所选土地" /> 135 强度:
94 <check_box label="显示东东主人" name="checkbox show owners" /> 136 </text>
95 <button label="多于&gt;&gt;" name="button more" tool_tip="高级选项" /> 137 <button label="应用到所选项目" label_selected="应用到所选项目"
96 <button label="&lt;&lt; 少于" name="button less" tool_tip="高级选项" /> 138 name="button apply to selection" tool_tip="更改所选土地" />
139 <check_box label="显示物å“主人" name="checkbox show owners" />
140 <button label="更多 &gt;&gt;" name="button more" tool_tip="高级选项" />
141 <button label="&lt;&lt; 更少" name="button less" tool_tip="高级选项" />
142
143<!-- Sub-tabs/å­æ ‡ç­¾é¡µ -->
144
97 <tab_container name="Object Info Tabs"> 145 <tab_container name="Object Info Tabs">
98 <panel label="General" name="General"> 146 <panel label="一般" name="General">
99 <text name="Name:"> 147 <text name="Name:">
100 åå­—: 148 å称:
101 </text> 149 </text>
102 <text name="Description:"> 150 <text name="Description:">
103 æè¿°: 151 æè¿°:
@@ -106,34 +154,34 @@
106 创造者: 154 创造者:
107 </text> 155 </text>
108 <text name="Creator Name"> 156 <text name="Creator Name">
109 斯雷è¨æ–¯ æž—ç™» 157 斯雷è¨æ–¯Â·æž—ç™»
110 </text> 158 </text>
111 <button label="档案..." label_selected="档案..." name="button creator profile" /> 159 <button label="档案..." label_selected="档案..." name="button creator profile" />
112 <text name="Owner:"> 160 <text name="Owner:">
113 主人: 161 主人:
114 </text> 162 </text>
115 <text name="Owner Name"> 163 <text name="Owner Name">
116 斯雷è¨æ–¯ æž—ç™» 164 斯雷è¨æ–¯Â·æž—ç™»
117 </text> 165 </text>
118 <button label="档案..." label_selected="档案..." name="button owner profile" /> 166 <button label="档案..." label_selected="档案..." name="button owner profile" />
119 <text name="Group:"> 167 <text name="Group:">
120 Group: 168 社团:
121 </text> 169 </text>
122 <text name="Group Name Proxy"> 170 <text name="Group Name Proxy">
123 林登家æ—的人 171 The Lindens
124 </text> 172 </text>
125 <button label="调节..." label_selected="调节..." name="button set group" /> 173 <button label="设置..." label_selected="设置..." name="button set group" />
126 <text name="prim info"> 174 <text name="prim info">
127 1个东东, 1个å¤è‘£ 175 1个物体, 1个元件
128 </text> 176 </text>
129 <text name="Permissions:"> 177 <text name="Permissions:">
130 许å¯è¯: 178 æƒåˆ©:
131 </text> 179 </text>
132 <text name="perm_modify"> 180 <text name="perm_modify">
133 ä½ å¯ä»¥ä¿®é¥°è¿™ä»¶ä¸œä¸œ. 181 ä½ å¯ä»¥ä¿®æ”¹è¿™ä»¶ç‰©ä½“。
134 </text> 182 </text>
135 <check_box label="与社团分享" name="checkbox share with group" 183 <check_box label="与社团分享" name="checkbox share with group"
136 tool_tip="å…许社团æˆå‘˜æ¥ç§»åŠ¨ï¼Œæ”¹è¿›ï¼Œå¤åˆ¶ä»¥åŠåˆ é™¤Allow group members to move, modify, copy and delete." /> 184 tool_tip="å…许社团æˆå‘˜æ¥ç§»åŠ¨ï¼Œæ”¹è¿›ï¼Œå¤åˆ¶ä»¥åŠåˆ é™¤" />
137 <text name="text deed continued"> 185 <text name="text deed continued">
138 契约... 186 契约...
139 </text> 187 </text>
@@ -141,99 +189,135 @@
141 转让 189 转让
142 </text> 190 </text>
143 <button label="契约..." label_selected="契约..." name="button deed" 191 <button label="契约..." label_selected="契约..." name="button deed"
144 tool_tip="社团共享的东东å¯è¢«ç¤¾å›¢å®˜å‘˜è®¤å¯ã€‚" /> 192 tool_tip="社团共享的物体å¯è¢«ç¤¾å›¢å®˜å‘˜è®¤å¯ã€‚" />
145 <check_box label="å…许任何人移动" name="checkbox allow everyone move" /> 193 <check_box label="å…许任何人移动" name="checkbox allow everyone move" />
146 <check_box label="å…许任何人å¤åˆ¶" name="checkbox allow everyone copy" /> 194 <check_box label="å…许任何人å¤åˆ¶" name="checkbox allow everyone copy" />
147 <check_box label="代售" name="checkbox for sale" /> 195 <check_box label="出售" name="checkbox for sale" />
196 <check_box
197 label="在æœç´¢ä¸­æ˜¾ç¤º"
198 name="search_check"
199 tool_tip="让别人å¯ä»¥åœ¨æœç´¢ç»“果中看到这件物体。" />
148 <text name="Price: L$"> 200 <text name="Price: L$">
149 价格:L$ 201 价格:L$
150 </text> 202 </text>
151 <radio_group name="sale type"> 203 <radio_group name="sale type">
152 <radio_item name="Original"> 204 <radio_item name="Original">
153 Original 205 原件
154 </radio_item> 206 </radio_item>
155 <radio_item name="Copy"> 207 <radio_item name="Copy">
156 å¤åˆ 208 附ä»
157 </radio_item> 209 </radio_item>
158 <radio_item name="Contents"> 210 <radio_item name="Contents">
159 Contents 211 内容
160 </radio_item> 212 </radio_item>
161 </radio_group> 213 </radio_group>
162 <text name="Next owner can:"> 214 <text name="Next owner can:">
163 下个拥有者å¯ä»¥: 215 下个拥有者å¯ä»¥:
164 </text> 216 </text>
165 <check_box label="修饰" name="checkbox next owner can modify" /> 217 <check_box label="修改" name="checkbox next owner can modify" />
166 <check_box label="å¤åˆ¶" name="checkbox next owner can copy" /> 218 <check_box label="å¤åˆ¶" name="checkbox next owner can copy" />
167 <check_box label="转å–/抛弃" name="checkbox next owner can transfer" /> 219 <check_box label="转å–/èµ é€" name="checkbox next owner can transfer" />
168 <text name="label click action"> 220 <text name="label click action">
169 当点击鼠标左键时: 221 当点击鼠标左键时:
170 </text> 222 </text>
171 <combo_box name="clickaction"> 223 <combo_box name="clickaction">
224 <!-- Do not reorder these items, the index numbers are
225 used internally. JC -->
172 <combo_item name="Touch/grab(default)"> 226 <combo_item name="Touch/grab(default)">
173 触摸/抢走 (默认) 227 触摸/æŠ“å– (默认)
174 </combo_item> 228 </combo_item>
175 <combo_item name="Sitonobject"> 229 <combo_item name="Sitonobject">
176 å在东东上 230 å在物体上
177 </combo_item> 231 </combo_item>
178 <combo_item name="Buyobject"> 232 <combo_item name="Buyobject">
179 购买东东 233 购买物体
180 </combo_item> 234 </combo_item>
181 <combo_item name="Payobject"> 235 <combo_item name="Payobject">
182 å¿ä»˜ä¸œä¸œ 236 å‘物体付款
183 </combo_item> 237 </combo_item>
184 <combo_item name="Open"> 238 <combo_item name="Open">
185 打开 239 打开
186 </combo_item> 240 </combo_item>
241 <combo_item name="Play">
242 播放地å—媒体
243 </combo_item>
244 <combo_item name="Opemmedia">
245 打开地å—媒体
246 </combo_item>
247
187 </combo_box> 248 </combo_box>
249
188 <text name="B:"> 250 <text name="B:">
189 B: 251 基:
190 </text> 252 </text>
191 <text name="O:"> 253 <text name="O:">
192 O; 254 主:
193 </text> 255 </text>
194 <text name="G:"> 256 <text name="G:">
195 G: 257 团:
196 </text> 258 </text>
197 <text name="E:"> 259 <text name="E:">
198 E: 260 ä¼—:
199 </text> 261 </text>
200 <text name="N:"> 262 <text name="N:">
201 N: 263 å—:
202 </text> 264 </text>
203 <text name="F:"> 265 <text name="F:">
204 F: 266 å‹:
205 </text> 267 </text>
206 <text name="text modify info 1"> 268
207 ä½ å¯ä»¥ä¿®é¥°è¿™ä»¶ä¸œä¸œ. 269 <string name="text modify info 1">
208 </text> 270 ä½ å¯ä»¥ä¿®æ”¹è¿™ä»¶ç‰©å“。
209 <text name="text modify info 2"> 271 </string>
210 ä½ å¯ä»¥ä¿®é¥°è¿™äº›ä¸œä¸œ. 272 <string name="text modify info 2">
211 </text> 273 ä½ å¯ä»¥ä¿®æ”¹è¿™äº›ç‰©å“。
212 <text name="text modify info 3"> 274 </string>
213 ä½ ä¸èƒ½ä¿®é¥°è¿™ä¸ªä¸œä¸œ. 275 <string name="text modify info 3">
214 </text> 276 ä½ ä¸èƒ½ä¿®æ”¹è¿™ä¸ªç‰©å“。
215 <text name="text modify info 4"> 277 </string>
216 ä½ ä¸èƒ½ä¿®é¥°è¿™äº›ä¸œä¸œ. 278 <string name="text modify info 4">
217 </text> 279 ä½ ä¸èƒ½ä¿®æ”¹è¿™äº›ç‰©å“。
218 <text name="text modify warning"> 280 </string>
219 必须选择一个完整的对象æ¥è®¾ç½®è®¸å¯è¯ 281 <string name="text modify warning">
220 </text> 282 必须选择一个完整的物体æ¥è®¾ç½®è®¸å¯ã€‚
283 </string>
284 <string name="Cost Default">
285 ä»·æ ¼: L$
286 </string>
287 <string
288 name="Cost Total">
289 总价格: L$
290 </string>
291 <string name="Cost Per Unit">
292 æ¯ä¸ªçš„ä»·æ ¼: L$
293 </string>
294 <string
295 name="Cost Mixed">
296 æ··åˆä»·æ ¼ <!--XXX-->
297 </string>
298 <string name="Sale Mixed">
299 æ··åˆé”€å”® <!--XXX-->
300 </string>
301
221 </panel> 302 </panel>
222 <panel label="东东" name="Object"> 303
304<!-- Object sub-tab/物体å­æ ‡ç­¾ -->
305
306 <panel label="物体" name="Object">
223 <text name="select_single"> 307 <text name="select_single">
224 åªèƒ½é€‰æ‹©ä¸€ä¸ªè®¸å¯æ¥ç¼–辑å‚数。 308 一次åªèƒ½ç¼–辑一个元件的å‚数。请选择å•ä¸ªå…ƒä»¶ã€‚
225 </text> 309 </text>
226 <text name="edit_object"> 310 <text name="edit_object">
227 编辑东东å‚æ•°: 311 编辑物体å‚æ•°:
228 </text> 312 </text>
229 <check_box label="é”定" name="checkbox locked" 313 <check_box label="é”定" name="checkbox locked"
230 tool_tip="使东东é¿å…被移动或删除。此项通常被使用在建筑过程中用以é¿å…计划外的修改。" /> 314 tool_tip="使物体é¿å…被移动或删除。此项通常被使用在建造过程中用以é¿å…æ„外的修改。" />
231 <check_box label="物ç†çš„" name="Physical Checkbox Ctrl" 315 <check_box label="物ç†çš„" name="Physical Checkbox Ctrl"
232 tool_tip="å…许物体å—é‡åŠ›å½±å“。" /> 316 tool_tip="å…许物体被推动以åŠå—é‡åŠ›å½±å“。" />
233 <check_box label="暂时的" name="Temporary Checkbox Ctrl" 317 <check_box label="暂时的" name="Temporary Checkbox Ctrl"
234 tool_tip="使东东在被创建åŽ1分钟被删除" /> 318 tool_tip="ä½¿ç‰©ä½“åœ¨è¢«åˆ›å»ºåŽ 1 分钟被删除" />
235 <check_box label="幻影" name="Phantom Checkbox Ctrl" 319 <check_box label="幻影" name="Phantom Checkbox Ctrl"
236 tool_tip="使东东ä¸ä¸Žå…¶å®ƒä¸œä¸œæˆ–你在游æˆä¸­çš„化身å‘生冲çª" /> 320 tool_tip="使物体ä¸ä¸Žå…¶å®ƒç‰©ä½æˆåŒ–身碰撞" />
237 <text name="label position"> 321 <text name="label position">
238 ä½ç½® (ç±³) 322 ä½ç½® (ç±³)
239 </text> 323 </text>
@@ -269,21 +353,21 @@
269 木头 353 木头
270 </combo_item> 354 </combo_item>
271 <combo_item name="Flesh"> 355 <combo_item name="Flesh">
272 人体 356 肉体
273 </combo_item> 357 </combo_item>
274 <combo_item name="Plastic"> 358 <combo_item name="Plastic">
275 塑料的 359 塑料
276 </combo_item> 360 </combo_item>
277 <combo_item name="Rubber"> 361 <combo_item name="Rubber">
278 橡胶的 362 橡胶
279 </combo_item> 363 </combo_item>
280 </combo_box> 364 </combo_box>
281 <text name="label basetype"> 365 <text name="label basetype">
282 创建阻ç¢ç±»åž‹ 366 基础形状
283 </text> 367 </text>
284 <combo_box name="comboBaseType"> 368 <combo_box name="comboBaseType">
285 <combo_item name="Box"> 369 <combo_item name="Box">
286 Box 370 立方体
287 </combo_item> 371 </combo_item>
288 <combo_item name="Cylinder"> 372 <combo_item name="Cylinder">
289 圆柱体 373 圆柱体
@@ -298,14 +382,14 @@
298 圆环形 382 圆环形
299 </combo_item> 383 </combo_item>
300 <combo_item name="Tube"> 384 <combo_item name="Tube">
301 试管形 385 管形
302 </combo_item> 386 </combo_item>
303 <combo_item name="Ring"> 387 <combo_item name="Ring">
304 环形 388 环形
305 </combo_item> 389 </combo_item>
306 </combo_box> 390 </combo_box>
307 <text name="text cut"> 391 <text name="text cut">
308 è·¯å¾„å‰ªè´´å¼€å§‹å’Œç»“æŸ 392 路径截断开始和结æŸ
309 </text> 393 </text>
310 <spinner label="B" name="cut begin" /> 394 <spinner label="B" name="cut begin" />
311 <spinner label="E" name="cut end" /> 395 <spinner label="E" name="cut end" />
@@ -313,7 +397,7 @@
313 窟窿 397 窟窿
314 </text> 398 </text>
315 <text name="text skew"> 399 <text name="text skew">
316 倾斜的 400 倾斜
317 </text> 401 </text>
318 <text name="Hollow Shape"> 402 <text name="Hollow Shape">
319 窟窿的形状 403 窟窿的形状
@@ -323,7 +407,7 @@
323 默认 407 默认
324 </combo_item> 408 </combo_item>
325 <combo_item name="Circle"> 409 <combo_item name="Circle">
326 圆圈 410 圆
327 </combo_item> 411 </combo_item>
328 <combo_item name="Square"> 412 <combo_item name="Square">
329 正方形 413 正方形
@@ -346,15 +430,15 @@
346 <spinner label="X" name="Taper Scale X" /> 430 <spinner label="X" name="Taper Scale X" />
347 <spinner label="Y" name="Taper Scale Y" /> 431 <spinner label="Y" name="Taper Scale Y" />
348 <text name="text topshear"> 432 <text name="text topshear">
349 首è¦å‰ªè´´ 433 顶é¢å€¾æ–œ
350 </text> 434 </text>
351 <spinner label="X" name="Shear X" /> 435 <spinner label="X" name="Shear X" />
352 <spinner label="Y" name="Shear Y" /> 436 <spinner label="Y" name="Shear Y" />
353 <text name="advanced_cut"> 437 <text name="advanced_cut">
354 æ¡£æ¡ˆæ–‡ä»¶å‰ªè´´å¼€å§‹å’Œç»“æŸ 438 剖é¢æˆªæ–­å¼€å§‹å’Œç»“æŸ
355 </text> 439 </text>
356 <text name="advanced_dimple"> 440 <text name="advanced_dimple">
357 èµ·ä¼å¼€å§‹å’Œç»“æŸ 441 凹陷开始和结æŸ
358 </text> 442 </text>
359 <spinner label="B" name="Path Limit Begin" /> 443 <spinner label="B" name="Path Limit Begin" />
360 <spinner label="E" name="Path Limit End" /> 444 <spinner label="E" name="Path Limit End" />
@@ -364,80 +448,132 @@
364 <spinner label="X" name="Taper X" /> 448 <spinner label="X" name="Taper X" />
365 <spinner label="Y" name="Taper Y" /> 449 <spinner label="Y" name="Taper Y" />
366 <text name="text radius delta"> 450 <text name="text radius delta">
367 åŠå¾„三角洲 451 åŠå¾„å˜åŒ–
368 </text> 452 </text>
369 <text name="text revolutions"> 453 <text name="text revolutions">
370 å˜é© 454 旋转次数
371 </text> 455 </text>
456 <texture_picker
457 label="雕塑æè´¨"
458 name="sculpt texture control"
459 tool_tip="点这里选择图片"
460 />
461 <check_box
462 label="é•œåƒ"
463 name="sculpt mirror control"
464 tool_tip="将雕塑元件沿ç€X轴翻转。" />
465 <check_box
466 label="里æœå¤–"
467 name="sculpt invert control"
468 tool_tip="å转雕塑元件的法å‘é‡ï¼Œä½¿å…¶çœ‹ä¸ŠåŽ»åƒæ˜¯ä»Žé‡Œé¢è¢«ç¿»å‡ºæ¥äº†ä¸€æ ·ã€‚" />
469
470 <text
471 align="left"
472 name="label sculpt type"
473 visible="false">
474 ç¼åˆç±»åž‹
475 </text>
476 <combo_box
477 allow_text_entry="false"
478 max_chars="20"
479 name="sculpt type control"
480 visible="false">
481 <combo_item
482 name="None">
483 (æ— )
484 </combo_item>
485 <combo_item
486 name="Sphere">
487 çƒä½“
488 </combo_item>
489 <combo_item
490 name="Torus">
491 圆环
492 </combo_item>
493 <combo_item
494 name="Plane">
495 å¹³é¢
496 </combo_item>
497 <combo_item
498 name="Cylinder">
499 Cylinder
500 </combo_item>
501 </combo_box>
502
503 <!-- Features sub-tab -->
504
372 </panel> 505 </panel>
373 <panel label="Features" name="Features"> 506 <panel label="特å¾" name="Features">
374 <text name="select_single"> 507 <text name="select_single">
375 åªèƒ½é€‰æ‹©ä¸€ä¸ªè®¸å¯æ¥ç¼–辑性质。 508 一次åªèƒ½ç¼–辑一个元件的å‚æ•°ã请选择å•ä¸ªå…ƒä»¶ã€‚
376 </text> 509 </text>
377 <text name="edit_object"> 510 <text name="edit_object">
378 编辑东东属性: 511 编辑物体特å¾:
379 </text> 512 </text>
380 <check_box label="å˜å½¢å°è·¯" name="Flexible1D Checkbox Ctrl" 513 <check_box label="活动路径" name="Flexible1D Checkbox Ctrl"
381 tool_tip="å…许物体沿Z-轴活动(åªåœ¨é¡¾å®¢æ–¹å¯ç”¨ï¼‰" /> 514 tool_tip="å…许物体沿Z-轴活动(仅客户端有效)" />
382 <spinner label="柔软" name="FlexNumSections" /> 515 <spinner label="柔软度" name="FlexNumSections" />
383 <spinner label="é‡åŠ›" name="FlexGravity" /> 516 <spinner label="é‡åŠ›" name="FlexGravity" />
384 <spinner label="拖至" name="FlexFriction" /> 517 <spinner label="阻力" name="FlexFriction" />
385 <spinner label="风格" name="FlexWind" /> 518 <spinner label="风力" name="FlexWind" />
386 <spinner label="紧张" name="FlexTension" /> 519 <spinner label="应力" name="FlexTension" />
387 <spinner label="Xæ–¹å‘施力" name="FlexForceX" /> 520 <spinner label="Xæ–¹å‘施力" name="FlexForceX" />
388 <spinner label="Yæ–¹å‘施力" name="FlexForceY" /> 521 <spinner label="Yæ–¹å‘施力" name="FlexForceY" />
389 <spinner label="Zæ–¹å‘施力" name="FlexForceZ" /> 522 <spinner label="Zæ–¹å‘施力" name="FlexForceZ" />
390 <check_box label="光线" name="Light Checkbox Ctrl" tool_tip="使东东å‘射出光线" /> 523
524 <check_box label="å…‰æº" name="Light Checkbox Ctrl" tool_tip="使物体å‘射出光线" />
391 <text name="label color"> 525 <text name="label color">
392 颜色 526 颜色
393 </text> 527 </text>
394 <color_swatch label="" name="colorswatch" tool_tip="点击这里æ¥æ‰“开色彩选择器" /> 528 <color_swatch label="" name="colorswatch" tool_tip="点击这里æ¥æ‰“开色彩选择器" />
395 <spinner label="强烈" name="Light Intensity" /> 529 <spinner label="强度" name="Light Intensity" />
396 <spinner label="åŠå¾„" name="Light Radius" /> 530 <spinner label="åŠå¾„" name="Light Radius" />
397 <spinner label="下é™" name="Light Falloff" /> 531 <spinner label="è¡°å‡" name="Light Falloff" />
398 </panel> 532 </panel>
533
399 <panel label="æè´¨" name="Texture"> 534 <panel label="æè´¨" name="Texture">
400 <texture_picker label="æè´¨" name="texture control" tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" /> 535 <texture_picker label="æè´¨" name="texture control"
536 tool_tip="点击这里æ¥é€‰æ‹©å›¾ç‰‡" />
401 <color_swatch label="颜色" name="colorswatch" 537 <color_swatch label="颜色" name="colorswatch"
402 tool_tip="点击这里æ¥æ‰“开色彩选择器" /> 538 tool_tip="打开色彩选择器" />
403 <text name="color trans"> 539 <text name="color trans">
404 é€æ˜Žåº¦ % 540 é€æ˜Žåº¦ %
405 </text> 541 </text>
406 <check_box label="最亮状æ€" name="checkbox fullbright" /> 542 <check_box label="最亮状æ€" name="checkbox fullbright" />
407 <text name="tex gen"> 543 <text name="tex gen">
408 绘制地图 544 æ质映å°
409 </text> 545 </text>
410 <combo_box name="combobox texgen"> 546 <combo_box name="combobox texgen">
411 <combo_item name="Default"> 547 <combo_item name="Default">
412 默认 548 默认
413 </combo_item> 549 </combo_item>
414 <combo_item name="Planar"> 550 <combo_item name="Planar">
415 å¹³å¦çš„ 551 å¹³é¢
416 </combo_item> 552 </combo_item>
417 </combo_box> 553 </combo_box>
418 <text name="label shininess"> 554 <text name="label shininess">
419 亮度 555 光泽
420 </text> 556 </text>
421 <combo_box name="combobox shininess"> 557 <combo_box name="combobox shininess">
422 <combo_item name="None"> 558 <combo_item name="None">
423 éƒ½ä¸ 559 æ— 
424 </combo_item> 560 </combo_item>
425 <combo_item name="Low"> 561 <combo_item name="Low">
426 低 562 低
427 </combo_item> 563 </combo_item>
428 <combo_item name="Medium"> 564 <combo_item name="Medium">
429 中型的 565 中
430 </combo_item> 566 </combo_item>
431 <combo_item name="High"> 567 <combo_item name="High">
432 高 568 高
433 </combo_item> 569 </combo_item>
434 </combo_box> 570 </combo_box>
435 <text name="label bumpiness"> 571 <text name="label bumpiness">
436 å´Žå²–ä¸å¹³çš„ 572 凹å¸
437 </text> 573 </text>
438 <combo_box name="combobox bumpiness"> 574 <combo_box name="combobox bumpiness">
439 <combo_item name="None"> 575 <combo_item name="None">
440 éƒ½ä¸ 576 æ— 
441 </combo_item> 577 </combo_item>
442 <combo_item name="Brightness"> 578 <combo_item name="Brightness">
443 亮度 579 亮度
@@ -485,50 +621,55 @@
485 石ç°æ³¥ 621 石ç°æ³¥
486 </combo_item> 622 </combo_item>
487 <combo_item name="suction"> 623 <combo_item name="suction">
488 å¸åŠ 624 å¸ç˜
489 </combo_item> 625 </combo_item>
490 <combo_item name="weave"> 626 <combo_item name="weave">
491 编织 627 编织
492 </combo_item> 628 </combo_item>
493 </combo_box> 629 </combo_box>
494 <text name="tex scale"> 630 <text name="tex scale">
495 一张脸一张脸的é‡å¤ 631 æ¯é¢é‡å¤æ¬¡æ•°
496 </text> 632 </text>
497 <spinner label="地平线(U)" name="TexScaleU" /> 633 <spinner label="水平(U)" name="TexScaleU" />
498 <check_box label="弹跳" name="checkbox flip s" /> 634 <check_box label="翻转" name="checkbox flip s" />
499 <spinner label="åž‚ç›´çš„ (V)" name="TexScaleV" /> 635 <spinner label="åž‚ç›´ (V)" name="TexScaleV" />
500 <check_box label="弹跳" name="checkbox flip t" /> 636 <check_box label="翻转" name="checkbox flip t" />
501 <text name="tex rotate"> 637 <text name="tex rotate">
502 旋转 (角度) 638 旋转 (度)
503 </text> 639 </text>
504 <text name="string repeats per meter"> 640 <text
505 一米一米的é‡å¤ 641 name="string repeats per meter">
642 æ¯ç±³é‡å¤æ¬¡æ•°
506 </text> 643 </text>
507 <text name="string repeats per face"> 644 <text
508 一张脸一张脸的é‡å¤ 645 name="string repeats per face">
646 æ¯é¢é‡å¤æ¬¡æ•°
509 </text> 647 </text>
510 <text name="rpt"> 648 <text
511 一米一米的é‡å¤ 649 name="rpt">
650 æ¯ç±³é‡å¤æ¬¡æ•°
512 </text> 651 </text>
652
513 <button label="应用" label_selected="应用" name="button apply" /> 653 <button label="应用" label_selected="应用" name="button apply" />
514 <text name="tex offset"> 654 <text name="tex offset">
515 跳出 655 ä½ç§»
516 </text> 656 </text>
517 <spinner label="地平线(U)" name="TexOffsetU" /> 657 <spinner label="水平(U)" name="TexOffsetU" />
518 <spinner label="åž‚ç›´çš„ (V)" name="TexOffsetV" /> 658 <spinner label="åž‚ç›´(V)" name="TexOffsetV" />
519 <text name="textbox autofix"> 659 <text name="textbox autofix">
520 æŽ’åˆ—åª’ä½“èµ„æº 660 对é½åª’体æè´¨
521(必须首先上传) 661(必须首先上传)
522 </text> 662 </text>
523 <button label="排列æˆè¡Œ" label_selected="排列æˆè¡Œ" name="button align" /> 663 <button label="对é½" label_selected="对é½" name="button align" />
524 </panel> 664 </panel>
525 <panel label="内容" name="Contents"> 665 <panel label="内容" name="Contents">
526 <button label="新脚本..." label_selected="新脚本..." name="button new script" /> 666 <button label="新脚本..." label_selected="新脚本..." name="button new script" />
527 </panel> 667 </panel>
528 </tab_container> 668 </tab_container>
669 <!-- Land Info sub-tab -->
529 <panel name="land info panel"> 670 <panel name="land info panel">
530 <text name="label_area_price"> 671 <text name="label_area_price">
531 ä»·æ ¼: L$[PRICE]å…± [AREA]平方米. 672 ä»·æ ¼: L$[PRICE] æ¯ [AREA]平方米.
532 </text> 673 </text>
533 <text name="label_area"> 674 <text name="label_area">
534 é¢ç§¯: [AREA] 平方米. 675 é¢ç§¯: [AREA] 平方米.
@@ -542,4 +683,18 @@
542 <button label="关于土地..." label_selected="关于土地..." 683 <button label="关于土地..." label_selected="关于土地..."
543 name="button about land" /> 684 name="button about land" />
544 </panel> 685 </panel>
686 <text name="status_rotate">拖动彩带æ¥æ—‹è½¬ç‰©ä½“</text>
687 <text name="status_scale">点击并拖动æ¥æ‹‰ä¼¸é€‰ä¸­é¢</text>
688 <text name="status_move">拖动æ¥ç§»åŠ¨ç‰©ä½“ï¼ŒæŒ‰ä½ Shift 拖动æ¥å¤åˆ¶</text>
689 <text name="status_modifyland">点击并拖动以修改土地</text>
690 <text name="status_camera">点击并拖动æ¥æ›´æ”¹è§†è§’</text>
691 <text name="status_grab">æ‹–åŠ¨ä»¥ç§»åŠ¨ï¼ŒæŒ‰ä½ Ctrl 抬起,Ctrl+Shift 旋转</text>
692 <text name="status_place">åœ¨ä¸–ç•Œä¸­ç‚¹å‡»ä»¥åˆ›å»ºï¼ŒæŒ‰ç€ Shift 点击æ¥é€‰æ‹©</text>
693 <text name="status_selectland">点击并拖动以选择土地</text>
694 <text name="grid_screen_text">å±å¹•</text>
695 <text name="grid_local_text">本地</text>
696 <text name="grid_world_text">世界</text>
697 <text name="grid_reference_text">å‚考物</text>
698 <text name="grid_attachment_text">附件</text>
545</floater> 699</floater>
700<!-- Translated for Second Life 1.19.0 (80267) -->
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_top_objects.xml b/linden/indra/newview/skins/default/xui/zh/floater_top_objects.xml
index ad333a3..4230e0d 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_top_objects.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_top_objects.xml
@@ -4,47 +4,47 @@
4 请等待... 4 请等待...
5 </text> 5 </text>
6 <scroll_list name="objects_list"> 6 <scroll_list name="objects_list">
7 <column label="Score" name="score" /> 7 <column label="得分" name="score" />
8 <column label="Name" name="name" /> 8 <column label="å称" name="name" />
9 <column label="Owner" name="owner" /> 9 <column label="拥有者" name="owner" />
10 <column label="Location" name="location" /> 10 <column label="ä½ç½®" name="location" />
11 </scroll_list> 11 </scroll_list>
12 <text name="id_text"> 12 <text name="id_text">
13 东东ID: 13 物体 ID:
14 </text> 14 </text>
15 <button label="显示ç¯ç«" name="show_beacon_btn" /> 15 <button label="显示信标" name="show_beacon_btn" />
16 <text name="obj_name_text"> 16 <text name="obj_name_text">
17 东东å称: 17 物体å称:
18 </text> 18 </text>
19 <button label="过滤" name="filter_object_btn" /> 19 <button label="过滤" name="filter_object_btn" />
20 <text name="owner_name_text"> 20 <text name="owner_name_text">
21 主人的姓å: 21 主人姓å:
22 </text> 22 </text>
23 <button label="过滤" name="filter_owner_btn" /> 23 <button label="过滤" name="filter_owner_btn" />
24 <button label="归还已选东东" name="return_selected_btn" /> 24 <button label="归还所选项" name="return_selected_btn" />
25 <button label="全部归还" name="return_all_btn" /> 25 <button label="全部归还" name="return_all_btn" />
26 <button label="无效选择" name="disable_selected_btn" /> 26 <button label="ç¦ç”¨æ‰€é€‰é¡¹" name="disable_selected_btn" />
27 <button label="全部无效" name="disable_all_btn" /> 27 <button label="全部ç¦ç”¨" name="disable_all_btn" />
28 <button label="更新" name="refresh_btn" /> 28 <button label="刷新" name="refresh_btn" />
29 <text name="top_scripts_title"> 29 <text name="top_scripts_title">
30 首è¦è„šæœ¬ 30 首è¦è„šæœ¬
31 </text> 31 </text>
32 <text name="top_scripts_text"> 32 <text name="top_scripts_text">
33 [COUNT]脚本å æ®äº†æ€»æ—¶é—´ä¸º[TIME]毫秒 33 [COUNT] 个脚本共å ç”¨ [TIME] 毫秒
34 </text> 34 </text>
35 <text name="scripts_score_label"> 35 <text name="scripts_score_label">
36 时间 36 时间
37 </text> 37 </text>
38 <text name="top_colliders_title"> 38 <text name="top_colliders_title">
39 首è¦å†²å‡»æº 39 首è¦ç¢°æ’žæº
40 </text> 40 </text>
41 <text name="top_colliders_text"> 41 <text name="top_colliders_text">
42 首è¦[COUNT]çš„ä¸œä¸œå­˜åœ¨å¾ˆå¤šæ½œåœ¨çš„å†²çª 42 é¦–è¦ [COUNT] 个物体存在很多潜在的冲çª
43 </text> 43 </text>
44 <text name="colliders_score_label"> 44 <text name="colliders_score_label">
45 得分 45 得分
46 </text> 46 </text>
47 <text name="none_descriptor"> 47 <text name="none_descriptor">
48 没æœæ‰¾åˆ°ä»»ä½•ç›®æ ‡ 48 什么也没找到
49 </text> 49 </text>
50</floater> 50</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_tos.xml b/linden/indra/newview/skins/default/xui/zh/floater_tos.xml
index 6395465..ed16075 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_tos.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_tos.xml
@@ -2,25 +2,16 @@
2<floater name="modal container" title=" "> 2<floater name="modal container" title=" ">
3 <button label="继续" label_selected="继续" name="Continue" /> 3 <button label="继续" label_selected="继续" name="Continue" />
4 <button label="å–消" label_selected="å–消" name="Cancel" /> 4 <button label="å–消" label_selected="å–消" name="Cancel" />
5 <radio_group name="tos_agreement"> 5 <check_box
6 <radio_item name="radio_disagree"> 6 label="我接å—æœåŠ¡æ¡æ¬¾ã€‚"
7 I Disagree with the Terms of Service 7 name="agree_chk" />
8 </radio_item>
9 <radio_item name="radio_agree">
10 I Agree to the Terms of Service
11 </radio_item>
12 </radio_group>
13 <text name="tos_title"> 8 <text name="tos_title">
14 æœåŠ¡æ¡æ¬¾åˆåŒ 9 æœåŠ¡æ¡æ¬¾åè®®
15 </text> 10 </text>
16 <text name="tos_heading"> 11 <text name="tos_heading">
17 登陆第二人生å‰è¯·ä»”细阅读下列æœåŠ¡æ¡æ¬¾ã€‚继续登录到第二人生, 12 登陆第二人生å‰è¯·ä»”细阅读下列æœåŠ¡æ¡æ¬¾ã€‚è¦ç»§ç»­ç™»å½•åˆ°ç¬¬äºŒäººç”Ÿï¼Œ
18你必须接å—该åˆåŒã€‚ 13您必须接å—该å议。
19 </text>
20 <text_editor name="tos_text">
21 TOS_TEXT
22 </text_editor>
23 <text name="real_url">
24 http://secondlife.com/app/tos/
25 </text> 14 </text>
15 <web_browser name="tos_html"/>
16
26</floater> 17</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_url_entry.xml b/linden/indra/newview/skins/default/xui/zh/floater_url_entry.xml
new file mode 100644
index 0000000..4e3bcc4
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_url_entry.xml
@@ -0,0 +1,27 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 name="url_entry"
4 title="">
5 <text
6 name="media_label">
7 媒体 URL:
8 </text>
9 <combo_box
10 allow_text_entry="true"
11 name="media_entry" />
12 <button
13 label="确定"
14 name="ok_btn" />
15 <button
16 label="å–消"
17 name="cancel_btn" />
18 <button
19 label="清除"
20 name="clear_btn" />
21 <text
22 name="loading_label"
23 visible="false">
24 请ç¨å€™...
25 </text>
26</floater>
27
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_voice_wizard.xml b/linden/indra/newview/skins/default/xui/zh/floater_voice_wizard.xml
new file mode 100644
index 0000000..6b6df68
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_voice_wizard.xml
@@ -0,0 +1,44 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 can_resize="false"
4 can_minimize="true"
5 name="floater_voice_wizard"
6 title="语音设置">
7 <tab_container
8 name="wizard_tabs"
9 hide_tabs="true"
10 top="-20"
11 right="-2"
12 tab_position="bottom">
13 <panel
14 filename="panel_voice_enable.xml"
15 right="0" />
16 <panel
17 filename="panel_voice_options.xml"
18 right="0" />
19 <panel
20 name="device_settings"
21 filename="panel_audio_device.xml"
22 right="0" />
23 </tab_container>
24 <panel
25 name="content_panel">
26 <!--<button
27 label="Help"
28 name="help_btn" />-->
29 <button
30 label="返回"
31 name="back_btn" />
32 <button
33 label="继续"
34 name="next_btn" />
35 <button
36 label="完æˆ"
37 name="ok_btn" />
38 <button
39 label="å–消"
40 name="cancel_btn" />
41 </panel>
42</floater>
43
44
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_water.xml b/linden/indra/newview/skins/default/xui/zh/floater_water.xml
new file mode 100644
index 0000000..fef29f7
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_water.xml
@@ -0,0 +1,185 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 min_height="200"
4 min_width="400"
5 name="Water Floater"
6 title="Advanced Water Editor">
7 <text
8 name="KeyFramePresetsText">
9 水预设:
10 </text>
11 <combo_box
12 allow_text_entry="false"
13 max_chars="20"
14 name="WaterPresetsCombo" />
15 <button
16 label="新建"
17 label_selected="新建"
18 name="WaterNewPreset" />
19 <button
20 label="ä¿å­˜"
21 label_selected="ä¿å­˜"
22 name="WaterSavePreset" />
23 <button
24 label="删除"
25 label_selected="Delete"
26 name="WaterDeletePreset" />
27 <tab_container
28 name="Water Tabs"
29 tab_position="top">
30 <panel
31 label="设置"
32 name="Settings">
33 <text
34 name="BHText">
35 水雾颜色
36 </text>
37 <button
38 label="?"
39 name="WaterFogColorHelp" />
40 <color_swatch
41 label=""
42 name="WaterFogColor"
43 tool_tip="点击打开颜色选择器" />
44 <text
45 name="WaterFogDensText">
46 水雾浓度指数
47 </text>
48 <button
49 label="?"
50 name="WaterFogDensityHelp" />
51 <slider
52 label=""
53 name="WaterFogDensity"
54 value="1.0" />
55 <text
56 name="WaterUnderWaterFogModText">
57 水下雾浓度修正
58 </text>
59 <text
60 name="BDensText">
61 åå°„å°æ³¢å¤§å°
62 </text>
63 <text
64 name="HDText">
65 è²æ¶…尔尺度
66 </text>
67 <button
68 label="?"
69 name="WaterFresnelScaleHelp" />
70 <slider
71 label=""
72 name="WaterFresnelScale"
73 value="1.0" />
74 <text
75 name="FresnelOffsetText">
76 è²æ¶…å°”å移
77 </text>
78 <button
79 label="?"
80 name="WaterFresnelOffsetHelp" />
81 <slider
82 label=""
83 name="WaterFresnelOffset"
84 value="1.0" />
85 <text
86 name="DensMultText">
87 水上折射é‡
88 </text>
89 <button
90 label="?"
91 name="WaterScaleAboveHelp" />
92 <slider
93 label=""
94 name="WaterScaleAbove"
95 value="1.0" />
96 <text
97 name="WaterScaleBelowText">
98 水下折射é‡
99 </text>
100 <button
101 label="?"
102 name="WaterScaleBelowHelp" />
103 <slider
104 label=""
105 name="WaterScaleBelow"
106 value="0.0" />
107 <text
108 name="MaxAltText">
109 模糊因数
110 </text>
111 <button
112 label="?"
113 name="WaterBlurMultiplierHelp" />
114 <slider
115 label=""
116 name="WaterBlurMult"
117 value="0" />
118 </panel>
119 <panel
120 label="图åƒ"
121 name="Waves">
122 <text
123 name="BHText">
124 大波方å‘
125 </text>
126 <button
127 label="?"
128 name="WaterWave1Help" />
129 <text
130 name="WaterWave1DirXText">
131 X
132 </text>
133 <text
134 name="WaterWave1DirYText">
135 Y
136 </text>
137 <slider
138 label=""
139 name="WaterWave1DirX"
140 value="0.7" />
141 <slider
142 label=""
143 name="WaterWave1DirY"
144 value="0.7" />
145 <text
146 name="BHText2">
147 å°æ³¢æ–¹å‘
148 </text>
149 <button
150 label="?"
151 name="WaterWave2Help" />
152 <text
153 name="WaterWave2DirXText">
154 X
155 </text>
156 <text
157 name="WaterWave2DirYText">
158 Y
159 </text>
160 <slider
161 label=""
162 name="WaterWave2DirX"
163 value="0.7" />
164 <slider
165 label=""
166 name="WaterWave2DirY"
167 value="0.7" />
168 <text
169 name="BHText3">
170 法å‘图
171 </text>
172 <button
173 label="?"
174 name="WaterNormalMapHelp" />
175 <texture_picker
176 label=""
177 name="WaterNormalMap" />
178 </panel>
179 </tab_container>
180 <string
181 name="WLDefaultWaterNames">
182 Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
183 </string>
184</floater>
185
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_wearable_save_as.xml b/linden/indra/newview/skins/default/xui/zh/floater_wearable_save_as.xml
index 11db09a..8c8769b 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_wearable_save_as.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_wearable_save_as.xml
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="modal container" title=" "> 2<floater name="modal container" title=" ">
3 <button label="存储" label_selected="存储" name="Save" /> 3 <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save" />
4 <button label="å–消" label_selected="å–消" name="Cancel" /> 4 <button label="å–消" label_selected="å–消" name="Cancel" />
5 <text type="string" length="1" name="Save item as:"> 5 <text type="string" length="1" name="Save item as:">
6 å¦å­˜ç‰©å“为: 6 å¦å­˜ç‰©å“为:
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_windlight_options.xml b/linden/indra/newview/skins/default/xui/zh/floater_windlight_options.xml
new file mode 100644
index 0000000..69e3eb7
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/floater_windlight_options.xml
@@ -0,0 +1,327 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater
3 min_height="180"
4 min_width="400"
5 name="WindLight floater"
6 title="高级天空编辑器">
7 <text
8 name="KeyFramePresetsText">
9 天空预设:
10 </text>
11
12 <button
13 label="新建"
14 label_selected="新建"
15 name="WLNewPreset" />
16 <button
17 label="ä¿å­˜"
18 label_selected="ä¿å­˜"
19 name="WLSavePreset" />
20 <button
21 label="删除"
22 label_selected="删除"
23 name="WLDeletePreset" />
24 <button
25 label="日夜循环编辑器"
26 label_selected="日夜循环编辑器"
27 name="WLDayCycleMenuButton" />
28 <tab_container
29 name="WindLight Tabs"
30 tab_position="top">
31 <panel
32 label="大气"
33 name="Atmosphere">
34 <text
35 name="BHText">
36 è“色地平
37 </text>
38 <button
39 label="?"
40 name="WLBlueHorizonHelp" />
41 <text
42 name="BHText2" width="14">
43 红
44 </text>
45 <text
46 name="BHText3" width="14">
47 绿
48 </text>
49 <text
50 name="BHText4" width="14">
51 è“
52 </text>
53 <text
54 name="BHText5" width="14">
55 亮
56 </text>
57 <text
58 name="BDensText">
59 云雾地平
60 </text>
61 <button
62 label="?"
63 name="WLHazeHorizonHelp" />
64 <text
65 name="BDensText2">
66 è“色浓度
67 </text>
68 <button
69 label="?"
70 name="WLBlueDensityHelp" />
71 <text
72 name="BHText6" width="14">
73 红
74 </text>
75 <text
76 name="BHText7" width="14">
77 绿
78 </text>
79 <text
80 name="BHText8" width="14">
81 è“
82 </text>
83 <text
84 name="BHText9" width="14">
85 亮
86 </text>
87 <text
88 name="HDText">
89 云雾浓度
90 </text>
91 <button
92 label="?"
93 name="WLHazeDensityHelp" />
94 <text
95 name="DensMultText">
96 浓度乘数
97 </text>
98 <button
99 label="?"
100 name="WLDensityMultHelp" />
101 <slider
102 label=""
103 name="WLDensityMult"
104 value="1.0" />
105 <text
106 name="WLDistanceMultText">
107 è·ç¦»ä¹˜æ•°
108 </text>
109 <button
110 label="?"
111 name="WLDistanceMultHelp" />
112 <slider
113 label=""
114 name="WLDistanceMult"
115 value="0.0" />
116 <text
117 name="MaxAltText">
118 最大高度
119 </text>
120 <button
121 label="?"
122 name="WLMaxAltitudeHelp" />
123 <slider
124 label=""
125 name="WLMaxAltitude"
126 value="4000" />
127 </panel>
128 <panel
129 label="光照"
130 name="Lighting">
131 <text
132 name="SLCText">
133 日月颜色
134 </text>
135 <button
136 label="?"
137 name="WLSunlightColorHelp" />
138 <text
139 name="BHText" width="14">
140 红
141 </text>
142 <text
143 name="BHText2" width="14">
144 绿
145 </text>
146 <text
147 name="BHText3" width="14">
148 è“
149 </text>
150 <text
151 name="BHText4" width="14">
152 亮
153 </text>
154 <text
155 name="TODText">
156 日月ä½ç½®
157 </text>
158 <text
159 name="WLAmbientText">
160 环境
161 </text>
162 <button
163 label="?"
164 name="WLAmbientHelp" />
165 <text
166 name="BHText5" width="14">
167 红
168 </text>
169 <text
170 name="BHText6" width="14">
171 绿
172 </text>
173 <text
174 name="BHText7" width="14">
175 è“
176 </text>
177 <text
178 name="BHText8" width="14">
179 亮
180 </text>
181 <text
182 name="WLEastAngleText">
183 东å‘角度
184 </text>
185 <text
186 name="SunGlowText">
187 太阳辉光
188 </text>
189 <slider
190 label="èšç„¦"
191 name="WLGlowB"
192 value="1.0" />
193 <slider
194 label="尺寸"
195 name="WLGlowR"
196 value="1.0" />
197 <text
198 name="SceneGammaText">
199 场景γ
200 </text>
201 <button
202 label="?"
203 name="WLSceneGammaHelp" />
204 <slider
205 label=""
206 name="WLGamma"
207 value="2.0" />
208 <text
209 name="WLStarText">
210 星空亮度
211 </text>
212 </panel>
213 <panel
214 label="云层"
215 name="Clouds">
216 <text
217 name="WLCloudColorText">
218 云层颜色
219 </text>
220 <button
221 label="?"
222 name="WLCloudColorHelp" />
223 <text
224 name="BHText" width="14">
225 红
226 </text>
227 <text
228 name="BHText2" width="14">
229 绿
230 </text>
231 <text
232 name="BHText3" width="14">
233 è“
234 </text>
235 <text
236 name="BHText4" width="14">
237 亮
238 </text>
239 <text
240 name="WLCloudColorText2">
241 云层 XY/密度
242 </text>
243 <text
244 name="BHText5">
245 X
246 </text>
247 <text
248 name="BHText6">
249 Y
250 </text>
251 <text
252 name="BHText7">
253 D
254 </text>
255 <text
256 name="WLCloudCoverageText">
257 云层覆盖
258 </text>
259 <text
260 name="WLCloudScaleText">
261 云层尺寸
262 </text>
263 <text
264 name="WLCloudDetailText">
265 云层细节 (XY/密度)
266 </text>
267 <button
268 label="?"
269 name="WLCloudDetailHelp" />
270 <text
271 name="BHText8">
272 X
273 </text>
274 <text
275 name="BHText9">
276 Y
277 </text>
278 <text
279 name="BHText10">
280 D
281 </text>
282 <slider
283 label=""
284 name="WLCloudDetailX"
285 value="0.5" />
286 <slider
287 label=""
288 name="WLCloudDetailY"
289 value="0.5" />
290 <slider
291 label=""
292 name="WLCloudDetailDensity"
293 value="1.0" />
294 <text
295 name="WLCloudScrollXText">
296 å·åŠ¨ X
297 </text>
298 <button
299 label="?"
300 name="WLCloudScrollXHelp" />
301 <check_box
302 initial_value="false"
303 label="Lock"
304 name="WLCloudLockX" />
305 <slider
306 label=""
307 name="WLCloudScrollX"
308 value="0.0" />
309 <text
310 name="WLCloudScrollYText">
311 å·åŠ¨ Y
312 </text>
313 <check_box
314 initial_value="false"
315 label="渲染旧云层"
316 name="DrawClassicClouds" />
317 <button
318 label="?"
319 name="WLClassicCloudsHelp" />
320 </panel>
321 </tab_container>
322 <string
323 name="WLDefaultSkyNames">
324 A-12AM:A-12PM:A-3AM:A-3PM:A-4.30PM:A-6AM:A-6PM:A-9AM:A-9PM:Barcelona:Blizzard:Blue Midday:Coastal Afternoon:Coastal Sunset:Default:Desert Sunset:Fine Day:Fluffy Big Clouds:Foggy:Funky Funky:Funky Funky Funky:Gelatto:Ghost:Incongruent Truths:Midday 1:Midday 2:Midday 3:Midday 4:Night:Pirate:Purple:Sailor's Delight:Sheer Sensuality
325 </string>
326</floater>
327
diff --git a/linden/indra/newview/skins/default/xui/zh/floater_world_map.xml b/linden/indra/newview/skins/default/xui/zh/floater_world_map.xml
index 2e177e1..aa9e9a7 100644
--- a/linden/indra/newview/skins/default/xui/zh/floater_world_map.xml
+++ b/linden/indra/newview/skins/default/xui/zh/floater_world_map.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="worldmap" title="全部地图"> 2<floater name="worldmap" title="世界地图">
3 <tab_container name="maptab"> 3 <tab_container name="maptab">
4 <panel label="东东" name="objects_mapview" /> 4 <panel label="物体" name="objects_mapview" />
5 <panel label="地形" name="terrain_mapview" /> 5 <panel label="地形" name="terrain_mapview" />
6 </tab_container> 6 </tab_container>
7 <text name="land_for_sale_label"> 7 <text name="land_for_sale_label">
@@ -11,15 +11,15 @@
11 æ‹å– 11 æ‹å–
12 </text> 12 </text>
13 <text name="you_label"> 13 <text name="you_label">
14 你 14 您
15 </text> 15 </text>
16 <text name="home_label"> 16 <text name="home_label">
17 家 17 家
18 </text> 18 </text>
19 <button label="回家" label_selected="回家" name="Go Home" 19 <button label="回家" label_selected="回家" name="Go Home"
20 tool_tip="å°ä½ çš„房å±é—ªç”µä¼ è¿" /> 20 tool_tip="瞬间移动到你的起始ä½ç½®" />
21 <text name="classifieds_label"> 21 <text name="classifieds_label">
22 分类目录 22 分类广告
23 </text> 23 </text>
24 <check_box label=" " name="class_chk" /> 24 <check_box label=" " name="class_chk" />
25 <text name="person_label"> 25 <text name="person_label">
@@ -27,11 +27,11 @@
27 </text> 27 </text>
28 <check_box label=" " name="people_chk" /> 28 <check_box label=" " name="people_chk" />
29 <text name="infohub_label"> 29 <text name="infohub_label">
30 消æ¯ä¸­å¿ƒ 30 ä¿¡æ¯ä¸­å¿ƒ
31 </text> 31 </text>
32 <check_box label=" " name="infohub_chk" /> 32 <check_box label=" " name="infohub_chk" />
33 <text name="telehub_label"> 33 <text name="telehub_label">
34 闪电传é€é›†åˆåœ° 34 瞬移枢纽
35 </text> 35 </text>
36 <check_box label=" " name="telehubchk" /> 36 <check_box label=" " name="telehubchk" />
37 <text name="popular_label"> 37 <text name="popular_label">
@@ -43,19 +43,19 @@
43 </text> 43 </text>
44 <check_box label=" " name="land_for_sale_chk" /> 44 <check_box label=" " name="land_for_sale_chk" />
45 <text name="events_label"> 45 <text name="events_label">
46 事件或活动 46 事件
47 </text> 47 </text>
48 <check_box label=" " name="event_chk" /> 48 <check_box label=" " name="event_chk" />
49 <text name="events_mature_label"> 49 <text name="events_mature_label">
50 事件(M) 50 事件(æˆäºº)
51 </text> 51 </text>
52 <check_box label=" " name="event_mature_chk" /> 52 <check_box label=" " name="event_mature_chk" />
53 <combo_box label="我的æœå‹" name="friend combo" tool_tip="Friend to Show on Map"> 53 <combo_box label="在线好å‹" name="friend combo" tool_tip="è¦åœ¨åœ°å›¾ä¸Šæ˜¾ç¤ºçš„好å‹">
54 <combo_item name="none_selected"> 54 <combo_item name="none_selected">
55 我的æœå‹ 55 在线好å
56 </combo_item> 56 </combo_item>
57 </combo_box> 57 </combo_box>
58 <combo_box label="我的地标" name="landmark combo" tool_tip="Landmark to Show on Map"> 58 <combo_box label="我的地标" name="landmark combo" tool_tip="è¦åœ¨åœ°å›¾ä¸Šæ˜¾ç¤ºçš„地标">
59 <combo_item name="none_selected"> 59 <combo_item name="none_selected">
60 我的地标 60 我的地标
61 </combo_item> 61 </combo_item>
@@ -63,7 +63,7 @@
63 <line_editor name="location" tool_tip="键入地区的å称"> 63 <line_editor name="location" tool_tip="键入地区的å称">
64 按地区åæœç´¢ 64 按地区åæœç´¢
65 </line_editor> 65 </line_editor>
66 <button label="æœç´¢" label_selected="&gt;" name="DoSearch" tool_tip="寻找地域" /> 66 <button label="æœç´¢" label_selected="&gt;" name="DoSearch" tool_tip="寻找地区" />
67 <text name="search_label"> 67 <text name="search_label">
68 查询结果: 68 查询结果:
69 </text> 69 </text>
@@ -74,17 +74,21 @@
74 <text name="location_label"> 74 <text name="location_label">
75 ä½ç½®: 75 ä½ç½®:
76 </text> 76 </text>
77 <spinner name="spin x" tool_tip="地点的Xå标在地图中显示å¯è§ã€‚" /> 77 <spinner name="spin x" tool_tip="地图中显示地ç¹çš„Xåæ ‡" />
78 <spinner name="spin y" tool_tip="地点的Yå标在地图中显示å¯è§ã€‚" /> 78 <spinner name="spin y" tool_tip="地图中显示地ç¹çš„Yåæ ‡" />
79 <spinner name="spin z" tool_tip="地点的Zå标在地图中显示å¯è§ã€‚" /> 79 <spinner name="spin z" tool_tip="地图中显示地ç¹çš„Zåæ ‡" />
80 <button label="闪电传é€" label_selected="闪电传é€" name="Teleport" 80 <button label="瞬间移动" label_selected="瞬间移动" name="Teleport"
81 tool_tip="闪电传输到指定地点" /> 81 tool_tip="瞬间移动到指定地点" />
82 <button label="显示目的地" label_selected="显示目的地" 82 <button label="显示目的地" label_selected="显示目的地"
83 name="Show Destination" tool_tip="所选地区的中心地图。" /> 83 name="Show Destination" tool_tip="居中显示指定地ç¹" />
84 <button label="清除" label_selected="清除" name="Clear" 84 <button label="清除" label_selected="清除" name="Clear"
85 tool_tip="åœæ­¢è¿½è¸ª/跟踪" /> 85 tool_tip="åœæ­¢è¿½è¸ª/跟踪" />
86 <button label="显示我的ä½ç½®" label_selected="显示我的ä½ç½®" 86 <button label="显示我的ä½ç½®" label_selected="显示我的ä½ç½®"
87 name="Show My Location" 87 name="Show My Location"
88 tool_tip="你的化身所在地区的中心地图。" /> 88 tool_tip="居中显示你的化身的ä½ç½®" />
89 <slider label="Zoom" name="zoom slider" /> 89 <button
90 label="å¤åˆ¶ SLURL 到剪贴æ¿"
91 name="copy_slurl"
92 tool_tip="将当å‰ä½ç½®å¤åˆ¶ä¸º SLURL 以供网上使用" />
93 <slider label="缩放" name="zoom slider" />
90</floater> 94</floater>
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_inventory.xml b/linden/indra/newview/skins/default/xui/zh/menu_inventory.xml
index 254a793..e7edfab 100644
--- a/linden/indra/newview/skins/default/xui/zh/menu_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/zh/menu_inventory.xml
@@ -3,64 +3,71 @@
3 <menu_item_call label="è´­ä¹°" name="Task Buy" /> 3 <menu_item_call label="è´­ä¹°" name="Task Buy" />
4 <menu_item_call label="打开" name="Task Open" /> 4 <menu_item_call label="打开" name="Task Open" />
5 <menu_item_call label="播放" name="Task Play" /> 5 <menu_item_call label="播放" name="Task Play" />
6 <menu_item_call label="é“å…·" name="Task Properties" /> 6 <menu_item_call label="属性" name="Task Properties" />
7 <menu_item_call label="é‡å‘½å" name="Task Rename" /> 7 <menu_item_call label="é‡å‘½å" name="Task Rename" />
8 <menu_item_call label="删除" name="Task Remove" /> 8 <menu_item_call label="删除" name="Task Remove" />
9 <menu_item_call label="清空回收站" name="Empty Trash" /> 9 <menu_item_call label="清空回收站" name="Empty Trash" />
10 <menu_item_call label="新的文件夹" name="New Folder" /> 10 <menu_item_call
11 <menu_item_call label="新的脚本" name="New Script" /> 11 label="清空失物招领" name="Empty Lost And Found"/>
12 <menu_item_call label="新的通知" name="New Note" /> 12 <menu_item_call label="新建文件夹" name="New Folder" />
13 <menu_item_call label="新的姿势" name="New Gesture" /> 13 <menu_item_call label="新建脚本" name="New Script" />
14 <menu_item_call label="新建记事å¡" name="New Note" />
15 <menu_item_call label="新建动作" name="New Gesture" />
14 <menu name="New Clothes"> 16 <menu name="New Clothes">
15 <menu_item_call label="新的衬衫" name="New Shirt" /> 17 <menu_item_call label="新建衬衫" name="New Shirt" />
16 <menu_item_call label="新的裤å­" name="New Pants" /> 18 <menu_item_call label="新建裤å­" name="New Pants" />
17 <menu_item_call label="æ–°çš„éž‹å­" name="New Shoes" /> 19 <menu_item_call label="新建鞋å­" name="New Shoes" />
18 <menu_item_call label="新的袜å­" name="New Socks" /> 20 <menu_item_call label="新建袜å­" name="New Socks" />
19 <menu_item_call label="新的夹克" name="New Jacket" /> 21 <menu_item_call label="新建夹克" name="New Jacket" />
20 <menu_item_call label="新的短裙" name="New Skirt" /> 22 <menu_item_call label="新建短裙" name="New Skirt" />
21 <menu_item_call label="新的手套" name="New Gloves" /> 23 <menu_item_call label="新建手套" name="New Gloves" />
22 <menu_item_call label="新的内衣" name="New Undershirt" /> 24 <menu_item_call label="新建内衣" name="New Undershirt" />
23 <menu_item_call label="新的内裤" name="New Underpants" /> 25 <menu_item_call label="新建内裤" name="New Underpants" />
24 </menu> 26 </menu>
25 <menu name="New Body Parts"> 27 <menu name="New Body Parts">
26 <menu_item_call label="新的身æ" name="New Shape" /> 28 <menu_item_call label="新建体型" name="New Shape" />
27 <menu_item_call label="新的皮肤" name="New Skin" /> 29 <menu_item_call label="新建皮肤" name="New Skin" />
28 <menu_item_call label="新的头å‘" name="New Hair" /> 30 <menu_item_call label="新建头å‘" name="New Hair" />
29 <menu_item_call label="新的眼ç›" name="New Eyes" /> 31 <menu_item_call label="新建眼ç›" name="New Eyes" />
30 </menu> 32 </menu>
31 <menu_item_call label="打开" name="Landmark Open" /> 33 <menu_item_call label="瞬间移动" name="Landmark Open" />
32 <menu_item_call label="打开" name="Animation Open" /> 34 <menu_item_call label="打开" name="Animation Open" />
33 <menu_item_call label="打开" name="Sound Open" /> 35 <menu_item_call label="打开" name="Sound Open" />
34 <menu_item_call label="清空物åæ " name="Purge Item" /> 36 <menu_item_call label="清除物体" name="Purge Item" />
35 <menu_item_call label="é‡æ–°è®¾ç½®ç‰©åæ " name="Restore Item" /> 37 <menu_item_call label="æ¢å¤ç‰©ä½“" name="Restore Item" />
36 <menu_item_call label="打开" name="Open" /> 38 <menu_item_call label="打开" name="Open" />
37 <menu_item_call label="é“å…·" name="Properties" /> 39 <menu_item_call label="属性" name="Properties" />
38 <menu_item_call label="é‡å‘½å" name="Rename" /> 40 <menu_item_call label="é‡å‘½å" name="Rename" />
39 <menu_item_call label="å¤åˆ¶èµ„产UUID" name="Copy Asset UUID" /> 41 <menu_item_call label="å¤åˆ¶èµ„产UUID" name="Copy Asset UUID" />
40 <menu_item_call label="å¤åˆ¶" name="Copy" /> 42 <menu_item_call label="å¤åˆ¶" name="Copy" />
41 <menu_item_call label="粘贴" name="Paste" /> 43 <menu_item_call label="粘贴" name="Paste" />
42 <menu_item_call label="删除" name="Delete" /> 44 <menu_item_call label="删除" name="Delete" />
43 <menu_item_call label="添加至装备" name="Add To Outfit" /> 45 <menu_item_call label="添加至装æŸ" name="Add To Outfit" />
44 <menu_item_call label="替æ¢è£…备" name="Replace Outfit" /> 46 <menu_item_call label="替æ¢è£…æŸ" name="Replace Outfit" />
45 <menu_item_call label="æ›´æ¢ç‰©å“" name="Take Off Items" /> 47 <menu_item_call label="脱下物å“" name="Take Off Items" />
46 <menu_item_call label="IMçš„å†çŽ°è”系人è”系方å¼å­˜åœ¨æ–‡ä»¶å¤¹å†…" 48 <menu_item_call
49 label="开始会è¯"
50 name="Conference Chat Folder" />
51 <menu_item_call label="与文件夹内在线的è”系人å³æ—¶èŠå¤©"
47 name="IM Online Contacts In Folder" /> 52 name="IM Online Contacts In Folder" />
48 <menu_item_call label="IM的所有è”系方å¼å­˜åœ¨æ–‡ä»¶å¤¹å†…" 53 <menu_item_call label="与文件夹内所有è”系人å³æèŠå¤©"
49 name="IM All Contacts In Folder" /> 54 name="IM All Contacts In Folder" />
50 <menu_item_call label="播放" name="Sound Play" /> 55 <menu_item_call label="播放" name="Sound Play" />
51 <menu_item_call label="闪电传è¿è‡³åœ°æ ‡" name="Teleport To Landmark" /> 56 <menu_item_call
52 <menu_item_call label="在全世界播放" name="Animation Play" /> 57 label="关于地标"
58 name="Teleport To Landmark" />
59 <menu_item_call label="在世界中播放" name="Animation Play" />
53 <menu_item_call label="本地播放" name="Animation Audition" /> 60 <menu_item_call label="本地播放" name="Animation Audition" />
54 <menu_item_call label="å‘é€å³æ—¶æ¶ˆæ¯" name="Send Instant Message" /> 61 <menu_item_call label="å‘é€å³æ—¶æ¶ˆæ¯" name="Send Instant Message" />
55 <menu_item_call label="æ供闪电传é..." name="Offer Teleport..." /> 62 <menu_item_call label="邀请瞬间移动..." name="Offer Teleport..." />
56 <menu_item_call label="激活" name="Activate" /> 63 <menu_item_call label="激活" name="Activate" />
57 <menu_item_call label="解除激活" name="Deactivate" /> 64 <menu_item_call label="解除激活" name="Deactivate" />
58 <menu_item_call label="从自己分开" name="Detach From Yourself" /> 65 <menu_item_call label="从自己身上å¸ä¸‹" name="Detach From Yourself" />
59 <menu_item_call label="穿上" name="Object Wear" /> 66 <menu_item_call label="穿上" name="Object Wear" />
60 <menu label="粘贴至" name="Attach To" /> 67 <menu label="装备至" name="Attach To" />
61 <menu label="粘贴è³HUD" name="Attach To HUD" /> 68 <menu label="装å¤åˆ°HUD" name="Attach To HUD" />
62 <menu_item_call label="穿上" name="Wearable Wear" /> 69 <menu_item_call label="穿上" name="Wearable Wear" />
63 <menu_item_call label="编辑" name="Wearable Edit" /> 70 <menu_item_call label="编辑" name="Wearable Edit" />
64 <menu_item_call label="脱掉" name="Take Off" /> 71 <menu_item_call label="脱掉" name="Take Off" />
65 <menu_item_call label="--no options--" name="--no options--" /> 72 <menu_item_call label="--æ— å¯ç”¨é€‰é¡¹--" name="--no options--" />
66</menu> 73</menu>
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_login.xml b/linden/indra/newview/skins/default/xui/zh/menu_login.xml
new file mode 100644
index 0000000..a00ae90
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/menu_login.xml
@@ -0,0 +1,36 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<menu_bar
3 name="Login Menu">
4 <menu
5 label="文件"
6 name="File">
7 <menu_item_call
8 label="退出"
9 name="Quit">
10 <on_click />
11 </menu_item_call>
12 </menu>
13 <menu
14 label="编辑"
15 name="Edit">
16 <menu_item_call
17 label="首选项..."
18 name="Preferences...">
19 <on_click />
20 </menu_item_call>
21 </menu>
22 <menu
23 label="帮助"
24 name="Help">
25 <menu_item_call
26 label="第二人生帮助"
27 name="Second Life Help">
28 <on_click />
29 </menu_item_call>
30 <menu_item_call
31 label="关于第二人生..."
32 name="About Second Life...">
33 <on_click />
34 </menu_item_call>
35 </menu>
36</menu_bar> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml b/linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml
index df61372..174d69a 100644
--- a/linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml
+++ b/linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<pie_menu name="Attachment Pie"> 2<pie_menu name="Attachment Pie">
3 <menu_item_call label="下è½" name="Drop" /> 3 <menu_item_call label="丢下" name="Drop" />
4 <menu_item_call label="分开" name="Detach" /> 4 <menu_item_call label="å¸ä¸‹" name="Detach" />
5 <menu_item_call label="编辑" name="Edit" /> 5 <menu_item_call label="编辑" name="Edit" />
6</pie_menu> 6</pie_menu>
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml b/linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml
index e727656..9131180 100644
--- a/linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml
+++ b/linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml
@@ -2,14 +2,17 @@
2<pie_menu name="Avatar Pie"> 2<pie_menu name="Avatar Pie">
3 <menu_item_call label="档案..." name="Profile..." /> 3 <menu_item_call label="档案..." name="Profile..." />
4 <menu_item_call label="å±è”½" name="Avatar Mute" /> 4 <menu_item_call label="å±è”½" name="Avatar Mute" />
5 <!--TODO-->
5 <menu_item_call label="去往" name="Go To" /> 6 <menu_item_call label="去往" name="Go To" />
6 <menu_item_call label="添加朋å‹" name="Add Friend" /> 7 <menu_item_call label="添加好å..." name="Add Friend" />
7 <menu_item_call label="付款..." name="Pay..." /> 8 <menu_item_call label="付款..." name="Pay..." />
8 <pie_menu label="多于 &gt;" name="More &gt;"> 9 <pie_menu label="更多 &gt;" name="More &gt;">
9 <menu_item_call label="冻结..." name="Freeze..." /> 10 <menu_item_call label="冻结..." name="Freeze..." />
10 <menu_item_call label="èµ é€å¡ç‰‡" name="Give Card" /> 11 <menu_item_call label="赠与å片" name="Give Card" />
12 <menu_item_call label="社团邀请..." name="Invite..." />
11 <menu_item_call label="驱é€..." name="Eject..." /> 13 <menu_item_call label="驱é€..." name="Eject..." />
12 <menu_item_call label="Debug..." name="Debug..." /> 14 <menu_item_call label="调试..." name="Debug..." />
15 <menu_item_call label="审查" name="Object Inspect"/>
13 </pie_menu> 16 </pie_menu>
14 <menu_item_call label="å‘é€å³æ消æ¯..." name="Send IM..." /> 17 <menu_item_call label="å‘é€æ¶ˆæ¯..." name="Send IM..." />
15</pie_menu> 18</pie_menu>
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml b/linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml
index 43ca1d4..c1c7163 100644
--- a/linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml
+++ b/linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml
@@ -1,10 +1,11 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<pie_menu name="Land Pie"> 2<pie_menu name="Land Pie">
3 <menu_item_call label="关于土地..." name="About Land..." /> 3 <menu_item_call label="关于土地..." name="About Land..." />
4 <menu_item_call label="创造" name="Create" /> 4 <menu_item_call label="创建" name="Create" />
5 <menu_item_call label="去这里" name="Go Here" /> 5 <menu_item_call label="去这里" name="Go Here" />
6 <menu_item_call label="å在这里" name="Sit Here" /> 6 <menu_item_call label="å在这里" name="Sit Here" />
7 <menu_item_call label="通过…购买" name="Land Buy Pass" /> 7 <menu_item_call label="购买通行è¯" name="Land Buy Pass" />
8 <menu_item_call label="编辑地形" name="Edit Terrain" /> 8 <menu_item_call label="编辑地形" name="Edit Terrain" />
9 <menu_item_call label="购买土地..." name="Land Buy" /> 9 <menu_item_call label="购买土地..." name="Land Buy" />
10</pie_menu> 10</pie_menu>
11<!-- Translated for Second Life 1.19.0 (80267) -->
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml b/linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml
index 8b397bb..1d6835e 100644
--- a/linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml
+++ b/linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml
@@ -6,15 +6,15 @@
6 <menu_item_call label="å在这里" name="Object Sit" /> 6 <menu_item_call label="å在这里" name="Object Sit" />
7 <menu_item_call label="æ‹¿èµ°" name="Pie Object Take" /> 7 <menu_item_call label="æ‹¿èµ°" name="Pie Object Take" />
8 <menu_item_call label="付款..." name="Pay..." /> 8 <menu_item_call label="付款..." name="Pay..." />
9 <pie_menu label="多于 &gt;" name="More &gt;"> 9 <pie_menu label="更多 &gt;" name="More &gt;">
10 <menu_item_call label="删除" name="Delete" /> 10 <menu_item_call label="删除" name="Delete" />
11 <menu_item_call label="穿上" name="Wear" /> 11 <menu_item_call label="穿上" name="Wear" />
12 <menu_item_call label="拿走副本" name="Take Copy" /> 12 <menu_item_call label="拿走副本" name="Take Copy" />
13 <pie_menu label="粘贴HUD &gt;" name="Object Attach HUD" /> 13 <pie_menu label="装上到HUD &gt;" name="Object Attach HUD" />
14 <pie_menu label="粘贴&gt;" name="Object Attach" /> 14 <pie_menu label="装备到&gt;" name="Object Attach" />
15 <menu_item_call label="归还..." name="Return..." /> 15 <menu_item_call label="归还..." name="Return..." />
16 <pie_menu label="多于 &gt;" name="Rate Menu"> 16 <pie_menu label="更多 &gt;" name="Rate Menu">
17 <menu_item_call label="报告辱骂..." name="Report Abuse..." /> 17 <menu_item_call label="报告ä¸è‰¯è¡Œä¸º..." name="Report Abuse..." />
18 <menu_item_call label="å±è”½" name="Object Mute" /> 18 <menu_item_call label="å±è”½" name="Object Mute" />
19 </pie_menu> 19 </pie_menu>
20 <menu_item_call label="è´­ä¹°..." name="Buy..." /> 20 <menu_item_call label="è´­ä¹°..." name="Buy..." />
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_pie_self.xml b/linden/indra/newview/skins/default/xui/zh/menu_pie_self.xml
index 031c164..2b79bf2 100644
--- a/linden/indra/newview/skins/default/xui/zh/menu_pie_self.xml
+++ b/linden/indra/newview/skins/default/xui/zh/menu_pie_self.xml
@@ -6,15 +6,15 @@
6 <menu_item_call label="起身" name="Stand Up" /> 6 <menu_item_call label="起身" name="Stand Up" />
7 <menu_item_call label="朋å‹..." name="Friends..." /> 7 <menu_item_call label="朋å‹..." name="Friends..." />
8 <menu_item_call label="动作..." name="Gestures..." /> 8 <menu_item_call label="动作..." name="Gestures..." />
9 <pie_menu label="æ›´æ¢ &gt;" name="Take Off &gt;"> 9 <pie_menu label="脱下 &gt;" name="Take Off &gt;">
10 <pie_menu label="æœé¥°&gt;" name="Clothes &gt;"> 10 <pie_menu label="æœé¥° &gt;" name="Clothes &gt;">
11 <menu_item_call label="衬衣" name="Shirt" /> 11 <menu_item_call label="衬衣" name="Shirt" />
12 <menu_item_call label="裤å­" name="Pants" /> 12 <menu_item_call label="裤å­" name="Pants" />
13 <menu_item_call label="éž‹å­" name="Shoes" /> 13 <menu_item_call label="éž‹å­" name="Shoes" />
14 <menu_item_call label="袜å­" name="Socks" /> 14 <menu_item_call label="袜å­" name="Socks" />
15 <menu_item_call label="夹克" name="Jacket" /> 15 <menu_item_call label="夹克" name="Jacket" />
16 <menu_item_call label="手套" name="Gloves" /> 16 <menu_item_call label="手套" name="Gloves" />
17 <pie_menu label="多于 &gt;" name="More &gt;"> 17 <pie_menu label="更多 &gt;" name="More &gt;">
18 <menu_item_call label="内衣" name="Self Undershirt" /> 18 <menu_item_call label="内衣" name="Self Undershirt" />
19 <menu_item_call label="所有æœé¥°" name="All Clothes" /> 19 <menu_item_call label="所有æœé¥°" name="All Clothes" />
20 <menu_item_call label="内裤" name="Self Underpants" /> 20 <menu_item_call label="内裤" name="Self Underpants" />
@@ -22,7 +22,7 @@
22 <menu_item_call label="裙å­" name="Skirt" /> 22 <menu_item_call label="裙å­" name="Skirt" />
23 </pie_menu> 23 </pie_menu>
24 <pie_menu label="HUD &gt;" name="Object Detach HUD" /> 24 <pie_menu label="HUD &gt;" name="Object Detach HUD" />
25 <pie_menu label="分开 &gt;" name="Object Detach" /> 25 <pie_menu label="å¸ä¸‹ &gt;" name="Object Detach" />
26 <menu_item_call label="分开全部" name="Detach All" /> 26 <menu_item_call label="分开全部" name="Detach All" />
27 </pie_menu> 27 </pie_menu>
28 <menu_item_call label="外观..." name="Appearance..." /> 28 <menu_item_call label="外观..." name="Appearance..." />
diff --git a/linden/indra/newview/skins/default/xui/zh/menu_viewer.xml b/linden/indra/newview/skins/default/xui/zh/menu_viewer.xml
index 8bfac2f..7580a9b 100644
--- a/linden/indra/newview/skins/default/xui/zh/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/zh/menu_viewer.xml
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<menu_bar name="Main Menu"> 2<menu_bar name="Main Menu">
3 <menu label="File" name="File"> 3 <menu label="文件" name="File">
4 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 4 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
5 <menu_item_call label="ä¸Šä¼ å›¾åƒ (L$[COST])..." name="Upload Image" /> 5 <menu_item_call label="ä¸Šä¼ å›¾åƒ (L$[COST])..." name="Upload Image" />
6 <menu_item_call label="上传声音 (L$[COST])..." name="Upload Sound" /> 6 <menu_item_call label="上传声音 (L$[COST])..." name="Upload Sound" />
@@ -8,13 +8,17 @@
8 <menu_item_call label="大宗文件上传(æ¯ä¸ªæ–‡ä»¶éœ€L$[COST])..." name="Bulk Upload" /> 8 <menu_item_call label="大宗文件上传(æ¯ä¸ªæ–‡ä»¶éœ€L$[COST])..." name="Bulk Upload" />
9 <menu_item_separator label="-----------" name="separator" /> 9 <menu_item_separator label="-----------" name="separator" />
10 <menu_item_call label="关闭窗å£" name="Close Window" /> 10 <menu_item_call label="关闭窗å£" name="Close Window" />
11 <menu_item_call
12 label="关闭所有窗å£"
13 name="Close All Windows" />
11 <menu_item_separator label="-----------" name="separator2" /> 14 <menu_item_separator label="-----------" name="separator2" />
12 <menu_item_call label="ä¿å­˜è´¨åœ°ä¸º..." name="Save Texture As..." /> 15 <menu_item_call label="ä¿å­˜æ质为..." name="Save Texture As..." />
13 <menu_item_separator label="-----------" name="separator3" /> 16 <menu_item_separator label="-----------" name="separator3" />
14 <menu_item_call label="æ‹æ‘„å¿«ç…§" name="Take Snapshot" /> 17 <menu_item_call label="æ‹æ‘„å¿«ç…§" name="Take Snapshot" />
15 <menu_item_call label="快照存至电脑硬盘" name="Snapshot to Disk" /> 18 <menu_item_call label="快照存至硬盘" name="Snapshot to Disk" />
16 <menu_item_separator label="-----------" name="separator4" /> 19 <menu_item_separator label="-----------" name="separator4" />
17 <menu label="Set Window Size" name="Set Window Size"> 20 <menu_item_call label="播放/æš‚åœä¿å­˜å½±ç‰‡åˆ°ç¡¬ç›˜" name="Start/Stop Movie to Disk" />
21 <menu label="设置窗å£å¤§å°" name="Set Window Size">
18 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 22 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
19 <menu_item_call label="320x240" name="320x240" /> 23 <menu_item_call label="320x240" name="320x240" />
20 <menu_item_call label="640x480" name="640x480" /> 24 <menu_item_call label="640x480" name="640x480" />
@@ -29,7 +33,7 @@
29 <menu label="编辑" name="Edit"> 33 <menu label="编辑" name="Edit">
30 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 34 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
31 <menu_item_call label="撤销" name="Undo" /> 35 <menu_item_call label="撤销" name="Undo" />
32 <menu_item_call label="é‡ç½®" name="Redo" /> 36 <menu_item_call label="é‡åš" name="Redo" />
33 <menu_item_separator label="-----------" name="separator" /> 37 <menu_item_separator label="-----------" name="separator" />
34 <menu_item_call label="剪贴" name="Cut" /> 38 <menu_item_call label="剪贴" name="Cut" />
35 <menu_item_call label="å¤åˆ¶" name="Copy" /> 39 <menu_item_call label="å¤åˆ¶" name="Copy" />
@@ -41,11 +45,11 @@
41 <menu_item_call label="全选" name="Select All" /> 45 <menu_item_call label="全选" name="Select All" />
42 <menu_item_call label="å–消选定" name="Deselect" /> 46 <menu_item_call label="å–消选定" name="Deselect" />
43 <menu_item_separator label="-----------" name="separator4" /> 47 <menu_item_separator label="-----------" name="separator4" />
44 <menu_item_call label="副本" name="Duplicate" /> 48 <menu_item_call label="创建副本" name="Duplicate" />
45 <menu_item_separator label="-----------" name="separator5" /> 49 <menu_item_separator label="-----------" name="separator5" />
46 <menu label="Attach Object" name="Attach Object" /> 50 <menu label="穿上物体" name="Attach Object" />
47 <menu label="Detach Object" name="Detach Object" /> 51 <menu label="å¸ä¸‹ç‰©ä½“" name="Detach Object" />
48 <menu label="Take Off Clothing" name="Take Off Clothing"> 52 <menu label="脱下衣ç€" name="Take Off Clothing">
49 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 53 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
50 <menu_item_call label="衬衣" name="Shirt" /> 54 <menu_item_call label="衬衣" name="Shirt" />
51 <menu_item_call label="裤å­" name="Pants" /> 55 <menu_item_call label="裤å­" name="Pants" />
@@ -66,97 +70,114 @@
66 <menu_item_check label="朋å‹..." name="Friends..." /> 70 <menu_item_check label="朋å‹..." name="Friends..." />
67 <menu_item_call label="社团..." name="Groups..." /> 71 <menu_item_call label="社团..." name="Groups..." />
68 <menu_item_separator label="-----------" name="separator8" /> 72 <menu_item_separator label="-----------" name="separator8" />
69 <menu_item_call label="å‚数选择..." name="Preferences..." /> 73 <menu_item_call label="å‚数设置..." name="Preferences..." />
70 </menu> 74 </menu>
71 <menu label="View" name="View"> 75 <menu label="查看" name="View">
72 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 76 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
73 <menu_item_call label="第一人称视角" name="Mouselook" /> 77 <menu_item_call label="第一人称视角" name="Mouselook" />
74 <menu_item_check label="建造" name="Build" /> 78 <menu_item_check label="建造" name="Build" />
75 <menu_item_call label="é‡æ–°è®¾ç½®å¯Ÿçœ‹" name="Reset View" /> 79 <menu_item_call label="é‡æ–°è®¾ç½®è§†è§’" name="Reset View" />
76 <menu_item_call label="察看上一次èŠå¤©çºªå½•" name="Look at Last Chatter" /> 80 <menu_item_call label="查看最åŽä¸€æ¬¡èŠå¤©è€…" name="Look at Last Chatter" />
77 <menu_item_separator label="-----------" name="separator" /> 81 <menu_item_separator label="-----------" name="separator" />
78 <menu_item_check label="工具æ " name="Toolbar" /> 82 <menu_item_check label="工具æ " name="Toolbar" />
79 <menu_item_check label="èŠå¤©è®°å½•" name="Chat History" /> 83 <menu_item_check label="èŠå¤©è®°å½•" name="Chat History" />
80 <menu_item_check label="å³æ—¶æ¶ˆæ¯é€š" name="Instant Message" /> 84 <menu_item_check label="å³æ—¶æ¶ˆæ¯" name="Instant Message" />
81 <menu_item_call label="库存" name="Inventory" /> 85 <menu_item_call label="库存" name="Inventory" />
86 <menu_item_check
87 label="活跃的说è¯äºº"
88 name="Active Speakers" />
82 <menu_item_check label="å±è”½åå•" name="Mute List" /> 89 <menu_item_check label="å±è”½åå•" name="Mute List" />
83 <menu_item_separator label="-----------" name="separator2" /> 90 <menu_item_separator label="-----------" name="separator2" />
84 <menu_item_check label="æ‘„åƒå¤´æŽ§åˆ¶å‚æ•°" name="Camera Controls" /> 91 <menu_item_check label="æ‘„åƒå¤´æŽ§åˆ¶" name="Camera Controls" />
85 <menu_item_check label="è¿åŠ¨æŽ§åˆ¶" name="Movement Controls" /> 92 <menu_item_check label="移动控制" name="Movement Controls" />
86 <menu_item_check label="全部地图" name="World Map" /> 93 <menu_item_check label="世界地图" name="World Map" />
87 <menu_item_check label="迷你地图" name="Mini-Map" /> 94 <menu_item_check label="迷你地图" name="Mini-Map" />
88 <menu_item_separator label="-----------" name="separator3" /> 95 <menu_item_separator label="-----------" name="separator3" />
89 <menu_item_check label="统计æ¡" name="Statistics Bar" /> 96 <menu_item_check label="统计æ¡" name="Statistics Bar" />
90 <menu_item_check label="财产清å•" name="Property Lines" /> 97 <menu_item_check label="地å—边线" name="Property Lines" />
91 <menu_item_check label="地主" name="Land Owners" /> 98 <menu_item_check label="土地所有者" name="Land Owners" />
92 <menu_item_separator label="-----------" name="separator4" /> 99 <menu_item_separator label="-----------" name="separator4" />
93 <menu label="Hover Tips" name="Hover Tips"> 100 <menu label="悬åœæ示" name="Hover Tips">
94 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 101 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
95 <menu_item_check label="显示å°è´´å£«" name="Show Tips" /> 102 <menu_item_check label="显示æ示" name="Show Tips" />
96 <menu_item_separator label="-----------" name="separator" /> 103 <menu_item_separator label="-----------" name="separator" />
97 <menu_item_check label="土地å°è´´å£«" name="Land Tips" /> 104 <menu_item_check label="关于土地的æ示" name="Land Tips" />
98 <menu_item_check label="所有东东的å°è´´å£«" name="Tips On All Objects" /> 105 <menu_item_check label="所有物体的æ示" name="Tips On All Objects" />
99 </menu> 106 </menu>
100 <menu_item_check label="Alt键显示物ç†" name="Alt Shows Physical" /> 107 <menu_item_check label="Alt键显示物ç†" name="Alt Shows Physical" />
101 <menu_item_check label="çªå‡ºæ˜Žæ˜¾éƒ¨åˆ†" name="Highlight Transparent" /> 108 <menu_item_check label="高亮é€æ˜Žç‰©ä½“" name="Highlight Transparent" />
102 <menu label="Beacons" name="Beacons"> 109 <menu_item_check label="ä¿¡æ ‡" name="beacons"/>
103 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 110 <menu_item_check label="éšè—ç²’å­" name="Hide Particles"/>
104 <menu_item_check label="编辑东东脚本" name="Scripted Objects" /> 111 <menu_item_check label="显示界é¢é™„件" name="Show HUD Attachments" />
105 <menu_item_check label="物ç†ä¸œä¸œ" name="Physical Objects" />
106 <menu_item_check label="声音资æº" name="Sound Sources" />
107 <menu_item_check label="质点资æº" name="Particle Sources" />
108 <menu_item_separator label="-----------" name="separator" />
109 <menu_item_check label="éšè—å¾®å°ç‚¹" name="Hide Particles" />
110 </menu>
111 <menu_item_check label="显示顶端显示附件" name="Show HUD Attachments" />
112 <menu_item_separator label="-----------" name="separator5" /> 112 <menu_item_separator label="-----------" name="separator5" />
113 <menu_item_call label="缩å°" name="Zoom In" /> 113 <menu_item_call label="缩å°" name="Zoom In" />
114 <menu_item_call label="缩放默认" name="Zoom Default" /> 114 <menu_item_call label="默认缩放" name="Zoom Default" />
115 <menu_item_call label="放大" name="Zoom Out" /> 115 <menu_item_call label="放大" name="Zoom Out" />
116 <menu_item_separator label="-----------" name="separator6" /> 116 <menu_item_separator label="-----------" name="separator6" />
117 <menu label="More" name="More"> 117 <menu_item_call label="切æ¢å…¨å±çŠ¶æ€" name="Toggle Fullscreen" />
118 <menu_item_call label="é”定全å±çŠ¶æ€" name="Toggle Fullscreen" /> 118 <menu_item_call label="设置用户界é¢å°ºå¯¸ä¸ºé»˜è®¤å€¼" name="Set UI Size to Default" />
119 <menu_item_call label="设置UI尺寸为默认值" name="Set UI Size to Default" />
120 </menu>
121 </menu> 119 </menu>
122 <menu label="世界" name="World"> 120 <menu label="世界" name="World">
123 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 121 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
124 <menu_item_call label="èŠå¤©" name="Chat" /> 122 <menu_item_call label="èŠå¤©" name="Chat" />
125 <menu_item_call label="开始动作" name="Start Gesture" /> 123 <menu_item_call label="开始动作" name="Start Gesture" />
126 <menu_item_check label="å…许奔跑" name="Always Run" /> 124 <menu_item_check label="总是奔跑" name="Always Run" />
127 <menu_item_check label="飞翔" name="Fly" /> 125 <menu_item_check label="飞翔" name="Fly" />
128 <menu_item_separator label="-----------" name="separator" /> 126 <menu_item_separator label="-----------" name="separator" />
129 <menu_item_call label="在这里传建地标" name="Create Landmark Here" /> 127 <menu_item_call label="在这里创建地标" name="Create Landmark Here" />
130 <menu_item_call label="在这里建家" name="Set Home to Here" /> 128 <menu_item_call label="将家设置到这里" name="Set Home to Here" />
131 <menu_item_separator label="-----------" name="separator2" /> 129 <menu_item_separator label="-----------" name="separator2" />
132 <menu_item_call label="闪电传è¿å›žå®¶" name="Teleport Home" /> 130 <menu_item_call label="瞬间移动回家" name="Teleport Home" />
133 <menu_item_separator label="-----------" name="separator3" /> 131 <menu_item_separator label="-----------" name="separator3" />
134 <menu_item_call label="设æˆç¦»å¼€çŠ¶æ€" name="Set Away" /> 132 <menu_item_call label="设æˆç¦»å¼€çŠ¶æ€" name="Set Away" />
135 <menu_item_call label="设æˆç¹å¿™æ¨¡å¼" name="Set Busy" /> 133 <menu_item_call label="设æˆç¹å¿™çŠ¶æ€" name="Set Busy" />
136 <menu_item_call label="åœæ­¢æ‰€æœ‰åŠ¨ç”»" name="Stop All Animations" /> 134 <menu_item_call
135 label="释放按键"
136 name="Release Keys">
137 <on_click />
138 <on_enable />
139 </menu_item_call>
137 <menu_item_separator label="-----------" name="separator4" /> 140 <menu_item_separator label="-----------" name="separator4" />
138 <menu_item_call label="å¸æˆ·åŽ†å²çºªå½•..." name="Account History..." /> 141 <menu_item_call label="å¸æˆ·åŽ†å²çºªå½•..." name="Account History..." />
139 <menu_item_call label="管ç†æˆ‘çš„å¸æˆ·..." name="Manage My Account..." /> 142 <menu_item_call label="管ç†æˆ‘çš„å¸æˆ·..." name="Manage My Account..." />
140 <menu_item_call label="Buy L$..." name="Buy and Sell L$..." /> 143 <menu_item_call label="è´­ä¹° L$..." name="Buy and Sell L$..." />
141 <menu_item_separator label="-----------" name="separator5" /> 144 <menu_item_separator label="-----------" name="separator5" />
142 <menu_item_call label="我的土地..." name="My Land..." /> 145 <menu_item_call label="我的土地..." name="My Land..." />
143 <menu_item_call label="关于土地..." name="About Land..." /> 146 <menu_item_call label="关于土地..." name="About Land..." />
144 <menu_item_call label="购买土地..." name="Buy Land..." /> 147 <menu_item_call label="购买土地..." name="Buy Land..." />
145 <menu_item_call label="地区/地产..." name="Region/Estate..." /> 148 <menu_item_call label="地区/地产..." name="Region/Estate..." />
146 <menu_item_separator label="-----------" name="separator6" /> 149 <menu_item_separator label="-----------" name="separator6" />
147 <menu label="Force Sun" name="Force Sun"> 150 <menu
148 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 151 label="环境设置"
149 <menu_item_call label="日出" name="Sunrise" /> 152 name="Environment Settings">
150 <menu_item_call label="中åˆ" name="Noon" /> 153 <menu_item_call
151 <menu_item_call label="æ—¥è½" name="Sunset" /> 154 label="日出"
152 <menu_item_call label="åŠå¤œ" name="Midnight" /> 155 name="Sunrise" />
153 <menu_item_separator label="-----------" name="separator" /> 156 <menu_item_call
154 <menu_item_call label="æ¢å¤åœ°åŒºé»˜è®¤å€¼" name="Revert to Region Default" /> 157 label="中åˆ"
158 name="Noon" />
159 <menu_item_call
160 label="æ—¥è½"
161 name="Sunset"
162 shortcut="control|shift|N" />
163 <menu_item_call
164 label="åŠå¤œ"
165 name="Midnight" />
166 <menu_item_call
167 label="æ¢å¤åœ°åŒºé»˜è®¤å€¼"
168 name="Revert to Region Default" />
169 <menu_item_call
170 label="环境编辑器"
171 name="Environment Editor" />
172 </menu>
173
174<!-- <menu label="强制太阳ä½ç½®" name="Force Sun">
155 </menu> 175 </menu>
176-->
156 </menu> 177 </menu>
157 <menu label="Tools" name="Tools"> 178 <menu label="工具" name="Tools">
158 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 179 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
159 <menu label="Select Tool" name="Select Tool"> 180 <menu label="选择工具" name="Select Tool">
160 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 181 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
161 <menu_item_call label="焦点" name="Focus" /> 182 <menu_item_call label="焦点" name="Focus" />
162 <menu_item_call label="移动" name="Move" /> 183 <menu_item_call label="移动" name="Move" />
@@ -165,56 +186,123 @@
165 <menu_item_call label="土地" name="Land" /> 186 <menu_item_call label="土地" name="Land" />
166 </menu> 187 </menu>
167 <menu_item_separator label="-----------" name="separator" /> 188 <menu_item_separator label="-----------" name="separator" />
168 <menu_item_check label="åªé€‰æ‹©æˆ‘的东东" name="Select Only My Objects" /> 189 <menu_item_check label="åªé€‰æ‹©æˆ‘的物体" name="Select Only My Objects" />
169 <menu_item_check label="åªé€‰æ‹©å¯ç§»åŠ¨çš„东东" name="Select Only Movable Objects" /> 190 <menu_item_check label="åªé€‰æ‹©å¯ç§»åŠ¨çš„物体" name="Select Only Movable Objects" />
170 <menu_item_check label="æ ¹æ®å‘¨å›´é€‰æ‹©" name="Select By Surrounding" /> 191 <menu_item_check label="选中包围区域" name="Select By Surrounding" />
171 <menu_item_check label="显示éšè—的选项" name="Show Hidden Selection" /> 192 <menu_item_check label="显示éšè—的选中项" name="Show Hidden Selection" />
172 <menu_item_check label="显示选项的亮圈" name="Show Light Radius for Selection" /> 193 <menu_item_check label="显示选择项的光照åŠå¾„" name="Show Light Radius for Selection" />
173 <menu_item_check label="显示选择æ " name="Show Selection Beam" /> 194 <menu_item_check label="显示选择导引" name="Show Selection Beam" />
174 <menu_item_separator label="-----------" name="separator2" /> 195 <menu_item_separator label="-----------" name="separator2" />
175 <menu_item_check label="æ‹æ‘„å°æ–¹æ ¼å¿«ç…§" name="Snap to Grid" /> 196 <menu_item_check label="对é½åˆ°ç½‘æ ¼" name="Snap to Grid" />
176 <menu_item_call label="为东东XYæ‹æ‘„å°æ–¹æ ¼å¿«ç…§" name="Snap Object XY to Grid" /> 197 <menu_item_call label="在 XY é¢ä¸Šå¯¹é½ç½‘æ ¼" name="Snap Object XY to Grid" />
177 <menu_item_call label="使用å°æ–¹æ ¼é€‰é¡¹" name="Use Selection for Grid" /> 198 <menu_item_call label="以选项作为网格" name="Use Selection for Grid" />
178 <menu_item_call label="方格选项..." name="Grid Options..." /> 199 <menu_item_call label="网格选项..." name="Grid Options..." />
179 <menu_item_separator label="-----------" name="separator3" /> 200 <menu_item_separator label="-----------" name="separator3" />
201 <!--Is left uncorrected because I feel it looks nicer-->
202 <menu_item_check
203 label="编辑链接部件"
204 name="Edit Linked Parts"
205 shortcut="">
206 </menu_item_check>
180 <menu_item_call label="链接" name="Link" /> 207 <menu_item_call label="链接" name="Link" />
181 <menu_item_call label="解除链接" name="Unlink" /> 208 <menu_item_call label="解除链接" name="Unlink" />
182 <menu_item_separator label="-----------" name="separator4" /> 209 <menu_item_separator label="-----------" name="separator4" />
210 <menu_item_call label="åœæ­¢æ‰€æœ‰åŠ¨ç”»" name="Stop All Animations" />
183 <menu_item_separator label="-----------" name="separator5" /> 211 <menu_item_separator label="-----------" name="separator5" />
184 <menu_item_call label="èšç„¦äºŽé€‰æ‹©" name="Focus on Selection" /> 212 <menu_item_call label="èšç„¦äºŽæ‰€é€‰ç‰©ä½“" name="Focus on Selection" />
185 <menu_item_call label="按所选比例缩放" name="Zoom to Selection" /> 213 <menu_item_call label="缩放到所选ç©ä½“" name="Zoom to Selection" />
186 <menu_item_call label="购买东东" name="Menu Object Take" /> 214 <menu_item_call label="购买物体" name="Menu Object Take" />
187 <menu_item_call label="拿走副本" name="Take Copy" /> 215 <menu_item_call label="拿走副本" name="Take Copy" />
188 <menu_item_call label="ä¿å­˜ä¸œä¸œè‡³æˆ‘的库存" name="Save Object Back to My Inventory" /> 216 <menu_item_call label="将物体存回至我的库存" name="Save Object Back to My Inventory" />
189 <menu_item_call label="ä¿å­˜ä¸œä¸œè‡³ä¸œä¸œç›®å½" name="Save Object Back to Object Contents" /> 217 <menu_item_call label="将物体存回至物体内容" name="Save Object Back to Object Contents" />
190 <menu_item_separator label="-----------" name="separator6" /> 218 <menu_item_separator label="-----------" name="separator6" />
191 <menu_item_call label="显示警告/错误窗å£" name="Show Script Warning/Error Window" /> 219 <menu_item_call label="显示脚本警告/错误窗å£" name="Show Script Warning/Error Window" />
192 <menu_item_call label="编辑选项脚本" name="Recompile Scripts in Selection" /> 220 <menu label="é‡æ–°ç¼–è¯æ‰€é€‰é¡¹ä¸­è„šæœ¬ä¸º" name="Recompile Scripts in Selection" />
193 <menu_item_call label="é‡æ–°è®¾ç½®é€‰é¡¹ä¸­çš„脚本" name="Reset Scripts in Selection" /> 221 <menu_item_call label="é‡ç½®æ‰€é€‰é¡¹ä¸­è„šæœ¬" name="Reset Scripts in Selection" />
194 <menu_item_call label="设置æˆè¿è¡Œé€‰æ‹©çš„脚本" 222 <menu_item_call label="设置所选项中脚本è¿è¡Œ"
195 name="Set Scripts to Running in Selection" /> 223 name="Set Scripts to Running in Selection" />
196 <menu_item_call label="设置æˆä¸è¿è¡Œé€‰æ‹©çš„脚本" 224 <menu_item_call label="设置所选项中脚本ä¸è¿è¡Œ"
197 name="Set Scripts to Not Running in Selection" /> 225 name="Set Scripts to Not Running in Selection" />
226 <menu_item_separator
227 label="-----------"
228 name="separator7" />
229
230
198 </menu> 231 </menu>
199 <menu label="帮助" name="Help"> 232 <menu label="帮助" name="Help">
200 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" /> 233 <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
201 <menu_item_call label="第二人生帮助" name="Second Life Help" /> 234 <menu_item_call label="第二人生帮助" name="Second Life Help" />
202 <menu_item_call label="基础信æ¯..." name="Knowledge Base..." /> 235 <!--TODO-->
203 <menu_item_call label="演示帮助..." name="Live Help..." /> 236 <menu_item_call
237 label="世界中帮助"
238 name="In-World Help" />
239 <menu_item_call
240 label="教程"
241 name="Tutorial">
242 <on_click />
243 </menu_item_call>
244 <menu_item_call
245 label="é¢å¤–帮助"
246 name="Additional Help" />
247<!-- <menu_item_call label="基础信æ¯..." name="Knowledge Base..." />
248 <menu_item_call label="演示帮助..." name="Live Help..." />-->
204 <menu_item_separator label="-----------" name="separator" /> 249 <menu_item_separator label="-----------" name="separator" />
205 <menu_item_call label="官网林登åšå®¢..." name="Official Linden Blog..." /> 250 <menu_item_call label="官方林登åšå®¢..." name="Official Linden Blog..." />
206 <menu_item_separator label="-----------" name="separator2" /> 251 <menu_item_separator label="-----------" name="separator2" />
207 <menu_item_call label="编辑å‘导脚本..." name="Scripting Guide..." /> 252 <menu_item_call
208 <menu_item_call label="编辑维基脚本..." name="Scripting Wiki..." /> 253 label="脚本 Wiki 门户..."
254 name="Scripting Portal..." />
255 <!--<menu_item_call label="编辑维基脚本..." name="Scripting Wiki..." />-->
209 <menu_item_separator label="-----------" name="separator3" /> 256 <menu_item_separator label="-----------" name="separator3" />
210 <menu_item_call label="消æ¯æ‰€å±žå¤©æ•°..." name="Message of the Day..." /> 257 <!--TODO-->
258 <menu_item_call label="今日消æ¯..." name="Message of the Day..." />
211 <menu_item_separator label="-----------" name="separator4" /> 259 <menu_item_separator label="-----------" name="separator4" />
212 <menu_item_call label="报告辱骂..." name="Report Abuse..." /> 260 <menu_item_call label="报告ä¸è‰¯è¡Œä¸º..." name="Report Abuse..." />
213 <menu_item_call label="颠簸,推动和碰撞..." name="Bumps, Pushes &amp;amp; Hits..." /> 261 <menu_item_call label="颠簸,推动和碰撞..." name="Bumps, Pushes &amp;amp; Hits..." />
262 <menu_item_call
263 label="延迟计é‡å™¨"
264 name="Lag Meter" />
265 <menu
266 drop_shadow="true"
267 label="错误汇报"
268 name="Bug Reporting"
269 opaque="true"
270 tear_off="true"
271 create_jump_keys="true">
272 <!--TODO-->
273 <menu_item_call
274 label="公开 Issue Tracker..."
275 name="Public Issue Tracker...">
276 <on_click />
277 </menu_item_call>
278 <menu_item_call
279 label="公开 Issue Tracker 帮助..."
280 name="Publc Issue Tracker Help..." />
281 <menu_item_separator
282 label="-----------"
283 name="separator7" />
284 <menu_item_call
285 label="错误回报基础..."
286 name="Bug Reporting 101..." />
287 <menu_item_call
288 label="安全问题..."
289 name="Security Issues..." />
290 <menu_item_call
291 label="è´¨é‡ä¿è¯ Wiki..."
292 name="QA Wiki..." />
293 <menu_item_separator
294 label="-----------"
295 name="separator7" />
296 <menu_item_call
297 label="汇报错误..."
298 name="Report Bug...">
299 <on_click />
300 </menu_item_call>
301 </menu>
214 <menu_item_separator label="-----------" name="separator5" /> 302 <menu_item_separator label="-----------" name="separator5" />
215 <menu_item_call label="报告æ¼æ´ž..." name="Report Bug..." /> 303 <menu_item_call label="å‘行说明..." name="Release Notes..." />
216 <menu_item_call label="释放消æ¯..." name="Release Notes..." />
217 <menu_item_separator label="-----------" name="separator6" /> 304 <menu_item_separator label="-----------" name="separator6" />
218 <menu_item_call label="关于第二人生..." name="About Second Life..." /> 305 <menu_item_call label="关于第二人生..." name="About Second Life..." />
219 </menu> 306 </menu>
220</menu_bar> 307</menu_bar>
308<!--Translated for Second Life 1.19.0 (79185)-->
diff --git a/linden/indra/newview/skins/default/xui/zh/mime_types.xml b/linden/indra/newview/skins/default/xui/zh/mime_types.xml
new file mode 100644
index 0000000..089597d
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/mime_types.xml
@@ -0,0 +1,262 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<mimetypes name="default">
3 <defaultlabel>
4 (未知)
5 </defaultlabel>
6 <defaultwidget>
7 æ— 
8 </defaultwidget>
9 <defaultimpl>
10 LLMediaImplLLMozLib
11 </defaultimpl>
12 <widgetset name="web">
13 <label name="web_label">
14 网页内容
15 </label>
16 <tooltip name="web_tooltip">
17 该区域有网页内容
18 </tooltip>
19 <playtip name="web_playtip">
20 显示网页内容
21 </playtip>
22 </widgetset>
23 <widgetset name="movie">
24 <label name="movie_label">
25 影片
26 </label>
27 <tooltip name="movie_tooltip">
28 这里å¯ä»¥æ’­æ”¾å½±ç‰‡
29 </tooltip>
30 <playtip name="movie_playtip">
31 播放影片
32 </playtip>
33 </widgetset>
34 <widgetset name="none">
35 <label name="none_label">
36 无内容
37 </label>
38 <tooltip name="none_tooltip">
39 这里没有媒体
40 </tooltip>
41 <playtip name="none_playtip" />
42 </widgetset>
43 <widgetset name="image">
44 <label name="image_label">
45 图åƒ
46 </label>
47 <tooltip name="image_tooltip">
48 这里有图åƒ
49 </tooltip>
50 <playtip name="image_playtip">
51 显示该ä½ç½®çš„图åƒ
52 </playtip>
53 </widgetset>
54 <widgetset name="audio">
55 <label name="audio_label">
56 音频
57 </label>
58 audio/*
59 <tooltip name="audio_tooltip">
60 这里å¯ä»¥æ’­æ”¾éŸ³é¢‘
61 </tooltip>
62 <playtip name="audio_playtip">
63 播放该ä½ç½®çš„音频
64 </playtip>
65 </widgetset>
66 <scheme name="rtsp">
67 <label name="rtsp_label">
68 实时æµåª’体 (RTSP)
69 </label>
70 </scheme>
71 <mimetype name="blank">
72 <label name="blank_label">
73 - æ—  -
74 </label>
75 </mimetype>
76 <mimetype name="none/none">
77 <label name="none/none_label">
78 - æ—  -
79 </label>
80 </mimetype>
81 <mimetype name="audio/*">
82 <label name="audio2_label">
83 音频
84 </label>
85 </mimetype>
86 <mimetype name="video/*">
87 <label name="video2_label">
88 视频
89 </label>
90 </mimetype>
91 <mimetype name="image/*">
92 <label name="image2_label">
93 图åƒ
94 </label>
95 </mimetype>
96 <mimetype name="video/vnd.secondlife.qt.legacy">
97 <label name="vnd.secondlife.qt.legacy_label">
98 影片 (QuickTime)
99 </label>
100 </mimetype>
101 <mimetype name="application/javascript">
102 <label name="application/javascript_label">
103 Javascript
104 </label>
105 </mimetype>
106 <mimetype name="application/ogg">
107 <label name="application/ogg_label">
108 Ogg 音频/视频
109 </label>
110 </mimetype>
111 <mimetype name="application/pdf">
112 <label name="application/pdf_label">
113 PDF 文档
114 </label>
115 </mimetype>
116 <mimetype name="application/postscript">
117 <label name="application/postscript_label">
118 Postscript 文档
119 </label>
120 </mimetype>
121 <mimetype name="application/rtf">
122 <label name="application/rtf_label">
123 带格å¼åŒ–的文本 (RTF)
124 </label>
125 <widgettype>
126 image
127 </widgettype>
128 </mimetype>
129 <mimetype name="application/smil">
130 <label name="application/smil_label">
131 åŒæ­¥å¤šåª’体集æˆè¯­è¨€ (SMIL)
132 </label>
133 <widgettype>
134 movie
135 </widgettype>
136 </mimetype>
137 <mimetype name="application/xhtml+xml">
138 <label name="application/xhtml+xml_label">
139 网页 (XHTML)
140 </label>
141 </mimetype>
142 <mimetype name="application/x-director">
143 <label name="application/x-director_label">
144 Macromedia Director
145 </label>
146 <widgettype>
147 image
148 </widgettype>
149 </mimetype>
150 <mimetype name="application/x-shockwave-flash">
151 <label name="application/x-shockwave-flash_label">
152 Flash
153 </label>
154 </mimetype>
155 <mimetype name="audio/mid">
156 <label name="audio/mid_label">
157 音频 (MIDI)
158 </label>
159 </mimetype>
160 <mimetype name="audio/mpeg">
161 <label name="audio/mpeg_label">
162 音频 (MP3)
163 </label>
164 </mimetype>
165 <mimetype name="audio/x-aiff">
166 <label name="audio/x-aiff_label">
167 音频 (AIFF)
168 </label>
169 </mimetype>
170 <mimetype name="audio/x-wav">
171 <label name="audio/x-wav_label">
172 音频 (WAV)
173 </label>
174 </mimetype>
175 <mimetype menu="1" name="image/bmp">
176 <label name="image/bmp_label">
177 å›¾åƒ (BMP)
178 </label>
179 </mimetype>
180 <mimetype menu="1" name="image/gif">
181 <label name="image/gif_label">
182 å›¾åƒ (GIF)
183 </label>
184 </mimetype>
185 <mimetype menu="1" name="image/jpeg">
186 <label name="image/jpeg_label">
187 å›¾åƒ (JPEG)
188 </label>
189 </mimetype>
190 <mimetype menu="1" name="image/png">
191 <label name="image/png_label">
192 å›¾åƒ (PNG)
193 </label>
194 </mimetype>
195 <mimetype name="image/svg+xml">
196 <label name="image/svg+xml_label">
197 å›¾åƒ (SVG)
198 </label>
199 </mimetype>
200 <mimetype menu="1" name="image/tiff">
201 <label name="image/tiff_label">
202 å›¾åƒ (TIFF)
203 </label>
204 </mimetype>
205 <mimetype menu="1" name="text/html">
206 <label name="text/html_label">
207 网页
208 </label>
209 </mimetype>
210 <mimetype menu="1" name="text/plain">
211 <label name="text/plain_label">
212 文本
213 </label>
214 </mimetype>
215 <mimetype name="text/xml">
216 <label name="text/xml_label">
217 XML
218 </label>
219 <widgettype>
220 text
221 </widgettype>
222 <impl>
223 LLMediaImplLLMozLib
224 </impl>
225 </mimetype>
226 <mimetype menu="1" name="video/mpeg">
227 <label name="video/mpeg_label">
228 影片 (MPEG)
229 </label>
230 </mimetype>
231 <mimetype name="video/mp4">
232 <label name="video/mp4_label">
233 影片 (MP4)
234 </label>
235 </mimetype>
236 <mimetype menu="1" name="video/quicktime">
237 <label name="video/quicktime_label">
238 影片 (QuickTime)
239 </label>
240 <widgettype>
241 movie
242 </widgettype>
243 <impl>
244 LLMediaImplQuickTime
245 </impl>
246 </mimetype>
247 <mimetype name="video/x-ms-asf">
248 <label name="video/x-ms-asf_label">
249 影片 (Windows Media ASF)
250 </label>
251 </mimetype>
252 <mimetype name="video/x-ms-wmv">
253 <label name="video/x-ms-wmv_label">
254 影片 (Windows Media WMV)
255 </label>
256 </mimetype>
257 <mimetype menu="1" name="video/x-msvideo">
258 <label name="video/x-msvideo_label">
259 影片 (AVI)
260 </label>
261 </mimetype>
262</mimetypes>
diff --git a/linden/indra/newview/skins/default/xui/zh/notify.xml b/linden/indra/newview/skins/default/xui/zh/notify.xml
index ad3940d..a1532a6 100644
--- a/linden/indra/newview/skins/default/xui/zh/notify.xml
+++ b/linden/indra/newview/skins/default/xui/zh/notify.xml
@@ -7,79 +7,89 @@
7 </notify> 7 </notify>
8 <notify name="Cancelled"> 8 <notify name="Cancelled">
9 <message name="message"> 9 <message name="message">
10 å–消〠10 å·²å–消
11 </message> 11 </message>
12 </notify> 12 </notify>
13 <notify name="CancelledSit"> 13 <notify name="CancelledSit">
14 <message name="message"> 14 <message name="message">
15 å–消å下 15 å·²å–消å下
16 </message> 16 </message>
17 </notify> 17 </notify>
18 <notify name="CancelledAttach"> 18 <notify name="CancelledAttach">
19 <message name="message"> 19 <message name="message">
20 å–消连接 20 å·²å–消装备
21 </message> 21 </message>
22 </notify> 22 </notify>
23 <notify name="ReplacedMissingWearable"> 23 <notify name="ReplacedMissingWearable">
24 <message name="message"> 24 <message name="message">
25 替æ¢é—失的衣æœ/身体组æˆä¸ºé»˜è®¤çŠ¶æ€ã€‚ 25 å°†é—失的衣æœ/身体部ä½æ›¿æ¢ä¸ºé»˜è®¤ã€‚
26 </message> 26 </message>
27 </notify> 27 </notify>
28 <notify name="FriendOnline"> 28 <notify name="FriendOnline">
29 <message name="message"> 29 <message name="message">
30 [FIRST] [LAST]在线 30 [FIRST] [LAST]上线了。
31 </message> 31 </message>
32 </notify> 32 </notify>
33 <notify name="FriendOffline"> 33 <notify name="FriendOffline">
34 <message name="message"> 34 <message name="message">
35 [FIRST] [LAST]ä¸åœ¨çº¿ 35 [FIRST] [LAST]下线了。
36 </message>
37 </notify>
38 <notify name="AddSelfFriend" tip="true">
39 <message name="message">
40 您无法将自己添加为好å‹ã€‚
36 </message> 41 </message>
37 </notify> 42 </notify>
38 <notify name="UploadingAuctionSnapshot"> 43 <notify name="UploadingAuctionSnapshot">
39 <message name="message"> 44 <message name="message">
40 正在上传快照至游æˆå†…部和网页... 45 正在å‘世界中和网站上传快照...
41(这个过程å¯èƒ½ä¼šæŒç»­å¤§çº¦1分钟.) 46(å¤§æ¦‚è¦ 5 分钟)
47 </message>
48 </notify>
49 <notify name="UploadPayment" tip="false">
50 <message name="message">
51 您为了上传付出了 L$[AMOUNT]。
42 </message> 52 </message>
43 </notify> 53 </notify>
44 <notify name="UploadingSnapshot"> 54 <notify name="UploadingSnapshot">
45 <message name="message"> 55 <message name="message">
46 上传快照至游æˆå†…部... 56 上传快照至世界中...
47(这个过程å¯èƒ½ä¼šæŒç»­å¤§çº¦ä¸€åˆ†é’Ÿ.) 57(这个过程å¯èƒ½ä¼šæŒç»­å¤§çº¦ä¸€åˆ†é’Ÿ.)
48 </message> 58 </message>
49 </notify> 59 </notify>
50 <notify name="UploadWebSnapshotDone"> 60 <notify name="UploadWebSnapshotDone">
51 <message name="message"> 61 <message name="message">
52 快照已ç»è¢«ä¸Šä¼ è‡³ç½‘页. 62 快照已ç»è¢«ä¸Šä¼ è‡³ç½‘页。
53 </message> 63 </message>
54 </notify> 64 </notify>
55 <notify name="UploadSnapshotDone"> 65 <notify name="UploadSnapshotDone">
56 <message name="message"> 66 <message name="message">
57 上传快照至游æˆå·²ç»å®Œæˆã€‚ 67 快照已ç»è¢«ä¸Šä¼ è‡³ä¸–界中。
58 </message> 68 </message>
59 </notify> 69 </notify>
60 <notify name="TerrainDownloaded"> 70 <notify name="TerrainDownloaded">
61 <message name="message"> 71 <message name="message">
62 Terrain.rawä¸‹è½½å®Œæˆ 72 Terrain.raw 下载完æˆ
63 </message> 73 </message>
64 </notify> 74 </notify>
65 <notify name="InMaxGroups"> 75 <notify name="InMaxGroups">
66 <message name="message"> 76 <message name="message">
67 你加入过的社团已ç»è¾¾åˆ°äº†æœ€å¤§å€¼ã€‚你将需è¦ç¦»å¼€ä¸€äº›ç¤¾å›¢ï¼Œç„¶åŽä½ æ‰å¯ä»¥åˆ›å»ºæ–°çš„社团。 77 您加入的社团已ç»è¾¾åˆ°äº†æœ€å¤§å€¼ã€‚您需è¦ç¦»å¼€ä¸€ä¸ªç¤¾å›¢ï¼Œç„¶åŽæ‰å¯ä»¥åˆ›å»ºæ–°çš„社团。
68 </message> 78 </message>
69 </notify> 79 </notify>
70 <notify name="GestureMissing"> 80 <notify name="GestureMissing">
71 <message name="message"> 81 <message name="message">
72 动作已从数æ®åº“中é—失. 82 动作 [NAME] 已从数æ®åº“中é—失。
73 </message> 83 </message>
74 </notify> 84 </notify>
75 <notify name="UnableToLoadGesture"> 85 <notify name="UnableToLoadGesture">
76 <message name="message"> 86 <message name="message">
77 无法载入动作.请å†å°è¯•ä¸€æ¬¡. 87 无法载入动作 [NAME]。请å†å°è¯•ä¸€æ¬¡.
78 </message> 88 </message>
79 </notify> 89 </notify>
80 <notify name="InventoryLoaded"> 90 <notify name="InventoryLoaded">
81 <message name="message"> 91 <message name="message">
82 Your inventory is loaded. 92 您的库存已读å–完æˆã€‚
83 </message> 93 </message>
84 </notify> 94 </notify>
85 <notify name="LandmarkMissing"> 95 <notify name="LandmarkMissing">
@@ -89,116 +99,124 @@
89 </notify> 99 </notify>
90 <notify name="UnableToLoadLandmark"> 100 <notify name="UnableToLoadLandmark">
91 <message name="message"> 101 <message name="message">
92 无法载入地标.请å†è¯•ä¸€æ¬¡. 102 无法载入地标。请å†è¯•ä¸€æ¬¡ã€‚
93 </message> 103 </message>
94 </notify> 104 </notify>
95 <notify name="CapsKeyOn"> 105 <notify name="CapsKeyOn">
96 <message name="message"> 106 <message name="message">
97 你的大写字æ¯é”定已ç»å¼€å¯ã€‚ 107 大写é”定处于开å¯çŠ¶æ€ã€‚
98所有的这些将影å“你输入的密ç ã€‚你一定想è¦è§‚点大写字æ¯é”定。 108因为这会影å“您键入的密ç ï¼Œ
109也许您会想把它关掉。
99 </message> 110 </message>
100 </notify> 111 </notify>
101 <notify name="NotecardMissing"> 112 <notify name="NotecardMissing">
102 <message name="message"> 113 <message name="message">
103 注释å¡ä»Žæ•°æ®åº“中é—失. 114 记事å¡ä»Žæ•°æ®åº“中é—失。
104 </message> 115 </message>
105 </notify> 116 </notify>
106 <notify name="NotecardNoPermissions"> 117 <notify name="NotecardNoPermissions">
107 <message name="message"> 118 <message name="message">
108 缺ä¹è®¸å¯è¯ï¼Œä¸å…许查看注释å¡ã€‚ 119 缺ä¹è®¸å¯ï¼Œä¸èƒ½æŸ¥çœ‹è®°äº‹å¡ã€‚
120 </message>
121 </notify>
122 <notify name="RezItemNoPermissions" tip="true">
123 <message name="message">
124 缺ä¹è®¸å¯ï¼Œä¸èƒ½åˆ›å»ºç‰©ä½“。
109 </message> 125 </message>
110 </notify> 126 </notify>
111 <notify name="UnableToLoadNotecard"> 127 <notify name="UnableToLoadNotecard">
112 <message name="message"> 128 <message name="message">
113 无法载入注释å¡. 129 无法载入记事å¡ã€‚
114请å†å°è¯•ä¸€æ¬¡. 130请å†å°è¯•ä¸€æ¬¡ã€‚
115 </message> 131 </message>
116 </notify> 132 </notify>
117 <notify name="ScriptMissing"> 133 <notify name="ScriptMissing">
118 <message name="message"> 134 <message name="message">
119 脚本从数æ®åº“中é—失. 135 脚本从数æ®åº“中é—失。
120 </message> 136 </message>
121 </notify> 137 </notify>
122 <notify name="ScriptNoPermissions"> 138 <notify name="ScriptNoPermissions">
123 <message name="message"> 139 <message name="message">
124 缺ä¹è®¸å¯è¯ï¼Œä¸å…许查看脚本. 140 缺ä¹è®¸å¯ï¼Œä¸å…许查看脚本。
125 </message> 141 </message>
126 </notify> 142 </notify>
127 <notify name="UnableToLoadScript"> 143 <notify name="UnableToLoadScript">
128 <message name="message"> 144 <message name="message">
129 无法载入脚本.请å†å°è¯•ä¸€æ¬¡. 145 无法载入脚本。请å†å°è¯•ä¸€æ¬¡ã€‚
130 </message> 146 </message>
131 </notify> 147 </notify>
132 <notify name="IncompleteInventory"> 148 <notify name="IncompleteInventory">
133 <message name="message"> 149 <message name="message">
134 ä½ æ供的完整内容尚ä¸èƒ½æœ¬åœ°æœ‰æ•ˆã€‚请在几分钟åŽé‡æ–°æ供这些内容。 150 ä½ æ供的完整内容在本地尚ä¸å¯ç”¨ã€‚请在几分钟åŽ
151å°è¯•é‡æ–°æ供这些内容。
135 </message> 152 </message>
136 </notify> 153 </notify>
137 <notify name="CannotModifyProtectedCategories"> 154 <notify name="CannotModifyProtectedCategories">
138 <message name="message"> 155 <message name="message">
139 ä½ ä¸èƒ½ä¿®æ”¹è¢«ä¿æŠ¤çš„分ç»ã€‚ 156 ä½ ä¸èƒ½ä¿®æ”¹è¢«ä¿æŠ¤çš„分类。
140 </message> 157 </message>
141 </notify> 158 </notify>
142 <notify name="CannotRemoveProtectedCategories"> 159 <notify name="CannotRemoveProtectedCategories">
143 <message name="message"> 160 <message name="message">
144 ä½ ä¸èƒ½ç§»é™¤è¢«ä¿æŠ¤çš„分ç»ã€‚ 161 ä½ ä¸èƒ½ç§»é™¤è¢«ä¿æŠ¤çš„分类。
145 </message> 162 </message>
146 </notify> 163 </notify>
147 <notify name="OfferedCard"> 164 <notify name="OfferedCard">
148 <message name="message"> 165 <message name="message">
149 ä½ å·²ç»ç»™[FIRST] [LAST]æ供了一个通è¯å¡ã€‚ 166 ä½ ç»™ [FIRST] [LAST] æ供了å片。
150 </message> 167 </message>
151 </notify> 168 </notify>
152 <notify name="OfferedFriendship"> 169 <notify name="OfferedFriendship">
153 <message name="message"> 170 <message name="message">
154 ä½ å·²ç»ç»™[FIRST] [LAST]æä¾›äºå‹æƒ…å¡ã€‚ 171 你邀请了 [FIRST] [LAST] æˆä¸ºä½ çš„好å‹ã€‚
155 </message> 172 </message>
156 </notify> 173 </notify>
157 <notify name="UnableToBuyWhileDownloading"> 174 <notify name="UnableToBuyWhileDownloading">
158 <message name="message"> 175 <message name="message">
159 无法在下载东东数æ®æ—¶è´­ä¹°. 176 下载物体数æ®æ—¶æ— æ³•è´­ä¹°ã€‚
160请å†å°è¯•ä¸€æ¬¡. 177请å†å°è¯•ä¸€æ¬¡ã€‚
161 </message> 178 </message>
162 </notify> 179 </notify>
163 <notify name="UnableToLinkWhileDownloading"> 180 <notify name="UnableToLinkWhileDownloading">
164 <message name="message"> 181 <message name="message">
165 当下载东东数æ®æ—¶,ä¸èƒ½è¿žæŽ¥ä¸œä¸œ.请å†å°è¯•ä¸€æ¬¡. 182 下载物体数æ®æ—¶æ— æ³•é“¾æŽ¥ã€‚
183请å†å°è¯•ä¸€æ¬¡ã€‚
166 </message> 184 </message>
167 </notify> 185 </notify>
168 <notify name="CannotBuyObjectsFromDifferentOwners"> 186 <notify name="CannotBuyObjectsFromDifferentOwners">
169 <message name="message"> 187 <message name="message">
170 无法åŒæ—¶ä»Žä¸åŒä¸»äººå¤„购买东东. 188 无法åŒæ—¶ä»Žä¸åŒä¸»äººå¤„购买物体。
171请选择å•ç‹¬ä¸œä¸œå¹¶è´­ä¹°. 189请选择å•ä¸ªç‰©ä½“。
172 </message> 190 </message>
173 </notify> 191 </notify>
174 <notify name="ObjectNotForSale"> 192 <notify name="ObjectNotForSale">
175 <message name="message"> 193 <message name="message">
176 东东ä¸æ˜¯å¾…售状æ€. 194 物体ä¸åƒæ˜¯å¤„在出售状æ€ã€‚
177 </message> 195 </message>
178 </notify> 196 </notify>
179 <notify name="EnteringGodMode"> 197 <notify name="EnteringGodMode">
180 <message name="message"> 198 <message name="message">
181 进入神仙模å¼,æ°´å¹³[LEVEL] 199 进入神明模å¼ï¼Œç­‰çº§[LEVEL]
182 </message> 200 </message>
183 </notify> 201 </notify>
184 <notify name="LeavingGodMode"> 202 <notify name="LeavingGodMode">
185 <message name="message"> 203 <message name="message">
186 离开神仙模å¼ï¼Œæ°´å¹³[LEVEL] 204 离开神明模å¼ï¼Œç­‰çº§[LEVEL]
187 </message> 205 </message>
188 </notify> 206 </notify>
189 <notify name="CopyFailed"> 207 <notify name="CopyFailed">
190 <message name="message"> 208 <message name="message">
191 å¤åˆ¶å¤±è´¥ï¼Œå› ä¸ºä½ æ²¡æœ‰å¤åˆ¶è®¸å¯è¯ã€‚ 209 å¤åˆ¶å¤±è´¥ï¼Œå› ä¸ºä½ æ²¡æœ‰å¤åˆ¶æƒåˆ©ã€‚
192 </message> 210 </message>
193 </notify> 211 </notify>
194 <notify name="InventoryAccepted"> 212 <notify name="InventoryAccepted">
195 <message name="message"> 213 <message name="message">
196 [NAME]å·²ç»æŽ¥å—了你æ供的åºå­˜. 214 [NAME] 接å—了你æ供的物å“。
197 </message> 215 </message>
198 </notify> 216 </notify>
199 <notify name="InventoryDeclined"> 217 <notify name="InventoryDeclined">
200 <message name="message"> 218 <message name="message">
201 [NAME]æ‹’ç»äº†ä½ æ供的åºå­˜. 219 [NAME] æ‹’ç»äº†ä½ æ供的物å“。
202 </message> 220 </message>
203 </notify> 221 </notify>
204 <notify name="ObjectMessage"> 222 <notify name="ObjectMessage">
@@ -208,24 +226,26 @@
208 </notify> 226 </notify>
209 <notify name="CallingCardAccepted"> 227 <notify name="CallingCardAccepted">
210 <message name="message"> 228 <message name="message">
211 你的通è¯å¡å·²ç»è¢«æŽ¥å— 229 ä½ çš„å片已ç»è¢«æŽ¥å—
212 </message> 230 </message>
213 </notify> 231 </notify>
214 <notify name="CallingCardDeclined"> 232 <notify name="CallingCardDeclined">
215 <message name="message"> 233 <message name="message">
216 你的通è¯å¡è¢«æ‹’ç»ã€‚ 234 ä½ çš„å片被拒ç»ã€‚
217 </message> 235 </message>
218 </notify> 236 </notify>
219 <notify name="TeleportToLandmark"> 237 <notify name="TeleportToLandmark">
220 <message name="message"> 238 <message name="message">
221 现在你已ç»åˆ°è¾¾å¤§é™†,ä½ å¯ä»¥é—ªç”µä¼ è¿è‡ªå·±è‡³ &apos;[NAME]&apos;地点,通过点击你å±å¹•ä¸‹ç«¯å³ä¾§çš„库存按钮,然åŽé€‰æ‹©åœ°æ ‡æ–‡ä»¶å¤¹. 239 既然现在您已ç»åˆ°è¾¾å¤§é™†ï¼Œæ‚¨å¯ä»¥çž¬é—´ç§»åŠ¨åˆ°ä¾‹å¦‚‘[NAME]’的地方,åªè¦ç‚¹å‡»
222åŒå‡»åœ°æ ‡å¯ä»¥é—ªç”µä¼ è¿è‡ªå·±åˆ°è¾¾è¯¥å¤„. 240å±å¹•å³ä¸‹è§’的库存按钮,然åŽé€‰æ‹© Landmark 文件夹。
241åŒå‡»åœ°æ ‡ï¼Œç„¶åŽç‚¹å‡»çž¬é—´ç§»åŠ¨æ¥ç§»åŠ¨åˆ°é‚£å„¿ã€‚
223 </message> 242 </message>
224 </notify> 243 </notify>
225 <notify name="TeleportToPerson"> 244 <notify name="TeleportToPerson">
226 <message name="message"> 245 <message name="message">
227 现在你已ç»åˆ°è¾¾äº†å¤§é™†, 现在你å¯ä»¥è”系居民 &apos;[NAME]&apos;,通过点击你å±å¹•ä¸‹ç«¯å³ä¾§çš„库存按钮,然åŽå†é€‰æ‹©é€šè¯å¡æ–‡ä»¶å¤¹ã€‚ 246 既然现在您已ç»åˆ°è¾¾å¤§é™†ï¼Œæ‚¨å¯ä»¥å‘¼å«ä¾‹å¦‚‘[NAME]’的居民,
228åŒå‡»é€šè¯å¡ï¼Œç‚¹å‡»å³æ—¶æ¶ˆæ¯é€šï¼Œå¹¶é”®å…¥æ¶ˆæ¯. 247åªè¦ç‚¹å‡»å±å¹•å³ä¸‹è§’的库存按钮,然åŽé€‰æ‹© Calling Cards 文件夹。
248åŒå‡»å片,点击å³æ—¶æ¶ˆæ¯ï¼Œç„¶åŽé”®å…¥æ‚¨çš„消æ¯ã€‚
229 </message> 249 </message>
230 </notify> 250 </notify>
231 <notify name="CantSelectLandFromMultipleRegions"> 251 <notify name="CantSelectLandFromMultipleRegions">
@@ -240,11 +260,11 @@
240 </notify> 260 </notify>
241 <notify name="GroupVote"> 261 <notify name="GroupVote">
242 <message name="message"> 262 <message name="message">
243 [NAME]æ议投票给: 263 [NAME]æ议投票讨论:
244[MESSAGE] 264[MESSAGE]
245 </message> 265 </message>
246 <option name="VoteNow"> 266 <option name="VoteNow">
247 现在投票表决 267 现在投票
248 </option> 268 </option>
249 <option name="Later"> 269 <option name="Later">
250 ç¨åŽ 270 ç¨åŽ
@@ -256,7 +276,7 @@
256[MESSAGE] 276[MESSAGE]
257 </message> 277 </message>
258 <option name="VoteNow"> 278 <option name="VoteNow">
259 现在投票表决 279 现在投票
260 </option> 280 </option>
261 <option name="Later"> 281 <option name="Later">
262 ç¨åŽ 282 ç¨åŽ
@@ -269,13 +289,13 @@
269 </notify> 289 </notify>
270 <notify name="EventNotification"> 290 <notify name="EventNotification">
271 <message name="message"> 291 <message name="message">
272 Event Notification: 292 事件æ醒:
273 293
274[NAME] 294[NAME]
275[DATE] 295[DATE]
276 </message> 296 </message>
277 <option name="Teleport"> 297 <option name="Teleport">
278 é—ªç”µä¼ é€ 298 瞬间移动
279 </option> 299 </option>
280 <option name="Description"> 300 <option name="Description">
281 æè¿° 301 æè¿°
@@ -286,7 +306,9 @@
286 </notify> 306 </notify>
287 <notify name="TransferObjectsHighlighted"> 307 <notify name="TransferObjectsHighlighted">
288 <message name="message"> 308 <message name="message">
289 此处所有将éšåœŸåœ°ä¸€èµ·è½¬è®©ç»™ä¸šä¸»çš„东东将由高亮æ¡æ˜¾ç¤ºå¼ºè°ƒ 309 此处所有将éšåœŸåœ°ä¸€èµ·è½¬è®©ç»™è´­ä¹°è€…的物体已ç»é«˜äº®æ˜¾ç¤ºã€‚
310
311* 将传é€çš„树木和绿化ä¸ä¼šé«˜äº®æ˜¾ç¤ºã€‚
290 </message> 312 </message>
291 <option name="Done"> 313 <option name="Done">
292 å®Œæˆ 314 完æˆ
@@ -294,112 +316,118 @@
294 </notify> 316 </notify>
295 <notify name="DeactivatedGesturesTrigger"> 317 <notify name="DeactivatedGesturesTrigger">
296 <message name="message"> 318 <message name="message">
297 Deactivated gestures with same trigger: 319 å–消激活了触å‘器相åŒçš„动作:
298[NAMES] 320[NAMES]
299 </message> 321 </message>
300 </notify> 322 </notify>
301 <notify name="InventoryNetworkCorruption"> 323 <notify name="InventoryNetworkCorruption">
302 <message name="message"> 324 <message name="message">
303 由于网络故障,无法载入库存信æ¯ã€‚出现此问题的原因是网络连接性能ä¸ç¨³å®šã€‚ 325 由于网络故障,无法载入库存信æ¯ã€‚è¿™æ„味ç€ç½‘络连接有问题。
304 </message> 326 </message>
305 </notify> 327 </notify>
306 <notify name="NoQuickTime"> 328 <notify name="NoQuickTime">
307 <message name="message"> 329 <message name="message">
308 苹果公å¸çš„QuickTime没有安装在你的æ“作系统中。如果你希望观看在游æˆä¸­æ’­æ”¾çš„媒体æµï¼Œåˆ™éœ€è¦ä»Žä»¥ä¸‹é¡µé¢ä¸‹è½½ 330 Apple å…¬å¸çš„ QuickTime 没有安装在你的æ“作系统中。如果你希望观看在支æŒçš„地å—中播放的媒体æµï¼Œåˆ™éœ€è¦ä»Ž
309QuickTime(http://www.apple.com/quicktime)并安装QuickTime Player. 331QuickTime网站 (http://www.apple.com/quicktime) 安装 QuickTime Player.
310 </message> 332 </message>
311 </notify> 333 </notify>
312 <notify name="OwnedObjectsReturned"> 334 <notify name="OwnedObjectsReturned">
313 <message name="message"> 335 <message name="message">
314 在所选土地上你所拥有的东东已ç»è¢«å½’还至你的库存中。 336 在所选地å—上你所拥有的物体已ç»è¢«å½’还至你的库存中。
315 </message> 337 </message>
316 </notify> 338 </notify>
317 <notify name="OtherObjectsReturned"> 339 <notify name="OtherObjectsReturned">
318 <message name="message"> 340 <message name="message">
319 在所选的,归[FIRST] [LAST]所拥有的东东已ç»è¢«å½’还至本人的库存中。 341 在所选的地å—上归[FIRST] [LAST]所拥有的物体
342å·²ç»è¢«è¿”还至其库存中。
320 </message> 343 </message>
321 </notify> 344 </notify>
322 <notify name="OtherObjectsReturned2"> 345 <notify name="OtherObjectsReturned2">
323 <message name="message"> 346 <message name="message">
324 在所选土地上归居民&apos;[NAME]&apos;所有的土地已ç»è¢«å½’还至它的主人处。 347 在所选的地å—上归居民 ‘[NAME]’ 所拥有的物体
348å·²ç»è¢«è¿”还至其主人处。
325 </message> 349 </message>
326 </notify> 350 </notify>
327 <notify name="GroupObjectsReturned"> 351 <notify name="GroupObjectsReturned">
328 <message name="message"> 352 <message name="message">
329 在所选土地上,由社团[GROUPNAME]分享的东东已ç»è¢«å½’还至它们的主人的库存里。 353 在所选地å—上,与社团 [GROUPNAME] 分享的物体已ç»è¢«å½’还至它们的主人的库存里。
330å¯äº¤æ¢çš„被转让东东已ç»è¢«å½’还至它们先å‰ä¸»äººå¤„。 354å¯è½¬è®©çš„转让到社团的物体已ç»è¢«å½’还至它们先å‰ä¸»äººå¤„。
331ä¸å¯äº¤æ¢çš„被转让东东将被删除。 355ä¸å¯è½¬è®©çš„转让到社团的物体已ç»åˆ é™¤ã€‚
332 </message> 356 </message>
333 </notify> 357 </notify>
334 <notify name="UnOwnedObjectsReturned"> 358 <notify name="UnOwnedObjectsReturned">
335 <message name="message"> 359 <message name="message">
336 在这å—土地上,ä¸å±žäºŽä½ çš„东东已ç»è¢«å½’还至它们的主人处。 360 在选择的地å—上,*ä¸*属于你的物体已ç»è¢«å½’还至它们的主人处。
337 </message> 361 </message>
338 </notify> 362 </notify>
339 <notify name="NotSafe"> 363 <notify name="NotSafe">
340 <message name="message"> 364 <message name="message">
341 è¿™å—土地有å±é™©å› ç´  (&apos;ä¸å®‰å…¨&apos;). 365 è¿™å—土地æ‰å¼€äº†ä¼¤å®³é€‰é¡¹ (‘ä¸å®‰å…¨â€™).
342你在这里å¯èƒ½ä¼šå—伤。如果你死了,你将会被闪电传è¿èªä½ è‡ªå·±å®¶çš„ä½ç½®ã€‚ 366您在这里å¯èƒ½ä¼šå—伤。如果您死了,您将会被瞬间移动至您的家ä½ç½®ã€‚
343 </message> 367 </message>
344 </notify> 368 </notify>
345 <notify name="NoFly"> 369 <notify name="NoFly">
346 <message name="message"> 370 <message name="message">
347 在这å—土地上起飞无效(&apos;ä¸èƒ½é£žè¡Œ&apos;). 371 è¿™å—土地关闭了飞行 (‘ä¸èƒ½é£žè¡Œâ€™).
348你在这里ä¸èƒ½é£žè¡Œ. 372您ä¸èƒ½åœ¨è¿™é‡Œé£žè¡Œã€‚
349 </message> 373 </message>
350 </notify> 374 </notify>
351 <notify name="PushRestricted"> 375 <notify name="PushRestricted">
352 <message name="message"> 376 <message name="message">
353 è¿™å—土地是&apos;é™åˆ¶11推动东东&apos;. 377 è¿™å—土地 ‘ä¸å…许推动’。
354ä½ ä¸èƒ½æŽ¨åŠ¨è¿™é‡Œçš„任何东东,除éžä½ æ˜¯è¿™é‡Œçš„主人. 378您ä¸èƒ½æŽ¨åŠ¨è¿™é‡Œçš„任何物体,除éžæ‚¨æ‹¥æœ‰è¿™å—土地。
379 </message>
380 </notify>
381 <notify name="NoVoice" tip="false" unique="true">
382 <message name="message">
383 è¿™å—土地ç¦ç”¨äº†è¯­éŸ³ã€‚
355 </message> 384 </message>
356 </notify> 385 </notify>
357 <notify name="NoBuild"> 386 <notify name="NoBuild">
358 <message name="message"> 387 <message name="message">
359 è¿™å—土地上无æ³å»ºé€ (&apos;ä¸èƒ½å»ºé€ &apos;). 388 è¿™å—土地上关闭了建造 (‘ä¸èƒ½å»ºé€ â€™).
360ä½ ä¸èƒ½åœ¨æ­¤å»ºé€ ä¸œä¸œã€‚. 389您ä¸èƒ½åœ¨æ­¤åˆ›å»ºç‰©ä½“。
361 </message> 390 </message>
362 </notify> 391 </notify>
363 <notify name="ScriptsStopped"> 392 <notify name="ScriptsStopped">
364 <message name="message"> 393 <message name="message">
365 游æˆç®¡ç†å‘˜æš‚æ—¶åœæ­¢äº†è¯¥åœ°åŒºçš„脚本è¿è¡Œã€‚ 394 管ç†å‘˜æš‚æ—¶åœæ­¢äº†è¯¥åœ°åŒºçš„脚本è¿è¡Œã€‚
366 </message> 395 </message>
367 </notify> 396 </notify>
368 <notify name="ScriptsNotRunning"> 397 <notify name="ScriptsNotRunning">
369 <message name="message"> 398 <message name="message">
370 这个区域内没有è¿è¡Œä»»ä½•è„šæœ¬æ–‡ä»¶ã€‚ 399 该地区没有è¿è¡Œä»»ä½•è„šæœ¬ã€‚
371 </message> 400 </message>
372 </notify> 401 </notify>
373 <notify name="NoOutsideScripts"> 402 <notify name="NoOutsideScripts">
374 <message name="message"> 403 <message name="message">
375 在这å—土地上外部脚本无效 404 è¿™å—土地关闭了外部脚本 (‘没有外部脚本’)。
376(&apos;没有外部脚本&apos;). 405除了属于土地主人的脚本,任何脚本在这里都ä¸ä¼šè¿è¡Œã€‚
377除了属于土地主人的脚本,任何外部脚本在这里都无法è¿è¡Œ.
378 </message> 406 </message>
379 </notify> 407 </notify>
380 <notify name="ApproveURL"> 408 <notify name="ApproveURL">
381 <message name="message"> 409 <message name="message">
382 这件东东想在自己表é¢å±•ç¤ºå¦‚下网页: 410 这件物体希望在它的表é¢æ˜¾ç¤ºç½‘页:
383[URL] 411[URL]
384 </message> 412 </message>
385 <option name="LoadPage"> 413 <option name="LoadPage">
386 è½½å…¥é¡µé¢ 414 载入页é¢
387 </option> 415 </option>
388 <option name="Don&apos;tLoad"> 416 <option name="Don&apos;tLoad">
389 é¿å…载入 417 ä¸è¦è½½å…¥
390 </option> 418 </option>
391 </notify> 419 </notify>
392 <notify name="ClaimPublicLand"> 420 <notify name="ClaimPublicLand">
393 <message name="message"> 421 <message name="message">
394 åªèƒ½è¦æ±åœ¨ä½ æ‰€åœ¨åŒºåŸŸçš„公共土地上。 422 åªèƒ½å¯¹æ‚¨æ‰€åœ¨çš„公共土地上申请产æƒã€‚
395 </message> 423 </message>
396 </notify> 424 </notify>
397 <notify name="ObjectGiveItem"> 425 <notify name="ObjectGiveItem">
398 <message name="message"> 426 <message name="message">
399 主人为[FIRST] [LAST]的东东[OBJECTFROMNAME] 赠与你了å为 &apos;[OBJECTNAME]&apos;çš„ [OBJECTTYPE]. 427 [FIRST] [LAST] 拥有的物体 [OBJECTFROMNAME] 赠与您了å为 ‘[OBJECTNAME]’ çš„[OBJECTTYPE]。
400 </message> 428 </message>
401 <option name="Keep"> 429 <option name="Keep">
402 ä¿æŒ 430 ä¿ç•™
403 </option> 431 </option>
404 <option name="Discard"> 432 <option name="Discard">
405 放弃 433 放弃
@@ -410,10 +438,10 @@ QuickTime(http://www.apple.com/quicktime)并安装QuickTime Player.
410 </notify> 438 </notify>
411 <notify name="ObjectGiveItemUnknownUser"> 439 <notify name="ObjectGiveItemUnknownUser">
412 <message name="message"> 440 <message name="message">
413 主人为(未知用户)的东东[OBJECTFROMNAME] 赠与你了å为 &apos;[OBJECTNAME]&apos;çš„ [OBJECTTYPE]. 441 (æŸä½æœªçŸ¥ç”¨æˆ·) 拥有的物体 [OBJECTFROMNAME] 赠与您了å为 ‘[OBJECTNAME]’ çš„[OBJECTTYPE]。
414 </message> 442 </message>
415 <option name="Keep"> 443 <option name="Keep">
416 ä¿æŒ 444 ä¿ç•™
417 </option> 445 </option>
418 <option name="Discard"> 446 <option name="Discard">
419 放弃 447 放弃
@@ -424,10 +452,10 @@ QuickTime(http://www.apple.com/quicktime)并安装QuickTime Player.
424 </notify> 452 </notify>
425 <notify name="UserGiveItem"> 453 <notify name="UserGiveItem">
426 <message name="message"> 454 <message name="message">
427 [NAME]èµ é€ç»™ä½ äº†ä¸€ä»¶[OBJECTTYPE]å为&apos;[OBJECTNAME]&apos;. 455 [NAME] 给了您一件å为 ‘[OBJECTNAME]’ çš„[OBJECTTYPE]。
428 </message> 456 </message>
429 <option name="Keep"> 457 <option name="Keep">
430 ä¿æŒ 458 ä¿ç•™
431 </option> 459 </option>
432 <option name="Discard"> 460 <option name="Discard">
433 放弃 461 放弃
@@ -452,10 +480,13 @@ QuickTime(http://www.apple.com/quicktime)并安装QuickTime Player.
452 <option name="Decline"> 480 <option name="Decline">
453 è°¢ç» 481 è°¢ç»
454 </option> 482 </option>
483 <option name="Info">
484 ä¿¡æ¯
485 </option>
455 </notify> 486 </notify>
456 <notify name="JoinGroupOfficerNoFee"> 487 <notify name="JoinGroupOfficerNoFee">
457 <message name="message"> 488 <message name="message">
458 [NAME]å·²ç»é‚€è¯·ä½ åŠ å…¥ä»–们的社团,并æˆä¸ºç¤¾å›¢å®˜å‘˜ã€‚ 489 [NAME]å·²ç»é‚€è¯·æ‚¨åŠ å…¥ä»–们的社团,并æˆä¸ºç¤¾å›¢å®˜å‘˜ã€‚
459加入这个社团无需交纳任何费用。 490加入这个社团无需交纳任何费用。
460 491
461[MESSAGE] 492[MESSAGE]
@@ -466,11 +497,14 @@ QuickTime(http://www.apple.com/quicktime)并安装QuickTime Player.
466 <option name="Decline"> 497 <option name="Decline">
467 è°¢ç» 498 è°¢ç»
468 </option> 499 </option>
500 <option name="Info">
501 ä¿¡æ¯
502 </option>
469 </notify> 503 </notify>
470 <notify name="JoinGroupMember"> 504 <notify name="JoinGroupMember">
471 <message name="message"> 505 <message name="message">
472 [NAME]å·²ç»é‚€è¯·ä½ åŠ å…¥ä»–们的社团æˆä¸ºä¼šå‘˜ã€‚ 506 [NAME]å·²ç»é‚€è¯·æ‚¨åŠ å…¥ä»–们的社团æˆä¸ºä¼šå‘˜ã€‚
473è¦åŠ å…¥è¿™ä¸ªç¤¾å›¢, 你付è¦äº¤çº³æ³¨å†Œè´¹L$[COST] 507è¦åŠ å…¥è¿™ä¸ªç¤¾å›¢ï¼Œæ‚¨éœ€è¦äº¤çº³æ³¨å†Œè´¹L$[COST]。
474 508
475[MESSAGE] 509[MESSAGE]
476 </message> 510 </message>
@@ -480,6 +514,9 @@ QuickTime(http://www.apple.com/quicktime)并安装QuickTime Player.
480 <option name="Decline"> 514 <option name="Decline">
481 è°¢ç» 515 è°¢ç»
482 </option> 516 </option>
517 <option name="Info">
518 ä¿¡æ¯
519 </option>
483 </notify> 520 </notify>
484 <notify name="JoinGroupMemberNoFee"> 521 <notify name="JoinGroupMemberNoFee">
485 <message name="message"> 522 <message name="message">
@@ -494,16 +531,18 @@ QuickTime(http://www.apple.com/quicktime)并安装QuickTime Player.
494 <option name="Decline"> 531 <option name="Decline">
495 è°¢ç» 532 è°¢ç»
496 </option> 533 </option>
534 <option name="Info">
535 ä¿¡æ¯
536 </option>
497 </notify> 537 </notify>
498 <notify name="OfferTeleport"> 538 <notify name="OfferTeleport">
499 <message name="message"> 539 <message name="message">
500 [NAME] has offered to teleport you 540 [NAME] 邀请您瞬间移动到他/她的ä½ç½®:
501to his or her location:
502 541
503[MESSAGE] 542[MESSAGE]
504 </message> 543 </message>
505 <option name="Teleport"> 544 <option name="Teleport">
506 é—ªç”µä¼ é€ 545 瞬间移动
507 </option> 546 </option>
508 <option name="Cancel"> 547 <option name="Cancel">
509 å–消 548 å–消
@@ -523,9 +562,23 @@ to his or her location:
523 </notify> 562 </notify>
524 <notify name="OfferFriendship"> 563 <notify name="OfferFriendship">
525 <message name="message"> 564 <message name="message">
526 [NAME]正在å‘é€å¥½å‹é‚€è¯·. 565 [NAME] 邀请您æˆä¸ºå¥½å‹ã€‚
527 566
528ä½ å¯ä»¥é€šè¿‡åœ°å›¾è¿½è¸ªå½¼æ­¤ï¼Œå¹¶å°†æ”¶åˆ°å¥½å‹åœ¨çº¿çŠ¶æ€æ›´æ–°ã€‚ 567[MESSAGE]
568
569(默认状æ€ä¸‹ï¼Œä½ ä»¬å°†å¯ä»¥äº’相看到对方的在线状况。)
570 </message>
571 <option name="Accept">
572 接å—
573 </option>
574 <option name="Decline">
575 è°¢ç»
576 </option>
577 </notify>
578 <notify name="OfferFriendshipNoMessage">
579 <message name="message">
580 [NAME] 邀请您æˆä¸ºå¥½å‹ã€‚
581(默认状æ€ä¸‹ï¼Œä½ ä»¬å°†å¯ä»¥äº’相看到对方的在线状况。)
529 </message> 582 </message>
530 <option name="Accept"> 583 <option name="Accept">
531 æŽ¥å— 584 接å—
@@ -536,17 +589,17 @@ to his or her location:
536 </notify> 589 </notify>
537 <notify name="FriendshipAccepted"> 590 <notify name="FriendshipAccepted">
538 <message name="message"> 591 <message name="message">
539 [NAME]å·²ç»æŽ¥å—了你å‘é€çš„好å‹é‚€è¯·. 592 [NAME] 接å—了您的好å‹é‚€è¯·ã€‚
540 </message> 593 </message>
541 </notify> 594 </notify>
542 <notify name="FriendshipDeclined"> 595 <notify name="FriendshipDeclined">
543 <message name="message"> 596 <message name="message">
544 [NAME]æ‹’ç»äº†ä½ å‘é€çš„好å‹é‚€è¯·. 597 [NAME] è°¢ç»äº†æ‚¨çš„好å‹é‚€è¯·ã€‚
545 </message> 598 </message>
546 </notify> 599 </notify>
547 <notify name="OfferCallingCard"> 600 <notify name="OfferCallingCard">
548 <message name="message"> 601 <message name="message">
549 [FIRST] [LAST]æ­£æ供他们的通è¯å¡ã€‚这将在你的库存中添加一个书签,这样你就å¯ä»¥å¿«é€Ÿçš„通过å³æ—¶æ¶ˆæ¯è”ç³»ç€ä¸ºå±…民。 602 [FIRST] [LAST] è¦ç»™ä½ ä»–的通è¯å¡ã€‚这将在你的库存中添加一个书签,这样你就å¯ä»¥å¿«é€Ÿçš„通过å³æ—¶æ¶ˆæ¯è”系这ä½å±…民。
550 </message> 603 </message>
551 <option name="Accept"> 604 <option name="Accept">
552 æŽ¥å— 605 接å—
@@ -557,14 +610,14 @@ to his or her location:
557 </notify> 610 </notify>
558 <notify name="RegionRestartMinutes"> 611 <notify name="RegionRestartMinutes">
559 <message name="message"> 612 <message name="message">
560 区域将在 [MINUTES]分钟åŽé‡å¯ã€‚ 613 地区将在 [MINUTES]分钟åŽé‡æ–°å¯åŠ¨ã€‚
561如果ä»ç•™åœ¨æ­¤åŒºåŸŸå†…将会退出游æˆ. 614如果ä»ç•™åœ¨æ­¤åœ°åŒºå†…,您将会被登出。
562 </message> 615 </message>
563 </notify> 616 </notify>
564 <notify name="RegionRestartSeconds"> 617 <notify name="RegionRestartSeconds">
565 <message name="message"> 618 <message name="message">
566 区域将在 [MINUTES]秒åŽé‡å¯ã€‚ 619 区域将在 [MINUTES]秒åŽé‡æ–°å¯åŠ¨ã€‚
567如果ä»ç•™åœ¨æ­¤åŒºåŸŸå†…将会退出游æˆ. 620如果ä»ç•™åœ¨æ­¤åœ°åŒºå†…,您将会被登出。
568 </message> 621 </message>
569 </notify> 622 </notify>
570 <notify name="LoadWebPage"> 623 <notify name="LoadWebPage">
@@ -573,10 +626,10 @@ to his or her location:
573 626
574[MESSAGE] 627[MESSAGE]
575 628
576æ¥è‡ªä¸œä¸œ: [OBJECTNAME],主人 : [NAME]? 629æ¥è‡ªç‰©ä½“: [OBJECTNAME], 主人: [NAME]?
577 </message> 630 </message>
578 <option name="Gotopage"> 631 <option name="Gotopage">
579 回主页 632 打开网页
580 </option> 633 </option>
581 <option name="Cancel"> 634 <option name="Cancel">
582 å–消 635 å–消
@@ -584,98 +637,142 @@ to his or her location:
584 </notify> 637 </notify>
585 <notify name="FailedToLoadWearableUnnamed"> 638 <notify name="FailedToLoadWearableUnnamed">
586 <message name="message"> 639 <message name="message">
587 载入[TYPE]失败. 640 å“Žå‘€ï¼
588请注明您从哪ä½å–主处购得此项物å“。 641您刚刚å°è¯•ç©¿ä¸Šçš„ [TYPE] 没能够加载。
642
643别紧张。
644ç¨å¾®ç­‰ä¸€ä¸‹å†è¯•ä¸€æ¬¡ï¼Œçœ‹çœ‹äº‹æƒ…会ä¸ä¼šå¥½ä¸€äº›ã€‚
589 </message> 645 </message>
590 </notify> 646 </notify>
591 <notify name="FailedToLoadWearable"> 647 <notify name="FailedToLoadWearable">
592 <message name="message"> 648 <message name="message">
593 载入å为[DESC]çš„[TYPE]失败. 649 å“Žå‘€ï¼
594请注明你从哪ä½å–主处购得此项物å“。 650您刚刚å°è¯•ç©¿ä¸Šçš„å«åš [NAME] çš„ [TYPE] 没能够加载。
651
652别紧张。
653ç¨å¾®ç­‰ä¸€ä¸‹å†è¯•ä¸€æ¬¡ï¼Œçœ‹çœ‹äº‹æƒ…会ä¸ä¼šå¥½ä¸€äº›ã€‚
595 </message> 654 </message>
596 </notify> 655 </notify>
597 <notify name="FailedToFindWearableUnnamed"> 656 <notify name="FailedToFindWearableUnnamed">
598 <message name="message"> 657 <message name="message">
599 在数æ®åº“中查找[TYPE]失败。 658 在数æ®åº“中没能找到[TYPE]。
600 </message> 659 </message>
601 </notify> 660 </notify>
602 <notify name="FailedToFindWearable"> 661 <notify name="FailedToFindWearable">
603 <message name="message"> 662 <message name="message">
604 在数æ®åº“中查找å为[DESC]çš„[TYPE]失败。 663 在数æ®åº“中没能找到å为 [DESC] çš„[TYPE]。
605 </message> 664 </message>
606 </notify> 665 </notify>
666 <!--a script want to... / 脚本想è¦... -->
607 <notify name="ScriptTakeMoney"> 667 <notify name="ScriptTakeMoney">
608 <message name="message"> 668 <message name="message">
609 Take Linden dollars (L$) from you 669 从您那里å–èµ°æž—ç™»å¸(L$)
610 </message> 670 </message>
611 </notify> 671 </notify>
612 <notify name="ActOnControlInputs"> 672 <notify name="ActOnControlInputs">
613 <message name="message"> 673 <message name="message">
614 æ§è¡Œä½ è¾“å…¥çšå‘½ä»¤ 674 对您的控制输入åšå‡ºå应
615 </message> 675 </message>
616 </notify> 676 </notify>
617 <notify name="RemapControlInputs"> 677 <notify name="RemapControlInputs">
618 <message name="message"> 678 <message name="message">
619 é‡æ–°å¸ƒç½®ä½ çš„æŽ§åˆ¶æŒ‰é® 679 é‡æ–°å¸ƒç½®ä½ çš„控制按é®
620 </message> 680 </message>
621 </notify> 681 </notify>
622 <notify name="AnimateYourAvatar"> 682 <notify name="AnimateYourAvatar">
623 <message name="message"> 683 <message name="message">
624 Animate your avatar 684 在您的化身上播放动画
625 </message> 685 </message>
626 </notify> 686 </notify>
627 <notify name="AttachToYourAvatar"> 687 <notify name="AttachToYourAvatar">
628 <message name="message"> 688 <message name="message">
629 å’Œä½ çš„åŒ–èº«ç»‘å®šèµ·æ¥ 689 装备到您的身上
630 </message> 690 </message>
631 </notify> 691 </notify>
632 <notify name="ReleaseOwnership"> 692 <notify name="ReleaseOwnership">
633 <message name="message"> 693 <message name="message">
634 放弃主人æƒåˆ©å¹¶é‡æ–°æˆä¸ºç™¾å§ 694 放弃主人æƒåˆ©å¹¶æˆä¸ºå…¬ä¼—物å“
635 </message> 695 </message>
636 </notify> 696 </notify>
637 <notify name="LinkAndDelink"> 697 <notify name="LinkAndDelink">
638 <message name="message"> 698 <message name="message">
639 建立或å–消和该东东的连接 699 建立或解除与其他物å“的链接
640 </message> 700 </message>
641 </notify> 701 </notify>
642 <notify name="AddAndRemoveJoints"> 702 <notify name="AddAndRemoveJoints">
643 <message name="message"> 703 <message name="message">
644 添加或移走两个东东之间的连接点 704 添加或移除与其他物体之间的连接点
645 </message> 705 </message>
646 </notify> 706 </notify>
647 <notify name="ChangePermissions"> 707 <notify name="ChangePermissions">
648 <message name="message"> 708 <message name="message">
649 更改此处的许å¯è¯ 709 更改其许å¯æƒåˆ©
650 </message> 710 </message>
651 </notify> 711 </notify>
652 <notify name="TrackYourCamera"> 712 <notify name="TrackYourCamera">
653 <message name="message"> 713 <message name="message">
654 追踪你的摄åƒå¤´ 714 追踪您的视角
655 </message> 715 </message>
656 </notify> 716 </notify>
657 <notify name="ControlYourCamera"> 717 <notify name="ControlYourCamera">
658 <message name="message"> 718 <message name="message">
659 è°ƒèŠä½ çš„æ‘„åƒå¤´ 719 控制æ¨çš„视角
660 </message> 720 </message>
661 </notify> 721 </notify>
662 <notify name="ScriptQuestion"> 722 <notify name="ScriptQuestion">
663 <message name="message"> 723 <message name="message">
664 &apos;[OBJECTNAME]&apos;, an object owned by &apos;[NAME]&apos;, would like to: 724 ‘[OBJECTNAME]’, 一件 ‘[NAME]’ 拥有的物体, 想è¦:
665 725
666[QUESTIONS] 726[QUESTIONS]
667Is this OK? 727这样å¯ä»¥å—?
668 </message> 728 </message>
669 <option name="Yes"> 729 <option name="Yes">
670 是 730 å…许
671 </option> 731 </option>
672 <option name="No"> 732 <option name="No">
673 å¦ 733 æ‹’ç»
734 </option>
735 <option name="Mute">
736 å±è”½
737 </option>
738 </notify>
739 <notify name="ScriptQuestionCautionChatGranted" tip="false">
740 <message name="message">
741 ‘[OBJECTNAME]’, 主人为 ‘[OWNERNAME]’ 的物体, ä½äºŽ [REGIONNAME] 地区 [REGIONPOS], 已被授予以下æƒåˆ©: [PERMISSIONS]。
742 </message>
743 </notify>
744 <notify name="ScriptQuestionCautionChatDenied" tip="false">
745 <message name="message">
746 ‘[OBJECTNAME]’, 主人为 ‘[OWNERNAME]’ 的物体, ä½äºŽ [REGIONNAME] 地区 [REGIONPOS], 已被拒ç»ä»¥ä¸‹æƒåˆ©: [PERMISSIONS]。
747 </message>
748 </notify>
749 <notify name="ScriptQuestionCautionWarn" tip="false">
750 <message name="message">
751 有物体希望您å…许它从您的å¸æˆ·ä¸­æå–æž—ç™»å¸(L$)。
752 </message>
753 </notify>
754 <notify caution="true" name="ScriptQuestionCaution" tip="false">
755 <message name="message">
756 ‘[OBJECTNAME]’, 一件 ‘[NAME]’ 拥有的物体, 想è¦:
757
758[QUESTIONS]
759如果您ä¸ä¿¡ä»»è¯¥ç‰©ä½“和它的创建者,您应该拒ç»è¿™è¯·æ±‚。点击细节按钮察看详细资料。
760
761是å¦æŽˆäºˆè®¸å¯ï¼Ÿ
762 </message>
763 <option name="Grant">
764 授予
765 </option>
766 <option default="true" name="Deny">
767 è°¢ç»
768 </option>
769 <option name="Details">
770 细节...
674 </option> 771 </option>
675 </notify> 772 </notify>
676 <notify name="ScriptDialog"> 773 <notify name="ScriptDialog">
677 <message name="message"> 774 <message name="message">
678 [FIRST] [LAST]&apos;s &apos;[TITLE]&apos; 775 [FIRST] [LAST] 的 ‘[TITLE]’
679[MESSAGE] 776[MESSAGE]
680 </message> 777 </message>
681 <option name="Ignore"> 778 <option name="Ignore">
@@ -684,7 +781,7 @@ Is this OK?
684 </notify> 781 </notify>
685 <notify name="ScriptDialogGroup"> 782 <notify name="ScriptDialogGroup">
686 <message name="message"> 783 <message name="message">
687 [GROUPNAME]&apos;s &apos;[TITLE]&apos; 784 [GROUPNAME] 的 ‘[TITLE]’
688[MESSAGE] 785[MESSAGE]
689 </message> 786 </message>
690 <option name="Ignore"> 787 <option name="Ignore">
@@ -693,86 +790,259 @@ Is this OK?
693 </notify> 790 </notify>
694 <notify name="FirstBalanceIncrease"> 791 <notify name="FirstBalanceIncrease">
695 <message name="message"> 792 <message name="message">
696 You just received L$[AMOUNT]. 793 您刚收到了 L$[AMOUNT]。
697Objects and other users may give you L$. 794物体和其他用户å¯ä»¥å‘您支付L$。
698Your balance is shown in the 795您的å¸æˆ·ä½™é¢æ˜¾ç¤ºåœ¨å±å¹•çš„å³ä¸Šè§’。
699upper-right corner of the screen.
700 </message> 796 </message>
701 </notify> 797 </notify>
702 <notify name="FirstBalanceDecrease"> 798 <notify name="FirstBalanceDecrease">
703 <message name="message"> 799 <message name="message">
704 你刚支付了 L$[AMOUNT]. 800 您刚支付了 L$[AMOUNT]。
705ä½ çš„å¸æˆ·ç»“余在å±å¹•çš„å³ä¸Šè§’显示。 801您的å¸æˆ·ä½™é¢æ˜¾ç¤ºåœ¨å±å¹•çš„å³ä¸Šè§’。
706 </message> 802 </message>
707 </notify> 803 </notify>
708 <notify name="FirstSit"> 804 <notify name="FirstSit">
709 <message name="message"> 805 <message name="message">
710 你正在åç€. 806 您正在åç€ã€‚
711使用方å‘é”®(或者AWSD)æ¥æ”¹å˜è§†è§’. 807使用方å‘é”® (或者AWSD) æ¥æ”¹å˜è§†è§’。
712点击&apos;站起æ¥&apos;按钮起身。 808点击 ‘站起æ¥â€™ 按钮起身。
713 </message> 809 </message>
714 </notify> 810 </notify>
715 <notify name="FirstMap"> 811 <notify name="FirstMap">
716 <message name="message"> 812 <message name="message">
717 点击并拖拉地图以查看地图全景. 813 点击并拖动地图以查看全景。
718åŒå‡»è¯¥åœ°å€ï¼Œå¯ä»¥é—ªç”µä¼ è¿è‡³è¯¥å¤„. 814åŒå‡»ä»¥çž¬é—´ç§»åŠ¨ã€‚
719使用å³è¾¹çš„控åˆé”®æŸ¥æ‰¾ä¿¡æ¯ï¼Œå¹¶æ˜¾ç¤ºä¸åŒçš„背景. 815使用å³è¾¹çš„控件查找信æ¯ï¼Œå¹¶æ˜¾ç¤ºä¸åŒçš„背景.
720 </message> 816 </message>
721 </notify> 817 </notify>
722 <notify name="FirstBuild"> 818 <notify name="FirstBuild">
723 <message name="message"> 819 <message name="message">
724 ä½ å¯ä»¥åœ¨[SECOND_LIFE]中的æŸäº›åŒºåŸŸå†…创建新东东。 820 您å¯ä»¥åœ¨ [SECOND_LIFE] çš„æŸäº›åŒºåŸŸä¸­åˆ›å»ºæ–°ç‰©ä½“。
725使用左上角的工具创建新东东,å¹æŒ‰ä½Ctrl或者Alt键以è¿é€Ÿçš„更改工具。 821使用左上角的工具建造,也试一试按下 Ctrl 或者 Alt 键快速地切æ¢å·¥å…·ã€‚
726按Escé”®åœæ­¢åˆ›å»ºä¸œä¸œã€‚ 822按 Esc é”®åœæ­¢å»ºé€ ã€‚
727 </message> 823 </message>
728 </notify> 824 </notify>
729 <notify name="FirstLeftClickNoHit"> 825 <notify name="FirstLeftClickNoHit">
730 <message name="message"> 826 <message name="message">
731 点击左键会和一些特殊东东相互干扰。 827 点击左键å¯ä»¥ä¸Žç‰¹æ®Šçš„物体互动。
732如果鼠标箭头指å手, ä½ å¯èƒ½è¢«ä¸œä¸œå¹²æ°ã€‚ 828如果鼠标指针æˆä¸ºæ‰‹åž‹ï¼Œæ‚¨å°±å¯ä»¥ä¸Žè¯¥ç©ä½“互动。
733点击å³é”®æ˜¾ç¤ºèœå•ã€‚ 829点击å³é”®æ€»æ˜¯ä¼šæ˜¾ç¤ºæ‚¨å¯ä»¥åšçš„事的èœå•ã€‚
734 </message> 830 </message>
735 </notify> 831 </notify>
736 <notify name="FirstTeleport"> 832 <notify name="FirstTeleport">
737 <message name="message"> 833 <message name="message">
738 你刚刚进行äºé—ªç”µä¼ è¿. 834这个地区ä¸å…许点对点瞬间移动,所以您被移动到了最近的瞬移枢纽上。
739 835您的目的地由一个高的信标标出。
740你现在在离你ç®çš„地æœè¿‘çš„ä¿¡æ¯ç»“点上。你的目的地由ä¸ä¸ªçº¢äº®ç‚¹æ ‡å‡ºã€‚ 836è·Ÿç红色箭头å‰å¾€ä¿¡æ ‡ä½ç½®ï¼Œæˆ–è点å»ç®­å¤´å…³é—­ä¿¡æ ‡ã€‚
741 </message> 837 </message>
742 </notify> 838 </notify>
743 <notify name="FirstOverrideKeys"> 839 <notify name="FirstOverrideKeys">
744 <message name="message"> 840 <message name="message">
745 Your movement keys are now being handled by an object. 841 您的动作控制按键现在被一件物体控制。
746Try the arrow keys or AWSD to see what they do. 842å°è¯•ä¸€ä¸‹ç®­å¤´é”®æˆ– AWSD 看看它们的作用。
747Some objects (like guns) require you to go into mouselook to use them. 843æŸäº›ç‰©ä½“ (例如枪) 需è¦æ‚¨è¿›å…¥é¼ æ ‡è§†è§’æ‰èƒ½ä½¿ç”¨ã€‚
748Press &apos;M&apos; to do this. 844按 ‘M’ 键进入鼠标视角。
749 </message> 845 </message>
750 </notify> 846 </notify>
751 <notify name="FirstAppearance"> 847 <notify name="FirstAppearance">
752 <message name="message"> 848 <message name="message">
753 你正在编辑你的外表。è¦æ—‹è½¬å¹¶æ”¾å¤§æŸ¥çœ‹ï¼Œè¯·ä½¿ç”¨ç®­å¤´é”®ã€‚当你结æŸçš„时候,点击 &apos;全部ä¿å­˜&apos;按钮,æ¥ä¿å­˜ä½ çš„外形并退出。你å¯ä»¥å°½ä½ å–œæ¬¢çš„频ç¹ç¼–辑你的外形, 849 您正在编辑您的外观。è¦æ—‹è½¬æˆ–者缩放视角,使用箭头键。编辑完了的时候,点击 ‘全部ä¿å­˜â€™ 按钮,æ¥ä¿å­˜æ‚¨çš„外观并退出。您在任何时候都å¯ä»¥éšæ„编辑外观。
754 </message> 850 </message>
755 </notify> 851 </notify>
756 <notify name="FirstInventory"> 852 <notify name="FirstInventory">
757 <message name="message"> 853 <message name="message">
758 这是你的库存, åŒå«ä¸œä¸œ, 注释å¡, æœé¥°, 和其他你所拥有的东东. 854 这是您的库存,是存放物体ã€è®°äº‹å¡ã€è¡£æœå’Œæ‚¨æ‹¥æœ‰çš„其他东西的地方。
759* è¦ç©¿ä¸Šè¡£æœæˆ–者å¯ç”¨è£…备, æ–拽对象è³èº«ä½“. 855* è¦ç©¿ä¸Šç‰©ä½“或装备文件夹,将它æ‹åŠ¨åˆ°æ‚¨è‡ªå·±èº«ä¸Šã€‚
760* è¦æŠŠå¯¹è±¡å¸¦å…¥æ¸¸æˆä¸–ç•Œ, 拖拽对象至地é¢. 856* è¦å°†ç‰©ä½“带入世界中,将它拖动到地上。
761* è¦é˜…读注释å¡, åŒå‡»æ³¨é‡Šå¡. 857* è¦é˜…读记事å¡ï¼ŒåŒå‡»å®ƒã€‚
762 </message> 858 </message>
763 </notify> 859 </notify>
764 <notify name="FirstSandbox"> 860 <notify name="FirstSandbox">
765 <message name="message"> 861 <message name="message">
766 这是一å—沙盒区域。 862 这是一å—沙盒区域。
767在这里创建的东东将在其离开这里åŽè¢«åˆ é™¤ï¼Œä¸”此区域将æ¯[HOURS]å°æ—¶æŠ¹åŽ»ä¸€æ¬¡æ‰€åˆ›å»ºä¸œä¸œï¼Œå§‹äºŽå¤ªå¹³æ´‹æ—¶é—´æ—©ä¸Š[TIME]. 863在这里创建的物体在您离开åŽå¯èƒ½ä¼šåˆ é™¤ã€‚沙盒区域会被定期清空,请å‚ç…§å±å¹•ä¸Šæ–¹åŒºåŸŸå称æ—边的信æ¯ã€‚
768 864
769沙盒区域并ä¸å¸¸è§, 并会有特殊标识标出。 865沙盒区域并ä¸å¸¸è§, 并会有特殊标识标出。
770 </message> 866 </message>
771 </notify> 867 </notify>
772 <notify name="FirstFlexible"> 868 <notify name="FirstFlexible">
773 <message name="message"> 869 <message name="message">
774 这个东东是活动的. 870 该物体是活动的。
775活动的东东å¯èƒ½ä¸å…·å¤‡ç‰©ç†ç‰¹è´¨ï¼Œå¹¶ä¸€å®šæ˜¯å¹»å½±ï¼Œé™¤éžæ´»åŠ¨æ€§é€‰æ‹©æ æ²¡æœ‰è¢«é€‰å®šã€‚ 871活动物体ä¸èƒ½åŒæ—¶ä¸ºç‰©ç†çš„,并且必须为幻影,除éžå–消其活动性。
872 </message>
873 </notify>
874 <notify name="FirstDebugMenus" tip="false">
875 <message name="message">
876 您已å¯ç”¨äº†é«˜çº§èœå•ã€‚
877该èœå•åŒ…å«å¯¹è°ƒè¯•ç¬¬äºŒäººç”Ÿçš„å¼€å‘者有用的功能。
878è¦åˆ‡æ¢è¯¥èœå•ï¼Œåœ¨ Windows 中按 Ctrl-Alt-D. 在 Mac 中按 Cmd-Opt-Shift-D.
879 </message>
880 </notify>
881 <notify name="FirstSculptedPrim" tip="false">
882 <message name="message">
883 您正在编辑 sculpted 元件。
884Sculpted 元件需è¦ç‰¹æ®Šçš„æè´¨æ¥æŒ‡å®šå…¶å½¢çŠ¶ã€‚
885您å¯ä»¥åœ¨åº“存库中找到示范 sculpted æ质。
886 </message>
887 </notify>
888 <notify name="FirstMedia" tip="false">
889 <message name="message">
890 您已ç»å¼€å§‹æ’­æ”¾åª’体。媒体å¯ä»¥åœ¨å‚数设置的音频和视频一æ ä¸­è®¾ç½®ä¸ºè‡ªåŠ¨æ’­æ”¾ã€‚请注æ„这对于您ä¸ä¿¡ä»»çš„媒体站点å¯èƒ½ä¼šæœ‰å®‰å…¨éšæ‚£ã€‚
891 </message>
892 </notify>
893 <notify name="MaxListSelectMessage" tip="true">
894 <message name="message">
895 您从该列表中最多åªèƒ½é€‰æ‹©[MAX_SELECT] 个项目。
896 </message>
897 </notify>
898 <notify name="VoiceInviteP2P" tip="false" unique="true">
899 <message name="message">
900 [NAME] 正在邀请您加入语音èŠå¤©ã€‚
901点击接å—æ¥åŠ å…¥å¯¹è¯æˆ–按谢ç»æ¥æ‹’ç»é‚€è¯·ã€‚点击å±è”½æ¥å±è”½è¯¥å‘¼å«è€…。
902 </message>
903 <option name="Accept">
904 接å—
905 </option>
906 <option name="Decline">
907 è°¢ç»
908 </option>
909 <option name="Mute">
910 å±è”½
911 </option>
912 </notify>
913 <notify name="AutoUnmuteByIM" tip="false">
914 <message name="message">
915 æ‚¨å‘ [FIRST] [LAST] å‘é€äº†ä¸€æ¡å³æ—¶æ¶ˆæ¯ï¼Œæ‰€ä»¥ä»–å·²ç»è¢«è‡ªåŠ¨è§£é™¤å±è”½ã€‚
916 </message>
917 </notify>
918 <notify name="AutoUnmuteByMoney" tip="false">
919 <message name="message">
920 æ‚¨å‘ [FIRST] [LAST] 付款,所以他已ç»è¢«è‡ªåŠ¨è§£é™¤å±è”½ã€‚
921 </message>
922 </notify>
923 <notify name="AutoUnmuteByInventory" tip="false">
924 <message name="message">
925 您正给与 [FIRST] [LAST] 库存物å“,所以他已ç»è¢«è‡ªåŠ¨è§£é™¤å±è”½ã€‚
926 </message>
927 </notify>
928 <notify name="VoiceInviteGroup" tip="false" unique="true">
929 <message name="message">
930 [NAME] 加入了与 [GROUP] 社团的语音èŠå¤© .
931点击接å—æ¥åŠ å…¥å¯¹è¯æˆ–按谢ç»æ¥æ‹’ç»é‚€è¯·ã€‚点击å±è”½æ¥å±è”½è¯¥å‘¼å«è€…。
932 </message>
933 <option name="Accept">
934 接å—
935 </option>
936 <option name="Decline">
937 è°¢ç»
938 </option>
939 <option name="Mute">
940 å±è”½
941 </option>
942 </notify>
943 <notify name="VoiceInviteAdHoc" tip="false" unique="true">
944 <message name="message">
945 [NAME] 加入了一个语音èŠå¤©ä¼šè®®ã€‚
946点击接å—æ¥åŠ å…¥å¯¹è¯æˆ–按谢ç»æ¥æ‹’ç»é‚€è¯·ã€‚点击å±è”½æ¥å±è”½è¯¥å‘¼å«è€…。
947 </message>
948 <option name="Accept">
949 接å—
950 </option>
951 <option name="Decline">
952 è°¢ç»
953 </option>
954 <option name="Mute">
955 å±è”½
956 </option>
957 </notify>
958 <notify name="InviteAdHoc" tip="false" unique="true">
959 <message name="message">
960 [NAME] 正在邀请您加入语音èŠå¤©ä¼šè®®ã€‚
961点击接å—æ¥åŠ å…¥å¯¹è¯æˆ–按谢ç»æ¥æ‹’ç»é‚€è¯·ã€‚点击å±è”½æ¥å±è”½è¯¥å‘¼å«è€…。
962 </message>
963 <option name="Accept">
964 接å—
965 </option>
966 <option name="Decline">
967 è°¢ç»
968 </option>
969 <option name="Mute">
970 å±è”½
971 </option>
972 </notify>
973 <notify name="VoiceChannelFull" tip="true" unique="true">
974 <message name="message">
975 您å°è¯•åŠ å…¥çš„语音呼å«ï¼Œ [VOICE_CHANNEL_NAME], å·²ç»è¾¾åˆ°æœ€å¤§æˆå‘˜æ•°ã€‚请ç¨å€™å†è¯•ã€‚
976 </message>
977 </notify>
978 <notify name="ProximalVoiceChannelFull" tip="true" unique="true">
979 <message name="message">
980 我们很抱歉。该区域已ç»è¾¾åˆ°è¯­éŸ³äº¤æµçš„最大æˆå‘˜æ•°ã€‚请å°è¯•åœ¨å…¶ä»–区域使用语音èŠå¤©ã€‚
981 </message>
982 </notify>
983 <notify name="VoiceChannelDisconnected" tip="true" unique="true">
984 <message name="message">
985 您已ç»ä»Ž [VOICE_CHANNEL_NAME] 断开连接。 您现在将会被é‡æ–°è¿žæŽ¥åˆ°ç©ºé—´è¯­éŸ³èŠå¤©ã€‚
986 </message>
987 </notify>
988 <notify name="VoiceChannelDisconnectedP2P" tip="true" unique="true">
989 <message name="message">
990 [VOICE_CHANNEL_NAME] å·²ç»ç»“æŸå‘¼å«ã€‚您现在将会被é‡æ–°è¿žæŽ¥åˆ°ç©ºé—´è¯­éŸ³èŠå¤©ã€‚
991 </message>
992 </notify>
993 <notify name="P2PCallDeclined" tip="true" unique="true">
994 <message name="message">
995 [VOICE_CHANNEL_NAME] è°¢ç»äº†æ‚¨çš„呼å«ã€‚您现在将会被é‡æ–°è¿žæŽ¥åˆ°ç©ºé—´è¯­éŸ³èŠå¤©ã€‚
996 </message>
997 </notify>
998 <notify name="P2PCallNoAnswer" tip="true" unique="true">
999 <message name="message">
1000 [VOICE_CHANNEL_NAME] æš‚æ—¶ä¸èƒ½æŽ¥å¬æ‚¨çš„呼å«ã€‚您现在将会被é‡æ–°è¿žæŽ¥åˆ°ç©ºé—´è¯­éŸ³èŠå¤©ã€‚
1001 </message>
1002 </notify>
1003 <notify name="VoiceChannelJoinFailed" tip="true" unique="true">
1004 <message name="message">
1005 连接到 [VOICE_CHANNEL_NAME] 失败,请ç¨å€™å†è¯•ã€‚您现在将会被é‡æ–°è¿žæŽ¥åˆ°ç©ºé—´è¯­éŸ³èŠå¤©ã€‚
1006 </message>
1007 </notify>
1008 <notify duration="10" name="VoiceLoginRetry" tip="true" unique="true">
1009 <message name="message">
1010 我们正在为您创建语音èŠå¤©é¢‘é“。最多会需è¦ä¸€åˆ†é’Ÿã€‚
1011 </message>
1012 </notify>
1013 <notify name="Cannot enter parcel: not a group member" tip="true">
1014 <message name="message">
1015 无法进入地å—,您ä¸æ˜¯åˆé€‚的社团的会员。
1016 </message>
1017 </notify>
1018 <notify name="Cannot enter parcel: banned" tip="true">
1019 <message name="message">
1020 无法进入地å—,您已被ç¦æ­¢è¿›å…¥ã€‚
1021 </message>
1022 </notify>
1023 <notify name="Cannot enter parcel: not on access list" tip="true">
1024 <message name="message">
1025 无法进入地å—,您ä¸åœ¨å…许åå•ä¸Šã€‚
1026 </message>
1027 </notify>
1028 <notify name="VoiceNotAllowed" tip="true" unique="true">
1029 <message name="message">
1030 您没有连接到 [VOICE_CHANNEL_NAME] 的语音èŠå¤©çš„许å¯ã€‚
1031 </message>
1032 </notify>
1033 <notify name="VoiceCallGenericError" tip="true" unique="true">
1034 <message name="message">
1035 å°è¯•è¿žæŽ¥åˆ° [VOICE_CHANNEL_NAME] æ—¶å‘生错误。 请ç¨å€™å†è¯•ã€‚
1036 </message>
1037 </notify>
1038 <notify caution="true" duration="10" name="ServerVersionChanged" tip="true">
1039 <message name="message">
1040 您刚进入的区域正在è¿è¡Œä¸åŒçš„模拟器版本。点击该消æ¯å¯Ÿçœ‹è¯¦ç»†èµ„料。
1041 </message>
1042 </notify>
1043 <notify caution="true" name="UnableToOpenCommandURL" tip="true">
1044 <message name="message">
1045 您点击的URLä¸èƒ½ä»Žè¯¥æµè§ˆå™¨ä¸­æ‰“开。
776 </message> 1046 </message>
777 </notify> 1047 </notify>
778</notifications> 1048</notifications>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_audio.xml b/linden/indra/newview/skins/default/xui/zh/panel_audio.xml
new file mode 100644
index 0000000..f2ec305
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_audio.xml
@@ -0,0 +1,30 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes"?>
2<panel
3 label="音é‡"
4 name="Media panel">
5 <check_box
6 label="é™éŸ³"
7 name="disable audio" />
8
9 <slider name="System Volume"
10 label="总体" />
11 <slider name="Music Volume"
12 label="音ä¹" />
13 <slider
14 name="Media Volume"
15 label="媒体" />
16 <slider
17 name="Voice Volume"
18 label="语音" />
19
20 <slider
21 name="SFX Volume"
22 label="音效" />
23 <slider
24 name="Wind Volume"
25 label="环境" />
26 <slider name="UI Volume"
27 label="ç•Œé¢" />
28
29</panel>
30<!--Translated by Geneko Nemeth for Second Life 1.19.0 (79185)-->
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_audio_device.xml b/linden/indra/newview/skins/default/xui/zh/panel_audio_device.xml
new file mode 100644
index 0000000..457e63f
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_audio_device.xml
@@ -0,0 +1,44 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel
3 name="device_settings">
4 <text
5 name="Audio Devices">
6 音频设备
7 </text>
8
9 <text
10 name="Input device (microphone):">
11 输入设备( 麦克风) :
12 </text>
13
14 <text
15 name="Output device (speakers):">
16 输出设备 (扬声器):
17 </text>
18 <combo_box
19 allow_text_entry="false"
20 max_chars="128"
21 name="voice_output_device" />
22
23 <text
24 name="Input level:">
25 输入音é‡
26 </text>
27
28 <text_editor
29 name="voice_intro_text1">调节滑å—æ¥æŽ§åˆ¶ä½ è¯´çš„è¯çš„音é‡ã€‚ è¦æµ‹è¯•è¾“入音é‡çš„è¯ï¼Œåªè¦å¯¹ç€ä½ çš„麦克风说è¯å°±å¯ä»¥äº†ã€‚</text_editor>
30
31 <volume_slider
32 name="mic_volume_slider"
33 tool_tip="用这个滑å—调节音é‡ã€‚" />
34
35 <text
36 name="wait_text">
37 请ç¨å€™
38 </text>
39
40
41 <text
42 name="default_text" >"默认"</text>
43
44 </panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_avatar.xml b/linden/indra/newview/skins/default/xui/zh/panel_avatar.xml
index 1abfa1f..8f8d8d7 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_avatar.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_avatar.xml
@@ -1,16 +1,17 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="Panel Avatar"> 2<panel name="Panel Avatar">
3 <tab_container name="tab"> 3 <tab_container name="tab">
4 <panel label="2nd Life" name="2nd Life"> 4 <panel label="第二人生" name="2nd Life">
5 <text name="CaptionTextAcctInfo"> 5 <text name="CaptionTextAcctInfo">
6 [ACCTTYPE] 6 [ACCTTYPE]
7[PAYMENTINFO] 7[PAYMENTINFO]
8[AGEVERIFICATION]
8 </text> 9 </text>
9 <text name="AcctTypeResident"> 10 <text name="AcctTypeResident">
10 å±…æ°‘ 11 å±…æ°‘
11 </text> 12 </text>
12 <text name="AcctTypeTrial"> 13 <text name="AcctTypeTrial">
13 试用 14 试用者
14 </text> 15 </text>
15 <text name="AcctTypeCharterMember"> 16 <text name="AcctTypeCharterMember">
16 宪章制定委员会æˆå‘˜ 17 宪章制定委员会æˆå‘˜
@@ -19,38 +20,51 @@
19 林登实验室雇员 20 林登实验室雇员
20 </text> 21 </text>
21 <text name="PaymentInfoUsed"> 22 <text name="PaymentInfoUsed">
22 ä½¿ç”¨çš„æ”¯ä»˜ä¿¡æ¯ 23 支付信æ¯å·²ä½¿ç”¨
23 </text> 24 </text>
24 <text name="PaymentInfoOnFile"> 25 <text name="PaymentInfoOnFile">
25 æ–‡ä»¶ä¸­çš„æ”¯ä»˜ä¿¡æ¯ 26 支付信æ¯åœ¨æ¡ˆ
26 </text> 27 </text>
27 <text name="NoPaymentInfoOnFile"> 28 <text name="NoPaymentInfoOnFile">
28 æ–‡ä»¶ä¸­æ²¡æœ‰æ–°ç”¨æˆ·çš„æ”¯ä»˜ä¿¡æ¯ 29 无支付信æ¯
30 </text>
31 <text
32 name="AgeVerified" >
33 年龄已验è¯
34 </text>
35 <text
36 name="NotAgeVerified" >
37 年龄未验è¯
29 </text> 38 </text>
30 <text name="Name:"> 39 <text name="Name:">
31 åå­—: 40 åå­—:
32 </text> 41 </text>
33 <text name="online_yes"> 42 <text name="online_yes">
34 是å¦åœ¨çº¿: 是 43 当å‰åœ¨çº¿
35 </text> 44 </text>
36 <text name="online_no"> 45 <text name="online_no">
37 是å¦åœ¨çº¿: å¦ 46 ä¸åœ¨çº¿
38 </text> 47 </text>
39 <text name="online_unknown"> 48 <text name="online_unknown">
40 是å¦åœ¨çº¿: 未知 49 在线状æ€æœªçŸ¥
41 </text> 50 </text>
42 <text name="label"> 51 <text name="label">
43 天生的: 52 出生:
44 </text> 53 </text>
45 <text name="label2"> 54 <text name="label2">
46 账户: 55 账户:
47 </text> 56 </text>
48 <text name="partner_label" 57 <text name="partner_label"
49 tool_tip="第二人生åˆä½œè€…. è¦èŽ·å–更多关于如何设置此项功能, 请登陆www.secondlife.com/partner"> 58 tool_tip="第二人生æ­æ¡£ã€‚è¦èŽ·å–更多关于如何设置此项功能, 请登陆www.secondlife.com/partner">
50 æ­æ¡£: 59 æ­æ¡£:
51 </text> 60 </text>
61 <button
62 label="i"
63 label_selected="i"
64 name="partner_info"
65 tool_tip="点击打开æ­æ¡£çš„档案" />
52 <line_editor name="partner_edit" 66 <line_editor name="partner_edit"
53 tool_tip="第二人生åˆä½œè€…. è¦èŽ·å–更多关于如何设置此项功能, 请登陆www.secondlife.com/partner"> 67 tool_tip="第二人生æ­æ¡£ã€‚è¦èŽ·å–更多关于如何设置此项功能, 请登陆www.secondlife.com/partner">
54 [FIRST] [LAST] 68 [FIRST] [LAST]
55 </line_editor> 69 </line_editor>
56 <text name="Photo:"> 70 <text name="Photo:">
@@ -70,47 +84,63 @@
70 (500 个字) 84 (500 个字)
71 </text> 85 </text>
72 <text name="Give item:"> 86 <text name="Give item:">
73 æ供项目: 87 给与物å“:
74 </text> 88 </text>
75 <text name="Give inventory" 89 <text name="Give inventory"
76 tool_tip="将库存内的物å放于此地并给与此人。"> 90 tool_tip="è¦æŠŠåº“存中的物ä½èµ ä¸Žè¿™ä¸ªäººï¼Œå°†å…¶æ‹–动到这里。">
77 放置目录内容于此. 91 放置库存物å于此。
78 </text> 92 </text>
79 <check_box label="在网上公布" name="allow_publish" 93 <check_box label="在æœç´¢ç»“果中显示" name="allow_publish"
80 tool_tip="将你个人的简介å‘布到网上." /> 94 tool_tip="在æœç´¢ä¸­æ˜¾ç¤ºé¢å¤–ä¿¡æ¯ï¼Œä¾‹å¦‚æ述和照片。" />
81 <button label="?" label_selected="?" name="?" /> 95 <button label="?" label_selected="?" name="?" />
96 <!-- <button label="在地图中显示" label_selected="在地图中显示"
97 name="Show on Map" /> -->
82 <button label="在地图中显示" label_selected="在地图中显示" 98 <button label="在地图中显示" label_selected="在地图中显示"
83 name="Show on Map" /> 99 name="Find on Map" />
84 <button label="æ供闪电传é€..." label_selected="æ供闪电传é€..." 100
101 <button label="邀请瞬间移动..." label_selected="邀请瞬间移动..."
85 name="Offer Teleport..." /> 102 name="Offer Teleport..." />
86 <button label="比率..." label_selected="比率..." name="Rate..." /> 103 <button
104 label="添加为好å‹..."
105 label_selected="添加为好å‹..."
106 name="Add Friend..." />
107
108 <!-- <button label="评分..." label_selected="评分..." name="Rate..." /> -->
87 <button label="付款..." label_selected="付款..." name="Pay..." /> 109 <button label="付款..." label_selected="付款..." name="Pay..." />
88 <button label="å³æ—¶æ¶ˆæ¯..." label_selected="å³æ—¶æ¶ˆæ¯..." 110 <button label="å³æ—¶æ¶ˆæ¯..." label_selected="å³æ—¶æ¶ˆæ¯..."
89 name="Instant Message..." /> 111 name="Instant Message..." />
90 <button label="å±è”½" label_selected="å±è”½" name="Mute" /> 112 <button label="å±è”½" label_selected="å±è”½" name="Mute" />
91 </panel> 113 </panel>
92 <panel label="网络" name="WebProfile"> 114 <panel label="Web" name="WebProfile">
93 <button label="家" label_selected="家" name="home" /> 115 <line_editor
94 <button label="Load" label_selected="Load" name="load" 116 is_unicode="false"
95 tool_tip="Load this profile page with embedded web browser." /> 117 name="url_edit" />
96 <button label="Open..." label_selected="Open..." name="open" 118 <flyout_button
97 tool_tip="Open this profile page in your default external web browser." /> 119 label="加载"
120 label_selected="加载"
121 name="load"
122 tool_tip="用内部æµè§ˆå™¨æ‰“开这个档案页é¢ã€‚">
123 <flyout_button_item
124 value="open">
125 在外部æµè§ˆå™¨ä¸­æ‰“å¼€</flyout_button_item>
126 <flyout_button_item
127 value="home">返回原æ¥é¡µé¢</flyout_button_item>
128 </flyout_button>
98 <button label="?" label_selected="?" name="web_profile_help" /> 129 <button label="?" label_selected="?" name="web_profile_help" />
99 <check_box label="Automatically load web profiles" name="auto_load" 130 <check_box label="自动加载网络档案" name="auto_load"
100 tool_tip="Automatically load ALL profile webpages without asking first." /> 131 tool_tip="ä¸è¯¢é—®å°±è‡ªåŠ¨åŠ è½½ *所有* 网络档案。" />
101 <text name="status_text"> 132 <text name="status_text">
102 完æˆ
103 </text> 133 </text>
104 </panel> 134 </panel>
105 <panel label="Interests" name="Interests"> 135 <panel label="兴趣" name="Interests">
106 <text name="I Want To:"> 136 <text name="I Want To:">
107 我想è¦: 137 我想è¦:
108 </text> 138 </text>
109 <check_box label="建造" name="chk0" /> 139 <check_box label="建造" name="chk0" />
110 <check_box label="å¼€è’" name="chk1" /> 140 <check_box label="探索" name="chk1" />
111 <check_box label="相会" name="chk2" /> 141 <check_box label="èšä¼š" name="chk2" />
112 <check_box label="å—雇" name="chk6" /> 142 <check_box label="å—雇" name="chk6" />
113 <check_box label="社团&quot;" name="chk3" /> 143 <check_box label="组团" name="chk3" />
114 <check_box label="è´­ä¹°" name="chk4" /> 144 <check_box label="è´­ä¹°" name="chk4" />
115 <check_box label="出售" name="chk5" /> 145 <check_box label="出售" name="chk5" />
116 <check_box label="雇佣" name="chk7" /> 146 <check_box label="雇佣" name="chk7" />
@@ -119,29 +149,29 @@
119 </text> 149 </text>
120 <check_box label="æè´¨" name="schk0" /> 150 <check_box label="æè´¨" name="schk0" />
121 <check_box label="建筑" name="schk1" /> 151 <check_box label="建筑" name="schk1" />
122 <check_box label="事件计划" name="schk2" /> 152 <check_box label="计划事件" name="schk2" />
123 <check_box label="建模" name="schk3" /> 153 <check_box label="建模" name="schk3" />
124 <check_box label="编辑脚本" name="schk4" /> 154 <check_box label="编辑脚本" name="schk4" />
125 <check_box label="习惯的特性" name="schk5" /> 155 <check_box label="个性化人物" name="schk5" />
126 <text name="Languages:"> 156 <text name="Languages:">
127 Languages: 157 语言:
128 </text> 158 </text>
129 </panel> 159 </panel>
130 <panel label="Picks" name="Picks"> 160 <panel label="收è—" name="Picks">
131 <text name="Tell everyone about your favorite places in Second Life."> 161 <text name="Tell everyone about your favorite places in Second Life.">
132 告诉æ¯ä¸ªäººä½ åœ¨ç¬¬äºŒäººç”Ÿä¸­æœ€å–œæ¬¢çš„地点 162 告诉大家你在第二人生中最喜欢的地点。
133 </text> 163 </text>
134 <button label="新的..." label_selected="新的..." name="New..." /> 164 <button label="新建..." label_selected="新建..." name="New..." />
135 <button label="删除..." label_selected="删除..." name="Delete..." /> 165 <button label="删除..." label_selected="删除..." name="Delete..." />
136 </panel> 166 </panel>
137 <panel label="分类的" name="Classified"> 167 <panel label="分类广告" name="Classified">
138 <text name="Place an ad in Second Life&apos;s classified listings."> 168 <text name="Place an ad in Second Life&apos;s classified listings.">
139 在第二人生的分类æ ä¸­åˆŠç™»å¹¿å‘Šã€‚ 169 在第二人生的分类æ ä¸­åˆŠç™»å¹¿å‘Šã€‚
140 </text> 170 </text>
141 <button label="新的..." label_selected="新的..." name="New..." /> 171 <button label="新建..." label_selected="新建..." name="New..." />
142 <button label="删除..." label_selected="删除..." name="Delete..." /> 172 <button label="删除..." label_selected="删除..." name="Delete..." />
143 </panel> 173 </panel>
144 <panel label="1st Life" name="1st Life"> 174 <panel label="第一人生" name="1st Life">
145 <text name="Photo:"> 175 <text name="Photo:">
146 照片: 176 照片:
147 </text> 177 </text>
@@ -153,10 +183,10 @@
153 (250个字) 183 (250个字)
154 </text> 184 </text>
155 </panel> 185 </panel>
156 <panel label="My Notes" name="My Notes"> 186 <panel label="我的备注" name="My Notes">
157 <text name="label"> 187 <text name="label">
158 使用这å—空间æ¥è®°å½•ä½ å…³äºŽè¿™ä¸ªäººçš„笔迹。 继续追踪 188 使用这å—空间æ¥è®°å½•ä½ å…³äºŽè¿™ä¸ªäººçš„笔记。 追踪交易
159交易过程, åˆä½œçš„项目,等等。åªæœ‰ä½ å¯ä»¥çœ‹è§è¿™äº›ç¬”记。 189è¿å±•ï¼Œåˆä½œçš„项目,等等。åªæœ‰ä½ å¯ä»¥çœ‹è§è¿™äº›ç¬”记。
160你观察的人看ä¸è§ï¼Œå…¶ä»–人也看ä¸è§ã€‚ 190你观察的人看ä¸è§ï¼Œå…¶ä»–人也看ä¸è§ã€‚
161 </text> 191 </text>
162 </panel> 192 </panel>
@@ -165,29 +195,30 @@
165 <button label="å–消" label_selected="å–消" name="Cancel" /> 195 <button label="å–消" label_selected="å–消" name="Cancel" />
166 <button label="踢人" label_selected="踢人" name="Kick" /> 196 <button label="踢人" label_selected="踢人" name="Kick" />
167 <button label="é”定" label_selected="é”定" name="Freeze" 197 <button label="é”定" label_selected="é”定" name="Freeze"
168 tool_tip="åœæ­¢æ­¤å±…民的现有动作并与其交谈." /> 198 tool_tip="åœæ­¢æ­¤å±…民的现有动作和对è¯ã€‚" />
169 <button label="解é”定" label_selected="解é”定" name="Unfreeze" 199 <button label="解é”" label_selected="解é”" name="Unfreeze"
170 tool_tip="解除冻结的居民。" /> 200 tool_tip="解除冻结的居民。" />
171 <button label="CSR" label_selected="CSR" name="csr_btn" 201 <button label="CSR" label_selected="CSR" name="csr_btn"
172 tool_tip="对此为居民开å¯é¡¾å®¢æœåŠ¡å·¥å…·ã€‚" /> 202 tool_tip="对此ä½å±…æ°‘å¼€å¯é¡¾å®¢æœåŠ¡å·¥å…·ã€‚" />
173 <text name="ShowOnMapNonFriend"> 203 <text name="ShowOnMapNonFriend">
174 在地图上显示的ä½ç½®. 204 在地图上显示ä½ç½®ã€‚
175由于你和它们之间没有å‹è°Šå…³ç³»ï¼Œæ‰€ä»¥åˆšæ‰çš„æ“作无效。 205由于你和它们之间没有å‹è°Šå…³ç³»ï¼Œæ‰€ä»¥åˆšæ‰çš„æ“作无效。
176 </text> 206 </text>
177 <text name="ShowOnMapFriendOffline"> 207 <text name="ShowOnMapFriendOffline">
178 在地图上显示的ä½ç½®. 208 在地图上显示ä½ç½®ã€‚
179由于对方ä¸åœ¨çº¿ï¼Œåˆšæ‰çš„æ“作无效。 209由于对方ä¸åœ¨çº¿ï¼Œåˆšæ‰çš„æ“作无效。
180 </text> 210 </text>
181 <text name="ShowOnMapFriendOnline"> 211 <text name="ShowOnMapFriendOnline">
182 在地图上显示的ä½ç½®. 212 在地图上显示ä½ç½®ã€‚
183 </text> 213 </text>
184 <text name="TeleportGod"> 214 <text name="TeleportGod">
185 加强闪电传è¿è‡³ä½ æ‰€åœ¨ä½ç½®çš„效果. 215 强制瞬间移动到你的ä½ç½®ã€‚
186 </text> 216 </text>
187 <text name="TeleportPrelude"> 217 <text name="TeleportPrelude">
188 æä¾›ä¸ä¸ªé—ªç”µä¼ é€è‡³ä½ æ‰€åœ¨çš„ä½ç½®ã€‚但当你离开方ä½å²›æ—¶ï¼Œæ­¤é¡¹åŠŸèƒ½ä¸å¯ç”¨ã€‚ 218 é‚请瞬间移动到你所在的ä½ç½®ã€‚但当你离开方ä½å²›æ—¶ï¼Œæ­¤é¡¹åŠŸèƒ½æ‰å¯ç”¨ã€‚
189 </text> 219 </text>
190 <text name="TeleportNormal"> 220 <text name="TeleportNormal">
191 æä¾›ä¸ä¸ªé—ªç”µä¼ é€è‡³ä½ æ‰€åœ¨çš„ä½ç½®ã€‚ 221 é‚请瞬间移动到你所在的ä½ç½®ã€‚
192 </text> 222 </text>
193</panel> 223</panel>
224<!--Translated for Second Life 1.19.0 (80044)-->
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_avatar_classified.xml b/linden/indra/newview/skins/default/xui/zh/panel_avatar_classified.xml
index b9d6407..3e35524 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_avatar_classified.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_avatar_classified.xml
@@ -3,22 +3,28 @@
3 <line_editor name="given_name_editor" 3 <line_editor name="given_name_editor"
4 tool_tip="å字必须以字æ¯æˆ–数字开始,ä¸å¯ç”¨æ ‡ç‚¹ã€‚" /> 4 tool_tip="å字必须以字æ¯æˆ–数字开始,ä¸å¯ç”¨æ ‡ç‚¹ã€‚" />
5 <line_editor name="location_editor" 5 <line_editor name="location_editor"
6 tool_tip="设置这å—分类广告相对于你所在ä½ç½®çš„ä½ç½®ã€‚" /> 6 tool_tip="设置分类广告的ä½ç½®åˆ°ä½ å½“å‰çš„ä½ç½®ã€‚" />
7 <button label="调节ä½ç½®" name="set_location_btn" /> 7 <button label="调节ä½ç½®" name="set_location_btn" width="80" left="10"/>
8 <button label="闪电传é€" name="classified_teleport_btn" /> 8 <button label="瞬间移动" name="classified_teleport_btn" width="80" left_delta="90"/>
9 <button label="地图" name="classified_map_btn" /> 9 <button label="在地图中显示" name="classified_map_btn" width="110" left_delta="90"/>
10
10 <combo_box label="" name="classified_category_combo" /> 11 <combo_box label="" name="classified_category_combo" />
11 <check_box label="æˆäºº" name="classified_mature_check" /> 12 <check_box label="æˆäºº" name="classified_mature_check" />
12 <text name="classified_info_text" 13 <text name="classified_info_text"
13 tool_tip="你选择为你的广告付费越多, 您的广告在广告æ é‡Œå‡ºçŽ°çš„ä½ç½®å°±ä¼šè¶Šé«˜."> 14 tool_tip="你选择为你的广告付费越多, 您的广告在广告æ é‡Œå‡ºçŽ°çš„ä½ç½®å°±ä¼šè¶Šé«˜.">
14 广告ä½ç½®: æš‚æ—¶ä¸èƒ½å‘布 15 广告å‘布: 还没有å‘布
15 </text> 16 </text>
16 <text name="click_through_text" tool_tip="分类广告å‘布åŽçš„点击数."> 17 <text name="click_through_text" tool_tip="分类广告å‘布åŽçš„点击数.">
17 Clicks: 18 点击数:
18 </text> 19 </text>
19 <button label="公布..." name="classified_update_btn" /> 20 <button label="å布..." name="classified_update_btn" />
20 <check_box label="æ¯å‘¨è‡ªåŠ¨æ›´æ–°" name="auto_renew_check" /> 21 <check_box label="æ¯å‘¨è‡ªåŠ¨æ›´æ–°" name="auto_renew_check" />
21 <text name="ad_placed_paid"> 22 <text name="ad_placed_paid">
22 Ad placed: [DATE], Paid L$[AMT] for listing. 23 广告å‘布: [DATE],为此付出了 L$[AMT]。
23 </text> 24 </text>
25 <text
26 name="update_txt" >æ›´æ–°</text>
27 <text
28 name="publish_txt" >å‘布...</text>
29
24</panel> 30</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_avatar_pick.xml b/linden/indra/newview/skins/default/xui/zh/panel_avatar_pick.xml
index d769eaf..dfd490e 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_avatar_pick.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_avatar_pick.xml
@@ -1,10 +1,11 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="Pick" title="拣起"> 2<panel name="Pick" title="收è">
3 <button label="调节ä½ç½®" name="set_location_btn" /> 3 <button label="瞬间移动" name="pick_teleport_btn" width="80" left="10"/>
4 <button label="闪电传é€" name="pick_teleport_btn" /> 4 <button label="在地图中显示" name="pick_map_btn" width="110" left="100"/>
5 <button label="在地图中显示" name="pick_map_btn" /> 5 <button label="调节ä½ç½®" name="set_location_btn" width="80" left="220"/>
6 <text name="sort_order_text"> 6 <text name="sort_order_text">
7 ç§ç±»: 7 ç§ç±»:
8 </text> 8 </text>
9 <check_box label="Enabled" name="enabled_check" /> 9 <check_box label="å¯ç”¨" name="enabled_check" />
10</panel> 10</panel>
11<!--Translated for Second Life 1.19.0 (80044)--> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_chat_bar.xml b/linden/indra/newview/skins/default/xui/zh/panel_chat_bar.xml
index 8bf05df..542a6b9 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_chat_bar.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_chat_bar.xml
@@ -1,12 +1,21 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="chat_bar"> 2<panel name="chat_bar">
3 <button label="Local Chat" name="历å²"
4 tool_tip="点击这里看周围的人刚æ‰è¯´äº†äº›ä»€ä¹ˆ" />
3 <button label="历å²" label_selected="历å²" name="History" /> 5 <button label="历å²" label_selected="历å²" name="History" />
4 <line_editor name="Chat Editor" tool_tip="按Enteræ¥è¾“入语音,Ctrl-Enter æ¥å‘声" /> 6 <line_editor label="点击这里开始èŠå¤©ã€‚" name="Chat Editor"
5 <button label="说" label_selected="说" name="Say" /> 7 tool_tip="按 Enter æ¥èŠå¤©ï¼ŒCtrl-Enter æ¥å–Šå«" />
6 <button label="咆哮" label_selected="咆哮" name="Shout" /> 8 <flyout_button label="说" name="Say" tool_tip="(回车)" >
9 <flyout_button_item name="say_item">说</flyout_button_item>
10 <flyout_button_item name="shout_item">å–Šå«</flyout_button_item>
11 <flyout_button_item name="whisper_item">å°å£°è¯´</flyout_button_item>
12 </flyout_button>
7 <combo_box label="动作" name="Gesture"> 13 <combo_box label="动作" name="Gesture">
8 <combo_item name="Gestures"> 14 <combo_item name="Gestures">
9 动作 15 动作
10 </combo_item> 16 </combo_item>
11 </combo_box> 17 </combo_box>
18 <string name="gesture_label">
19 动作
20 </string>
12</panel> 21</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_classified.xml b/linden/indra/newview/skins/default/xui/zh/panel_classified.xml
index c03a7cc..7237948 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_classified.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_classified.xml
@@ -3,9 +3,9 @@
3 <line_editor name="given_name_editor" 3 <line_editor name="given_name_editor"
4 tool_tip="å字必须以字æ¯æˆ–数字开始,ä¸å¯ç”¨æ ‡ç‚¹ã€‚" /> 4 tool_tip="å字必须以字æ¯æˆ–数字开始,ä¸å¯ç”¨æ ‡ç‚¹ã€‚" />
5 <line_editor name="location_editor" 5 <line_editor name="location_editor"
6 tool_tip="设置这å—分类广告相对于你所在ä½ç½®çš„ä½ç½®ã€‚" /> 6 tool_tip="设置分类广告的ä½ç½®åˆ°ä½ å½“å‰çš„ä½ç½®ã€‚" />
7 <button label="调节" name="set_location_btn" /> 7 <button label="调节ä½ç½®" name="set_location_btn" />
8 <button label="闪电传é€" name="classified_teleport_btn" /> 8 <button label="瞬间移动" name="classified_teleport_btn" />
9 <button label="在地图中显示" name="classified_map_btn" /> 9 <button label="在地图中显示" name="classified_map_btn" />
10 <button label="档案" name="classified_profile_btn" /> 10 <button label="档案" name="classified_profile_btn" />
11 <check_box label="æˆäºº" name="classified_mature_check" /> 11 <check_box label="æˆäºº" name="classified_mature_check" />
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_event.xml b/linden/indra/newview/skins/default/xui/zh/panel_event.xml
index 0d0f836..3d7e65e 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_event.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_event.xml
@@ -1,13 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="Event" title="事件"> 2<panel name="Event" title="事件">
3 <text name="event_name_label"> 3 <text name="event_name_label">
4 åå­—: 4 å称:
5 </text> 5 </text>
6 <text name="event_name"> 6 <text name="event_name">
7 (æ— ) 7 (æ— )
8 </text> 8 </text>
9 <text name="event_category_label"> 9 <text name="event_category_label">
10 类型: 10 类别:
11 </text> 11 </text>
12 <text name="event_category"> 12 <text name="event_category">
13 (æ— ) 13 (æ— )
@@ -18,6 +18,16 @@
18 <text name="event_mature"> 18 <text name="event_mature">
19 (未知) 19 (未知)
20 </text> 20 </text>
21 <text
22 name="event_mature_yes"
23 visible="false">
24 是
25 </text>
26 <text
27 name="event_mature_no"
28 visible="false">
29 å¦
30 </text>
21 <text name="event_date_label"> 31 <text name="event_date_label">
22 日期: 32 日期:
23 </text> 33 </text>
@@ -25,13 +35,13 @@
25 (æ— ) 35 (æ— )
26 </text> 36 </text>
27 <text name="event_duration_label"> 37 <text name="event_duration_label">
28 活动æŒç»­æ—¶é—´: 38 æŒç»­æ—¶é—´:
29 </text> 39 </text>
30 <text name="event_duration"> 40 <text name="event_duration">
31 (æ— ) 41 (æ— )
32 </text> 42 </text>
33 <text name="event_runby_label"> 43 <text name="event_runby_label">
34 è¿è¡Œä¸º: 44 组织者:
35 </text> 45 </text>
36 <text name="event_runby"> 46 <text name="event_runby">
37 (æ— ) 47 (æ— )
@@ -51,8 +61,14 @@
51 <text name="event_desc_label"> 61 <text name="event_desc_label">
52 æè¿°: 62 æè¿°:
53 </text> 63 </text>
54 <button label="闪电传é€" name="teleport_btn" /> 64 <button label="瞬间移动" name="teleport_btn" />
55 <button label="在地图中显示" name="map_btn" /> 65 <button label="在地图中显示" name="map_btn" />
56 <button label="通报" name="notify_btn" /> 66 <button label="æ醒" name="notify_btn" />
57 <button label="创造事件..." name="create_event_btn" /> 67 <button label="创建事件..." name="create_event_btn" />
68 <string name="notify">
69 æ醒
70 </string>
71 <string name="dont_notify">
72 ä¸è¦æ醒
73 </string>
58</panel> 74</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_friends.xml b/linden/indra/newview/skins/default/xui/zh/panel_friends.xml
new file mode 100644
index 0000000..74d29a4
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_friends.xml
@@ -0,0 +1,23 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="friends">
3 <scroll_list name="friend_list"
4 tool_tip="ç‚¹å‡»æ—¶æŒ‰ä½ shift 或 control é”®æ¥é€‰æ‹©å¤šä¸ªå¥½å‹">
5 <column name="icon_online_status" tool_tip="在线状æ€" />
6 <column label="åå­—" name="friend_name" tool_tip="å称" />
7 <column name="icon_visible_online" tool_tip="好å‹å¯ä»¥çœ‹è§ä½ æ˜¯å¦åœ¨çº¿" />
8 <column name="icon_visible_map" tool_tip="好å‹å¯ä»¥åœ¨åœ°å›¾ä¸Šæ‰¾åˆ°ä½ " />
9 <column name="icon_edit_mine" tool_tip="好å‹å¯ä»¥ç¼–辑你的物体" />
10 <column name="icon_edit_theirs" tool_tip="ä½ å¯ä»¥ç¼–辑这ä½å¥½å‹çš„物体" />
11 </scroll_list>
12 <button label="èŠå¤©/呼å«" name="im_btn" tool_tip="打开å³æ—¶é€šä¿¡ä¼šè¯" />
13 <button label="档案" name="profile_btn"
14 tool_tip="显示图片ã€ç¤¾å›¢å’Œå…¶ä»–ä¿¡æ¯" />
15 <button label="瞬间移动..." name="offer_teleport_btn"
16 tool_tip="邀请该好å‹çž¬é—´ç§»åŠ¨åˆ°ä½ çš„当å‰ä½ç½®" />
17 <button label="付款..." name="pay_btn" tool_tip="给这ä½å¥½å‹æž—ç™»å¸ (L$)" />
18 <button label="移除..." name="remove_btn"
19 tool_tip="将这个人从你的好å‹åˆ—表中去除" />
20 <button label="添加..." name="add_btn"
21 tool_tip="邀请其他居民æˆä¸ºä½ çš„好å‹" />
22</panel>
23<!--Translated for Second Life 1.19.0 (79185)-->
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_group.xml b/linden/indra/newview/skins/default/xui/zh/panel_group.xml
index 1c296a4..6f68e21 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_group.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_group.xml
@@ -1,14 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="GroupInfo" title="社团信æ¯"> 2<panel name="GroupInfo" title="社团信æ¯">
3 <text name="default_needs_apply_text"> 3 <text name="default_needs_apply_text">
4 在目å‰çš„亚桌é¢ä¸Šæœ‰æ²¡æœ‰åº”用的更改。 4 在目å‰çš„标签页上有还没有应用的更改。
5 </text> 5 </text>
6 <text name="want_apply_text"> 6 <text name="want_apply_text">
7 你是å¦æ„¿æ„现在就应用这些更改? 7 您是å¦æ„¿æ„现在就应用这些更改?
8 </text> 8 </text>
9 <button label="应用" label_selected="应用" name="btn_apply" /> 9 <button label="应用" label_selected="应用" name="btn_apply" />
10 <button label="å–消" label_selected="å–消" name="btn_cancel" /> 10 <button label="å–消" label_selected="å–消" name="btn_cancel" />
11 <button label="OK" label_selected="OK" name="btn_ok" /> 11 <button label="OK" label_selected="OK" name="btn_ok" />
12 <button label="从æœåŠ¡å™¨å¤„æ›´æ–°" label_selected="从æœåŠ¡å™¨å¤„æ›´æ–°" 12 <button label="刷新" label_selected="刷新"
13 name="btn_refresh" /> 13 name="btn_refresh" />
14</panel> 14</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_group_finder.xml b/linden/indra/newview/skins/default/xui/zh/panel_group_finder.xml
index 805c232..b0dd9cf 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_group_finder.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_group_finder.xml
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="GroupInfoFinder" title="社团信æ¯æŸ¥æ‰¾å™¨"> 2<panel name="GroupInfoFinder" title="社团信æ¯æŸ¥æ‰¾å™¨">
3 <text name="default_needs_apply_text"> 3 <text name="default_needs_apply_text">
4 在目å‰çš„亚桌é¢ä¸Šæœ‰æ²¡æœ‰åº”用的更改。 4 在目å‰çš„标签页上有还没有应用的更改。
5 </text> 5 </text>
6 <text name="want_apply_text"> 6 <text name="want_apply_text">
7 你是å¦æ„¿æ„现在就应用这些更改? 7 您是å¦æ„¿æ„现在就应用这些更改?
8 </text> 8 </text>
9</panel> 9</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_group_general.xml b/linden/indra/newview/skins/default/xui/zh/panel_group_general.xml
index 107b854..72ac8b2 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_group_general.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_group_general.xml
@@ -1,10 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="General" name="general_tab"> 2<panel label="一般" name="general_tab">
3 <text name="help_text"> 3 <text name="help_text">
4 普通桌é¢åŒ…括关于社团的一般信æ¯ï¼Œä¸»äººå’Œå¯è§†çš„会员的åå•ï¼Œä¸€èˆ¬ç¤¾å›¢å好和会员选项。 4一般标签页包å«å…³äºŽç¤¾å›¢çš„一般信æ¯ï¼Œç¤¾å›¢æ‹¥æœ‰è€…å’Œå¯è§ä¼šå‘˜çš„åå•ï¼Œä¸€èˆ¬çš„社团å好设定和会员选项。
5 5
6用你的鼠标åœç•™åœ¨é€‰é¡¹ä¸ŠèŽ·å–更多帮助。 6é¼ æ ‡åœç•™åœ¨é€‰é¡¹ä¸ŠèŽ·å–更多帮助。
7 </text> 7 </text>
8 <string
9 name="group_info_unchanged">
10 社团一般信æ¯å·²ç»æ”¹å˜ã€‚
11 </string>
8 <button label="?" label_selected="?" name="help_button" /> 12 <button label="?" label_selected="?" name="help_button" />
9 <line_editor name="group_name_editor"> 13 <line_editor name="group_name_editor">
10 在此键入你的新社团å称 14 在此键入你的新社团å称
@@ -13,10 +17,10 @@
13 在此键入你的新社团å称 17 在此键入你的新社团å称
14 </text> 18 </text>
15 <text name="prepend_founded_by"> 19 <text name="prepend_founded_by">
16 创建由 20 创始人
17 </text> 21 </text>
18 <text name="founder_name"> 22 <text name="founder_name">
19 (等待) 23 (等待中)
20 </text> 24 </text>
21 <text name="group_charter_label"> 25 <text name="group_charter_label">
22 社团宪章 26 社团宪章
@@ -26,17 +30,17 @@
26 社团宪章 30 社团宪章
27 </text_editor> 31 </text_editor>
28 <button label="加入(L$0)" label_selected="加入(L$0)" name="join_button" /> 32 <button label="加入(L$0)" label_selected="加入(L$0)" name="join_button" />
29 <button label="详细察看" label_selected="详细察看" name="info_button" /> 33 <button label="详细视图" label_selected="详细察看" name="info_button" />
30 <text> 34 <text name="text_owners_and_visible_members">
31 主人和å¯è§çš„会员 35 拥有者和å¯è§çš„会员
32 </text> 36 </text>
33 <text> 37 <text name="text_owners_are_shown_in_bold">
34 (主人的å字以大写字æ¯æ ‡æ³¨) 38 (拥有者的å字以ç²ä½“标注)
35 </text> 39 </text>
36 <name_list name="visible_members"> 40 <name_list name="visible_members">
37 <column label="Member Name" name="name" /> 41 <column label="会员å称" name="name" />
38 <column label="Title" name="title" /> 42 <column label="头衔" name="title" />
39 <column label="Last Login" name="online" /> 43 <column label="最åŽç™»å…¥" name="online" />
40 </name_list> 44 </name_list>
41 <text name="incomplete_member_data_str"> 45 <text name="incomplete_member_data_str">
42 é‡æ–°èŽ·å–ä¼šå‘˜ä¿¡æ¯ 46 é‡æ–°èŽ·å–会员信æ¯
@@ -44,31 +48,61 @@
44 <text name="confirm_group_create_str"> 48 <text name="confirm_group_create_str">
45 创建这个社团将花费L$100. 49 创建这个社团将花费L$100.
46你真的,真的,真----çš„----确定è¦èŠ±è´¹L$100æ¥åˆ›å»ºè¿™ä¸ªç¤¾å›¢å—? 50你真的,真的,真----çš„----确定è¦èŠ±è´¹L$100æ¥åˆ›å»ºè¿™ä¸ªç¤¾å›¢å—?
51请注æ„如果没有别人在48å°æ—¶å†…加入该社团,它将会被解散,并且这个社团åå­—å°†æ¥å°†ä¸èƒ½ä½¿ç”¨ã€‚
47 </text> 52 </text>
48 <text> 53 <text name="text_group_preferences">
49 社团å好 54 社团å好设定
50 </text> 55 </text>
51 <panel name="preferences_container"> 56 <panel name="preferences_container">
52 <check_box label="在社团åå•ä¸­æ˜¾ç¤º" name="show_in_group_list" 57 <check_box
53 tool_tip="Sets whether this group shows up in the Search Groups window and in member profiles." /> 58 label="在æœç´¢ä¸­æ˜¾ç¤º"
54 <check_box label="在网上公布" name="publish_on_web" 59 name="show_in_group_list"
55 tool_tip="设定是å¦å°†æ­¤ç¤¾å›¢çš„ä¿¡æ¯å‘布到网络上" /> 60 tool_tip="让别人在æœç´¢ç»“果中看到这个社团。" />
56 <check_box label="打开注册" name="open_enrollement" 61 <check_box label="公开注册" name="open_enrollement"
57 tool_tip="Sets whether this group allows new members to join without being invited." /> 62 tool_tip="设置该社团是å¦å…许新会员加入而ä¸éœ€è¦è¢«é‚€è¯·ã€‚" />
58 <check_box label="注册费用: L$" name="check_enrollment_fee" 63 <check_box label="注册费用: L$" name="check_enrollment_fee"
59 tool_tip="设定是å¦æ”¶å°†å–社团入会费." /> 64 tool_tip="设定是å¦æ”¶å°†å–社团入会费。" />
60 <spinner name="spin_enrollment_fee" 65 <spinner name="spin_enrollment_fee"
61 tool_tip="New members must pay this fee to join the group when Enrollment Fee is checked." /> 66 tool_tip="如果选择了注册费用的è¯ï¼Œæ–°ä¼šå‘˜åŠ å…¥ç¤¾å›¢æ—¶å¿…须付出这笔费用。" />
62 <check_box label="æˆäºº" name="mature" 67 <check_box label="æˆäºº" name="mature"
63 tool_tip="设定你所在社团的信æ¯æ˜¯å¦ä¸ºæˆäººå†…容" /> 68 tool_tip="设定你所在社团的信æ¯æ˜¯å¦ä¸ºæˆäººå†…容" />
69 <combo_box
70 allow_text_entry="false"
71 max_chars="20"
72 name="group_mature_check"
73 tool_tip="设定你所在社团的信æ¯æ˜¯å¦ä¸ºæˆäººå†…容">
74 <combo_item
75 name="select_mature"
76 value="Select">
77 - 选择分级 -
78 </combo_item>
79 <combo_item
80 name="mature"
81 value="Mature">
82 æˆäººå†…容
83 </combo_item>
84 <combo_item
85 name="not_mature"
86 value="Not Mature">
87 éžæˆäººå†…容
88 </combo_item>
89 </combo_box>
64 <panel name="title_container"> 90 <panel name="title_container">
65 <text name="active_title_label"> 91 <text name="active_title_label">
66 我的头衔 92 我的头衔
67 </text> 93 </text>
68 <combo_box name="active_title" 94 <combo_box name="active_title"
69 tool_tip="Sets the title that appears in your avatar&apos;s name tag when this group is active." /> 95 tool_tip="设置当该社团激活时,在化身姓å标签中显示的头衔。" />
70 </panel> 96 </panel>
71 <check_box label="接å—社团通知" name="receive_notices" 97 <check_box label="接å—社团通知" name="receive_notices"
72 tool_tip="Sets whether you want to receive Notices from this group. Uncheck this box if this group is spamming you." /> 98 tool_tip="设置您是å¦æƒ³è¦ä»Žè¯¥ç¤¾å›¢æŽ¥å—通知。如果这个社团å‘您乱å‘垃圾信æ¯ï¼Œé‚£å°±å–消选择这项。" />
99 <check_box
100 label="在我的档案中列出该社团"
101 name="list_groups_in_profile"
102 tool_tip="设置您是å¦æƒ³è¦åœ¨æ¡£æ¡ˆä¸­åˆ—出该社团" />
73 </panel> 103 </panel>
104 <string
105 name="incomplete_member_data_str">
106 获å–团员信æ¯ä¸­
107 </string>
74</panel> 108</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_group_invite.xml b/linden/indra/newview/skins/default/xui/zh/panel_group_invite.xml
index 528281f..06b7a0c 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_group_invite.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_group_invite.xml
@@ -1,18 +1,18 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="Invite a Member" name="invite_panel"> 2<panel label="邀请会员" name="invite_panel">
3 <text> 3 <text>
4 ä½ å¯ä»¥é€‰æ‹©å¤šä¸ªå±…民,邀请他们å‡å¦‚你的社团。点击‘打开任务选择器’开始邀请。 4 您å¯ä»¥é€‰æ‹©å¤šä¸ªå±…民,邀请他们加入您的社团。点击 ‘打开人物选择器’ 开始邀请。
5 </text> 5 </text>
6 <button label="打开个人选举人" name="add_button" tool_tip="" /> 6 <button label="打开人物选择器" name="add_button" tool_tip="" />
7 <name_list name="invitee_list" 7 <name_list name="invitee_list"
8 tool_tip="Hold the Ctrl key and click resident names to multi-select." /> 8 tool_tip="按ä½Ctrl键然åŽç‚¹å‡»å±…æ°‘åå­—æ¥é€‰æ‹©å¤šä¸ªé¡¹ç›®ã€‚" />
9 <button label="从åå•ä¸­ç§»é™¤æ‰€é€‰é¡¹" name="remove_button" 9 <button label="从åå•ä¸­ç§»é™¤æ‰€é€‰é¡¹" name="remove_button"
10 tool_tip="将此ä½æˆ·ä»Žä½ çš„邀请å•ä¸­åˆ—表中清除." /> 10 tool_tip="将此居民从您的邀请列表中清除。" />
11 <text> 11 <text>
12 选择哪个角色分é…给他们: 12 选择哪个角色分é…给他们:
13 </text> 13 </text>
14 <combo_box name="role_name" 14 <combo_box name="role_name"
15 tool_tip="Choose from the list of Roles you are allowed to assign members to." /> 15 tool_tip="从这个列表中选择你å¯ä»¥ä¸ºä¼šå‘˜åˆ†é…的角色。" />
16 <button label="å‘é€é‚€è¯·å‡½" name="ok_button" /> 16 <button label="å‘é€é‚€è¯·" name="ok_button" />
17 <button label="å–消" name="cancel_button" /> 17 <button label="å–消" name="cancel_button" />
18</panel> 18</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml b/linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml
index 85ec812..439252a 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml
@@ -1,22 +1,22 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="Land &amp; L$" name="land_money_tab"> 2<panel label="土地和 L$" name="land_money_tab">
3 <text name="help_text"> 3 <text name="help_text">
4 由社团所拥有的土地已ç»è¢«åˆ—出了其所作贡献的细节。如果在使用中的总的土地å°äºŽæˆ–者等于总土地贡献,系统会å‘出警告。在计划,细节和销售桌é¢ä¸­ä¼šæ供关于社团资产情况的信æ¯ã€‚ 4 以下列出的是社团所æŒæœ‰çš„土地以åŠè´¡çŒ®ç»†èŠ‚。如果“使用中总的土地â€å°äºŽæˆ–者等于“总土地贡献â€ï¼Œç³»ç»Ÿä¼šå‘出警告。在计划,细节和销售标签页中会æ供关于社团资产情况的信æ¯ã€‚
5 </text> 5 </text>
6 <button label="?" name="help_button" /> 6 <button label="?" name="help_button" />
7 <text name="cant_view_group_land_text"> 7 <text name="cant_view_group_land_text">
8 你没有查看这个社团所拥有土地的许å¯è¯ã€‚ 8 你没有查看这个社团所拥有土地的æƒé™ã€‚
9 </text> 9 </text>
10 <text name="cant_view_group_accounting_text"> 10 <text name="cant_view_group_accounting_text">
11 你没有查看这个社团账户信æ¯çš„许å¯è¯ã€‚ 11 你没有查看这个社团账户信æ¯çš„æƒé™ã€‚
12 </text> 12 </text>
13 <text name="group_land_heading"> 13 <text name="group_land_heading">
14 社团所有土地 14 社团所æŒæœ‰åœŸåœ°
15 </text> 15 </text>
16 <scroll_list name="group_parcel_list"> 16 <scroll_list name="group_parcel_list">
17 <column label="Parcel Name" name="name" /> 17 <column label="地å—å称" name="name" />
18 <column label="Region" name="location" /> 18 <column label="区域" name="location" />
19 <column label="Area" name="area" /> 19 <column label="é¢ç§¯" name="area" />
20 <column label="" name="hidden" /> 20 <column label="" name="hidden" />
21 </scroll_list> 21 </scroll_list>
22 <button label="在地图中显示" label_selected="在地图中显示" 22 <button label="在地图中显示" label_selected="在地图中显示"
@@ -25,19 +25,19 @@
25 总贡献é¢: 25 总贡献é¢:
26 </text> 26 </text>
27 <text name="total_contributed_land_value"> 27 <text name="total_contributed_land_value">
28 0 平方米 28 [AREA] 平方米
29 </text> 29 </text>
30 <text name="total_land_in_use_label"> 30 <text name="total_land_in_use_label">
31 使用中的全部土地: 31 使用中的土地é¢ç§¯:
32 </text> 32 </text>
33 <text name="total_land_in_use_value"> 33 <text name="total_land_in_use_value">
34 0 平方米 34 [AREA] 平方米
35 </text> 35 </text>
36 <text name="land_available_label"> 36 <text name="land_available_label">
37 å¯å®åœŸåœ°: 37 å¯ç¨åœŸåœ°:
38 </text> 38 </text>
39 <text name="land_available_value"> 39 <text name="land_available_value">
40 0 平方米 40 [AREA] 平方米
41 </text> 41 </text>
42 <text name="your_contribution_label"> 42 <text name="your_contribution_label">
43 你的贡献: 43 你的贡献:
@@ -46,7 +46,7 @@
46 平方米 46 平方米
47 </text> 47 </text>
48 <text name="your_contribution_max_value"> 48 <text name="your_contribution_max_value">
49 (等待) 49 平方米 (最多[AMOUNT] )
50 </text> 50 </text>
51 <text name="group_over_limit_text"> 51 <text name="group_over_limit_text">
52 社团æˆå‘˜å¿…须贡献更多的土地é¢åº¦ï¼Œæ¥æ”¯æŒåœŸåœ°çš„使用。 52 社团æˆå‘˜å¿…须贡献更多的土地é¢åº¦ï¼Œæ¥æ”¯æŒåœŸåœ°çš„使用。
@@ -55,27 +55,27 @@
55 社团资产 L$ 55 社团资产 L$
56 </text> 56 </text>
57 <tab_container name="group_money_tab_container"> 57 <tab_container name="group_money_tab_container">
58 <panel label="Planning" name="group_money_planning_tab"> 58 <panel label="计划" name="group_money_planning_tab">
59 <text_editor name="group_money_planning_text"> 59 <text_editor name="group_money_planning_text">
60 计算中... 60 计算中...
61 </text_editor> 61 </text_editor>
62 </panel> 62 </panel>
63 <panel label="Details" name="group_money_details_tab"> 63 <panel label="细节" name="group_money_details_tab">
64 <text_editor name="group_money_details_text"> 64 <text_editor name="group_money_details_text">
65 计算中... 65 计算中...
66 </text_editor> 66 </text_editor>
67 <button label="&lt;较早" label_selected="&lt;较早" name="earlier_details_button" 67 <button label="&lt;较早" label_selected="&lt;较早" name="earlier_details_button"
68 tool_tip="时间返回" /> 68 tool_tip="时间返回" />
69 <button label="延迟 &gt;" label_selected="延迟 &gt;" name="later_details_button" 69 <button label="è¾ƒè¿ &gt;" label_selected="è¾ƒè¿ &gt;" name="later_details_button"
70 tool_tip="时间å‰è¿›" /> 70 tool_tip="时间å‰è¿›" />
71 </panel> 71 </panel>
72 <panel label="Sales" name="group_money_sales_tab"> 72 <panel label="销售" name="group_money_sales_tab">
73 <text_editor name="group_money_sales_text"> 73 <text_editor name="group_money_sales_text">
74 计算中... 74 计算中...
75 </text_editor> 75 </text_editor>
76 <button label="&lt;较早" label_selected="&lt;较早" name="earlier_sales_button" 76 <button label="&lt;较早" label_selected="&lt;较早" name="earlier_sales_button"
77 tool_tip="时间返回" /> 77 tool_tip="时间返回" />
78 <button label="延迟 &gt;" label_selected="延迟 &gt;" name="later_sales_button" 78 <button label="è¾ƒè¿ &gt;" label_selected="è¾ƒè¿ &gt;" name="later_sales_button"
79 tool_tip="时间å‰è¿›" /> 79 tool_tip="时间å‰è¿›" />
80 </panel> 80 </panel>
81 </tab_container> 81 </tab_container>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_group_notices.xml b/linden/indra/newview/skins/default/xui/zh/panel_group_notices.xml
index 18d62aa..099c34e 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_group_notices.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_group_notices.xml
@@ -1,36 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="通知" name="notices_tab"> 2<panel label="通知" name="notices_tab">
3 <text name="help_text"> 3 <text name="help_text">
4 通知是一个å°ç»„之间快速交æµè”系的方法,通知通过广播消æ¯å’Œå‘é€å¯é€‰æ‹©çš„粘贴性æ¡ç›®ï¼Œå‘é€ç»™ç”¨æˆ·ã€‚通知仅会到达社团内部中被授予接å—ä¿¡æ¯èƒ½åŠ›çš„角色中的会员那里。你å¯ä»¥åœ¨ä¸€èˆ¬æŽ§åˆ¶æ¡Œé¢ä¸Šå…³æŽ‰é€šçŸ¥ã€‚ 4 通知是社团中快速交æµè”系的方法。通知会å‘社团中å‘布一æ¡æ¶ˆæ¯ï¼Œå¹¶ä¸”å¯ä»¥é™„加一æ¡ç‰©å“。通知仅会到达社团中被授予具有接å—通知能力角色的会员那里。你å¯ä»¥åœ¨ä¸€èˆ¬æŽ§åˆ¶æ¡Œé¢ä¸Šå…³æŽ‰é€šçŸ¥ã€‚
5 </text> 5 </text>
6 <text name="no_notices_text"> 6 <text name="no_notices_text">
7 这里没有过去的通知. 7 这里没有过去的通知。
8 </text> 8 </text>
9 <button label="?" label_selected="?" name="help_button" /> 9 <button label="?" label_selected="?" name="help_button" />
10 <text name="lbl"> 10 <text name="lbl">
11 社团通知归档 11 社团通知存档
12 </text> 12 </text>
13 <text name="lbl2"> 13 <text name="lbl2">
14 通知åªä¼šè¢«ä¿ç•™14日。点击下é¢ä½ æƒ³æŸ¥çœ‹çš„通知。如果新的通知已被接å—到,请点击“刷新åå•â€æŒ‰é’®ã€‚ 14 通知åªä¼šè¢«ä¿ç•™ 14 日。点击下é¢ä½ æƒ³æŸ¥çœ‹çš„通知。选择“刷新â€æŒ‰é’®æ£€æŸ¥æ˜¯å¦
15有新的通知。通知æ¯å¤©æ¯ç¤¾å›¢é™å‘é€ 200 æ¡ã€‚
15 </text> 16 </text>
16 <scroll_list name="notice_list"> 17 <scroll_list name="notice_list">
17 <column label="" name="icon" /> 18 <column label="" name="icon" />
18 <column label="Subject" name="subject" /> 19 <column label="主题" name="subject" />
19 <column label="From" name="from" /> 20 <column label="æ¥è‡ª" name="from" />
20 <column label="Date" name="date" /> 21 <column label="日期" name="date" />
21 </scroll_list> 22 </scroll_list>
22 <text name="notice_list_none_found"> 23 <text name="notice_list_none_found">
23 没有找到任何目标 24 没有找到。
24 </text> 25 </text>
25 <button label="创建新的布告" label_selected="创建新的布告" 26 <button label="创建新的通知" label_selected="创建新的通知"
26 name="create_new_notice" /> 27 name="create_new_notice" />
27 <button label="æ›´æ–°åå•" label_selected="æ›´æ–°åå•" name="refresh_notices" /> 28 <button label="刷新" label_selected="刷新" name="refresh_notices" />
28 <panel label="创建新的布告" name="panel_create_new_notice"> 29 <panel label="创建新的通知" name="panel_create_new_notice">
29 <text name="lbl"> 30 <text name="lbl">
30 创建一æ¡é€šçŸ¥ 31 创建一æ¡é€šçŸ¥
31 </text> 32 </text>
32 <text name="lbl2"> 33 <text name="lbl2">
33 你必须输入å‘é€é€šçŸ¥çš„对象。你å¯ä»¥ä»Žä½ çš„库存中拖拽一个æ¡ç›®è‡³æŽ§åˆ¶é¢æ¿ä¸Šï¼Œè¿™æ ·å¯ä»¥æ·»åŠ ç»™é€šçŸ¥ä¸€ä¸ªæ¡ç›®ã€‚附加的æ¡ç›®å¿…须是å¯å¤åˆ¶çš„或å¯è½¬ç§»çš„,但是你ä¸èƒ½å‘é€ä¸€ä¸ªæ–‡ä»¶å¤¹ã€‚ 34 您必须键入主题æ‰èƒ½å‘é€é€šçŸ¥ã€‚您å¯ä»¥å°†å•ä¸ªåº“å­˜æ¡ç›®æ‹–动到
35该é¢æ¿ä¸Šæ¥é™„加这个æ¡ç›®ã€‚附件必须å¯ä»¥å¤åˆ¶ä»¥åŠè½¬è®©ï¼Œ
36并且您ä¸èƒ½å‘é€æ–‡ä»¶å¤¹ã€‚
34 </text> 37 </text>
35 <text name="lbl3"> 38 <text name="lbl3">
36 主题: 39 主题:
@@ -39,25 +42,25 @@
39 ä¿¡æ¯: 42 ä¿¡æ¯:
40 </text> 43 </text>
41 <text name="lbl5"> 44 <text name="lbl5">
42 附属: 45 附件:
43 </text> 46 </text>
44 <button label="移走附件" label_selected="移走附件" name="remove_attachment" /> 47 <button label="移除附件" label_selected="移除附件" name="remove_attachment" />
45 <button label="å‘é€é€šçŸ¥" label_selected="å‘é€é€šçŸ¥" name="send_notice" /> 48 <button label="å‘é€é€šçŸ¥" label_selected="å‘é€é€šçŸ¥" name="send_notice" />
46 <panel name="drop_target2" 49 <panel name="drop_target2"
47 tool_tip="Drag an inventory item onto the message box to send it with the notice. You must have permission to copy and transfer the object to send it with the notice." /> 50 tool_tip="将库存æ¡ç›®æ‹–动到消æ¯æ¡†ä¸Šå’Œé€šçŸ¥ä¸€èµ·é€å‡ºåŽ»ã€‚è¦å°†ç‰©ä½“和通知一起é€å‡ºï¼Œæ‚¨å¿…须有å¤åˆ¶å’Œè½¬è®©ç‰©ä½“çš„æƒé™ã€‚" />
48 </panel> 51 </panel>
49 <panel label="View Past Notice" name="panel_view_past_notice"> 52 <panel label="查看过去的通知" name="panel_view_past_notice">
50 <text name="lbl"> 53 <text name="lbl">
51 存档的通知 54 存档的通知
52 </text> 55 </text>
53 <text name="lbl2"> 56 <text name="lbl2">
54 å‘é€ä¸€æ¡æ–°çš„通知,请点击上é¢çš„‘创建新的通知’按钮。 57 è¦å‘é€æ–°çš„通知,请点击上é¢çš„‘创建新的通知’按钮。
55 </text> 58 </text>
56 <text name="lbl3"> 59 <text name="lbl3">
57 主题: 60 主题:
58 </text> 61 </text>
59 <text name="lbl4"> 62 <text name="lbl4">
60 ä¿¡æ¯: 63 消æ¯:
61 </text> 64 </text>
62 <button label="打开附件" label_selected="打开附件" name="open_attachment" /> 65 <button label="打开附件" label_selected="打开附件" name="open_attachment" />
63 </panel> 66 </panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_group_roles.xml b/linden/indra/newview/skins/default/xui/zh/panel_group_roles.xml
index 4eef445..ae27b8e 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_group_roles.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_group_roles.xml
@@ -1,21 +1,22 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="会员和角色" name="roles_tab"> 2<panel label="会员和角色" name="roles_tab">
3 <text name="default_needs_apply_text"> 3 <text name="default_needs_apply_text">
4 在目å‰çš„亚桌é¢ä¸Šæœ‰æ²¡æœåº”用的更改。 4 在目å‰çš„标签页上有尚未应用的更改。
5 </text> 5 </text>
6 <text name="want_apply_text"> 6 <text name="want_apply_text">
7 你是å¦æ„¿æ„现在就应用这些更改? 7 您是å¦æ„¿æ„现在就应用这些更改?
8 </text> 8 </text>
9 <text name="cant_delete_role"> 9 <text name="cant_delete_role">
10 普通人&apos;å’Œ &apos;主人&apos;角色属于特殊角色,ä¸èƒ½è¢«åˆ é™¤ã€‚ 10 ‘普通人’ å’Œ ‘团长’ 角色属于特殊角色,ä¸èƒ½è¢«åˆ é™¤ã€‚
11 </text> 11 </text>
12 <button label="?" name="help_button" /> 12 <button label="?" name="help_button" />
13 <panel name="members_header"> 13 <panel name="members_header">
14 <text name="static"> 14 <text name="static">
15 会员和角色 15 æˆå‘˜å’Œè§’色
16 </text> 16 </text>
17 <text name="static2"> 17 <text name="static2">
18 社团æˆå‘˜ä¾ç…§ä¸åŒèƒ½åŠ›å’Œæœ¬é¢†ï¼Œè¢«åˆ†é…以ä¸åŒçš„角色。这些设置å¯ä»¥è½»æ¾çš„被制定,并å…许更大é™åº¦çš„组织性和çµæ´»æ€§ã€‚ 18 社团æˆå‘˜è¢«åˆ†é…以ä¸åŒçš„角色和能力。
19角色和能力的分é…å¯ä»¥ç®€å•åœ°ä¿®æ”¹ï¼Œä»¥ä¾¿çµæ´»åœ°ç»„织社团。
19 </text> 20 </text>
20 </panel> 21 </panel>
21 <panel name="roles_header"> 22 <panel name="roles_header">
@@ -23,13 +24,13 @@
23 角色 24 角色
24 </text> 25 </text>
25 <text name="role_properties_modifiable"> 26 <text name="role_properties_modifiable">
26 选择下é¢çš„一个角色. ä½ å¯ä»¥ä¿®æ”¹è§’色的å称,æ述和会员的头衔。 27 选择下é¢çš„一个角色。你å¯ä»¥ä¿®æ”¹è§’色的å称ã€æ述和会员头衔。
27 </text> 28 </text>
28 <text name="role_properties_not_modifiable"> 29 <text name="role_properties_not_modifiable">
29 选择下é¢çš„角色,察看它的性质,æˆå‘˜å’Œæ‰€å…许的能力。 30 选择下é¢çš„角色,察看它的属性ã€å…·æœ‰è¿™ä¸ªè§’色的æˆå‘˜å’Œå…¶æ‰€å…许的能力。
30 </text> 31 </text>
31 <text name="role_actions_modifiable"> 32 <text name="role_actions_modifiable">
32 你也å¯ä»¥å¯¹è§’色分é…能力. 33 你也å¯ä»¥å¯¹è§’色分é…能力。
33 </text> 34 </text>
34 <text name="role_actions_not_modifiable"> 35 <text name="role_actions_not_modifiable">
35 ä½ å¯ä»¥æŸ¥çœ‹ï¼Œä½†ä¸èƒ½ä¿®æ”¹ï¼Œæˆ–者分é…这些能力。 36 ä½ å¯ä»¥æŸ¥çœ‹ï¼Œä½†ä¸èƒ½ä¿®æ”¹ï¼Œæˆ–者分é…这些能力。
@@ -40,47 +41,47 @@
40 能力 41 能力
41 </text> 42 </text>
42 <text name="static2"> 43 <text name="static2">
43 ä½ å¯ä»¥æŸ¥çœ‹æ¯é¡¹èƒ½åŠ›çš„具体æ述,以åŠå“ªä¸ªè§’色和会员正在执行此项能力。 44 ä½ å¯ä»¥æŸ¥çœ‹æ¯é¡¹èƒ½åŠ›çš„具体æ述,以åŠå“ªäº›è§’色和会员å¯ä»¥æ‰§è¡Œæ­¤é¡¹èƒ½åŠ›ã€‚
44 </text> 45 </text>
45 </panel> 46 </panel>
46 <tab_container name="roles_tab_container"> 47 <tab_container name="roles_tab_container">
47 <panel label="Members" name="members_sub_tab" tool_tip="Members"> 48 <panel label="会员" name="members_sub_tab" tool_tip="Members">
48 <button label="æœç´¢" name="search_button" /> 49 <button label="æœç´¢" name="search_button" />
49 <button label="显示全部" name="show_all_button" /> 50 <button label="显示全部" name="show_all_button" />
50 <name_list name="member_list"> 51 <name_list name="member_list">
51 <column label="Member Name" name="name" /> 52 <column label="会员åå­—" name="name" />
52 <column label="Donated Tier" name="donated" /> 53 <column label="æ献的土地é¢åº¦" name="donated" />
53 <column label="Last Login" name="online" /> 54 <column label="最åŽç™»å…¥" name="online" />
54 </name_list> 55 </name_list>
55 <button label="邀请一个新人 ..." name="member_invite" /> 56 <button label="邀请一个新人 ..." name="member_invite" />
56 <button label="从社团中驱é€" name="member_eject" /> 57 <button label="从社团中驱é€" name="member_eject" />
57 <text name="help_text"> 58 <text name="help_text">
58 ä½ å¯ä»¥æ·»åŠ æˆ–移除分é…给会员的角色,或者通过按ä½æŽ§åˆ¶é”®ï¼Œå¹¶ç‚¹å‡»ä¼šå‘˜çš„å字,选择多个会员。 59 ä½ å¯ä»¥æ·»åŠ æˆ–移除分é…给会员的角色。按ä½æŽ§åˆ¶é”®å¹¶ç‚¹å‡»ä¼šå‘˜çš„å字,选择多个会员。
59 </text> 60 </text>
60 </panel> 61 </panel>
61 <panel label="角色" name="roles_sub_tab"> 62 <panel label="角色" name="roles_sub_tab">
62 <button label="æœç´¢" name="search_button" /> 63 <button label="æœç´¢" name="search_button" />
63 <button label="显示全部" name="show_all_button" /> 64 <button label="显示全部" name="show_all_button" />
64 <scroll_list name="role_list"> 65 <scroll_list name="role_list">
65 <column label="Role Name" name="name" /> 66 <column label="角色åå­—" name="name" />
66 <column label="Title" name="title" /> 67 <column label="头衔" name="title" />
67 <column label="Members" name="members" /> 68 <column label="会员数" name="members" />
68 </scroll_list> 69 </scroll_list>
69 <button label="创建新的角色 ..." name="role_create" /> 70 <button label="创建新的角色 ..." name="role_create" />
70 <button label="删除角色" name="role_delete" /> 71 <button label="删除角色" name="role_delete" />
71 <text name="help_text"> 72 <text name="help_text">
72 角色都有一个头衔,并且å…许列出æ¯ä¸ªæˆå‘˜èƒ½å¤Ÿè¡Œä½¿çš„能力。æˆå‘˜ä»¬å¯ä»¥å±žäºŽä¸€ä¸ªæˆ–多个角色。一个社团最多有10个角色,包括普通人和主人角色。 73 角色都有一个头衔,以åŠä¸€ç»„这个角色å¯ä»¥æ‰§è¡Œçš„能力。团员们å¯ä»¥å±žäºŽä¸€ä¸ªæˆ–多个角色。一个社团最多有 10 个角色,包括‘普通人’和‘团长’这两个角色。
73 </text> 74 </text>
74 </panel> 75 </panel>
75 <panel label="能力" name="actions_sub_tab"> 76 <panel label="能力" name="actions_sub_tab">
76 <button label="æœç´¢" name="search_button" /> 77 <button label="æœç´¢" name="search_button" />
77 <button label="显示全部" name="show_all_button" /> 78 <button label="显示全部" name="show_all_button" />
78 <scroll_list name="action_list" tool_tip="Select an Ability to view more details."> 79 <scroll_list name="action_list" tool_tip="选择一个角色查看详细内容。">
79 <column label="" name="icon" /> 80 <column label="" name="icon" />
80 <column label="" name="action" /> 81 <column label="" name="action" />
81 </scroll_list> 82 </scroll_list>
82 <text name="help_text"> 83 <text name="help_text">
83 这些能力å…许角色里的会员在社团里åšä¸€äº›ç‰¹æ®Šçš„事情。关于能力的ç§ç±»èŒƒç•´å¾ˆå®½ã€‚ 84 能力å…许æŒæœ‰è§’色的团员在社团中åšç‰¹å®šçš„事项。能力有很多ç§ã€‚
84 </text> 85 </text>
85 </panel> 86 </panel>
86 </tab_container> 87 </tab_container>
@@ -89,14 +90,14 @@
89 分é…的角色 90 分é…的角色
90 </text> 91 </text>
91 <text name="static2"> 92 <text name="static2">
92 å…许能力 93 å…许的能力
93 </text> 94 </text>
94 <scroll_list name="member_assigned_roles"> 95 <scroll_list name="member_assigned_roles">
95 <column label="" name="checkbox" /> 96 <column label="" name="checkbox" />
96 <column label="" name="role" /> 97 <column label="" name="role" />
97 </scroll_list> 98 </scroll_list>
98 <scroll_list name="member_allowed_actions" 99 <scroll_list name="member_allowed_actions"
99 tool_tip="For Details of each Allowed Ability see the Abilities tab."> 100 tool_tip="æ¯ä¸ªèƒ½åŠ›çš„详细资料请å‚è§èƒ½åŠ›æ ‡ç­¾ã€‚">
100 <column label="" name="icon" /> 101 <column label="" name="icon" />
101 <column label="" name="action" /> 102 <column label="" name="action" />
102 </scroll_list> 103 </scroll_list>
@@ -108,17 +109,17 @@
108 <text name="static2"> 109 <text name="static2">
109 æè¿° 110 æè¿°
110 </text> 111 </text>
111 <line_editor name="role_name"> 112 <line_editor name="role_name"><!--placeholder-->
112 雇员 113 雇员
113 </line_editor> 114 </line_editor>
114 <text name="static3"> 115 <text name="static3">
115 头衔 116 头衔
116 </text> 117 </text>
117 <line_editor name="role_title"> 118 <line_editor name="role_title">
118 (等待) 119 (等待中)
119 </line_editor> 120 </line_editor>
120 <text_editor name="role_description"> 121 <text_editor name="role_description">
121 (等待) 122 (等待中)
122 </text_editor> 123 </text_editor>
123 <text name="static4"> 124 <text name="static4">
124 分é…çš„æˆå‘˜ 125 分é…çš„æˆå‘˜
@@ -128,9 +129,9 @@
128 å…许能力 129 å…许能力
129 </text> 130 </text>
130 <check_box label="组员å¯è§" name="role_visible_in_list" 131 <check_box label="组员å¯è§" name="role_visible_in_list"
131 tool_tip="Sets whether members of this role are visible in the General tab to people outside of the group." /> 132 tool_tip="设定该角色的æˆå‘˜å¯¹ç¤¾å›¢å¤–的人是å¦åœ¨ä¸€èˆ¬æ ‡ç­¾é¡µä¸­å¯è§ã€‚" /><!--So long...-->
132 <scroll_list name="role_allowed_actions" 133 <scroll_list name="role_allowed_actions"
133 tool_tip="For Details of each Allowed Ability see the Abilities tab."> 134 tool_tip="æ¯ä¸ªèƒ½åŠ›çš„详细资料请å‚è§èƒ½åŠ›æ ‡ç­¾ã€‚">
134 <column label="" name="icon" /> 135 <column label="" name="icon" />
135 <column label="" name="checkbox" /> 136 <column label="" name="checkbox" />
136 <column label="" name="action" /> 137 <column label="" name="action" />
@@ -140,14 +141,14 @@
140 <text name="static"> 141 <text name="static">
141 æè¿° 142 æè¿°
142 </text> 143 </text>
143 <text_editor name="action_description"> 144 <text_editor name="action_description"><!--Placeholder again-->
144 这项能力是‘从社团中驱é€ä¼šå‘˜â€™ã€‚åªæœ‰ä¸»äººèƒ½å¤Ÿé©±é€å¦ä¸€ä¸ªä¸»äººã€‚ 145 这项能力是 ‘从社团中驱é€ä¼šå‘˜â€™ã€‚åªæœ‰å›¢é•¿èƒ½å¤Ÿé©±é€å¦ä¸€ä¸ªå›¢é•¿ã€‚
145 </text_editor> 146 </text_editor>
146 <text name="static2"> 147 <text name="static2">
147 有能力的角色 148 有该能力的角色
148 </text> 149 </text>
149 <text name="static3"> 150 <text name="static3">
150 有能力的会员 151 有该能力的会员
151 </text> 152 </text>
152 </panel> 153 </panel>
153</panel> 154</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_group_voting.xml b/linden/indra/newview/skins/default/xui/zh/panel_group_voting.xml
index 9d44191..f6aa9ad 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_group_voting.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_group_voting.xml
@@ -1,65 +1,71 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="议案" name="voting_tab"> 2<panel label="æè®®" name="voting_tab">
3 <text name="help_text"> 3 <text name="help_text">
4 社团æ议并ä¸èƒ½è§†ä¸ºæ˜¯ç¤¾å›¢å‘è¦åšçš„事,或者是社团度æŸäº›äº‹æƒ…的看法。如果你有åˆé€‚çš„æƒåˆ©ï¼Œä½ å°±å¯ä»¥åˆ›å»ºæ议,投票表决开放性æ议,并查看旧的æ议。 4社团æè®®å¯ä»¥ç”¨æ¥äº†è§£ç¤¾å›¢æƒ³è¦åšçš„事,或者是社团对æŸäº›äº‹æƒ…的看法。如果你有åˆé€‚çš„æƒåŠ›ï¼Œä½ å°±å¯ä»¥åˆ›å»ºæè®®ã€æŠ•ç¥¨è¡¨å†³å¼€æ”¾çš„æ议,以åŠæŸ¥çœ‹æ—§çš„æ议。
5 </text> 5 </text>
6 <button label="?" name="help_button" />
7 <text name="proposal_header"> 6 <text name="proposal_header">
8 打开社团æè®® 7 开放的社团æè®®
8 </text>
9 <text name="proposal_instructions">
10 åŒå‡»ä½ æ„¿æ„投票的决议,点击创建决议, 以创建一个新的决议。
11 </text>
12 <text name="proposal_lbl">
13 æè®®æè¿°
14 </text>
15 <text
16 name="proposal_voting_lbl"
17 visible="true">
18 æè®® æŠ•ç¥¨ç»“æŸ å·²ç»æŠ•ç¥¨ï¼Ÿ
9 </text> 19 </text>
20 <button label="创建æè®®" label_selected="创建æè®®" name="btn_proposal" />
21 <button label="查看æè®®" label_selected="查看æè®®" name="btn_view_proposal_item" />
22 <button label="查看åå•" label_selected="查看åå•" name="btn_view_proposal_list" />
10 <text name="proposals_header_view_txt"> 23 <text name="proposals_header_view_txt">
11 打开社团æè®® 24 开放的社团æè®®
12 </text> 25 </text>
13 <text name="proposals_header_create_txt"> 26 <text name="proposals_header_create_txt">
14 创造æè®® 27 创建æè®®
15 </text> 28 </text>
16 <text name="proposals_header_vote_txt"> 29 <text name="proposals_header_vote_txt">
17 议案的投票表决 30 对æ议投票
18 </text> 31 </text>
19 <text name="empty_proposal_txt"> 32 <text name="empty_proposal_txt">
20 你正在å°è¯•åˆ›å»ºçš„æ案是空的。请在创建之å‰å¡«å¥½ä½ çš„æ案。 33 你正在å°è¯•åˆ›å»ºçš„æ议是空的。请在创建之å‰å¡«å¥½ä½ çš„æ议。
21 </text>
22 <text name="proposal_instructions">
23 åŒå‡»ä½ æ„¿æ„投票的决议,点击创建决议, 以创建一个新的决议。
24 </text>
25 <text name="proposal_lbl">
26 建议:
27 </text> 34 </text>
28 <button label="创造æè®®" label_selected="创造æè®®" name="btn_proposal" /> 35
29 <button label="察看æè®®" label_selected="察看æè®®" 36
30 name="btn_view_proposal_item" /> 37
31 <button label="查看åå•" label_selected="查看åå•" 38
32 name="btn_view_proposal_list" />
33 <text name="quorum_lbl"> 39 <text name="quorum_lbl">
34 法定人数: 40 法定人数:
35 </text> 41 </text>
36 <spinner name="quorum" tool_tip="# 人为选举结果有效还需è¦çš„人数。" /> 42 <spinner name="quorum" tool_tip="为选举结果有效需è¦æœ€å°‘的人数。" />
37 <text name="quorum_text"> 43 <text name="quorum_text">
38 总数为x 社团会员. 44 ä½å›¢å‘˜å¿…须投票(总共 [MEMBERS]人)
39 </text> 45 </text>
40 <text name="duration_lbl"> 46 <text name="duration_lbl">
41 æŒç»­æ—¶é—´: 47 æŒç»­æ—¶é—´:
42 </text> 48 </text>
43 <spinner name="duration" tool_tip="#天为选举还将æŒç»­çš„天数。" /> 49 <spinner name="duration" tool_tip="投票æŒç»­çš„天数" />
44 <text name="duration_text"> 50 <text name="duration_text">
45 天 51 天
46 </text> 52 </text>
47 <radio_group name="majority" tool_tip="Majority of total votes needed to win."> 53 <radio_group name="majority" tool_tip="投票æˆåŠŸéœ€è¦çš„人数。">
48 简å•å¤šæ•° 54 简å•å¤šæ•°
49 2/3 多数 55 2/3 多数
50 全票通过 56 全票通过
51 </radio_group> 57 </radio_group>
52 <text name="start_lbl"> 58 <text name="start_lbl">
53 选举开始: 59 投票开始:
54 </text> 60 </text>
55 <text name="end_lbl"> 61 <text name="end_lbl">
56 é€‰ä¸¾ç»“æŸ : 62 æŠ•ç¥¨ç»“æŸ :
57 </text> 63 </text>
58 <button label="æ交æè®®" label_selected="æ交æè®®" name="btn_submit" /> 64 <button label="æ交æè®®" label_selected="æ交æè®®" name="btn_submit" />
59 <button label="å–消" label_selected="å–消" name="btn_cancel" /> 65 <button label="å–消" label_selected="å–消" name="btn_cancel" />
60 <button label="是" label_selected="是" name="btn_yes" /> 66 <button label="是" label_selected="是" name="btn_yes" />
61 <button label="å¦" label_selected="å¦" name="btn_no" /> 67 <button label="å¦" label_selected="å¦" name="btn_no" />
62 <button label="放弃" label_selected="放弃" name="btn_abstain" /> 68 <button label="弃æƒ" label_selected="弃æƒ" name="btn_abstain" />
63 <text name="txt"> 69 <text name="txt">
64 ç¤¾å›¢é€‰ä¸¾å² 70 社团选举å²
65 </text> 71 </text>
@@ -69,10 +75,50 @@
69 <text name="history_list_lbl"> 75 <text name="history_list_lbl">
70 通过表决 投票表决终止 76 通过表决 投票表决终止
71 </text> 77 </text>
72 <button label="查看物å“æ " label_selected="查看物å“æ " 78 <button label="查看项目" label_selected="查看项目"
73 name="btn_view_history_item" /> 79 name="btn_view_history_item" />
74 <text name="vote_text_lbl"> 80 <text name="vote_text_lbl">
75 选举结果: 81 投票结果:
76 </text> 82 </text>
77 <button label="查看åå•" label_selected="查看åå•" name="btn_view_history_list" /> 83 <button label="查看åå•" label_selected="查看åå•" name="btn_view_history_list" />
84 <string
85 name="proposals_header_view_inst">
86 åŒå‡»ä½ æƒ³è¦æŠ•ç¥¨çš„æ议,或者按‘创建æ议’æ¥åˆ›å»ºæ–°çš„æ议。
87 </string>
88 <string
89 name="proposals_header_create_inst">
90 输入新的æ议的æ述。您å¯ä»¥æ›´æ”¹æœ€å°‘投票人数ã€æ—¶é—´ä»¥åŠéœ€è¦é€šè¿‡æŠ•ç¥¨çš„人数类别。
91 </string>
92 <string
93 name="proposals_header_vote_inst">
94 按‘是’或‘å¦â€™æ¥å¯¹æ议投票,或者选择在此æ议上弃æƒã€‚
95 </string>
96 <string
97 name="proposals_header_voted_inst">
98 您选择了: [VOTE]
99 </string>
100<string
101 name="proposals_submit_yes_txt">
102 正在æ交åŒæ„票...
103 </string>
104 <string
105 name="proposals_submit_no_txt">
106 正在æ交å对票...
107 </string>
108 <string
109 name="proposals_submit_abstain_txt">
110 正在æ交弃æƒç¥¨...
111 </string>
112 <string
113 name="proposals_submit_new_txt">
114 正在æ交新的æè®®...
115 </string>
116 <string
117 name="vote_recorded">
118 您的投票已ç»æ”¶åˆ°ã€‚
119 </string>
120 <string
121 name="vote_previously_recorded">
122 您已ç»æŠ•è¿‡ç¥¨äº†ã€‚一次æè®®åªèƒ½æŠ•ç¥¨ä¸€æ¬¡ã€‚
123 </string>
78</panel> 124</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_groups.xml b/linden/indra/newview/skins/default/xui/zh/panel_groups.xml
new file mode 100644
index 0000000..958f392
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_groups.xml
@@ -0,0 +1,29 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="groups">
3 <text name="groupdesc" >
4 您当å‰æ¿€æ´»çš„社团以粗体表示。
5 </text>
6 <text name="groupcount" >
7 您现在属于 [COUNT] 个社团 (最大 [MAX] 个)。
8 </text>
9 <button
10 label="èŠå¤©/呼å«"
11 name="IM"
12 tool_tip="打开å³æ—¶é€šä¿¡ä¼šè¯" />
13 <button
14 label="ä¿¡æ¯"
15 name="Info" />
16 <button
17 label="激活"
18 name="Activate" />
19 <button
20 label="离开"
21 name="Leave" />
22 <button
23 label="创建..."
24 name="Create" />
25 <button
26 label="æœç´¢..."
27 name="Search..." />
28</panel>
29<!--Translated for Second Life 1.19.0 (79185)--> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_login.xml b/linden/indra/newview/skins/default/xui/zh/panel_login.xml
index dc06531..a10df47 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_login.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_login.xml
@@ -1,25 +1,25 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="panel_login"> 2<panel name="panel_login">
3 <text name="first_name_text"> 3 <text name="first_name_text">
4 姓: 4 å:
5 </text> 5 </text>
6 <text name="last_name_text"> 6 <text name="last_name_text">
7 å: 7 姓:
8 </text> 8 </text>
9 <text name="password_text"> 9 <text name="password_text">
10 密ç : 10 密ç :
11 </text> 11 </text>
12 <text name="start_location_text"> 12 <text name="start_location_text">
13 开始定ä½: 13 开始ä½ç½®:
14 </text> 14 </text>
15 <combo_box name="start_location_combo"> 15 <combo_box name="start_location_combo">
16 <combo_item name="MyHome"> 16 <combo_item name="MyHome">
17 我的家 17 我的家
18 </combo_item> 18 </combo_item>
19 <combo_item name="MyLastLocation"> 19 <combo_item name="MyLastLocation">
20 我的上个ä½ç½® 20 我最åŽåœ¨çš„ä½ç½®
21 </combo_item> 21 </combo_item>
22 <combo_item name="&lt;Typeregionname&gt;"> 22 <combo_item name="Typeregionname">
23 &lt;输入地域å&gt; 23 &lt;输入地域å&gt;
24 </combo_item> 24 </combo_item>
25 </combo_box> 25 </combo_box>
@@ -28,9 +28,18 @@
28 登陆åŽæ˜¾ç¤ºå™¨ä¼šé‡‡ç”¨å…¨å±æ˜¾ç¤ºã€‚ 28 登陆åŽæ˜¾ç¤ºå™¨ä¼šé‡‡ç”¨å…¨å±æ˜¾ç¤ºã€‚
29 </text> 29 </text>
30 <button label="æ–°å¸æˆ·..." label_selected="æ–°å¸æˆ·..." name="new_account_btn" /> 30 <button label="æ–°å¸æˆ·..." label_selected="æ–°å¸æˆ·..." name="new_account_btn" />
31 <button label="连接" label_selected="连接" name="connect_btn" /> 31 <button label="登入" label_selected="登入" name="connect_btn" />
32 <button label="å‚数选择..." label_selected="å‚数选择..." name="preferences_btn" /> 32 <button label="å‚数选择..." label_selected="å‚数选择..." name="preferences_btn" />
33 <button label="退出" label_selected="退出" name="quit_btn" /> 33 <button label="退出" label_selected="退出" name="quit_btn" />
34 <text name="forgot_password_text">
35 忘记了姓å或密ç å—?
36 </text>
37 <text
38 name="create_new_account_text"
39 hover_color="50 115 185">
40 申请新å¸æˆ·ã€‚
41 </text>
42
34 <text name="version_text"> 43 <text name="version_text">
35 1.23.4 (5) 44 1.23.4 (5)
36 </text> 45 </text>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_media_controls.xml b/linden/indra/newview/skins/default/xui/zh/panel_media_controls.xml
new file mode 100644
index 0000000..0924596
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_media_controls.xml
@@ -0,0 +1,83 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel
3 name="media_controls">
4 <icon
5 label=""
6 name="music_icon"
7 tool_tip="播放或暂åœéŸ³ä¹æµ" />
8 <button
9 label=""
10 name="music_play"
11 tool_tip="播放或暂åœéŸ³ä¹æµ" />
12 <button
13 label=""
14 name="music_pause"
15 tool_tip="æš‚åœéŸ³ä¹æµ" />
16 <button
17 label=""
18 name="music_stop"
19 tool_tip="åœæ­¢éŸ³ä¹æµ" />
20 <icon
21 label=""
22 name="media_icon"
23 tool_tip="播放或暂åœéŸ³ä¹æµ" />
24 <button
25 image_disabled="flyout_btn_left_disabled.tga"
26 label=""
27 name="media_play"
28 tool_tip="播放或暂åœéŸ³ä¹æµ" />
29 <button
30 image_disabled="flyout_btn_left_disabled.tga"
31 label=""
32 name="media_pause"
33 tool_tip="æš‚åœåª’体æµ" />
34 <button
35 label=""
36 name="media_stop"
37 tool_tip="åœæ­¢åª’体æµ" />
38 <volume_slider
39 name="volume_slider"
40 tool_tip="主音é‡" />
41 <button
42 label=""
43 name="mute_master"
44 tool_tip="全部ç¦éŸ³" />
45 <button
46 name="expand"
47 tool_tip="å•ç‹¬è°ƒèŠ‚音é‡å¤§å°" />
48
49 <string
50 name="play_label">
51 播放
52 </string>
53 <string
54 name="stop_label">
55 åœæ­¢
56 </string>
57 <string
58 name="pause_label">
59 æš‚åœ
60 </string>
61 <string
62 name="default_tooltip_label">
63 没有设定媒体
64 </string>
65 <string
66 name="media_hidden_label">
67 (URL 被地å—拥有者éšè—)
68 </string>
69 <string
70 name="media_icon_tooltip_web">
71 该地点显示 World Wide Web 上的内容。点击播放按钮显示网络内容。
72 </string>
73 <string
74 name="media_icon_tooltip_movie">
75 该地点显示视频内容。点击播放按钮播放视频。
76 </string>
77 <string
78 name="media_play_tooltip">
79 在该地点显示网络内容。
80 </string>
81</panel>
82
83
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_media_remote_expanded.xml b/linden/indra/newview/skins/default/xui/zh/panel_media_remote_expanded.xml
new file mode 100644
index 0000000..b08bbef
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_media_remote_expanded.xml
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel
3 name="media_remote"
4 use_bounding_rect="true">
5 <string
6 name="play_label">
7 播放
8 </string>
9 <string
10 name="stop_label">
11 åœæ­¢
12 </string>
13 <string
14 name="pause_label">
15 æš‚åœ
16 </string>
17 <string
18 name="default_tooltip_label">
19 没有设定媒体
20 </string>
21 <string
22 name="media_hidden_label">
23 (URL 被地å—拥有者éšè—)
24 </string>
25 <string
26 name="media_icon_tooltip_web">
27 该地点显示 World Wide Web 上的内容。点击播放按钮显示网络内容。
28 </string>
29 <string
30 name="media_icon_tooltip_movie">
31 该地点显示视频内容。点击播放按钮播放视频。
32 </string>
33 <string
34 name="media_play_tooltip">
35 在该地点显示网络内容。
36 </string>
37</panel>
38
39
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_overlaybar.xml b/linden/indra/newview/skins/default/xui/zh/panel_overlaybar.xml
index 627206c..3e83ba2 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_overlaybar.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_overlaybar.xml
@@ -1,15 +1,23 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="overlay"> 2<panel name="overlay">
3 <button label="已收到å³æ—¶æ¶ˆæ¯" label_selected="已收到å³æ—¶æ¶ˆæ¯" 3 <layout_stack name="overlay_layout_panel">
4 name="IM Received" 4 <layout_panel name="main_panel" min_width="420">
5 tool_tip="你有一个未察看的å³æ—¶æ¶ˆæ¯.请点击察看" /> 5 <layout_stack name="chatbar_and_buttons">
6 <button label="设æˆä¸å¿™çŠ¶æ€" label_selected="设æˆä¸å¿™çŠ¶æ€" 6 <layout_panel name="state_buttons">
7 name="Set Not Busy" 7 <button label="已收到å³æ—¶æ¶ˆæ¯" label_selected="已收到å³æ—¶æ¶ˆæ¯"
8 tool_tip="èŠå¤©ä¸Žå³æ—¶æ¶ˆæ¯æ¨¡å¼ä»¥å¯¹ä½ éšè—。 点击这里æ¥è®¾å®šä½ ä¸åœ¨å¿™ç¢Œæ¨¡å¼ä¸‹" /> 8 name="IM Received"
9 <button label="释放键盘" label_selected="释放键盘" name="Release Keys" 9 tool_tip="你有一个未察看的å³æ—¶æ¶ˆæ¯ã€‚请点击察看" />
10 tool_tip="脚本已ç»æŽ§åˆ¶äº†ä½ çš„控制键。点击这里释放控制键。" /> 10 <button label="å–消忙碌状æ€" label_selected="å–消忙碌状æ€"
11 <button label="第一人称视角" label_selected="第一人称视角" name="Mouselook" 11 name="Set Not Busy"
12 tool_tip="使用鼠标控制å±å¹•. 如果你有枪, åŒå‡»æžªåˆ™ä¼šè‡ªåŠ¨å°„击." /> 12 tool_tip="èŠå¤©ä¸Žå³æ—¶æ¶ˆæ¯æ¨¡å¼å·²å¯¹ä½ éšè—。 点击这里æ¥è®¾å®šä½ ä¸åœ¨å¿™ç¢Œæ¨¡å¼ä¸‹" />
13 <button label="起身" label_selected="起身" name="Stand Up" 13 <button label="释放键盘" label_selected="释放键盘" name="Release Keys"
14 tool_tip="点击这里æ¥ç«™ç«‹" /> 14 tool_tip="一个脚本已ç»æŽ§åˆ¶äº†ä½ çš„控制键。点击这里释放控制键。" />
15 <button label="第一人称视角" label_selected="第一人称视角" name="Mouselook"
16 tool_tip="使用鼠标控制å±å¹•ã€‚如果你有枪,点击则å¯ä»¥å°„击。" />
17 <button label="起身" label_selected="起身" name="Stand Up"
18 tool_tip="点击这里æ¥ç«™ç«‹" />
19 </layout_panel>
20 </layout_stack>
21 </layout_panel>
22 </layout_stack>
15</panel> 23</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_place.xml b/linden/indra/newview/skins/default/xui/zh/panel_place.xml
index 133d320..68668ae 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_place.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_place.xml
@@ -1,6 +1,60 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="Place" title="地方"> 2<panel
3 <button label="闪电传é€" name="teleport_btn" /> 3 name="Place"
4 <button label="在地图中显示" name="map_btn" /> 4 title="Place">
5 <button label="投标..." name="auction_btn" /> 5 <text
6 name="name_label">
7 å称:
8 </text>
9 <text
10 name="description_label">
11 æè¿°:
12 </text>
13 <text
14 name="information_label">
15 ä¿¡æ¯:
16 </text>
17 <text
18 name="location_label">
19 ä½ç½®:
20 </text>
21 <button
22 label="瞬间移动"
23 name="teleport_btn" />
24 <button
25 label="在地图上显示"
26 name="map_btn" />
27 <button
28 label="投标..."
29 name="auction_btn" />
30 <string
31 name="traffic_text">
32 æµé‡: [TRAFFIC]
33 </string>
34 <string
35 name="area_text">
36 é¢ç§¯: [AREA] 平方米
37 </string>
38 <string
39 name="forsale_text">
40 以 L$ [PRICE] 的价格出售
41 </string>
42 <string
43 name="auction_text">
44 æ‹å– ID [ID].
45 </string>
46 <string
47 name="server_update_text">
48 如果æœåŠ¡å™¨ä¸æ›´æ–°çš„è¯ï¼Œå°±æ²¡æœ‰åœ°ç‚¹ä¿¡æ¯ã€‚
49 </string>
50 <string
51 name="server_error_text">
52 关于这个地点的信æ¯çŽ°åœ¨æš‚æ—¶ä¸å¯ç”¨ï¼Œè¯·ç¨å€™å†è¯•ã€‚
53 </string>
54 <string
55 name="server_forbidden_text">
56 由于访问é™åˆ¶ï¼Œå…³äºŽè¿™ä¸ªåœ°ç‚¹çš„ä¿¡æ¯ä¸å¯ç”¨ã€‚请与地å—çš„æŒæœ‰äººç¡®è®¤ä½ çš„æƒé™ã€‚
57 </string>
6</panel> 58</panel>
59
60
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_place_small.xml b/linden/indra/newview/skins/default/xui/zh/panel_place_small.xml
index 133d320..68668ae 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_place_small.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_place_small.xml
@@ -1,6 +1,60 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="Place" title="地方"> 2<panel
3 <button label="闪电传é€" name="teleport_btn" /> 3 name="Place"
4 <button label="在地图中显示" name="map_btn" /> 4 title="Place">
5 <button label="投标..." name="auction_btn" /> 5 <text
6 name="name_label">
7 å称:
8 </text>
9 <text
10 name="description_label">
11 æè¿°:
12 </text>
13 <text
14 name="information_label">
15 ä¿¡æ¯:
16 </text>
17 <text
18 name="location_label">
19 ä½ç½®:
20 </text>
21 <button
22 label="瞬间移动"
23 name="teleport_btn" />
24 <button
25 label="在地图上显示"
26 name="map_btn" />
27 <button
28 label="投标..."
29 name="auction_btn" />
30 <string
31 name="traffic_text">
32 æµé‡: [TRAFFIC]
33 </string>
34 <string
35 name="area_text">
36 é¢ç§¯: [AREA] 平方米
37 </string>
38 <string
39 name="forsale_text">
40 以 L$ [PRICE] 的价格出售
41 </string>
42 <string
43 name="auction_text">
44 æ‹å– ID [ID].
45 </string>
46 <string
47 name="server_update_text">
48 如果æœåŠ¡å™¨ä¸æ›´æ–°çš„è¯ï¼Œå°±æ²¡æœ‰åœ°ç‚¹ä¿¡æ¯ã€‚
49 </string>
50 <string
51 name="server_error_text">
52 关于这个地点的信æ¯çŽ°åœ¨æš‚æ—¶ä¸å¯ç”¨ï¼Œè¯·ç¨å€™å†è¯•ã€‚
53 </string>
54 <string
55 name="server_forbidden_text">
56 由于访问é™åˆ¶ï¼Œå…³äºŽè¿™ä¸ªåœ°ç‚¹çš„ä¿¡æ¯ä¸å¯ç”¨ã€‚请与地å—çš„æŒæœ‰äººç¡®è®¤ä½ çš„æƒé™ã€‚
57 </string>
6</panel> 58</panel>
59
60
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml
index 4aabe38..ef0df68 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml
@@ -1,40 +1,62 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="Audio &amp; Video" name="Media panel"> 2<panel label="音频和视频" name="Media panel">
3 <text type="string" length="1" name="muting_text"> 3 <text type="string" length="1" name="muting_text">
4 å±è”½: 4 音é‡:
5 </text> 5 </text>
6 <check_box label="å±è”½å£°éŸ³" name="disable audio" /> 6 <check_box label="å±è”½å£°éŸ³" name="disable audio" />
7 <check_box label="当窗å£æœ€å°åŒ–æ—¶å±è”½å£°éŸ³" name="mute_when_minimized" /> 7 <check_box label="当窗å£æœ€å°åŒ–æ—¶å±è”½å£°éŸ³" name="mute_when_minimized" />
8 <text type="string" length="1" name="streaming_text"> 8 <text
9 æµæ´¾: 9 name="streaming_prefs_text">
10 æµåª’体首选项:
10 </text> 11 </text>
12 <text
13 name="audio_prefs_text">
14 音频首选项:
15 </text>
16
11 <check_box label="当音ä¹å¯ç”¨æ—¶æ’­æ”¾éŸ³ä¹æµ(会å ç”¨æ›´å¤šå¸¦å®½)" 17 <check_box label="当音ä¹å¯ç”¨æ—¶æ’­æ”¾éŸ³ä¹æµ(会å ç”¨æ›´å¤šå¸¦å®½)"
12 name="streaming_music" /> 18 name="streaming_music" />
13 <check_box label="当视频å¯ç”¨æ—¶æ’­æ”¾è§†é¢‘æµ(会å ç”¨æ›´å¤šå¸¦å®½)" 19 <check_box label="当视频å¯ç”¨æ—¶æ’­æ”¾è§†é¢‘æµ(会å ç”¨æ›´å¤šå¸¦å®½)"
14 name="streaming_video" /> 20 name="streaming_video" />
21 <check_box label="自动播放媒体"
22 name="auto_streaming_video" />
23
24 <text type="string" length="1" name="streaming_text">
25 æµæ´¾:
26 </text>
27
15 <text type="string" length="1" name="system_volume_text"> 28 <text type="string" length="1" name="system_volume_text">
16 声效: 29 系统声音效果:
17 </text> 30 </text>
18 <text type="string" length="1" name="wind_volume_text"> 31 <text type="string" length="1" name="wind_volume_text">
19 风é‡: 32 风声:
20 </text> 33 </text>
21 <text type="string" length="1" name="footsteps_volume_text"> 34 <text type="string" length="1" name="footsteps_volume_text">
22 è„šå°å°ºå¯¸: 35 脚步声:
23 </text> 36 </text>
24 <text type="string" length="1" name="ui_volume_text"> 37 <text type="string" length="1" name="ui_volume_text">
25 UI体积: 38 ç•Œé¢éŸ³é‡:
26 </text>
27 <spinner label="L$ 整体改å˜" name="L$ Change Threshold" />
28 <spinner label="从åˆå§‹æ›´æ”¹å¥åº·çŠ¶å†µ" name="Health Change Threshold" />
29 <text type="string" length="1" name="doppler_effect_text">
30 多普勒效应:
31 </text> 39 </text>
40 <spinner label="L$ å˜åŒ–阈值" name="L$ Change Threshold" />
41 <spinner label="生命值å˜åŒ–阈值" name="Health Change Threshold" />
42
43 <slider
44 name="Doppler Effect" width="250"
45 label="多普勒效应" />
32 <text type="string" length="1" name="distance_factor_text"> 46 <text type="string" length="1" name="distance_factor_text">
33 è·ç¦»å› ç´ : 47 è·ç¦»ç³»æ•°:
34 </text> 48 </text>
49 <slider
50 name="Distance Factor"
51 label="è·ç¦»ç³»æ•°" />
52
35 <text type="string" length="1" name="rolloff_factor_text"> 53 <text type="string" length="1" name="rolloff_factor_text">
36 翻转因素: 54 è¡°å系数:
37 </text> 55 </text>
56 <slider
57 name="Rolloff Factor"
58 label="è¡°å‡ç³»æ•°:" />
59
38 <text type="string" length="1" name="default_upload_bitrate_text"> 60 <text type="string" length="1" name="default_upload_bitrate_text">
39 默认上传速率: 61 默认上传速率:
40 </text> 62 </text>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml
index 779c2e3..143821d 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml
@@ -3,52 +3,70 @@
3 <text type="string" length="1" name="text_box"> 3 <text type="string" length="1" name="text_box">
4 èŠå¤©å­—体大å°: 4 èŠå¤©å­—体大å°:
5 </text> 5 </text>
6 <radio_group name="chat font size"> 6 <radio_group name="chat_font_size">
7 <radio_item type="string" length="1" name="radio"> 7 <radio_item type="string" length="1" name="radio">
8 å°åž‹çš„ 8 å°å·
9 </radio_item> 9 </radio_item>
10 <radio_item type="string" length="1" name="radio2"> 10 <radio_item type="string" length="1" name="radio2">
11 中型的 11 中å·
12 </radio_item> 12 </radio_item>
13 <radio_item type="string" length="1" name="radio3"> 13 <radio_item type="string" length="1" name="radio3">
14 大型的 14 大å·
15 </radio_item> 15 </radio_item>
16 </radio_group> 16 </radio_group>
17 <text type="string" length="1" name="text_box2"> 17 <text type="string" length="1" name="text_box2">
18 èŠå¤©é¢œè‰²: 18 èŠå¤©é¢œè‰²:
19 </text> 19 </text>
20 <!--Geneko Nemeth: 最多åªèƒ½å†™ä¸‰ä¸ªå­—。/Maximum 3 Chinese characters.-->
21 <color_swatch
22 label="您"
23 name="user" />
24 <color_swatch
25 label="其他人"
26 name="agent" />
27 <color_swatch
28 label="å³æ—¶"
29 name="im" />
20 <color_swatch label="系统" name="system" /> 30 <color_swatch label="系统" name="system" />
31 <color_swatch label="错误" name="script_error" />
21 <color_swatch label="用户" name="users" /> 32 <color_swatch label="用户" name="users" />
22 <color_swatch label="东东" name="objects" /> 33 <color_swatch label="物体" name="objects" />
23 <color_swatch label="泡沫" name="background" /> 34 <color_swatch label="Owner" name="owner" />
24 <color_swatch label="URLs" name="links" /> 35 <color_swatch label="æ°”çƒ" name="background" />
36 <color_swatch label="链接" name="links" />
25 <text type="string" length="1" name="text_box3"> 37 <text type="string" length="1" name="text_box3">
26 èŠå¤©æŽ§åˆ¶å°: 38 èŠå¤©æŽ§åˆ¶å°:
27 </text> 39 </text>
28 <spinner label="èŠå¤©ç»“æŸåŽæ·¡å‡º" name="fade_chat_time" /> 40 <spinner label="对è¯æ·¡å‡ºæ—¶é—´" name="fade_chat_time" />
29 <text type="string" length="1" name="text_box4"> 41 <text type="string" length="1" name="text_box4">
30 (秒) 42 (秒)
31 </text> 43 </text>
32 <text type="string" length="1" name="text_box5"> 44 <text type="string" length="1" name="text_box5">
33 (#行) 45 (行)
34 </text> 46 </text>
35 <slider label="ä¸é€æ˜Ž" name="console_opacity" /> 47 <slider label="ä¸é€æ˜Žåº¦" name="console_opacity" />
48 <check_box
49 label="使用全å±å®½åº¦ (需è¦é‡å¯åŠ¨)"
50 name="chat_full_width_check" />
36 <text type="string" length="1" name="text_box6"> 51 <text type="string" length="1" name="text_box6">
37 èŠå¤©é€‰é¡¹: 52 èŠå¤©é€‰é¡¹:
38 </text> 53 </text>
39 <check_box label="用全å±å®½åº¦èŠå¤© (需é‡å¯)" name="chat_full_width_check" /> 54 <check_box label="用全å±å®½åº¦èŠå¤© (需é‡å¯)" name="chat_full_width_check" />
40 <check_box label="点击返回åŽå…³é—­èŠå¤©çª—å£" name="close_chat_on_return_check" /> 55 <check_box label="按回车键关闭èŠå¤©æ " name="close_chat_on_return_check" />
41 <check_box label="ï¼›èŠå¤©æ—¶å¯ç”¨ç®­å¤´é”®ç§»åŠ¨ä½ çš„化身" 56 <check_box label="èŠå¤©æ—¶ç®­å¤´é”®æ€»æ˜¯ç§»åŠ¨ä½ çš„化身"
42 name="arrow_keys_move_avatar_check" /> 57 name="arrow_keys_move_avatar_check" />
43 <check_box label="在èŠå¤©æ—¶æ˜¾ç¤ºæ—¶é—´" name="show_timestamps_check" /> 58 <check_box label="本地èŠå¤©æ—¶æ˜¾ç¤ºæ—¶é—´æˆ³" name="show_timestamps_check" />
59 <check_box
60 label="èŠå¤©æ—¶æ’­æ”¾æ‰“字动画"
61 name="play_typing_animation" />
44 <text type="string" length="1" name="text_box7"> 62 <text type="string" length="1" name="text_box7">
45 泡泡èŠ: 63 èŠå¤©æ°”çƒ:
46 </text> 64 </text>
47 <check_box label="显示èŠå¤©çª—å£" name="bubble_text_chat" /> 65 <check_box label="使用气çƒèŠå¤©" name="bubble_text_chat" />
48 <slider label="ä¸é€æ˜Ž" name="bubble_chat_opacity" /> 66 <slider label="ä¸é€æ˜Žåº¦" name="bubble_chat_opacity" />
49 <text type="string" length="1" name="text_box8"> 67 <text type="string" length="1" name="text_box8">
50 脚本出错: 68 脚本错误:
51 </text> 69 </text>
52 <check_box label="以èŠå¤©å½¢å¼æ˜¾ç¤ºè„šæœ¬é”™è¯¯å’Œè­¦å‘Š" name="script_errors_as_chat" /> 70 <check_box label="以èŠå¤©å½¢å¼æ˜¾ç¤ºè„šæœ¬é”™è¯¯å’Œè­¦å‘Š" name="script_errors_as_chat" />
53 <color_swatch label="颜色" name="script_error" /> 71
54</panel> 72</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
index 77460f2..c1a2e5a 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
@@ -1,21 +1,71 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="General" name="general_panel"> 2<panel label="一般选项" name="general_panel">
3 <radio_group
4 draw_border="false"
5 name="default_start_location">
6 <radio_item
7 name="MyHome"
8 tool_tip="默认登录到我的家。">
9 我的家
10 </radio_item>
11 <radio_item
12 name="MyLastLocation"
13 tool_tip="默认登录到我最åŽçš„ä½ç½®ã€‚">
14 我最åŽåœ¨çš„ä½ç½®
15 </radio_item>
16 </radio_group>
17
18
3 <check_box label="在登陆界é¢ä¸Šæ˜¾ç¤ºèµ·å§‹ä½ç½®" name="show_location_checkbox" /> 19 <check_box label="在登陆界é¢ä¸Šæ˜¾ç¤ºèµ·å§‹ä½ç½®" name="show_location_checkbox" />
20
21 <combo_box name="fade_out_combobox" >
22 <combo_item name="Never" >
23 从ä¸æ˜¾ç¤º
24 </combo_item>
25 <combo_item name="Show Temporarily" >
26 暂时显示
27 </combo_item>
28 <combo_item name="Always">
29 总是显示
30 </combo_item>
31 </combo_box>
32
4 <check_box label="在我的å±å¹•ä¸Šéšè—我的åå­—" name="show_my_name_checkbox" /> 33 <check_box label="在我的å±å¹•ä¸Šéšè—我的åå­—" name="show_my_name_checkbox" />
34 <text
35 name="group_titles_textbox">
36 社团头衔:
37 </text>
38
39 <check_box label="éšè—所有社团头衔" name="show_all_title_checkbox" />
5 <check_box label="éšè—我的社团头衔" name="show_my_title_checkbox" /> 40 <check_box label="éšè—我的社团头衔" name="show_my_title_checkbox" />
6 <check_box label="å°åŒ–身的åå­—" name="small_avatar_names_checkbox" /> 41 <check_box label="化身å字使用å°å·å­—体" name="small_avatar_names_checkbox" />
42
43 <color_swatch label="" name="effect_color_swatch"
44 tool_tip="点击这里æ¥æ‰“开色彩选择器" />
45
46 <!-- UI Sizing -->
47 <text name="UI Size:">
48 ç•Œé¢å°ºå¯¸:
49 </text>
50 <check_box bottom="-236" control_name="UIAutoScale" enabled="true" follows="left|top"
51 font="SansSerifSmall" height="16" hidden="false" initial_value="false"
52 label="使用分辨率无关尺寸" left="148" mouse_opaque="true"
53 name="ui_auto_scale" radio_style="false" width="256" />
54
55 <spinner label="离开休æ¯è®¡æ—¶:" name="afk_timeout_spinner" />
56
7 <check_box label="显示在线好å‹é€šçŸ¥" name="friends_online_notify_checkbox" /> 57 <check_box label="显示在线好å‹é€šçŸ¥" name="friends_online_notify_checkbox" />
8 <check_box label="旋转迷你地图" name="rotate_mini_map_checkbox" /> 58 <check_box label="旋转迷你地图" name="rotate_mini_map_checkbox" />
9 <check_box label="Notify when Linden dollars (L$) spent or received" 59 <check_box label="åœ¨ä»˜å‡ºæˆ–æ”¶åˆ°æž—ç™»å¸ (L$) æ—¶æ醒我"
10 name="notify_money_change_checkbox" /> 60 name="notify_money_change_checkbox" />
11 <check_box label="下次å¯åŠ¨æ—¶è‡ªåŠ¨æ£€æµ‹å›¾åƒæ˜¾ç¤ºç¡¬ä»¶" 61 <check_box label="下次å¯åŠ¨æ—¶è‡ªåŠ¨æ£€æµ‹å›¾åƒæ˜¾ç¤ºç¡¬ä»¶"
12 name="probe_hardware_checkbox" 62 name="probe_hardware_checkbox"
13 tool_tip="第二人生会根æ®æ‚¨çš„硬件é…置自动对一些图åƒè®¾ç½®è¿›è¡Œè°ƒé…。 如果您安装了新的硬件, 您应该让第二人生é‡æ–°è°ƒé…。" /> 63 tool_tip="第二人生会根æ®æ‚¨çš„硬件é…置自动对一些图åƒè®¾ç½®è¿›è¡Œè°ƒé…。 如果您安装了新的硬件, 您应该让第二人生é‡æ–°è°ƒé…。" />
14 <check_box label="使用色彩撷å–器的默认系统模å¼" 64 <check_box label="使用系统默认色彩选择器"
15 name="use_system_color_picker_checkbox" 65 name="use_system_color_picker_checkbox"
16 tool_tip="使用系统默认色彩撷å–器,代替在第二人生中建设的色彩撷å–器。" /> 66 tool_tip="使用系统默认色彩撷å–器,代替在第二人生中建设的色彩撷å–器。" />
17 <text type="string" length="1" name="start_location_textbox"> 67 <text type="string" length="1" name="start_location_textbox">
18 开始定ä½: 68 起始ä½ç½®:
19 </text> 69 </text>
20 <text type="string" length="1" name="show_names_textbox"> 70 <text type="string" length="1" name="show_names_textbox">
21 显示åå­—: 71 显示åå­—:
@@ -27,28 +77,19 @@
27 秒 77 秒
28 </text> 78 </text>
29 <text type="string" length="1" name="crash_report_textbox"> 79 <text type="string" length="1" name="crash_report_textbox">
30 现金报告: 80 崩溃报告:
31 </text> 81 </text>
32 <text type="string" length="1" name="language_textbox"> 82 <text type="string" length="1" name="language_textbox">
33 语言: 83 语言:
34 </text> 84 </text>
35 <text type="string" length="1" name="language_textbox2"> 85 <text type="string" length="1" name="language_textbox2">
36 (Requires restart for full effect) 86 (è¦ä½¿æ›´æ”¹å®Œå…¨ç”Ÿæ•ˆï¼Œéœ€é‡æ–°å¯åŠ¨ç¨‹åº)
37 </text> 87 </text>
38 <radio_group name="fade_out_radio"> 88<check_box
39 <radio_item type="string" length="1" name="Never"> 89 label="在覆盖æ ä¸­æ˜¾ç¤ºæœç´¢é¢æ¿" mouse_opaque="true"
40 Never 90 name="show_search_panel"
41 </radio_item> 91 tool_tip="显示嵌入的æœç´¢é¢æ¿ã€‚"/>
42 <radio_item type="string" length="1" name="Temporarily"> 92
43 Show Temporarily
44 </radio_item>
45 <radio_item type="string" length="1" name="Always">
46 Always
47 </radio_item>
48 </radio_group>
49 <color_swatch label="" name="effect_color_swatch"
50 tool_tip="点击这里æ¥æ‰“开色彩选择器" />
51 <spinner label="离开休æ¯è®¡æ—¶:" name="afk_timeout_spinner" />
52 <text name="region_name_prompt"> 93 <text name="region_name_prompt">
53 &lt;输入地域å&gt; 94 &lt;输入地域å&gt;
54 </text> 95 </text>
@@ -64,20 +105,39 @@
64 </combo_item> 105 </combo_item>
65 </combo_box> 106 </combo_box>
66 <combo_box name="language_combobox"> 107 <combo_box name="language_combobox">
67 <combo_item type="string" length="1" name="English"> 108 <combo_item type="string" length="1" enabled="true" name="System Default Language" value="default">
68 英语 109 系统默认值
110 </combo_item>
111 <combo_item type="string" length="1" enabled="true" name="English" value="en-us">
112 English (英语)
113 </combo_item>
114 <combo_item type="string" length="1" enabled="true" name="Chinese" value="zh">
115 中文 (简体) - 测试版
116 </combo_item>
117 <combo_item length="1" name="Danish" type="string">
118 Dansk (Danish) - 测试版
119 </combo_item>
120 <combo_item type="string" length="1" enabled="true" name="Deutsch(German)" value="de">
121 Deutsch (德语) - 测试版
122 </combo_item>
123 <combo_item type="string" length="1" enabled="true" name="French" value="fr">
124 Français (法语) - 测试版
69 </combo_item> 125 </combo_item>
70 <combo_item type="string" length="1" name="Deutsch(German)"> 126 <combo_item type="string" length="1" enabled="true" name="(Japanese)" value="ja">
71 Deutsch (German) - Beta 127 日本語 (日语) - 测试版
72 </combo_item> 128 </combo_item>
73 <combo_item type="string" length="1" name="(Japanese)"> 129 <combo_item type="string" length="1" enabled="true" name="(Korean)" value="ko">
74 日本語 (Japanese) - Beta 130 한국어 (æœé²œè¯­) - 测试版
75 </combo_item> 131 </combo_item>
76 <combo_item type="string" length="1" name="(Korean)"> 132 <combo_item type="string" length="1" enabled="true" name="Portugese" value="pt">
77 한국어 (Korean) - Beta 133 Português (è‘¡è„牙语) - 测试版
78 </combo_item> 134 </combo_item>
79 <combo_item type="string" length="1" name="Chinese"> 135 <combo_item type="string" length="1" enabled="true" name="Spanish" value="es">
80 中文 - Beta 136 Español (西ç­ç‰™è¯­) - 测试版
81 </combo_item> 137 </combo_item>
82 </combo_box> 138 </combo_box>
139 <check_box
140 label="与物体共享语言"
141 name="language_is_public"
142 tool_tip="这使得世界内的物体å¯ä»¥çŸ¥é“ä½ å好的语言。" />
83</panel> 143</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml
index ddaabdb..d7ca24b 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml
@@ -1,43 +1,245 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="图åƒ" name="Display panel"> 2<panel label="图åƒ" name="Display panel">
3
4 <!-- render size section -->
5 <button label="?" name="GraphicsPreferencesHelpButton" />
6
7 <text name="DisplayResLabel">
8 显示器分辨率:
9 </text>
10 <combo_box name="fullscreen combo" />
11 <check_box label="在窗å£ä¸­è¿è¡Œ" name="windowed mode" />
12 <text_editor name="FullScreenInfo">
13 è‹¥ä¸é€‰ä¸­ï¼ŒæŸ¥çœ‹å™¨åœ¨ç™»å…¥æ—¶å°†å…¨å±æ˜¾ç¤ºã€‚
14 </text_editor>
15 <text
16 name="WindowSizeLabel">
17 窗å£å°ºå¯¸:
18 </text>
19
20 <text name="AspectRatioLabel1">
21 å…¨å±å®½é«˜æ¯”:
22 </text>
23 <text name="AspectRatioLabel2">
24 (宽 / 高)
25 </text>
3 <combo_box name="aspect_ratio"> 26 <combo_box name="aspect_ratio">
4 <combo_item type="string" length="1" name="4:3(StandardCRT)"> 27 <combo_item name="4:3(StandardCRT)" >
5 4:3 (标准显示器) 28 4:3 (标准显示器)
6 </combo_item> 29 </combo_item>
7 <combo_item type="string" length="1" name="5:4(1280x1024LCD)"> 30 <combo_item name="5:4(1280x1024LCD)" >
8 5:4 (1280x1024液晶å±) 31 5:4 (1280x1024 液晶显示器)
9 </combo_item> 32 </combo_item>
10 <combo_item type="string" length="1" name="16:9(Widescreen)"> 33 <combo_item name="16:9(Widescreen)" >
11 16:9 (宽å±) 34 16:9 (宽å±å¹•)
12 </combo_item> 35 </combo_item>
13 </combo_box> 36 </combo_box>
14 <text type="string" length="1" name="text"> 37 <check_box label="自动检测"
15 é™åˆ¶å†³è®®: 38 name="aspect_auto_detect"/>
39
40 <!-- performance/quality text-->
41 <text name="HigherText">
42 è´¨é‡å’Œ
43 </text>
44 <text name="QualityText"
45 width="95">
46 性能:
47 </text>
48
49 <!-- May want to axe these explanatations for locale problems -->
50 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
51 bottom="-86" drop_shadow_visible="true" enabled="true" follows="left|top"
52 font="SansSerifSmall" h_pad="0" halign="left" height="12" hidden="false"
53 left="115" mouse_opaque="true" name="FasterText" v_pad="0"
54 width="80">
55 æ›´å¿«
56 </text>
57
58 <!-- radio box names -->
59 <text name="ShadersPrefText">
60 低
61 </text>
62 <text name="ShadersPrefText2" >
63 中
64 </text>
65 <text name="ShadersPrefText3">
66 高
67 </text>
68 <text name="ShadersPrefText4">
69 最高
70 </text>
71
72
73 <!-- May want to axe these explanatations for locale problems -->
74 <text name="HigherText2">
75 更高
76 </text>
77 <text name="QualityText2">
78 è´¨é‡
79 </text>
80
81 <slider label="" name="QualityPerformanceSelection" />
82 <check_box label="自定义" name="CustomSettings" />
83
84 <!-- performance settings -->
85 <view_border name="GraphicsBorder" />
86
87 <!-- Shaders -->
88 <text name="ShadersText">
89 ç€è‰²å™¨:
90 </text>
91
92 <check_box
93 label="凹凸贴图和光泽"
94 name="BumpShiny" />
95 <check_box
96 label="基本ç€è‰²å™¨"
97 name="BasicShaders"
98 tool_tip="ç¦ç”¨è¯¥é€‰é¡¹ä¹Ÿè®¸å¯ä»¥é˜²æ­¢æŸäº›æ˜¾å¡é©±åŠ¨ç¨‹åºå´©æºƒã€‚"
99 width="315" />
100 <check_box
101 label="大气ç€è‰²å™¨"
102 name="WindLightUseAtmosShaders"/>
103 <check_box
104 label="æ°´é¢åå°„" name="Reflections"/>
105
106 <!-- Reflection Detail -->
107 <text name="ReflectionDetailText">
108 å射细节:
109 </text>
110 <radio_group name="ReflectionDetailRadio">
111 <radio_item name="0">
112 地é¢å’Œæ ‘木
113 </radio_item>
114 <radio_item name="1">
115 所有é™æ€ç‰©ä½“
116 </radio_item>
117 <!--这里应ä¸åº”该写æˆâ€œä¸œä¸œâ€?-->
118 <radio_item name="2">
119 所有化身和物体
120 </radio_item>
121 <radio_item name="3">
122 一切东西
123 </radio_item>
124 </radio_group>
125
126 <!-- avatar rendering -->
127 <text name="AvatarRenderingText" width="128">
128 化身渲染:
129 </text>
130 <check_box
131 label="化身替身"
132 name="AvatarImpostors" width="256" />
133 <check_box
134 label="硬件 Skinning"
135 name="AvatarVertexProgram" width="256" />
136 <check_box
137 label="化身衣物效果"
138 name="AvatarCloth" width="256" />
139
140 <!-- performance sliders -->
141 <text name="DrawDistanceMeterText1"
142 width="128">
143 m
144 </text>
145 <text name="DrawDistanceMeterText2">
146 m
147 </text>
148
149 <slider label="æ绘è·ç¦»:" name="DrawDistance" />
150 <slider label="最大粒å­æ•°:" name="MaxParticleCount"/>
151 <slider label="åŽæœŸå¤„ç†è´¨é‡:" name="RenderPostProcess"/>
152
153 <text name="MeshDetailText"
154 width="128">
155 模型细节:
156 </text>
157
158 <slider
159 label=" 物体:" label_width="140"
160 name="ObjectMeshDetail"
161 width="223" />
162 <slider
163 label=" 活动元件:" label_width="140"
164 name="FlexibleMeshDetail"
165 width="223" />
166 <slider
167 label=" 树木:" label_width="140"
168 name="TreeMeshDetail"
169 width="223" />
170 <slider
171 label=" 化身:" label_width="140"
172 name="AvatarMeshDetail"
173 width="223" />
174 <slider
175 label=" 地é¢:"
176 name="TerrainMeshDetail"
177 width="223" />
178 <slider
179 label=" 天空:" label_width="140"
180 name="SkyMeshDetail"
181 width="223" />
182
183 <!-- Low/Mid/High boxes -->
184 <text name="PostProcessText" >
185 低
186 </text>
187 <text name="ObjectMeshDetailText" >
188 低
16 </text> 189 </text>
17 <text type="string" length="1" name="Fullscreen Aspect Ratio:"> 190 <text name="FlexibleMeshDetailText">
18 å…¨å±æ˜¾ç¤ºæ”¾å¤§æ¯”率: 191 低
19 </text> 192 </text>
20 <text type="string" length="1" name="(width / height)"> 193 <text name="TreeMeshDetailText" >
21 (宽度 /高度) 194 低
22 </text> 195 </text>
23 <text type="string" length="1" name="UI Size:"> 196 <text name="AvatarMeshDetailText" >
24 UI尺寸: 197 低
198 </text>
199 <text name="TerrainMeshDetailText">
200 低
25 </text> 201 </text>
26 <text type="string" length="1" name="(meters, lower is faster)"> 202 <text name="SkyMeshDetailText">
27 (米数,越低越快) 203 低
204 </text>
205
206
207 <!-- Lighting detail -->
208 <text name="LightingDetailText" >
209 光照细节:
28 </text> 210 </text>
29 <text type="string" length="1" name="text2"> 211 <radio_group name="LightingDetailRadio">
30 显示设置选项: 212 <radio_item name="SunMoon">
213 仅有日月光效
214 </radio_item>
215 <radio_item name="LocalLights" >
216 附近的ç¯å…‰
217 </radio_item>
218 </radio_group>
219
220 <!-- Terrain Detail -->
221 <text name="TerrainDetailText">
222 地é¢ç»†èŠ‚:
31 </text> 223 </text>
32 <check_box label="在窗å£ä¸­ä¸­è¿è¡Œ" name="windowed mode" /> 224 <radio_group name="TerrainDetailRadio">
33 <check_box label="自动检测" name="aspect_auto_detect" /> 225 <radio_item name="0" >
34 <check_box label="使用决议自由规模" name="ui_auto_scale" /> 226 低
35 <check_box label="从第一视角显示玩家" name="avfp" /> 227 </radio_item>
36 <spinner label="拖带è·ç¦»:" name="draw_distance" /> 228 <radio_item name="2" >
37 <text name="resolution_format"> 229 高
230 </radio_item>
231 </radio_group>
232
233 <button label="建议设置"
234 name="Defaults" />
235
236 <button label="硬件选项"
237 name="GraphicsHardwareButton" />
238
239 <text hidden="true" name="resolution_format">
38 [RES_X] x [RES_Y] 240 [RES_X] x [RES_Y]
39 </text> 241 </text>
40 <text name="aspect_ratio_text"> 242 <text hidden="true" name="aspect_ratio_text">
41 [NUM]:[DEN] 243 [NUM]:[DEN]
42 </text> 244 </text>
43</panel> 245</panel> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml
index 39dd82d..f9b026c 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml
@@ -1,19 +1,52 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="å³æ—¶é€š" name="im"> 2<panel label="å³æ—¶æ¶ˆæ¯" name="im">
3 <text type="string" length="1" name="text_box"> 3 <text type="string" length="1" name="text_box">
4 å³æ—¶é€šé‰é¡¹: 4 我的在线状æ:
5 </text> 5 </text>
6 <check_box
7 initial_value="false"
8 label="仅我的好å‹å’Œç¤¾å›¢æ‰èƒ½çœ‹è§æˆ‘的在线状况"
9 name="online_visibility" />
10
6 <text name="log_in_to_change"> 11 <text name="log_in_to_change">
7 登陆åŽæ›´æ”¹ 12 登陆åŽæ›´æ”¹
8 </text> 13 </text>
9 <check_box label="å‘é€å³æ—¶æ¶ˆæ¯è‡³ç”µå­é‚®ä»¶([EMAIL])" name="send_im_to_email" /> 14 <check_box label="å‘é€å³æ—¶æ¶ˆæ¯è‡³ç”µå­é‚®ä»¶([EMAIL])" name="send_im_to_email" />
10 <check_box label="èŠå¤©è®°å½•ä¸­åŒ…å«å³æ—¶é€šä¿¡æ¯" name="include_im_in_chat_history" /> 15 <check_box label="本地èŠå¤©ä¸­åŒ…å«å³æ—¶é€šä¿¡æ¯" name="include_im_in_chat_history" />
11 <check_box label="在å³æ—¶æ¶ˆæ¯ä¸­æ˜¾ç¤ºæ—¶é—´" name="show_timestamps_check" /> 16 <check_box label="在å³æ—¶æ¶ˆæ¯ä¸­æ˜¾ç¤ºæ—¶é—´" name="show_timestamps_check" />
12 <check_box label="Log Instant Messages" name="log_instant_messages" /> 17 <check_box
13 <check_box label="Log Chat" name="log_chat" /> 18 label="显示好å‹ä¸Šçº¿é€šçŸ¥"
14 <check_box label="Show end of last IM conversation" name="log_show_history" /> 19 name="friends_online_notify_checkbox" />
15 <button label="Change Path" label_selected="Change Path" name="log_path_button" /> 20 <check_box label="ä¿å­˜å³æ—¶é€šä¿¡è®°å½•åˆ°æˆ‘的电脑上" name="log_instant_messages" />
16 <text type="string" length="1" name="text_box2"> 21 <check_box label="ä¿å­˜å¯¹è¯è®°å½•åˆ°æˆ‘的电脑上" name="log_chat" />
22 <check_box label="显示上次å³æ—¶é€šä¿¡çš„结尾" name="log_show_history" />
23 <button label="更改路径" label_selected="更改路径" name="log_path_button" />
24 <text
25 name="text_box3">
17 忙碌模å¼çš„自动回å¤: 26 忙碌模å¼çš„自动回å¤:
18 </text> 27 </text>
28 <text
29 name="text_box4">
30 èŠå¤©è®°å½•é€‰é¡¹:
31 </text>
32 <text type="string" length="1" name="text_box2">
33 å³æ—¶é€šä¿¡é€‰é¡¹:
34 </text>
35 <check_box
36 label="在ç§èŠä¸­æ˜¾ç¤ºæ—¶é—´"
37 name="log_instant_messages_timestamp" />
38 <check_box
39 initial_value="false"
40 label="在èŠå¤©è®°å½•ä¸­æ˜¾ç¤ºæ—¶é—´"
41 name="log_chat_timestamp" />
42 <check_box
43 initial_value="false"
44 label="èŠå¤©è®°å½•ä¸­æ˜¾ç¤ºå³æ—¶ä¿¡æ¯"
45 name="log_chat_IM" />
46 <check_box
47 initial_value="false"
48 label="显示时间时包括日期"
49 name="log_date_timestamp" />
50
51
19</panel> 52</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_input.xml
index d7d1d33..74d1e61 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_input.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_input.xml
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="Input &amp; Camera" name="Input panel"> 2<panel label="输入和摄åƒå¤´" name="Input panel">
3 <text type="string" length="1" name=" Mouselook Options:"> 3 <text type="string" length="1" name=" Mouselook Options:">
4 第一人称视角选项设置: 4 第一人称视角选项设置:
5 </text> 5 </text>
@@ -10,15 +10,36 @@
10 自动飞翔选项: 10 自动飞翔选项:
11 </text> 11 </text>
12 <text type="string" length="1" name=" Camera Options:"> 12 <text type="string" length="1" name=" Camera Options:">
13 æ‘„åƒå¤´é€‰é¡¹: 13 æ‘„åƒæœºé€‰é¡¹:
14 </text> 14 </text>
15 <text type="string" length="1" name="Camera Springiness:"> 15 <text type="string" length="1" name="Camera Springiness:">
16 æ‘„åƒå¤´å¼¹æ€§: 16 æ‘„åƒæœºå¼¹æ€§:
17 </text> 17 </text>
18 <check_box label="转化鼠标æ“作模å¼" name="invert mouse" /> 18 <text
19 <check_box label="起飞/ç€é™†é€šè¿‡é”®ç›˜up/down控制" name="automatic fly" /> 19 name="Camera Follow Distance:">
20 <check_box label="自动编辑摄åƒå¤´ç§»åŠ¨æƒ…况" name="edit camera movement" 20 æ‘„åƒæœºè·Ÿéšè·ç¦»:
21 tool_tip="当进入和离开编辑模å¼æ—¶ï¼Œé€‰ç”¨æ‘„åƒå¤´è‡ªåŠ¨å®šä½" /> 21 </text>
22 <check_box label="æ‘„åƒå¤´ç§»åŠ¨æ—¶è‡ªåŠ¨æˆåƒ" name="appearance camera movement" 22 <text
23 tool_tip="在编辑模å¼ä¸‹ï¼Œé€‰ç”¨æ‘„åƒå¤´è‡ªåŠ¨å®šä½" /> 23 name="Camera Transition Time:">
24 æ‘„åƒæœºè½¬æ¢æ—¶é—´:
25 </text>
26 <text
27 name="Camera Smoothing:">
28 æ‘„åƒå¤´å¹³æ»‘:
29 </text>
30
31 <check_box label="å转鼠标æ“作模å¼" name="invert_mouse" />
32 <check_box label="起飞/ç€é™†é€šè¿‡é”®ç›˜ä¸Š/下键控制" name="automatic_fly" />
33 <check_box label="编辑物体时使用自动视角" name="edit_camera_movement"
34 tool_tip="当进入和离开编辑模å¼æ—¶ï¼Œè‡ªåŠ¨ç§»åŠ¨æ‘„åƒå¤´" />
35 <check_box label="编辑外观时使用自动视角" name="appearance_camera_movement"
36 tool_tip="在编辑外观时,摄åƒå¤´è‡ªåŠ¨å®šä½" />
37 <text name="text2">
38 化身显示选项:
39 </text>
40 <check_box label="第一人称视角中,显示自己的化身" name="first_person_avatar_visible" />
41 <button
42 label="游æˆæ†è®¾ç½®"
43 name="joystick_setup_button" />
44
24</panel> 45</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_network.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_network.xml
index 0adb918..679ec53 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_network.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_network.xml
@@ -1,27 +1,30 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="网络" name="network"> 2<panel label="网络" name="network">
3 <text type="string" length="1" name="text_box"> 3 <text name="text_box">
4 最大带宽: 4 最大带宽:
5 </text> 5 </text>
6 <text type="string" length="1" name="text_box2"> 6 <text name="text_box2">
7 kbps (æ¯ç§’kbæ•°) 7 kbps (æ¯ç§’kbæ•°)
8 </text> 8 </text>
9 <text type="string" length="1" name="text_box3"> 9 <text name="cache_size_label_l">
10 ç£ç›˜é«˜é€Ÿç¼“存大å°: 10 ç£ç›˜é«˜é€Ÿç¼“存大å°:
11 </text> 11 </text>
12 <radio_group name="disk cache"> 12
13 <radio_item type="string" length="1" name="radio"> 13 <button label="清除缓存" name="clear_cache" />
14 50 MB 14
15 </radio_item> 15 <text name="cache_location_label">
16 <radio_item type="string" length="1" name="radio2"> 16 ç£ç›˜ç¼“å­˜ä½ç½®:
17 200 MB 17 </text>
18 </radio_item> 18 <button
19 <radio_item type="string" length="1" name="radio3"> 19 label="设置" label_selected="设置"
20 500 MB 20 name="set_cache"/>
21 </radio_item> 21 <button
22 <radio_item type="string" length="1" name="radio4"> 22 label="é‡ç½®" label_selected="设置"
23 1000 MB 23 name="reset_cache" />
24 </radio_item> 24 <check_box
25 </radio_group> 25 label="自定义连接端å£"
26 <button label="清除缓存" label_selected="清除缓存" name="clear_cache" /> 26 name="connection_port_enabled" />
27 <spinner
28 label="端å£å·:"
29 name="connection_port" />
27</panel> 30</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_popups.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_popups.xml
index a1cf51c..eeeaf87 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_preferences_popups.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_popups.xml
@@ -1,14 +1,39 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="弹出程åº" name="popups"> 2<panel
3 <text type="string" length="1" name="text_box"> 3 label="弹出窗å£"
4 ä¸æ˜¾ç¤ºå¼¹å‡ºç¨‹åº: 4 name="popups"
5 title="弹出窗å£">
6 <text name="dont_show_label">
7 ä¸æ˜¾ç¤ºè¿™äº›å¼¹å‡ºçª—å£:
5 </text> 8 </text>
6 <button label="Enable this popup" label_selected="Enable this popup" 9 <scroll_list
7 name="enable_popup" /> 10 name="disabled_popups" />
8 <text type="string" length="1" name="text_box2"> 11 <button
9 显示弹出程åº: 12 label="å¯ç”¨è¯¥å¼¹å‡ºçª—å£"
13 name="enable_popup" />
14 <text name="show_label">
15 显示这些弹出窗å£:
10 </text> 16 </text>
11 <button label="é‡ç½® &apos;下次显示&apos;对è¯..." 17 <scroll_list
12 label_selected="é‡ç½® &apos;下次显示&apos;对è¯..." 18 name="enabled_popups" />
13 name="reset_dialogs_btn" /> 19 <text
20 name="text_box2">
21 其他人给与的记事å¡ã€æ质和地标:
22 </text>
23 <check_box
24 label="自动接å—"
25 name="accept_new_inventory" />
26 <check_box
27 label="接å—åŽè‡ªåŠ¨æ‰“å¼€"
28 name="show_new_inventory" />
29 <check_box label="在库存中自动显示新接收的物体"
30 name="show_in_inventory" />
31 <button width="225"
32 label="显示所有的“下次ä¸å†æ˜¾ç¤ºâ€å¯¹è¯æ¡†..."
33 name="reset_dialogs_btn"
34 tool_tip="å¯ç”¨æ‰€æœ‰å¯é€‰çš„弹出窗å£åŠâ€œé¦–次使用â€æ示。" />
35 <button width="225"
36 label="éšè—所有的“下次ä¸å†æ˜¾ç¤ºâ€å¯¹è¯æ¡†..."
37 name="skip_dialogs_btn"
38 tool_tip="ç¦ç”¨æ‰€æœ‰å¯é€‰çš„弹出窗å£åŠâ€œé¦–次使用â€æ示。" />
14</panel> 39</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_skins.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_skins.xml
new file mode 100644
index 0000000..70e0bc2
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_skins.xml
@@ -0,0 +1,12 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="皮肤" name="Skins panel">
3 <text name="muting_text">
4 选择皮肤 (需è¦é‡å¯åŠ¨):
5 </text>
6 <radio_group name="skin_selection">
7 <radio_item name="default">默认</radio_item>
8 <radio_item name="silver">Silver</radio_item>
9 </radio_group>
10</panel>
11
12
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_voice.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_voice.xml
new file mode 100644
index 0000000..faeae07
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_voice.xml
@@ -0,0 +1,59 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom"
3 height="408" hidden="false" label="语音èŠå¤©" left="102"
4 mouse_opaque="true" name="chat" width="517">
5 <text_editor name="voice_unavailable" >
6 语音èŠå¤©ä¸å¯ç”¨ã€‚
7 </text_editor>
8 <check_box
9 label="å¯ç”¨è¯­éŸ³èŠå¤©"
10 name="enable_voice_check"/>
11 <radio_group name="ear_location" >
12 <radio_item name="0" >
13 从摄åƒæœºçš„ä½ç½®å¬è¯­éŸ³èŠå¤©ã€‚
14 </radio_item>
15 <radio_item name="1" >
16 从化身的ä½ç½®å¬è¯­éŸ³èŠå¤©ã€‚
17 </radio_item>
18 </radio_group>
19
20 <text name="push_to_talk_heading" >
21 å³æŒ‰å³è¯´
22 </text>
23 <text_editor name="voice_chat_description" width="465">å³æŒ‰å³è¯´å…许你控制什么时候传é€å£°éŸ³ã€‚在切æ¢æ¨¡å¼ä¸­ï¼ŒæŒ‰ä¸‹å¹¶é‡Šæ”¾å³æŒ‰å³è¯´é”®æ¥åˆ‡æ¢éº¦å…‹é£Žå¼€å…³ã€‚ä¸åœ¨åˆ‡æ¢æ¨¡å¼çš„时候,麦克风仅在å³æŒ‰å³è¯´é”®æŒ‰ä¸‹æ—¶æ‰æœ‰æ•ˆã€‚</text_editor>
24 <check_box
25 label="在第二人生查看器å¯åŠ¨æ—¶ï¼Œä½¿ç”¨å³æŒ‰å³è¯´æ¨¡å¼"
26 name="push_to_talk_check" />
27 <check_box label="以切æ¢æ¨¡å¼ä½¿ç”¨å³æŒ‰å³è¯´"
28 name="push_to_talk_toggle_check" />
29 <text type="string"
30 name="push_to_talk_label" >
31 å³æŒ‰å³è¯´åˆ‡æ¢é”®:
32 </text>
33
34 <line_editor name="modifier_combo" />
35
36 <button
37 label="设置按键"
38 name="set_voice_hotkey_button" />
39 <button
40 label="使用鼠标中键"
41 name="set_voice_middlemouse_button" width="140" />
42
43 <text
44 name="privacy_heading">
45 éšç§é€‰é¡¹
46 </text>
47 <check_box label="åªæŽ¥å—我的朋å‹åˆ—表上的人的语音呼å«"
48 name="voice_call_friends_only_check" />
49
50 <text_editor name="device_settings_text" height="48" bottom_delta="-45">
51 *注æ„*: è¿è¡Œè®¾å¤‡é€‰é¡¹æˆ–语音设置å‘导将临时将您从语音èŠå¤©æ–­å¼€ï¼Œå¹¶ä¸”所作的更改将立å³ç”Ÿæ•ˆã€‚
52 </text_editor>
53 <button
54 label="设备选项..."
55 name="device_settings_btn" />
56 <button
57 label="è¿è¡Œè¯­éŸ³è®¾ç½®å‘导..."
58 name="launch_voice_wizard_button" />
59</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_preferences_web.xml b/linden/indra/newview/skins/default/xui/zh/panel_preferences_web.xml
new file mode 100644
index 0000000..c00c1e6
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_preferences_web.xml
@@ -0,0 +1,88 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom"
3 height="408" hidden="false" label="Web" left="102" mouse_opaque="true"
4 name="web" width="517">
5 <text name="cache_size_label_l">
6 æµè§ˆå™¨ç¼“å­˜:
7 </text>
8 <button
9 label="现在清除"
10 name="clear_cache" />
11 <text type="string" name="cookie_label" >
12 Cookie:
13 </text>
14 <check_box label="ä»Žç½‘ç«™æŽ¥å— cookie"
15 name="cookies_enabled" />
16 <button
17 label="现在清除"
18 name="clear_cookies" />
19 <text name="proxy_label">
20 代ç†æœåŠ¡å™¨:
21 </text>
22 <check_box
23 label="å¯ç”¨ç½‘页代ç†æœåŠ¡å™¨"
24 name="web_proxy_enabled" />
25 <text name="proxy_text_label">
26 地å€:
27 </text>
28 <line_editor
29 name="web_proxy_editor"
30 tool_tip="你想使用的代ç†æœåŠ¡å™¨çš„å称或者 IP 地å€" />
31 <spinner
32 label="端å£å·:"
33 name="web_proxy_port" />
34 <radio_group name="use_external_browser">
35 <radio_item
36 name="external"
37 tool_tip="使用系统默认网络æµè§ˆå™¨æ‰“开帮助ã€ç½‘页链接, 等等。\n若全å±æ˜¾ç¤ºåˆ™ä¸æŽ¨è使用。">
38 使用外部æµè§ˆå™¨(Firefox, Safari, Internet Explorer)
39 </radio_item>
40 <radio_item
41 name="internal"
42 tool_tip="使用内部æµè§ˆå™¨æ‰“开帮助ã€ç½‘页链接, 等等。这个æµè§ˆå™¨ä¼šåœ¨ç¬¬äºŒäººç”Ÿä¸­æ‰“开一个新窗å£ã€‚">
43 使用内建æµè§ˆå™¨
44 </radio_item>
45 </radio_group>
46 <text>
47 æµè§ˆå™¨ä¸»é¡µ:
48 </text>
49 <line_editor name="home_page" tool_tip="首次打开第二人生æµè§ˆå™¨æ—¶çš„æµè§ˆé¡µé¢" />
50 <text>
51 代ç†æœåŠ¡å™¨é…ç½®:
52 </text>
53 <check_box label="内部æµè§ˆå™¨ä½¿ç”¨ä»£ç†æœåŠ¡å™¨" name="proxy_enabled"
54 tool_tip="请为因特网网络æµè§ˆå™¨æŒ‡å®šä»£ç†æœåŠ¡å™¨é…置。" />
55 <text>
56 代ç†æœåŠ¡å™¨:
57 </text>
58 <line_editor name="proxy_address" tool_tip="请输入代ç†æœåŠ¡å™¨çš„å称或IP地å€" />
59 <text>
60 端å£ï¼š
61 </text>
62 <line_editor name="proxy_port" />
63 <text>
64 袜å­ï¼š
65 </text>
66 <radio_group name="socks_4_5">
67 <radio_item>
68 Socks v4
69 </radio_item>
70 <radio_item>
71 Socks v5
72 </radio_item>
73 </radio_group>
74 <text>
75 对以下内容ä¸ä½¿ç”¨ä»£ç†:
76 </text>
77 <line_editor name="proxy_exclusions"
78 tool_tip="请输入ä¸æƒ³ä½¿ç”¨ä»£ç†æœåŠ¡å™¨æ›¿æ¢çš„å称或IP地å€" />
79 <check_box label="在元件上显示网页 (实验性功能, 需è¦é‡å¯)"
80 name="web_pages_on_prims_check" />
81 <text>
82 安全地å€ï¼š
83(登陆察看)
84 </text>
85 <button label="添加" name="add_trusted" />
86 <line_editor name="trusted_site_entry" tool_tip="添加到安全åå•ä¸­çš„网络地å€" />
87 <button label="移除" name="rem_trusted" />
88</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_region_covenant.xml b/linden/indra/newview/skins/default/xui/zh/panel_region_covenant.xml
index b9ccbe7..5db42cb 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_region_covenant.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_region_covenant.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="契约åˆåŒ" name="Covenant"> 2<panel label="契约åˆåŒ" name="Covenant">
3 <text name="covenant_help_text"> 3 <text name="covenant_help_text">
4 对契约åˆåŒçš„更改将出现在此å—ä¸åŠ¨äº§æ‰€æœ‰çš„土地上。 4 对契约åˆåŒçš„更改将出现在此å—地产所有的土地上。
5 </text> 5 </text>
6 <text name="region_name_lbl"> 6 <text name="region_name_lbl">
7 区域: 7 区域:
@@ -10,41 +10,41 @@
10 (未知) 10 (未知)
11 </text> 11 </text>
12 <text name="estate_name_lbl"> 12 <text name="estate_name_lbl">
13 ç§äººé¢†åœ°: 13 地产:
14 </text> 14 </text>
15 <text name="estate_name_text"> 15 <text name="estate_name_text">
16 (未知) 16 (未知)
17 </text> 17 </text>
18 <text name="covenent_instructions"> 18 <text name="covenent_instructions">
19 拖拽注释å¡ï¼Œä»¥æ›´æ”¹è¿™å—ä¸åŠ¨äº§çš„契约åˆåŒã€‚ 19 è¦æ›´æ”¹è¿™å—ä¸åŠ¨äº§çš„契约åˆåŒï¼Œè¯·å°†è®°äº‹å¡æ‹–动到这里。
20 </text> 20 </text>
21 <button label="?" name="covenant_help" /> 21 <button label="?" name="covenant_help" />
22 <button label="é‡è‡³" name="reset_covenant" /> 22 <button label="é‡ç½®" name="reset_covenant" />
23 <text name="estate_owner_lbl"> 23 <text name="estate_owner_lbl">
24 ä¸åŠ¨äº§ä¸»äºº: 24 地产æŒæœ‰äºº:
25 </text> 25 </text>
26 <text name="estate_owner_text"> 26 <text name="estate_owner_text">
27 (未知) 27 (未知)
28 </text> 28 </text>
29 <text name="resellable_clause"> 29 <text name="resellable_clause">
30 è¿™å—区域内被购买的土地å¯èƒ½å¯ä»¥è¢«é‡æ–°å‡ºå”®ï¼Œä¹Ÿå¯èƒ½ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚ 30 è¿™å—区域内购买的土地å¯èƒ½å¯ä»¥è¢«é‡æ–°å‡ºå”®ï¼Œä¹Ÿå¯èƒ½ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚
31 </text> 31 </text>
32 <text name="changeable_clause"> 32 <text name="changeable_clause">
33 è¿™å—区域内被购买的土地å¯èƒ½å¯ä»¥è¢«è¿žæŽ¥æˆ–划分,也å¯èƒ½ä¸èƒ½è¢«è¿žæŽ¥å’Œåˆ’分。 33 è¿™å—区域内购买的土地å¯èƒ½å¯ä»¥è¢«åˆå¹¶æˆ–划分,也å¯èƒ½ä¸èƒ½è¢«åˆå¹¶å’Œåˆ’分。
34 </text> 34 </text>
35 <text_editor name="covenant_editor"> 35 <text_editor name="covenant_editor">
36 请等待... 36 请等待...
37 </text_editor> 37 </text_editor>
38 <text name="can_resell"> 38 <text name="can_resell">
39 è¿™å—区域内被购买的土地å¯ä»¥è¢«é‡æ–°å‡ºå”®. 39 è¿™å—区域内购买的土地å¯ä»¥è¢«é‡æ–°å‡ºå”®ã€‚
40 </text> 40 </text>
41 <text name="can_not_resell"> 41 <text name="can_not_resell">
42 è¿™å—区域内被购买的土地å¯èƒ½ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚ 42 è¿™å—区域内购买的土地ä¸èƒ½è¢«é‡æ–°å‡ºå”®ã€‚
43 </text> 43 </text>
44 <text name="can_change"> 44 <text name="can_change">
45 è¿™å—区域内被购买的土地å¯ä»¥è¢«è¿žæŽ¥æˆ–者被划分。 45 è¿™å—区域内购买的土地å¯ä»¥è¢«åˆå¹¶æˆ–者被划分。
46 </text> 46 </text>
47 <text name="can_not_change"> 47 <text name="can_not_change">
48 è¿™å—区域内被购买的土地å¯èƒ½ä¸èƒ½è¢«è”系或者被划分。 48 è¿™å—区域内购买的土地ä¸èƒ½è¢«åˆå¹¶æˆ–者被划分。
49 </text> 49 </text>
50</panel> 50</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_region_debug.xml b/linden/indra/newview/skins/default/xui/zh/panel_region_debug.xml
index 31e0672..780f6ea 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_region_debug.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_region_debug.xml
@@ -6,29 +6,62 @@
6 <text name="region_text"> 6 <text name="region_text">
7 未知 7 未知
8 </text> 8 </text>
9 <check_box label="无效脚本" name="disable_scripts_check" 9 <check_box label="ç¦ç”¨è„šæœ¬" name="disable_scripts_check"
10 tool_tip="关闭此区域内的所有脚本文件。" /> 10 tool_tip="关闭此区域内的所有脚本。" />
11 <button label="?" name="disable_scripts_help" /> 11
12 <check_box label="无效冲çª" name="disable_collisions_check" 12 <check_box label="ç¦ç”¨ç¢°æ’ž" name="disable_collisions_check"
13 tool_tip="在此区域你关闭éžåŒ–身的冲çªæ¨¡å¼ã€‚" /> 13 tool_tip="关闭此区域除化身以外所有的碰撞。" />
14 <button label="?" name="disable_collisions_help" /> 14
15 <check_box label="无效物ç†" name="disable_physics_check" 15 <check_box label="ç¦ç”¨ç‰©ç†" name="disable_physics_check"
16 tool_tip="在此区域内关闭所有的物ç†æ¨¡å¼ã€‚" /> 16 tool_tip="关闭此区域内所有的物ç†è®¡ç®—。" />
17 <button label="?" name="disable_physics_help" />
18 <button label="应用" name="apply_btn" /> 17 <button label="应用" name="apply_btn" />
19 <button label="选择化身..." name="choose_avatar_btn" /> 18 <text
19 name="objret_text_lbl">
20 归还物体
21 </text>
22 <text
23 name="resident_text_lbl">
24 å±…æ°‘:
25 </text>
26 <line_editor
27 name="target_avatar_name">
28 (æ— )
29 </line_editor>
30
31 <button label="选择..." name="choose_avatar_btn" />
32 <text
33 name="options_text_lbl">
34 选项:
35 </text>
36
37 <check_box
38 label="仅归还有脚本的物体"
39 name="return_scripts"
40 tool_tip="åªå½’还那些包å«è„šæœ¬çš„物体。" />
41 <check_box
42 label="仅归还在他人土地上的物体"
43 name="return_other_land"
44 tool_tip="åªå½’还在属于别人土地上的物体。" />
45 <check_box
46 label="归还该地产所有区域中的物体"
47 name="return_estate_wide"
48 tool_tip="在所有组æˆè¿™ä¸ªåœ°äº§çš„区域中归还物体。" />
49 <button
50 label="返还"
51 name="return_btn" />
52
20 <button label="归还化身的脚本东东至他人土地" 53 <button label="归还化身的脚本东东至他人土地"
21 name="return_scripted_other_land_btn" /> 54 name="return_scripted_other_land_btn" />
22 <button label="归还化身所有的脚本东东" name="return_scripted_all_btn" /> 55 <button label="归还化身所有的脚本东东" name="return_scripted_all_btn" />
23 <button label="得到首è¦å†²çªæº..." name="top_colliders_btn" 56 <button label="得到首è¦ç¢°æ’žæº..." name="top_colliders_btn"
24 tool_tip="最有å¯èƒ½é¢ä¸´æ½œåœ¨å†²çªçš„东东的列表。" /> 57 tool_tip="存在潜在碰撞最多物体的列表。" />
25 <button label="?" name="top_colliders_help" /> 58 <button label="?" name="top_colliders_help" />
26 <button label="得到首è¦è„šæœ¬..." name="top_scripts_btn" 59 <button label="得到首è¦è„šæœ¬..." name="top_scripts_btn"
27 tool_tip="最耗时间è¿è¡Œè„šæœ¬æ–‡æ¡£çš„东东的列表。" /> 60 tool_tip="脚本è¿è¡Œæœ€è´¹æ—¶é—´ç‰©ä½“的列表。" />
28 <button label="?" name="top_scripts_help" /> 61 <button label="?" name="top_scripts_help" />
29 <button label="é‡æ–°è¿›å…¥åœ°åŒº" name="restart_btn" 62 <button label="é‡æ–°å¯åŠ¨åŒºåŸŸ" name="restart_btn"
30 tool_tip="实施2分钟倒计时,并且é‡æ–°å¯åŠ¨æ­¤åŒºåŸŸã€‚" /> 63 tool_tip="2 分钟倒计时åŽï¼Œé‡æ–°å¯åŠ¨æ­¤åŒºåŸŸã€‚" />
31 <button label="?" name="restart_help" /> 64 <button label="?" name="restart_help" />
32 <button label="å–æˆé‡æ–°å¯åŠ¨" name="cancel_restart_btn" 65 <button label="å»è¿Ÿé‡æ–°å¯åŠ¨" name="cancel_restart_btn"
33 tool_tip="撤销区域é‡èµ·æ¨¡å¼" /> 66 tool_tip="延迟区域é‡æ–°å¯åŠ¨ä¸€å°æ—¶ã€‚" />
34</panel> 67</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_region_estate.xml b/linden/indra/newview/skins/default/xui/zh/panel_region_estate.xml
index e09603b..6da1456 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_region_estate.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_region_estate.xml
@@ -1,10 +1,11 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="ç§äººé¢†åœ°" name="Estate"> 2<panel label="地产" name="Estate">
3 <text name="estate_help_text"> 3 <text name="estate_help_text">
4 更改该桌é¢çš„设置会影å“所有区域内的领地状况。 4 对该选项å¡ä¸­è®¾å®šçš„更改会影å“到
5地产内所有的区域。
5 </text> 6 </text>
6 <text name="estate_text"> 7 <text name="estate_text">
7 ç§äººé¢†åœ°: 8 地产:
8 </text> 9 </text>
9 <text name="estate_name"> 10 <text name="estate_name">
10 (未知) 11 (未知)
@@ -16,22 +17,38 @@
16 (未知) 17 (未知)
17 </text> 18 </text>
18 <text name="estate_manager_label"> 19 <text name="estate_manager_label">
19 领地ç»ç†äºº: 20 ç»ç†äºº:
20 </text> 21 </text>
21 <button label="?" name="estate_manager_help" />
22 <button label="添加..." name="add_estate_manager_btn" /> 22 <button label="添加..." name="add_estate_manager_btn" />
23 <button label="移除e..." name="remove_estate_manager_btn" /> 23 <button label="移除..." name="remove_estate_manager_btn" />
24 <check_box label="使用国际时间" name="use_global_time_check" /> 24 <check_box label="使用国际时间" name="use_global_time_check" />
25 <button label="?" name="use_global_time_help" />
26 <check_box label="太阳固定" name="fixed_sun_check" /> 25 <check_box label="太阳固定" name="fixed_sun_check" />
27 <button label="?" name="fixed_sun_help" /> 26 <slider label="相ä½" name="sun_hour_slider" />
28 <slider label="状æ€" name="sun_hour_slider" />
29 <check_box label="从大陆å¯è§†" name="externally_visible_check" /> 27 <check_box label="从大陆å¯è§†" name="externally_visible_check" />
30 <button label="?" name="externally_visible_help" /> 28 <check_box label="从此处å¯ä»¥çœ‹è§å¤§é™†" name="mainland_visible_check" />
31 <check_box label="从此处å¯ä»¥çœ‹è§æ•´ä¸ªå¤§é™†" name="mainland_visible_check" /> 29<text
32 <button label="?" name="mainland_visible_help" /> 30 name="Only Allow">
33 <check_box label="å…许直接闪电传é€" name="allow_direct_teleport" /> 31 é™åˆ¶è®¿é—®åˆ°:
34 <button label="?" name="allow_direct_teleport_help" /> 32 </text>
33 <check_box
34 label="支付信æ¯åœ¨æ¡ˆçš„å±…æ°‘"
35 name="limit_payment"
36 tool_tip="å°ç¦æ²¡æœ‰éªŒè¯çš„居民。" />
37 <check_box
38 label="通过年龄验è¯çš„æˆå¹´äºº"
39 name="limit_age_verified"
40 tool_tip="å°ç¦æ²¡æœ‰éªŒè¯å¹´é¾„的居民。详细信æ¯è¯·å‚è§ support.secondlife.com 。" />
41 <check_box
42 label="å…许语音èŠå¤©"
43 name="voice_chat_check" />
44 <text
45 name="abuse_email_text">
46 ä¸è‰¯è¡Œä¸ºæŠ¥å‘Šç”µå­é‚®ä»¶åœ°å€:
47 </text>
48 <string
49 name="email_unsupported">ä¸æ”¯æŒçš„功能</string>
50
51 <check_box label="å…许直接瞬间移动" name="allow_direct_teleport" />
35 <text name="region_text_lbl"> 52 <text name="region_text_lbl">
36 æ‹’ç»é€šå¾€æ”¯ä»˜æƒ…况信æ¯: 53 æ‹’ç»é€šå¾€æ”¯ä»˜æƒ…况信æ¯:
37 </text> 54 </text>
@@ -40,23 +57,23 @@
40 <check_box label="å¦è®¤ä½¿ç”¨è¿‡çš„支付信æ¯" name="deny_transacted" /> 57 <check_box label="å¦è®¤ä½¿ç”¨è¿‡çš„支付信æ¯" name="deny_transacted" />
41 <button label="应用" name="apply_btn" /> 58 <button label="应用" name="apply_btn" />
42 <text name="allow_resident_label"> 59 <text name="allow_resident_label">
43 å…许居民: 60 å…许的居民:
44 </text> 61 </text>
45 <button label="?" name="allow_resident_help" /> 62 <button label="?" name="allow_resident_help" />
46 <button label="添加..." name="add_allowed_avatar_btn" /> 63 <button label="添加..." name="add_allowed_avatar_btn" />
47 <button label="移除e..." name="remove_allowed_avatar_btn" /> 64 <button label="移除..." name="remove_allowed_avatar_btn" />
48 <text name="allow_group_label"> 65 <text name="allow_group_label">
49 获准的社团: 66 å…许的社团:
50 </text> 67 </text>
51 <button label="?" name="allow_group_help" /> 68 <button label="?" name="allow_group_help" />
52 <button label="添加..." name="add_allowed_group_btn" /> 69 <button label="添加..." name="add_allowed_group_btn" />
53 <button label="移除e..." name="remove_allowed_group_btn" /> 70 <button label="移除..." name="remove_allowed_group_btn" />
54 <text name="ban_resident_label"> 71 <text name="ban_resident_label">
55 å—é™å±…æ°‘: 72 å°ç¦çš„å±…æ°‘:
56 </text> 73 </text>
57 <button label="?" name="ban_resident_help" /> 74 <button label="?" name="ban_resident_help" />
58 <button label="添加..." name="add_banned_avatar_btn" /> 75 <button label="添加..." name="add_banned_avatar_btn" />
59 <button label="移除e..." name="remove_banned_avatar_btn" /> 76 <button label="移除..." name="remove_banned_avatar_btn" />
60 <button label="å‘消æ¯è‡³ç‹¬ç«‹äº§ä¸š..." name="message_estate_btn" /> 77 <button label="å‘地产åé€æ¶ˆæ¯..." name="message_estate_btn" />
61 <button label="将用户从状æ€â€¦è¸¢èµ°" name="kick_user_from_estate_btn" /> 78 <button label="从地产将用户踢走..." name="kick_user_from_estate_btn" />
62</panel> 79</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_region_general.xml b/linden/indra/newview/skins/default/xui/zh/panel_region_general.xml
index 0439f12..63dfe78 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_region_general.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_region_general.xml
@@ -6,37 +6,43 @@
6 <text name="region_text"> 6 <text name="region_text">
7 未知 7 未知
8 </text> 8 </text>
9 <check_box label="é”定外形" name="block_terraform_check" /> 9 <text
10 <button label="?" name="terraform_help" /> 10 name="version_channel_text_lbl">
11 版本:
12 </text>
13 <text
14 name="version_channel_text">
15 未知
16 </text>
17
18
19 <check_box label="é”定地形" name="block_terraform_check" />
11 <check_box label="é”定飞翔" name="block_fly_check" /> 20 <check_box label="é”定飞翔" name="block_fly_check" />
12 <button label="?" name="fly_help" /> 21 <check_box label="å…许伤害" name="allow_damage_check" />
13 <check_box label="å…许æŸå" name="allow_damage_check" />
14 <button label="?" name="damage_help" />
15 <check_box label="é™åˆ¶æŽ¨åŠ¨" name="restrict_pushobject" /> 22 <check_box label="é™åˆ¶æŽ¨åŠ¨" name="restrict_pushobject" />
16 <button label="?" name="restrict_pushobject_help" />
17 <check_box label="å…许土地转å–" name="allow_land_resell_check" /> 23 <check_box label="å…许土地转å–" name="allow_land_resell_check" />
18 <button label="?" name="land_resell_help" /> 24 <check_box label="å…许土地åˆå¹¶/分割" name="allow_parcel_changes_check" />
19 <check_box label="å…许土地è”åˆ/分割" name="allow_parcel_changes_check" /> 25 <check_box
20 <button label="?" name="parcel_changes_help" /> 26 label="ä¸è¦åœ¨æœç´¢ä¸­æ˜¾ç¤ºåœŸåœ°"
21 <spinner label="代ç†é™åˆ¶" name="agent_limit_spin" /> 27 name="block_parcel_search_check"
22 <button label="?" name="agent_limit_help" /> 28 tool_tip="让人们在æœç´¢ç»“果中看到这个区域和它的地å—" />
23 <spinner label="奖励东东" name="object_bonus_spin" /> 29 <spinner label="åŒèº«æ•°ç›®é™åˆ¶" name="agent_limit_spin" />
24 <button label="?" name="object_bonus_help" /> 30 <spinner label="é¢å¤–物体因数" name="object_bonus_spin" />
25 <text label="æˆäººå†…容" name="access_text"> 31 <text label="æˆäººå†…容" name="access_text">
26 æˆäººå†…容: 32 æˆäººå†…容:
27 </text> 33 </text>
28 <combo_box label="æˆäºº" name="access_combo"> 34 <combo_box label="æˆäºº" name="access_combo">
29 <combo_item name="PG"> 35 <combo_item name="PG">
30 在家长指导下的未æˆå¹´äºº 36 éžé™åˆ¶çº§
31 </combo_item> 37 </combo_item>
32 <combo_item name="Mature"> 38 <combo_item name="Mature">
33 æˆäºº 39 é™åˆ¶çº§
34 </combo_item> 40 </combo_item>
35 </combo_box> 41 </combo_box>
36 <button label="?" name="access_help" /> 42 <button label="?" name="access_help" />
37 <button label="应用" name="apply_btn" /> 43 <button label="应用" name="apply_btn" />
38 <button label="闪电传é€ä¸€ä¸ªç”¨æˆ·å›žå®¶..." name="kick_btn" /> 44 <button label="瞬间移动用户回家..." name="kick_btn" />
39 <button label="所有用户闪电传é€å›žå®¶..." name="kick_all_btn" /> 45 <button label="所有用户瞬间移动回家..." name="kick_all_btn" />
40 <button label="å‘é€å³æ消æ¯å¾€â€¦åŒºåŸŸ" name="im_btn" /> 46 <button label="å‘区域å‘é€æ¶ˆæ¯" name="im_btn" />
41 <button label="管ç†é™è½ç‚¹..." name="manage_telehub_btn" /> 47 <button label="管ç†ç€é™ç‚¹..." name="manage_telehub_btn" />
42</panel> 48</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_region_terrain.xml b/linden/indra/newview/skins/default/xui/zh/panel_region_terrain.xml
index 3f6a408..73ec61a 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_region_terrain.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_region_terrain.xml
@@ -10,21 +10,21 @@
10 <button label="?" name="water_height_help" /> 10 <button label="?" name="water_height_help" />
11 <spinner label="地形æ高é™åˆ¶" name="terrain_raise_spin" /> 11 <spinner label="地形æ高é™åˆ¶" name="terrain_raise_spin" />
12 <button label="?" name="terrain_raise_help" /> 12 <button label="?" name="terrain_raise_help" />
13 <spinner label="地形较低é™åˆ¶" name="terrain_lower_spin" /> 13 <spinner label="地形é™ä½Žé™åˆ¶" name="terrain_lower_spin" />
14 <button label="?" name="terrain_lower_help" /> 14 <button label="?" name="terrain_lower_help" />
15 <check_box label="使用领地太阳" name="use_estate_sun_check" /> 15 <check_box label="使用地产太阳" name="use_estate_sun_check" />
16 <button label="?" name="use_estate_sun_help" /> 16 <button label="?" name="use_estate_sun_help" />
17 <check_box label="太阳固定" name="fixed_sun_check" /> 17 <check_box label="太阳固定" name="fixed_sun_check" />
18 <button label="?" name="fixed_sun_help" /> 18 <button label="?" name="fixed_sun_help" />
19 <slider label="状æ€" name="sun_hour_slider" /> 19 <slider label="相ä½" name="sun_hour_slider" />
20 <button label="应用" name="apply_btn" /> 20 <button label="应用" name="apply_btn" />
21 <button label="下载 RAW地形..." name="download_raw_btn" 21 <button label="下载 RAW 地形..." name="download_raw_btn"
22 tool_tip="åªå¯¹åœ°äº§æ‰€æœ‰äººå¼€æ”¾è€Œä¸å¯¹ç»ç†äººå¼€æ”¾ã€‚" /> 22 tool_tip="åªå¯¹åœ°äº§æ‰€æœ‰äººå¼€æ”¾è€Œä¸å¯¹ç»ç†äººå¼€æ”¾ã€‚" />
23 <button label="?" name="download_raw_help" /> 23 <button label="?" name="download_raw_help" />
24 <button label="上传RAWæ ¼å¼åœ°å½¢..." name="upload_raw_btn" 24 <button label="上传 RAW 地形..." name="upload_raw_btn"
25 tool_tip="åªå¯¹åœ°äº§æ‰€æœ‰äººå¼€æ”¾è€Œä¸å¯¹ç»ç†äººå¼€æ”¾ã€‚" /> 25 tool_tip="åªå¯¹åœ°äº§æ‰€æœ‰äººå¼€æ”¾è€Œä¸å¯¹ç»ç†äººå¼€æ”¾ã€‚" />
26 <button label="?" name="upload_raw_help" /> 26 <button label="?" name="upload_raw_help" />
27 <button label="硬地" name="bake_terrain_btn" 27 <button label="烘烤" name="bake_terrain_btn"
28 tool_tip="设置目å‰åœ°å½¢ä¸ºä¸Šå‡/下é™æžé™çš„中点。" /> 28 tool_tip="设置目å‰åœ°å½¢ä¸ºä¸Šå‡/下é™æžé™çš„中点。" />
29 <button label="?" name="bake_terrain_help" /> 29 <button label="?" name="bake_terrain_help" />
30</panel> 30</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_region_texture.xml b/linden/indra/newview/skins/default/xui/zh/panel_region_texture.xml
index 93c86cb..4595a24 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_region_texture.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_region_texture.xml
@@ -1,13 +1,13 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel label="地é¢ææ–™" name="Textures"> 2<panel label="地é¢æè´¨" name="Textures">
3 <text name="region_text_lbl"> 3 <text name="region_text_lbl">
4 区域: 4 区域:
5 </text> 5 </text>
6 <text name="region_text"> 6 <text name="region_text">
7 未知 7 未知
8 </text> 8 </text>
9 <text name="base_texture_text"> 9 <text name="detail_texture_text">
10 基本质地(需è¦128*128,24bit.tga字节) 10 地é¢æ质(è¦æ±‚ 512×512, 24ä½ .tga 文件格å¼)。
11 </text> 11 </text>
12 <text name="height_text_lbl"> 12 <text name="height_text_lbl">
13 1 (低) 13 1 (低)
@@ -21,34 +21,20 @@
21 <text name="height_text_lbl4"> 21 <text name="height_text_lbl4">
22 4 (高) 22 4 (高)
23 </text> 23 </text>
24 <text name="detail_texture_text"> 24
25 详细质地(è¦æ±‚512*512(分辨率),24bit.tga文件格å¼ã€‚
26 </text>
27 <text name="height_text_lbl5"> 25 <text name="height_text_lbl5">
28 1 (低) 26 æ质标高范围
29 </text> 27 </text>
30 <text name="height_text_lbl6"> 28 <text name="height_text_lbl6">
31 2
32 </text>
33 <text name="height_text_lbl7">
34 3
35 </text>
36 <text name="height_text_lbl8">
37 4 (高)
38 </text>
39 <text name="height_text_lbl9">
40 æ质范围
41 </text>
42 <text name="height_text_lbl10">
43 è¥¿å— 29 西å—
44 </text> 30 </text>
45 <text name="height_text_lbl11"> 31 <text name="height_text_lbl7">
46 西北 32 西北
47 </text> 33 </text>
48 <text name="height_text_lbl12"> 34 <text name="height_text_lbl8">
49 ä¸œå— 35 东å—
50 </text> 36 </text>
51 <text name="height_text_lbl13"> 37 <text name="height_text_lbl9">
52 东北 38 东北
53 </text> 39 </text>
54 <spinner label="低" name="height_start_spin_0" /> 40 <spinner label="低" name="height_start_spin_0" />
@@ -59,14 +45,14 @@
59 <spinner label="高" name="height_range_spin_1" /> 45 <spinner label="高" name="height_range_spin_1" />
60 <spinner label="高" name="height_range_spin_2" /> 46 <spinner label="高" name="height_range_spin_2" />
61 <spinner label="高" name="height_range_spin_3" /> 47 <spinner label="高" name="height_range_spin_3" />
62 <text name="height_text_lbl14"> 48 <text name="height_text_lbl10">
63 These values represent the blend range for the textures above. 49 这些值代表了以上æ质的混åˆèŒƒå›´ã€‚
64 </text> 50 </text>
65 <text name="height_text_lbl15"> 51 <text name="height_text_lbl11">
66 测é‡å•ä½ä¸ºç±³ï¼Œæœ€ä½Žå€¼æ˜¯ä¸€å·æ质的最大高度。 52 å•ä½ä¸ºç±³ï¼Œæœ€ä½Žå€¼æ˜¯ä¸€å·æ质的最大高度。
67 </text> 53 </text>
68 <text name="height_text_lbl16"> 54 <text name="height_text_lbl12">
69 并且最高值是4#æ质的最低高度。 55 而最高值是四å·æ质的最å°é«˜åº¦ã€‚
70 </text> 56 </text>
71 <button label="应用" name="apply_btn" /> 57 <button label="应用" name="apply_btn" />
72</panel> 58</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_speaker_controls.xml b/linden/indra/newview/skins/default/xui/zh/panel_speaker_controls.xml
new file mode 100644
index 0000000..a38236d
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_speaker_controls.xml
@@ -0,0 +1,60 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="active_speakers_panel">
3 <string
4 name="moderator_label">(管ç†å‘˜)</string>
5 <layout_stack>
6 <layout_panel
7 min_height="25"
8 name="moderation_mode_panel"
9 top_delta="0"
10 visible="false">
11 <combo_box
12 name="moderation_mode">
13 <combo_item
14 value="unmoderated">语音默认打开</combo_item>
15 <combo_item
16 value="moderated">语音默认关闭</combo_item>
17 </combo_box>
18 </layout_panel>
19
20 <layout_panel
21 name="moderate_chat_panel">
22 <scroll_list
23 name="speakers_list">
24 <column
25 label="åå­—"
26 name="speaker_name" />
27 </scroll_list>
28
29 <panel
30 name="speaker_controls">
31 <text
32 name="resident_name"
33 valign="center">Rumplstiltskin Califragilistic</text>
34 <button
35 label=""
36 name="mute_btn"
37 tool_tip="将该居民的语音音é‡è®¾ç½®ä¸ºé™éŸ³" />
38 <check_box
39 name="mute_text_btn"
40 label="å±è”½æ–‡å­—èŠå¤©" />
41 </panel>
42 </layout_panel>
43 <layout_panel
44 name="moderator_controls"
45 top_delta="0"
46 visible="false">
47 <text
48 right="-5"
49 name="moderator_controls_label">管ç†å‘˜æŽ§åˆ¶:</text>
50 <check_box
51 name="moderator_allow_voice"
52 right="-5">å…许语音èŠå¤©</check_box>
53 <check_box
54 name="moderator_allow_text"
55 right="-5">å…许文字èŠå¤©</check_box>
56 </layout_panel>
57
58 </layout_stack>
59</panel>
60<!--Translated for Second Life 1.19.0 (79185)-->
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_status_bar.xml b/linden/indra/newview/skins/default/xui/zh/panel_status_bar.xml
index cb5493c..66783a9 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_status_bar.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_status_bar.xml
@@ -1,28 +1,37 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="status"> 2<panel name="status">
3 <text type="string" length="1" name="ParcelNameText" 3 <text name="ParcelNameText"
4 tool_tip="Name of land parcel on which you are standing. Click for About Land."> 4 tool_tip="你现在所在的地å—çš„å称。点击打开 ‘关于土地’ 窗å£ã€‚">
5 土地的å称在此 5 土地的å称在此
6 </text> 6 </text>
7 <text type="string" length="1" name="BalanceText" tool_tip="å¸æˆ·ä½™é¢ã€‚"> 7 <text name="BalanceText" tool_tip="å¸æˆ·ä½™é¢ã€‚">
8 L$ 8 请ç¨å€™...
9 </text> 9 </text>
10 <button label="" label_selected="" name="buycurrency" tool_tip="è´­ä¹°è´§å¸" /> 10 <button name="buycurrency" tool_tip="è´­ä¹°è´§å¸" />
11 <text type="string" length="12" name="TimeText" tool_tip="当å‰æ—¶é—´ï¼ˆå¤ªå¹³æ´‹æ—¶åŒºï¼‰"> 11 <text name="TimeText" tool_tip="当å‰æ—¶é—´ï¼ˆå¤ªå¹³æ´‹æ—¶åŒºï¼‰">
12 12:00 AM 12 12:00 AM
13 </text> 13 </text>
14 <button label="" label_selected="" name="scriptout" tool_tip="脚本警告åŠé”™è¯¯ã€‚" /> 14 <string name="StatBarDaysOfWeek">
15 <button label="" label_selected="" name="health" tool_tip="å¥åº·" /> 15 星期日:星期一:星期二:星期三:星期四:星期五:星期六
16 <text type="string" length="1" name="HealthText" tool_tip="å¥åº·"> 16 </string>
17 <string name="StatBarMonthsOfYear">
18 一月:二月:三月:四月:五月:六月:七月:八月:ä¹æœˆ:å月:å一月:å二月
19 </string>
20 <button name="scriptout" tool_tip="脚本警告åŠé”™è¯¯ã€‚" />
21 <button name="health" tool_tip="å¥åº·" />
22 <text name="HealthText" tool_tip="å¥åº·">
17 100% 23 100%
18 </text> 24 </text>
19 <button label="" label_selected="" name="fly" tool_tip="无法飞行" /> 25 <button name="fly" tool_tip="ä¸å…许飞行" />
20 <button label="" label_selected="" name="build" tool_tip="无建筑" /> 26 <button name="build" tool_tip="ä¸å…许建造" />
21 <button label="" label_selected="" name="scripts" tool_tip="无脚本" /> 27 <button name="scripts" tool_tip="ä¸å…许脚本" />
22 <button label="" label_selected="" name="restrictpush" tool_tip="é™åˆ¶ llPushObject" /> 28 <button name="restrictpush" tool_tip="ä¸å…许推动" />
23 <button label="" label_selected="" name="buyland" tool_tip="è´­ä¹°è¿™å—土地" /> 29 <button name="status_no_voice" tool_tip="此处语音ä¸å¯ç”¨" />
30 <button name="buyland" tool_tip="è´­ä¹°è¿™å—土地" />
31 <line_editor label="æœç´¢" name="search_editor" tool_tip="æœç´¢ Second Life" />
32 <button name="search_btn" tool_tip="æœç´¢ Second Life" />
24 <text name="packet_loss_tooltip"> 33 <text name="packet_loss_tooltip">
25 æŸå¤±æ‰“包 34 å°åŒ…丢失率
26 </text> 35 </text>
27 <text name="bandwidth_tooltip"> 36 <text name="bandwidth_tooltip">
28 带宽 37 带宽
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_toolbar.xml b/linden/indra/newview/skins/default/xui/zh/panel_toolbar.xml
index 8bdf2dd..e9c381d 100644
--- a/linden/indra/newview/skins/default/xui/zh/panel_toolbar.xml
+++ b/linden/indra/newview/skins/default/xui/zh/panel_toolbar.xml
@@ -1,21 +1,24 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="toolbar"> 2<panel name="toolbar">
3 <string name="Redock Windows">
4 æ¢å¤åœé çª—å£
5 </string>
3 <layout_stack name="toolbar_stack"> 6 <layout_stack name="toolbar_stack">
4 <button label="å³æ—¶é€š" name="im_btn" tool_tip="用å³æ—¶é€šè”系你的朋å‹ã€‚" /> 7 <button label="å³æ—¶é€š" name="im_btn" tool_tip="用å³æ—¶é€šè”系你的朋å‹ã€‚" />
5 <button label="" name="chat_btn" 8 <button label="" name="chat_btn" tool_tip="显示èŠå¤©æ ã€‚(回车键)" />
6 tool_tip="与附近的人交谈.点击交谈之åŽç‚¹å‡»åŽ†å²åŽ»æŸ¥æ‰¾äº¤è°ˆè®°å½•ã€‚" /> 9 <flyout_button label="交æµ" name="communicate_btn"
7 <button label="伙伴&quot;" name="friends_btn" 10 tool_tip="查找并与你的好å‹å’Œç¤¾å›¢äº¤æµã€‚" />
8 tool_tip="查找并与你的好朋å‹äº¤æµã€‚" /> 11 <button label="飞翔" label_selected="åœæ­¢é£žç¿”" name="fly_btn"
9 <button label="飞翔" label_selected="åœæ­¢é£žç¿”" name="fly_btn" 12 tool_tip="开始飞行。使用E/C键或者PgUp/PgDnæ¥æŽ§åˆ¶é£žè¡Œé«˜åº¦ã€‚" />
10 tool_tip="开始飞行。使用EC或者PgUp/PgDnæ¥æŽ§åˆ¶é£žè¡Œé«˜åº¦ã€‚" /> 13 <button label="å¿«ç…§" name="snapshot_btn"
11 <button label="å¿«ç…§" name="snapshot_btn" 14 tool_tip="å°†å±å¹•æˆªå›¾ä¿å­˜åˆ°ç¡¬ç›˜æˆ–库存中。" />
12 tool_tip="å°†å±å¹•æˆªå›¾ä¿å­˜åˆ°ç¡¬ç›˜æˆ–清å•ä¸­." /> 15 <button label="æœç´¢" name="directory_btn"
13 <button label="æœç´¢" name="directory_btn" 16 tool_tip="æœç´¢åœ°ç‚¹ï¼Œäº‹ä»¶ï¼Œäººç‰©ä»¥åŠæ›´å¤šã€‚" />
14 tool_tip="æœç´¢åœ°åŒºï¼Œæ—¶é—´ï¼Œä»»åŠ¡ä»¥åŠæ›´å¤šã€‚" /> 17 <button label="建造" name="build_btn" tool_tip="创建新的物å“。" />
15 <button label="建造" name="build_btn" tool_tip="创建新的东东" /> 18 <button label="迷你地图" name="radar_btn"
16 <button label="迷你地图" name="radar_btn" 19 tool_tip="你周围区域的地图。 (Ctrl-Shift-M)" />
17 tool_tip="你周围区域的地图。 (Ctrl-Shift-M)" /> 20 <button label="地图" name="map_btn" tool_tip="世界地图。 (Ctrl-M)" />
18 <button label="地图" name="map_btn" tool_tip="全部完整地图。 (Ctrl-M)" /> 21 <button label="库存" name="inventory_btn" tool_tip="你的物å“æ ã€‚ (Ctrl-I)" />
19 <button label="库存" name="inventory_btn" tool_tip="你的东东æ ã€‚ (Ctrl-I)" /> 22 </layout_stack>
20 </layout_stack>
21</panel> 23</panel>
24<!-- Translated for Second Life 1.19.0 (80267) -->
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_voice_controls.xml b/linden/indra/newview/skins/default/xui/zh/panel_voice_controls.xml
new file mode 100644
index 0000000..4ff2f81
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_voice_controls.xml
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="voice_controls">
3 <button label="" name="speakers_btn"
4 tool_tip="显示你周围使用语音èŠå¤©çš„å±…æ°‘" />
5 <button label="交谈" name="push_to_talk" tool_tip="按ä½æŒ‰é’®æ¥é€šè¯" />
6 <button label="" name="ptt_lock" tool_tip="点击é”æ¥åˆ‡æ¢åˆ°é€šè¯æ¨¡å¼" />
7 <button label="" name="show_channel" tool_tip="显示当å‰çš„语音频é“" />
8</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_voice_enable.xml b/linden/indra/newview/skins/default/xui/zh/panel_voice_enable.xml
new file mode 100644
index 0000000..84444e5
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_voice_enable.xml
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="content_panel">
3
4 <text_editor name="voice_intro_text1" word_wrap="true">
5 欢迎使用 Second Life 语音èŠå¤©! 语音èŠå¤©è®©ä½ å¯ä»¥ä¸Žå…¶ä»–居民进行å£å¤´äº¤æµã€‚该å‘导会帮助你完æˆè®¾ç½®è¯­éŸ³èŠå¤©çš„å„个步骤。请注æ„语音èŠå¤©éœ€è¦å¸¦éº¦å…‹é£Žçš„立体声耳机;点击帮助按钮了解更多信æ¯ã€‚
6 </text_editor>
7
8 <text_editor name="voice_intro_text2" word_wrap="true">
9 您现在想è¦å¯ç”¨è¯­éŸ³èŠå¤©å—?
10 </text_editor>
11 <radio_group name="voice_enable">
12 <radio_item name="1">当然,å¯ç”¨è¯­éŸ³èŠå¤©ã€‚</radio_item>
13 <radio_item name="0">ä¸è¦å°±æ˜¯ä¸è¦ï¼ŒçŽ°åœ¨ä¸å¯ç”¨è¯­éŸ³èŠå¤©</radio_item>
14 </radio_group>
15
16 <text_editor
17 name="voice_intro_text3"
18 word_wrap="true">ä½ å¯ä»¥åœ¨ä»»ä½•æ—¶å€™ï¼Œåœ¨å好设置的语音èŠå¤©é€‰é¡¹å¡ä¸­å¯ç”¨å¯ç”¨è¯­éŸ³èŠå¤©ã€‚</text_editor>
19
20 <text_editor
21 name="voice_intro_text4"
22 word_wrap="true">点击继续按钮æ¥è®¾ç½®è¯­éŸ³èŠå¤©é€‰é¡¹ï¼Œæˆ–者点击完æˆç»§ç»­ä½¿ç”¨ Second Life。</text_editor>
23
24 </panel> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_voice_options.xml b/linden/indra/newview/skins/default/xui/zh/panel_voice_options.xml
new file mode 100644
index 0000000..5115652
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_voice_options.xml
@@ -0,0 +1,45 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="content_panel">
3 <text_editor
4 name="voice_intro_text1"
5 word_wrap="true">
6 使用以下的选项设置你的语音èŠå¤©ä½“验。
7 </text_editor>
8 <radio_group
9 draw_border="false"
10 name="ear_location" >
11 <radio_item
12 name="0">
13 从摄åƒæœºçš„ä½ç½®å¬è¯­éŸ³èŠå¤©ã€‚
14 </radio_item>
15 <radio_item
16 name="1" >
17 从化身的ä½ç½®å¬è¯­éŸ³èŠå¤©ã€‚
18 </radio_item>
19 </radio_group>
20 <check_box
21 initial_value="false"
22 label="åªæŽ¥å—我的朋å‹åˆ—表上的人的语音呼å«"
23 name="push_to_talk_check" />
24 <check_box
25 initial_value="false"
26 label="在查看器å¯åŠ¨æ—¶ï¼Œä½¿ç”¨å³æŒ‰å³è¯´"
27 name="push_to_talk_check" />
28 <check_box
29 initial_value="false"
30 label="以切æ¢æ¨¡å¼ä½¿ç”¨å³æŒ‰å³è¯´"
31 name="push_to_talk_toggle_check" />
32 <text
33 name="push_to_talk_label"
34 word_wrap="true">
35 å³æŒ‰å³è¯´åˆ‡æ¢é”®:
36 </text>
37 <line_editor
38 name="modifier_combo" />
39 <button
40 label="设置按键"
41 name="set_voice_hotkey_button" />
42 <button
43 label="使用鼠标中键"
44 name="set_voice_middlemouse_button" />
45</panel> \ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/zh/panel_voice_remote_expanded.xml b/linden/indra/newview/skins/default/xui/zh/panel_voice_remote_expanded.xml
new file mode 100644
index 0000000..67695f7
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/panel_voice_remote_expanded.xml
@@ -0,0 +1,4 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel name="voice_remote">
3 <button label="" name="end_call_btn" tool_tip="结æŸé€šè¯" />
4</panel>
diff --git a/linden/indra/newview/skins/default/xui/zh/role_actions.xml b/linden/indra/newview/skins/default/xui/zh/role_actions.xml
index 9f6f957..c7b4733 100644
--- a/linden/indra/newview/skins/default/xui/zh/role_actions.xml
+++ b/linden/indra/newview/skins/default/xui/zh/role_actions.xml
@@ -1,183 +1,204 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<role_actions> 2<role_actions>
3 <action_set 3 <action_set
4 description="这些能力包括添加或移除社团æˆå‘˜çš„æƒåˆ©ï¼Œå¹¶ä¸”有æƒåˆ©æŽ¥çº³æ²¡æœ‰é‚€è¯·å‡½çš„æˆå‘˜" 4 description="这些能力包括添加或移除社团æˆå‘˜ï¼Œä»¥åŠå…许新团员ä¸ç»è¿‡é‚€è¯·å°±å¯ä»¥åŠ å…¥çš„æƒåˆ©ã€‚"
5 name="Membership"> 5 name="Membership">
6 <action description="邀请朋å‹åŠ å…¥ç¤¾å›¢" 6 <action description="邀请加入社团"
7 longdescription="Invite People to this Group using the &apos;Invite New Person...&apos; button in the Members &amp; Roles tab &gt; Members sub-tab." 7 longdescription="使用 ‘会员和角色’ 标签页 &gt; ‘会员’å­æ ‡ç­¾é¡µä¸‹çš„ ‘邀请一个新人 ...’ 按钮邀请别人加入这个社团。"
8 name="member invite" value="1" /> 8 name="member invite" value="1" />
9 <action description="从社团驱é€ä¼šå‘˜" 9 <action description="从社团驱é€å›¢å‘˜"
10 longdescription="Eject Members from this Group using the &apos;Eject From Group&apos; button in the Members &amp; Roles tab &gt; Members sub-tab. An Owner can eject anyone except another Owner. If you&apos;re not an Owner, a Member can be ejected from a group if, and only if, they&apos;re only in the Everyone Role, and NO other Roles. To remove Members from Roles, you need to have the &apos;Remove Members from Roles&apos; Ability." 10 longdescription="使用 ‘会员和角色’ 标签页 &gt; ‘会员’ å­æ ‡ç­¾é¡µä¸‹çš„ ‘从社团中驱é€â€™ 按钮将团员从社团关于土地 &gt; ä¸€èˆ¬è¸¢å‡ºã€‚ä¸€ä½ â€˜å›¢é•¿â€™ å¯ä»¥é©±é€é™¤äº†å¦ä¸€ä½ ‘团长’ 以外的所有人。如果您ä¸æ˜¯ ‘团长’,团员åªæœ‰å½“且仅当他们åªæœ‰ ‘普通人’ 角色,而 *没有* 其他角色的时候,æ‰å¯ä»¥è¢«é©±é€ã€‚è¦å°†å›¢å‘˜ä»Žè§’色移除,你需è¦æœ‰ ‘从角色移除会员’ 的能力。"
11 name="member eject" value="2" /> 11 name="member eject" value="2" />
12 <action description="绑定 &apos;打开ç»è®°&apos;并更改&apos;登记费用&apos;" 12 <action description="åˆ‡æ¢ â€˜å…¬å¼€æ³¨å†Œâ€ å¹¶æ›´æ”¹ ‘注册费用‘ "
13 longdescription="Toggle &apos;Open Enrollment&apos; to let new Members join without an invitation, and change &apos;Signup Fee&apos; in the Group Preferences section of the General tab." 13 longdescription="åˆ‡æ¢ â€˜å…¬å¼€æ³¨å†Œâ€™ æ¥è®©æ–°ä¼šå‘˜ä¸éœ€è¦é‚€è¯·å°±å¯ä»¥åŠ å…¥ï¼Œå¹¶ä¸”更改一般标签页下社团å好设定一æ ä¸­çš„ ‘注册费用’。"
14 name="member options" value="3" /> 14 name="member options" value="3" />
15 </action_set> 15 </action_set>
16 <action_set 16 <action_set
17 description="这些能力包括添加,移除或改å˜ç¤¾å›¢è§’色的æƒåˆ©ï¼Œä»Žè§’色中添加或移除组员的æƒåˆ©ï¼Œä»¥åŠä¸ºè§’色分é…能力的æƒåˆ©" 17 description="这些能力包括添加,移除或改å˜ç¤¾å›¢è§’色的æƒåˆ©ï¼Œä»Žè§’色中添加或移除组员的æƒåˆ©ï¼Œä»¥åŠä¸ºè§’色分é…能力的æƒåˆ©"
18 name="Roles"> 18 name="Roles">
19 <action description="创建新角色" 19 <action description="创建新角色"
20 longdescription="Create new Roles in the Members &amp; Roles tab &gt; Roles sub-tab." 20 longdescription="在 ‘会员和角色’ 标签页 &gt; ‘角色’ å­æ ‡ç­¾é¡µä¸‹åˆ›å»ºè§’色。"
21 name="role create" value="4" /> 21 name="role create" value="4" />
22 <action description="删除角色" 22 <action description="删除角色"
23 longdescription="Delete Roles in the Members &amp; Roles tab &gt; Roles sub-tab." 23 longdescription="在 ‘会员和角色’ 标签页 &gt; ‘角色’ å­æ ‡ç­¾é¡µä¸‹åˆ é™¤è§’色。"
24 name="role delete" value="5" /> 24 name="role delete" value="5" />
25 <action description="改å˜è§’色的åå­—, 头衔和其他æè¿°" 25 <action description="改å˜è§’色的åå­—, 头衔和其他æè¿°"
26 longdescription="Change Role names, titles, and descriptions at the bottom of the the Members &amp; Roles tab &gt; Roles sub-tab after selecting a Role." 26 longdescription="选择角色åŽï¼Œåœ¨ ‘会员和角色’ 标签页 &gt; ‘角色’ å­æ ‡ç­¾é¡µä¸‹æ”¹å˜è§’色的åå­—ã€å¤´è¡”和其他æ述。"
27 name="role properties" value="6" /> 27 name="role properties" value="6" />
28 <action description="给会员分é…分é…者的角色" 28 <action description="给会员分é…分é…者的角色"
29 longdescription="Assign Members to Roles in the Assigned Roles section of the Members &amp; Roles tab &gt; Members sub-tab. A member with this power can only add members to a role the assigner is already in." 29 longdescription="在 ‘会员和角色’ 标签页 &gt; ‘会员’ å­æ ‡ç­¾é¡µä¸‹ç»™å›¢å‘˜åˆ†é… ‘已分é…的角色’ 一æ ä¸­çš„角色。有这个能力的团员åªèƒ½ç»™å›¢å‘˜æ·»åŠ åˆ†é…者已ç»æœ‰çš„角色。"
30 name="role assign member limited" value="7" /> 30 name="role assign member limited" value="7" />
31 <action description="给会员分é…任何角色" 31 <action description="给会员分é…任何角色"
32 longdescription="Assign Members to Any Role in the Assigned Roles section of the Members &amp; Roles tab &gt; Members sub-tab. *WARNING* Any Member in a Role with this Ability can assign themselves--and any other non-Owner Member--to Roles that have more powers than they currently have, potentially elevating themselves to near-Owner power. Be sure you know what you&apos;re doing before assigning this Ability." 32 longdescription="在 ‘会员和角色’ 标签页 &gt; ‘会员’ å­æ ‡ç­¾é¡µä¸‹ç»™å›¢å‘˜åˆ†é…ä»»æ„角色。 *警告* 任何具有该角色的会员拥有这项能力åŽï¼Œéƒ½å¯ä»¥ç»™ä»–们自己——以åŠä»»ä½•å…¶ä»–的会员å„ç§è§’色——分é…æƒåˆ©æ¯”他们目å‰æ‰€æ‹¥æœ‰çš„æƒåˆ©å¤§å¾—多的角色,并å¯èƒ½æ拔他们自己到相近于团长æƒåˆ©çš„ä½ç½®ä¸Šã€‚请在分é…这项能力之å‰ç¡®å®šè‡ªå·±è¿™ä¹ˆåšå°†å¸¦æ¥çš„åŽæžœã€‚"
33 name="role assign member" value="8" /> 33 name="role assign member" value="8" />
34 <action description="ç¦æ­¢ä¼šå‘˜ç»§ç»­æ‰®æ¼”该项角色" 34 <action description="ç¦æ­¢ä¼šå‘˜ç»§ç»­æ‰®æ¼”该项角色"
35 longdescription="Remove Members from Roles in the Assigned Roles section of the Members &amp; Roles tab &gt; Members sub-tab. Owners can&apos;t be removed." 35 longdescription="在 ‘会员和角色’ 标签页 &gt; ‘角色’ å­æ ‡ç­¾é¡µä¸‹ä»Žç§»é™¤ä¼šå‘˜çš„角色。团长ä¸èƒ½è¢«ç§»é™¤ã€‚"
36 name="role remove member" value="9" /> 36 name="role remove member" value="9" />
37 <action description="分é…或移除角色的能力" 37 <action description="分é…或移除角色能力"
38 longdescription="Assign and Remove Abilities in Roles in the Allowed Abilities section of the Members &amp; Roles tab &gt; Roles sub-tab. *WARNING* Any Member in a Role with this Ability can assign themselves--and any other non-Owner Member--all Abilities, potentially elevating themselves to near-Owner power. Be sure you know what you&apos;re doing before assigning this Ability." 38 longdescription="在 ‘会员和角色’ 标签页 &gt; ‘角色’ å­æ ‡ç­¾é¡µä¸‹ä¸ºè§’色分é…或移除能力的能力。*警告* 任何具有该角色的会员拥有这项能力åŽï¼Œéƒ½å¯ä»¥ç»™ä»–们自己——或者其他会员——分é…所有的能力,甚至å¯ä»¥æ拔他们自己到相近于团长æƒåˆ©çš„ä½ç½®ä¸Šã€‚请在分é…这项能力之å‰ç¡®å®šè‡ªå·±è¿™ä¹ˆåšå°†å¸¦æ¥çš„åŽæžœã€‚"
39 name="role change actions" value="10" /> 39 name="role change actions" value="10" />
40 </action_set> 40 </action_set>
41 <action_set 41 <action_set
42 description="这些能力包括修改社团身份的æƒåˆ©ï¼Œä¾‹å¦‚更改公众å¯è§åº¦ï¼Œå®ªç« å’Œå¾½ç« " 42 description="这些能力包括修改社团标识的æƒåˆ©ï¼Œä¾‹å¦‚更改公众å¯è§åº¦ã€å®ªç« å’Œå¾½ç« "
43 name="Group Identity"> 43 name="Group Identity">
44 <action 44 <action
45 description="改å˜å®ªç« ,徽章, &apos;在网络上å‘布&apos;,å…¬å¼ä¼šå‘˜åœ¨ç¤¾å›¢ä¸­çš„ä¿¡æ¯" 45 description="改å˜å®ªç« ã€å¾½ç« ã€ ‘在æœç´¢ä¸­æ˜¾ç¤ºâ€˜"
46 longdescription="Change Charter, Insignia, &apos;Publish on the Web&apos;, and which members are publicly visible in Group Information. This is done in the General tab." 46 longdescription="改å˜å®ªç« ã€å¾½ç« ã€ ‘在æœç´¢ä¸­æ˜¾ç¤ºâ€˜ã€‚这些动作在 ‘一般’ 标签页中完æˆã€‚"
47 name="group change identity" value="11" /> 47 name="group change identity" value="11" />
48 </action_set> 48 </action_set>
49 <action_set 49 <action_set
50 description="这些能力包括转让,修改,并出售社团所拥有的部分土地的æƒåˆ©ã€‚转到“关于土地“窗å£ï¼Œç‚¹å‡»å³é”®å¹¶é€‰æ‹©â€œå…³äºŽåœŸåœ°...“,或者点击在èœå•æ¡ä¸Šçš„土地信æ¯ã€‚" 50 description="这些能力包括转让ã€ä¿®æ”¹ã€å¹¶å‡ºå”®ç¤¾å›¢æ‰€æ‹¥æœ‰çš„土地的æƒåˆ©ã€‚è¦è½¬åˆ° “关于土地†窗å£ï¼Œåœ¨åœ°é¢ä¸Šç‚¹å‡»å³é”®å¹¶é€‰æ‹© “关于土地...â€ï¼Œæˆ–者点击在èœå•æ¡ä¸Šçš„土地信æ¯ã€‚"
51 name="Parcel Management"> 51 name="Parcel Management">
52 <action description="转让土地或购买土地给社团" 52 <action description="转让土地或购买土地给社团"
53 longdescription="Deed land and buy land for group. This is done in About Land &gt; General tab." 53 longdescription="转让土地,以åŠä¸ºç¤¾å›¢è´­ä¹°åœŸåœ°ã€‚这在 关于土地 &gt; 一般 标签页中完æˆã€‚"
54 name="land deed" value="12" /> 54 name="land deed" value="12" />
55 <action description="把土地放弃还给林登长官" 55<!-- ä¸æ˜¯è¯´è¿‡ Governor Linden ä¸ç¿»è¯‘å—?! -->
56 longdescription="Abandon land to Governor Linden. *WARNING* Any Member in a Role with this Ability can abandon group-owned land in About Land &gt; General tab, reverting it to Linden ownership without a sale! Be sure you know what you&apos;re doing before assigning this Ability." 56 <action description="把土地放弃还给 Governor Linden"
57 longdescription="放弃土地,转移所有æƒç»™ Governor Linden。 *警告* 任何具有该角色的会员拥有这项能力åŽï¼Œéƒ½å¯ä»¥åœ¨ 关于土地 &gt; 一般 选项å¡ä¸­æ”¾å¼ƒåœŸåœ°ï¼Œå°†å…¶è¿”还为林登所有而ä¸éœ€è¦é€šè¿‡äº¤æ˜“! 请在分é…这项能力之å‰ç¡®å®šè‡ªå·±è¿™ä¹ˆåšå°†å¸¦æ¥çš„åŽæžœã€‚"
57 name="land release" value="13" /> 58 name="land release" value="13" />
58 <action description="设置待售土地的信æ¯" 59 <action description="设置土地待售信æ¯"
59 longdescription="Set land for sale info. *WARNING* Any Member in a Role with this Ability can sell group-owned land in About Land &gt; General tab as they wish! Be sure you know what you&apos;re doing before assigning this Ability." 60 longdescription="设置土地待售信æ¯ã€‚ *警告* 任何具有该角色的会员拥有这项能力åŽéƒ½å¯ä»¥åœ¨ 关于土地 &gt; 一般 选项å¡ä¸­ä»»æ„销售社团拥有的土地! 请在分é…这项能力之å‰ç¡®å®šè‡ªå·±è¿™ä¹ˆåšå°†å¸¦æ¥çš„åŽæžœã€‚"
60 name="land set sale info" value="14" /> 61 name="land set sale info" value="14" />
61 <action description="划分并加入土地" 62 <action description="分割åŠåˆå¹¶åœŸåœ°"
62 longdescription="Subdivide and join parcels. This is done by right-clicking the ground, &apos;Edit Terrain&apos;, and dragging your mouse on the land to make a selection. To subdivide, select what you want to split and click &apos;Subdivide...&apos;. To join, select two or more contiguous parcels and click &apos;Join...&apos;. " 63 longdescription="分割åŠåˆå¹¶åœ°å—。 å³é”®ç‚¹å‡»åœ°é¢ï¼Œé€‰æ‹© ‘编辑地形’,然åŽæ‹–动鼠标选择土地。è¦åˆ†å‰²åœŸåœ°ï¼Œé€‰æ‹©æƒ³è¦åˆ†å‰²çš„区域然åŽç‚¹å‡» ‘分割...’。 è¦åˆå¹¶ï¼Œé€‰æ‹©ä¸¤ä¸ªæˆ–两个以上相邻的地å—,然åŽç‚¹å‡» ‘åˆå¹¶...’。"
63 name="land divide join" value="15" /> 64 name="land divide join" value="15" />
64 </action_set> 65 </action_set>
65 <action_set 66 <action_set
66 description="这些能力包括改å˜åœŸåœ°å称和å‘布设置,查找目的地å¯è§åº¦ï¼Œé€‰æ‹©ç€é™†ç‚¹å’Œé—ªç”µä¼ è¿ç‚¹çš„路线的æƒåˆ©ã€‚" 67 description="这些能力包括改å˜åœŸåœ°å称和å‘布设置,查找目的地å¯è§åº¦ï¼Œé€‰æ‹©ç€é™†ç‚¹å’Œé—ªç”µä¼ è¿ç‚¹çš„路线的æƒåˆ©ã€‚"
67 name="Parcel Identity"> 68 name="Parcel Identity">
68 <action description="绑定&apos;在查找地点中显示&apos;并设定分类" 69 <action description="åˆ‡æ¢ â€˜åœ¨æŸ¥æ‰¾åœ°ç‚¹ä¸­æ˜¾ç¤ºâ€™ 并设定分类"
69 longdescription="Toggle &apos;Show in Find Places&apos; and setting a parcel&apos;s category in About Land &gt; Options tab." 70 longdescription="关于土地 &gt; 选项 æ ‡ç­¾é¡µä¸­åˆ‡æ¢ â€˜åœ¨æŸ¥æ‰¾åœ°ç‚¹ä¸­æ˜¾ç¤ºâ€™ï¼Œå¹¶è®¾å®šåœ°å—的分类。"
70 name="land find places" value="17" /> 71 name="land find places" value="17" />
71 <action 72 <action
72 description="改å˜åœŸåœ°å称, æè¿°å’Œ &apos;在网络上å‘布&apos;的设置" 73 description="改å˜åœŸåœ°å称ã€æè¿°å’Œ ‘在网络上å‘布’ 的设置"
73 longdescription="Change parcel name, description, and &apos;Publish on the Web&apos; settings. This is done in About Land &gt; Options tab." 74 longdescription="改å˜åœŸåœ°å称ã€æè¿°å’Œ ‘在网络上å‘布’ 的设置。这些动作在 关于土地 &gt; 选项 标签页中完æˆã€‚"
74 name="land change identity" value="18" /> 75 name="land change identity" value="18" />
75 <action description="设置ç€é™†ç‚¹ï¼Œå¹¶è®¾ç½®é—ªç”µä¼ é€è·¯å¾„" 76 <action description="设置ç€é™†ç‚¹å¹¶è®¾ç½®çž¬é—´ç§»åŠ¨è·¯å¾„"
76 longdescription="On a group-owned parcel, Members in a Role with this Ability can set a landing point to specify where incoming teleports arrive, and also set teleport routing for further control. This is done in About Land &gt; Options tab." 77 longdescription="在社团用有的地å—上,具有拥有这项能力的角色的会员å¯ä»¥è®¾å®šç€é™†ç‚¹ï¼Œä¹Ÿå°±æ˜¯çž¬é—´ç§»åŠ¨æŠµè¾¾çš„ä½ç½®ï¼Œä»¥åŠè¯¦ç»†æŽ§åˆ¶çž¬é—´ç§»åŠ¨è·¯å¾„。这些动作在 关于土地 &gt; 选项 标签页中完æˆã€‚"
77 name="land set landing point" value="19" /> 78 name="land set landing point" value="19" />
78 </action_set> 79 </action_set>
79 <action_set 80 <action_set
80 description="这些能力包括影å“å½±å“土地选项的æƒåˆ©ï¼Œä¾‹å¦‚“创建东东â€ï¼Œâ€œç¼–辑地形â€ï¼ŒéŸ³ä¹å’Œåª’体设置等。" 81 description="这些能力包括影å“å½±å“土地选项的æƒåˆ©ï¼Œä¾‹å¦‚ “创建物体â€ï¼Œâ€œç¼–辑地形â€ï¼ŒéŸ³ä¹å’Œåª’体设置等。"
81 name="Parcel Settings"> 82 name="Parcel Settings">
82 <action description="改å˜éŸ³ä¹å’Œå¤šåª’体设置" 83 <action description="改å˜éŸ³ä¹å’Œå¤šåª’体设置"
83 longdescription="Change streaming music and movie settings in About Land &gt; Media tab." 84 longdescription="在关于土地 &gt; 选项 标签页中改å˜éŸ³ä¹å’Œå¤šåª’体设置。"
84 name="land change media" value="20" /> 85 name="land change media" value="20" />
85 <action description="绑定&apos;编辑地形&apos;" 86 <action description="åˆ‡æ¢ &apos;编辑地形&apos;"
86 longdescription="Toggle &apos;Edit Terrain&apos;. *WARNING* About Land &gt; Options tab &gt; Edit Terrain allows anyone to terraform your land&apos;s shape, and place and move Linden plants. Be sure you know what you&apos;re doing before assigning this Ability. Editing terrain is toggled in About Land &gt; Options tab." 87 longdescription="åˆ‡æ¢ &apos;编辑地形&apos;。 *警告* 关于土地 &gt; 选项 &gt; 编辑地形 å…许任何人编辑土地的地形,以åŠæ”¾ç½®æˆ–移动林登æ¤è¢«ã€‚请在分é…这项能力之å‰ç¡®å®šè‡ªå·±è¿™ä¹ˆåšå°†å¸¦æ¥çš„åŽæžœã€‚编辑地形 在 关于土地 &gt; 选项 下。"
87 name="land edit" value="21" /> 88 name="land edit" value="21" />
88 <action description="绑定å项步骤:关于土地&gt;选æ©è®¾å®š" 89 <action description="编辑å„ç§ å…³äºŽåœŸåœ° &gt; 选项 ä¸çš„设置"
89 longdescription="Toggle &apos;Safe (no damage)&apos;, &apos;Fly&apos;, and allow other Residents to: &apos;Create Objects&apos;, &apos;Edit Terrain&apos;, &apos;Create Landmarks&apos;, and &apos;Run Scripts&apos; on group-owned land in About Land &gt; Options tab." 90 longdescription="在关于土地 &gt; 选项 æ ‡ç­¾é¡µä¸­åˆ‡æ¢ â€˜å®‰å…¨ (æ— æŸä¼¤)’〠‘飞翔’, 以åŠå…许其他居民在社团所拥有的土地上: â€˜åˆ›å»ºç‰©ä½“â€™ã€ â€˜ç¼–è¾‘åœ°å½¢â€™ã€ â€˜åˆ›é€ åœ°æ ‡â€™ã€ ä»¥åŠ â€˜è¿è¡Œè„šæœ¬â€˜ã€‚"
90 name="land options" value="22" /> 91 name="land options" value="22" />
91 </action_set> 92 </action_set>
92 <action_set 93 <action_set
93 description="这些能力包括å…许组员绕过社团拥有土地的é™åˆ¶çš„æƒåˆ©" 94 description="这些能力包括å…许团员绕过社团拥有土地上的é™åˆ¶çš„æƒé™ã€‚"
94 name="Parcel Powers"> 95 name="Parcel Powers">
95 <action description="永远å…许 &apos;编辑地形&apos;" 96 <action description="永远å…许 &apos;编辑地形&apos;"
96 longdescription="Members in a Role with this Ability can edit terrain on a group-owned parcel, even if it&apos;s turned off in About Land &gt; Options tab." 97 longdescription="具有拥有这项能力的角色的会员å¯ä»¥åœ¨ç¤¾å›¢æ‹¥æœ‰çš„地å—上编辑地形,å³ä½¿ 关于土地 &gt; 选项 中的相关设置被关闭。"
97 name="land allow edit land" value="23" /> 98 name="land allow edit land" value="23" />
98 <action description="永远å…许 &apos;起飞&apos;" 99 <action description="永远å…许 &apos;飞翔&apos;"
99 longdescription="Members in a Role with this Ability can fly on a group-owned parcel, even if it&apos;s turned off in About Land &gt; Options tab." 100 longdescription="具有拥有这项能力的角色的会员å¯ä»¥åœ¨ç¤¾å›¢æ‹¥æœ‰çš„地å—上飞行,å³ä½¿ 关于土地 &gt; 选项 中的相关设置被关闭。"
100 name="land allow fly" value="24" /> 101 name="land allow fly" value="24" />
101 <action description="永远å…许&apos;创建东东&apos;" 102 <action description="永远å…许&apos;创建物体&apos;"
102 longdescription="Members in a Role with this Ability can create objects on a group-owned parcel, even if it&apos;s turned off in About Land &gt; Options tab." 103 longdescription="具有拥有这项能力的角色的会员å¯ä»¥åœ¨ç¤¾å›¢æ‹¥æœ‰çš„地å—上创建物体,å³ä½¿ 关于土地 &gt; 选项 中的相关设置被关闭。"
103 name="land allow create" value="25" /> 104 name="land allow create" value="25" />
104 <action description="永远å…许 &apos;创建地标&apos;" 105 <action description="永远å…许 &apos;创建地标&apos;"
105 longdescription="Members in a Role with this Ability can landmark a group-owned parcel, even if it&apos;s turned off in About Land &gt; Options tab." 106 longdescription="具有拥有这项能力的角色的会员å¯ä»¥åˆ›å»ºç¤¾å›¢æ‹¥æœ‰çš„地å—的地标,å³ä½¿ 关于土地 &gt; 选项 中的相关设置被关闭。"
106 name="land allow landmark" value="26" /> 107 name="land allow landmark" value="26" />
107 <action description="å…许在社团土地上&apos;把家建在这里&apos;" 108 <action description="å…许在社团土地上&apos;把家建在这里&apos;"
108 longdescription="Members in a Role with this Ability can use World menu &gt; Set Home to Here on a group parcel (either land set or deeded to this group)." 109 longdescription="具有拥有这项能力的角色的会员å¯ä»¥åœ¨ç¤¾å›¢çš„土地上使用 世界èœå• &gt; 把家设在这里 (无论是æ献的还是æŒæœ‰çš„)。"
109 name="land allow set home" value="28" /> 110 name="land allow set home" value="28" />
110 </action_set> 111 </action_set>
111 <action_set 112 <action_set
112 description="这些能力包括å…许或é™åˆ¶é€šå¾€ç¤¾å›¢æ‹¥æœ‰çš„土地的æƒåˆ©ï¼ŒåŒ…括冻结和驱é€ç»„员æƒåˆ©ã€‚" 113 description="这些能力包括å…许或é™åˆ¶è®¿é—®ç¤¾å›¢æ‹¥æœ‰çš„土地的æƒé™ï¼ŒåŒ…括冻结和驱é€å±…æ°‘çš„æƒé™ã€‚"
113 name="Parcel Access"> 114 name="Parcel Access">
114 <action description="管ç†å¯è¿›å…¥åœŸåœ°åå•" 115 <action description="管ç†åœŸåœ°å…许进入åå•"
115 longdescription="Manage parcel Access lists in About Land &gt; Access tab." 116 longdescription="在 关于土地 &gt; 访问 标签页下管ç†å…许进入åå•ã€‚"
116 name="land manage allowed" value="29" /> 117 name="land manage allowed" value="29" />
117 <action description="管ç†ä¸å¯è¿›å…¥åœŸåœ°åå•" 118 <action description="管ç†åœŸåœ°ç¦æ­¢è¿›å…¥åå•"
118 longdescription="Manage parcel Ban lists in About Land &gt; Ban tab." 119 longdescription="在 关于土地 &gt; 访问 标签页下管ç†ç¦æ­¢è¿›å…¥åå•ã€‚"
119 name="land manage banned" value="30" /> 120 name="land manage banned" value="30" />
120 <action description="改å˜åœŸåœ°ä¸Š &apos;出售通行è¯...&apos;的设置" 121 <action description="改å˜åœŸåœ°ä¸Š ‘出售通行è¯...’ 的设置"
121 longdescription="Change parcel &apos;Sell passes...&apos; settings in About Land &gt; Access tab." 122 longdescription="在 关于土地 &gt; 访问 æ ‡ç­¾é¡µä¸‹æ”¹å˜ â€˜å‡ºå”®é€šè¡Œè¯...’ 的设置。"
122 name="land manage passes" value="31" /> 123 name="land manage passes" value="31" />
123 <action description="从土地上驱é€æˆ–冻结居民" 124 <action description="从土地上驱é€æˆ–冻结居民"
124 longdescription="Members in a Role with this Ability can handle an unwelcome Resident on a group-owned parcel by right-clicking them, More &gt;, and selecting &apos;Eject...&apos; or &apos;Freeze...&apos;." 125 longdescription="具有拥有这项能力的角色的会员å¯ä»¥å¯¹ä¸å—欢迎的居民使用å³é”®ç‚¹å‡»ï¼Œé€‰æ‹©â€œæ›´å¤š &gt; 冻结...†或者 “驱é€...â€ã€‚"
125 name="land admin" value="32" /> 126 name="land admin" value="32" />
126 </action_set> 127 </action_set>
127 <action_set 128 <action_set
128 description="这些能力包括å…许组员归还东东,定ä½æˆ–移动林登设备的æƒåˆ©ã€‚这对组员清ç†åžƒåœ¾å’Œç¾ŽåŒ–景观时很有用,当这项能力在使用时应该注æ„,因为一旦选择归还东东åŽåˆ™æ— æ³•æ’¤é”€ã€‚" 129 description="这些能力包括å…许组员返还物体ã€æ”¾ç½®æˆ–移动林登æ¤è¢«ã€‚这在组员清ç†åžƒåœ¾å’Œç¾ŽåŒ–景观时很有用,但这些能力在使用时应该注æ„,因为一旦物体归还就无法撤销。"
129 name="Parcel Content"> 130 name="Parcel Content">
130 <action description="归还社团拥有的东东" 131 <action description="归还社团拥有的物体"
131 longdescription="Return objects on group-owned parcels that are owned by the group in About Land &gt; Objects tab." 132 longdescription="在 关于土地 &gt; 物体 标签页下归还社团拥有的土地上社团所拥有的物体。"
132 name="land return group owned" value="48" /> 133 name="land return group owned" value="48" />
133 <action description="归还放置在社团处的东东" 134 <action description="归还放置在社团处的物体"
134 longdescription="Return objects on group-owned parcels that are set to the group in About Land &gt; Objects tab." 135 longdescription="在 关于土地 &gt; 物体 标签页下归还社团土地上设置到社团的物体。"
135 name="land return group set" value="33" /> 136 name="land return group set" value="33" />
136 <action description="归还éžç¤¾å›¢æ‰€æœ‰çš„东东" 137 <action description="归还éžç¤¾å›¢æ‰€æœ‰çš„物体"
137 longdescription="Return objects on group-owned parcels that are non-group in About Land &gt; Objects tab." 138 longdescription="在 关于土地 &gt; 物体 标签页下归还社团土地上éžç¤¾å›¢çš„物体。"
138 name="land return non group" value="34" /> 139 name="land return non group" value="34" />
139 <action description="使用林登æ¤ç‰©ç¾ŽåŒ–土地" 140 <action description="使用林登æ¤ç‰©ç¾ŽåŒ–土地"
140 longdescription="Landscaping ability to place and move Linden trees, plants, and grasses. These items can be found in your inventory&apos;s Library &gt; Objects folder or they can be created via the Build button." 141 longdescription="放置和移动林登树木ã€èŠ±è‰ã€‚这些东西å¯ä»¥åœ¨ä½ çš„库存的 Library &gt; Objects 文件夹下找到,也å¯ä»¥ç”¨ 建造 按钮创建。"
141 name="land gardening" value="35" /> 142 name="land gardening" value="35" />
142 </action_set> 143 </action_set>
143 <action_set 144 <action_set
144 description="These Abilities include powers to deed, modify, and sell group-owned objects. These changes are done in the Edit Tools &gt; General Tab. Right-click an object and Edit to see its settings. " 145 description="这些能力包括转让ã€ä¿®æ”¹å’Œé”€å”®ç¤¾å›¢æ‹¥æœ‰çš„物体的æƒé™ã€‚这些更改在 编辑工具 &gt; 一般标签页中完æˆã€‚å³é”®ç‚¹å‡»ç‰©ä½“选择 ‘编辑’ æ¥æŸ¥çœ‹è®¾ç½®ã€‚"
145 name="Object Management"> 146 name="Object Management">
146 <action description="转让东东给社团" 147 <action description="转让物体给社团"
147 longdescription="Deed objects to group in the Edit Tools &gt; General Tab." 148 longdescription="在 编辑工具 &gt; 一般 标签页下转让物体。"
148 name="object deed" value="36" /> 149 name="object deed" value="36" />
149 <action description="处ç†(移动,å¤åˆ¶ï¼Œä¿®æ”¹)社团所有的东东" 150 <action description="å¤„ç† (移动ã€å¤åˆ¶ã€ä¿®æ”¹) 社团拥有的物体"
150 longdescription="Manipulate (move, copy, modify) group-owned objects in the Edit Tools &gt; General Tab." 151 longdescription="在 编辑工具 &gt; 一般 æ ‡ç­¾é¡µä¸‹å¤„ç† (移动ã€å¤åˆ¶ã€ä¿®æ”¹) 社团拥有的物体。"
151 name="object manipulate" value="38" /> 152 name="object manipulate" value="38" />
152 <action description="把社团拥有的东东èˆç»´å¾…å”®" 153 <action description="把社团拥有的物体设为待售"
153 longdescription="Set group-owned objects for sale in the Edit Tools &gt; General tab." 154 longdescription="在 编辑工具 &gt; 一般 标签页下设定社团拥有的物体予以出售。"
154 name="object set sale" value="39" /> 155 name="object set sale" value="39" />
155 </action_set> 156 </action_set>
156 <action_set 157 <action_set
157 description="这些能力包括è¦æ±‚组员å¿è¿˜ç¤¾å›¢è´·æ¬¾å’ŒèŽ·å¾—社团红利,以åŠé™åˆ¶è¿›å…¥ç¤¾å›¢å¸å·åŽ†å²çºªå½•çš„æƒåˆ©ã€‚" 158 description="这些能力包括è¦æ±‚组员å¿è¿˜ç¤¾å›¢è´·æ¬¾å’ŒèŽ·å¾—社团红利,以åŠé™åˆ¶è®¿é—®ç¤¾å›¢å¸å·åŽ†å²çºªå½•çš„æƒåˆ©ã€‚"
158 name="Accounting"> 159 name="Accounting">
159 <action description="å¿è¿˜ç¤¾å›¢å€ºåŠ¡/获得社团红利" 160 <action description="å¿è¿˜ç¤¾å›¢å€ºåŠ¡/获得社团红利"
160 longdescription="Members in a Role with this Ability will automatically pay group liabilities and receive group dividends. This means they will receive a portion of group-owned land sales which are distributed daily, as well as contribute towards things like parcel listing fees. " 161 longdescription="具有拥有这项能力的角色的会员将会自动社团债务åŠå–得社团红利。这æ„味ç€ä»–们将æ¯å¤©æ”¶åˆ°ç¤¾å›¢åœŸåœ°é”€å”®é¢çš„一部分,以åŠä¸ºä¾‹å¦‚地å—刊登费等的东西æŽè…°åŒ…。"
161 name="accounting accountable" value="40" /> 162 name="accounting accountable" value="40" />
162 </action_set> 163 </action_set>
163 <action_set 164 <action_set
164 description="这些能力包括å…许组员å‘é€ï¼ŒæŽ¥å—å’Œæµè§ˆç¤¾å›¢é€šçŸ¥çš„æƒåˆ©" 165 description="这些能力包括å…许组员å‘é€ï¼ŒæŽ¥å—å’Œæµè§ˆç¤¾å›¢é€šçŸ¥çš„æƒåˆ©"
165 name="Notices"> 166 name="Notices">
166 <action description="å‘é€é€šçŸ¥" 167 <action description="å‘é€é€šçŸ¥"
167 longdescription="Members in a Role with this Ability can send Notices in Group Information &gt; Notices tab." 168 longdescription="具有拥有这项能力的角色的会员å¯ä»¥åœ¨ ç¤¾å›¢ä¿¡æ¯ &gt; 通知 标签页中å‘é€é€šçŸ¥ã€‚"
168 name="notices send" value="42" /> 169 name="notices send" value="42" />
169 <action description="接å—通知/回顾原æ¥çš„通知" 170 <action description="接å—通知/回顾原æ¥çš„通知"
170 longdescription="Members in a Role with this Ability can receive Notices and view past Notices in Group Information &gt; Notices tab." 171 longdescription="具有拥有这项能力的角色的会员å¯ä»¥åœ¨ ç¤¾å›¢ä¿¡æ¯ &gt; 通知 标签页中接å—和查看以å‰çš„通知。"
171 name="notices receive" value="43" /> 172 name="notices receive" value="43" />
172 </action_set> 173 </action_set>
173 <action_set 174 <action_set
174 description="这些能力包括å…许组员æ出议案,为议案投票,和æµè§ˆæŠ•ç¥¨åŽ†å²çºªå½•çš„æƒåˆ©" 175 description="这些能力包括å…许组员æ出议案,为议案投票,和æµè§ˆæŠ•ç¥¨åŽ†å²çºªå½•çš„æƒåˆ©"
175 name="Proposals"> 176 name="Proposals">
176 <action description="创建æ议本" 177 <action description="创建议案"
177 longdescription="Members in a Role with this Ability can create proposals to be voted on in Group Information &gt; Proposals tab." 178 longdescription="具有拥有这项能力的角色的会员å¯ä»¥åœ¨ ç¤¾å›¢ä¿¡æ¯ &gt; 议案 标签页中创建议案以供投票。"
178 name="proposal start" value="44" /> 179 name="proposal start" value="44" />
179 <action description="为议案投票" 180 <action description="为议案投票"
180 longdescription="Members in a Role with this Ability can vote on proposals in Group Information &gt; Proposals tab." 181 longdescription="具有拥有这项能力的角色的会员å¯ä»¥åœ¨ ç¤¾å›¢ä¿¡æ¯ &gt; 议案 标签页中对议案投票。"
181 name="proposal vote" value="45" /> 182 name="proposal vote" value="45" />
182 </action_set> 183 </action_set>
184 <action_set
185 description="这些能力包括å…许或é™åˆ¶ç¤¾å›¢èŠå¤©ä¼šè¯åŠç¤¾å›¢è¯­éŸ³ä¼šè¯çš„æƒé™ã€‚"
186 name="Chat">
187 <action
188 description="加入社团èŠå¤©"
189 longdescription="具有拥有这项能力的角色的会员å¯ä»¥åŠ å…¥ç¤¾å›¢æ–‡å­—或语音èŠå¤©ã€‚"
190 name="join group chat"
191 value="16" />
192 <action
193 description="加入社团语音èŠå¤©"
194 longdescription="具有拥有这项能力的角色的会员å¯ä»¥åŠ å…¥ç¤¾å›¢è¯­éŸ³èŠå¤©ä¼šè¯ã€‚注æ„: 需è¦åŠ å…¥ç¤¾å›¢èŠå¤©èƒ½åŠ› æ‰èƒ½è®¿é—®è¯­éŸ³èŠå¤©ä¼šè¯ã€‚"
195 name="join voice chat"
196 value="27" />
197 <action
198 description="管ç†ç¤¾å›¢èŠå¤©"
199 longdescription="具有拥有这项能力的角色的会员å¯ä»¥æŽ§åˆ¶ç¤¾å›¢æ–‡å­—和语音èŠå¤©çš„访问,并且å¯ä»¥ç®¡ç†ç¤¾å›¢å’Œè¯­éŸ³èŠå¤©ã€‚"
200 name="moderate group chat"
201 value="37" />
202 </action_set>
203
183</role_actions> 204</role_actions>
diff --git a/linden/indra/newview/skins/default/xui/zh/strings.xml b/linden/indra/newview/skins/default/xui/zh/strings.xml
index 27ecfdb..9d3dc2f 100644
--- a/linden/indra/newview/skins/default/xui/zh/strings.xml
+++ b/linden/indra/newview/skins/default/xui/zh/strings.xml
@@ -1,2 +1,171 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<strings /> 2<!-- 该文件包括从å‰å†™æ­»åœ¨ä»£ç ä¸­çš„字符串。
3 仅用于ä¸å±žäºŽæµ®åŠ¨æ¡†çš„那些。
4 例如在化身èŠå¤©æ°”泡中的字符串,
5 以åŠä»Žä¸€ä¸ªéƒ¨ä»¶è¿”回而在许多地方å¯èƒ½ä¼šå‡ºçŽ°çš„那些。-->
6<strings>
7 <!--登录-->
8 <string name="LoginInProgress">正在登录。 [APP_NAME] å¯èƒ½ä¼šçœ‹ä¸ŠåŽ»æ²¡æœ‰å应。 请ç¨å€™ã€‚</string>
9 <string name="LoginAuthenticating">认è¯ä¸­</string>
10 <string name="LoginMaintenance">正在进行å¸æˆ·ç»´æŠ¤...</string>
11 <string name="LoginAttempt">上次登录å°è¯•å¤±è´¥ã€‚正在登录,第 [NUMBER] 次å°è¯•</string>
12 <string name="LoginPrecaching">世界加载中...</string>
13 <string name="LoginInitializingBrowser">正在åˆå§‹åŒ–内置æµè§ˆå™¨...</string>
14 <string name="LoginInitializingMultimedia">正在åˆå§‹åŒ–多媒体...</string>
15 <string name="LoginVerifyingCache">正在验è¯ç¼“存文件 (å¯èƒ½éœ€è¦ 60-90 秒)...</string>
16 <string name="LoginProcessingResponse">处ç†å›žå¤...</string>
17 <string name="LoginInitializingWorld">正在åˆå§‹åŒ–世界...</string>
18 <string name="LoginDecodingImages">正在解ç å›¾åƒ...</string>
19 <string name="LoginInitializingQuicktime">正在åˆå§‹åŒ– QuickTime...</string>
20 <string name="LoginQuicktimeNotFound">没有找到 QuickTime - ä¸èƒ½åˆå§‹åŒ–。</string>
21 <string name="LoginQuicktimeOK">QuickTime åˆå§‹åŒ–æˆåŠŸã€‚</string>
22 <string name="LoginWaitingForRegionHandshake">等待区域æ¡æ‰‹ä¿¡å·â€¦â€¦...</string>
23 <string name="LoginConnectingToRegion">正在连接到区域...</string>
24 <string name="LoginDownloadingClothing">下载装æŸä¸­...</string>
25 <string name="LoginFailedNoNetwork">网络错误: 无法建立连接,请检查您的网络连接。</string>
26
27 <!-- 断开连接 -->
28 <string name="AgentLostConnection">
29 该区域å¯èƒ½å­˜åœ¨é—®é¢˜ã€‚请检查您到互è”网的连接。
30 </string>
31 <!-- 工具æ示, llhoverview.cpp. -->
32 <string name="TooltipNoName">(没有åå­—)</string> <!-- 物体没有åå­— -->
33 <string name="TooltipOwner">主人:</string> <!-- 接ç€æ˜¯æ‹¥æœ‰è€…çš„åå­— -->
34 <string name="TooltipPublic">公共</string> <!-- 对象的公共æƒé™ -->
35 <string name="TooltipIsGroup">(社团)</string> <!-- 该文字å‰æ˜¯ç¤¾å›¢å称 -->
36 <string name="TooltipFlagScript">脚本</string>
37 <string name="TooltipFlagPhysics">物ç†</string>
38 <string name="TooltipFlagTouch">触摸</string>
39 <string name="TooltipFlagL$">L$</string>
40 <string name="TooltipFlagDropInventory">放置物体</string>
41 <string name="TooltipFlagPhantom">幻影</string>
42 <string name="TooltipFlagTemporary">æš‚æ—¶</string>
43 <string name="TooltipFlagRightClickMenu">(点击å³é”®, 打开èœå•)</string>
44 <string name="TooltipFreeToCopy">å¯ä»»æ„å¤åˆ¶</string>
45 <string name="TooltipForSaleL$">å¾…å”®: L$[AMOUNT]</string> <!-- L$ version -->
46 <string name="TooltipForSaleMsg">å¾…å”®: [MESSAGE]</string> <!-- Message (RetrievingData) -->
47 <string name="TooltipFlagGroupBuild">社团å¯å»ºé€ </string>
48 <string name="TooltipFlagNoBuild">ä¸å¯å»ºé€ </string>
49 <string name="TooltipFlagNoEdit">社团å¯å»ºé€ </string>
50 <string name="TooltipFlagNotSafe">ä¸å®‰å…¨</string><!-- damage area -->
51 <string name="TooltipFlagNoFly">ä¸å¯é£žè¡Œ</string>
52 <string name="TooltipFlagGroupScripts">仅社团脚本</string>
53 <string name="TooltipFlagNoScripts">无脚本</string>
54 <string name="TooltipMustSingleDrop">ä»…å¯ä»¥æ‹–动å•ä¸ªç‰©å“到这里</string>
55 <string name="TooltipLand">土地: </string>
56
57 <!-- Indicates that an avatar's name or other similar datum is being retrieved. General usage. -->
58 <string name="RetrievingData">获å–中...</string>
59 <string name="ReleaseNotes">更新注释</string>
60 <!-- Indicates something is being loaded. Maybe should be merged with RetrievingData -->
61 <string name="LoadingData">加载中...</string>
62
63
64 <!-- namecache -->
65 <!-- 化身å称: 为 LLUUID::null 显示的字符串 -->
66 <string name="AvatarNameNobody">(没有人)</string>
67
68 <!-- 化身å称: å–å¾—å称时显示的文字-->
69 <string name="AvatarNameWaiting">(等待中)</string>
70
71 <!-- 化身å称: 替代 AvatarNameFetching 显示的文字, 彩蛋。 -->
72 <string name="AvatarNameHippos">(是河马)</string>
73
74 <!-- 社团å称: 为 LLUUID::null 显示的字符串 -->
75 <string name="GroupNameNone">(无社团)</string>
76
77 <!-- Asset errors. Used in llassetstorage.cpp, translation from error code to error message. -->
78 <string name="AssetErrorNone">没有错误</string>
79 <string name="AssetErrorRequestFailed">资产请求: 失败</string>
80 <string name="AssetErrorNonexistentFile">资产请求: ä¸å­˜åœ¨çš„文件</string>
81 <string name="AssetErrorNotInDatabase">资产请求: æ•°æ®åº“中未找到资产</string>
82 <string name="AssetErrorEOF">文件末端</string>
83 <string name="AssetErrorCannotOpenFile">无法打开文件</string>
84 <string name="AssetErrorFileNotFound">文件未找到</string>
85 <string name="AssetErrorTCPTimeout">文件传输超时</string>
86 <string name="AssetErrorCircuitGone">通路没有了</string>
87 <string name="AssetErrorUnknownStatus">未知状æ€</string>
88
89 <!-- llvoavatar. 显示在化身的èŠå¤©æ°”çƒä¸­ -->
90 <string name="AvatarEditingApparance">(正在编辑外观)</string>
91 <string name="AvatarAway">离开</string>
92 <string name="AvatarBusy">忙碌</string>
93 <string name="AvatarMuted">å·²å±è”½</string>
94
95 <!-- animations -->
96 <string name="anim_express_afraid">害怕</string>
97 <string name="anim_express_anger">生气</string>
98 <string name="anim_away">离开</string>
99 <string name="anim_backflip">åŽç©ºç¿»</string>
100 <string name="anim_express_laugh">Belly Laugh</string>
101 <string name="anim_express_toothsmile">BigSmile</string>
102 <string name="anim_blowkiss">飞å»</string>
103 <string name="anim_express_bored">æ— èŠ</string>
104 <string name="anim_bow">鞠躬</string>
105 <string name="anim_clap">鼓掌</string>
106 <string name="anim_courtbow">宫廷å¼éž èº¬</string>
107 <string name="anim_express_cry">å“­æ³£</string>
108 <string name="anim_dance1">舞蹈 1</string>
109 <string name="anim_dance2">舞蹈 2</string>
110 <string name="anim_dance3">舞蹈 3</string>
111 <string name="anim_dance4">舞蹈 4</string>
112 <string name="anim_dance5">舞蹈 5</string>
113 <string name="anim_dance6">舞蹈 6</string>
114 <string name="anim_dance7">舞蹈 7</string>
115 <string name="anim_dance8">舞蹈 8</string>
116 <string name="anim_express_disdain">Disdain</string>
117 <string name="anim_drink">å–</string>
118 <string name="anim_express_embarrased">害羞</string>
119 <string name="anim_angry_fingerwag">摇手指</string>
120 <string name="anim_fist_pump">Fist Pump</string>
121 <string name="anim_yoga_float">浮空瑜伽</string>
122 <string name="anim_express_frown">皱眉</string>
123 <string name="anim_impatient">ä¸è€çƒ¦</string>
124 <string name="anim_jumpforjoy">高兴得跳起æ¥</string>
125 <string name="anim_kissmybutt">亲我的å±è‚¡å§</string>
126 <string name="anim_express_kiss">亲å»</string>
127 <string name="anim_laugh_short">大笑</string>
128 <string name="anim_musclebeach">肌肉海滩</string>
129 <string name="anim_no_unhappy">ä¸è¦ (ä¸é«˜å…´åœ°)</string>
130 <string name="anim_no_head">ä¸è¦</string>
131 <string name="anim_nyanya">å–µ~å–µ~å–µ~</string>
132 <string name="anim_punch_onetwo">One-Two Punch</string>
133 <string name="anim_express_open_mouth">张开嘴</string>
134 <string name="anim_peace">和平</string>
135 <string name="anim_point_you">指别人</string>
136 <string name="anim_point_me">指自己</string>
137 <string name="anim_punch_l">左拳</string>
138 <string name="anim_punch_r">å³æ‹³</string>
139 <string name="anim_rps_countdown">RPS 计数</string>
140 <string name="anim_rps_paper">RPS 布</string>
141 <string name="anim_rps_rock">RPS 石头</string>
142 <string name="anim_rps_scissors">RPS 剪刀</string>
143 <string name="anim_express_repulsed">Repulsed</string>
144 <string name="anim_kick_roundhouse_r">Roundhouse Kick</string>
145 <string name="anim_express_sad">伤心</string>
146 <string name="anim_salute">敬礼</string>
147 <string name="anim_shout">å–Šå«</string>
148 <string name="anim_express_shrug">耸肩</string>
149 <string name="anim_express_smile">微笑</string>
150 <string name="anim_smoke_idle">å¸çƒŸ 空闲</string>
151 <string name="anim_smoke_inhale">å¸çƒŸ å¸æ°”</string>
152 <string name="anim_smoke_throw_down">å¸çƒŸ 扔下去</string>
153 <string name="anim_express_surprise">åƒæƒŠ</string>
154 <string name="anim_sword_strike_r">剑刺</string>
155 <string name="anim_angry_tantrum">Tantrum</string>
156 <string name="anim_express_tongue_out">伸舌头</string>
157 <string name="anim_hello">招手</string>
158 <string name="anim_whisper">æ‚„æ‚„è¯</string>
159 <string name="anim_whistle">å¹å£å“¨</string>
160 <string name="anim_express_wink">眨眼</string>
161 <string name="anim_wink_hollywood">眨眼 (好莱åžå¼)</string>
162 <string name="anim_express_worry">担心</string>
163 <string name="anim_yes_happy">是的 (高兴地)</string>
164 <string name="anim_yes_head">是的</string>
165 <string name="texture_loading">加载中...</string>
166 <string name="worldmap_offline">脱机</string>
167
168 <!-- Chat -->
169 <string name="whisper">å°å£°è¯´:</string>
170 <string name="shout">大喊:</string>
171</strings>
diff --git a/linden/indra/newview/skins/default/xui/zh/teleport_strings.xml b/linden/indra/newview/skins/default/xui/zh/teleport_strings.xml
new file mode 100644
index 0000000..95a0b54
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/zh/teleport_strings.xml
@@ -0,0 +1,109 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<teleport_messages>
3 <message_set
4 name="errors">
5 <message
6 name="invalid_tport">
7 处ç†æ‚¨çš„瞬间移动请求时å‘生错误。您å¯èƒ½éœ€è¦é‡æ–°ç™»å…¥ä»¥åŽæ‰èƒ½
8瞬间移动。如果您ä»ç»§ç»­é‡åˆ°è¿™æ¡æ¶ˆæ¯ï¼Œè¯·åˆ°ä»¥ä¸‹åœ°å€å‚考技术支æŒ
9常è§é—®é¢˜:
10www.secondlife.com/support
11 </message>
12 <message
13 name="invalid_region_handoff">
14 处ç†æ‚¨çš„区域å˜æ¢æ—¶å‘生错误。您å¯èƒ½éœ€è¦é‡æ–°ç™»å…¥ä»¥åŽæ‰èƒ½
15瞬间移动。如果您ä»ç»§ç»­é‡åˆ°è¿™æ¡æ¶ˆæ¯ï¼Œè¯·åˆ°ä»¥ä¸‹åœ°å€å‚考技术支æŒ
16常è§é—®é¢˜:
17www.secondlife.com/support
18 </message>
19 <message
20 name="blocked_tport">
21 抱歉,当å‰ä¸å…许瞬间移动。请ç¨å€™å†è¯•ã€‚
22如果您ä»ç„¶ä¸èƒ½çž¬é—´ç§»åŠ¨ï¼Œè¯·ç™»å‡ºåŽé‡æ–°ç™»å½•è§£å†³é—®é¢˜ã€‚
23 </message>
24 <message
25 name="nolandmark_tport">
26 抱歉,系统无法找到地标目的地。
27 </message>
28 <message
29 name="timeout_tport">
30 抱歉,系统无法完æˆçž¬é—´ç§»åŠ¨è¿žæŽ¥ã€‚
31请ç¨å€™å†è¯•ã€‚
32 </message>
33 <message
34 name="noaccess_tport">
35 抱歉,您ä¸èƒ½è®¿é—®çž¬é—´ç§»åŠ¨ç›®æ ‡ã€‚
36 </message>
37 <message
38 name="missing_attach_tport">
39 您的装备还没有到é½ã€‚请å†ç­‰å‡ ç§’钟,或者登出åŽé‡æ–°ç™»å½•ä»¥åŽ
40å†è¯•ç€çž¬é—´ç§»åŠ¨ã€‚
41 </message>
42 <message
43 name="too_many_uploads_tport">
44 该区域内的资产队列当å‰å µå¡žï¼Œæ‰€ä»¥æ‚¨çš„瞬间移动请求将ä¸èƒ½æŒ‰æ—¶å®Œæˆã€‚
45请ç¨å€™å†è¯•ï¼Œæˆ–å‰å¾€è¾ƒç©ºé—²çš„区域å†è¯•ã€‚
46 </message>
47 <message
48 name="expired_tport">
49 抱歉,系统无法按时地完æˆæ‚¨çš„瞬间移动请求。请ç¨å€™å†è¯•ã€‚
50 </message>
51 <message
52 name="expired_region_handoff">
53 抱歉,系统无法按时地完æˆæ‚¨çš„区域å˜æ¢è¯·æ±‚。请ç¨å€™å†è¯•ã€‚
54 </message>
55 <message
56 name="no_host">
57 无法找到瞬间移动目标。目标å¯èƒ½æš‚æ—¶ä¸å¯ç”¨ï¼Œæˆ–者已ä¸å­˜åœ¨ã€‚请ç¨åŽå†è¯•ã€‚
58 </message>
59 <message
60 name="no_inventory_host">
61 库存系统当å‰ä¸å¯ç”¨ã€‚
62 </message>
63 </message_set>
64 <message_set
65 name="progress">
66 <message
67 name="sending_dest">
68 正在å‘é€åˆ°ç›®æ ‡åœ°ç‚¹ã€‚
69 </message>
70 <message
71 name="redirecting">
72 正在é‡å®šå‘到新的地点。
73 </message>
74 <message
75 name="relaying">
76 正在转达到目标地点。
77 </message>
78 <message
79 name="sending_home">
80 å‘é€å®¶ä½ç½®è¯·æ±‚。
81 </message>
82 <message
83 name="sending_landmark">
84 正在å‘é€åœ°æ ‡ä½ç½®è¯·æ±‚。
85 </message>
86 <message
87 name="completing">
88 正在完æˆçž¬é—´ç§»åŠ¨ã€‚
89 </message>
90 <message
91 name="resolving">
92 正在解æžç›®æ ‡ã€‚
93 </message>
94 <message
95 name="contacting">
96 正在è”系新的区域。
97 </message>
98 <message
99 name="arriving">
100 正在抵达……
101 </message>
102 <message
103 name="requesting">
104 正在请求瞬间移动……
105 </message>
106 </message_set>
107</teleport_messages>
108
109
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml
index ce25d2b..bbabfaa 100644
--- a/linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml
+++ b/linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml
@@ -481,13 +481,17 @@ Go to World menu > About Land or select another parcel to show its details.
481 </text> 481 </text>
482 <check_box bottom="-40" enabled="true" follows="left|top" font="SansSerifSmall" 482 <check_box bottom="-40" enabled="true" follows="left|top" font="SansSerifSmall"
483 height="16" initial_value="false" label="Edit Terrain" left="14" 483 height="16" initial_value="false" label="Edit Terrain" left="14"
484 mouse_opaque="true" name="edit land check" radio_style="false" width="268" /> 484 mouse_opaque="true" name="edit land check" radio_style="false"
485 tool_tip="If checked, anyone can terraform your land. It is best to leave this unchecked, as you can always edit your own land."
486 width="268" />
485 <check_box bottom="-60" enabled="true" follows="left|top" font="SansSerifSmall" 487 <check_box bottom="-60" enabled="true" follows="left|top" font="SansSerifSmall"
486 height="16" initial_value="false" label="Create Landmarks" left="14" 488 height="16" initial_value="false" label="Create Landmarks" left="14"
487 mouse_opaque="true" name="check landmark" radio_style="false" width="268" /> 489 mouse_opaque="true" name="check landmark" radio_style="false" width="268" />
488 <check_box bottom="-80" enabled="true" follows="left|top" font="SansSerifSmall" 490 <check_box bottom="-80" enabled="true" follows="left|top" font="SansSerifSmall"
489 height="16" initial_value="false" label="Fly" left="14" mouse_opaque="true" 491 height="16" initial_value="false" label="Fly" left="14" mouse_opaque="true"
490 name="check fly" radio_style="false" width="268" /> 492 name="check fly" radio_style="false"
493 tool_tip="If checked, Residents can fly on your land. If unchecked, they can only fly into and over your land."
494 width="268" />
491 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 495 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
492 bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top" 496 bottom="-40" drop_shadow_visible="true" enabled="true" follows="left|top"
493 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="178" 497 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="178"
@@ -538,11 +542,13 @@ Go to World menu > About Land or select another parcel to show its details.
538 </text> 542 </text>
539 <check_box bottom="-120" enabled="true" follows="left|top" font="SansSerifSmall" 543 <check_box bottom="-120" enabled="true" follows="left|top" font="SansSerifSmall"
540 height="16" initial_value="false" label="Safe (no damage)" left="14" 544 height="16" initial_value="false" label="Safe (no damage)" left="14"
541 mouse_opaque="true" name="check safe" radio_style="false" width="268" /> 545 mouse_opaque="true" name="check safe" radio_style="false"
546 tool_tip="If checked, sets the land to Safe, disabling damage combat. If cleared, damage combat is enabled."
547 width="268" />
542 <check_box bottom="-120" enabled="true" follows="left|top" font="SansSerifSmall" 548 <check_box bottom="-120" enabled="true" follows="left|top" font="SansSerifSmall"
543 height="16" initial_value="false" label="Restrict Pushing" left="178" 549 height="16" initial_value="false" label="No Pushing" left="178"
544 mouse_opaque="true" name="PushRestrictCheck" radio_style="false" 550 mouse_opaque="true" name="PushRestrictCheck" radio_style="false"
545 tool_tip="llPushObject will only work through parcel owner scripts or on scripts where the pushee is the script owner." 551 tool_tip="Prevents scripts from pushing. Checking this option may be useful for preventing disruptive behavior on your land."
546 width="119" /> 552 width="119" />
547 <check_box bottom="-140" enabled="true" follows="left|top" font="SansSerifSmall" 553 <check_box bottom="-140" enabled="true" follows="left|top" font="SansSerifSmall"
548 height="16" initial_value="false" 554 height="16" initial_value="false"
@@ -622,7 +628,7 @@ Go to World menu > About Land or select another parcel to show its details.
622 <button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall" 628 <button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall"
623 halign="center" height="16" label="Set" label_selected="Set" left="236" 629 halign="center" height="16" label="Set" label_selected="Set" left="236"
624 mouse_opaque="true" name="Set" scale_image="true" 630 mouse_opaque="true" name="Set" scale_image="true"
625 tool_tip="Set the landing point to your avatar&apos;s location. It must be inside this land parcel." 631 tool_tip="Sets the landing point where visitors arrive. Sets to your avatar&apos;s location inside this parcel."
626 width="50" /> 632 width="50" />
627 <button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall" 633 <button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall"
628 halign="center" height="16" label="Clear" label_selected="Clear" left="291" 634 halign="center" height="16" label="Clear" label_selected="Clear" left="291"
@@ -650,10 +656,10 @@ Go to World menu > About Land or select another parcel to show its details.
650 </combo_item> 656 </combo_item>
651 </combo_box> 657 </combo_box>
652 <string name="push_restrict_text"> 658 <string name="push_restrict_text">
653 Restrict Pushing 659 No Pushing
654 </string> 660 </string>
655 <string name="push_restrict_region_text"> 661 <string name="push_restrict_region_text">
656 Restrict Pushing (Region Override) 662 No Pushing (Region Override)
657 </string> 663 </string>
658 </panel> 664 </panel>
659 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom" 665 <panel border="true" bottom="-349" enabled="true" follows="left|top|right|bottom"
diff --git a/linden/indra/newview/skins/silver/xui/en-us/panel_status_bar.xml b/linden/indra/newview/skins/silver/xui/en-us/panel_status_bar.xml
index 1def3fb..cef04fd 100644
--- a/linden/indra/newview/skins/silver/xui/en-us/panel_status_bar.xml
+++ b/linden/indra/newview/skins/silver/xui/en-us/panel_status_bar.xml
@@ -75,7 +75,7 @@
75 halign="center" height="18" image_selected="status_no_push.tga" 75 halign="center" height="18" image_selected="status_no_push.tga"
76 image_unselected="status_no_push.tga" label="" label_selected="" left="521" 76 image_unselected="status_no_push.tga" label="" label_selected="" left="521"
77 mouse_opaque="true" name="restrictpush" scale_image="false" 77 mouse_opaque="true" name="restrictpush" scale_image="false"
78 tool_tip="llPushObject restricted" visible="false" width="24" /> 78 tool_tip="No Pushing" visible="false" width="24" />
79 <button bottom="-22" enabled="true" follows="right|bottom" font="SansSerif" 79 <button bottom="-22" enabled="true" follows="right|bottom" font="SansSerif"
80 halign="center" height="18" image_selected="status_no_voice.tga" 80 halign="center" height="18" image_selected="status_no_voice.tga"
81 image_unselected="status_no_voice.tga" label="" label_selected="" 81 image_unselected="status_no_voice.tga" label="" label_selected=""
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index 9aeb31e..5ab311a 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -6,7 +6,7 @@
6# 6#
7# $LicenseInfo:firstyear=2006&license=viewergpl$ 7# $LicenseInfo:firstyear=2006&license=viewergpl$
8# 8#
9# Copyright (c) 2006-2008, Linden Research, Inc. 9# Copyright (c) 2006-2009, Linden Research, Inc.
10# 10#
11# Second Life Viewer Source Code 11# Second Life Viewer Source Code
12# The source code in this file ("Source Code") is provided by Linden Lab 12# The source code in this file ("Source Code") is provided by Linden Lab
@@ -51,7 +51,6 @@ class ViewerManifest(LLManifest):
51 self.path("*.pem") 51 self.path("*.pem")
52 self.path("*.ini") 52 self.path("*.ini")
53 self.path("*.xml") 53 self.path("*.xml")
54 self.path("*.vp")
55 self.path("*.db2") 54 self.path("*.db2")
56 55
57 # include the entire shaders directory recursively 56 # include the entire shaders directory recursively
@@ -66,7 +65,6 @@ class ViewerManifest(LLManifest):
66 self.path("*.tga") 65 self.path("*.tga")
67 self.end_prefix("character") 66 self.end_prefix("character")
68 67
69
70 # Include our fonts 68 # Include our fonts
71 if self.prefix(src="fonts"): 69 if self.prefix(src="fonts"):
72 self.path("LiberationSans-Bold.ttf") 70 self.path("LiberationSans-Bold.ttf")
@@ -100,7 +98,6 @@ class ViewerManifest(LLManifest):
100 98
101 self.end_prefix("skins") 99 self.end_prefix("skins")
102 100
103 self.path("lsl_guide.html")
104 self.path("gpu_table.txt") 101 self.path("gpu_table.txt")
105 102
106 103
@@ -137,6 +134,8 @@ class ViewerManifest(LLManifest):
137 # whether or not this is present 134 # whether or not this is present
138 return self.args.get('login_channel') 135 return self.args.get('login_channel')
139 136
137 def grid(self):
138 return self.args['grid']
140 def channel(self): 139 def channel(self):
141 return self.args['channel'] 140 return self.args['channel']
142 def channel_unique(self): 141 def channel_unique(self):
@@ -149,22 +148,33 @@ class ViewerManifest(LLManifest):
149 def flags_list(self): 148 def flags_list(self):
150 """ Convenience function that returns the command-line flags 149 """ Convenience function that returns the command-line flags
151 for the grid""" 150 for the grid"""
152 channel_flags = '' 151
152 # Set command line flags relating to the target grid
153 grid_flags = '' 153 grid_flags = ''
154 if not self.default_grid(): 154 if not self.default_grid():
155 if self.default_channel(): 155 grid_flags = "--grid %(grid)s "\
156 # beta grid viewer 156 "--helperuri http://preview-%(grid)s.secondlife.com/helpers/" %\
157 channel_flags = '--settings settings_beta.xml' 157 {'grid':self.grid()}
158 grid_flags = "--grid %(grid)s --helperuri http://preview-%(grid)s.secondlife.com/helpers/" % {'grid':self.args['grid']}
159 158
160 if not self.default_channel(): 159 # set command line flags for channel
161 # some channel on some grid 160 channel_flags = ''
162 channel_flags = '--settings settings_%s.xml --channel "%s"' % (self.channel_lowerword(), self.channel()) 161 if self.login_channel() and self.login_channel() != self.channel():
163 elif self.login_channel():
164 # Report a special channel during login, but use default 162 # Report a special channel during login, but use default
165 channel_flags = '--channel "%s"' % (self.login_channel()) 163 channel_flags = '--channel "%s"' % (self.login_channel())
166 164 elif not self.default_channel():
167 return " ".join((channel_flags, grid_flags)).strip() 165 channel_flags = '--channel "%s"' % self.channel()
166
167 # Deal with settings
168 setting_flags = ''
169 if not self.default_channel() or not self.default_grid():
170 if self.default_grid():
171 setting_flags = '--settings settings_%s.xml'\
172 % self.channel_lowerword()
173 else:
174 setting_flags = '--settings settings_%s_%s.xml'\
175 % (self.grid(), self.channel_lowerword())
176
177 return " ".join((channel_flags, grid_flags, setting_flags)).strip()
168 178
169 179
170class WindowsManifest(ViewerManifest): 180class WindowsManifest(ViewerManifest):
@@ -210,9 +220,19 @@ class WindowsManifest(ViewerManifest):
210 self.path("alut.dll") 220 self.path("alut.dll")
211 self.end_prefix() 221 self.end_prefix()
212 222
213 # Mozilla appears to force a dependency on these files so we need to ship it (CP) 223 # Mozilla appears to force a dependency on these files so we need to ship it (CP) - updated to vc8 versions (nyx)
214 self.path("msvcr71.dll") 224 # These need to be installed as a SxS assembly, currently a 'private' assembly.
215 self.path("msvcp71.dll") 225 # See http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx
226 if self.prefix(src=self.args['configuration'], dst=""):
227 if self.args['configuration'] == 'Debug':
228 self.path("msvcr80d.dll")
229 self.path("msvcp80d.dll")
230 self.path("Microsoft.VC80.DebugCRT.manifest")
231 else:
232 self.path("msvcr80.dll")
233 self.path("msvcp80.dll")
234 self.path("Microsoft.VC80.CRT.manifest")
235 self.end_prefix()
216 236
217 # Mozilla runtime DLLs (CP) 237 # Mozilla runtime DLLs (CP)
218 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""): 238 if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
@@ -241,6 +261,11 @@ class WindowsManifest(ViewerManifest):
241 self.path("res/*/*") 261 self.path("res/*/*")
242 self.end_prefix() 262 self.end_prefix()
243 263
264 # Mozilla hack to get it to accept newer versions of msvc*80.dll than are listed in manifest
265 # necessary as llmozlib2-vc80.lib refers to an old version of msvc*80.dll - can be removed when new version of llmozlib is built - Nyx
266 # The config file name needs to match the exe's name.
267 self.path("SecondLife.exe.config", dst=self.final_exe() + ".config")
268
244 # Vivox runtimes 269 # Vivox runtimes
245 if self.prefix(src="vivox-runtime/i686-win32", dst=""): 270 if self.prefix(src="vivox-runtime/i686-win32", dst=""):
246 # self.path("alut.dll") 271 # self.path("alut.dll")
@@ -386,7 +411,7 @@ class WindowsManifest(ViewerManifest):
386 "%%INSTALL_FILES%%":self.nsi_file_commands(True), 411 "%%INSTALL_FILES%%":self.nsi_file_commands(True),
387 "%%DELETE_FILES%%":self.nsi_file_commands(False)}) 412 "%%DELETE_FILES%%":self.nsi_file_commands(False)})
388 413
389 NSIS_path = 'C:\\Program Files\\NSIS\\makensis.exe' 414 NSIS_path = 'C:\\Program Files\\NSIS\\Unicode\\makensis.exe'
390 self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile)) 415 self.run_command('"' + proper_windows_path(NSIS_path) + '" ' + self.dst_path_of(tempfile))
391 # self.remove(self.dst_path_of(tempfile)) 416 # self.remove(self.dst_path_of(tempfile))
392 self.created_path(self.dst_path_of(installer_file)) 417 self.created_path(self.dst_path_of(installer_file))
@@ -632,9 +657,6 @@ class DarwinManifest(ViewerManifest):
632 if not os.path.exists (self.src_path_of(dmg_template)): 657 if not os.path.exists (self.src_path_of(dmg_template)):
633 dmg_template = os.path.join ('installers', 'darwin', 'release-dmg') 658 dmg_template = os.path.join ('installers', 'darwin', 'release-dmg')
634 659
635 # To reinstate the linden scripting guide, add this to the list below:
636 # "lsl_guide.html":"Linden Scripting Language Guide.html",
637
638 for s,d in {self.get_dst_prefix():app_name + ".app", 660 for s,d in {self.get_dst_prefix():app_name + ".app",
639 os.path.join(dmg_template, "_VolumeIcon.icns"): ".VolumeIcon.icns", 661 os.path.join(dmg_template, "_VolumeIcon.icns"): ".VolumeIcon.icns",
640 os.path.join(dmg_template, "background.jpg"): "background.jpg", 662 os.path.join(dmg_template, "background.jpg"): "background.jpg",
@@ -690,13 +712,6 @@ class LinuxManifest(ViewerManifest):
690 712
691 713
692 def package_finish(self): 714 def package_finish(self):
693 # stripping all the libs removes a few megabytes from the end-user package
694 for s,d in self.file_list:
695 if re.search("lib/lib.+\.so.*", d):
696 self.run_command('strip -S %s' % d)
697 if re.search("app_settings/mozilla-runtime-.*/lib.+\.so.*", d):
698 self.run_command('strip %s' % d)
699
700 if 'installer_name' in self.args: 715 if 'installer_name' in self.args:
701 installer_name = self.args['installer_name'] 716 installer_name = self.args['installer_name']
702 else: 717 else: