automated merge
commit
3fca4b0d61
|
|
@ -16,6 +16,7 @@ include_directories(
|
|||
if (DARWIN)
|
||||
include(CMakeFindFrameworks)
|
||||
find_library(CARBON_LIBRARY Carbon)
|
||||
find_library(COCOA_LIBRARY Cocoa)
|
||||
endif (DARWIN)
|
||||
|
||||
|
||||
|
|
@ -25,6 +26,22 @@ set(SLPlugin_SOURCE_FILES
|
|||
slplugin.cpp
|
||||
)
|
||||
|
||||
if (DARWIN)
|
||||
list(APPEND SLPlugin_SOURCE_FILES
|
||||
slplugin-objc.mm
|
||||
)
|
||||
list(APPEND SLPlugin_HEADER_FILES
|
||||
slplugin-objc.h
|
||||
)
|
||||
endif (DARWIN)
|
||||
|
||||
set_source_files_properties(${SLPlugin_HEADER_FILES}
|
||||
PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
|
||||
if (SLPlugin_HEADER_FILES)
|
||||
list(APPEND SLPlugin_SOURCE_FILES ${SLPlugin_HEADER_FILES})
|
||||
endif (SLPlugin_HEADER_FILES)
|
||||
|
||||
add_executable(SLPlugin
|
||||
WIN32
|
||||
MACOSX_BUNDLE
|
||||
|
|
@ -51,7 +68,7 @@ add_dependencies(SLPlugin
|
|||
|
||||
if (DARWIN)
|
||||
# Mac version needs to link against Carbon
|
||||
target_link_libraries(SLPlugin ${CARBON_LIBRARY})
|
||||
target_link_libraries(SLPlugin ${CARBON_LIBRARY} ${COCOA_LIBRARY})
|
||||
# Make sure the app bundle has a Resources directory (it will get populated by viewer-manifest.py later)
|
||||
add_custom_command(
|
||||
TARGET SLPlugin POST_BUILD
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
/**
|
||||
* @file slplugin-objc.h
|
||||
* @brief Header file for slplugin-objc.mm.
|
||||
*
|
||||
* @cond
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2010, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlife.com/developers/opensource/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at http://secondlife.com/developers/opensource/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*
|
||||
* @endcond
|
||||
*/
|
||||
|
||||
|
||||
/* Defined in slplugin-objc.mm: */
|
||||
void setupCocoa();
|
||||
void createAutoReleasePool();
|
||||
void deleteAutoReleasePool();
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
/**
|
||||
* @file slplugin-objc.mm
|
||||
* @brief Objective-C++ file for use with the loader shell, so we can use a couple of Cocoa APIs.
|
||||
*
|
||||
* @cond
|
||||
*
|
||||
* $LicenseInfo:firstyear=2010&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2010, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* to you under the terms of the GNU General Public License, version 2.0
|
||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
||||
* online at http://secondlife.com/developers/opensource/gplv2
|
||||
*
|
||||
* There are special exceptions to the terms and conditions of the GPL as
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at http://secondlife.com/developers/opensource/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*
|
||||
* @endcond
|
||||
*/
|
||||
|
||||
|
||||
#include <AppKit/AppKit.h>
|
||||
|
||||
#include "slplugin-objc.h"
|
||||
|
||||
|
||||
void setupCocoa()
|
||||
{
|
||||
static bool inited = false;
|
||||
|
||||
if(!inited)
|
||||
{
|
||||
createAutoReleasePool();
|
||||
|
||||
// The following prevents the Cocoa command line parser from trying to open 'unknown' arguements as documents.
|
||||
// ie. running './secondlife -set Language fr' would cause a pop-up saying can't open document 'fr'
|
||||
// when init'ing the Cocoa App window.
|
||||
[[NSUserDefaults standardUserDefaults] setObject:@"NO" forKey:@"NSTreatUnknownArgumentsAsOpen"];
|
||||
|
||||
// This is a bit of voodoo taken from the Apple sample code "CarbonCocoa_PictureCursor":
|
||||
// http://developer.apple.com/samplecode/CarbonCocoa_PictureCursor/index.html
|
||||
|
||||
// Needed for Carbon based applications which call into Cocoa
|
||||
NSApplicationLoad();
|
||||
|
||||
// Must first call [[[NSWindow alloc] init] release] to get the NSWindow machinery set up so that NSCursor can use a window to cache the cursor image
|
||||
[[[NSWindow alloc] init] release];
|
||||
|
||||
deleteAutoReleasePool();
|
||||
|
||||
inited = true;
|
||||
}
|
||||
}
|
||||
|
||||
static NSAutoreleasePool *sPool = NULL;
|
||||
|
||||
void createAutoReleasePool()
|
||||
{
|
||||
if(!sPool)
|
||||
{
|
||||
sPool = [[NSAutoreleasePool alloc] init];
|
||||
}
|
||||
}
|
||||
|
||||
void deleteAutoReleasePool()
|
||||
{
|
||||
if(sPool)
|
||||
{
|
||||
[sPool release];
|
||||
sPool = NULL;
|
||||
}
|
||||
}
|
||||
|
|
@ -44,6 +44,7 @@
|
|||
|
||||
#if LL_DARWIN
|
||||
#include <Carbon/Carbon.h>
|
||||
#include "slplugin-objc.h"
|
||||
#endif
|
||||
|
||||
#if LL_DARWIN || LL_LINUX
|
||||
|
|
@ -229,10 +230,19 @@ int main(int argc, char **argv)
|
|||
signal(SIGSYS, &crash_handler); // non-existent system call invoked
|
||||
#endif
|
||||
|
||||
#if LL_DARWIN
|
||||
setupCocoa();
|
||||
createAutoReleasePool();
|
||||
#endif
|
||||
|
||||
LLPluginProcessChild *plugin = new LLPluginProcessChild();
|
||||
|
||||
plugin->init(port);
|
||||
|
||||
#if LL_DARWIN
|
||||
deleteAutoReleasePool();
|
||||
#endif
|
||||
|
||||
LLTimer timer;
|
||||
timer.start();
|
||||
|
||||
|
|
@ -260,6 +270,9 @@ int main(int argc, char **argv)
|
|||
#endif
|
||||
while(!plugin->isDone())
|
||||
{
|
||||
#if LL_DARWIN
|
||||
createAutoReleasePool();
|
||||
#endif
|
||||
timer.reset();
|
||||
plugin->idle();
|
||||
#if LL_DARWIN
|
||||
|
|
@ -377,6 +390,10 @@ int main(int argc, char **argv)
|
|||
// exception handler such as QuickTime.
|
||||
//checkExceptionHandler();
|
||||
#endif
|
||||
|
||||
#if LL_DARWIN
|
||||
deleteAutoReleasePool();
|
||||
#endif
|
||||
}
|
||||
|
||||
delete plugin;
|
||||
|
|
|
|||
|
|
@ -64,6 +64,8 @@ void setupCocoa()
|
|||
[[[NSWindow alloc] init] release];
|
||||
|
||||
[pool release];
|
||||
|
||||
inited = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -145,6 +145,9 @@ LLFloaterPay::~LLFloaterPay()
|
|||
{
|
||||
std::for_each(mCallbackData.begin(), mCallbackData.end(), DeletePointer());
|
||||
// Name callbacks will be automatically disconnected since LLFloater is trackable
|
||||
|
||||
// In case this floater is currently waiting for a reply.
|
||||
gMessageSystem->setHandlerFuncFast(_PREHASH_PayPriceReply, 0, 0);
|
||||
}
|
||||
|
||||
BOOL LLFloaterPay::postBuild()
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ public:
|
|||
private:
|
||||
void onToastDestroy(LLToast * toast);
|
||||
|
||||
private:
|
||||
boost::signals2::scoped_connection mConnection;
|
||||
LLPanel* mPanel;
|
||||
LLScreenChannel* mScreenChannel;
|
||||
};
|
||||
|
|
@ -88,7 +88,7 @@ void LLInspectToast::onOpen(const LLSD& notification_id)
|
|||
llwarns << "Could not get requested toast from screen channel." << llendl;
|
||||
return;
|
||||
}
|
||||
toast->setOnToastDestroyedCallback(boost::bind(&LLInspectToast::onToastDestroy, this, _1));
|
||||
mConnection = toast->setOnToastDestroyedCallback(boost::bind(&LLInspectToast::onToastDestroy, this, _1));
|
||||
|
||||
LLPanel * panel = toast->getPanel();
|
||||
panel->setVisible(TRUE);
|
||||
|
|
|
|||
|
|
@ -245,6 +245,47 @@ BOOL get_is_item_worn(const LLUUID& id)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL get_can_item_be_worn(const LLUUID& id)
|
||||
{
|
||||
const LLViewerInventoryItem* item = gInventory.getItem(id);
|
||||
if (!item)
|
||||
return FALSE;
|
||||
|
||||
switch(item->getType())
|
||||
{
|
||||
case LLAssetType::AT_OBJECT:
|
||||
{
|
||||
if (isAgentAvatarValid() && gAgentAvatarp->isWearingAttachment(item->getLinkedUUID()))
|
||||
{
|
||||
// Already being worn
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Not being worn yet.
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LLAssetType::AT_BODYPART:
|
||||
case LLAssetType::AT_CLOTHING:
|
||||
if(gAgentWearables.isWearingItem(item->getLinkedUUID()))
|
||||
{
|
||||
// Already being worn
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Not being worn yet.
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL get_is_item_removable(const LLInventoryModel* model, const LLUUID& id)
|
||||
{
|
||||
if (!model)
|
||||
|
|
|
|||
|
|
@ -46,6 +46,9 @@
|
|||
// Is this item or its baseitem is worn, attached, etc...
|
||||
BOOL get_is_item_worn(const LLUUID& id);
|
||||
|
||||
// Could this item be worn (correct type + not already being worn)
|
||||
BOOL get_can_item_be_worn(const LLUUID& id);
|
||||
|
||||
BOOL get_is_item_removable(const LLInventoryModel* model, const LLUUID& id);
|
||||
|
||||
BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id);
|
||||
|
|
|
|||
|
|
@ -661,10 +661,13 @@ void LLPanelOutfitEdit::onInventorySelectionChange()
|
|||
getSelectedItemsUUID(selected_items);
|
||||
if (selected_items.empty())
|
||||
{
|
||||
mPlusBtn->setEnabled(false);
|
||||
return;
|
||||
}
|
||||
uuid_vec_t::iterator worn_item = std::find_if(selected_items.begin(), selected_items.end(), boost::bind(&get_is_item_worn, _1));
|
||||
bool can_add = ( worn_item == selected_items.end() );
|
||||
|
||||
// If any of the selected items are not wearable (due to already being worn OR being of the wrong type), disable the add button.
|
||||
uuid_vec_t::iterator unwearable_item = std::find_if(selected_items.begin(), selected_items.end(), !boost::bind(& get_can_item_be_worn, _1));
|
||||
bool can_add = ( unwearable_item == selected_items.end() );
|
||||
|
||||
mPlusBtn->setEnabled(can_add);
|
||||
|
||||
|
|
|
|||
|
|
@ -405,6 +405,8 @@ void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name)
|
|||
//static
|
||||
void LLSidepanelAppearance::editWearable(LLWearable *wearable, LLView *data)
|
||||
{
|
||||
LLSideTray::getInstance()->showPanel("sidepanel_appearance");
|
||||
|
||||
LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>(data);
|
||||
if (panel)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@
|
|||
<floater.string name="ToolTipMsg">
|
||||
[AGENT][REGION](Karte mit Doppelklick öffnen)
|
||||
</floater.string>
|
||||
<floater.string name="mini_map_caption">
|
||||
MINI-KARTE
|
||||
</floater.string>
|
||||
<text label="N" name="floater_map_north" text="N">
|
||||
N
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -24,9 +24,6 @@
|
|||
<floater.string name="Title">
|
||||
Gesten: [NAME]
|
||||
</floater.string>
|
||||
<text name="name_text">
|
||||
Name:
|
||||
</text>
|
||||
<text name="desc_label">
|
||||
Beschreibung:
|
||||
</text>
|
||||
|
|
@ -36,7 +33,7 @@
|
|||
<text name="replace_text" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht's“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht's sagen“ und die zugehörige Geste wird abgespielt.">
|
||||
Ersetzen mit:
|
||||
</text>
|
||||
<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's“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht's sagen“ und die zugehörige Geste wird abgespielt." left_delta="94" width="160"/>
|
||||
<line_editor left_delta="94" name="replace_editor" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht's“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht's sagen“ und die zugehörige Geste wird abgespielt." width="160"/>
|
||||
<text name="key_label">
|
||||
Tastenkürzel:
|
||||
</text>
|
||||
|
|
@ -46,19 +43,22 @@
|
|||
Bibliothek:
|
||||
</text>
|
||||
<scroll_list name="library_list" width="166"/>
|
||||
<button label="Hinzufügen >>" name="add_btn" left_pad="6" width="94"/>
|
||||
<button label="Hinzufügen >>" left_pad="6" name="add_btn" width="94"/>
|
||||
<text name="steps_label">
|
||||
Schritte:
|
||||
</text>
|
||||
<button label="Nach oben" name="up_btn"/>
|
||||
<button label="Nach unten" name="down_btn"/>
|
||||
<button label="Entfernen" name="delete_btn"/>
|
||||
<text name="options_text">
|
||||
(Optionen)
|
||||
</text>
|
||||
<radio_group name="animation_trigger_type">
|
||||
<radio_item label="Start" name="start"/>
|
||||
<radio_item label="Stopp" name="stop"/>
|
||||
</radio_group>
|
||||
<check_box label="bis alle Animationen beendet sind" name="wait_anim_check"/>
|
||||
<check_box label="Zeit in Sekunden" name="wait_time_check"/>
|
||||
<check_box label="Zeit in Sekunden:" name="wait_time_check"/>
|
||||
<text name="help_label">
|
||||
Alle Schritte werden gleichzeitig ausgeführt, wenn keine Pausen hinzugefügt wurden.
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -1,23 +1,75 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="Snapshot" title="Foto">
|
||||
<floater name="Snapshot" title="FOTO-ANZEIGE">
|
||||
<floater.string name="unknown">
|
||||
unbekannt
|
||||
</floater.string>
|
||||
<radio_group label="Fototyp" name="snapshot_type_radio">
|
||||
<radio_item label="Email" name="postcard"/>
|
||||
<radio_item label="Mein Inventar ([AMOUNT] L$)" name="texture"/>
|
||||
<radio_item label="Auf meinem Computer speichern" name="local"/>
|
||||
</radio_group>
|
||||
<text name="file_size_label">
|
||||
[SIZE] KB
|
||||
</text>
|
||||
<button label="Foto aktualisieren" name="new_snapshot_btn"/>
|
||||
<line_editor label="Beschreibung" name="description"/>
|
||||
<panel name="panel_snapshot_main">
|
||||
<button label="Foto freigeben" name="share"/>
|
||||
<button label="Foto speichern" name="save"/>
|
||||
<button label="Als Profilbild festlegen" name="set_profile_pic"/>
|
||||
</panel>
|
||||
<panel name="panel_snapshot_share">
|
||||
<button label="Ins Internet stellen" name="share_to_web"/>
|
||||
<button label="Foto per E-Mail senden" name="share_to_email"/>
|
||||
<button label="Zurück" name="cancel_share"/>
|
||||
</panel>
|
||||
<panel name="panel_snapshot_save">
|
||||
<button label="Objekt in meinem Inventar speichern" name="save_to_inventory"/>
|
||||
<button label="Auf meinem Computer speichern" name="save_to_computer"/>
|
||||
<button label="Zurück" name="cancel_save"/>
|
||||
</panel>
|
||||
<button label="Senden" name="send_btn"/>
|
||||
<button label="Speichern ([AMOUNT] L$)" name="upload_btn"/>
|
||||
<flyout_button label="Speichern" name="save_btn" tool_tip="Bild als Datei speichern">
|
||||
<flyout_button.item label="Speichern" name="save_item"/>
|
||||
<flyout_button.item label="Speichern unter..." name="saveas_item"/>
|
||||
</flyout_button>
|
||||
<button label="Mehr" name="more_btn" tool_tip="Erweiterte Optionen"/>
|
||||
<button label="Weniger" name="less_btn" tool_tip="Erweiterte Optionen"/>
|
||||
<button label="Abbrechen" name="discard_btn"/>
|
||||
<text name="type_label2">
|
||||
Größe
|
||||
</text>
|
||||
<text name="format_label">
|
||||
Format
|
||||
</text>
|
||||
<combo_box label="Auflösung" name="postcard_size_combo">
|
||||
<combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/>
|
||||
<combo_box.item label="640x480" name="640x480"/>
|
||||
<combo_box.item label="800x600" name="800x600"/>
|
||||
<combo_box.item label="1024x768" name="1024x768"/>
|
||||
<combo_box.item label="Benutzerdefiniert" name="Custom"/>
|
||||
</combo_box>
|
||||
<combo_box label="Auflösung" name="texture_size_combo">
|
||||
<combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/>
|
||||
<combo_box.item label="Klein (128x128)" name="Small(128x128)"/>
|
||||
<combo_box.item label="Mittel (256x256)" name="Medium(256x256)"/>
|
||||
<combo_box.item label="Groß (512x512)" name="Large(512x512)"/>
|
||||
<combo_box.item label="Benutzerdefiniert" name="Custom"/>
|
||||
</combo_box>
|
||||
<combo_box label="Auflösung" name="local_size_combo">
|
||||
<combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/>
|
||||
<combo_box.item label="320x240" name="320x240"/>
|
||||
<combo_box.item label="640x480" name="640x480"/>
|
||||
<combo_box.item label="800x600" name="800x600"/>
|
||||
<combo_box.item label="1024x768" name="1024x768"/>
|
||||
<combo_box.item label="1280x1024" name="1280x1024"/>
|
||||
<combo_box.item label="1600x1200" name="1600x1200"/>
|
||||
<combo_box.item label="Benutzerdefiniert" name="Custom"/>
|
||||
</combo_box>
|
||||
<combo_box label="Format" name="local_format_combo">
|
||||
<combo_box.item label="PNG" name="PNG"/>
|
||||
<combo_box.item label="JPEG" name="JPEG"/>
|
||||
<combo_box.item label="BMP" name="BMP"/>
|
||||
</combo_box>
|
||||
<spinner label="Breite" name="snapshot_width"/>
|
||||
<spinner label="Größe" name="snapshot_height"/>
|
||||
<check_box label="Seitenverhältnis beibehalten" name="keep_aspect_check"/>
|
||||
<slider label="Bildqualität" name="image_quality_slider"/>
|
||||
<text name="layer_type_label">
|
||||
Aufnehmen:
|
||||
</text>
|
||||
<combo_box label="Bildlayer" name="layer_types">
|
||||
<combo_box.item label="Farben" name="Colors"/>
|
||||
<combo_box.item label="Tiefe" name="Depth"/>
|
||||
</combo_box>
|
||||
<check_box label="Schnittstelle" name="ui_check"/>
|
||||
<check_box label="HUDs" name="hud_check"/>
|
||||
<check_box label="Nach dem Speichern offen lassen" name="keep_open_check"/>
|
||||
<check_box label="Frame einfrieren (Vollbild)" name="freeze_frame_check"/>
|
||||
<check_box label="Automatisch aktualisieren" name="auto_snapshot_check"/>
|
||||
</floater>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater label="Orte" name="voice_effects" title="VOICE-MORPHING AUSPROBIEREN">
|
||||
<floater label="Orte" name="voice_effects" title="VOICE MORPHING">
|
||||
<string name="no_voice_effect">
|
||||
(Kein Voice-Morphing)
|
||||
</string>
|
||||
|
|
@ -12,18 +12,19 @@
|
|||
<string name="new_voice_effect">
|
||||
(Neu!)
|
||||
</string>
|
||||
<text name="status_text">
|
||||
Um die Voice-Morph-Effekte auszuprobieren, einfach auf die Schaltfläche „Aufnahme“ klicken und kurz ins Mikrofon sprechen. Klicken Sie dann auf einen beliebigen Effekt in der Liste, um zu hören, wie der Effekt Ihre Stimme verändert.
|
||||
|
||||
Schließen Sie dieses Fenster, um wieder mit dem Voice-Chat in der Nähe verbunden zu werden.
|
||||
<text name="preview_text">
|
||||
Zur Vorschau
|
||||
</text>
|
||||
<button label="Aufnahme" name="record_btn" tool_tip="Nehmen Sie Ihre Stimme auf."/>
|
||||
<text name="status_text">
|
||||
Nehmen Sie Ihre Stimme auf, klicken Sie dann auf einen Effekt, um den Effekt auf Ihre Stimme anzuwenden.
|
||||
</text>
|
||||
<button label="Aufnehmen" name="record_btn" tool_tip="Nehmen Sie Ihre Stimme auf."/>
|
||||
<button label="Stopp" name="record_stop_btn"/>
|
||||
<text name="voice_morphing_link">
|
||||
[[URL]Voice-Morphing abonnieren]
|
||||
[[URL] Jetzt abonnieren]
|
||||
</text>
|
||||
<scroll_list name="voice_effect_list" tool_tip="Nehmen Sie Ihre Stimme auf und klicken Sie dann auf einen Effekt, um diesen auszuprobieren.">
|
||||
<scroll_list.columns label="Voice-Morphing" name="name"/>
|
||||
<scroll_list.columns label="Bezeichnung" name="name"/>
|
||||
<scroll_list.columns label="Gültig bis" name="expires"/>
|
||||
</scroll_list>
|
||||
</floater>
|
||||
|
|
|
|||
|
|
@ -3,11 +3,13 @@
|
|||
<menu_item_call label="Berühren" name="Attachment Object Touch"/>
|
||||
<menu_item_call label="Bearbeiten" name="Edit..."/>
|
||||
<menu_item_call label="Abnehmen" name="Detach"/>
|
||||
<menu_item_call label="Fallen lassen" name="Drop"/>
|
||||
<menu_item_call label="Aufstehen" name="Stand Up"/>
|
||||
<menu_item_call label="Outfit ändern" name="Change Outfit"/>
|
||||
<menu_item_call label="Mein Outfit bearbeiten" name="Edit Outfit"/>
|
||||
<menu_item_call label="Meine Form bearbeiten" name="Edit My Shape"/>
|
||||
<menu_item_call label="Meine Freunde" name="Friends..."/>
|
||||
<menu_item_call label="Meine Gruppen" name="Groups..."/>
|
||||
<menu_item_call label="Mein Profil" name="Profile..."/>
|
||||
<menu_item_call label="Fehler in Texturen beseitigen" name="Debug..."/>
|
||||
<menu_item_call label="Fallen lassen" name="Drop"/>
|
||||
</context_menu>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@
|
|||
<menu_item_call label="Anziehen - Aktuelles Outfit hinzufügen" name="wear_add"/>
|
||||
<menu_item_call label="Ausziehen - Aus aktuellem Outfit entfernen" name="take_off"/>
|
||||
<menu_item_call label="Outfit bearbeiten" name="edit"/>
|
||||
<menu_item_call label="Umbenennen" name="rename"/>
|
||||
<menu_item_call label="Outfit neu benennen" name="rename"/>
|
||||
<menu_item_call label="Outfit löschen" name="delete"/>
|
||||
</context_menu>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<menu name="menu_topinfobar">
|
||||
<menu_item_check label="Koordinaten anzeigen" name="Show Coordinates"/>
|
||||
<menu_item_check label="Parzellen-Eigenschaften anzeigen" name="Show Parcel Properties"/>
|
||||
<menu_item_call label="Landmarke" name="Landmark"/>
|
||||
<menu_item_call label="Kopieren" name="Copy"/>
|
||||
</menu>
|
||||
|
|
@ -178,6 +178,7 @@
|
|||
<menu_item_check label="Suchen" name="Search"/>
|
||||
<menu_item_call label="Tasten freigeben" name="Release Keys"/>
|
||||
<menu_item_call label="UI-Größe auf Standard setzen" name="Set UI Size to Default"/>
|
||||
<menu_item_check label="Erweitert-Menü anzeigen - veraltetet" name="Show Advanced Menu - legacy shortcut"/>
|
||||
<menu_item_check label="Immer rennen" name="Always Run"/>
|
||||
<menu_item_check label="Fliegen" name="Fly"/>
|
||||
<menu_item_call label="Fenster schließen" name="Close Window"/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<context_menu name="Outfit Wearable Context Menu">
|
||||
<menu_item_call label="Anziehen" name="wear"/>
|
||||
<menu_item_call label="Ersetzen" name="wear"/>
|
||||
<menu_item_call label="Hinzufügen" name="wear_add"/>
|
||||
<menu_item_call label="Ausziehen / Abnehmen" name="take_off_or_detach"/>
|
||||
<menu_item_call label="Abnehmen" name="detach"/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<menu name="Gear Wearing">
|
||||
<menu_item_call label="Outfit bearbeiten" name="edit"/>
|
||||
</menu>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<context_menu name="Wearing">
|
||||
<menu_item_call label="Outfit bearbeiten" name="edit"/>
|
||||
</context_menu>
|
||||
|
|
@ -622,8 +622,7 @@ Erwartet wurde [VALIDS]
|
|||
Datei konnte nicht kodiert werden: [FILE]
|
||||
</notification>
|
||||
<notification name="CorruptedProtectedDataStore">
|
||||
Ihre geschützten Daten konnten nicht gelesen werden, aus diesem Grund werden diese zurückgesetzt.
|
||||
Dies kann passieren, wenn Sie die Netzwerkeinstellungen ändern.
|
||||
Wir können Ihren Benutzernamen und Ihr Kennwort nicht automatisch ausfüllen. Dies kann passieren, wenn Sie die Netzwerkeinstellungen ändern.
|
||||
<usetemplate name="okbutton" yestext="OK"/>
|
||||
</notification>
|
||||
<notification name="CorruptResourceFile">
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="wearable_item">
|
||||
<text name="item_name" value="..."/>
|
||||
<panel name="btn_lock" tool_tip="Ihnen fehlt die Berechtigung zum Bearbeiten."/>
|
||||
<panel name="btn_edit_panel">
|
||||
<button name="btn_edit" tool_tip="Diese Form bearbeiten"/>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="wearable_item">
|
||||
<button name="btn_delete" tool_tip="Von Outfit entfernen"/>
|
||||
<text name="item_name" value="..."/>
|
||||
<panel name="btn_lock" tool_tip="Ihnen fehlt die Berechtigung zum Bearbeiten."/>
|
||||
<panel name="btn_edit_panel">
|
||||
<button name="btn_edit" tool_tip="Dieses tragbare Objekt bearbeiten"/>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="deletable_wearable_item">
|
||||
<button name="btn_delete" tool_tip="Von Outfit entfernen"/>
|
||||
<text name="item_name" value="..."/>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="dummy_clothing_item">
|
||||
<text name="item_name" value="..."/>
|
||||
<panel name="btn_add_panel">
|
||||
<button name="btn_add" tool_tip="Weitere Artikel dieser Art hinzufügen"/>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@
|
|||
<string name="tattoo_desc_text">
|
||||
Tätowierung:
|
||||
</string>
|
||||
<labeled_back_button label="Speichern" name="back_btn" tool_tip="Zurück zu Outfit bearbeiten"/>
|
||||
<text name="edit_wearable_title" value="Form bearbeiten"/>
|
||||
<panel label="Hemd" name="wearable_type_panel">
|
||||
<text name="description_text" value="Form:"/>
|
||||
|
|
@ -102,6 +103,6 @@
|
|||
</panel>
|
||||
<panel name="button_panel">
|
||||
<button label="Speichern unter" name="save_as_button"/>
|
||||
<button label="Zurücksetzen" name="revert_button"/>
|
||||
<button label="Änderungen rückgängig machen" name="revert_button"/>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,9 @@
|
|||
<string name="Filter.All" value="Alle"/>
|
||||
<string name="Filter.Clothes/Body" value="Kleider/Körper"/>
|
||||
<string name="Filter.Objects" value="Objekte"/>
|
||||
<string name="Filter.Custom" value="Benutzerspezifischer Filter"/>
|
||||
<string name="Filter.Clothing" value="Kleidung"/>
|
||||
<string name="Filter.Bodyparts" value="Körperteile"/>
|
||||
<string name="replace_body_part" value="Klicken, um Ihre aktuelle Form zu ersetzen"/>
|
||||
<text name="title" value="Outfit bearbeiten"/>
|
||||
<panel label="bottom_panel" name="header_panel">
|
||||
<panel label="bottom_panel" name="outfit_name_and_status">
|
||||
|
|
@ -25,7 +27,7 @@
|
|||
<layout_panel label="IM Steuerkonsole" name="outfit_wearables_panel">
|
||||
<layout_stack name="filter_panels">
|
||||
<layout_panel name="add_button_and_combobox">
|
||||
<button label="Mehr hinzufügen" name="show_add_wearables_btn"/>
|
||||
<button label="Mehr hinzufügen" name="show_add_wearables_btn" tool_tip="Öffnen/Schließen"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="filter_panel">
|
||||
<filter_editor label="Tragbare Inventarobjekte filtern" name="look_item_filter"/>
|
||||
|
|
@ -36,6 +38,6 @@
|
|||
</layout_stack>
|
||||
<panel name="save_revert_button_bar">
|
||||
<button label="Speichern" name="save_btn"/>
|
||||
<button label="Zurücksetzen" name="revert_btn"/>
|
||||
<button label="Änderungen rückgängig machen" name="revert_btn" tool_tip="Zur zuletzt gespeicherten Version zurücksetzen"/>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
</tab_container>
|
||||
<panel name="bottom_panel">
|
||||
<button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
|
||||
<dnd_button name="trash_btn" tool_tip="Auswahl löschen"/>
|
||||
<dnd_button name="trash_btn" tool_tip="Ausgewähltes Outfit löschen"/>
|
||||
<button label="Speichern unter" name="save_btn"/>
|
||||
<button label="Anziehen" name="wear_btn" tool_tip="Ausgewähltes Outfit tragen"/>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -49,10 +49,7 @@
|
|||
m
|
||||
</text>
|
||||
<slider label="Max. Partikelzahl:" name="MaxParticleCount"/>
|
||||
<slider label="Max. Avatarsichtweite:" name="MaxAvatarDrawDistance"/>
|
||||
<text name="DrawDistanceMeterText3">
|
||||
m
|
||||
</text>
|
||||
<slider label="Max. Anzahl an voll dargestellten Avataren:" name="MaxNumberAvatarDrawn"/>
|
||||
<slider label="Post-Processing-Qualität:" name="RenderPostProcess"/>
|
||||
<text name="MeshDetailText">
|
||||
Gitterdetails:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="panel_voice_effect">
|
||||
<string name="no_voice_effect">
|
||||
Kein Voice-Morphing
|
||||
Voice-Morphing Aus
|
||||
</string>
|
||||
<string name="preview_voice_effects">
|
||||
Voice-Morphing ausprobieren ▶
|
||||
|
|
@ -10,6 +10,6 @@
|
|||
Voice-Morphing abonnieren ▶
|
||||
</string>
|
||||
<combo_box name="voice_effect" tool_tip="Wählen Sie einen Voice-Morph-Effekt aus, um Ihre Stimme zu verändern.">
|
||||
<combo_box.item label="Kein Voice-Morphing" name="no_voice_effect"/>
|
||||
<combo_box.item label="Voice-Morphing Aus" name="no_voice_effect"/>
|
||||
</combo_box>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
<string name="No Outfit" value="Kein Outfit"/>
|
||||
<string name="Unsaved Changes" value="Ungespeicherte Änderungen"/>
|
||||
<string name="Now Wearing" value="Aktuelles Outfit..."/>
|
||||
<string name="Changing outfits" value="Outfits ändern"/>
|
||||
<panel name="panel_currentlook">
|
||||
<button label="B" name="editappearance_btn"/>
|
||||
<button label="Ö" name="openoutfit_btn"/>
|
||||
|
|
@ -12,6 +13,7 @@
|
|||
<text name="currentlook_name">
|
||||
MyOutfit With a really Long Name like MOOSE
|
||||
</text>
|
||||
<button label="" name="edit_outfit_btn" tool_tip="Diese Outfit bearbeiten"/>
|
||||
</panel>
|
||||
<filter_editor label="Outfits filtern" name="Filter"/>
|
||||
</panel>
|
||||
|
|
|
|||
|
|
@ -309,6 +309,9 @@
|
|||
<string name="ReleaseNotes">
|
||||
Versionshinweise
|
||||
</string>
|
||||
<string name="RELEASE_NOTES_BASE_URL">
|
||||
http://wiki.secondlife.com/wiki/Release_Notes/
|
||||
</string>
|
||||
<string name="LoadingData">
|
||||
Wird geladen...
|
||||
</string>
|
||||
|
|
@ -864,6 +867,9 @@
|
|||
<string name="invalid">
|
||||
ungültig
|
||||
</string>
|
||||
<string name="none">
|
||||
keine
|
||||
</string>
|
||||
<string name="shirt_not_worn">
|
||||
Hemd nicht getragen
|
||||
</string>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater
|
||||
border_visible="false"
|
||||
border_drop_shadow_visible="false"
|
||||
drop_shadow_visible="false"
|
||||
border="false"
|
||||
bg_opaque_image="Window_Foreground"
|
||||
bg_alpha_image="Window_Background"
|
||||
|
|
@ -26,20 +24,20 @@
|
|||
save_visibility="true"
|
||||
single_instance="true"
|
||||
width="320">
|
||||
<chat_history
|
||||
allow_html="true"
|
||||
bg_readonly_color="ChatHistoryBgColor"
|
||||
bg_writeable_color="ChatHistoryBgColor"
|
||||
follows="all"
|
||||
left="5"
|
||||
top="20"
|
||||
layout="topleft"
|
||||
height="275"
|
||||
name="chat_history"
|
||||
parse_highlights="true"
|
||||
text_color="ChatHistoryTextColor"
|
||||
text_readonly_color="ChatHistoryTextColor"
|
||||
right_widget_pad="5"
|
||||
left_widget_pad="0"
|
||||
width="315" />
|
||||
<chat_history
|
||||
allow_html="true"
|
||||
bg_readonly_color="ChatHistoryBgColor"
|
||||
bg_writeable_color="ChatHistoryBgColor"
|
||||
follows="all"
|
||||
left="5"
|
||||
top="20"
|
||||
layout="topleft"
|
||||
height="275"
|
||||
name="chat_history"
|
||||
parse_highlights="true"
|
||||
text_color="ChatHistoryTextColor"
|
||||
text_readonly_color="ChatHistoryTextColor"
|
||||
right_widget_pad="5"
|
||||
left_widget_pad="0"
|
||||
width="315" />
|
||||
</floater>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<!-- All accordion tabs in the My Appearance/My Outfits panel will be created from this one at runtime-->
|
||||
<!-- Non of string values of controls below are visible to user. They are not need to be translated. -->
|
||||
<accordion_tab
|
||||
display_children="false"
|
||||
expanded="false"
|
||||
follows="all"
|
||||
height="45"
|
||||
layout="topleft"
|
||||
|
|
|
|||
Loading…
Reference in New Issue